Ir para conteúdo

[Encerrado] [Duvida] Erro Revive e Medicine Pokemon


narutibianspd

Posts Recomendados

Creio que está duvida é de muitos, eu uso otserv de base o Pda by bolz v3.

 

Primeiramente ja achei um topico com esse erro mas nao foi tirado a duvida desse bug ainda.

 

 

Apos usar revive da o seguinte mas o revive funciona mas o erro persiste e as vezes o server cai por isso.

 

 

Erro*

 

[01/11/2013 16:40:44] [Error - Action Interface]
[01/11/2013 16:40:44] data/actions/scripts/revive.lua:onUse
[01/11/2013 16:40:44] Description:
[01/11/2013 16:40:44] data/actions/scripts/revive.lua:32: attempt to call global 'onPokeHealthChange' (a nil value)
[01/11/2013 16:40:44] stack traceback:
[01/11/2013 16:40:44] data/actions/scripts/revive.lua:32: in function <data/actions/scripts/revive.lua:1>
Script do meu revive.lua*
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, 990) >= 1 then
doPlayerSendCancel(cid, "You can't use revive during gym battles.")
return true
end
if getPlayerStorageValue(cid, 52481) >= 1 then
return doPlayerSendCancel(cid, "You can't do that while a duel.") --alterado v1.6
end
--
if item2.itemid <= 0 or not isPokeball(item2.itemid) then
doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")
return true
end
for a, b in pairs (pokeballs) do
if item2.itemid == b.on or item2.itemid == b.off then --edited deixei igual ao do PXG
doTransformItem(item2.uid, b.on)
doSetItemAttribute(item2.uid, "hp", 1)
for c = 1, 15 do
local str = "move"..c
setCD(item2.uid, str, 0)
end
setCD(item2.uid, "control", 0)
setCD(item2.uid, "blink", 0) --alterado v1.6
doSendMagicEffect(getThingPos(cid), 13)
doRemoveItem(item.uid, 1)
doCureBallStatus(item2.uid, "all")
cleanBuffs2(item2.uid) --alterado v1.5
if useOTClient then
onPokeHealthChange(cid) --alterei aki
end
return true
end
end
return true
end
Agora a duvida da medicine, a medicine está adicionada certinho mas ela nao cura os status negativo do pokemon apenas faz o efeito que usou mas nao cura os status. ai segue o script da medicine.lua
function onUse(cid, item, frompos, item2, topos) --alterado v1.8 \/ ajeitado!
if not isSummon(item2.uid) then return doPlayerSendCancel(cid, "This potion can only be used on pokémons.") end
if getCreatureMaster(item2.uid) ~= cid then return doPlayerSendCancel(cid, "You can only use it in your own pokemon.") end
if getPlayerStorageValue(cid, 52481) >= 1 then return doPlayerSendCancel(cid, "You can't do that while a duel.") end
local pokeball = getPlayerSlotItem(cid, 8)
doCureBallStatus(pokeball.uid, "all")
doCureStatus(item2.uid, "all", false)
if (getCreatureCondition(item2.uid, CONDITION_PARALYZE) == true) then
doRemoveCondition(item2.uid, CONDITION_PARALYZE)
end
if getCreatureSpeed(item2.uid) < getSpeed(item2.uid) then
doRegainSpeed(item2.uid)
end
doSendMagicEffect(getThingPos(item2.uid), 14)
doRemoveItem(item.uid, 1)
return true
end
Link para o comentário
Compartilhar em outros sites

Tente substituir seu revive.lua e seu medicine.lua por estes meus. Caso não funcione, suponho que o erro seja, na verdade, em outro arquivo.

Revive:

 

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid, 990) >= 1 then
doPlayerSendCancel(cid, "Você não pode fazer isso durante batalhas de GYM.")
return true
end
if getPlayerStorageValue(cid, 52481) >= 1 then
return doPlayerSendCancel(cid, "Você não pode fazer isso durante um duelo.") --alterado v1.6
end
--
if item2.itemid <= 0 or not isPokeball(item2.itemid) then
doPlayerSendCancel(cid, "Por favor, use Revive apenas em pokeballs.")
return true
end
for a, b in pairs (pokeballs) do
if item2.itemid == b.on or item2.itemid == b.off then --edited deixei igual ao do PXG
doTransformItem(item2.uid, b.on)
doSetItemAttribute(item2.uid, "hp", 1)
for c = 1, 15 do
local str = "move"..c
setCD(item2.uid, str, 0)
end
setCD(item2.uid, "control", 0)
setCD(item2.uid, "blink", 0) --alterado v1.6
doSendMagicEffect(getThingPos(cid), 13)
doRemoveItem(item.uid, 1)
doCureBallStatus(item2.uid, "all")
cleanBuffs2(item2.uid) --alterado v1.5
return true
end
end
return true
end

Medicine:
function onUse(cid, item, frompos, item2, topos) 
 
if not isSummon(item2.uid) then return doPlayerSendCancel(cid, "Medicine só pode ser usado em pokémons.") end
        if getPlayerStorageValue(cid, 990) >= 1 then
doPlayerSendCancel(cid, "Você não pode usar medicine em batalhas de gym.")
return true
end
if getCreatureMaster(item2.uid) ~= cid then return doPlayerSendCancel(cid, "Você só pode usar medicine em seu próprio pokémon.") end
if getPlayerStorageValue(cid, 52481) >= 1 then return doPlayerSendCancel(cid, "Você não pode usar medicine durante um duel.") end
 
local pokeball = getPlayerSlotItem(cid, 8)
    doCureBallStatus(pokeball.uid, "all")
    doCureStatus(item2.uid, "all", false)         
    if (getCreatureCondition(item2.uid, CONDITION_PARALYZE) == true) then
  doRemoveCondition(item2.uid, CONDITION_PARALYZE)
    end
    if getCreatureSpeed(item2.uid) < getSpeed(item2.uid) then     
       doRegainSpeed(item2.uid)
    end                                                               
doSendMagicEffect(getThingPos(item2.uid), 14)
doRemoveItem(item.uid, 1)
 
return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...