Ir para conteúdo
  • Cadastre-se

Normal [HELP] Mod Event Zombie Script


Posts Recomendados

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)

20074sj.png

 

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!

Link para o post
Compartilhar em outros sites

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Vodkart disse:

@Vodkart tentei usar o seu MOD mas deu um erro na Distro.

 

2441tur.png

 

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

Link para o post
Compartilhar em outros sites
40 minutos atrás, Dornellas disse:

@Vodkart tentei usar o seu MOD mas deu um erro na Distro.

 

2441tur.png

 

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

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
43 minutos atrás, Dornellas disse:

@Vodkart tentei usar o seu MOD mas deu um erro na Distro.

 

2441tur.png

 

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 por tirso (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Nossa, desculpem minha ignorância kkkkk estou aprendendo agora :D

Eu executei o MOD no servidor, o único problema foi que os monstros não nasceram na arena (Sabem o que pode ser?)

Para ter certeza, eu retirei o MOD e fiz pelos arquivos .LUA que você disponibilizou

Deu tudo certo, os comandos, o teleport, o tempo... porém somente os monstros não apareceram (eu usei o mesmo que você disponibilizou)

 

Mas só pra vocês saberem o que está acontecendo.. 

5xk7s0.png

 

se não der certo, vou tentar mudar a arena, pode ser bug de tile tbm... :D

Mas muito obrigado @tirso e @Vodkart

Editado por Dornellas (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
5 minutos atrás, Dornellas disse:

Nossa, desculpem minha ignorância kkkkk estou aprendendo agora :D

Eu executei o MOD no servidor, o único problema foi que os monstros não nasceram na arena (Sabem o que pode ser?)

Vou executar aquele download que você disponibilizou no seu tópico e testar (zombie.lua),

se não der certo, vou tentar mudar a arena, pode ser bug de tile tbm... :D

Mas muito obrigado @tirso e @Vodkart

Se eu não conseguir nenhuma solução nesse seu Script, eu volto a postar alguma dúvida aqui

 

se não summonar me avisa e comenta lá no meu tópico ou via PM que eu resolvo para você.

 

abraços!

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Editei meu comentário @Vodkart (Vou postar ele no seu tópico pra ficar correto ok?)

Cara, realmente, valeu pela sua atenção!

 

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo