Ir para conteúdo

Featured Replies

Postado

Olá pessoal, eu sou novo na programação com lua e gostaria de pedir ajuda numa spell. A ideia seria dar damage num monstro e curar com a mesma quantidade, como se estivesse "drenando" a vida do monstro. Tentei dar uma pesquisada e pensei em juntar o exori frigo com o exura vita porque daria certo na ideia que eu gostaria.

No entanto, na hora em que utilizo a magia, a animacao do exori frigo aparece no corpo do player, gostaria de saber se eu posso utilizar o jeito que eu fiz (retornar dois valores) e onde que eu encontro o que cada parâmetro faz (se existir algo do tipo em algum site).

Utilizo TFS 1.2 para tibia 10.98

 

[Ice_Strike (exori frigo)]

  Citar

local combat = Combat()


combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)

 

function onGetFormulaValues(player, level, maglevel)
    local min = (level / 5) + (maglevel * 1.4) + 8
    local max = (level / 5) + (maglevel * 2.2) + 14
    return -min, -max
end

 

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end
 

 

[Ultimate_healing (exura vita)]

  Citar

local combat = Combat()


combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
combat:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, false)

 

function onGetFormulaValues(player, level, maglevel)
    local min = (level / 5) + (maglevel * 6.8) + 42
    local max = (level / 5) + (maglevel * 12.9) + 90
    return min, max
end

 

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

function onCastSpell(creature, variant)
    return combat:execute(creature, variant)
end
 

 

[Meu codigo]

  Citar

local combat_heal = Combat()
local combat_damage = Combat()

 

combat_heal:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
combat_heal:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
combat_heal:setParameter(COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

 

combat_damage:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat_damage:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
combat_damage:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)

 

function onGetFormulaValues(player, level, maglevel)
    local min = (level / 5) + (maglevel * 6.8) + 42
    local max = (level / 5) + (maglevel * 12.9) + 90
    return min, max
end

 

combat_heal:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
combat_damage:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

function onCastSpell(creature, variant)
    return combat_heal:execute(creature, variant), combat_damage:execute(creature, variant)
end

 

Obrigado pela atenção e se alguém puder me ajudar eu agradeço.

Resolvido por gobr

Ir para solução
Postado
  • Solução

testa esse

 

function onCastSpell(cid)
    local formula = getPlayerLevel(cid) * getPlayerMagLevel(cid)
    local target = getCreatureTarget(cid)
    
    if target < 1 then
        
        doPlayerSendCancel(cid, "You need a target.")
        return false
    end
    
    if isPlayer(target) then
        
        formula = formula / getPlayerLevel(target)
    else
        
        formula = formula / 15
    end
    
    local stealPercent = formula / 100 * 20
    
    doCreatureAddHealth(cid, stealPercent)
    doSendAnimatedText(getThingPos(cid), "+" .. stealPercent, 25)
    
    doSendDistanceShoot(getThingPos(cid), getThingPos(target), 15)
    doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getThingPos(target), 0, - formula, - formula * 0.5, CONST_ME_MAGIC_RED)
    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.

Visitante
Responder

Quem Está Navegando 0

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo