KO
dúvida

AddEvent Bug quando desloga

Por koete, 05 de jul. de 2013 em Scripts

resolvido
script
10
1.4k
koeteK
05 de julho de 2013 às 02:38

fis um script na spell assim

function onCastSpell(cid, var) if isCreature(cid) thendoCreatureSetNoMove(cid, true)
addEvent(doCreatureSetNoMove, 60*1000, cid, false)

end

end

roda tudo certo mas quando o jogador desloga antes do tempo da Event acabar da Bug na Source alguem pode me ajudar?

gabisaooG
05 de julho de 2013 às 08:49

Ae cara seguinte, fiz com que o player não possa deslogar enquanto estiver com o addevent, vê se funciona não o testei.

 

 

SCRIPT

 

 

function onCastSpell(cid, var)
local tempo = 60 -- coloca aqui o tempo
if isCreature(cid) then
addEvent(doCreatureSetNoMove, tempo*1000, cid, false)
doCreatureSetNoMove(cid, true)
setConditionParam(fightcondition, CONDITION_PARAM_TICKS, tempo * 1000)
end
end

 

 

SlicerS
05 de julho de 2013 às 09:57

aprenda uma coisa... NUNCA use addEvent assim... -n pegue a mania do skym- sempre faça assim...

local function event(cid)
   if isCreature(cid) then
      doCreatureSetNoMove(cid, false)
   end
end
 
function onCastSpell(cid, var) 
   if isCreature(cid) then
      doCreatureSetNoMove(cid, true)      
      addEvent(event, 60*1000, cid)
   end
return true
end

Editado Julho 5 por Slicer

gabisaooG
05 de julho de 2013 às 10:01

Eu sempre faço assim, mas como foi uma edição, nem mexi nisso.

koeteK
05 de julho de 2013 às 10:56

Gabisaoo

 

 

function onCastSpell(cid, var)
local tempo = 60 -- coloca aqui o tempo
if isCreature(cid) then
addEvent(doCreatureSetNoMove, tempo*1000, cid, false)
doCreatureSetNoMove(cid, true)
setConditionParam(fightcondition, CONDITION_PARAM_TICKS, tempo * 1000)
end

end

é uma ótima ideia porém se o player morrer vai relogar ele e vai dar o mesmo debug

 

Slicer

Achei muito interessante o jeito que você usa o AddEvent

mas eu não sei pra que serve aquele

return true

se você pudesse me dar uma explicadinha rápida é porque eu já vi em vários scripts mas nunca soube para que servia. "NooB" eu sei. =)

e outra cara se não for pedir muito é que tipo na minha spell eu coloquei alguns condition ou seja OnCastSpell ja vai ter um return

return doCombat(cid, combat, var)

então como eu adiciono este outro? Posso ter 2 return em um único script?

Editado Julho 5 por koete

SlicerS
05 de julho de 2013 às 11:21

oia, em onCastSpell eu n sei se faz diferença return true ou return false... mas em um onLogin por exemplo, se tu por return false, o player n ira conseguir logar...

 

e sim, pode deixar 2... mas tb nem precisa... pode deixar soh o do doCombat... eu eh q tenhu mania de por sempre return true no final para garantir...

 

e alias, esse n eh um 'jeito'... esse eh modo CORRETO de usar addEvent ^^ justamente para nao dar esse erro no console quando o player desloga antes do addEvent...

koeteK
05 de julho de 2013 às 11:32

Slicer Bem foda! Fiz o que você falou coloquei 2 return =)

e funcionou perfeitamente não ta dando Debug nenhum cara

eu não sabia esta forma de "AddEvent" (forma correta)

realmente não deu debug nenhum

muito obrigado pela ajuda Slicer e Gabisao +REP pros dois

 

--Duvida Sanada--

nociamN
05 de julho de 2013 às 18:18

 

aprenda uma coisa... NUNCA use addEvent assim... -n pegue a mania do skym- sempre faça assim...

local function event(cid)
   if isCreature(cid) then
      doCreatureSetNoMove(cid, false)
   end
end
 
function onCastSpell(cid, var) 
   if isCreature(cid) then
      doCreatureSetNoMove(cid, true)      
      addEvent(event, 60*1000, cid)
   end
return true
end

Nossa uma coisa tao simples, e eu tava com esse erro em varias spell e nao sabia disso, brigadao ai>

SkymagnumS
05 de julho de 2013 às 19:42

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

Só uso em addEvent de 5 segundos mas acho melhor assim

 

addEvent(function()
if isCreature(cid) then
func(parameters)
end
end, 60 * 60)

Editado Julho 5 por Skymagnum

SlicerS
05 de julho de 2013 às 21:21

assim fica feio kk' e ms em 5seg- ainda da pro player deslogar heim uahuah