• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

C++ Rings/boots dossnt regain mana & hp after relog

dunnish

New Member
Joined
Jun 18, 2009
Messages
268
Solutions
1
Reaction score
2
Hello!

after i relog with soft boots or Life ring equiped its dossnt regain anymore.
allways needed to take of the equipment and on again.
then its working.


Movement.h
C++:
////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////

#ifndef __MOVEMENT__
#define __MOVEMENT__

#include "baseevents.h"
#include "creature.h"

class MoveEvent;
class MoveEventScript : public LuaInterface
{
    public:
        MoveEventScript() : LuaInterface("MoveEvents Interface") {}
        virtual ~MoveEventScript() {}

        static MoveEvent* event;

    protected:
        virtual void registerFunctions();
        static int32_t luaCallFunction(lua_State* L);
};

enum MoveEvent_t
{
    MOVE_EVENT_FIRST = 0,
    MOVE_EVENT_STEP_IN = MOVE_EVENT_FIRST,
    MOVE_EVENT_STEP_OUT = 1,
    MOVE_EVENT_EQUIP = 2,
    MOVE_EVENT_DE_EQUIP = 3,
    MOVE_EVENT_ADD_ITEM = 4,
    MOVE_EVENT_REMOVE_ITEM = 5,
    MOVE_EVENT_ADD_TILEITEM = 6,
    MOVE_EVENT_REMOVE_TILEITEM = 7,
    MOVE_EVENT_NONE = 8,
    MOVE_EVENT_LAST = MOVE_EVENT_REMOVE_TILEITEM
};

typedef std::list<MoveEvent*> EventList;
class MoveEvents : public BaseEvents
{
    public:
        MoveEvents();
        virtual ~MoveEvents() {clear();}

        uint32_t onCreatureMove(Creature* actor, Creature* creature, const Tile* fromTile, const Tile* toTile, bool isStepping);
        bool onPlayerEquip(Player* player, Item* item, slots_t slot, bool isCheck);
        bool onPlayerDeEquip(Player* player, Item* item, slots_t slot, bool isRemoval);
        uint32_t onItemMove(Creature* actor, Item* item, Tile* tile, bool isAdd);

        MoveEvent* getEvent(Item* item, MoveEvent_t eventType);
        bool hasEquipEvent(Item* item);
        bool hasTileEvent(Item* item);

        void onRemoveTileItem(const Tile* tile, Item* item);
        void onAddTileItem(const Tile* tile, Item* item);

    protected:
        struct MoveEventList
        {
            EventList moveEvent[MOVE_EVENT_NONE];
        };

        virtual std::string getScriptBaseName() const {return "movements";}
        virtual void clear();

        virtual Event* getEvent(const std::string& nodeName);
        virtual bool registerEvent(Event* event, xmlNodePtr p, bool override);

        virtual LuaInterface& getInterface() {return m_interface;}
        MoveEventScript m_interface;

        void registerItemID(int32_t itemId, MoveEvent_t eventType);
        void registerActionID(int32_t actionId, MoveEvent_t eventType);
        void registerUniqueID(int32_t uniqueId, MoveEvent_t eventType);

        typedef std::map<int32_t, MoveEventList> MoveListMap;
        MoveListMap m_itemIdMap;
        MoveListMap m_uniqueIdMap;
        MoveListMap m_actionIdMap;

        typedef std::map<Position, MoveEventList> MovePosListMap;
        MovePosListMap m_positionMap;
        void clearMap(MoveListMap& map);

        void addEvent(MoveEvent* moveEvent, int32_t id, MoveListMap& map, bool override);
        MoveEvent* getEvent(Item* item, MoveEvent_t eventType, slots_t slot);

        void addEvent(MoveEvent* moveEvent, Position pos, MovePosListMap& map, bool override);
        MoveEvent* getEvent(const Tile* tile, MoveEvent_t eventType);

        const Tile* m_lastCacheTile;
        std::vector<Item*> m_lastCacheItemVector;
};

typedef uint32_t (MoveFunction)(Item* item);
typedef uint32_t (StepFunction)(Creature* creature, Item* item);
typedef bool (EquipFunction)(MoveEvent* moveEvent, Player* player, Item* item, slots_t slot, bool boolean);

class MoveEvent : public Event
{
    public:
        MoveEvent(LuaInterface* _interface);
        MoveEvent(const MoveEvent* copy);
        virtual ~MoveEvent();

        MoveEvent_t getEventType() const;
        void setEventType(MoveEvent_t type);

        virtual bool configureEvent(xmlNodePtr p);
        virtual bool loadFunction(const std::string& functionName);

        uint32_t fireStepEvent(Creature* actor, Creature* creature, Item* item, const Position& pos, const Position& fromPos, const Position& toPos);
        uint32_t fireAddRemItem(Creature* actor, Item* item, Item* tileItem, const Position& pos);
        bool fireEquip(Player* player, Item* item, slots_t slot, bool boolean);

        uint32_t executeStep(Creature* actor, Creature* creature, Item* item, const Position& pos, const Position& fromPos, const Position& toPos);
        bool executeEquip(Player* player, Item* item, slots_t slot, bool boolean);
        uint32_t executeAddRemItem(Creature* actor, Item* item, Item* tileItem, const Position& pos);

        static StepFunction StepInField;
        static MoveFunction AddItemField;
        static EquipFunction EquipItem;
        static EquipFunction DeEquipItem;

        uint32_t getWieldInfo() const {return wieldInfo;}
        uint32_t getSlot() const {return slot;}
        int32_t getReqLevel() const {return reqLevel;}
        int32_t getReqMagLv() const {return reqMagLevel;}
        bool isPremium() const {return premium;}

        const VocationMap& getVocEquipMap() const {return vocEquipMap;}
        const std::string& getVocationString() const {return vocationString;}

    protected:
        MoveEvent_t m_eventType;

        virtual std::string getScriptEventName() const;
        virtual std::string getScriptEventParams() const;

        MoveFunction* moveFunction;
        StepFunction* stepFunction;
        EquipFunction* equipFunction;

        uint32_t wieldInfo, slot;
        int32_t reqLevel, reqMagLevel;
        bool premium;

        VocationMap vocEquipMap;
        std::string vocationString;
};
#endif
Movement.cpp
Movement.cpp - Pastebin.com
i could not upload the cpp or paste it as c++ code
 
Last edited:
Normally this problem has to do with Rush/Desert war event, or some other event that they use:
Code:
doRemoveConditions(cid, false)
Search for this function on events or even scripts and delete it, or change for another one, that removes the specific condition.
 
Code:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Team Event" version="2.0" author="Igor Pereira" contact="[email protected]" enabled="yes">
<description>

Full auto Team BattleEvent(v2.0) for 0.4 :

        1- I currently rescripted this event from scratch again.

        2- This version is much more better than the one before, it is more cleaner, clearer and with more options.

        3- This version was tested on 0.4 latest one 4626, should work on lower rev too.

        4- Removed the npc part it is now based on tp creation.

        5- More silent boradcasting for in event progress and no spam, I hope!

        6- you now get the options to show event stats on cancel msg area and (to / not to) show left players with names each x interval.

        8- Team balancer have been added to only balance count in both teams.

        9- Added a countdown option before fight starts.

        10- Now starts on a defined time every day

   </description>

<config name="teamSetting"><![CDATA[
--[[Local Config]]--

--//storages

inBlue = 9900
inRed = 9901
joiner = 9907

blueKills = 9902
redKills = 9903

eventRecruiting = 9904
eventStarted = 9905
eventTime = 9906

itemToGet = 9908
countItemToGet = 9909

nextExecute = 9910

blueCount = 9911
redCount = 9912

--// Positions

teleporterPosition = {x = 32341, y = 32213, z = 7} --Place where the event tp will be created

waitRoomPlace = {x = 189, y = 132, z = 7} --Place of the waitnig room (the place ppl will wait for team to be full)

waitRoomDimensions = { --Enter the start pos[top left sqm] and end pos[bottom right sqm] of waitnig room here
                            startPos = {x = 179, y = 125, z = 7},
                            endPos = {x = 200, y = 139, z = 7}
                            }


eventPlaceDimensions = { --Enter the start pos[top left sqm] and end pos[bottom right sqm] of event place here
                            startPos = {x = 151, y = 46, z = 7},
                            endPos = {x = 232, y = 100, z = 7}
                            }
blueTeamPos = {x = 216, y = 54, z = 7}
redTeamPos = {x = 159, y = 86, z = 7}


--// General settings

recruitTime = 10 -- Time in minutes to gather players to event, will broadcast event started each min

minimumPlayersJoins = 2 --If the number of layer joined is less than that then event would be cancelled

balanceTeams = true -- This will balance number of players in both teams the extra player will be kicked out of event


removeTeleportOnEventEnd = false -- if you want to remove the tp when the event finish set it to true, normally tp will just be diabled

eventMaxTime = 10 -- Time in minutes, this is the max time event will be running. After checks are caried winner is declared

showEventSats = true -- This is like a timer that is always there about event stats (time,oponents left, teammates left). It appears in the cancel messages place.

sendLeftPlayers = true -- Well this will send to all alive players the names& numebr of the oponents left each interval defined down          
intervalToSendLeftPlayers = 11 -- interval(in seconds) to sendLeftPlayers , must be more than 10 sec


countDownOnStart = true -- Well this occurs when players are teleported to their places in the arena , so if this is true it start to count down to the joined players then when count down finish they can start killing each other(event really begins)

countDownFrom = 10 -- Starts count down from this number when event start, if above is set true          

minJoinLevel = 100 -- minimm lvl that can join event

rewards = { --Example [%] = {  {itemid/name, count}  ,..........}    count isnt more than 100

                    [65] = { {8304,1} , {"Double Exp 60 Minutes",1} },
                    [25] = { {"boots of haste",1} , {2195,1} },
                    [10] = { {"Crystal Coin",30} , {"crystal coin",30} }
                }

            --[[ Note : make sure if you edited % that sum should be equal to 100, you can add more % elements to suit your needs also more items if you want in each %
                    [65],[25],[10] -> is the % of this item to be found the rest is clear ,items in each % and it will be chosen randomly]]--


]]></config>
<lib name="teamFunctions"><![CDATA[
domodlib('teamSetting')

--[[Conditions don't touch]]--
local bmale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bmale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bmale, {lookType = math.random(128,134), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, lookTypeEx = 0, lookAddons = 3})

local bfemale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, lookTypeEx = 0, lookAddons = 3})

local rmale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(rmale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(rmale, {lookType = math.random(128,134), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})

local rfemale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(rfemale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(rfemale, {lookType = math.random(136,142),lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})

local infight = createConditionObject(CONDITION_INFIGHT,-1)
--[[Local Config]]--

--[[Functions]]--

-- General info
function isFightOn()
    return getStorage(eventStarted) > 0
end
function isRecruitOn()
    return getStorage(eventRecruiting) > 0
end
function getMinJoinLevel()
    return minJoinLevel
end
function getJoiners()
    joiners = {}
    for _,cid in ipairs(getPlayersOnline()) do
        if isJoiner(cid) then
            if isInRecruitArea(cid) or isInFightArea(cid) then
                table.insert(joiners,cid)
            end
        end
    end
    return joiners
end

function getLeftMembersNames(team)
    str = "Oponents left("..#team..") :"
    left = ""
    for k,cid in ipairs(team) do left  = (left ..""..(k == 1 and "" or ", ")..""..getCreatureName(cid).."["..getPlayerLevel(cid).."]" ) end
    str = str .." " .. (left == "" and "none" or left).. "."
    return str
end
function disPlayEventStats()
    if not showEventSats then return false end
    if getStorage(eventTime) - os.time() <= 0 then return false end

    left = os.date("%M:%S",(getStorage(eventTime) - os.time()))
    for _,cid in ipairs(getJoiners()) do
        oponentsLeft = isBlue(cid) and #getRedMembers() or #getBlueMembers()
        teamMatesLeft = isBlue(cid) and math.max(0,#getBlueMembers()-1) or math.max(0,#getRedMembers()-1)
        doPlayerSendCancel(cid,"Time left: ".. left.."   ||   Oponents left: "..oponentsLeft.."/"..oponentCount(cid).."   ||   Team-mates left: "..teamMatesLeft.."/".. math.max(0,matesCount(cid)-1))
    end

end

function doSendLeftPlayers()
    if not sendLeftPlayers then return false end
    if intervalToSendLeftPlayers <= 10 then return false end
    for _,cid in ipairs(getJoiners()) do
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],getLeftMembersNames(isRed(cid) and getBlueMembers() or getRedMembers()))
    end
end

function getBlueMembers()
    members = {}
    for _,cid in ipairs(getPlayersOnline()) do
        if isBlue(cid) then
            table.insert(members,cid)
        end
    end
    return members
end
function getRedMembers()
    members = {}
    for _,cid in ipairs(getPlayersOnline()) do
        if isRed(cid) then
            table.insert(members,cid)
        end
    end
    return members
end


-- starting fight

function startRecruiting()
    doSetStorage(eventRecruiting,1)
end
function startEvent()
    doSetStorage(eventRecruiting,-1)

    if removeTeleportOnEventEnd then
        tp = getTileItemById(teleporterPosition,1387).uid
        if tp > 0 then doRemoveItem(tp) end
    end

    if not balanceTeams() then
        resetEvent()
        return false
    end
    for _,cid in ipairs(getBlueMembers()) do
        doTeleportThing(cid,blueTeamPos,false)
        doSendMagicEffect(getThingPos(cid),10)
    end
    setBlueCount(#getBlueMembers())
    for _,cid in ipairs(getRedMembers()) do
        doTeleportThing(cid,redTeamPos,false)
        doSendMagicEffect(getThingPos(cid),10)
    end
    setRedCount(#getRedMembers())
    startCountDown()
    return true
end

function setBlueCount(count)
    doSetStorage(blueCount,-1)
    doSetStorage(blueCount,count)
end
function oponentCount(cid)
    return isBlue(cid) and getStorage(redCount) or getStorage(blueCount)
end
function matesCount(cid)
    return isBlue(cid) and getStorage(blueCount) or getStorage(redCount)
end

function setRedCount(count)
    doSetStorage(redCount,-1)
    doSetStorage(redCount,count)
end
function balanceTeams()
    members = getJoiners()
    if #members < minimumPlayersJoins then
        doBroadcastMessage("Team-Battle event was cancelled as only ".. #members .. " players joined.")
        return false
    end
    if (math.mod(#members,2) ~= 0) then
        kicked = members[#members]
        clearTeamEventStorages(kicked)
        doPlayerSendTextMessage(kicked,MESSAGE_TYPES["info"],"Sorry, you have been kicked out of event for balancing both teams.")
    end
    count = 1
    for _,cid in ipairs(getJoiners()) do
        if (math.mod(count,2) ~= 0) then
            addToBlue(cid)
        else
            addToRed(cid)
        end
        count = count + 1
    end
    return true
end
function startCountDown()
    if(countDownOnStart) then
        for _,cid in ipairs(getJoiners()) do
            doCreatureSetNoMove(cid,true)
            for i = 0,countDownFrom do
                addEvent(doPlayerSendTextMessage,i*1000, cid, MESSAGE_TYPES["info"], (i == 0 and countDownFrom or countDownFrom-i) )
            end
        end
        addEvent(startFight,(countDownFrom+1)*1000)
    else
        startFight()
    end
end
function startFight()
    doSetStorage(eventStarted,1)
    for _,cid in ipairs(getJoiners()) do
        doCreatureSetNoMove(cid,false)
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["warning"],"Fight Starts!")
    end
    addEvent(endTeamEvent,eventMaxTime*60*1000,"maxTime")
    doSetStorage(eventTime,os.time()+eventMaxTime*60)
end

function teleportToWaitRoom(cid)
    doTeleportThing(cid,waitRoomPlace)
    doSendMagicEffect(waitRoomPlace,10)
    if getPlayerGroupId(cid) < 4 then
        addToJoiners(cid)
    end
    doPlayerSendTextMessage(cid,MESSAGE_TYPES["blue"],"Please be patient till the event starts and don't logout.")
    return true
end



-- Modifing teams & checking member states
function isBlue(cid)
    return (getPlayerStorageValue(cid,inBlue) > 0)
end
function isRed(cid)
    return (getPlayerStorageValue(cid,inRed) > 0)
end
function isJoiner(cid)
    return (getPlayerStorageValue(cid,joiner) > 0)
end
function addToBlue(cid)
    setPlayerStorageValue(cid,inBlue,1)
    doAddCondition(cid, (getPlayerSex(cid) == 1) and bmale or bfemale)
    doAddCondition(cid,infight)
end
function addToRed(cid)
    setPlayerStorageValue(cid,inRed,1)
    doAddCondition(cid, (getPlayerSex(cid) == 1) and rmale or rfemale)
    doAddCondition(cid,infight)
end
function addToJoiners(cid)
    setPlayerStorageValue(cid,joiner,1)
end
function removeFromBlue(cid)
    setPlayerStorageValue(cid,inBlue,-1)
end
function removeFromRed(cid)
    setPlayerStorageValue(cid,inRed,-1)
end
function removeFromjoiners(cid)
    setPlayerStorageValue(cid,joiner,-1)
end
function isInRecruitArea(cid)
    return isInRange(getThingPos(cid),waitRoomDimensions.startPos,waitRoomDimensions.endPos)
end
function isInFightArea(cid)
    return isInRange(getThingPos(cid),eventPlaceDimensions.startPos,eventPlaceDimensions.endPos)
end
function clearTeamEventStorages(cid)
    if isInRecruitArea(cid) or isInFightArea(cid) then
        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
        doSendMagicEffect(getThingPos(cid),10)
    end

    if isFightOn() then
        if isJoiner(cid) then
            if isBlue(cid) then
                addRedKills()
            elseif isRed(cid) then
                addBlueKills()
            end
            doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],"You have died in Team-Battle Event.")
        end
    end

    removeFromjoiners(cid)
    removeFromBlue(cid)
    removeFromRed(cid)
    doRemoveConditions(cid, false)

end
function haveUnrecivedReward(cid)
    return getPlayerStorageValue(cid,itemToGet) > 0 and getPlayerStorageValue(cid,countItemToGet) > 0
end
function recieveLateReward(cid)
    if haveUnrecivedReward(cid) then
        if not doPlayerAddItem(cid,getPlayerStorageValue(cid,itemToGet),getPlayerStorageValue(cid,countItemToGet),false) then
            msg = "You need to free some space then relog to take your reward."
            doPlayerSendTextMessage(cid,MESSAGE_TYPES["warning"],msg)
        else
            setPlayerStorageValue(cid,itemToGet,-1)
            setPlayerStorageValue(cid,countItemToGet,-1)
            doPlayerSendTextMessage(cid,MESSAGE_TYPES["info"],"You have recieved your reward.")
        end
    end
end

-- Win or lose
function thereIsAWinner()
    if redWon() or blueWon() then
        return true
    end
    return false
end
function blueWon()
    return( (#getBlueMembers() > 0 ) and ( #getRedMembers() == 0) )
end
function redWon()
    return( (#getRedMembers() > 0) and (#getBlueMembers() == 0) )
end
function isDraw()
    return #getBlueMembers() == #getRedMembers()
end
function getWinner()
    if #getBlueMembers() > #getRedMembers() then
        return {getBlueMembers(),getRedMembers(),"Blue team won."}
    elseif #getRedMembers() > #getBlueMembers() then
        return {getRedMembers(),getBlueMembers(),"Red team won."}
    else
        return { {},{},"it was a draw."}
    end
end


-- Adding kills
function addBlueKills()
    doSetStorage(blueKills, math.max(1,getStorage(blueKills)+1))
end
function addRedKills()
    doSetStorage(redKills, math.max(1,getStorage(redKills)+1))
end

-- Ending event

function endTeamEvent(type)
    if isFightOn() then
        doSetStorage(eventStarted,-1)
        doBroadcastMessage("Team-Battle event ended and "..getWinner()[3])
        if not isDraw() then
            win(getWinner()[1],type)
            lose(getWinner()[2],type)
        else
            draw()
        end
    end
    addEvent(resetEvent,2 * 1000) --- tp player to home remove all storages and reset event global storages
end

function getPercent()
    rand= math.random(1,100)
    prev = 0
    chosenItem = 0
    for k, v in pairs(rewards) do
        if rand > prev and rand <= k+prev then
            chosenItem = k
            break
        else
            prev =  k+prev
        end
    end
    return chosenItem
end

function generateReward(cid)
    percent = getPercent()
    if percent == 0 then
        print("Error in the reward item. Please inform Doggynub.")
        return true
    end

    randomizer = rewards[percent][math.random(1,#rewards[percent])]
    item = not tonumber(randomizer[1]) and getItemIdByName(randomizer[1]) or randomizer[1]
    count = isItemStackable(item) and math.min(randomizer[2],100) or 1
    if item == nil or item == 0 then
        print("Error in the  item format. Please inform Doggynub.")
        return true
    end

    msg = "You have won ".. (count == 1 and "a" or count) .." " .. getItemNameById(item) .. "" .. (count == 1 and "" or "s").."."

    if not doPlayerAddItem(cid,item,count,false) then
        msg = msg.. "You need to free some space then relog to take your reward."
        setPlayerStorageValue(cid,itemToGet,item)
        setPlayerStorageValue(cid,countItemToGet,count)
    end

    doPlayerSendTextMessage(cid,MESSAGE_TYPES["white"],msg)

end



function generateStatsMessage(cid, type, stats)
    msg = {
                    ["KO"] = { ["win"] = "Event ended. Your team have won by killing all oponent's team members. You will recieve your reward shortly, check incoming messages.",
                                ["lose"] = "Event ended. Your team have lost as the Oponent team killed all your team's members."
                            },
                    ["maxTime"] = {
                                    ["win"] = "Event max-time finished and your team have won. You will recieve your reward shortly, check incoming messages.",
                                    ["lose"] = "Event max-time finished and your team have lost.",
                                    ["draw"] = "Event max-time finished and it is a draw.(no team won)"
                                }
                }
    doPlayerSendTextMessage(cid,MESSAGE_TYPES["info"],msg[type][stats])

end
function win(winners,type)
    for _,cid in ipairs(winners) do
        generateStatsMessage(cid, type, "win")
        generateReward(cid)
    end
end
function lose(losers,type)
    for _,cid in ipairs(losers) do
        generateStatsMessage(cid, type, "lose")
    end
end
function draw()
    for _,cid in ipairs(getJoiners()) do
        generateStatsMessage(cid, "maxTime", "draw")
    end
end

function resetEvent()
    doSetStorage(eventRecruiting,-1)
    doSetStorage(nextExecute,-1)
    doSetStorage(eventStarted,-1)
    doSetStorage(eventTime,-1)
    doSetStorage(blueKills,-1)
    doSetStorage(redKills,-1)
    for _,cid in ipairs(getPlayersOnline()) do
        if isBlue(cid) or isRed(cid) or isJoiner(cid) then
            clearTeamEventStorages(cid)
        end
    end
end


]]></lib>
<event type="login" name="teambattleLogin" event="script"><![CDATA[
domodlib('teamFunctions')

function onLogin(cid)
    clearTeamEventStorages(cid)
    recieveLateReward(cid)

    registerCreatureEvent(cid, "teamEventStats")
    registerCreatureEvent(cid, "teambattleLogout")
    registerCreatureEvent(cid, "teambattleCombat")
    return true
end
]]></event>
<event type="combat" name="teambattleCombat" event="script"><![CDATA[
domodlib('teamFunctions')

function onCombat(cid, target)
    if isFightOn() then
        if isBlue(cid) and isBlue(target) then
            return false
        end
        if isRed(cid) and isRed(target) then
            return false
        end
    end
    return true
end

]]></event>
<event type="logout" name="teambattleLogout" event="script"><![CDATA[
domodlib('teamFunctions')

function onLogout(cid)
    clearTeamEventStorages(cid)
    if thereIsAWinner() then
        endTeamEvent("KO")
    end
    return true
end

]]></event>
<event type="statschange" name="teamEventStats" event="script"><![CDATA[
domodlib('teamFunctions')

corpse_ids = {
        [0] = 3065, -- female
        [1] = 3058 -- male
}
function onStatsChange(cid, attacker, type, combat, value)
    if combat == COMBAT_HEALING then
        return true
    end
    if getCreatureHealth(cid) > value then
        return true
    end

    if isInFightArea(cid) and isFightOn() then
        if isBlue(cid) or isRed(cid) then
            corpse = doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid))
            doCreateItem(2016, 2, getThingPos(cid))
            clearTeamEventStorages(cid)
            doItemSetAttribute(corpse, "description", "You recognize "..getCreatureName(cid)..". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".\n[Team-Event kill]")
            doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
            if thereIsAWinner() then
                endTeamEvent("KO")
            end

            return false

        end

    end

    return true
end
]]></event>

<globalevent name="teamBattleStart" time="20:02:00" event="script"><![CDATA[
domodlib('teamFunctions')

function onTime()
    resetEvent()
    if getTileItemById(teleporterPosition,1387).uid < 1 then
        tp = doCreateItem(1387,1,teleporterPosition)
        doItemSetAttribute(tp, "aid", 9990)
    end

    startRecruiting()
    for i = 0, recruitTime-1 do
        addEvent(doBroadcastMessage, i * 60* 1000,"Team-Battle event is recruting players by entering event tp. Fight begins in "..(i == 0 and recruitTime or recruitTime-i).." minutes.",MESSAGE_TYPES["warning"])
    end

    addEvent(startEvent, recruitTime * 60 * 1000)

    return true
end


]]></globalevent>

<globalevent name = "teamBattletime" interval="1" event="script"><![CDATA[
domodlib('teamFunctions')

function onThink()
    if isFightOn() then
        disPlayEventStats()

        if getStorage(nextExecute) == -1 or getStorage(nextExecute) <= os.time() then
            doSendLeftPlayers()
            doSetStorage(nextExecute,os.time()+intervalToSendLeftPlayers)
        end
    end
    return true
end

]]></globalevent>
<movevent type="StepIn" actionid="9990" event="script"><![CDATA[
domodlib('teamFunctions')

function onStepIn(cid, item, position, fromPosition)
    if not isRecruitOn() then
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],"Event isn't currently opened.")
        doTeleportThing(cid,fromPosition)
        doSendMagicEffect(fromPosition,2)
        return true
    end
    if getPlayerLevel(cid) < getMinJoinLevel() then
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],"Only players of level ".. getMinJoinLevel().. "+ can join this event.")
        doTeleportThing(cid,fromPosition)
        return true
    end
    teleportToWaitRoom(cid)
    return true
end




]]> </movevent>
</mod>

i have doRemoveConditions(cid, false)
in line 364
but what can i change it out for?
 
Code:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Team Event" version="2.0" author="Igor Pereira" contact="[email protected]" enabled="yes">
<description>

Full auto Team BattleEvent(v2.0) for 0.4 :

        1- I currently rescripted this event from scratch again.

        2- This version is much more better than the one before, it is more cleaner, clearer and with more options.

        3- This version was tested on 0.4 latest one 4626, should work on lower rev too.

        4- Removed the npc part it is now based on tp creation.

        5- More silent boradcasting for in event progress and no spam, I hope!

        6- you now get the options to show event stats on cancel msg area and (to / not to) show left players with names each x interval.

        8- Team balancer have been added to only balance count in both teams.

        9- Added a countdown option before fight starts.

        10- Now starts on a defined time every day

   </description>

<config name="teamSetting"><![CDATA[
--[[Local Config]]--

--//storages

inBlue = 9900
inRed = 9901
joiner = 9907

blueKills = 9902
redKills = 9903

eventRecruiting = 9904
eventStarted = 9905
eventTime = 9906

itemToGet = 9908
countItemToGet = 9909

nextExecute = 9910

blueCount = 9911
redCount = 9912

--// Positions

teleporterPosition = {x = 32341, y = 32213, z = 7} --Place where the event tp will be created

waitRoomPlace = {x = 189, y = 132, z = 7} --Place of the waitnig room (the place ppl will wait for team to be full)

waitRoomDimensions = { --Enter the start pos[top left sqm] and end pos[bottom right sqm] of waitnig room here
                            startPos = {x = 179, y = 125, z = 7},
                            endPos = {x = 200, y = 139, z = 7}
                            }


eventPlaceDimensions = { --Enter the start pos[top left sqm] and end pos[bottom right sqm] of event place here
                            startPos = {x = 151, y = 46, z = 7},
                            endPos = {x = 232, y = 100, z = 7}
                            }
blueTeamPos = {x = 216, y = 54, z = 7}
redTeamPos = {x = 159, y = 86, z = 7}


--// General settings

recruitTime = 10 -- Time in minutes to gather players to event, will broadcast event started each min

minimumPlayersJoins = 2 --If the number of layer joined is less than that then event would be cancelled

balanceTeams = true -- This will balance number of players in both teams the extra player will be kicked out of event


removeTeleportOnEventEnd = false -- if you want to remove the tp when the event finish set it to true, normally tp will just be diabled

eventMaxTime = 10 -- Time in minutes, this is the max time event will be running. After checks are caried winner is declared

showEventSats = true -- This is like a timer that is always there about event stats (time,oponents left, teammates left). It appears in the cancel messages place.

sendLeftPlayers = true -- Well this will send to all alive players the names& numebr of the oponents left each interval defined down         
intervalToSendLeftPlayers = 11 -- interval(in seconds) to sendLeftPlayers , must be more than 10 sec


countDownOnStart = true -- Well this occurs when players are teleported to their places in the arena , so if this is true it start to count down to the joined players then when count down finish they can start killing each other(event really begins)

countDownFrom = 10 -- Starts count down from this number when event start, if above is set true         

minJoinLevel = 100 -- minimm lvl that can join event

rewards = { --Example [%] = {  {itemid/name, count}  ,..........}    count isnt more than 100

                    [65] = { {8304,1} , {"Double Exp 60 Minutes",1} },
                    [25] = { {"boots of haste",1} , {2195,1} },
                    [10] = { {"Crystal Coin",30} , {"crystal coin",30} }
                }

            --[[ Note : make sure if you edited % that sum should be equal to 100, you can add more % elements to suit your needs also more items if you want in each %
                    [65],[25],[10] -> is the % of this item to be found the rest is clear ,items in each % and it will be chosen randomly]]--


]]></config>
<lib name="teamFunctions"><![CDATA[
domodlib('teamSetting')

--[[Conditions don't touch]]--
local bmale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bmale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bmale, {lookType = math.random(128,134), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, lookTypeEx = 0, lookAddons = 3})

local bfemale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88, lookTypeEx = 0, lookAddons = 3})

local rmale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(rmale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(rmale, {lookType = math.random(128,134), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})

local rfemale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(rfemale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(rfemale, {lookType = math.random(136,142),lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = 3})

local infight = createConditionObject(CONDITION_INFIGHT,-1)
--[[Local Config]]--

--[[Functions]]--

-- General info
function isFightOn()
    return getStorage(eventStarted) > 0
end
function isRecruitOn()
    return getStorage(eventRecruiting) > 0
end
function getMinJoinLevel()
    return minJoinLevel
end
function getJoiners()
    joiners = {}
    for _,cid in ipairs(getPlayersOnline()) do
        if isJoiner(cid) then
            if isInRecruitArea(cid) or isInFightArea(cid) then
                table.insert(joiners,cid)
            end
        end
    end
    return joiners
end

function getLeftMembersNames(team)
    str = "Oponents left("..#team..") :"
    left = ""
    for k,cid in ipairs(team) do left  = (left ..""..(k == 1 and "" or ", ")..""..getCreatureName(cid).."["..getPlayerLevel(cid).."]" ) end
    str = str .." " .. (left == "" and "none" or left).. "."
    return str
end
function disPlayEventStats()
    if not showEventSats then return false end
    if getStorage(eventTime) - os.time() <= 0 then return false end

    left = os.date("%M:%S",(getStorage(eventTime) - os.time()))
    for _,cid in ipairs(getJoiners()) do
        oponentsLeft = isBlue(cid) and #getRedMembers() or #getBlueMembers()
        teamMatesLeft = isBlue(cid) and math.max(0,#getBlueMembers()-1) or math.max(0,#getRedMembers()-1)
        doPlayerSendCancel(cid,"Time left: ".. left.."   ||   Oponents left: "..oponentsLeft.."/"..oponentCount(cid).."   ||   Team-mates left: "..teamMatesLeft.."/".. math.max(0,matesCount(cid)-1))
    end

end

function doSendLeftPlayers()
    if not sendLeftPlayers then return false end
    if intervalToSendLeftPlayers <= 10 then return false end
    for _,cid in ipairs(getJoiners()) do
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],getLeftMembersNames(isRed(cid) and getBlueMembers() or getRedMembers()))
    end
end

function getBlueMembers()
    members = {}
    for _,cid in ipairs(getPlayersOnline()) do
        if isBlue(cid) then
            table.insert(members,cid)
        end
    end
    return members
end
function getRedMembers()
    members = {}
    for _,cid in ipairs(getPlayersOnline()) do
        if isRed(cid) then
            table.insert(members,cid)
        end
    end
    return members
end


-- starting fight

function startRecruiting()
    doSetStorage(eventRecruiting,1)
end
function startEvent()
    doSetStorage(eventRecruiting,-1)

    if removeTeleportOnEventEnd then
        tp = getTileItemById(teleporterPosition,1387).uid
        if tp > 0 then doRemoveItem(tp) end
    end

    if not balanceTeams() then
        resetEvent()
        return false
    end
    for _,cid in ipairs(getBlueMembers()) do
        doTeleportThing(cid,blueTeamPos,false)
        doSendMagicEffect(getThingPos(cid),10)
    end
    setBlueCount(#getBlueMembers())
    for _,cid in ipairs(getRedMembers()) do
        doTeleportThing(cid,redTeamPos,false)
        doSendMagicEffect(getThingPos(cid),10)
    end
    setRedCount(#getRedMembers())
    startCountDown()
    return true
end

function setBlueCount(count)
    doSetStorage(blueCount,-1)
    doSetStorage(blueCount,count)
end
function oponentCount(cid)
    return isBlue(cid) and getStorage(redCount) or getStorage(blueCount)
end
function matesCount(cid)
    return isBlue(cid) and getStorage(blueCount) or getStorage(redCount)
end

function setRedCount(count)
    doSetStorage(redCount,-1)
    doSetStorage(redCount,count)
end
function balanceTeams()
    members = getJoiners()
    if #members < minimumPlayersJoins then
        doBroadcastMessage("Team-Battle event was cancelled as only ".. #members .. " players joined.")
        return false
    end
    if (math.mod(#members,2) ~= 0) then
        kicked = members[#members]
        clearTeamEventStorages(kicked)
        doPlayerSendTextMessage(kicked,MESSAGE_TYPES["info"],"Sorry, you have been kicked out of event for balancing both teams.")
    end
    count = 1
    for _,cid in ipairs(getJoiners()) do
        if (math.mod(count,2) ~= 0) then
            addToBlue(cid)
        else
            addToRed(cid)
        end
        count = count + 1
    end
    return true
end
function startCountDown()
    if(countDownOnStart) then
        for _,cid in ipairs(getJoiners()) do
            doCreatureSetNoMove(cid,true)
            for i = 0,countDownFrom do
                addEvent(doPlayerSendTextMessage,i*1000, cid, MESSAGE_TYPES["info"], (i == 0 and countDownFrom or countDownFrom-i) )
            end
        end
        addEvent(startFight,(countDownFrom+1)*1000)
    else
        startFight()
    end
end
function startFight()
    doSetStorage(eventStarted,1)
    for _,cid in ipairs(getJoiners()) do
        doCreatureSetNoMove(cid,false)
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["warning"],"Fight Starts!")
    end
    addEvent(endTeamEvent,eventMaxTime*60*1000,"maxTime")
    doSetStorage(eventTime,os.time()+eventMaxTime*60)
end

function teleportToWaitRoom(cid)
    doTeleportThing(cid,waitRoomPlace)
    doSendMagicEffect(waitRoomPlace,10)
    if getPlayerGroupId(cid) < 4 then
        addToJoiners(cid)
    end
    doPlayerSendTextMessage(cid,MESSAGE_TYPES["blue"],"Please be patient till the event starts and don't logout.")
    return true
end



-- Modifing teams & checking member states
function isBlue(cid)
    return (getPlayerStorageValue(cid,inBlue) > 0)
end
function isRed(cid)
    return (getPlayerStorageValue(cid,inRed) > 0)
end
function isJoiner(cid)
    return (getPlayerStorageValue(cid,joiner) > 0)
end
function addToBlue(cid)
    setPlayerStorageValue(cid,inBlue,1)
    doAddCondition(cid, (getPlayerSex(cid) == 1) and bmale or bfemale)
    doAddCondition(cid,infight)
end
function addToRed(cid)
    setPlayerStorageValue(cid,inRed,1)
    doAddCondition(cid, (getPlayerSex(cid) == 1) and rmale or rfemale)
    doAddCondition(cid,infight)
end
function addToJoiners(cid)
    setPlayerStorageValue(cid,joiner,1)
end
function removeFromBlue(cid)
    setPlayerStorageValue(cid,inBlue,-1)
end
function removeFromRed(cid)
    setPlayerStorageValue(cid,inRed,-1)
end
function removeFromjoiners(cid)
    setPlayerStorageValue(cid,joiner,-1)
end
function isInRecruitArea(cid)
    return isInRange(getThingPos(cid),waitRoomDimensions.startPos,waitRoomDimensions.endPos)
end
function isInFightArea(cid)
    return isInRange(getThingPos(cid),eventPlaceDimensions.startPos,eventPlaceDimensions.endPos)
end
function clearTeamEventStorages(cid)
    if isInRecruitArea(cid) or isInFightArea(cid) then
        doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)))
        doSendMagicEffect(getThingPos(cid),10)
    end

    if isFightOn() then
        if isJoiner(cid) then
            if isBlue(cid) then
                addRedKills()
            elseif isRed(cid) then
                addBlueKills()
            end
            doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],"You have died in Team-Battle Event.")
        end
    end

    removeFromjoiners(cid)
    removeFromBlue(cid)
    removeFromRed(cid)
    doRemoveConditions(cid, false)

end
function haveUnrecivedReward(cid)
    return getPlayerStorageValue(cid,itemToGet) > 0 and getPlayerStorageValue(cid,countItemToGet) > 0
end
function recieveLateReward(cid)
    if haveUnrecivedReward(cid) then
        if not doPlayerAddItem(cid,getPlayerStorageValue(cid,itemToGet),getPlayerStorageValue(cid,countItemToGet),false) then
            msg = "You need to free some space then relog to take your reward."
            doPlayerSendTextMessage(cid,MESSAGE_TYPES["warning"],msg)
        else
            setPlayerStorageValue(cid,itemToGet,-1)
            setPlayerStorageValue(cid,countItemToGet,-1)
            doPlayerSendTextMessage(cid,MESSAGE_TYPES["info"],"You have recieved your reward.")
        end
    end
end

-- Win or lose
function thereIsAWinner()
    if redWon() or blueWon() then
        return true
    end
    return false
end
function blueWon()
    return( (#getBlueMembers() > 0 ) and ( #getRedMembers() == 0) )
end
function redWon()
    return( (#getRedMembers() > 0) and (#getBlueMembers() == 0) )
end
function isDraw()
    return #getBlueMembers() == #getRedMembers()
end
function getWinner()
    if #getBlueMembers() > #getRedMembers() then
        return {getBlueMembers(),getRedMembers(),"Blue team won."}
    elseif #getRedMembers() > #getBlueMembers() then
        return {getRedMembers(),getBlueMembers(),"Red team won."}
    else
        return { {},{},"it was a draw."}
    end
end


-- Adding kills
function addBlueKills()
    doSetStorage(blueKills, math.max(1,getStorage(blueKills)+1))
end
function addRedKills()
    doSetStorage(redKills, math.max(1,getStorage(redKills)+1))
end

-- Ending event

function endTeamEvent(type)
    if isFightOn() then
        doSetStorage(eventStarted,-1)
        doBroadcastMessage("Team-Battle event ended and "..getWinner()[3])
        if not isDraw() then
            win(getWinner()[1],type)
            lose(getWinner()[2],type)
        else
            draw()
        end
    end
    addEvent(resetEvent,2 * 1000) --- tp player to home remove all storages and reset event global storages
end

function getPercent()
    rand= math.random(1,100)
    prev = 0
    chosenItem = 0
    for k, v in pairs(rewards) do
        if rand > prev and rand <= k+prev then
            chosenItem = k
            break
        else
            prev =  k+prev
        end
    end
    return chosenItem
end

function generateReward(cid)
    percent = getPercent()
    if percent == 0 then
        print("Error in the reward item. Please inform Doggynub.")
        return true
    end

    randomizer = rewards[percent][math.random(1,#rewards[percent])]
    item = not tonumber(randomizer[1]) and getItemIdByName(randomizer[1]) or randomizer[1]
    count = isItemStackable(item) and math.min(randomizer[2],100) or 1
    if item == nil or item == 0 then
        print("Error in the  item format. Please inform Doggynub.")
        return true
    end

    msg = "You have won ".. (count == 1 and "a" or count) .." " .. getItemNameById(item) .. "" .. (count == 1 and "" or "s").."."

    if not doPlayerAddItem(cid,item,count,false) then
        msg = msg.. "You need to free some space then relog to take your reward."
        setPlayerStorageValue(cid,itemToGet,item)
        setPlayerStorageValue(cid,countItemToGet,count)
    end

    doPlayerSendTextMessage(cid,MESSAGE_TYPES["white"],msg)

end



function generateStatsMessage(cid, type, stats)
    msg = {
                    ["KO"] = { ["win"] = "Event ended. Your team have won by killing all oponent's team members. You will recieve your reward shortly, check incoming messages.",
                                ["lose"] = "Event ended. Your team have lost as the Oponent team killed all your team's members."
                            },
                    ["maxTime"] = {
                                    ["win"] = "Event max-time finished and your team have won. You will recieve your reward shortly, check incoming messages.",
                                    ["lose"] = "Event max-time finished and your team have lost.",
                                    ["draw"] = "Event max-time finished and it is a draw.(no team won)"
                                }
                }
    doPlayerSendTextMessage(cid,MESSAGE_TYPES["info"],msg[type][stats])

end
function win(winners,type)
    for _,cid in ipairs(winners) do
        generateStatsMessage(cid, type, "win")
        generateReward(cid)
    end
end
function lose(losers,type)
    for _,cid in ipairs(losers) do
        generateStatsMessage(cid, type, "lose")
    end
end
function draw()
    for _,cid in ipairs(getJoiners()) do
        generateStatsMessage(cid, "maxTime", "draw")
    end
end

function resetEvent()
    doSetStorage(eventRecruiting,-1)
    doSetStorage(nextExecute,-1)
    doSetStorage(eventStarted,-1)
    doSetStorage(eventTime,-1)
    doSetStorage(blueKills,-1)
    doSetStorage(redKills,-1)
    for _,cid in ipairs(getPlayersOnline()) do
        if isBlue(cid) or isRed(cid) or isJoiner(cid) then
            clearTeamEventStorages(cid)
        end
    end
end


]]></lib>
<event type="login" name="teambattleLogin" event="script"><![CDATA[
domodlib('teamFunctions')

function onLogin(cid)
    clearTeamEventStorages(cid)
    recieveLateReward(cid)

    registerCreatureEvent(cid, "teamEventStats")
    registerCreatureEvent(cid, "teambattleLogout")
    registerCreatureEvent(cid, "teambattleCombat")
    return true
end
]]></event>
<event type="combat" name="teambattleCombat" event="script"><![CDATA[
domodlib('teamFunctions')

function onCombat(cid, target)
    if isFightOn() then
        if isBlue(cid) and isBlue(target) then
            return false
        end
        if isRed(cid) and isRed(target) then
            return false
        end
    end
    return true
end

]]></event>
<event type="logout" name="teambattleLogout" event="script"><![CDATA[
domodlib('teamFunctions')

function onLogout(cid)
    clearTeamEventStorages(cid)
    if thereIsAWinner() then
        endTeamEvent("KO")
    end
    return true
end

]]></event>
<event type="statschange" name="teamEventStats" event="script"><![CDATA[
domodlib('teamFunctions')

corpse_ids = {
        [0] = 3065, -- female
        [1] = 3058 -- male
}
function onStatsChange(cid, attacker, type, combat, value)
    if combat == COMBAT_HEALING then
        return true
    end
    if getCreatureHealth(cid) > value then
        return true
    end

    if isInFightArea(cid) and isFightOn() then
        if isBlue(cid) or isRed(cid) then
            corpse = doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid))
            doCreateItem(2016, 2, getThingPos(cid))
            clearTeamEventStorages(cid)
            doItemSetAttribute(corpse, "description", "You recognize "..getCreatureName(cid)..". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".\n[Team-Event kill]")
            doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
            if thereIsAWinner() then
                endTeamEvent("KO")
            end

            return false

        end

    end

    return true
end
]]></event>

<globalevent name="teamBattleStart" time="20:02:00" event="script"><![CDATA[
domodlib('teamFunctions')

function onTime()
    resetEvent()
    if getTileItemById(teleporterPosition,1387).uid < 1 then
        tp = doCreateItem(1387,1,teleporterPosition)
        doItemSetAttribute(tp, "aid", 9990)
    end

    startRecruiting()
    for i = 0, recruitTime-1 do
        addEvent(doBroadcastMessage, i * 60* 1000,"Team-Battle event is recruting players by entering event tp. Fight begins in "..(i == 0 and recruitTime or recruitTime-i).." minutes.",MESSAGE_TYPES["warning"])
    end

    addEvent(startEvent, recruitTime * 60 * 1000)

    return true
end


]]></globalevent>

<globalevent name = "teamBattletime" interval="1" event="script"><![CDATA[
domodlib('teamFunctions')

function onThink()
    if isFightOn() then
        disPlayEventStats()

        if getStorage(nextExecute) == -1 or getStorage(nextExecute) <= os.time() then
            doSendLeftPlayers()
            doSetStorage(nextExecute,os.time()+intervalToSendLeftPlayers)
        end
    end
    return true
end

]]></globalevent>
<movevent type="StepIn" actionid="9990" event="script"><![CDATA[
domodlib('teamFunctions')

function onStepIn(cid, item, position, fromPosition)
    if not isRecruitOn() then
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],"Event isn't currently opened.")
        doTeleportThing(cid,fromPosition)
        doSendMagicEffect(fromPosition,2)
        return true
    end
    if getPlayerLevel(cid) < getMinJoinLevel() then
        doPlayerSendTextMessage(cid,MESSAGE_TYPES["orange"],"Only players of level ".. getMinJoinLevel().. "+ can join this event.")
        doTeleportThing(cid,fromPosition)
        return true
    end
    teleportToWaitRoom(cid)
    return true
end




]]> </movevent>
</mod>

i have doRemoveConditions(cid, false)
in line 364
but what can i change it out for?

if getCreatureCondition(cid, CONDITION_OUTFIT) then
doRemoveCondition(cid, CONDITION_OUTFIT)
end
 
Back
Top