ss eu testei no distro deu nenhum erro e so nao sei como eu inicio o evento e como os player vao para o a batalha kero ke deixe mais configuraval isso e tbm tipo toda veiz ke tiver 100 player on por exemplo iniciasse o evento com e 10 minutos antes mandasse broadcast para todos ve se consegue nao precisa deixar do geito ke to falando deixa parecido vai da sua capacidade sl eu vi ke vc e muito bom vc ja me ajudo muito com akele sistema de pegar frags ta ligado.
valendo rep + vlw.
desculpe deu um erro agora eu tava testando outra coisa no distro deu esse erro
[ERROR globalevents::think] couldn't execute event; start_ctf
eu axei outro ele funciona eu testei so ke ele da uns erro no distro quando o evento ta começando e talzs sao muitos erro so ke uma coisa ke nao deu certo.
eu passei por cima do tile ke pega a flag so ke nao funfa eu passo por cima nao acontece nada dai volto pra base tbm nao aparece ke eu peguei a flag no placar se alguem souber como é eu agredeço.
na onde eu peguei os cara nao explico nada e o topico e abandonado
<?xml version="1.0" encoding="utf-8"?>
<mod name="CTF" version="1.0" author="Doggynub" contact="otland.net" enabled="yes">
<config name="toto"><![CDATA[[/b]
[b]--[[ Storage Settings]]--[/b]
[b]Owner = 1900 -- put empty storage[/b]
[b]FLAG2_INn = 4000 -- put empty storage[/b]
[b]FLAG_IN = 4001 -- put empty storage[/b]
[b]TEAM1_FLAGS = 3030 -- put empty storage[/b]
[b]TEAM2_FLAGS = 3031 -- put empty storage[/b]
[b]Event_Start = 3032 -- put empty storage[/b]
[b]Event_timeend = 3033 -- put empty storage[/b]
[b]Event_Tile_Close = 3039 -- put empty storage[/b]
[b]joined = 2023 --put empty storage[/b]
[b]Timer = 1010 --put empty storage[/b]
[b]--------------------------------------[/b]
[b]--[[ Places setting ]]--[/b]
[b]BLUE_FLAG = {x=1019,y=584,z=7} -- Blue flag Place[/b]
[b]RED_FLAG = {x=1018,y=602,z=7} --red flag Place[/b]
[b]Tp_Place = {x=1000,y=996,z=7} -- Place where the event teleport will be created.[/b]
[b]Wait_Place = {x=1016,y=594,z=7} -- Positions Players will be sent when the enter event's teleport[/b]
[b]frompos = {x=1016, y=591, z=7} --start sqm in the waiting room(1 floor)[/b]
[b]topos = {x=1016,y=596,z=7} -- end sqm in the waiting room(1 floor)[/b]
[b]Red_Position = {x=1022,y=604,z=7} -- Red team temple pos[/b]
[b]Blue_Position = {x=1022,y=585,z=7} -- Blue team temple pos[/b]
[b]---------------------------------------[/b]
[b]--[[Event setting ]]--[/b]
[b]Event_WaitTime = 5 -- time for the collection of player then event will start (in minutes)[/b]
[b]Event_MaxTime = 10 --- in minutes ( this is the max time for an event to bb running )[/b]
[b]Players_Speed = 20000 -- put the level of base speed in event ( like if you want the speed of lvl 300 then wright 300)[/b]
[b] Flag_Holder_Speed = 20000 -- [Old-Styled feature] speed for the player when he hold a flag better not to increase.[/b]
[b]TEAM2_NAME = "Red" -- team 2 name[/b]
[b]TEAM1_NAME = "Green" -- team 1 name[/b]
[b]FLAG_SCORE = 5 -- score when team gets he wins[/b]
[b]Teleport_On_Score = false -- this teleport all players to their team main position when some one score a flag , make false to disable.[/b]
[b]Players_Least_Number = 2 -- this means if there is less than 2 players joined the event will be cancelled[/b]
[b]Min_Join_Level = 100 -- min lvl for a player to join event[/b]
[b]rewards_random = {
[60] = { -- Rewards of 60% , if it is then it will randomly give one of the items in the items verible if there you put more than one item there
items = {9971,9971,9971}
},[/b]
[b] [30] = { -- Rewards of 30%
items = {9971,9971,9971}
},[/b]
[b] [10] = { -- Rewards of 10%
items = {9971,9971,9971}
}
}[/b]
[b]]]></config>
<lib name="CTF-lib"><![CDATA[
function isTeamTwo(cid)
return (isPlayer(cid) and getPlayerStorageValue(cid,5054) > -1)
end
function isTeamOne(cid)
return (isPlayer(cid) and getPlayerStorageValue(cid,5055) > -1)
end
function resetTheTeams(cid)
return (isPlayer(cid) and setPlayerStorageValue(cid,5054,-1) and setPlayerStorageValue(cid,5055,-1))
end
function setflagOwner(cid)
return setPlayerStorageValue(cid,Owner,1)
end
function flagOwner(cid)
return (isPlayer(cid) and getPlayerStorageValue(cid,Owner) > 0)
end
function releaseBF(cid)
setGlobalStorageValue(FLAG_IN,-1)
setPlayerStorageValue(cid,103, 0)
setPlayerStorageValue(cid,Owner,-1)
return true
end
function releaseRF(cid)
setGlobalStorageValue(FLAG2_INn,-1)
setPlayerStorageValue(cid,103, 0)
setPlayerStorageValue(cid,Owner,-1)
return true
end
function setFirstTeam(cid)
return setPlayerStorageValue(cid,5055,1)
end
function setSecondTeam(cid)
return setPlayerStorageValue(cid,5054,2)
end
function addToRed()
return setGlobalStorageValue(TEAM2_FLAGS,getGlobalStorageValue(TEAM2_FLAGS)+1)
end
function addToBlue()
return setGlobalStorageValue(TEAM1_FLAGS,getGlobalStorageValue(TEAM1_FLAGS)+1)
end
function getBlueScore()
return getGlobalStorageValue(TEAM1_FLAGS)
end
function getRedScore()
return getGlobalStorageValue(TEAM2_FLAGS)
end
function getTheSpeed(level)
value = (220 +(2 *(level -1)))
return value
end[/b]
[b]function resetTheStorage()
setGlobalStorageValue(Event_Start,-1)
setGlobalStorageValue(Event_timeend,-1)
setGlobalStorageValue(TEAM1_FLAGS,0)
setGlobalStorageValue(FLAG2_INn,-1)
setGlobalStorageValue(FLAG_IN,-1)
setGlobalStorageValue(TEAM2_FLAGS,0)
return true
end
function blueStolen()
return getGlobalStorageValue(FLAG_IN)
end
function redStolen()
return getGlobalStorageValue(FLAG2_INn)
end
function giveReward(cid)
local t = math.random(1,100)
if t <= 10 then
local rare = rewards_random[10].items[math.random(1,#rewards_random[10].items)]
doPlayerAddItem(cid,rare,1)
doPlayerSendTextMessage(cid,25,"Rare rate Reward : you won "..getItemNameById(rare)..".")[/b]
[b]elseif t > 10 and t <= 40 then
local semi = rewards_random[30].items[math.random(1,#rewards_random[30].items)]
doPlayerAddItem(cid,semi,1)
doPlayerSendTextMessage(cid,25,"Semi rate Reward : you won "..getItemNameById(semi)..".")[/b]
[b]elseif t > 40 then
local aver = rewards_random[60].items[math.random(1,#rewards_random[60].items)]
doPlayerAddItem(cid,aver,1)
doPlayerSendTextMessage(cid,25,"Averege rate Reward : you won "..getItemNameById(aver)..".")
end
return true
end
]]></lib>
<event type="login" name="Tutorial Login" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
function onLogin(cid)
if getGlobalStorageValue(Event_Start) < 1 then
if isTeamOne(cid) or isTeamTwo(cid) then
resetTheTeams(cid)
end
end
registerCreatureEvent(cid, "Attk")
registerCreatureEvent(cid, "ctff")
registerCreatureEvent(cid, "prepare")
return true
end
]]></event>
<event type="combat" name="Attk" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')[/b]
[b]function onCombat(cid, target)
if isTeamOne(cid) and isTeamOne(target) then
return false
end
if isTeamTwo(cid) and isTeamTwo(target) then
return false
end
return true
end
]]></event>
<event type="statschange" name="prepare" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')[/b]
[b]local 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 getGlobalStorageValue(Event_Start) > 0 then
if flagOwner(cid) then
if isTeamOne(cid) then
doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "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").."[Flag Holder].")
doTeleportThing(cid,Blue_Position,false)
doSendMagicEffect(Blue_Position,10)
doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
doCreatureAddMana(cid,getCreatureMaxMana(cid))
releaseRF(cid)
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) or isTeamTwo(cid) then
doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " has died with the "..TEAM2_NAME.." team flag. The flag is returned back to the "..TEAM1_NAME.." team.")
end
end
return false
elseif isTeamTwo(cid) then
doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "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").."[Flag Holder].")
doTeleportThing(cid,Red_Position,false)
doSendMagicEffect(Red_Position,10)
doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
doCreatureAddMana(cid,getCreatureMaxMana(cid))
releaseBF(cid)
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) or isTeamTwo(cid) then
doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " has died with the "..TEAM1_NAME.." team flag. The flag is returned back to the "..TEAM1_NAME.." team.")
end
end
return false
end[/b]
[b] else
if isTeamOne(cid) or isTeamTwo(cid) then
doItemSetAttribute(doCreateItem(corpse_ids[getPlayerSex(cid)], 1, getThingPos(cid)), "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").."[Normal kill].")
doTeleportThing(cid,( isTeamTwo(cid) and Red_Position or Blue_Position ),false)
doSendMagicEffect(Red_Position,10)
doCreatureAddHealth(cid,getCreatureMaxHealth(cid))
doCreatureAddMana(cid,getCreatureMaxMana(cid))
return false
end
end[/b]
[b] end
return true
end[/b]
[b]]]></event>
<movevent type="StepIn" actionid="6000" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')[/b]
[b]function eventEnds()
doBroadcastMessage('CTF-Event : The '..TEAM2_NAME..' team won and reciaved their reward.')
for _,cid in ipairs(getPlayersOnline()) do
if isTeamTwo(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
giveReward(cid)[/b]
[b] elseif isTeamOne(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
doPlayerSendTextMessage(cid,22,'Your team have lost.')
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
end
end
addEvent(resetTheStorage,5)
end
function onStepIn(cid, item, position, fromPosition)
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
if isTeamTwo(cid) and redStolen() < 0 then
if not flagOwner(cid) then
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
doPlayerSendTextMessage(cid, 27, "This is your team flag, you cant take it!")
end
elseif isTeamTwo(cid) and redStolen() > 0 and blueStolen() < 0 then
doPlayerSendTextMessage(cid, 27, "Your team's Flag has been stolen, go get it back!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
return true
end
if isTeamTwo(cid) and flagOwner(cid) and blueStolen() > 0 and redStolen() < 0 then
if getRedScore() == FLAG_SCORE -1 then
addEvent(eventEnds,1000)
addToRed()
doTeleportThing(cid, fromPosition,TRUE)
doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
releaseBF(cid)
for _,tid in ipairs(getPlayersOnline()) do
if isTeamOne(tid) or isTeamTwo(tid) then
doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the last flag and earned match win to the ".. TEAM2_NAME.." team!")
end
end
else
releaseBF(cid)
addToRed()
doTeleportThing(cid, fromPosition,TRUE)
doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
for _,tid in ipairs(getPlayersOnline()) do
if isTeamOne(tid) or isTeamTwo(tid) then
doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the flag and earned 1 point to the ".. TEAM2_NAME.." team!")
if Teleport_On_Score == true then
doTeleportThing(tid,( isTeamTwo(tid) and Red_Position or Blue_Position ), false)
doSendMagicEffect(getThingPos(tid),10)
end
end
end
end
end
if isTeamOne(cid) then
if blueStolen() < 0 and redStolen() > 0 then
if flagOwner(cid) then
doPlayerSendTextMessage(cid, 27, "You already holding the flag!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
elseif (not flagOwner(cid)) then
doPlayerSendTextMessage(cid, 27, "Your Team mates already stole the oponent flag, defend him!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
end
elseif blueStolen() > 0 and redStolen() < 0 then
doPlayerSendTextMessage(cid, 27, "Your team's flag is taken you can't capture or steel a flag!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
end
if redStolen() < 0 and blueStolen() < 0 then
setGlobalStorageValue(FLAG2_INn,1)
setflagOwner(cid)
setPlayerStorageValue(cid,103, os.time()+300)
doTeleportThing(cid, fromPosition,TRUE)
doChangeSpeed(cid, getTheSpeed(Flag_Holder_Speed)- getCreatureSpeed(cid) )
for _,tid in ipairs(getPlayersOnline()) do
if isTeamOne(tid) or isTeamTwo(tid) then
doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " stolen the "..TEAM2_NAME.." team flag!")
end
end
end
end
end
return true
end
]]></movevent>
<movevent type="StepIn" actionid="3435" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
if getStorage(Event_Tile_Close) > 0 then
if getPlayerLevel(cid) < Min_Join_Level then
doTeleportThing(cid,fromPosition,false)
doSendMagicEffect(fromPosition,10)
doPlayerSendTextMessage(cid,21,"Only players of level "..Min_Join_Level.." are allowed to pass.")
else
doTeleportThing(cid,Wait_Place,false)
doSendMagicEffect(Wait_Place,10)
end
else
doTeleportThing(cid,fromPosition,false)
doSendMagicEffect(fromPosition,10)
doPlayerSendTextMessage(cid,21,"Come back later, event is closed now.")
end
return true
end[/b]
[b]]]></movevent>
<movevent type="StepIn" actionid="6001" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')[/b]
[b]function eventEnded()
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
doBroadcastMessage('CTF-Event : The '.. TEAM1_NAME..' team won and reciaved their reward.')
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
giveReward(cid)
elseif isTeamTwo(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
doPlayerSendTextMessage(cid,22,'Your team have lost.')
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
end
end
end
addEvent(resetTheStorage,5)
end
function onStepIn(cid, item, position, fromPosition)
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
if isTeamOne(cid) and blueStolen() < 0 then
if not flagOwner(cid) then
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
doPlayerSendTextMessage(cid, 27, "This is your team flag, you cant take it!")
end
elseif isTeamOne(cid) and blueStolen() > 0 and redStolen() < 0 then
doPlayerSendTextMessage(cid, 27, "Your team's Flag has been stolen, go get it back!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
return true
end
if isTeamOne(cid) and flagOwner(cid) and redStolen() > 0 and blueStolen() < 0 then
if getBlueScore() == FLAG_SCORE -1 then
addEvent(eventEnded,1000)
addToBlue()
doTeleportThing(cid, fromPosition,TRUE)
doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
releaseRF(cid)
for _,tid in ipairs(getPlayersOnline()) do
if isTeamOne(tid) or isTeamTwo(tid) then
doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the last flag and earned match win to the ".. TEAM1_NAME.." team!")
end
end
else
releaseRF(cid)
addToBlue()
doTeleportThing(cid, fromPosition,TRUE)
doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid) )
for _,tid in ipairs(getPlayersOnline()) do
if isTeamOne(tid) or isTeamTwo(tid) then
doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " have captured the flag and earned 1 point to the ".. TEAM1_NAME.." team!")
if Teleport_On_Score == true then
doTeleportThing(tid,( isTeamTwo(tid) and Red_Position or Blue_Position ), false)
doSendMagicEffect(getThingPos(tid),10)
end
end
end
end
end
if isTeamTwo(cid) then
if blueStolen() > 0 and redStolen() < 0 then
if flagOwner(cid) then
doPlayerSendTextMessage(cid, 27, "You already holding the flag!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
elseif (not flagOwner(cid)) then
doPlayerSendTextMessage(cid, 27, "Your Team mates already stole the oponent flag, defend him!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
end
elseif redStolen() > 0 and blueStolen() < 0 then
doPlayerSendTextMessage(cid, 27, "Your team's flag is taken you can't capture or steel a flag!")
doTeleportThing(cid, fromPosition,TRUE)
doSendMagicEffect(getThingPos(cid),2)
end
if blueStolen() < 0 and redStolen() < 0 then
setGlobalStorageValue(FLAG_IN,1)
setflagOwner(cid)
setPlayerStorageValue(cid,103, os.time()+300)
doTeleportThing(cid, fromPosition,TRUE)
doChangeSpeed(cid, getTheSpeed(Flag_Holder_Speed)- getCreatureSpeed(cid) )
for _,tid in ipairs(getPlayersOnline()) do
if isTeamOne(tid) or isTeamTwo(tid) then
doPlayerSendTextMessage(tid,22,getCreatureName(cid) .. " stolen the "..TEAM1_NAME.." team flag!")
end
end
end
end
end
return true
end
]]></movevent>
<globalevent name="ctf" interval="900" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
local players = {}
local bmale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bmale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bmale, {lookType = math.random(128,134), lookHead = 115, lookBody =114, lookLegs = 81, lookFeet = 81, lookTypeEx = 0, lookAddons = 3})[/b]
[b]local bfemale = createConditionObject(CONDITION_OUTFIT)
setConditionParam(bfemale, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(bfemale, {lookType = math.random(136,142), lookHead = 115, lookBody =114, lookLegs = 81, lookFeet = 81, lookTypeEx = 0, lookAddons = 3})[/b]
[b]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})[/b]
[b]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 fight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(fight, CONDITION_PARAM_TICKS, -1)
function eventEnd()
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
if getRedScore() > getBlueScore() then
doBroadcastMessage('CTF-Event : The '.. TEAM2_NAME..' team won and recieved their reward.')
for _,cid in ipairs(getPlayersOnline()) do
if isTeamTwo(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
giveReward(cid)
elseif isTeamOne(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
doPlayerSendTextMessage(cid,22,'Your team have lost.')
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
end
end[/b]
[b] elseif getRedScore() < getBlueScore() then
doBroadcastMessage('CTF-Event : The '.. TEAM1_NAME..' team won and recieved their reward.')
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
giveReward(cid)
elseif isTeamTwo(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
doPlayerSendTextMessage(cid,22,'Your team have lost.')
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
end
end
elseif getRedScore() == getBlueScore() then
doBroadcastMessage('CTF-Event : The Event ended with a draw between both teams.')
for _,cid in ipairs(getPlayersOnline()) do
if isTeamTwo(cid) or isTeamOne(cid) then
doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid)),false)
doSendMagicEffect(getTownTemplePosition(getPlayerTown(cid)),10)
doRemoveConditions(cid,false)
doPlayerSendTextMessage(cid,22,'It was a draw between both teams.')
resetTheTeams(cid)
doChangeSpeed(cid, getTheSpeed(getPlayerLevel(cid)) - getCreatureSpeed(cid))
end
end[/b]
[b] end
addEvent(resetTheStorage,1000)
end
end[/b]
[b]function eventStart()
doSetStorage(Event_Tile_Close,-1)
setGlobalStorageValue(Event_timeend,1)
setGlobalStorageValue(Timer, os.time() + Event_MaxTime*60)
addEvent(eventEnd,Event_MaxTime*60*1000)[/b]
[b] for v = frompos.x , topos.x do
for k = frompos.y , topos.y do
for i = 1, 200 do
position = {x = v, y = k, z = 7, stackpos = i}
pid = getThingfromPos(position).uid
if(pid ~= nil and isPlayer(pid)) then
table.insert(players, pid)
end
end
end
end
if math.mod(#players, 2) ~= 0 then
doTeleportThing(players[#players],getTownTemplePosition(getPlayerTown(players[#players])),false)
doSendMagicEffect(getThingPosition(players[#players]),10)
doPlayerSendTextMessage(players[#players], 19, "Sorry, you have been kicked from event to balance teams.")
table.remove(players)
end
if #players < Players_Least_Number then
doBroadcastMessage("CTF event was cancelled because less than "..Players_Least_Number.." players joined")
resetTheStorage()
if #players > 0 then
for i = 1,#players do
doTeleportThing(players[i],getTownTemplePosition(getPlayerTown(players[i])),false)
doSendMagicEffect(getThingPos(players[i]), 10)
end
end
else
doBroadcastMessage("CTF started")
for i = 1, math.floor(#players/2) do
setFirstTeam(players[i])
end
for i = math.floor(#players/2)+1 , #players do
setSecondTeam(players[i])
end
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) then
if getPlayerSex(cid) == 1 then
doAddCondition(cid, bmale)
elseif getPlayerSex(cid) ~= 1 then
doAddCondition(cid, bfemale)
end
doAddCondition(cid, fight)
doTeleportThing(cid,Blue_Position,false)
doSendMagicEffect(Blue_Position, 10)
doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid))
elseif isTeamTwo(cid) then
if getPlayerSex(cid) == 1 then
doAddCondition(cid, rmale)
elseif getPlayerSex(cid) ~= 1 then
doAddCondition(cid, rfemale)
end
doAddCondition(cid, fight)
doTeleportThing(cid,Red_Position,false)
doSendMagicEffect(Red_Position, 10)
doChangeSpeed(cid, getTheSpeed(Players_Speed) - getCreatureSpeed(cid))
end
end
players = {}[/b]
[b] end
end
function onThink(interval)
if getGlobalStorageValue(Event_Start) < 0 then
setGlobalStorageValue(Event_Start,1)
doSetStorage(Event_Tile_Close,1)
doBroadcastMessage("CTF event is opened and teleport is created. It will start in "..Event_WaitTime.." minutes.")
players = {}
if getTileItemById(Tp_Place, 1387).uid < 1 then
doItemSetAttribute(doCreateItem(1387,1, Tp_Place), "aid", 3435)
end[/b]
[b] f= Event_WaitTime - 1
for i = 1,Event_WaitTime-1 do
addEvent(doBroadcastMessage,i*60*1000,"CTF event is opened and teleport is created. It will start in "..f.." minutes.")
f= f-1
end
addEvent(eventStart,Event_WaitTime*60*1000)
end
return true
end
]]></globalevent>
<event type="think" name="ctff" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')[/b]
[b]local bl = BLUE_FLAG
local re = RED_FLAG
function onThink(interval)
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
if redStolen() < 0 then
doSendAnimatedText(re,"FLAG!",TEXTCOLOR_DARKRED)
doSendMagicEffect(re, CONST_ME_SOUND_RED)
end
if blueStolen() < 0 then
doSendAnimatedText(bl,"FLAG!",TEXTCOLOR_GREEN)
doSendMagicEffect(bl, CONST_ME_SOUND_GREEN)
end
for _, cid in ipairs(getPlayersOnline()) do
if flagOwner(cid) then
if isTeamOne(cid) or isTeamTwo(cid) then
if hasCondition(cid,CONDITION_HASTE) then
doRemoveCondition(cid,CONDITION_HASTE)
end
end
pl = getThingPos(cid)
if isTeamTwo(cid) then
if getPlayerStorageValue(cid,103) < os.time() then
releaseBF(cid)
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) or isTeamTwo(cid) then
doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " wasted 5 minutes with FLAG."..TEAM2_NAME.." flag is again on spawn!")
end
end
else
doSendAnimatedText(pl,"FLAG!",TEXTCOLOR_GREEN)
doSendMagicEffect(pl, CONST_ME_SOUND_GREEN)
end
elseif isTeamOne(cid) then
if getPlayerStorageValue(cid,103) < os.time() then
releaseRF(cid)
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) or isTeamTwo(cid) then
doPlayerSendTextMessage(cid,22,getCreatureName(cid) .. " wasted 5 minutes with FLAG."..TEAM1_NAME.." flag is again on spawn!")
end
end
else
doSendAnimatedText(pl,"FLAG!",COLOR_RED)
doSendMagicEffect(pl, CONST_ME_SOUND_RED)
end
end
end
end
end
return true
end
]]></event>
<globalevent name="timer" interval="0.4" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')[/b]
[b]function onThink(interval)
for _,cid in ipairs(getPlayersOnline()) do
if isTeamOne(cid) or isTeamTwo(cid) then
if getGlobalStorageValue(Event_Start) > 0 and getGlobalStorageValue(Event_timeend) > 0 then
if getGlobalStorageValue(Timer)- os.time() >= 0 then
doPlayerSendCancel(cid, "Time -> ".. os.date("%M:%S ",getGlobalStorageValue(Timer)- os.time()) .. " | ".. TEAM1_NAME.." Score : "..getBlueScore(cid).."/"..FLAG_SCORE.." captures | ".. TEAM2_NAME.." Score : "..getRedScore(cid).."/"..FLAG_SCORE.." captures")
end
end
end
end
return true
end
]]></globalevent>
<globalevent name="starting" type="startup" event="script"><![CDATA[
domodlib('toto')
domodlib('CTF-lib')
function onStartup()
resetTheStorage()[/b]
[b]return true
end
]]></globalevent>
</mod>[/b]
[b]