Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Então pessoal. queria pedir uma ajuda para voces sobre uma Spells.

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
 
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
 
 
function onCastSpell(cid, var)
        local arrows = {2352} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil
 
        if ammo and doRemoveItem(ammo.uid, 5) then
                doSendAnimatedText(getPlayerPosition(cid), "Dead!", TEXTCOLOR_BLUE)
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 500, parameters)
                addEvent(onCastSpell3, 1000, parameters)
                return TRUE
        else
                doPlayerSendCancel(cid, "Você precisa de c arrow para usar esta magia.")
                return FALSE
        end
 
.  eu queria tirar isso. por que toda vez queeu falo Exori flux. eu perco minha C arrow. (Crystal Arrow). e eu queria deixar para solta infinitamente. sem acaba a Crystal Arrow.
Pode  Ajudar.

pbotttttttttttttttttttt.gif?1435636828

Link para o post
Compartilhar em outros sites

Você queria tirar oque? A spell? Ou que ele deixasse de usar flechas?

Meu Conteúdo no TK:

 

Sources 8.6x, 8.7x, 9.x

 

Naruto Sprites

 

 

Se eu lhe ajudar, você reconhecer que ajudei, mas não der Rep+, não espere por ajuda na próxima duvida.

 

aODwHkU.png

 

Link para o post
Compartilhar em outros sites
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)


local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)


local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)


local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end


local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end


local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end




function onCastSpell(cid, var)
        local arrows = {2352} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil


        if ammo and doRemoveItem(ammo.uid, 0) then
                doSendAnimatedText(getPlayerPosition(cid), "Dead!", TEXTCOLOR_BLUE)
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 500, parameters)
                addEvent(onCastSpell3, 1000, parameters)
                return TRUE
        else
                doPlayerSendCancel(cid, "Você precisa de c arrow para usar esta magia.")
                return FALSE
        end
Link para o post
Compartilhar em outros sites
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)


local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)


local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)


local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end


local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end


local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end




function onCastSpell(cid, var)
        local arrows = {2352} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil


        if ammo and doRemoveItem(ammo.uid, 0) then
                doSendAnimatedText(getPlayerPosition(cid), "Dead!", TEXTCOLOR_BLUE)
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 500, parameters)
                addEvent(onCastSpell3, 1000, parameters)
                return TRUE
        else
                doPlayerSendCancel(cid, "Você precisa de c arrow para usar esta magia.")
                return FALSE
        end

Então amigo. eu queria que so solta-se o poder com a C - ARROW. mais eu coloquei para soltar so com a c arrow. mais quando eu solto exori flux que o poder . a C . ARROW some. 

Você queria tirar oque? A spell? Ou que ele deixasse de usar flechas?

Então amigo. eu queria que so solta-se o poder com a C - ARROW. mais eu coloquei para soltar so com a c arrow. mais quando eu solto exori flux que o poder . a C . ARROW some. 

pbotttttttttttttttttttt.gif?1435636828

Link para o post
Compartilhar em outros sites

substitui o seu script por esse daqui:


 
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
 
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
 
 
function onCastSpell(cid, var)
        local arrows = {2352} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil
 
        if ammo then
                doSendAnimatedText(getPlayerPosition(cid), "Dead!", TEXTCOLOR_BLUE)
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 500, parameters)
                addEvent(onCastSpell3, 1000, parameters)
                return true
        else
                doPlayerSendCancel(cid, "Você precisa de c arrow para usar esta magia.")
                return false
        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

substitui o seu script por esse daqui:

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
 
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
 
 
function onCastSpell(cid, var)
        local arrows = {2352} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil
 
        if ammo then
                doSendAnimatedText(getPlayerPosition(cid), "Dead!", TEXTCOLOR_BLUE)
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 500, parameters)
                addEvent(onCastSpell3, 1000, parameters)
                return true
        else
                doPlayerSendCancel(cid, "Você precisa de c arrow para usar esta magia.")
                return false
        end

Moderador. queria pedir sua ajuda em mas uma coisa. Nao sei se precisa criar um novo topico mais se precisar eu crio. 

queria sua ajuda no NPC.  de barco eu coloquei todas as cidades e todas as position. certas . e vai todas as cidades. Bom para ficar melhor irei criar outro topico. para ficar melhor nao so para mim. mais para outras pessoas que possa estar com o mesma duvida e o mesmo pedido que eu.

