Postado Junho 14, 2015 9 anos Faça bom proveito. local cf = { rateLevel = 1, -- quantia a ser multiplicada pelo level para a formula, deixando 1 irá ser level + (diferença do ml abaixo) rateMagic = 1, -- quantia a ser multiplicada pelo magic level para a formula, deixando 1 aqui e no level significa que a cura minima seria Level+ML perc = 100 -- quantia em % da variação entre cura mínima e máxima, deixando 100 significa que irá variar entre mínimo à mínimo*2(ou seja, se a cura minima for 50 varia entre 50~100) } 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*cf.rateLevel) + (maglevel*cf.rateMagic)) return min, min*(cf.perc/100+1) end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local target = variantToNumber(var) if target ~= cid then doCombat(cid, combat, var) end doCombat(cid, combat, numberToVariant(cid)) return true end Acrescento no spells.xml: <instant name="Heal Friend" words="Heal Friend" lvl="8" mana="0" exhaustion="1000" needtarget="1" params="1" aggressive="0" needlearn="0" event="script" value="heal friend.lua"> <vocation id="1"/> <!-- Coloque aqui os ids das vocações que irão ter a magia --> <vocation id="2"/> </instant> Está configurada caso você coloque esse script em um "heal friend.lua" na pasta spells -> scripts. Não esqueça de ajeitar o level, custo de mana, e se for 8.7 colocar exhaust de grupo/icon de cooldown
Postado Junho 14, 2015 9 anos Autor funciono certinho só q tem como colar tipo assim: local position = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} exemplo. pra mudar o efect de lugar. por que tipo meu efect ta tordo ai eu kero indireita tem como pfv ?? Ajudei Rep+
Postado Junho 14, 2015 9 anos Solução Só ir mudando o posx e posy até ficar no local que deseja. local cf = { rateLevel = 1, -- quantia a ser multiplicada pelo level para a formula, deixando 1 irá ser level + (diferença do ml abaixo) rateMagic = 1, -- quantia a ser multiplicada pelo magic level para a formula, deixando 1 aqui e no level significa que a cura minima seria Level+ML perc = 100, -- quantia em % da variação entre cura mínima e máxima, deixando 100 significa que irá variar entre mínimo à mínimo*2(ou seja, se a cura minima for 50 varia entre 50~100) effect = 12, -- efeito visual a subir posx = 1, -- pos.x do efeito será pos(+ ou - esse número configurado) posy = 1 -- pos.y do efeito será pos(+ ou - esse número configurado) } 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*cf.rateLevel) + (maglevel*cf.rateMagic)) return min, min*(cf.perc/100+1) end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local target, pos = variantToNumber(var), {} if target ~= cid then doCombat(cid, combat, var) pos = getCreaturePosition(target) doSendMagicEffect({x=pos.x+cf.posx, y=pos.y+cf.posy, z=pos.z}, cf.effect) end doCombat(cid, combat, numberToVariant(cid)) pos = getCreaturePosition(cid) doSendMagicEffect({x=pos.x+cf.posx, y=pos.y+cf.posy, z=pos.z}, cf.effect) return true end
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.