Ir para conteúdo
  • Cadastre-se

Setando -1 na storage quando desloga e dando erro na distro


Posts Recomendados

Qual o motivo deste tópico? 

spell de buff dando erro na distro

Está surgindo algum erro? Se sim coloque-o aqui. 

 

[25/08/2024 21:14:12] [Error - Spell Interface] 
[25/08/2024 21:14:12] In a timer event called from: 
[25/08/2024 21:14:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:14:12] Description: 
[25/08/2024 21:14:12] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:14:12] [Error - Spell Interface] 
[25/08/2024 21:14:12] In a timer event called from: 
[25/08/2024 21:14:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:14:12] Description: 
[25/08/2024 21:14:12] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:14:42] [Error - Spell Interface] 
[25/08/2024 21:14:42] In a timer event called from: 
[25/08/2024 21:14:42] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:14:42] Description: 
[25/08/2024 21:14:42] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:15:22] [Error - Spell Interface] 
[25/08/2024 21:15:22] In a timer event called from: 
[25/08/2024 21:15:22] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:15:22] Description: 
[25/08/2024 21:15:22] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:16:12] [Error - Spell Interface] 
[25/08/2024 21:16:12] In a timer event called from: 
[25/08/2024 21:16:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:16:12] Description: 
[25/08/2024 21:16:12] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:17:12] [Error - Spell Interface] 
[25/08/2024 21:17:12] In a timer event called from: 
[25/08/2024 21:17:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:17:12] Description: 
[25/08/2024 21:17:12] (luaDoCreatureSetStorage) Creature not found

 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 function onCastSpell(cid, var)
    local storage = 55512 -- Storage para controlar a spell
    local stage = getPlayerStorageValue(cid, storage) or 0 -- Obtém o estágio atual da spell, se não houver nenhum, assume 0
    local waittimes = {30, 30, 40, 50, 60} -- Tempos de espera para cada estágio em segundos
    local storage2 = 55513
	local waittime3 = 310
  
	if exhaustion.check(cid, storage2) then
	doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.")
	return false
	end
  
      if not isCreature(cid) then
        return false
    end
  
    if stage > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end 

    -- Definir o estágio inicial da spell
    setPlayerStorageValue(cid, storage, 1)
    stage = 1

    -- Função para avançar para o próximo estágio após o término do atual
    local function advanceStage()
        if stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            -- Programar o próximo avanço de estágio
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            -- Resetar a storage quando todos os estágios terminarem
            setPlayerStorageValue(cid, storage, -1)
        end
    end

    -- Iniciar o avanço de estágio
    addEvent(advanceStage, waittimes[stage] * 1000)


    -- Definir a exhaustion e aplicar os efeitos iniciais da spell
    local waittime = waittimes[1] -- Definir o tempo de exhaustion baseado no primeiro estágio
    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)
    
    -- Definir a storage de volta para -1 após o término do efeito da spell
    addEvent(function()
        setPlayerStorageValue(cid, storage, -1)
    end, waittime * 1000) -- Convertendo segundos para milissegundos
    
    return true
end

 

o erro começou depois que eu coloquei uma função no creaturescript para deixar todos os player com essa storage 55512, quando relogasse para -1.

a spell não da nenhum erro na distro se o player ficar logado e completar ela inteira, mas quando o player desloga da esses erros na distro, mesmo se o player tiver deslogado continua dando o erro na distro...

alguem da uma força por favor, deixei o outro topico em que me ajudaram a acertar a spell certinho porem começou a dar este erro agora...

 

Editado por Gabrielxxxxx (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Gabrielxxxxx mudou o título para Setando -1 na storage quando desloga e dando erro na distro

Boa noite @Gabrielxxxxx, essa função advanceStage é chamada algumas vezes num intervalo de tempo e ela tenta setar a storage no player, se ele estiver deslogado vai dar esse erro, pois o servidor não encontra o player. É só adicionar um check nela, assim:

 

    -- Função para avançar para o próximo estágio após o término do atual
    local function advanceStage()
        -- checa se o player/creature existe 
        if not isCreature(cid) then 
            return false
        end

        if stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            -- Programar o próximo avanço de estágio
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            -- Resetar a storage quando todos os estágios terminarem
            setPlayerStorageValue(cid, storage, -1)
        end
    end

 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
Em 25/08/2024 em 21:41, Gabrielxxxxx disse:

Qual o motivo deste tópico? 

spell de buff dando erro na distro

Está surgindo algum erro? Se sim coloque-o aqui. 

 

[25/08/2024 21:14:12] [Error - Spell Interface] 
[25/08/2024 21:14:12] In a timer event called from: 
[25/08/2024 21:14:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:14:12] Description: 
[25/08/2024 21:14:12] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:14:12] [Error - Spell Interface] 
[25/08/2024 21:14:12] In a timer event called from: 
[25/08/2024 21:14:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:14:12] Description: 
[25/08/2024 21:14:12] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:14:42] [Error - Spell Interface] 
[25/08/2024 21:14:42] In a timer event called from: 
[25/08/2024 21:14:42] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:14:42] Description: 
[25/08/2024 21:14:42] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:15:22] [Error - Spell Interface] 
[25/08/2024 21:15:22] In a timer event called from: 
[25/08/2024 21:15:22] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:15:22] Description: 
[25/08/2024 21:15:22] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:16:12] [Error - Spell Interface] 
[25/08/2024 21:16:12] In a timer event called from: 
[25/08/2024 21:16:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:16:12] Description: 
[25/08/2024 21:16:12] (luaDoCreatureSetStorage) Creature not found

[25/08/2024 21:17:12] [Error - Spell Interface] 
[25/08/2024 21:17:12] In a timer event called from: 
[25/08/2024 21:17:12] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[25/08/2024 21:17:12] Description: 
[25/08/2024 21:17:12] (luaDoCreatureSetStorage) Creature not found

 

 

Você tem o código disponível? Se tiver publique-o aqui: 


 function onCastSpell(cid, var)
    local storage = 55512 -- Storage para controlar a spell
    local stage = getPlayerStorageValue(cid, storage) or 0 -- Obtém o estágio atual da spell, se não houver nenhum, assume 0
    local waittimes = {30, 30, 40, 50, 60} -- Tempos de espera para cada estágio em segundos
    local storage2 = 55513
	local waittime3 = 310
  
	if exhaustion.check(cid, storage2) then
	doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.")
	return false
	end
  
      if not isCreature(cid) then
        return false
    end
  
    if stage > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end 

    -- Definir o estágio inicial da spell
    setPlayerStorageValue(cid, storage, 1)
    stage = 1

    -- Função para avançar para o próximo estágio após o término do atual
    local function advanceStage()
        if stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            -- Programar o próximo avanço de estágio
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            -- Resetar a storage quando todos os estágios terminarem
            setPlayerStorageValue(cid, storage, -1)
        end
    end

    -- Iniciar o avanço de estágio
    addEvent(advanceStage, waittimes[stage] * 1000)


    -- Definir a exhaustion e aplicar os efeitos iniciais da spell
    local waittime = waittimes[1] -- Definir o tempo de exhaustion baseado no primeiro estágio
    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)
    
    -- Definir a storage de volta para -1 após o término do efeito da spell
    addEvent(function()
        setPlayerStorageValue(cid, storage, -1)
    end, waittime * 1000) -- Convertendo segundos para milissegundos
    
    return true
end

 

o erro começou depois que eu coloquei uma função no creaturescript para deixar todos os player com essa storage 55512, quando relogasse para -1.

a spell não da nenhum erro na distro se o player ficar logado e completar ela inteira, mas quando o player desloga da esses erros na distro, mesmo se o player tiver deslogado continua dando o erro na distro...

