Postado Março 1, 2017 8 anos Olá pessol do TK, Ot Global 8.6 (TFS verão 0.1.3) Venho aqui para tirar uma dúvida referente ao evento zombie do meu servidor, já tentei 4 scripts de 4 pessoas diferentes, e eles apresentam o mesmo erro (Segue abaixo na DISTRO) Agora vou explicar o que acontece no evento... 1º) O Teleport aparece normalmente no local que eu configurei e aparece uma broadcast msg. 2º) A quantidade de player configurada (no meu caso 2) entram no teleport e ele se fecha em 2 minutos (tempo configurado). 3º) O evento começa, os zombies começar a spawnar. 4º) Os player (todos) morrem pelos zombies e ninguém ganha reward. 5º) O evento continua spawnando os zombies sem parar. Minha dúvida é: Como faço para o ultimo jogador da arena ganhar o reward e ser teleportado para o templo? (e claro, assim finalizando o evento) Segue scripts utilizados no meu servidor: CREATURESCRIPT CreatureScipt: Zombie.lua local config = { playerCount = 2001, -- Global storage for counting the players left/entered in the event goblet = 5805, -- id of the gold goblet you'll get when finishing the event. rewards = {2195, 2152, 2160}, -- You will get this + a gold goblet with your name on. -- {moneyId, count, using? 1 for using moneyReward, 0 for not using.} moneyReward = {2160, 100, 1}, -- Should be same as in the globalevent! -- The zombies will spawn randomly inside this area fromPosition = {x = 32249, y = 31996, z = 9}, -- top left cornor of the playground toPosition = {x = 32277, y = 32033, z = 9}, -- bottom right cornor of the playground } function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and isMonster(attacker) then if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then if getGlobalStorageValue(config.playerCount) >= 2 then doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED) local corpse = doCreateItem(3058, 1, getPlayerPosition(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")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)-1) elseif getGlobalStorageValue(config.playerCount) == 1 then if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.") local corpse = doCreateItem(3058, 1, getPlayerPosition(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")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end end for x = config.fromPosition.x, config.toPosition.x do for y = config.fromPosition.y, config.toPosition.y do for z = config.fromPosition.z, config.toPosition.z do areapos = {x = x, y = y, z = z, stackpos = 253} getMonsters = getThingfromPos(areapos) if isMonster(getMonsters.uid) then doRemoveCreature(getMonsters.uid) end end end end end return false end end return true end CreatureScipt: login.xml registerCreatureEvent(cid, "zombieevent") TAG no CreatureScript: <event type="statschange" name="zombieevent" event="script" value="zombie.lua"/> GLOBALEVENTS: zombie.lua local config = { playerCount = 2001, -- Global storage for counting the players left/entered in the event zombieCount = 2002, -- Global storage for counting the zombies in the event teleportActionId = 2000, -- Action id of the teleport needed for the movement script teleportPosition = {x = 1135, y = 1077, z = 3, stackpos = 1}, -- Where the teleport will be created teleportToPosition = {x = 1190, y = 1076, z = 7}, -- Where the teleport will take you teleportId = 1387, -- Id of the teleport timeToStartEvent = 5, -- Minutes, after these minutes the teleport will be removed and the event will be declared started timeBetweenSpawns = 20, -- Seconds between each spawn of zombie zombieName = "event zombie", -- Name of the zombie that should be summoned playersNeededToStartEvent = 1, -- Players needed before the zombies can spawn. -- Should be the same as in the creaturescript! -- The zombies will spawn randomly inside this area fromPosition = {x = 1186, y = 1072, z = 7}, -- top left cornor of the playground toPosition = {x = 1195, y = 1081, z = 7}, -- bottom right cornor of the playground } function onTimer() local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition) doItemSetAttribute(tp, "aid", config.teleportActionId) doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.playerCount, 0) setGlobalStorageValue(config.zombieCount, 0) addEvent(startEvent, config.timeToStartEvent * 1000 * 60) print(getGlobalStorageValue(2001)) end function startEvent() local get = getThingfromPos(config.teleportPosition) if get.itemid == config.teleportId then doRemoveItem(get.uid, 1) end local fromp, top = config.fromPosition, config.toPosition if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then addEvent(spawnZombie, config.timeBetweenSpawns * 1000) doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!") end end end end else doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false) doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT) end end end end end end function spawnZombie() if getGlobalStorageValue(config.playerCount) >= 2 then pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)} doSummonCreature(config.zombieName, pos) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, config.timeBetweenSpawns * 1000) end end TAG no Globalevents: <globalevent name="zombieevent" time="15:00" event="script" value="zombie.lua"/> MOVEMENTS: zombie.lua local config = { playerCount = 2001, -- Global storage for counting the players in the event maxPlayers = 15, -- Max players who can participate } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getGlobalStorageValue(config.playerCount) < config.maxPlayers then setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)+1) if getGlobalStorageValue(config.playerCount) == config.maxPlayers then doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(config.playerCount) .. " players]! The event will soon start.") else doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(config.playerCount) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) end else addEvent(tpBack, 1000, cid, fromPosition) doPlayerSendCancel(cid, "The event is full. There is already " .. config.maxPlayers .. " players participating in the quest.") return false end print(getStorage(config.playerCount) .. " Players in the zombie event.") return true end function tpBack(cid, fromPosition) doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) end TAG no Movements: <movevent type="StepIn" actionid="2000" event="script" value="zombie.lua"/> O monster eu não vou postar aqui pois já está muito extenso e acredito que o erro não se encontra nele. Preciso da ajuda de vocês para achar o erro, obrigado!
Postado Março 1, 2017 8 anos tente usar esse, fiz recentemente: http://www.tibiaking.com/forum/forums/topic/78605-mods-86-perfect-zombie-system-automático-v10/
Postado Março 1, 2017 8 anos Autor Em 01/03/2017 em 19:01, Vodkart disse: tente usar esse, fiz recentemente: http://www.tibiaking.com/forum/forums/topic/78605-mods-86-perfect-zombie-system-automático-v10/ @Vodkart tentei usar o seu MOD mas deu um erro na Distro. To achando que o problema é a versão do meu tfs ;/ vou continuar testando outros scripts que estão aqui no site até achar um que funcione no meu. ou talvez tentar achar o erro desse que eu postei, foi o mais perto de funcionar que eu achei kkkk
Postado Março 1, 2017 8 anos Em 01/03/2017 em 20:46, Dornellas disse: @Vodkart tentei usar o seu MOD mas deu um erro na Distro. To achando que o problema é a versão do meu tfs ;/ vou continuar testando outros scripts que estão aqui no site até achar um que funcione no meu. ou talvez tentar achar o erro desse que eu postei, foi o mais perto de funcionar que eu achei kkkk vc ta usando o mods ou os arquivos lua? pq vc colocou o mods na pasta globalevents, o certo é na pasta MODS
Postado Março 1, 2017 8 anos Em 01/03/2017 em 20:46, Dornellas disse: @Vodkart tentei usar o seu MOD mas deu um erro na Distro. To achando que o problema é a versão do meu tfs ;/ vou continuar testando outros scripts que estão aqui no site até achar um que funcione no meu. ou talvez tentar achar o erro desse que eu postei, foi o mais perto de funcionar que eu achei kkkk Eu acho que você teria que apagar todos os que tinham como zombie event, porque o do Vodkart é apenas MODS... Deleta tudo e adiciona apenas esse, espero que consiga.. Editado Março 1, 2017 8 anos por tirso (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.