Ir para conteúdo
  • 0

[Magia] - Erro na Distro ao morrer


julhinhuu

Pergunta

Tava colocando esta Spell no meu server, depois ao testar apareceu alguns bug, ao dar logout da erro na distro e quando o player solta a magia e morre tambem da erro na distro.

 

Peço ajuda de quem entende, aprendendo aos poucos.

 

A só para lembrar o erro na distro é sempre doAreaCombatHealth, ja retirei param.cid funciona so que não reconhece o player que esta soltando a magia.

 

 

Segue a magia abaixo:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, true)

arr = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function spellCallback(param)
local form = 100

if param.count > 0 or math.random(0, 1) == 1 then
doSendMagicEffect(param.pos, CONST_ME_MORTAREA)
doAreaCombatHealth(param.cid, COMBAT_DEATHDAMAGE, param.pos, 0, -(((form*getPlayerLevel(param.cid)/2)*getPlayerMagLevel(param.cid))/20)/2, -(((form*getPlayerLevel(param.cid)/2)*getPlayerMagLevel(param.cid))/20), CONST_ME_EXPLOSIONHIT)
end

if(param.count < 5) then
param.count = param.count + 1
addEvent(spellCallback, math.random(1000, 3000), param)
end
end

function onCastSpell(cid, var)
doPlayerSetPzLocked(cid)
return doCombat(cid, combat, var)
end

function onTargetTile(cid, pos)
local param = {}
param.cid = cid
param
.pos = pos
param
.count = 0
spellCallback(param)
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
doSetCreatureOutfit(cid,{lookType = 290, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons}, 18 * 1000)
return doCombat(cid, combat, var)
end

 

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Troque:

if(param.count < 5) then
param.count = param.count + 1
addEvent(spellCallback, math.random(1000, 3000), param)
end

por:

if(param.count < 5) then
param.count = param.count + 1
addEvent(function()
if not isCreature(param.cid) then return true end
spellCallback(param)
end, math.random(1000, 3000))
end

Link para o comentário
Compartilhar em outros sites

  • 0

qual o erro que apresenta ?

 

post-321783-0-72706800-1440609756_thumb.png

 

Este é o erro.. espero que possa mim ajudar.

So para relembrar este erro acontece quando eu solto a magia com adm e dou logout mesmo acontece com player se soltar a magia e morrer da mesmo erro.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Troque:
if(param.count < 5) then
    param.count = param.count + 1
    addEvent(spellCallback, math.random(1000, 3000), param)
end
por:
if(param.count < 5) then
    param.count = param.count + 1
    addEvent(function()
        if not isCreature(param.cid) then return true end
        spellCallback(param)
    end, math.random(1000, 3000))
end

 

Faltou um END.

 

if(param.count < 5) then

param.count = param.count + 1

addEvent(function()

if not isCreature(param.cid) then return true end

spellCallback(param)

end, math.random(1000, 3000))

end

end

 

Não resolveu a magia que eu gostaria mais a outra ficou 100%, Obrigado pela ajuda te amo <3

 

Link para o comentário
Compartilhar em outros sites

  • 0

Mensagem do Sistema

 

Este tópico foi movido de "OTServSuporteSuporte Scripting" para "OTServSuporteSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".
Sempre seja atento ao postar um tópico, verifique se está postando no lugar correto.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...