alguem da uma força por favor, deixei o outro topico em que me ajudaram a acertar a spell certinho porem começou a dar este erro agora...

 

O que o rapaz acima falou pode ser usado também. mas, teste assim também:

 

function onCastSpell(cid, var)
    local storage = 55512 
    local storage2 = 55513 -- Exhaust
    local waittimes = {30, 30, 40, 50, 60} 
    local waittime3 = 310 

    if not isCreature(cid) or exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. (exhaustion.get(cid, storage2) or 0) .. " segundos para usar a spell novamente.")
        return false
    end

   
    if getPlayerStorageValue(cid, storage) > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end

    setPlayerStorageValue(cid, storage, 1)
    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)

    local function advanceStage()
        if not isCreature(cid) then
            return false
        end

        local stage = getPlayerStorageValue(cid, storage)
        if stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            setPlayerStorageValue(cid, storage, -1) -- Reseta a storage ao final dos estágios
        end
    end

    addEvent(advanceStage, waittimes[1] * 1000)
    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, waittimes[1] * 1000)

    return true
end

 

aka aka

 

monki-flip-monkey.gif

Link para o post
Compartilhar em outros sites
Em 28/08/2024 em 20:24, Rusherzin disse:

Boa noite @Gabrielxxxxx, essa função advanceStage é chamada algumas vezes num intervalo de tempo e ela tenta setar a storage no player, se ele estiver deslogado vai dar esse erro, pois o servidor não encontra o player. É só adicionar um check nela, assim:

 



    -- Função para avançar para o próximo estágio após o término do atual
    local function advanceStage()
        -- checa se o player/creature existe 
        if not isCreature(cid) then 
            return false
        end

        if stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            -- Programar o próximo avanço de estágio
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            -- Resetar a storage quando todos os estágios terminarem
            setPlayerStorageValue(cid, storage, -1)
        end
    end

 

deu esse erro na distro quando o player ta deslogado

 

[31/08/2024 14:01:56] [Error - Spell Interface] 
[31/08/2024 14:01:56] In a timer event called from: 
[31/08/2024 14:01:56] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[31/08/2024 14:01:56] Description: 
[31/08/2024 14:01:56] (luaDoCreatureSetStorage) Creature not found

Em 29/08/2024 em 01:39, Nolangg disse:

O que o rapaz acima falou pode ser usado também. mas, teste assim também:

 



function onCastSpell(cid, var)
    local storage = 55512 
    local storage2 = 55513 -- Exhaust
    local waittimes = {30, 30, 40, 50, 60} 
    local waittime3 = 310 

    if not isCreature(cid) or exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. (exhaustion.get(cid, storage2) or 0) .. " segundos para usar a spell novamente.")
        return false
    end

   
    if getPlayerStorageValue(cid, storage) > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end

    setPlayerStorageValue(cid, storage, 1)
    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)

    local function advanceStage()
        if not isCreature(cid) then
            return false
        end

        local stage = getPlayerStorageValue(cid, storage)
        if stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            setPlayerStorageValue(cid, storage, -1) -- Reseta a storage ao final dos estágios
        end
    end

    addEvent(advanceStage, waittimes[1] * 1000)
    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, waittimes[1] * 1000)

    return true
end

 

o unico erro que deu na distro foi enquanto o player estava no meio da spell

 

[31/08/2024 14:07:08] [Error - Spell Interface] 
[31/08/2024 14:07:08] In a timer event called from: 
[31/08/2024 14:07:08] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[31/08/2024 14:07:08] Description: 
[31/08/2024 14:07:08] data/spells/scripts/maito gai/hachimon_tonkou.lua:212: attempt to perform arithmetic on field '?' (a nil value)
[31/08/2024 14:07:08] stack traceback:
[31/08/2024 14:07:08]     data/spells/scripts/maito gai/hachimon_tonkou.lua:212: in function <data/spells/scripts/maito gai/hachimon_tonkou.lua:203>

