Ir para conteúdo
  • Cadastre-se

Normal Percorrer o local e ver se tem monstro


Posts Recomendados

Fala Galera, Boa tarde !!

 

Então, estou querendo fazer um evento. E ainda estou aprendendo a mexer com essa parte do tibia. Mas o que eu queria, e não estou conseguindo é que tipo.

 

Eu tenho uma area que vai de  x1, y1, z1  a  x2, y2, z2. E eu preciso que meu script a cada 5 segundos percorra essa area, e se ele nao achar nenhum monstro vivo nessa area, ai ele via sumonar outro.

A parte de sumonar eu ja tenho, so nao sie como fazer para percorer essa area em busca de monstos.

 

obs: se a pessoa tivesse um summon na area, isso bugaria o script?

Link para o post
Compartilhar em outros sites

Estou tentando fazer assim

 

        for xx = config.fromPosition.x, config.toPosition.x do
                for yy = config.fromPosition.y, config.toPosition.y do
                        for zz= config.fromPosition.z, config.toPosition.z do
                                local areapos2 = {x = xx, y = yy, z = zz, stackpos = 253}
                                local getMonsters2 = getThingfromPos(areapos2)
                                if isMonster(getMonsters2.uid) then
                                        config.temMonstro = 1
                                else
                                        config.temMonstro = 0
                                end
                        end
                end
        end

 

mas o temMonstro ta vindo sempre 0, mesmo que tenha monstros

Link para o post
Compartilhar em outros sites

Posta todo o script.

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites

Ta ae, o script todo

 

local config = {

        playerCount = 2006, -- Global storage para contar a quantidade de players no evento!

        omegaredCount = 2007, -- Global storage para contar a quantidade de monstros no evento!

        teleportActionId = 2008,

        teleportPosition = {x = 166, y = 52, z = 7, stackpos = 1}, -- aonde o teleporte será criado
        teleportToPosition = {x = 1661, y = 532, z = 6}, -- aonde o teleporte vai te levar
        teleportId = 1387, --  id do teleport

        timeToStartEvent = 1, -- Minutos para fechar o tp

        timeBetweenSpawns = 15, -- Segundo para iniciar o evento

        -- Nome dos monstros
        omegared1 = "Demon",
        omegared2 = "Demon",
        omegared3 = "Demon Vip II",
        omegared4 = "Omegared IV",
        omegared5 = "Omegared V",

        temMonstro = 0,


        playersNeededToStartEvent = 2, -- Players para iniciar o evento

        fromPosition = {x = 1627, y = 508, z = 7}, -- top left cornor of the playground
        toPosition = {x = 1701, y = 535, z = 7}, -- bottom right cornor of the playground
        }

function onTime()
        local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition)
        doItemSetAttribute(tp, "aid", config.teleportActionId)
        doBroadcastMessage("Os portoes do Omegared Event abrira em " .. config.timeToStartEvent .. " minutos! Corra, que apos o inicio do evento o teleporte sera fechado", MESSAGE_STATUS_WARNING)
        setGlobalStorageValue(config.playerCount, 0)
        setGlobalStorageValue(config.omegaredCount, 0)
        addEvent(startEvent, config.timeToStartEvent * 1000 * 60)
        print(getGlobalStorageValue(2006))
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(spawnOmegared, config.timeBetweenSpawns * 1000)
                doBroadcastMessage("Boa sorte, e que os Jogos Comecem! Portoes abertos!", 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, "O primeiro Omegared sera sumonado em " .. config.timeBetweenSpawns .. " segundos! Boa Sorte!")
                                        end
                                end
                        end
                end
        else
                doBroadcastMessage("O evento omegared nao comecou por ter poucos players participando\n Sao necessario " .. config.playersNeededToStartEvent .. " players para o evento!", 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 spawnOmegared()

        for xx = config.fromPosition.x, config.toPosition.x do
                for yy = config.fromPosition.y, config.toPosition.y do
                        for zz= config.fromPosition.z, config.toPosition.z do
                                local areapos2 = {x = xx, y = yy, z = zz, stackpos = 253}
                                local getMonsters2 = getThingfromPos(areapos2)
                                if isMonster(getMonsters2.uid) then
                                        config.temMonstro = 1
                                else
                                        config.temMonstro = 0
                                end
                        end
                end
        end

        doBroadcastMessage("Teste!".. config.temMonstro, MESSAGE_STATUS_CONSOLE_RED)
        if config.temMonstro == 0 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)}

                pos = {x = 1665, y = 520, z = 7}
                if getGlobalStorageValue(config.omegaredCount) == 0 then
                        doSummonCreature(config.omegared1, pos)
                        setGlobalStorageValue(config.omegaredCount, getGlobalStorageValue(config.omegaredCount)+1)
                        doBroadcastMessage("O Omegared I foi sumonado!", MESSAGE_STATUS_CONSOLE_RED)
                elseif getGlobalStorageValue(config.omegaredCount) == 1 then
                        doSummonCreature(config.omegared2, pos)
                        setGlobalStorageValue(config.omegaredCount, getGlobalStorageValue(config.omegaredCount)+1)
                        doBroadcastMessage("O Omegared II foi sumonado!", MESSAGE_STATUS_CONSOLE_RED)
                elseif getGlobalStorageValue(config.omegaredCount) == 2 then
                        doSummonCreature(config.omegared3, pos)
                        setGlobalStorageValue(config.omegaredCount, getGlobalStorageValue(config.omegaredCount)+1)
                        doBroadcastMessage("O Omegared III foi sumonado!", MESSAGE_STATUS_CONSOLE_RED)
                elseif getGlobalStorageValue(config.omegaredCount) == 3 then
                        doSummonCreature(config.omegared4, pos)
                        setGlobalStorageValue(config.omegaredCount, getGlobalStorageValue(config.omegaredCount)+1)
                        doBroadcastMessage("O Omegared IV foi sumonado!", MESSAGE_STATUS_CONSOLE_RED)
                elseif getGlobalStorageValue(config.omegaredCount) == 4 then
                        doSummonCreature(config.omegared5, pos)
                        setGlobalStorageValue(config.omegaredCount, getGlobalStorageValue(config.omegaredCount)+1)
                        doBroadcastMessage("O Omegared V foi sumonado!", MESSAGE_STATUS_CONSOLE_RED)
                end       
                if getGlobalStorageValue(config.omegaredCount) < 5 then
                         addEvent(spawnOmegared, config.timeBetweenSpawns * 1000)
                end
        else
                doBroadcastMessage("Roda Denovo!", MESSAGE_STATUS_CONSOLE_RED)
                addEvent(spawnOmegared, config.timeBetweenSpawns * 1000)
        end
end

 

 

 

------EDITED--------

aaaah, ja saquei meu erro, eu acho o monstro, seto pra 1, mas o script continua rodando, e quando ele passa no outro sqm que nao tem monstro ele coloca a variavel pra 0..

vou tentar consertar aqui

 

 

-----EDITED2 --------

Resolvi galera, podem fechar

Editado por Strolker (veja o histórico de edições)
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