Ir para conteúdo

Featured Replies

Postado

alguém poderia me ajudar, estou com um erro nesse script, foto com erro está logo a baixo.

 

script :

 

function isOnSameFloor(fromPos, toPos)
    return fromPos.z == toPos.z and true or false
end

function isEven(arg)
    return arg % 2 == 0 and true or false
end

function getMiddlePos(fromPos, toPos)
    if not isOnSameFloor(fromPos, toPos) then
        return false
    end
    
    local middle = {x = 0, y = 0, z = 0}    
        middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1
        middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1
        middle.z = fromPos.z or toPos.z
    return middle
end

function getDistanceRadius(fromPos, toPos)
    if not isOnSameFloor(fromPos, toPos) then
        return false
    end
    
    local distance = getDistanceBetween(fromPos, toPos)
    return isEven(distance) and (distance/2) or math.floor(distance/2) + 1
end

function clearArea(middlePos, rangex, rangey)
    local final = {x=1019, y=1052, z=8} -- Posição onde será teleportado quando acabar o tempo
    
    for i = -rangex, rangex do
        for j = -rangey, rangey do
            pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z}
            creature = getTopCreature(pos).uid
            
            if isMonster(creature) then
                doSendMagicEffect(getThingPos(creature), 14)
                doRemoveCreature(creature)
            elseif isPlayer(creature) then
                doSendMagicEffect(getThingPos(creature), 10)
                doTeleportThing(creature, final)
            end
        end
    end
    
    setGlobalStorageValue(sto, -1)
    return true
end
    
local t = {
    lvl = 100,
    entrada = {
        {x = 1026, y = 1052, z = 8} -- pos players
        {x = 1025, y = 1052, z = 8} -- pos players
        {x = 1024, y = 1052, z = 8} -- pos players
        {x = 1023, y = 1052, z = 8} -- pos players
        {x = 1022, y = 1052, z = 8} -- pos players
    },
    saida = {
        {x = 1041, y = 1052, z = 8} -- pos para onde eles irão
        {x = 1040, y = 1052, z = 8} -- pos para onde eles irão
        {x = 1039, y = 1052, z = 8} -- pos para onde eles irão
        {x = 1038, y = 1052, z = 8} -- pos para onde eles irão
        {x = 1037, y = 1052, z = 8} -- pos para onde eles irão
    },
    monstros = {
        {{x = 1035, y = 1050, z = 8}, "Demon"} -- defina pos dos montros e nomes
        {{x = 1035, y = 1054, z = 8}, "Demon"} -- defina pos dos montros e nomes
        {{x = 1036, y = 1052, z = 8}, "Demon"} -- defina pos dos montros e nomes
        {{x = 1042, y = 1052, z = 8}, "Demon"} -- defina pos dos montros e nomes
        {{x = 1043, y = 1050, z = 8}, "Demon"} -- defina pos dos montros e nomes
        {{x = 1043, y = 1054, z = 8}, "Demon"} -- defina pos dos montros e nomes
    }
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local configure = {
        fromPos = {x=1034, y=1048, z=8}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
        toPos = {x=1044, y=1056, z=8}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
        boss = "Demon" -- Aqui você bota o nome do monstro que você quer remover
    }
    
    local config = {
        position = {x=1027, y=1052, z=8}, -- Contagem
        position1 = {x=1035, y=1049, z=8}, -- Contagem
        position2 = {x=1035, y=1055, z=8}, -- Contagem
        position3 = {x=1043, y=1049, z=8}, -- Contagem
        position4 = {x=1043, y=1055, z=8}, -- Contagem
        fromPosition = {x=1034, y=1048, z=8},
        toPosition = {x=1044, y=1056, z=8},
        id = 1498,
        time = 1 -- tempo que o teleport ira sumir em minutos
    }

    local time = 60
    local sto = 5973
    local check = {}
    
    for _, k in ipairs(t.entrada) do
        local x = getTopCreature(k).uid
        if(x == 0 or isPlayer(x) and getPlayerLevel(x) < t.lvl) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Não tem 5 jogadores para a quest.")
            return true
        end
        
            if getGlobalStorageValue(sto) == 1 then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Annihilaton está bloqueada. Aguarde até que seja liberada.")
                return true
            end
            
        table.insert(check, x)
    end
    
                for _, summon in pairs(t.monstros) do
                    local creature = getTopCreature(summon[1]).uid
                    doCreateMonster(summon[2], summon[1])
                end
                
                    for i, tid in ipairs(check) do
                        doTeleportThing(tid, t.saida, false)
                        doSendMagicEffect(t.saida, 10)
                        doTransformItem(item.uid, item.itemid == 1945)
                    end
                    
            for i = 1,time do
                formula = time - 1*i
                addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position1, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position2, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position3, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position4, formula, TEXTCOLOR_RED)
            end
    
    setGlobalStorageValue(sto, 1)
    local rx = getDistanceRadius(configure.fromPos, configure.toPos)
    addEvent(clearArea, config.time * 60 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx)
    return true
end

erro.png

Editado por gabrielbuff
erro (veja o histórico de edições)

Postado

@gabrielbuff testa ae:

Spoiler

function isOnSameFloor(fromPos, toPos)
    return fromPos.z == toPos.z and true or false
end
function isEven(arg)
    return arg % 2 == 0 and true or false
end
function getMiddlePos(fromPos, toPos)
    if not isOnSameFloor(fromPos, toPos) then
        return false
    end
    
    local middle = {x = 0, y = 0, z = 0}    
        middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1
        middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1
        middle.z = fromPos.z or toPos.z
    return middle
end
function getDistanceRadius(fromPos, toPos)
    if not isOnSameFloor(fromPos, toPos) then
        return false
    end
    
    local distance = getDistanceBetween(fromPos, toPos)
    return isEven(distance) and (distance/2) or math.floor(distance/2) + 1
end
function clearArea(middlePos, rangex, rangey)
    local final = {x=1019, y=1052, z=8} -- Posição onde será teleportado quando acabar o tempo
    
    for i = -rangex, rangex do
        for j = -rangey, rangey do
            pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z}
            creature = getTopCreature(pos).uid
            
            if isMonster(creature) then
                doSendMagicEffect(getThingPos(creature), 14)
                doRemoveCreature(creature)
            elseif isPlayer(creature) then
                doSendMagicEffect(getThingPos(creature), 10)
                doTeleportThing(creature, final)
            end
        end
    end
    
    setGlobalStorageValue(sto, -1)
    return true
end
    
local t = {
    lvl = 100,
    entrada = {
        {x = 1026, y = 1052, z = 8}, -- pos players
        {x = 1025, y = 1052, z = 8}, -- pos players
        {x = 1024, y = 1052, z = 8}, -- pos players
        {x = 1023, y = 1052, z = 8}, -- pos players
        {x = 1022, y = 1052, z = 8} -- pos players
    },
    saida = {
        {x = 1041, y = 1052, z = 8}, -- pos para onde eles irão
        {x = 1040, y = 1052, z = 8}, -- pos para onde eles irão
        {x = 1039, y = 1052, z = 8}, -- pos para onde eles irão
        {x = 1038, y = 1052, z = 8}, -- pos para onde eles irão
        {x = 1037, y = 1052, z = 8} -- pos para onde eles irão
    },
    monstros = {
        {{x = 1035, y = 1050, z = 8}, "Demon"}, -- defina pos dos montros e nomes
        {{x = 1035, y = 1054, z = 8}, "Demon"}, -- defina pos dos montros e nomes
        {{x = 1036, y = 1052, z = 8}, "Demon"}, -- defina pos dos montros e nomes
        {{x = 1042, y = 1052, z = 8}, "Demon"}, -- defina pos dos montros e nomes
        {{x = 1043, y = 1050, z = 8}, "Demon"}, -- defina pos dos montros e nomes
        {{x = 1043, y = 1054, z = 8}, "Demon"} -- defina pos dos montros e nomes
    }
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local configure = {
        fromPos = {x=1034, y=1048, z=8}, -- posição superior esquerda do mapa, da area em que esta mapeado a area.
        toPos = {x=1044, y=1056, z=8}, -- posição inferior direita do mapa, da area em que esta mapeado a area.
        boss = "Demon" -- Aqui você bota o nome do monstro que você quer remover
    }
    
    local config = {
        position = {x=1027, y=1052, z=8}, -- Contagem
        position1 = {x=1035, y=1049, z=8}, -- Contagem
        position2 = {x=1035, y=1055, z=8}, -- Contagem
        position3 = {x=1043, y=1049, z=8}, -- Contagem
        position4 = {x=1043, y=1055, z=8}, -- Contagem
        fromPosition = {x=1034, y=1048, z=8},
        toPosition = {x=1044, y=1056, z=8},
        id = 1498,
        time = 1 -- tempo que o teleport ira sumir em minutos
    }
    local time = 60
    local sto = 5973
    local check = {}
    
    for _, k in ipairs(t.entrada) do
        local x = getTopCreature(k).uid
        if(x == 0 or isPlayer(x) and getPlayerLevel(x) < t.lvl) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Não tem 5 jogadores para a quest.")
            return true
        end
        
            if getGlobalStorageValue(sto) == 1 then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Annihilaton está bloqueada. Aguarde até que seja liberada.")
                return true
            end
            
        table.insert(check, x)
    end
    
                for _, summon in pairs(t.monstros) do
                    local creature = getTopCreature(summon[1]).uid
                    doCreateMonster(summon[2], summon[1])
                end
                
                    for i, tid in ipairs(check) do
                        doTeleportThing(tid, t.saida, false)
                        doSendMagicEffect(t.saida, 10)
                        doTransformItem(item.uid, item.itemid == 1945)
                    end
                    
            for i = 1,time do
                formula = time - 1*i
                addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position1, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position2, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position3, formula, TEXTCOLOR_RED)
                addEvent(doSendAnimatedText, i*1000, config.position4, formula, TEXTCOLOR_RED)
            end
    
    setGlobalStorageValue(sto, 1)
    local rx = getDistanceRadius(configure.fromPos, configure.toPos)
    addEvent(clearArea, config.time * 60 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx)
    return true
end

 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Postado
  • Autor

@KotZletY, ta funcionando único problema é que não está teleportando os players para arena da anihi, o resto do script funcionada normal os demons, tempo etc. menos os players.

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.7k

Informação Importante

Confirmação de Termo