Editado por Gabrielxxxxx (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Agora, Gabrielxxxxx disse:

deu esse erro na distro quando o player ta deslogado

 

[31/08/2024 14:01:56] [Error - Spell Interface] 
[31/08/2024 14:01:56] In a timer event called from: 
[31/08/2024 14:01:56] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[31/08/2024 14:01:56] Description: 
[31/08/2024 14:01:56] (luaDoCreatureSetStorage) Creature not found

o unico erro que deu na distro foi enquanto o player estava no meio da spell

 

[31/08/2024 14:07:08] [Error - Spell Interface] 
[31/08/2024 14:07:08] In a timer event called from: 
[31/08/2024 14:07:08] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[31/08/2024 14:07:08] Description: 
[31/08/2024 14:07:08] data/spells/scripts/maito gai/hachimon_tonkou.lua:212: attempt to perform arithmetic on field '?' (a nil value)
[31/08/2024 14:07:08] stack traceback:
[31/08/2024 14:07:08]     data/spells/scripts/maito gai/hachimon_tonkou.lua:212: in function <data/spells/scripts/maito gai/hachimon_tonkou.lua:203>


tenta assim agora:

 

function onCastSpell(cid, var)
    local storage = 55512 
    local storage2 = 55513 -- Exhaust
    local waittimes = {30, 30, 40, 50, 60} 
    local waittime3 = 310 

    if not isCreature(cid) or exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. (exhaustion.get(cid, storage2) or 0) .. " segundos para usar a spell novamente.")
        return false
    end

    if getPlayerStorageValue(cid, storage) > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end

    setPlayerStorageValue(cid, storage, 1)
    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)

    local function advanceStage()
        if not isCreature(cid) then
            return false
        end

        local stage = getPlayerStorageValue(cid, storage)
        if stage and stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            setPlayerStorageValue(cid, storage, -1) -- Reseta a storage ao final dos estágios
        end
    end

    addEvent(advanceStage, waittimes[1] * 1000)

    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, (waittimes[#waittimes] + waittimes[1]) * 1000)

    return true
end


caso apareça algum erro retorne aqui.

aka aka

 

monki-flip-monkey.gif

Link para o post
Compartilhar em outros sites
9 horas atrás, Nolangg disse:


tenta assim agora:

 



function onCastSpell(cid, var)
    local storage = 55512 
    local storage2 = 55513 -- Exhaust
    local waittimes = {30, 30, 40, 50, 60} 
    local waittime3 = 310 

    if not isCreature(cid) or exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. (exhaustion.get(cid, storage2) or 0) .. " segundos para usar a spell novamente.")
        return false
    end

    if getPlayerStorageValue(cid, storage) > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end

    setPlayerStorageValue(cid, storage, 1)
    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)

    local function advanceStage()
        if not isCreature(cid) then
            return false
        end

        local stage = getPlayerStorageValue(cid, storage)
        if stage and stage < #waittimes then
            stage = stage + 1
            setPlayerStorageValue(cid, storage, stage)
            addEvent(advanceStage, waittimes[stage] * 1000)
        else
            setPlayerStorageValue(cid, storage, -1) -- Reseta a storage ao final dos estágios
        end
    end

    addEvent(advanceStage, waittimes[1] * 1000)

    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, (waittimes[#waittimes] + waittimes[1]) * 1000)

    return true
end


caso apareça algum erro retorne aqui.

[01/09/2024 01:19:01] [Error - Spell Interface] 
[01/09/2024 01:19:01] In a timer event called from: 
[01/09/2024 01:19:01] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[01/09/2024 01:19:01] Description: 
[01/09/2024 01:19:01] data/spells/scripts/maito gai/hachimon_tonkou.lua:211: attempt to perform arithmetic on field '?' (a nil value)
[01/09/2024 01:19:01] stack traceback:
[01/09/2024 01:19:01]     data/spells/scripts/maito gai/hachimon_tonkou.lua:211: in function <data/spells/scripts/maito gai/hachimon_tonkou.lua:202>

 

surge o erro quando esta quase no final da spell

Editado por Gabrielxxxxx (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Sub-Admin

ta faltando stopEvent(eventName) ao deslogar

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
19 horas atrás, L3K0T disse:

ta faltando stopEvent(eventName) ao deslogar

 

não consegui de nenhum jeito, consegue dar uma força no script lekot?

Link para o post
Compartilhar em outros sites
  • Sub-Admin
function onCastSpell(cid, var)
    if not isCreature(cid) then
        return false
    end

    local storage, storage2 = 55512, 55513
    local stage = getPlayerStorageValue(cid, storage) or 0
    local waittimes = {30, 30, 40, 50, 60}
    local waittime3 = 310

    if exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.")
        return false
    end

    if stage > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end

    setPlayerStorageValue(cid, storage, 1)

    local function advanceStage()
        if not isCreature(cid) then
            return
        end

        local currentStage = getPlayerStorageValue(cid, storage)
        if currentStage < #waittimes then
            setPlayerStorageValue(cid, storage, currentStage + 1)
            addEvent(advanceStage, waittimes[currentStage + 1] * 1000)
        else
            setPlayerStorageValue(cid, storage, -1)
        end
    end

    addEvent(advanceStage, waittimes[1] * 1000)


    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)


    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, waittimes[1] * 1000)

    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
18 horas atrás, L3K0T disse:




function onCastSpell(cid, var)
    if not isCreature(cid) then
        return false
    end

    local storage, storage2 = 55512, 55513
    local stage = getPlayerStorageValue(cid, storage) or 0
    local waittimes = {30, 30, 40, 50, 60}
    local waittime3 = 310

    if exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.")
        return false
    end

    if stage > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end

    setPlayerStorageValue(cid, storage, 1)

    local function advanceStage()
        if not isCreature(cid) then
            return
        end

        local currentStage = getPlayerStorageValue(cid, storage)
        if currentStage < #waittimes then
            setPlayerStorageValue(cid, storage, currentStage + 1)
            addEvent(advanceStage, waittimes[currentStage + 1] * 1000)
        else
            setPlayerStorageValue(cid, storage, -1)
        end
    end

    addEvent(advanceStage, waittimes[1] * 1000)


    exhaustion.set(cid, storage2, waittime3)
    OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)


    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, waittimes[1] * 1000)

    return true
end

 

vai chegando no final da spell da esse erro não consigo identificar ele no script

 

a spell funciona perfeitamente e quando esta deslogado não da mais erros na distro, porem da esse erro na distro no finalzinho da spell enquanto o player esta online com a spell em andamento...

 

[09/09/2024 09:11:44] [Error - Spell Interface] 
[09/09/2024 09:11:44] In a timer event called from: 
[09/09/2024 09:11:44] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[09/09/2024 09:11:44] Description: 
[09/09/2024 09:11:44] data/spells/scripts/maito gai/hachimon_tonkou.lua:212: attempt to perform arithmetic on field '?' (a nil value)
[09/09/2024 09:11:44] stack traceback:
[09/09/2024 09:11:44]     data/spells/scripts/maito gai/hachimon_tonkou.lua:212: in function <data/spells/scripts/maito gai/hachimon_tonkou.lua:204>

 

acabei de ver tambem que as storage que a spell daria não estão corretas, o primeiro stage seta a storage 1 porem o resto seta a storage 0, o certo seria a sequencia 1,2,3,4, e 5

Editado por Gabrielxxxxx
informaçoes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Sub-Admin
3 horas atrás, Gabrielxxxxx disse:

vai chegando no final da spell da esse erro não consigo identificar ele no script

 

a spell funciona perfeitamente e quando esta deslogado não da mais erros na distro, porem da esse erro na distro no finalzinho da spell enquanto o player esta online com a spell em andamento...

 

[09/09/2024 09:11:44] [Error - Spell Interface] 
[09/09/2024 09:11:44] In a timer event called from: 
[09/09/2024 09:11:44] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell
[09/09/2024 09:11:44] Description: 
[09/09/2024 09:11:44] data/spells/scripts/maito gai/hachimon_tonkou.lua:212: attempt to perform arithmetic on field '?' (a nil value)
[09/09/2024 09:11:44] stack traceback:
[09/09/2024 09:11:44]     data/spells/scripts/maito gai/hachimon_tonkou.lua:212: in function <data/spells/scripts/maito gai/hachimon_tonkou.lua:204>

 

acabei de ver tambem que as storage que a spell daria não estão corretas, o primeiro stage seta a storage 1 porem o resto seta a storage 0, o certo seria a sequencia 1,2,3,4, e 5

function onCastSpell(cid, var)

    if not isCreature(cid) then
        return false
    end


    local storage, storage2 = 55512, 55513
    local stage = getPlayerStorageValue(cid, storage) or 0
    local waittimes = {30, 30, 40, 50, 60}
    local waittime3 = 310


    if exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.")
        return false
    end


    if stage > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end


    setPlayerStorageValue(cid, storage, 1)


    local function advanceStage()

        if not isCreature(cid) then
            return
        end


        local currentStage = getPlayerStorageValue(cid, storage)
        if currentStage == nil or currentStage < 0 then
            currentStage = 0
        end


        if currentStage < #waittimes then
            setPlayerStorageValue(cid, storage, currentStage + 1)

            addEvent(advanceStage, (waittimes[currentStage + 1] or 30) * 1000)
        else

            setPlayerStorageValue(cid, storage, -1)
        end
    end


    addEvent(advanceStage, waittimes[1] * 1000)


    exhaustion.set(cid, storage2, waittime3)

)
    if OpenGate then
        OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)
    else
        print("Função OpenGate não encontrada.")
    end


    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, (waittimes[#waittimes] or 30) * 1000)

    return true
end

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites
23 horas atrás, L3K0T disse:

function onCastSpell(cid, var)

    if not isCreature(cid) then
        return false
    end


    local storage, storage2 = 55512, 55513
    local stage = getPlayerStorageValue(cid, storage) or 0
    local waittimes = {30, 30, 40, 50, 60}
    local waittime3 = 310


    if exhaustion.check(cid, storage2) then
        doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.")
        return false
    end


    if stage > 0 then
        doPlayerSendCancel(cid, "Você já está sob o efeito da spell.")
        return false
    end


    setPlayerStorageValue(cid, storage, 1)


    local function advanceStage()

        if not isCreature(cid) then
            return
        end


        local currentStage = getPlayerStorageValue(cid, storage)
        if currentStage == nil or currentStage < 0 then
            currentStage = 0
        end


        if currentStage < #waittimes then
            setPlayerStorageValue(cid, storage, currentStage + 1)

            addEvent(advanceStage, (waittimes[currentStage + 1] or 30) * 1000)
        else

            setPlayerStorageValue(cid, storage, -1)
        end
    end


    addEvent(advanceStage, waittimes[1] * 1000)


    exhaustion.set(cid, storage2, waittime3)

)
    if OpenGate then
        OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1)
    else
        print("Função OpenGate não encontrada.")
    end


    addEvent(function()
        if isCreature(cid) then
            setPlayerStorageValue(cid, storage, -1)
        end
    end, (waittimes[#waittimes] or 30) * 1000)

    return true
end

 

sem nenhum erro na distro meu amigo, porem as storages não estão funcionando corretamente, ela funciona perfeitamente até o 2 depois volta pro 1 e fica indo pro 2, fica setando storage 1 e 2 somente, sendo q o certo iria ate a storage 5.

 

dependo desse sistema de storage pois tenho spell que são modificadas para essas storages de acordo com a transformaçã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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo