Ir para conteúdo
  • 0

Spell MUITO simples e urgente dou 4 REP+ pra quem me ajudar


totonho18

Pergunta

Galera é o seguinte,eu bolei uma spell pra dar dano de acordo com o ataque da arma,level,e o skill do jogador,a spell funciona,porém ela da dano apenas dependendo do level e skill,o ataque da arma n faz diferença,ou seja o jogador com uma knife ATTACK 5 da o mesmo dano que um jogador com uma sov attack 48,o que ouve? não era pra isso acontecer, eu quero que dê dano de acordo com o LEVEL do player + o skill dele com a arma + o ataque da arma!

 

ta ae a formula,4 REP+ pra quem conseguir corrigir pra mim! Desde já obrigado!

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)

function getSpellDamage(cid, weaponSkill, weaponAttack)
    damage_min = (weaponSkill + weaponAttack / 70) * 1.6
    damage_max = (weaponSkill + weaponAttack / 70) * 1.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

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

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage")

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

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim.

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)
function onGetFormulaValues(cid, level, skill, attack, factor)
local skill = getPlayerSkillLevel(cid, 2) --edita aqui o numero da skill
local arma = getItemAttack(getPlayerItemSlot(cid, CONST_SLOT_LEFT).uid) or getItemAttack(getPlayerItemSlot(cid, CONST_SLOT_RIGHT).uid)
local level = getPlayerLevel(cid)
return -(skill + arma + level) * 1.6, -(skill + arma + level)* 1.7
end
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
Editado por OriGM
Link para o comentário
Compartilhar em outros sites

  • 0

já ganhou REP só por tentar me ajudar amigo Muito obrigado,mas essa linha aqui ficou estranha > local skill = getPlayerSkillLevel(cid, 2) se eu colocar a id de Swordskill por exemplo,mas e se o kra treinar Club ???.

Mas REP+ pela boa vontade vlw msm!

Link para o comentário
Compartilhar em outros sites

  • 0

Creio que a ordem dos parâmetros está errada. Testei aqui com essa função e funcionou:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)

function onGetFormulaValues(cid, level, weaponSkill, weaponAttack, factor)
	damage_min = (weaponSkill + weaponAttack / 70) * 1.6
    damage_max = (weaponSkill + weaponAttack / 70) * 1.7
	
	return - math.max(damage_min, damage_max), - math.min(damage_min, damage_max)
end

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

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end 
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...