Jump to content
Close
greeneyzer

Scripting Duvidas em como criar spell

Recommended Posts

.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. 

 


Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites
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.


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...