TO
dúvida

O que tem de errado no meu script?

Por Tony Araujo, 13 de ago. de 2013 em Scripts

resolvido
script
6
708
Tony AraujoT
13 de agosto de 2013 às 21:36

Error :

bad argument #1 to 'pairs' (table expected got nil)

Script :

local naruto = {
[5] = {ico_on = 10591, ico_off = 10591, cooldown = 100, spell = "Suna no tate"},
[10] = {ico_on = 10589, ico_off = 10589, cooldown = 100, spell = "Sabaku kyu"},
[17] = {ico_on = 10611, ico_off = 10611, cooldown = 100, spell = "Sabaku rou"},
[22] = {ico_on = 10612, ico_off = 10612, cooldown = 100, spell = "Sabaku sousou"},
}
 
local voc = {
[1] = naruto,
}
 
function loadSpells(cid)
local a = voc[getPlayerVocation(cid)]
local lvl = getPlayerLevel(cid)
 
local s = "@$ParseAttack"
 
for _, lv in pairs(a) do
if lvl >= lv then
 
s = s.."@"..a[lv].ico_on.."@"..a[lv].ico_off.."@"..a[lv].cooldown.."@"..a[lv].spell
end
end
 
s = s.."@$$"
doPlayerSendTextMessage(cid, 25, s)
return true
end
EskyloE
13 de agosto de 2013 às 21:41

se o cid (player no qual vc usou a funçao load) nao for da vocation 1 vai dar erro.

Tony AraujoT
13 de agosto de 2013 às 21:52

PQP, Pode crer.

 

Que fdp que eu sou ¬.¬

 

REP+

 

OBS: To ficando doido =x

SlicerS
13 de agosto de 2013 às 21:53

ainda n aprendeu? '---'

sempre q tu faz..

local a = voc[getPlayerVocation(cid)]

tu tem q verificar se isso deu certo ou retornou nil...

if a then
   ...
end
Tony AraujoT
13 de agosto de 2013 às 22:04

Sorry Slicer,

Agora eu fiz isso. HUEUHEUHEHUEUHEHUEUHEUHEUH

 

Eu tinha esquecido =/

 

eu pus no começo agr,

 

if not a then

return true

end

 

Obrigado ai rrçrç

RoksasR
16 de agosto de 2013 às 17:52

Tópico movido para a seção de dúvidas e pedidos resolvidos.