Ir para conteúdo

erro ao chamar pokemon de volta


wevertonvrb

Posts Recomendados

Vamos recapitular,  pois é difícil entender o que tu quer dizer.

 

34 minutos atrás, wevertonvrb disse:

quando o summoner de um player esta com (paralize,stun) no meu caso quando esta com sleep (dormindo).

 

Então a função sleep serve apenas para paralisar o monstro?

 

34 minutos atrás, wevertonvrb disse:

quando este status esta ativado no sumoner e ele é morto, ou se dar um \r nele e o apaga, quando acontece qualquer coisa que ele deixa de existir gera este erro de criatura não encontrada

 

Possivelmente a remoção do monstro está sendo executada antes desse script, por isso gera o erro de não ter encontrado a criatura. 

 

O que eu não estou entendendo e o do porque que esse erro está sendo chamado por spell.

Essa spell está associada ao monstro ou ao player?

Se for ao monstro, e não existindo mais o monstro, logo chegamos a conclusão de que é um evento inerente ao monstro que não o encontrou mais. 

 

Posta o script dessa spell.

Link para o comentário
Compartilhar em outros sites

50 minutos atrás, Poccnn disse:

Vamos recapitular,  pois é difícil entender o que tu quer dizer.

 

 

Então a função sleep serve apenas para paralisar o monstro?

 

 

Possivelmente a remoção do monstro está sendo executada antes desse script, por isso gera o erro de não ter encontrado a criatura. 

 

O que eu não estou entendendo e o do porque que esse erro está sendo chamado por spell.

Essa spell está associada ao monstro ou ao player?

Se for ao monstro, e não existindo mais o monstro, logo chegamos a conclusão de que é um evento inerente ao monstro que não o encontrou mais. 

 

Posta o script dessa spell.

primeiramente sim, essa função paralisa o monstro, ele fica incapaz de se mover ou conjurar spells é um tipo de (stop) pois o paralise permite spell e  movimento embora lento e o sleep impede tanto o movimento quanto spell

 

o erro esta associado não a uma mas sim a varias spells, as spells equivale a paralize rune são elas que colocam o status sleep nos monstros

postarei 2 das spells abaixo

 

Spell 1

 

Spoiler

elseif spell == "Yawn" then

local ret = {}

ret.id = target

ret.cd = math.random(6, 9)

ret.check = getPlayerStorageValue(target, conds["Sleep"])

ret.first = true

ret.cond = "Sleep"

    doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 11)

    addEvent(doMoveDano2, 1500, cid, target, NORMALDAMAGE, 0, 0, ret, spell)

spell2

Spoiler

elseif spell == "Hypnosis" then

local ret = {}

ret.id = target

ret.cd = math.random(6, 9)

ret.check = getPlayerStorageValue(target, conds["Sleep"])

ret.first = true                                                

ret.cond = "Sleep"

   doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 24)

   addEvent(doMoveDano2, 150, cid, target, PSYCHICDAMAGE, 0, 0, ret, spell)

e como o doMoveDano2 é citado apesar de n ter erro relacionado vou posta-lo abaixo

 

doMoveDano2

Spoiler

function doMoveDano2(cid, pid, element, min, max, ret, spell)

