Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Dano spell


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Olá, estou criando uma spell cuja função será executar o target caso esteja com a vida <= a 20% de sua vida total

 

Para isso, criei o seguinte script:

 

function onCastSpell(cid, var)
local CreatureMaxHealth = getCreatureMaxHealth(getCreatureTarget(cid))
if getCreatureTarget(cid) then
local CreatureHealth = getCreatureHealth(getCreatureTarget(cid))
local critLife = CreatureMaxHealth/5
if CreatureHealth <= critLife then
local Target = getCreatureTarget(cid)
setCombatParam(Target, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(Target, COMBAT_PARAM_EFFECT, CONST_ME_GIANTICE)
setCombatParam(Target, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatParam(Target, COMBAT_PARAM_BLOCKARMOR, true)
setCombatParam(Target, COMBAT_PARAM_BLOCKSHIELD, true)
setCombatParam(Target, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(Target, COMBAT_PARAM_EFFECT, CONST_ME_STUN)
function onGetFormulaValues(cid, level, skill, attack, factor)
local skillTotal, levelTotal = skill * 1000 + attack * 1000, level * 1000
return -(skillTotal * 1000 + levelTotal), -(skillTotal * 1000 + levelTotal)
end
setCombatCallback(Target, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
end
end
end

 

Entretanto, a spell não funciona

 

Esse script foi baseado na spell criada por SailorMoonLive, uma spell que suga em até 60% da vida do target:

 

--[[
-- You can use this spell and copy and modify it. --
-- Created By SailorMoonLive --
-- But pls don't remove this comment --
]]

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)
else
doCreatureSay(getCreatureTarget(cid), "No Kill Me PLS", 1)
doCreatureSay(cid, "Vasa Daqui antes que eu mude de ideia", 1)
end
end

Link para o post
Compartilhar em outros sites

ele só vai dar dano se a vida for menor que 20%? Explica melhor ai porque oque vc quer não tem nada a ver com nenhum dos scripts que vc postou

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Sim, ela so vai dar dano se a porcentagem da vida do target for menor ou igual a 20%, como ainda nao sei fazer scripts peguei um que mexia com porcentagem de vida e tentei editar T-T

Link para o post
Compartilhar em outros sites
  • Solução
function onCastSpell(cid, var)
	if getCreatureHealth(variantToNumber(var)) <= (0.2 * getCreatureMaxHealth(variantToNumber(var)) ) then
		doTargetCombatHealth(cid, variantToNumber(var), 1, -getCreatureMaxHealth(variantToNumber(var)), -getCreatureMaxHealth(variantToNumber(var)), CONST_ME_STUN)
		doCreatureSay(cid, "EXECUTIONER", 20, false)	
		doSendMagicEffect(getCreaturePosition(variantToNumber(var)), CONST_ME_GIANTICE)
		doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(variantToNumber(var)), CONST_ANI_SMALLICE)
	else
		doPlayerSendCancel(cid, "You can only cast this spell in creatures with less than 20% of life.")
		return false
	end
return true
end

só lembre de colocar needtarget="1" qnd for declarar a spell no spells.xml

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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