Ir para conteúdo
  • Cadastre-se

(Resolvido)[Erro] [C]: in function 'doCombat' Magia que heala sqm á frente.


Ir para solução Resolvido por Gustavo Ntos,

Posts Recomendados

Oi Galera, então tô com um problema aqui, Tenho essa magia que fico healando um sqm na frente do personagem

porém quando eu uso dá esse erro na distro.

 

[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/sakura/mystical palm heal.lua:onCastSpell
Description:
attempt to index a nil value
stack traceback:
        [C]: in function 'doCombat'
        data/spells/scripts/sakura/mystical palm heal.lua:36: in function <data/spells/scripts/sakura/mystical palm heal.lua:20>

 

Magia



local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 1.5, 0, 1.6, 0)

 


local arr1 = {
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 3, 0, 0},
{0, 0, 0, 0, 0, 0},


}

local area1 = createCombatArea(arr1)
setCombatArea(combat, area1)


function xkarraw12(cid)  
local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
doCombat(cid, combat, var)
end
function onCastSpell(cid, var)
addEvent(xkarraw12,0,cid)
addEvent(xkarraw12,1000,cid)
addEvent(xkarraw12,2000,cid)
addEvent(xkarraw12,3000,cid)
addEvent(xkarraw12,4000,cid)
    return doCombat(cid, combat, var)
end


 

Link para o post
Compartilhar em outros sites
11 horas atrás, diarmaint disse:

Oi Galera, então tô com um problema aqui, Tenho essa magia que fico healando um sqm na frente do personagem

porém quando eu uso dá esse erro na distro.

 

[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/sakura/mystical palm heal.lua:onCastSpell
Description:
attempt to index a nil value
stack traceback:
        [C]: in function 'doCombat'
        data/spells/scripts/sakura/mystical palm heal.lua:36: in function <data/spells/scripts/sakura/mystical palm heal.lua:20>

 

Magia

 

  Ocultar conteúdo

 

 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 1.5, 0, 1.6, 0)

 


local arr1 = {
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 3, 0, 0},
{0, 0, 0, 0, 0, 0},


}

local area1 = createCombatArea(arr1)
setCombatArea(combat, area1)


function xkarraw12(cid)  
local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
doCombat(cid, combat, var)
end
function onCastSpell(cid, var)
addEvent(xkarraw12,0,cid)
addEvent(xkarraw12,1000,cid)
addEvent(xkarraw12,2000,cid)
addEvent(xkarraw12,3000,cid)
addEvent(xkarraw12,4000,cid)
    return doCombat(cid, combat, var)
end

 

 

 

 

 

11 horas atrás, diarmaint disse:

Oi Galera, então tô com um problema aqui, Tenho essa magia que fico healando um sqm na frente do personagem

porém quando eu uso dá esse erro na distro.

 

[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/sakura/mystical palm heal.lua:onCastSpell
Description:
attempt to index a nil value
stack traceback:
        [C]: in function 'doCombat'
        data/spells/scripts/sakura/mystical palm heal.lua:36: in function <data/spells/scripts/sakura/mystical palm heal.lua:20>

 

Magia

 

  Ocultar conteúdo

 

 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 1.5, 0, 1.6, 0)

 


local arr1 = {
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 3, 0, 0},
{0, 0, 0, 0, 0, 0},


}

local area1 = createCombatArea(arr1)
setCombatArea(combat, area1)


function xkarraw12(cid)  
local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
doCombat(cid, combat, var)
end
function onCastSpell(cid, var)
addEvent(xkarraw12,0,cid)
addEvent(xkarraw12,1000,cid)
addEvent(xkarraw12,2000,cid)
addEvent(xkarraw12,3000,cid)
addEvent(xkarraw12,4000,cid)
    return doCombat(cid, combat, var)
end

 

 

 

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_TARGETPLAYERSORSUMMONS, true)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 1.5, 0, 1.6, 0)
  


local arr1 = {
{0, 0, 0, 0, 0},
{0, 0, 3, 0, 0},
{0, 0, 0, 0, 0}, 

} 

local area1 = createCombatArea(arr1)
setCombatArea(combat, area1) 

function xkarraw12(cid)  
local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
end
function onCastSpell(cid, var)
addEvent(xkarraw12,0,cid)
addEvent(xkarraw12,1000,cid)
addEvent(xkarraw12,2000,cid)
addEvent(xkarraw12,3000,cid)
addEvent(xkarraw12,4000,cid)
return TRUE
end 

Link para o post
Compartilhar em outros sites

 Fiz uma nova pra você, testa ai no seu servidor:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
    min = ((level / 5) + (maglevel * 3.8) + 90)
    max = ((level / 5) + (maglevel * 8.3) + 115)
   return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
    addEvent(function() doCombat(cid, combat, var) end, 1000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 2000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 3000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 4000, cid)
   return doCombat(cid, combat, var)
end

E nas tags, deixa a linha principal assim:

<instant name="Front Heal" words="front heal" lvl="1" mana="100" direction="1" exhaustion="5000" needlearn="0" event="script" value="frontheal.lua">

Só editar do jeito que você quiser.

Link para o post
Compartilhar em outros sites
5 horas atrás, Wakon disse:

 Fiz uma nova pra você, testa ai no seu servidor:


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
    min = ((level / 5) + (maglevel * 3.8) + 90)
    max = ((level / 5) + (maglevel * 8.3) + 115)
   return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
    addEvent(function() doCombat(cid, combat, var) end, 1000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 2000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 3000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 4000, cid)
   return doCombat(cid, combat, var)
end

E nas tags, deixa a linha principal assim:


<instant name="Front Heal" words="front heal" lvl="1" mana="100" direction="1" exhaustion="5000" needlearn="0" event="script" value="frontheal.lua">

Só editar do jeito que você quiser.

ele quer que heale 1 sqm a frente isso ira funcionar?

Link para o post
Compartilhar em outros sites
4 minutos atrás, Gustavo Ntos disse:

ele quer que heale 1 sqm a frente isso ira funcionar?

Sim, está definido na tag: direction="1"

Link para o post
Compartilhar em outros sites
20 horas atrás, Wakon disse:

 Fiz uma nova pra você, testa ai no seu servidor:


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
    min = ((level / 5) + (maglevel * 3.8) + 90)
    max = ((level / 5) + (maglevel * 8.3) + 115)
   return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
    addEvent(function() doCombat(cid, combat, var) end, 1000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 2000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 3000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 4000, cid)
   return doCombat(cid, combat, var)
end

E nas tags, deixa a linha principal assim:


<instant name="Front Heal" words="front heal" lvl="1" mana="100" direction="1" exhaustion="5000" needlearn="0" event="script" value="frontheal.lua">

Só editar do jeito que você quiser.

Deu certo, Só troquei o CONST_ME_MAGIC_BLUE para effect 36, e ele fica torto, tem como deixar no centro do sqm?

sakurwa.png

Link para o post
Compartilhar em outros sites

Então cara, não manjo desses efeitos de servidor derivado, no servidor de testes que eu fiz o efeito sai normalmente no sqm da frente.

Link para o post
Compartilhar em outros sites
55 minutos atrás, Wakon disse:

Então cara, não manjo desses efeitos de servidor derivado, no servidor de testes que eu fiz o efeito sai normalmente no sqm da frente.

o Efeito é 64x64 e no tibia normal é usado 32x32 por isso fico no lugar errado

Link para o post
Compartilhar em outros sites

Sim, no script que apresentei com erro, essa era a parte que ajustava o effect, tem como implementar na script do @Wakon ?

local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
end

 

Editado por diarmaint (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
50 minutos atrás, diarmaint disse:

Sim, no script que apresentei com erro, essa era a parte que ajustava o effect, tem como implementar na script do @Wakon ?


local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
end

 

Eu testei e funcionou 100% bom uso no teu nto :D , se precisar de + ajuda é so falar:

 

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
    min = ((level / 5) + (maglevel * 3.8) + 90)
    max = ((level / 5) + (maglevel * 8.3) + 115)
   return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
local pos2 = getPlayerPosition(cid) 
if getPlayerLookDir(cid) == 1 then   
pos2.x=pos2.x+2
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 2 then  
pos2.x=pos2.x+1
pos2.y=pos2.y+2 
elseif getPlayerLookDir(cid) == 3 then 
pos2.x=pos2.x
pos2.y=pos2.y+1
elseif getPlayerLookDir(cid) == 0 then  
pos2.x=pos2.x+1
pos2.y=pos2.y
end   
doSendMagicEffect(pos2,36)
    addEvent(function() doCombat(cid, combat, var) end, 1000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 2000, cid)
   return doCombat(cid, combat, var)
end

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Opa, eu de volta aqui kkk

Eu aumentei a quantidade de vezes que a magia heala,

    addEvent(function() doCombat(cid, combat, var) end, 1000, cid)
    addEvent(function() doCombat(cid, combat, var) end, 2000, cid)
        addEvent(function() doCombat(cid, combat, var) end, 3000, cid)
            addEvent(function() doCombat(cid, combat, var) end, 4000, cid)
                addEvent(function() doCombat(cid, combat, var) end, 5000, cid)

Tem como repetir o mesmo efeito cada vez que healar?

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo