Jump to content

[Encerrado] Quest Erro


damiaotorres

Recommended Posts

Boa noite, (versão é  0.1.0 (Beta Version))

 

Essa quest que tenho ela tá dando erro na distro no "cleararea", não ta removendo os boss e nem os player quando o tempo acaba e não ta mostrando o time nas position indicada nela.

 

Spoiler

local config = {
    storage = 9721,
    time = 2,                                --Tempo para fazer a quest, em minutos.
    interval = 2,                           --Tempo para poder usar a alavanca novamente, em minutos.
    timerPos = {
        {x = 1127, y = 1152, z = 7}, --Posições onde o tempo restante aparecerá.
            {x = 1129, y = 1150, z = 8},
            {x = 1129, y = 1156, z = 8},
        {x = 1121, y = 1150, z = 8},
        {x = 1121, y = 1156, z = 8},
},
    monster = {
        name = "Annihilon",               --Nome do monstro.
        pos = {
            {x = 1121, y = 1151, z = 8},           --Posições onde ele vai nascer.
            {x = 1121, y = 1153, z = 8},
            {x = 1121, y = 1155, z = 8},
            {x = 1129, y = 1151, z = 8},
            {x = 1129, y = 1153, z = 8},
            {x = 1129, y = 1155, z = 8},
        },
    },
    player = {
        {{x = 1126, y = 1152, z = 7}, {x = 1127, y = 1153, z = 8}},      --{{posição onde o player deve ficar}, {para onde será teleportado}},
    {{x = 1125, y = 1152, z = 7}, {x = 1126, y = 1153, z = 8}},
    {{x = 1124, y = 1152, z = 7}, {x = 1125, y = 1153, z = 8}},
    {{x = 1123, y = 1152, z = 7}, {x = 1124, y = 1153, z = 8}},
    {{x = 1122, y = 1152, z = 7}, {x = 1123, y = 1153, z = 8}},
    },
    area = {{x = 1121, y = 1150, z = 8}, {x = 1129, y = 1156, z = 8}},   --{{posição superior esquerda da área}, {posição inferior direita da área}},
}
local cidPos = {}
function clearArea()
    for x = config.area[1].x, config.area[2].x do
        for y = config.area[1].y, config.area[2].y do
            local pos = {x = x, y = y, z = config.area[1].z}
            local pid = getTopCreature(pos).uid
            if pid > 0 then
                if isPlayer(pid) then
                    doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                    doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_RED, "Você não conseguiu completar a Quest.")
                else
                    doRemoveCreature(pid)
                end
            end
        end
    end
    setGlobalStorageValue(config.storage, os.time() + config.interval * 60)
end
function checkPlayer()
    for x = config.area[1].x, config.area[2].x do
        for y = config.area[1].y, config.area[2].y do
            local pos = {x = x, y = y, z = config.area[1].z}
            local pid = getTopCreature(pos).uid
            if isPlayer(pid) then
                return true
            end
        end
    end
    return false
end
function convert(time)
    return {minutes = math.floor(time / 60), seconds = time - math.floor(time / 60) * 60}
end
function timer(time)
    if time < 0 or not checkPlayer() then
        return true
    end
    for i = 1, #config.timerPos do
        doSendAnimatedText(config.timerPos, convert(time).minutes..":"..convert(time).seconds, 215)
    end
    addEvent(timer, 1000, time - 1)
end
function onUse(cid)
    if getGlobalStorageValue(config.storage) > os.time() then
        return doPlayerSendCancel(cid, "Wait "..convert(getGlobalStorageValue(config.storage) - os.time()).minutes.."min and "..convert(getGlobalStorageValue(config.storage) - os.time()).seconds.."secs.")
    elseif checkPlayer() then
        return doPlayerSendCancel(cid, "Tem Player fazendo a Quest,Aguarde!.")
    end
    local p = {}
    for _, pos in pairs(config.player) do
        local pid = getTopCreature(pos[1]).uid
        if isPlayer(pid) then
            p[#p + 1] = pid
            cidPos[pid] = _
        end
    end
    if #p < #config.player then
        return doPlayerSendCancel(cid, "Não tem 5 Player necessarios.")
    end
    for i = 1, #p do
        doTeleportThing(p, config.player[cidPos[p]][2])
        doPlayerSendTextMessage(p, 27, "Boa sorte!")
    end
    for _, pos in pairs(config.monster.pos) do
        doCreateMonster(config.monster.name, pos)
    end
    timer(config.time * 60)
    addEvent(function()
        clearArea()
    end, config.time * 60 * 1000)
    return true
end

 

Link to comment
Share on other sites

  • 2 weeks later...

Esse erro.

 

Spoiler

[15/02/2019 23:46:38] [Error - Action Interface] 
[15/02/2019 23:46:38] In a timer event called from: 
[15/02/2019 23:46:38] data/actions/scripts/one/anihilation/anihi.lua:onUse
[15/02/2019 23:46:38] Description: 
[15/02/2019 23:46:38] data/actions/scripts/portaarena.lua:33: attempt to perform arithmetic on local 'rangex' (a nil value)
[15/02/2019 23:46:38] stack traceback:
[15/02/2019 23:46:38]     data/actions/scripts/portaarena.lua:33: in function 'clearArea'
[15/02/2019 23:46:38]     data/actions/scripts/one/anihilation/anihi.lua:96: in function <data/actions/scripts/one/anihilation/anihi.lua:95>
 

 O interessante que se eu colocar esse script em outro mapa, ele funciona normalmente :l 

 

 

Conseguir ajeitar, outro script tava dando erro nele devido ao uso do clearArea, tiver como ajudar a ajeitar isso.

E no script da anihi o time não ta aparecendo nas position indicada no script.

Edited by damiaotorres
Link to comment
Share on other sites

A questão neste suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...