TO
dúvida

Está dando esse error , desde quando eu criei essa funçao.

Por Tony Araujo, 23 de mar. de 2013 em Scripts

resolvido
script
9
1k
Tony AraujoT
23 de março de 2013 às 16:48

Fala ai galera, está dando esse error filho da puta,

que está dando desde quando eu criei essa funçao.

Isso checa a soul do player e adiciona mana e life ao player.

 

Error

 

[23/03/2013 16:45:01] [Error - CreatureScript Interface]
[23/03/2013 16:45:01] In a timer event called from:
[23/03/2013 16:45:01] data/creaturescripts/scripts/login.lua:onLogin
[23/03/2013 16:45:01] Description:
[23/03/2013 16:45:01] (internalGetPlayerInfo) Player not found when requesting player info #9

[23/03/2013 16:45:01] [Error - CreatureScript Interface]
[23/03/2013 16:45:01] In a timer event called from:
[23/03/2013 16:45:01] data/creaturescripts/scripts/login.lua:onLogin
[23/03/2013 16:45:01] Description:
[23/03/2013 16:45:01] data/creaturescripts/scripts/login.lua:99: attempt to compare number with boolean
[23/03/2013 16:45:01] stack traceback:
[23/03/2013 16:45:01]  data/creaturescripts/scripts/login.lua:99: in function <data/creaturescripts/scripts/login.lua:98>

 

Funçao

function setFoodLife(cid)
if getPlayerSoul(cid) > 0 then
doCreatureAddHealth(cid, 2)
doCreatureAddMana(cid, 2)
end
addEvent(setFoodLife, 1*1000, cid)
end

 

Alguem me ajuda a resolver?

[/code]

RoksasR
23 de março de 2013 às 17:10

Experimenta tirar o parâmetro "cid" da func addEvent.

Tony AraujoT
23 de março de 2013 às 17:11

Porq eu tiraria? o.0

caoticC
23 de março de 2013 às 17:20

Você esta usando no login.lua?

SlicerS
23 de março de 2013 às 17:23

(internalGetPlayerInfo) Player not found when requesting player info #9

esse erro normalmente ocorre quando tu tenta pegar um informaçao sobre um player, de uma criatura q n eh player..

tente fazer isso...

function setFoodLife(cid)
if not isPlayer(cid) then return true end
if getPlayerSoul(cid) > 0 then
doCreatureAddHealth(cid, 2)
doCreatureAddMana(cid, 2)
end
addEvent(setFoodLife, 1*1000, cid)
end

caoticC
23 de março de 2013 às 17:30

(internalGetPlayerInfo) Player not found when requesting player info #9

esse erro normalmente ocorre quando tu tenta pegar um informaçao sobre um player, de uma criatura q n eh player..

tente fazer isso...

function setFoodLife(cid)
if not isPlayer(cid) then return true end
if getPlayerSoul(cid) > 0 then
doCreatureAddHealth(cid, 2)
doCreatureAddMana(cid, 2)
end
addEvent(setFoodLife, 1*1000, cid)
end

 

Mais e login.lua não existe outra criatura a não ser o player o.O

 

Mais este erro e normal no login.lua quando vc usa addEvent.

Parece que otserv se atrapalha na hora de executar o código e o cid do player e dado com nil.

 

Tenta colocar.

if not cid then
return true
end

 

Na verdade nem recomendo usar esta função no evento login.

Bem foi isto que observei quando eu usei.

Editado Março 23 por caotic

Tony AraujoT
23 de março de 2013 às 17:34

Show, funciono ... valew e obrigado por me falar oq sinignifica esse error. REP+

 

Duvida Sanada.

RoksasR
23 de março de 2013 às 17:41

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

jhon992J
23 de março de 2013 às 17:44

Na vdd esse erro acontece quando o a função que o addEvent chamou é executada e a informação do "cid" é perdida. Ou seja, se eu chamar a função "addEvent(setFoodLife, 60000, cid)", ela vai ser executada no meu personagem após 1 minuto através do "cid" do me personagem que foi passado, mas se por acaso nesse meio tempo meu personagem morrer ou for deslogado ao executar a função não vai ser encontrado o personagem no qual o "cid" foi passado e vai ocorrer esse erro. Espero ter dado uma clareada legal kkk.

 

Aconselho em sempre que for usado um "addEvent" para executar alguma função que é passada o "cid", verificar se o player existe no momento usando a função "isPlayer(cid)", isso previne possíveis bugs.

Editado Março 23 por Jhon992