Ir para conteúdo

Featured Replies

Postado

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

Resolvido por xWhiteWolf

Ir para solução
Postado

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)

Postado
  • Autor

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

Postado
  • 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)

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