Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] Script de spell


Ir para solução Resolvido por gobr,

Posts Recomendados

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.

Link para o post
Compartilhar em outros sites
  • 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

para nos conhecer clica na imagem

 

wvwhp0.png

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo