Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 8.60 Global

 

Qual o motivo deste tópico?  Ajuda para criar uma Spell

 

Citar

Olá todos, estou com uma ideia mas não consigo concretizar, quero uma spell para knight que funcione basicamente como um exori mas que ao mesmo tempo drene a life do mob e cure o player um número proporcional, fiz alguns códigos e coletei alguns na internet mas ou o codigo nao funcionava, ou não operava de maneira similar a que pretendo, para deixar claro o que pretendo é o seguinte:

o player que utiliza essa spell vai dar um dano igual ao exori, ou seja vai ser baseado em skill e dano físico, e ao mesmo tempo ele vai se curar um valor relativo ao dano, mas não o numero igual, por exemplo se ele hitar 100 ele vai se curar 50, mas se ele jogar novamente a spell ele hitar 110 ele se cura 55, não quero uma spell baseada em magic level, quero baseada em skill, vou postar alguns códigos que tentei e alguns que coletei:

 

Você tem o código disponível? Se tiver publique-o aqui: 

--Esse codigo foi obtido em http://tibiaotmods.blogspot.com/2012/02/magia-life-drain.html e possui uma ideia interessante, porem queria um dano em área e que o dano fosse relativo a skill, level e etc do player igual a um dano causado por exori.

function onCastSpell(cid, var)
    local CreatureMaxHealth =    getCreatureMaxHealth(getCreatureTarget(cid))
if getCreatureTarget(cid)  then
    local CreatureHealth =        getCreatureHealth(getCreatureTarget(cid))
    local critLife = CreatureMaxHealth/2
    local lifedraw = ( CreatureHealth / 10)
     if CreatureHealth >= critLife  then
         local Target = getCreatureTarget(cid)
         local targetPos = getPlayerPosition(Target)
             doCreatureAddHealth(Target, -lifedraw, COMBAT_LIFEDRAIN)
              doSendAnimatedText(targetPos, lifedraw , TEXTCOLOR_GOLD)
             doSendMagicEffect(targetPos, 0)
         local pos = getPlayerPosition(cid)
             doCreatureAddHealth(cid, lifedraw, 1)
             doSendAnimatedText(playerPos, lifedraw , TEXTCOLOR_GOLD)
           doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE)       
     end
end
end

 

--Essa spell abaixo foi uma que tentei me baseando no pouco conhecimento que tenho mas deu erro no distro e não funcionou:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)
 
local combatExura = createCombatObject()
setCombatParam(combatExura, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combatExura, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combatExura, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combatExura, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
 
function onGetFormulaValues(cid, level, maglevel)
min = ((level / 5) + (maglevel * 1.4) + ?
max = ((level / 5) + (maglevel * 1.8) + 11)
return min, max
end
 
setCombatCallback(combatExura, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
 
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)
 
function onGetFormulaValues(cid, level, skill, attack, factor)
    local skillTotal, levelTotal = skill + attack, level / 5
    return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.1 + levelTotal)
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
function onCastSpell(cid, var)
    doCombat(cid, combat, var)
    return doCombat(cid, combatExura, var)
end

 

-- E essa ultima foi também uma tentativa falha:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

local combat2 = 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)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4.5, 9)

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

function onGetFormulaValues(cid, level, skill, attack, factor)
    local skillTotal, levelTotal = skill + attack, level / 5
    return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.1 + levelTotal)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell1(param)
    doCombat(param.cid, combat, param.var)
end
function onCastSpell2(param)
    doCombat(param.cid, combat2, param.var)
end

function onCastSpell(cid, var) 
          local param = {cid = cid, var = var}
                    addEvent(onCastSpell2, 100, param)
                    return addEvent(onCastSpell1, 100, param)
          end

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Postado

@greeneyzer olha na minha assinatura a baixo eu publiquei uma formula para fazer dar dano por level e por alguma skill ou ate mais de uma

 

[SPELL] Dano Por Skill

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Postado
  • Autor
5 minutos atrás, Brunds disse:

@greeneyzer olha na minha assinatura a baixo eu publiquei uma formula para fazer dar dano por level e por alguma skill ou ate mais de uma

 

[SPELL] Dano Por Skill

 

agradeço a ajuda mas eu ja criei spells com danos por spells e etc, o que eu não consigo é fazer a spell fazer o dano das skills igual um exori e ao mesmo tempo healar a vida do player, uma espécie de life drain / life steal.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo