Ir para conteúdo

[Encerrado] Bug spell (erro) (Pda)


Fuuin Fake

Posts Recomendados

Esta Dando o seguinte erro no console

[26/09/2015 18:26:16] [Error - TalkAction Interface]
[26/09/2015 18:26:16] In a timer event called from:
[26/09/2015 18:26:16] data/talkactions/scripts/move1.lua:onSay
[26/09/2015 18:26:16] Description:
[26/09/2015 18:26:16] data/lib/pokemon moves.lua:424: bad argument #1 to 'random' (interval is empty)
[26/09/2015 18:26:16] stack traceback:
[26/09/2015 18:26:16]     [C]: in function 'random'
[26/09/2015 18:26:16]     data/lib/pokemon moves.lua:424: in function <data/lib/pokemon moves.lua:417> 

O codigo no meu Pokemon moves \/

elseif spell == "Compass Slash" then
local config = {
times = 5, --Vezes que o pokémon irá se teleportar.
appearEffect = 211, --Efeito que vai aparecer no pokémon ao aparecer.
effect = 223, --Efeito de corte de garras.
combat = STEELDAMAGE, --Elemento.
disappearInterval = 200, --Tempo para, depois de reaparecer, o pokémon desaparecer novamente. (em milésimos de segundo)
teleportInterval = 400 --Intervalo de tempo entre cada teleporte do pokémon. (em milésimos de segundo)
}

local pos = getPosfromArea(cid, spell_area)
local randomPosis = {}
for i = 1, config.times do
randomPosis[i] = pos[math.random(#pos)]
if not isWalkable(randomPosis[i]) or getTileInfo(randomPosis[i]).protection then
while not isWalkable(randomPosis[i]) do
randomPosis[i] = pos[math.random(#pos)]
end
end
end

local function doTeleport(cid, time)
if not isCreature(cid) then return true end
if not isCreature(target) or time <= 0 then
doAppear(cid)
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
local index = math.random(#randomPosis)
doTeleportThing(cid, randomPosis[index])
for i = index, #randomPosis do
randomPosis[i] = randomPosis[i + 1] or nil
end
doAppear(cid)
doSendMagicEffect(getThingPos(cid), config.appearEffect)
doDanoWithProtect(cid, config.combat, getThingPos(target), 0, -min, -max, config.effect)
addEvent(doDisapear, config.disappearInterval, cid)
addEvent(doTeleport, config.teleportInterval, cid, time - 1)
end

doDisapear(cid)
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
addEvent(doTeleport, config.teleportInterval, cid, config.times)
Link para o comentário
Compartilhar em outros sites

Tente assim:

elseif spell == "Compass Slash" then
    local config = {
        times = 5,                  --Vezes que o pokémon irá se teleportar.
        appearEffect = 211,         --Efeito que vai aparecer no pokémon ao aparecer.
        effect = 223,               --Efeito de corte de garras.
        combat = STEELDAMAGE,       --Elemento.
        disappearInterval = 200,    --Tempo para, depois de reaparecer, o pokémon desaparecer novamente. (em milésimos de segundo)
        teleportInterval = 400     --Intervalo de tempo entre cada teleporte do pokémon. (em milésimos de segundo)
    }
 
    local pos = getPosfromArea(cid, spell_area)
    local randomPosis = {}
    for i = 1, config.times do
        randomPosis[i] = pos[math.random(#pos)]
        if not isWalkable(randomPosis[i]) or getTileInfo(randomPosis[i]).protection then
            while not isWalkable(randomPosis[i]) do
                randomPosis[i] = pos[math.random(#pos)]
            end
        end
    end
 
    local function doTeleport(cid, time)
        if not isCreature(cid) then return true end
        if not isCreature(target) or time <= 0 then
            doAppear(cid)
            doCreatureSetNoMove(cid, false)
            doRegainSpeed(cid)
        end
        local index = math.random(#randomPosis)
        doTeleportThing(cid, randomPosis[index])
        for i = index, #randomPosis do
            randomPosis[i] = randomPosis[i + 1] or nil
        end
        doAppear(cid)
        doSendMagicEffect(getThingPos(cid), config.appearEffect)
        doDanoWithProtect(cid, config.combat, getThingPos(target), 0, -min, -max, config.effect) 
        addEvent(doDisapear, config.disappearInterval, cid)
        addEvent(doTeleport, config.teleportInterval, cid, time - 1)
    end
 
    doDisapear(cid)
    doCreatureSetNoMove(cid, true)
    doChangeSpeed(cid, -getCreatureSpeed(cid))
    addEvent(doTeleport, config.teleportInterval, cid, config.times)
Link para o comentário
Compartilhar em outros sites

O problema não está no código, e sim na área da spell. Adicione isso em areas.lua (data/lib):

 

spell_area = {                                --Área de posições que o pokémon pode teleportar.
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, 
    {0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
}
Link para o comentário
Compartilhar em outros sites

elseif spell == "Compass Slash" then
local config = {
times = 5, --Vezes que o pokémon irá se teleportar.
appearEffect = 211, --Efeito que vai aparecer no pokémon ao aparecer.
effect = 223, --Efeito de corte de garras.
combat = STEELDAMAGE, --Elemento.
disappearInterval = 200, --Tempo para, depois de reaparecer, o pokémon desaparecer novamente. (em milésimos de segundo)
teleportInterval = 400 --Intervalo de tempo entre cada teleporte do pokémon. (em milésimos de segundo)
}

local pos = getPosfromArea(cid, spell_area)
local randomPosis = {}
for i = 1, config.times do
randomPosis[i] = pos[math.random(#pos)]
if not isWalkable(randomPosis[i]) or getTileInfo(randomPosis[i]).protection then
while not isWalkable(randomPosis[i]) do
randomPosis[i] = pos[math.random(#pos)]
end
end
end

local function doTeleport(cid, time)
if not isCreature(target) or time <= 0 then
doAppear(cid)
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
local index = math.random(#randomPosis)
doTeleportThing(cid, randomPosis[index])
for i = index, #randomPosis do
randomPosis[i] = randomPosis[i + 1] or nil
end
doAppear(cid)
doSendMagicEffect(getThingPos(cid), config.appearEffect)
doDanoWithProtect(cid, config.combat, getThingPos(target), 0, -min, -max, config.effect)
addEvent(doDisapear, config.disappearInterval, cid)
addEvent(doTeleport, config.teleportInterval, cid, time - 1)
end

doDisapear(cid)
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
addEvent(doTeleport, config.teleportInterval, cid, config.times)


Teste bem, eu não tenho verificado.

Link para o comentário
Compartilhar em outros sites

[30/09/2015 19:10:31] [Error - TalkAction Interface] 
[30/09/2015 19:10:31] In a timer event called from: 
[30/09/2015 19:10:31] data/talkactions/scripts/move1.lua:onSay
[30/09/2015 19:10:31] Description: 
[30/09/2015 19:10:31] data/lib/pokemon moves.lua:423: bad argument #1 to 'random' (interval is empty)
[30/09/2015 19:10:31] stack traceback:
[30/09/2015 19:10:31] 	[C]: in function 'random'
[30/09/2015 19:10:31] 	data/lib/pokemon moves.lua:423: in function <data/lib/pokemon moves.lua:417>

obs: Antes tava dando 4 erros seguidos iguais a este mais agora so apareceu um

Link para o comentário
Compartilhar em outros sites

  • 2 years later...
A questão neste tópico de 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 para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...