if isCreature(pid) and isCreature(cid) and cid ~= pid then

   if isNpcSummon(pid) and getCreatureTarget(pid) ~= cid then

      return true                             --alterado v1.6

   end

   if ehNPC(pid) then return true end

   ---

   local canAtk = true     --alterado v1.6

   if getPlayerStorageValue(pid, 21099) >= 1 then

      doSendMagicEffect(getThingPosWithDebug(pid), 135)

      doSendAnimatedText(getThingPosWithDebug(pid), "REFLECT", COLOR_GRASS)

      addEvent(docastspell, 100, pid, spell)

      if getCreatureName(pid) == "Wobbuffet" or getCreatureName(pid) == "Reflector Wobbuffet" or getCreatureName(pid) == "Wowofet" then

         doRemoveCondition(pid, CONDITION_OUTFIT)    

      end

      canAtk = false

      setPlayerStorageValue(pid, 21099, -1)

      setPlayerStorageValue(pid, 21100, 1)

      setPlayerStorageValue(pid, 21101, cid)

      setPlayerStorageValue(pid, 21103, getTableMove(cid, getPlayerStorageValue(cid, 21102)).f)

   end

   ---   

   if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end

   if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end

      if isSummon(cid) and (ehMonstro(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can" and #getCreatureSummons(pid) <= 0)) and pid ~= cid then

         if canAtk then     --alterado v1.6

            if ret and ret.cond then

               ret.id = pid

               ret.check = getPlayerStorageValue(pid, conds[ret.cond])

               doCondition2(ret)

            end

            if spell == "Selfdestruct" then

               if getPlayerStorageValue(pid, 9658783) <= 0 then

                  doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)

                  doCreatureAddHealth(pid, -max)    --alterado v1.6

               end

            else

               

               doTargetCombatHealth(cid, pid, element, -(math.abs(min / 2)), -(math.abs(max / 2)), 255)

            end

         end

      elseif ehMonstro(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then

         if canAtk then    --alterado v1.6

            if ret and ret.cond then

               ret.id = pid

               ret.check = getPlayerStorageValue(pid, conds[ret.cond])

               doCondition2(ret)

            end

            if spell == "Selfdestruct" then

               if getPlayerStorageValue(pid, 9658783) <= 0 then

                  doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)

                  doCreatureAddHealth(pid, -max)    --alterado v1.6

               end

            else

               

               doTargetCombatHealth(cid, pid, element, -(math.abs(min / 2)), -(math.abs(max / 2)), 255)

            end

         end

      elseif isPlayer(cid) and ehMonstro(pid) and pid ~= cid then

         if canAtk then    --alterado v1.6

            if ret and ret.cond then

               ret.id = pid

               ret.check = getPlayerStorageValue(pid, conds[ret.cond])

               doCondition2(ret)

            end

            if spell == "Selfdestruct" then

               if getPlayerStorageValue(pid, 9658783) <= 0 then

                  doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)

                  doCreatureAddHealth(pid, -max)    --alterado v1.6

               end

            else

               

               doTargetCombatHealth(cid, pid, element, -(math.abs(min / 2)), -(math.abs(max / 2)), 255)

            end

         end

      end

end

end

 

Editado por wevertonvrb
Link para o comentário
Compartilhar em outros sites

17 horas atrás, wevertonvrb disse:

sim esta vou postar novamente

 

Coloque esse if..

if not isCreature(cid) then return true end

depois de..

local stg = conds["Sleep"]

ficando

local stg = conds["Sleep"]    if not isCreature(cid) then return true end    if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then        setPlayerStorageValue(cid, stg, cd)       return true     end

 

Link para o comentário
Compartilhar em outros sites

6 horas atrás, Poccnn disse:

Vamos a uma questão: para "ativar" o sleep do monstro, se faz usando uma spell pelo player? Ou ele é automático? 

o player usa uma spell porem quem solta uma spell é o summon, porem no caso aqui quem esta soltando a spell é um monstro selvagem

1 hora atrás, Drakopoulos disse:

 

Coloque esse if..

if not isCreature(cid) then return true end

depois de..

local stg = conds["Sleep"]

ficando

local stg = conds["Sleep"]    if not isCreature(cid) then return true end    if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then        setPlayerStorageValue(cid, stg, cd)       return true     end

 

continuou com o mesmo erro

 

sera que tem como fazer algo mais ou menos assim?

if notHaveMonster then return true end

 

Editado por wevertonvrb
Link para o comentário
Compartilhar em outros sites

11 horas atrás, wevertonvrb disse:

o player usa uma spell porem quem solta uma spell é o summon, porem no caso aqui quem esta soltando a spell é um monstro selvagem

Recapitulando:

O player invoca uma magia e essa magia ativa o "sleep" do monstro.

 

Portanto, essa magia cria um loop no monstro até que ele saia de "sleep".

 

Se for isso, logo uma mudança no loop do script resolveria o problema. 

Manda o script dessa magia que deixa o monstro em "sleep".

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Poccnn disse:

Recapitulando:

O player invoca uma magia e essa magia ativa o "sleep" do monstro.

 

Portanto, essa magia cria um loop no monstro até que ele saia de "sleep".

 

Se for isso, logo uma mudança no loop do script resolveria o problema. 

Manda o script dessa magia que deixa o monstro em "sleep".

corrigindo o player usa uma talkaction que faz com que seu summon solte uma magia.

exemplo: o player usa a talkaction (M1) e o seu summon solta a magia exevo gran mas vis

exemplo 2: o player usa a talkaction (M2) e seu summon solta a magia exura gran mas res

 

no caso aqui o summon usa por exemplo a magia sing e deixa o status sleep

o problema acontece quando o monstro deixa de existir

 

só esclarecendo esse erro acontece tanto com summon quanto monstros normais 

se qualquer tipo de monstro sendo summon ou não estiver com este status deixar de existir (morrer) ou ser apagado gera o erro

 

 

ja postei 2 spells em um post anterior o erro acredito n estar nos spells mas sim no sleep2

pois os pokemons selvagens geram o mesmo erro porem o erro não sita nenhuma spell

Editado por wevertonvrb
Link para o comentário
Compartilhar em outros sites

Diga como tu conseguiu resolver para que outros que tenham o mesmo problema possam resolver também. 

 

 

Editado por Poccnn
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...