Postado Abril 27, 2013 12 anos Preciso do script que abre o TP do zombie evente automatico... Nao é preciso de tooooodo o script apenas um pra eu adicionar no zombie evente que eu ja possuo. É so pra abri o tp do evento. Vaga de Scripts, Pro projeto.Contato PM
Postado Abril 27, 2013 12 anos Eai ,tudo bom tenho esse que tal tu tentar? Em globalevents/scripts crie um arquivo chamado zombievent.lua e cole isso dentro local config = { semana_mes = "semana", days = {1,4,6}, -- dias goblet = 5805, -- n sei tbm dkosaokdp rewards = {2195, 2152, 2160}, -- premios, n sei acho q eh moneyReward = {2160, 10, 1}, -- nao sei oq eh ,traduza dps la ok playerCount = 2001, -- nao mexe zombieCount = 2002, -- nao mexe teleportActionId = 2008, -- action id que o teleport tem que ter para funcionar teleportPosition = {x = 147, y = 51, z = 7, stackpos = 1}, -- onde será criado teleportToPosition = {x = 140, y = 313, z = 7}, -- onde o teleport vai levar teleportId = 1387, -- nao mexe timeToStartEvent = 10, -- minutos que o teleport vai ficar aberto timeBetweenSpawns = 20, -- numero de segundos pros zombie nascer entre eles zombieName = "event zombie", -- nome do bixo que vai ser sumonado playersNeededToStartEvent = 3, -- jogadores necessários antes que os zumbis nasça -- Should be the same as in the creaturescript! -- The zombies will spawn randomly inside this area fromPosition = {x = 129, y = 300, z = 7}, -- top left cornor of the playground toPosition = {x = 155, y = 322, z = 7} -- bottom right cornor of the playground } function onTime() local time = os.date("*t") if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then 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) end return TRUE 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!") pvgaylord() 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) else local fromp, top = config.fromPosition, config.toPosition 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} cid = getThingfromPos(areapos).uid if isPlayer(cid) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!') 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 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.") elseif isMonster(cid) then doRemoveCreature(cid) end end end end end end function pvgaylord() local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0 for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do local areapos = {x = x, y = y, z = z, stackpos = 253} local cid = getThingfromPos(areapos).uid if isPlayer(cid) then p = p+1 elseif isMonster(cid) then m = m+1 end end end end if p ~= getGlobalStorageValue(config.playerCount) then setGlobalStorageValue(config.playerCount, p) end if p < 2 then return true end addEvent(pvgaylord,100,nil) end Em globalevents.xml poem isso <!-- Zombie Event --> <globalevent name="zombieevent" time="16:17" event="script" value="zombievent.lua"/> Aonde tá 16:17 é o momento que vai ser criado apenas horas e minutos. Caso não funcione use esse que eu criei aquiEm globalevents/scripts crie um arquivo chamado create_tp.lua e cole isso dentro local cfg = { toPos = {x = 500, y = 400, z = 7}, -- aonde vai levar createPos = {x = 400, y = 500, z = 7}, -- aonde vai aparecer } function onTime () doCreateTeleport(1387, cfg.toPos, cfg.createPos) return true end Em globalevents.xml adicione isso <globalevent name="CreateTp" time="16:17" event="script" value="create_tp.lua"/> Aonde tá 16:17 é o momento que vai ser criado apenas horas e minutos. Editado Abril 27, 2013 12 anos por Luquinha (veja o histórico de edições)
Postado Abril 27, 2013 12 anos Autor Humm vo testar... mais dai a funçao do zombi evente vai funcionar correto??Ou so leva pro local... sem começar o evento? OK. eu testei o primeiro nao deu certo. O seu que criou, ta Ok... mais quero que o evento do zombie começe e ao começar o TP aparece. Editado Abril 27, 2013 12 anos por marcoscorrea (veja o histórico de edições) Vaga de Scripts, Pro projeto.Contato PM
Postado Abril 28, 2013 12 anos Autor http://tibiaking.com/forum/topic/22757-perfect-zombie-system-event/ dei uma editada nele... mais nada que bugase ele. Vaga de Scripts, Pro projeto.Contato PM
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.