Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Spell que gira em sua volta


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Bom gente, eu tava vendo o script Frozen Orb do @xWhiteWolf, e eu pedi pra ele editar a spell, pra orb seguir o player que castou a spell, ele disse pra ver o script do Maxwellden, mas não achei nada, então resolvi criar um tópico pedindo pra que alguém possa resolver esse meu pedido, ai vai o tópico do Frozen Orb do xWhiteWolf:

 

AQUI

 

Então eu gostaria que os efeitos da magia, seguissem o player que castou a spell, e que retirassem aquele orb em baixo do player, ficou estranho kkkkk.

 

Bom os efeitos continuariam girando em volta do player, e os danos seriam causados ao redor do player, e não no local de onde ele castou.

 

Bom, é isso!

 

Obrigado desde já!

 

Link para o post
Compartilhar em outros sites

não testei mas vê aí 

local config = {
velocidade = 350, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 24, -- quantos hits vai dar
msg = "Frozen Orb", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 3, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 36, -- efeito de distancia que vai ficar rodando
effect3 = 37, -- efeito ao castar a spell
effect4 = 43 -- efeito ao acertar a roda no player
}
--[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro.
Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 
8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]]

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
return true
end

function middleEffect(uid, param, lim, count)
n = count or 0
	if isCreature(uid) and n < lim then
		for i = 0, 3 do
			local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(uid, combat, param)
		addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1)
	end
return true
end

function endEffect(uid)
	for i = 0, 3 do
		local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1)
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	addEvent(endEffect, 8.55 * 1000, uid)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
end
return true
end

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

 

não testei mas vê aí 

local config = {
velocidade = 350, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 24, -- quantos hits vai dar
msg = "Frozen Orb", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 3, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 36, -- efeito de distancia que vai ficar rodando
effect3 = 37, -- efeito ao castar a spell
effect4 = 43 -- efeito ao acertar a roda no player
}
--[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro.
Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 
8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]]

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
return true
end

function middleEffect(uid, param, lim, count)
n = count or 0
	if isCreature(uid) and n < lim then
		for i = 0, 3 do
			local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(uid, combat, param)
		addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1)
	end
return true
end

function endEffect(uid)
	for i = 0, 3 do
		local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1)
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	addEvent(endEffect, 8.55 * 1000, uid)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
end
return true
end

 

Ta quase, aconteceu o seguinte:

 

quando eu castei a spell longe do monster, a spell me acompanhava, mas onde eu ia nn dava dano em nada, ai quando castei do lado do monster, ele ficou tomando hit, eu saia de perto, a spell me acompanhava, mas o dano ficava la no monster.. Como se eu tivesse la ainda..

 

 

Aperece esse erro no distrô:

 

 

[Error - Spell Interface]

In a timer event called from:

data/spells/scripts/frozenorb.lua:onCastSpell

Description:

(luaGetThingPosition) Thing not found

 

[Error - Spell Interface]

In a timer event called from:

data/spells/scripts/frozenorb.lua:onCastSpell

Description:

data/spells/scripts/frozenorb.lua:60: attempt to index a boolean value

 

stack traceback:

data/spells/scripts/frozenorb.lua:60: in function (data/spells/scripts/frozenorb.lua:58)

 

Obrigado desde já xD

Link para o post
Compartilhar em outros sites
  • Solução

agr vai

local config = {
velocidade = 350, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 24, -- quantos hits vai dar
msg = "Frozen Orb", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 3, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 36, -- efeito de distancia que vai ficar rodando
effect3 = 37, -- efeito ao castar a spell
effect4 = 43 -- efeito ao acertar a roda no player
}
--[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro.
Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 
8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]]

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
return true
end

function middleEffect(uid, param, lim, count)
n = count or 0
	if isCreature(uid) and n < lim then
		for i = 0, 3 do
			local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(uid, combat, {
			pos = getCreaturePosition(uid),
			type = 2
        })
		addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1)
	end
return true
end

function endEffect(uid)
	if isCreature(uid) then
	for i = 0, 3 do
		local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1)
	end
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	addEvent(endEffect, 8.55 * 1000, uid)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
end
return true
end

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

agr vai

local config = {
velocidade = 350, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 24, -- quantos hits vai dar
msg = "Frozen Orb", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 3, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 36, -- efeito de distancia que vai ficar rodando
effect3 = 37, -- efeito ao castar a spell
effect4 = 43 -- efeito ao acertar a roda no player
}
--[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro.
Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 
8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]]

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
return true
end

function middleEffect(uid, param, lim, count)
n = count or 0
	if isCreature(uid) and n < lim then
		for i = 0, 3 do
			local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(uid, combat, {
			pos = getCreaturePosition(uid),
			type = 2
        })
		addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1)
	end
return true
end

function endEffect(uid)
	if isCreature(uid) then
	for i = 0, 3 do
		local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1)
	end
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	addEvent(endEffect, 8.55 * 1000, uid)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
end
return true
end

 

 

Cara, ja disse que te amo? ASUAUSAH, vc é demais cara REP++ <3 sempre me ajudou, te devo MUITO cara.. Quando precisar, to ai

Link para o post
Compartilhar em outros sites

nois po <3 auhuha curto ajudar o pessoal aqui ^=^

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
  • 10 months later...

Tem como fazer o script pra animação variar igual a spell "exori hur"?
Quando o player estiver usando uma sword sair um tipo de animação
Quando estiver usando um axe sair outro tipo

E quando estiver usando um club sair outro..?

 

Link para o post
Compartilhar em outros sites
27 minutos atrás, Lucas1504 disse:

Tem como fazer o script pra animação variar igual a spell "exori hur"?
Quando o player estiver usando uma sword sair um tipo de animação
Quando estiver usando um axe sair outro tipo

E quando estiver usando um club sair outro..?

 

getItemWeaponType(uid)

 

usa essa função

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 20/07/2015 em 11:33, xWhiteWolf disse:

não testei mas vê aí 


local config = {
velocidade = 350, -- intervalo entre os giros (quanto menor, mais rapido)
hits = 24, -- quantos hits vai dar
msg = "Frozen Orb", -- msg ao soltar a spell
key = 13871, -- storage que sera utilizado pro cooldown
cooldown = 3, -- tempo em segundos de cooldown entre um uso da spell e outro.
effect1 = 36, -- efeito de distancia que vai ficar rodando
effect3 = 37, -- efeito ao castar a spell
effect4 = 43 -- efeito ao acertar a roda no player
}
--[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro.
Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 
8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]]

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 255)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
function onTargetCreature(cid, target)
   doSendMagicEffect(getCreaturePosition(target), config.effect4)
end
setCombatCallback(combat, 4, "onTargetCreature")

local arr = {
{1, 1, 1},
{1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
{1, 1, 1},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function initEffect(position)
	for i = 0, 3 do
		local pos = {x = position.x, y = position.y, z = position.z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(position, dir, config.effect1)
	end
return true
end

function middleEffect(uid, param, lim, count)
n = count or 0
	if isCreature(uid) and n < lim then
		for i = 0, 3 do
			local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
			local dir = getPosByDir(pos, i)
			local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0)
			doSendDistanceShoot(dir, dir2, config.effect1)
		end
		doCombat(uid, combat, param)
		addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1)
	end
return true
end

function endEffect(uid)
	for i = 0, 3 do
		local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z}
		local dir = getPosByDir(pos, i)
		doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1)
	end
return true
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then
	setPlayerStorageValue(cid, config.key, os.time() + config.cooldown)
	local position = getCreaturePosition(cid)
	doCreatureSay(cid, config.msg, 20)
	addEvent(endEffect, 8.55 * 1000, uid)
	doSendMagicEffect(position, config.effect3)
	initEffect(position)
	addEvent(middleEffect, 200, cid, var, config.hits)
else
	doPlayerSendCancel(cid, "You're exhausted.")
end
return true
end

Tem como fazer para ela ir até o target tambem ? 

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 20/07/2015 em 18:29, xWhiteWolf disse:

agr vai

 

Conteúdo Oculto

 

 

voce poderia adcionar um aviso (alguma mensagem) e depois de x segundos a magia sair? queria adcionar essa spell a um monstro, seria de grande ajuda!

Link para o post
Compartilhar em outros sites
  • 2 years later...
Em 20/07/2015 em 02:43, Sekk disse:

Bom gente, eu tava vendo o script Frozen Orb do @xWhiteWolf, e eu pedi pra ele editar a spell, pra orb seguir o player que castou a spell, ele disse pra ver o script do Maxwellden, mas não achei nada, então resolvi criar um tópico pedindo pra que alguém possa resolver esse meu pedido, ai vai o tópico do Frozen Orb do xWhiteWolf:

 

AQUI

 

Então eu gostaria que os efeitos da magia, seguissem o player que castou a spell, e que retirassem aquele orb em baixo do player, ficou estranho kkkkk.

 

Bom os efeitos continuariam girando em volta do player, e os danos seriam causados ao redor do player, e não no local de onde ele castou.

 

Bom, é isso!

 

Obrigado desde já!

 

funciona em 1.3? alguem pode converter?

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