Ir para conteúdo
  • Cadastre-se

(Resolvido)Auxilio com scripts de spells


Ir para solução Resolvido por Mathias Kenfi,

Posts Recomendados

.

Bom Dia,tarde, noite depende da hr que vc esta lendo isso.

bom galera eu sou iniciante entao ainda estou aprendendo varias coisas no momento preciso de auxilio com algumas spells para meu servidor, se alguem puder me ajudar ficarei bem agradecido ^_^ as magias sao as seguintes:

 

1 magia: queria uma magia que desse um dano normal porem quando o alvo estivesse com 30% da vida (alteravel) essa magia executasse o alvo ( se nao tiver como fazer isso, uma magia que de dano em % de vida seria otimo tambem)

 

2 magia: uma magia que de stun e silence no alvo 

 

3 magia: uma magia que zerasse a mana do alvo ( ou fizesse o dano em vez de bater na vida bater na mana)

 

e por ultimo e que eu acho que seja um pouco mais complicado

 

4 magia: uma magia em que voce silenciasse apenas a magia de cura do alvo ( big regeneration ) por alguns segundos

 

se puderem me ajudar em qualquer ruma ficarei bem agradecido! obg por me ceder umpouco do seu tempo!

Link para o post
Compartilhar em outros sites

o 1° como não explicou que tipo de magia seria, vou entende que essa magia normal seja uma targetiada, usei o exori mort como exemplo, mas se quiser outra apenas me fala a magia base.

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)


function onCastSpell(cid, var)
if getCreatureTarget(cid) == isPlayer(getCreatureTarget(cid)) or isMonster(getCreatureTarget(cid)) then
local target = getCreatureTarget(cid)
local life = (getCreatureMaxHealth(target)*0.01)*30
	if getCreatureHealth(target) <= life then
	doSendAnimatedText(getThingPos(target), getCreatureHealth(target), TEXTCOLOR_RED)
 	doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), CONST_ANI_SUDDENDEATH)
	doCreatureAddHealth(target, -getCreatureHealth(target))
	else
	doCombat(cid, combat, var)
	end
else
	doCombat(cid, combat, var)
end
	return true
end

se desejar colocar em outra magia, você deve colocar todo esse codigo abaixo \/

 

Citar

function onCastSpell(cid, var)
if getCreatureTarget(cid) == isPlayer(getCreatureTarget(cid)) or isMonster(getCreatureTarget(cid)) then
local target = getCreatureTarget(cid)
local life = (getCreatureMaxHealth(target)*0.01)*30
	if getCreatureHealth(target) <= life then
	doSendAnimatedText(getThingPos(target), getCreatureHealth(target), TEXTCOLOR_RED)
 	doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), CONST_ANI_SUDDENDEATH)
	doCreatureAddHealth(target, -getCreatureHealth(target))
	else
	doCombat(cid, combat, var)
	end
else
	doCombat(cid, combat, var)
end
	return true
end

 

no lugar da função onCastSpell da magia que queira, função normalmente do modo abaixo \/

 

Citar

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

 

depois é so trocar os efeito CONST_ANI_SUDDENDEATH, por o da magia.

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link para o post
Compartilhar em outros sites
  • Solução
Em 01/03/2020 em 19:35, Kill of sumoners disse:

.

Bom Dia,tarde, noite depende da hr que vc esta lendo isso.

bom galera eu sou iniciante entao ainda estou aprendendo varias coisas no momento preciso de auxilio com algumas spells para meu servidor, se alguem puder me ajudar ficarei bem agradecido ^_^ as magias sao as seguintes:

 

1 magia: queria uma magia que desse um dano normal porem quando o alvo estivesse com 30% da vida (alteravel) essa magia executasse o alvo ( se nao tiver como fazer isso, uma magia que de dano em % de vida seria otimo tambem)

 

2 magia: uma magia que de stun e silence no alvo 

 

3 magia: uma magia que zerasse a mana do alvo ( ou fizesse o dano em vez de bater na vida bater na mana)

 

e por ultimo e que eu acho que seja um pouco mais complicado

 

4 magia: uma magia em que voce silenciasse apenas a magia de cura do alvo ( big regeneration ) por alguns segundos

 

se puderem me ajudar em qualquer ruma ficarei bem agradecido! obg por me ceder umpouco do seu tempo!

 

1º Magia

Spoiler

-- Script BY: ~Mathias Kenfi
-- Contato: [email protected] / 034991286815

local config = {
	percent = 30, -- Porcentagem em que a magia irá executar o alvo
	damage = 300 -- Dano que a magia causa. OBS: Você pode alterar a fórmula na linha 29 do script
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 31)

function executeTarget(cid, target)
	percent = (config.percent/100)
	if getCreatureHealth(target) <= getCreatureMaxHealth(target)*percent then  
		return doSendAnimatedText(getCreaturePos(target),getCreatureHealth(target),215), doCreatureAddHealth(target, -getCreatureHealth(target)), doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), 35)
	end
	return false
end