substitui o seu script por esse daqui:

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_BLOCKARMOR, TRUE)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 36)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -10, -20, -10, 0)
 
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
 
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
 
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
 
 
function onCastSpell(cid, var)
        local arrows = {2352} -- arrows que podem ser utilizadas
        local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or
                isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or
                nil
 
        if ammo then
                doSendAnimatedText(getPlayerPosition(cid), "Dead!", TEXTCOLOR_BLUE)
                local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
                addEvent(onCastSpell1, 100, parameters)
                addEvent(onCastSpell2, 500, parameters)
                addEvent(onCastSpell3, 1000, parameters)
                return true
        else
                doPlayerSendCancel(cid, "Você precisa de c arrow para usar esta magia.")
                return false
        end

Ah e so mais uma coisa amigo. depois que voce  me falou para colocar esse scripte. a magia parou de funcionar.

pbotttttttttttttttttttt.gif?1435636828

Link para o post
Compartilhar em outros sites

parou de funcionar? como assim?? Ela manda a mensagem de que precisa da C-Arrow pra usar ou aparece algum erro na distro do server? Você testou a versão do Matsuo?

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

parou de funcionar? como assim?? Ela manda a mensagem de que precisa da C-Arrow pra usar ou aparece algum erro na distro do server? Você testou a versão do Matsuo?

Sim. eu testei mais eu ja coloquei a que eu postei aqi Ja ta tudo na C .a arrow nao precisa arrumar nada. mas antes tava com a assassin star. eu troquei o id e  coloquei da C arrow.  so que quando eu falo "Exori flux" a C .arrow some entende ? e ai tenho que criar outra c arrow para poder solta outro exori flux. e eu queria que arrume-se isso ( Eu queria que parece de sumir a c . arrow e so solta-se o poder com a c . arrow entendeu ?

-

E sobre seu script eu adicionei no lugar da que eu tinha. e nao deu nem um erro nada. ,mais quando entrei no sv e disse. Exori flux. a magia não funcionava era como se ela não existi-se 

Editado por rozinx.kungsan (veja o histórico de edições)

pbotttttttttttttttttttt.gif?1435636828

Link para o post
Compartilhar em outros sites

o.O vc reiniciou o server qnd trocou de script?

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

o.O vc reiniciou o server qnd trocou de script?

Reiniciei . nao deu.

pbotttttttttttttttttttt.gif?1435636828

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.

  • Conteúdo Similar

    • Por fabiodias
      Galera estou com pobléma no install php my admin,
      Pois o step 3 está dando esse erro
       
      Warning: parse_ini_file(C:\Users\Cliente\Desktop\MKBRABSOLUTE GLOBALconfig.lua) [function.parse-ini-file]: failed to open stream: No such file or directory in C:\xampp\htdocs\install.php on line 77
      Database error. Unknown database type in C:\Users\Cliente\Desktop\MKBRABSOLUTE GLOBALconfig.lua. Must be equal to: "mysql" or "sqlite". Now is: ""
       
      Meu Data base do config.



       
      Ajudem dou (REP+)
    • Por monsterserver
      Olá estou tento um problema com meu remere´s Map editor quando eu abro ele ele pede a versão 9.60 depois de uma pesquisadas eu descobrir como adicionar a 8.60 esse não é meu problema
      o problema é que quando eu abro a versão 8.60 ele aparece a seguinte mensagem
      Could not locate Tibia and/or Tibia.spr plase navigate to your Tibia 8.60(old) installation folder
       
       
      -oque eu faço ajudem por favor

    • Por Xablauzim
      BOM DIA/TARDE/NOITE, HEHEH
       
      Alguem ai que tenha um client com sarada Descompilado poderia Upar aqui?, Agradeço dando +REP.. Acredito que não é só eu que observei que vários servidores Estão atualizados com sasori, sarada e Diversos outros personagens, se alguem de bom coração quiser ver diversas carinhas Felizes, Upa o clients pls 
    • Por bielzeta
      Bom pessoal, Gostaria que me ajudassem, no seguinte Problema:
      um NPC que dê várias tasks de monstros diferentes, o player escolheria um tipo de monstro, e depois que o Player Completa-lá, ganharia uma Nova Vocação e Mudasse sua Outfit (Looktype).
      é isso Pessoal! Espero que possam me ajudar!
      Abraçoos!
    • Por MySticaL
      Alguém me ajuda com isto quando crio acc por site vem a account normal mais ai quando vou atacar um pokémon ou morro por algum diz "Theforgotenserver.exe parou de funcionar" lembrando só por mysql que da isso por sqlite não da
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo