Daniel Kopeć
Member
While the Rush Event is running, every player who dies (even the one who is not participating in the event) appears at the temple event after death.
So if, for example, someone hunts and dies, he will appear on the event after death ( During the rush event).
Where could there be an error in the script and how to fix it so that players who do not participate in the event appear in the normal temple after death ?
And they didn't get teleported to the rush event after death For example, on spawns.
TFS 0.4 Tibia 8.6
data/mods:
So if, for example, someone hunts and dies, he will appear on the event after death ( During the rush event).
Where could there be an error in the script and how to fix it so that players who do not participate in the event appear in the normal temple after death ?
And they didn't get teleported to the rush event after death For example, on spawns.
TFS 0.4 Tibia 8.6
data/mods:
XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Rush Event" version="1.0" author="ChaitoSoft.com" contact="[email protected]" enabled="yes">
<config name="re"><![CDATA[
t = {
a = 32145,
g = 32146,
l = 32147,
u = 32148,
h = 32149,
wv = 32150,
c = 0,
q = "Rush Event zostal rozpoczety, milej zabawy!",
f = 5447,
f_1 = 5448,
f_2 = 5449,
d_1 = {x = 16841, y = 16411, z = 7}, -- red temple
d_2 = {x = 16898, y = 16379, z = 7}, -- blue temple
x = "Event anulowany, poniewaz zbyt malo chetnych osób do wziecia udzialu.",
w = {x = 16871, y = 16457, z = 7},
lvl = 200,
v = 50,
mn = 6,
m = 40,
o = "Event zakonczony, Team CZERWONYCH wygral walke!",
y = "Event zakonczony, Team NIEBIESKICH wygral walke!",
i_1 = 2157,
i_2 = 1,
t = 3,
r = 5
}
]]></config>
<globalevent name="Recognition" interval="150000" event="script"><![CDATA[
domodlib('re')
function onThink(interval, lastExecution, thinkInterval)
if(getGlobalStorageValue(t.a) == 1) then
for _, pid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(pid, t.f) == 1 then
if(getPlayerStorageValue(pid, t.f_1) == 0) then
doSendAnimatedText(getCreaturePosition(pid), "RED TEAM", TEXTCOLOR_RED)
elseif(getPlayerStorageValue(pid, t.f_1) == 1) then
doSendAnimatedText(getCreaturePosition(pid), "BLUE TEAM", TEXTCOLOR_LIGHTBLUE)
end
end
end
return true
end
return true
end
]]></globalevent>
<talkaction words="!start" event="script"><![CDATA[
domodlib('re')
function onSay(cid, words, param, channel)
if getPlayerGroupId(cid) > 3 then
setGlobalStorageValue(t.g, 1)
setGlobalStorageValue(t.u, 0)
setGlobalStorageValue(t.l, 0)
setGlobalStorageValue(t.a, 1)
setGlobalStorageValue(t.c, 0)
setGlobalStorageValue(t.wv, 0)
doBroadcastMessage("Rush Event: Jesli chcesz dolaczyc wpisz komende: !rush, walka za ".. t.t .." minuty. ", MESSAGE_STATUS_WARNING)
addEvent(function()
doBroadcastMessage("Rush Event, startuje za 2 minuty. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
end, (t.t - 2) * 1000 * 60)
addEvent(function()
doBroadcastMessage("Rush Event, startuje za 1 minute. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
end, (t.t - 1) * 1000 * 60)
addEvent(start, t.t * 1000 * 60)
return true
end
return true
end
function results()
if(getGlobalStorageValue(t.a) == 1) then
local red = getGlobalStorageValue(t.l)
local blue = getGlobalStorageValue(t.u)
doBroadcastMessage("Rush Event, wyniki:\nTeam Czerwonych zdobyl: ".. red .." fragów.\nTeam Niebieskich zdobyl: ".. blue .." fragów.\nWalka trwa do ".. t.v .." fragów.", MESSAGE_STATUS_WARNING)
addEvent(results, t.r * 1000 * 60)
end
end
function start()
if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
setGlobalStorageValue(t.wv, 1)
addEvent(results, t.r * 1000 * 60)
for _, pid in ipairs(getPlayersOnline()) do
local myOutfit = getCreatureOutfit(pid)
local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
if getPlayerStorageValue(pid, t.f) == 1 then
doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
doCreatureAddMana(pid, getCreatureMaxMana(pid))
if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
doCreatureChangeOutfit(pid, red)
setPlayerStorageValue(pid, t.h, 0)
doTeleportThing(pid, t.d_1)
setPlayerStorageValue(pid, t.f, 1)
setPlayerStorageValue(pid, t.f_1, 0)
setPlayerStorageValue(pid, t.f_2, 1)
doSendMagicEffect(getCreaturePosition(pid), 10)
doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Czerwonych!\nWalka bedzie trwala do ".. t.v .." fragów, Powodzenia!")
else
doCreatureChangeOutfit(pid, blue)
doTeleportThing(pid, t.d_2)
setPlayerStorageValue(pid, t.h, 0)
setPlayerStorageValue(pid, t.f, 1)
setPlayerStorageValue(pid, t.f_1, 1)
setPlayerStorageValue(pid, t.f_2, 0)
doSendMagicEffect(getCreaturePosition(pid), 10)
doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Niebieskich!\nWalka bedzie trwala do ".. t.v .." fragów, Powodzenia!")
end
end
end
elseif(getGlobalStorageValue(t.c) < t.mn) then
doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
setGlobalStorageValue(t.a, 0)
for _, pid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(pid, t.f) == 1 then
setPlayerStorageValue(pid, t.f, -1)
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
end
end
end
end
]]></talkaction>
<globalevent name="RushStart" time="17:34" event="script"><![CDATA[
domodlib('re')
function onTime(interval, lastExecution)
setGlobalStorageValue(t.g, 1)
setGlobalStorageValue(t.u, 0)
setGlobalStorageValue(t.l, 0)
setGlobalStorageValue(t.a, 1)
setGlobalStorageValue(t.c, 0)
setGlobalStorageValue(t.wv, 0)
doBroadcastMessage("Attention! Immediately register to Rush Event, event will start for ".. t.t .." minutes. All players can join to event typing this command: !rush", MESSAGE_STATUS_WARNING)
addEvent(start, t.t * 1000 * 60)
end
function results()
if(getGlobalStorageValue(t.a) == 1) then
local red = getGlobalStorageValue(t.l)
local blue = getGlobalStorageValue(t.u)
doBroadcastMessage("Rush Event, wyniki:\nTeam Czerwonych zdobyl: ".. red .." fragów.\nTeam Niebieskich zdobyl: ".. blue .." fragów.\nWalka trwa do ".. t.v .." fragów.", MESSAGE_STATUS_WARNING)
addEvent(results, t.r * 1000 * 60)
end
end
function start()
if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
setGlobalStorageValue(t.wv, 1)
addEvent(results, t.r * 1000 * 60)
for _, pid in ipairs(getPlayersOnline()) do
local myOutfit = getCreatureOutfit(pid)
local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
if getPlayerStorageValue(pid, t.f) == 1 then
doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
doCreatureAddMana(pid, getCreatureMaxMana(pid))
if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
doCreatureChangeOutfit(pid, red)
setPlayerStorageValue(pid, t.h, 0)
doTeleportThing(pid, t.d_1)
setPlayerStorageValue(pid, t.f, 1)
setPlayerStorageValue(pid, t.f_1, 0)
setPlayerStorageValue(pid, t.f_2, 1)
doSendMagicEffect(getCreaturePosition(pid), 10)
doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Czerwonych!\nWalka bedzie trwala do ".. t.v .." fragów, Powodzenia!")
else
doCreatureChangeOutfit(pid, blue)
setPlayerStorageValue(pid, t.h, 0)
doTeleportThing(pid, t.d_2)
setPlayerStorageValue(pid, t.f, 1)
setPlayerStorageValue(pid, t.f_1, 1)
setPlayerStorageValue(pid, t.f_2, 0)
doSendMagicEffect(getCreaturePosition(pid), 10)
doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Niebieskich!\nWalka bedzie trwala do ".. t.v .." fragów, Powodzenia!")
end
end
end
elseif(getGlobalStorageValue(t.c) < t.mn) then
doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
setGlobalStorageValue(t.a, 0)
for _, pid in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(pid, t.f) == 1 then
setPlayerStorageValue(pid, t.f, -1)
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
end
end
end
end
]]></globalevent>
<talkaction words="!rush" event="script"><![CDATA[
domodlib('re')
function onSay(cid, words, param, channel)
local ip = getPlayerIp(cid)
local name = getCreatureName(cid)
for _, v in ipairs(getPlayersOnline()) do
if getPlayerStorageValue(v, t.f) == 1 and cid ~= v then
if ip == getPlayerIp(v) then
return doShowTextDialog(cid, 9733, "Nie mozesz uzywac MC w tym evencie!")
end
end
end
if getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.wv) ~= 1 then
if getPlayerLevel(cid) >= t.lvl then
if getPlayerStorageValue(cid, t.f) == -1 then
if getTilePzInfo(getPlayerPosition(cid)) == true then
if getGlobalStorageValue(t.c) < t.m then
setGlobalStorageValue(t.c, getGlobalStorageValue(t.c)+1)
if getGlobalStorageValue(t.c) == t.m then
doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
else
doBroadcastMessage("" .. getPlayerName(cid) .. " dolaczyl do Rush Eventu! Aktualnie mamy: " .. getGlobalStorageValue(t.c) .. " graczy!", 19)
end
setPlayerStorageValue(cid, t.f, 1)
setPlayerStorageValue(cid, t.h, -1)
doTeleportThing(cid, t.w)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
setPlayerStorageValue(cid, t.g, getGlobalStorageValue(t.g))
setGlobalStorageValue(t.g, tonumber(getGlobalStorageValue(t.g))+1)
else
doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
return true
end
else
doPlayerSendCancel(cid, "Musisz byc w protection zone [PZ].")
return true
end
else
doPlayerSendCancel(cid, "Jestes juz zarejestrowany w tym evencie.")
return true
end
else
doPlayerSendCancel(cid, "Minimalny level do wziecia udzialu w walce to 250.")
return true
end
else
doPlayerSendCancel(cid, "W chwili obecnej event jest nieczynny.")
return true
end
return true
end
]]></talkaction>
<event type="combat" name="RushCombat" event="script"><![CDATA[
domodlib('re')
function onCombat(cid, target)
if(getGlobalStorageValue(t.a) == 1) then
if isPlayer(cid) and isPlayer(target) then
if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
return doPlayerSendCancel(cid, "Niestety, nie mozna atakowac swojego zespolu.") and false
end
end
end
end
return true
end
]]></event>
<event type="attack" name="RushAttack" event="script"><![CDATA[
domodlib('re')
function onAttack(cid, target)
if(getGlobalStorageValue(t.a) == 1) then
if isPlayer(cid) and isPlayer(target) then
if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
return doPlayerSendCancel(cid, "Niestety, nie mozna atakowac swojego zespolu.") and false
end
end
end
end
return true
end
]]></event>
<event type="preparedeath" name="RushDead" event="script"><![CDATA[
domodlib('re')
function onPrepareDeath(cid, deathList)
if(not isPlayer(cid)) then
return true
end
if getGlobalStorageValue(t.a) == 1 then
local strings = {""}
local j, position, corpse = 1, 1, 0
for _, pid in ipairs(deathList) do
if isCreature(pid) == true then
strings[position] = j == 1 and "" or strings[position] .. ", "
strings[position] = strings[position] .. getCreatureName(pid) .. ""
j = j + 1
else
strings[position] = j == 1 and "" or strings[position] .. ", "
strings[position] = strings[position] .."a field item"
j = j + 1
end
end
for i, str in ipairs(strings) do
if(str:sub(str:len()) ~= ",") then
str = str .. "."
end
desc = "You recognize "
desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
end
if(getPlayerSex(cid) == 1) then
corpse = doCreateItem(3058, getCreaturePosition(cid))
else
corpse = doCreateItem(3065, getCreaturePosition(cid))
end
doItemSetAttribute(corpse, "description", desc)
if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
setGlobalStorageValue(t.u, getGlobalStorageValue(t.u)+1)
else
setGlobalStorageValue(t.l, getGlobalStorageValue(t.l)+1)
end
local red = getGlobalStorageValue(t.l)
local blue = getGlobalStorageValue(t.u)
if blue < t.v or red < t.v then
if(isPlayer(cid) == false) then
return true
end
if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
doTeleportThing(cid, t.d_1)
doSendMagicEffect(getCreaturePosition(cid), 10)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doPlayerRemoveLethalConditions(cid)
if getCreatureSkullType(cid) == SKULL_WHITE then
doCreatureSetSkullType(cid, 0)
end
else
doTeleportThing(cid, t.d_2)
doSendMagicEffect(getCreaturePosition(cid), 10)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doPlayerRemoveLethalConditions(cid)
if getCreatureSkullType(cid) == SKULL_WHITE then
doCreatureSetSkullType(cid, 0)
end
end
end
if blue >= t.v then
doBroadcastMessage(t.y, MESSAGE_STATUS_WARNING)
setGlobalStorageValue(t.h, 1)
for _, pid in ipairs(getPlayersOnline()) do
if(getPlayerStorageValue(pid, t.f_1) == 1) then
doPlayerAddItem(pid, t.i_1, t.i_2)
end
end
elseif red >= t.v then
doBroadcastMessage(t.o, MESSAGE_STATUS_WARNING)
setGlobalStorageValue(t.h, 1)
for _, pid in ipairs(getPlayersOnline()) do
if(getPlayerStorageValue(pid, t.f_2) == 1) then
doPlayerAddItem(pid, t.i_1, t.i_2)
end
end
end
if getGlobalStorageValue(t.h) == 1 then
setGlobalStorageValue(t.a, 0)
setGlobalStorageValue(t.h, 0)
setGlobalStorageValue(t.wv, -1)
setPlayerStorageValue(cid, t.f, -1)
setPlayerStorageValue(cid, t.g, 0)
setPlayerStorageValue(cid, t.l, 0)
setPlayerStorageValue(cid, t.u, 0)
setPlayerStorageValue(cid, t.f_1, -1)
setPlayerStorageValue(cid, t.f_2, -1)
setPlayerStorageValue(cid, t.h, -1)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
doSendMagicEffect(getCreaturePosition(cid), 10)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
doCreatureAddMana(cid, getCreatureMaxMana(cid))
doPlayerRemoveLethalConditions(cid)
for _, pid in ipairs(getPlayersOnline()) do
if(getPlayerStorageValue(pid, t.f_1) == 1 or getPlayerStorageValue(pid, t.f_2) == 1) then
setPlayerStorageValue(pid, t.f, -1)
doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
setPlayerStorageValue(pid, t.g, 0)
setPlayerStorageValue(pid, t.l, 0)
setPlayerStorageValue(pid, t.u, 0)
setPlayerStorageValue(pid, t.f_1, -1)
setPlayerStorageValue(pid, t.f_2, -1)
setPlayerStorageValue(pid, t.h, -1)
doCreatureAddHealth(pid, getCreatureMaxHealth(pid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
doCreatureAddMana(pid, getCreatureMaxMana(pid))
doPlayerRemoveLethalConditions(pid)
end
end
return false
end
return false
end
return true
end
]]></event>
<event type="outfit" name="RushOutfit" event="script"><![CDATA[
domodlib('re')
function onOutfit(cid, old, current)
if(getGlobalStorageValue(t.a) == 1) then
if getPlayerGroupId(cid) > 3 then
return true
end
if getPlayerStorageValue(cid, t.h) == 0 then
if getPlayerStorageValue(cid, t.f) > -1 then
doPlayerSendCancel(cid, "Nie mozna zmienic stroju podczas eventu.")
return false
end
end
end
return true
end
]]></event>
</mod>
Last edited: