Ir para conteúdo

Magia: Dano Baseado Em Skill


othereality

Posts Recomendados

Eai galera..

 

O sistema que eu usa para fazer magias me permite faze-las baseadas no skill, só que tem que ser o skill da arma que eu estou usando. Vejam:

 

function getSpellDamage(cid, weaponSkill, weaponAttack)
       damage_min = (weaponSkill * weaponAttack / 30) * 2.5
       damage_max = (weaponSkill * weaponAttack / 30) * 3.7

       if(damage_max < damage_min) then
               local tmp = damage_max
         damage_max = damage_min
         damage_min = tmp
       end
       return -damage_min, -damage_max
end

 

 

Quero saber se existe a possibilidade de eu substituir

weaponSkill

pelo skill especifico.

para fazer uma magia baseada em sword skill mesmo que o player esteja com um axe ou club na mão ou o contrario.

 

caso não tenha entendido é só postar que eu explico.

Obrigado a todos que responderem.

Link para o comentário
Compartilhar em outros sites

aqui vai um exemplo de uma magia usando a função:

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

function getSpellDamage(cid, weaponSkill, weaponAttack, lv)
       damage_min = lv * weaponAttack /3
       damage_max = lv * weaponAttack /2.4

       if(damage_max < damage_min) then
               local tmp = damage_max
         damage_max = damage_min
         damage_min = tmp
       end
       return -damage_min, -damage_max
end

setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")

arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}


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

local function onCastSpell1(parameters)
doCombat(parameters.cid, combat1, parameters.var)
end

function onCastSpell(cid, var)

if exhaustion.check(cid, 23009) == FALSE then
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
exhaustion.set(cid, 23009, 8)
return TRUE
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23009).."]")
end

end

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...