function onTargetCreature(cid, target)
	return addEvent(valid(executeTarget), 250, cid, target) -- Coloquei o addEvent para deixar mais dinâmico
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onGetFormulaValues(cid, level)
damage = config.damage
return -damage, -damage
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

2º Magia

Spoiler

-- Script BY: ~Mathias Kenfi
-- Contato: [email protected] / 034991286815

local config = {
	time = 2, -- Tempo, em segundos, do silenciamento
	stun = 3, -- Tempo, em segundos, do atordoamento/stun
	damage = 300 -- Dano que a magia causa. OBS: Você pode alterar a fórmula na linha 30 do script
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 31)

function silenceTarget(cid, target)
	return doMutePlayer(target, config.time)
end

function onStunTarget(cid, target)
	doCreatureSetNoMove(target, true)
	return addEvent(valid(doCreatureSetNoMove), config.stun*1000, target, false)
end

function onTargetCreature(cid, target)
	return silenceTarget(cid, target), onStunTarget(cid, target)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onGetFormulaValues(cid, level)
damage = config.damage
return -damage, -damage
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

3º Magia: Acredito que esta magia seja apenas colocar isso

  setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN)

4º Magia

No script da magia Big Regeneration, abaixo de function onCastSpell(cid, var) coloque:

if getPlayerStorageValue(cid, 154343232) os.time() >= 1 then
  return doPlayerSendTextMessage(cid,22,"You are silence")
end

Agora o script da magia que causa o silenciamento

Spoiler

-- Script BY: ~Mathias Kenfi
-- Contato: [email protected] / 034991286815

local config = {
	time = 2, -- Tempo, em segundos, do silenciamento 
	damage = 300 -- Dano que a magia causa. OBS: Você pode alterar a fórmula na linha 20 do script
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 31)

function onTargetCreature(cid, target)
	return setPlayerStorageValue(target, 154343232, os.time()+config.time)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onGetFormulaValues(cid, level)
damage = config.damage
return -damage, -damage
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

 

Observação: Estas spells podem ser tanto alvo único, como também podem ser em área

Editado por Joaovettor (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 04/03/2020 em 19:12, Mathias Kenfi disse:

1º Magia

  Mostrar conteúdo oculto


-- Script BY: ~Mathias Kenfi
-- Contato: [email protected] / 034991286815

local config = {
	percent = 30, -- Porcentagem em que a magia irá executar o alvo
	damage = 300 -- Dano que a magia causa. OBS: Você pode alterar a fórmula na linha 29 do script
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 31)

function executeTarget(cid, target)
	percent = (config.percent/100)
	if getCreatureHealth(target) <= getCreatureMaxHealth(target)*percent then  
		return doSendAnimatedText(getCreaturePos(target),getCreatureHealth(target),215), doCreatureAddHealth(target, -getCreatureHealth(target)), doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), 35)
	end
	return false
end

function onTargetCreature(cid, target)
	return addEvent(valid(executeTarget), 250, cid, target) -- Coloquei o addEvent para deixar mais dinâmico
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onGetFormulaValues(cid, level)
damage = config.damage
return -damage, -damage
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

2º Magia

  Mostrar conteúdo oculto


-- Script BY: ~Mathias Kenfi
-- Contato: [email protected] / 034991286815

local config = {
	time = 2, -- Tempo, em segundos, do silenciamento
	stun = 3, -- Tempo, em segundos, do atordoamento/stun
	damage = 300 -- Dano que a magia causa. OBS: Você pode alterar a fórmula na linha 30 do script
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 31)

function silenceTarget(cid, target)
	return doMutePlayer(target, config.time)
end

function onStunTarget(cid, target)
	doCreatureSetNoMove(target, true)
	return addEvent(valid(doCreatureSetNoMove), config.stun*1000, target, false)
end

function onTargetCreature(cid, target)
	return silenceTarget(cid, target), onStunTarget(cid, target)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onGetFormulaValues(cid, level)
damage = config.damage
return -damage, -damage
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

3º Magia: Acredito que esta magia seja apenas colocar isso


  setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN)

4º Magia

No script da magia Big Regeneration, abaixo de function onCastSpell(cid, var) coloque:


if getPlayerStorageValue(cid, 154343232) os.time() >= 1 then
  return doPlayerSendTextMessage(cid,22,"You are silence")
end

Agora o script da magia que causa o silenciamento

  Mostrar conteúdo oculto


-- Script BY: ~Mathias Kenfi
-- Contato: [email protected] / 034991286815

local config = {
	time = 2, -- Tempo, em segundos, do silenciamento 
	damage = 300 -- Dano que a magia causa. OBS: Você pode alterar a fórmula na linha 20 do script
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 31)

function onTargetCreature(cid, target)
	return setPlayerStorageValue(target, 154343232, os.time()+config.time)
end
setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

function onGetFormulaValues(cid, level)
damage = config.damage
return -damage, -damage
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

 

Observação: Estas spells podem ser tanto alvo único, como também podem ser em área

Foi mal reviver o post, mas ao adicionar o código na fórmula da magia big regeneration ela para de funcionar, poderia me ajudar a solucionar esse problema ?

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo