Ir para conteúdo
  • 0

Arma com Life/Mana Drain mostrando o Heal


murilo3107

Pergunta

Olá a todos. Estou com um script de Weapon de HP/Mana drain a cada hit que determinado arrow acerta no bixo, mas estou com dificuldade em ajeitar para mostrar ambas quantidades healadas, tanto de HP quanto de Mana, já tentei de várias formas, mas está aparecendo apenas como se estivesse healando a Mana.

Abaixo o script:

 

-- Código feito por Omega --
function getPlayerTopMeleeSkill(cid)	
skill = 0	
value = 10	
for i = 1, 4 do		
if getPlayerSkillLevel(cid, i) > value then			
value = getPlayerSkillLevel(cid, i)			
skill = i		
end	
end	
return {skill = i, value = value}
end	

-- Porcentagem do dano que será healado pelo jogador	
local healPercent = 35	
local effect = 8   --Distance effect.
function onUseWeapon(cid, var)	
local target = getCreatureTarget(cid)	
if not target then 
return true 
end	
if getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == 8855 or getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == 8855 then
local skill, attack, level = getPlayerTopMeleeSkill(cid).value, getItemInfo(getPlayerWeapon(cid).itemid).attack, getPlayerLevel(cid)
	
-- Use skill (maior valor entre melee e distance), level e attack (ataque da arma) para configurar a fórmula do dano	
local formula = 0.5 * (skill * 3 + attack * 3 + level * 2)	
local dmg = math.random(8, 12) / 10 * formula * -1	
doTargetCombatHealth(cid, target, COMBAT_LIFEDRAIN, dmg, dmg, CONST_ME_DRAWBLOOD)
doSendDistanceShoot(getThingPos(cid), getThingPos(target), effect)
local heal = math.ceil(- 1.0 * dmg * healPercent / 100)	doCreatureAddHealth(cid, heal)	
local healmana = math.ceil(- 1.0 * dmg * healPercent / 100)	doCreatureAddMana(cid, healmana)	
return true
end
end

 

Abaixo uma foto de como está:

 

image.png.f14ebafdc4f4f1753c68111827de3af0.png

 

Gostaria que aparecesse assim como no Great Spirit Potion, onde fica evidente a quantidade de HP e Mana Healada.

 

Grato desde já.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 1

Se entendi bem você quer que mostre a vida e mana drenada, para isso pode mostrar em um animated text:

 

-- Código feito por Omega --
function getPlayerTopMeleeSkill(cid)	
    skill = 0	
    value = 10	

    for i = 1, 4 do		
        if getPlayerSkillLevel(cid, i) > value then			
            value = getPlayerSkillLevel(cid, i)			
            skill = i		
        end	
    end	
    
    return 
    {
        skill = i, 
        value = value
    }

    end	
    
    -- Porcentagem do dano que será healado pelo jogador	
    local healPercent = 35	
    local effect = 8   --Distance effect.

    function onUseWeapon(cid, var)	
    local target = getCreatureTarget(cid)	

    if not target then 
        return true 
    end	

    if getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == 8855 or getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == 8855 then
    local skill, 
    local attack, level = getPlayerTopMeleeSkill(cid).value, getItemInfo(getPlayerWeapon(cid).itemid).attack, getPlayerLevel(cid)

    -- Use skill (maior valor entre melee e distance), level e attack (ataque da arma) para configurar a fórmula do dano	
    local formula = 0.5 * (skill * 3 + attack * 3 + level * 2)	
    local dmg = math.random(8, 12) / 10 * formula * -1	

    doTargetCombatHealth(cid, target, COMBAT_LIFEDRAIN, dmg, dmg, CONST_ME_DRAWBLOOD)
    doSendDistanceShoot(getThingPos(cid), getThingPos(target), effect)

    local heal = math.ceil(- 1.0 * dmg * healPercent / 100)	
    local healmana = math.ceil(- 1.0 * dmg * healPercent / 100)	

    doCreatureAddHealth(cid, heal)	
    doCreatureAddMana(cid, healmana)	

    doSendAnimatedText(getThingPos(cid), "HEALTH\n" .. heal .. "\n\nMANA\n" .. healmana, math.random(1, 255))

    return true
    end
end

 

Teste e veja se é assim que você quer.

Editado por Yan Oliveira
Link para o comentário
Compartilhar em outros sites

  • 0
15 horas atrás, Yan Oliveira disse:

Se entendi bem você quer que mostre a vida e mana drenada, para isso pode mostrar em um animated text:

 


-- Código feito por Omega --
function getPlayerTopMeleeSkill(cid)	
    skill = 0	
    value = 10	

    for i = 1, 4 do		
        if getPlayerSkillLevel(cid, i) > value then			
            value = getPlayerSkillLevel(cid, i)			
            skill = i		
        end	
    end	
    
    return 
    {
        skill = i, 
        value = value
    }

    end	
    
    -- Porcentagem do dano que será healado pelo jogador	
    local healPercent = 35	
    local effect = 8   --Distance effect.

    function onUseWeapon(cid, var)	
    local target = getCreatureTarget(cid)	

    if not target then 
        return true 
    end	

    if getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == 8855 or getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == 8855 then
    local skill, 
    local attack, level = getPlayerTopMeleeSkill(cid).value, getItemInfo(getPlayerWeapon(cid).itemid).attack, getPlayerLevel(cid)

    -- Use skill (maior valor entre melee e distance), level e attack (ataque da arma) para configurar a fórmula do dano	
    local formula = 0.5 * (skill * 3 + attack * 3 + level * 2)	
    local dmg = math.random(8, 12) / 10 * formula * -1	

    doTargetCombatHealth(cid, target, COMBAT_LIFEDRAIN, dmg, dmg, CONST_ME_DRAWBLOOD)
    doSendDistanceShoot(getThingPos(cid), getThingPos(target), effect)

    local heal = math.ceil(- 1.0 * dmg * healPercent / 100)	
    local healmana = math.ceil(- 1.0 * dmg * healPercent / 100)	

    doCreatureAddHealth(cid, heal)	
    doCreatureAddMana(cid, healmana)	

    doSendAnimatedText(getThingPos(cid), "HEALTH\n" .. heal .. "\n\nMANA\n" .. healmana, math.random(1, 255))

    return true
    end
end

 

Teste e veja se é assim que você quer.

 

 

Fiz o teste, entendi a lógica por trás, mas acabou ficando fora do padrão que eu queria mesmo, assim como a Spirit Potion apresenta a quantidade de HP e de Mana healada a cada use, queria que o lifedrain da arma fizesse o mesmo e não apenas o Health ou a Mana, deu pra entender? É meio ruim de explicar.

 

+Rep já, pela disponibilidade e vontade!

Link para o comentário
Compartilhar em outros sites

  • 0
Em 03/07/2021 em 13:20, murilo3107 disse:

 

 

Fiz o teste, entendi a lógica por trás, mas acabou ficando fora do padrão que eu queria mesmo, assim como a Spirit Potion apresenta a quantidade de HP e de Mana healada a cada use, queria que o lifedrain da arma fizesse o mesmo e não apenas o Health ou a Mana, deu pra entender? É meio ruim de explicar.

 

+Rep já, pela disponibilidade e vontade!

Então amigo, mas no caso do script que fiz para você ai ele mostra mensagem da life e mana. Não era isso que você queria? Os dois juntos sendo exibidos?

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...