Ir para conteúdo

Featured Replies

Postado

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?

Postado
  • Autor

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

Postado
  • Autor

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)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo