Ir para conteúdo
  • 0

Spell Bugada


pvjf

Pergunta

Bem, eu configurei spells parecidas com essa (que tem sua formula baseada na skill sword e no lvl do player), mas que eram voltadas para causar dano; Esta foi feita basicamente para ser uma cura veja como ficou:

function getMinMaxValues(cid, level, magiclevel)
local skill = getPlayerSkillLevel(cid, SKILL_SWORD)
local min = (skill * 1 + level/2)
local max = min * math.random(105, 125) / 100
return min, max
end


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)
setHealingFormula(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getMinMaxValues")


function onCastSpell(cid, var)
doPlayerAddSkillTry(cid,  2, 100)
 return doCombat(cid, combat, var)
end

A tag dela no spells.xml:

  <instant name="Exura Sword" words="exura sword" lvl="1" mana="20" aggressive="0" selftarget="1" exhaustion="1000" needlearn="1" event="script" value="healing/exura sword.lua">
  <vocation id="1"/>
  <vocation id="2"/>
  <vocation id="3"/>
  <vocation id="4"/>
  <vocation id="5"/>
  <vocation id="6"/>
 </instant>

O problema é que ela está healando muiito mais do que o esperado [skill + (lvl dividido por 2)] variando em até 25% e esta fazendo com que o player ganhe pk Amarelo (não sei ao certo mas provavelmente ele pega pk branco, e ao se bater ele pega amarelo)

Se alguem souber um script parecido, ou souber o que esta errado no meu script favor, ficarei grato.

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

O motivo dos dois bugs está no uso incorreto de uma função.

function getMinMaxValues(cid, level, magiclevel)
	local skill = getPlayerSkillLevel(cid, SKILL_SWORD)
	local min = (skill * 1 + level/2)
	local max = min * math.random(105, 125) / 100
	return min, max
end


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)
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getMinMaxValues")


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

  • 0

@Darkhell: Obrigado pela atenção, mas configurar o qanto heala eu sei

@Oneshot: Vou Testar e jaja Edito informando se funcionou; qual função estava bugando?

Editado por KikimDaPadaria
Link para o comentário
Compartilhar em outros sites

  • 0

Não use setHealingFormula com funções que retornam fórmulas próprias de dano, a mesma coisa vale para setAttackFormula, use setCombatCallback.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...