<?xml version="1.0" encoding="UTF-8"?>
<mod name="Team Event" version="1.0" author="Damadgerz" contact="
[email protected]" enabled="yes">
<description>
This is a full auto Team BattleEvent(missing part for site) :
1- Player will get the ability to talk to the npc event starter to start the event every x times(time between each event)
2- players will go to npc and say battle and then join their desired team(you adjust team names) , they also have ability to leave team
3- You have ability to set max players per each team, npc will not tp the players to arena except when both teams are full
4- Script automatically set the place of event to a pvp arena (players no lose items,levels,geet msg who killed them).Place cant be a non-pvp area.
5- if player logged out they will automatically be lifted out from event.
6- players in same team cant attack each others even with spells
7- each team will have a uniform
![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
8-you choose where the first team be tped and where the second team be tped
9-when event start, you set a max time for event.So if ppl couldnt kill each other( if players in first team = players in second team when event times finish) They will automatically be sent to temple and no one will take reward and broadcast
![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
10 -during event if max time didnt finish and player of team 1 killed all of those of team2 then players of team1 will be tped to temple broadcasting they won by killing all other members and will recieve a random reward taht you set
11 -Then the event will be on hold untill time between each event pass(you set that) , and when it pass a auto broadcast is made every minute to tell player that event is open.
</description>
<config name="tutorial_m"><![CDATA[
running1 = 12000 --just add a non ussed storage
running2 = 12001 --just add a non ussed storage
joined = 10000 --just add a non ussed storage
sto = 12223 --just add a non ussed storage
check = 5454 -- empty storage
redpotision = {x=1036, y=1021, z=7} --place where the red team player be teleported to
blueposition = {x=1023, y=1021, z=7} --place where the blue team player be teleported to
stoptime = 2 --in minutes
team1name = "Blue" --just put the name without <team>
team2name = "Red"
timebetween = 5 -- time between each event
arena = { frompos = {x=1022,y=1017,z=7}, topos = {x=1037,y=1025,z=7} } ----Put you event area here
conf = {
rewards_id = {2494, 2472, 2514, 2160}, -- Rewards ID
maxplayers = 1 ---maxplayers per team
}
]]></config>
<lib name="football-lib"><![CDATA[
function getBlue()
return getGlobalStorageValue(9888)
end
function removeBlue()
return setGlobalStorageValue(9888, getGlobalStorageValue(9888) - 1)
end
function addBlue()
return setGlobalStorageValue(9888, getGlobalStorageValue(9888) + 1)
end
function resetBlue()
return setGlobalStorageValue(9888,0)
end
function getRed()
return getGlobalStorageValue(9887)
end
function removeRed()
return setGlobalStorageValue(9887, getGlobalStorageValue(9887) - 1)
end
function addRed()
return setGlobalStorageValue(9887, getGlobalStorageValue(9887) + 1)
end
function resetRed()
return setGlobalStorageValue(9887,0)
end
function onStop()
if getGlobalStorageValue(running1) == 1 then
setGlobalStorageValue(running1, -1)
setGlobalStorageValue(sto,1)
end
return true
end
function onStopp()
if getGlobalStorageValue(running2) > 0 then
setGlobalStorageValue(running2,-1)
doBroadcastMessage("Event : event is started again , go talk to the Evnet's Npc.")
end
end
]]></lib>
<event type="login" name="Tutorial Login" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onLogin(cid)
if getPlayerStorageValue(cid,check) > 0 then
if isInRange(getCreaturePosition(cid), arena.frompos, arena.topos) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
setPlayerStorageValue(cid,check,-1)
else
setPlayerStorageValue(cid,check,-1)
end
end
registerCreatureEvent(cid, "Log")
registerCreatureEvent(cid, "Arena")
registerCreatureEvent(cid, "Attk")
return true
end
]]></event>
<event type="combat" name="Attk" event="script"><![CDATA[
domodlib('tutorial_m')
domodlib('football-lib')
function onCombat(cid, target)
if getPlayerStorageValue(cid, joined) == 1 and getPlayerStorageValue(target, joined) == 1 then
return false
end
if getPlayerStorageValue(cid, joined) == 2 and getPlayerStorageValue(target, joined) == 2 then
return false
end
return true
end
]]></event>
<event type="logout" name="Log" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onLogout(cid)
if getPlayerStorageValue(cid,joined) == 1 then
doBroadcastMessage(""..getPlayerName(cid).." have left the War-Event")
setPlayerStorageValue(cid,joined,-1)
setPlayerStorageValue(cid,check,1)
removeBlue()
return true
end
if getPlayerStorageValue(cid,joined) == 2 then
doBroadcastMessage(""..getPlayerName(cid).." have left the War-Event")
setPlayerStorageValue(cid,check,1)
removeRed()
return true
end
return true
end
]]></event>
<event type="statschange" name="Arena" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
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 isInRange(getCreaturePosition(cid), arena.frompos, arena.topos) 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")..".\n[War-Event kill]")
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))
doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You got killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item").." in the war event.")
if isPlayer(attacker) then
doPlayerSendTextMessage(attacker, MESSAGE_STATUS_CONSOLE_BLUE, "You killed "..getCreatureName(cid).." in the war event.")
end
if getPlayerStorageValue(cid,joined) == 1 then
removeBlue()
setPlayerStorageValue(cid,10000,-1)
elseif getPlayerStorageValue(cid,joined) == 2 then
removeRed()
setPlayerStorageValue(cid,10000,-1)
end
end
return true
end
]]></event>
<globalevent name="reset" type="start" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onStartup()
resetBlue()
resetRed()
setGlobalStorageValue(running1,-1)
setGlobalStorageValue(running2,-1)
setGlobalStorageValue(sto,-1)
return true
end
]]></globalevent>
<globalevent name="TeamBattle" interval="7000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
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})
function onThink(interval, lastExecution)
local random_item = conf.rewards_id[math.random(1, #conf.rewards_id)]
if (getBlue() == conf.maxplayers and getRed() == conf.maxplayers) then
if (getGlobalStorageValue(running1) == -1 and getGlobalStorageValue(sto) == -1) then
setGlobalStorageValue(running1,1)
doBroadcastMessage("The Team Battle Event have started.And will end in "..stoptime.." minutes, unless one of the teams has killed all the oponents")
addEvent(onStop, stoptime * 60 * 1000)
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, joined) == 1 then
if getPlayerSex(cid) == 1 then
doAddCondition(cid, bmale)
elseif getPlayerSex(cid) ~= 1 then
doAddCondition(cid, bfemale)
end
doTeleportThing(cid, blueposition, FALSE)
doSendMagicEffect(blueposition, 10)
elseif getPlayerStorageValue(cid, joined) == 2 then
if getPlayerSex(cid) == 1 then
doAddCondition(cid, rmale)
elseif getPlayerSex(cid) ~= 1 then
doAddCondition(cid, rfemale)
end
doTeleportThing(cid, redpotision, FALSE)
doSendMagicEffect(redpotision, 10)
end
end
end
end
if getGlobalStorageValue(running1) == 1 then
setGlobalStorageValue(running2,1)
if (getBlue() >= 1 and getRed() < 1) then
addEvent(onStopp, timebetween * 60 * 1000)
doBroadcastMessage("The War-Event has finished as the " ..team1name.. " team has killed all players in oponnent team ,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
elseif (getBlue() < 1 and getRed() >= 1) then
doBroadcastMessage("The War-Event has finished as the " ..team2name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
addEvent(onStopp, timebetween * 60 * 1000)
end
for _, cid in ipairs(getPlayersOnline()) do
if (getBlue() >= 1 and getRed() < 1) then
if getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doPlayerAddItem(cid, random_item, 1)
doRemoveConditions(cid, FALSE)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, joined,-1)
setGlobalStorageValue(running1,-1)
resetBlue()
end
end
if (getBlue() < 1 and getRed() >= 1) then
if getPlayerStorageValue(cid,joined) == 2 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doRemoveConditions(cid, FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doPlayerAddItem(cid, random_item, 1)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setGlobalStorageValue(running1,-1)
setPlayerStorageValue(cid, joined,-1)
resetRed()
end
end
end
end
return true
end
]]></globalevent>
<globalevent name="Team" interval="3000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onThink(interval, lastExecution)
local random_item = conf.rewards_id[math.random(1, #conf.rewards_id)]
if getGlobalStorageValue(sto) == 1 then
if (getRed() > getBlue()) then
doBroadcastMessage("The War-Event has finished as the " ..team2name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid,joined) == 2 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
doPlayerAddItem(cid, random_item, 1)
doRemoveConditions(cid, FALSE)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, joined,-1)
end
if getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doPlayerSendTextMessage(cid,24, "Your team has lost in the war event war event")
setPlayerStorageValue(cid, joined,-1)
doRemoveConditions(cid, FALSE)
end
end
addEvent(onStopp, timebetween * 60 * 1000)
end
if (getRed() < getBlue()) then
doBroadcastMessage("The War-Event has finished as the " ..team1name.. " team has killed all players in oponnent team,they will recieve their rewards.Event will be reopened in ".. timebetween .." minutes")
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doPlayerAddItem(cid, random_item, 1)
doRemoveConditions(cid, FALSE)
doRemoveConditions(cid, FALSE)
doCreatureSay(cid, "You have won a "..getItemNameById(random_item).." as a reward from war event", TALKTYPE_ORANGE_1)
setPlayerStorageValue(cid, joined,-1)
end
if getPlayerStorageValue(cid,joined) == 2 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doRemoveConditions(cid, FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doPlayerSendTextMessage(cid,24, "Your team has lost in the war event war event")
setPlayerStorageValue(cid, joined,-1)
end
end
addEvent(onStopp, timebetween * 60 * 1000)
end
if (getRed() == getBlue()) then
for _, cid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(cid,joined) == 2 or getPlayerStorageValue(cid,joined) == 1 then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), FALSE)
doRemoveConditions(cid, FALSE)
doSendMagicEffect(getCreaturePosition(cid), 10)
doRemoveConditions(cid, FALSE)
setPlayerStorageValue(cid, joined,-1)
doBroadcastMessage("Event max time ended.And niether of the teams won the event.Event will be reopened in ".. timebetween .." minutes")
end
end
addEvent(onStopp, timebetween * 60 * 1000)
end
resetBlue()
resetRed()
setGlobalStorageValue(sto, -1)
end
return true
end
]]></globalevent>
<globalevent name="Broad" interval="90000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onThink(interval, lastExecution)
if getGlobalStorageValue(running2) == -1 then
doBroadcastMessage("The Battle Event is opened.Npc is gathering 2 teams to start event. There is "..getBlue().." players in blue team vs "..getRed().." players in red team.")
return true
end
return true
end
]]></globalevent>
<globalevent name="Karim" interval="40000" event="script"><![CDATA[
domodlib('football-lib')
domodlib('tutorial_m')
function onThink(interval, lastExecution)
if getGlobalStorageValue(running1) > 0 then
local blue = {}
local green = {}
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getCreaturePosition(pid),arena.frompos, arena.topos) then
if getPlayerStorageValue(pid, joined) == 1 then
table.insert(blue,getCreatureName(pid))
elseif getPlayerStorageValue(pid, joined) == 2 then
table.insert(green,getCreatureName(pid))
end
end
end
local greenn = table.concat(green,', ')
local bluee = table.concat(blue,', ')
for _, tid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(tid, joined) > 0 then
doPlayerSendTextMessage(tid,19,'<<!-- Players left --!>>\n '..team1name..' team ('..#blue..') : '..bluee..'.\n '..team2name..' team ('..#green..') : '..greenn..'.')
end
end
end
return true
end
]]></globalevent>
</mod>