Poderia ser um pouco mais específico ?
info
Grupo: Campones
Registrado: 07/02/13
Posts: 60
Reputação: +9

Poderia ser um pouco mais específico ?
O que o script faz?
Vamos lá!
12 loops determinado pelo "for"
local summon = Pega as criaturas sumonadas pelo player
se retornar true entao
cdzin = move .. "nmr do loop", no caso vai gerar, move1, move2, move3 ...
Aí, ele vai buscar no movestable o level para usar esse move, POREM, a criatura q estou buscando tem apenas 4 moves. Logo, quando chegar em move5, vai retornar NIL pq n existe na tabela.
O problema eh q eu coloquei:
-> se funcao == nil, entao retornar skillLevel = 0
Mas nao funciona dessa maneira.
Preciso saber como fazer o script ignorar esse nil q vai retornar e DÁ-LO como nil mesmo e continuar o script.
Segue o erro da Distro:
[19/03/2014 06:38:50] [Error - Action Interface] [19/03/2014 06:38:50] In a timer event called from: [19/03/2014 06:38:50] data/actions/scripts/goback.lua:onUse [19/03/2014 06:38:50] Description: [19/03/2014 06:38:50] data/lib/cooldown bar.lua:88: attempt to index field 'cdzin' (a nil value) [19/03/2014 06:38:50] stack traceback: [19/03/2014 06:38:50] data/lib/cooldown bar.lua:88: in function <data/lib/cooldown bar.lua:62>
--Edit 2, ja tentei ateh verificar oq pode estar ocorrendo com o a linha q verifica,
coloquei a seguinte condicao
if cds > 4 then
skillLvl = 0
else
skillLevel = movestable[getCreatureName(summon)].cdzin.level
end
Ele continua tentando ler a segunda linha, mesmo se cds for 5
Resolvido!
Editado Março 19 por betownage
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

Tópico movido para Pedidos e dúvidas resolvidos.



info
Grupo: Campones
Registrado: 15/10/13
Posts: 49
Reputação: +1
for cds = 1, 12 do local summon = getCreatureSummons(cid)[1] if summon and getPlayerStorageValue(summon, 212123) >= 1 then cdzin = "cm_move"..cds else --alterado v2.5 cdzin = "move"..cds end if (movestable[getCreatureName(summon)].cdzin.level) == nil then -- ERRO AQUI skillLevel = 0 else skillLevel = movestable[getCreatureName(summon)].cdzin.level end if getCD(a.uid, cdzin) > 0 then ret = ret..""..(getCD(a.uid, cdzin)).."," else ret = ret.."0," end endPelo que chequei, quando o cds chega em 5, a linha na qual marquei, emite erro.
5 porque o pokemon não possui nada mais na tabela movestable, digamos que ele teria apenas 4 skills.
Alguém poderia me dar uma luz de como passar por isso?
Sei que quando chega em 5 ele emitirá nil, como posso fazer para impedir que ela emita erro?