• 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!

Lua How to make this battle event runs 2 times per day ?

mRefaat

Marketing and Coding
Joined
Jan 18, 2014
Messages
854
Solutions
3
Reaction score
141
Location
Egypt
Hello,

I am using @Doggynub battle war event mod.
I want to make it runs twice per day in a specific time, how can this be done ?

XML:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Team Event" version="2.0" author="Damadgerz" contact="[email protected]" enabled="yes">
 <description>
Full auto Team BattleEvent(v2.0) for 0.3.6PL1  :
        
        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 dislike the previous one , was tested on 0.3.6PL1 and works just fine.

        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 = 96, y = 117, z = 7}                            --Place where the event tp will be created

waitRoomPlace =     {x = 144, y = 41, 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 = 134, y = 31, z = 7},
                            endPos = {x = 156, y = 53, z = 7}
                            }
                            

eventPlaceDimensions = {                                                    --Enter the start pos[top left sqm] and end pos[bottom right sqm] of event place here
                            startPos = {x = 176, y = 53, z = 7},
                            endPos = {x = 209, y = 74, z = 7}
                            }
blueTeamPos = {x = 180, y = 56, z = 7}
redTeamPos = {x = 204, y = 72, z = 7}


--// General settings

recruitTime = 1                                    -- 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 = 5                                    -- 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 = 50                                    -- minimm lvl that can join event

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

                    [65] = { {2476,1} , {"gold coin",500} },
                    [25] = { {"golden armor",1} , {2152,90} },
                    [10] = { {"dragon scale mail",1} , {"crystal coin",10} }
                }
                
            --[[ 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="00:58" event="script"><![CDATA[
domodlib('teamFunctions')

function onTimer()
    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>
 
Solution
E
I don't remember how mods works, but I guess you could just add a new line like this on line 600:
with the time that you want the event to happen (idk if globalevent supports duplicated event name, but whatever)
<globalevent name = "teamBattleStart" time="00:58" event="script">
I don't remember how mods works, but I guess you could just add a new line like this on line 600:
with the time that you want the event to happen (idk if globalevent supports duplicated event name, but whatever)
<globalevent name = "teamBattleStart" time="00:58" event="script">
 
Solution
I don't remember how mods works, but I guess you could just add a new line like this on line 600:
with the time that you want the event to happen (idk if globalevent supports duplicated event name, but whatever)
<globalevent name = "teamBattleStart" time="00:58" event="script">
I will try it
 
That's a MOD script its all in one script if you scroll down you'll find the globalevents line/script
XML:
<globalevent name = "teamBattleStart" time="00:58" event="script">
 
I don't remember how mods works, but I guess you could just add a new line like this on line 600:
with the time that you want the event to happen (idk if globalevent supports duplicated event name, but whatever)
<globalevent name = "teamBattleStart" time="00:58" event="script">
Thanks for the idea.
I made new lines with different globalevent name and it worked and that's what I did

XML:
<globalevent name = "teamBattleStart" time="13:51: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 = "teamBattleStart2" time="14:01: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>
 
Back
Top