Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[Tutorial básico de Magias]


3033106
 Compartilhar

Posts Recomendados

[Tutorial de como entender e modificar Spells.]

 

TODO o conteúdo do tópico foi testado nos seguintes protocolos:

 

 

8.4

8.41

8.42

8.5

8.54

8.55

8.57

8.6

 

 

Caso haja problemas, favor descreva-o.

 

Para melhor organização do tópico, ele foi dividido em várias seções.

 

1. Entendendo o Spells.XML

 

2. Editando o Spells.XML

 

3. Entendo o arquivo suamagia.lua

 

4. Editando o arquivo suamagia.lua

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1.

 

O arquivo Spells.XML é basicamente o arquivo que guarda as configurações de Runas, Magias, Conjurações e etc.

 

 

Exemplo:

 

<instant name="Rain of healing" words="rain of healing" lvl="140" manapercent="25" exhaustion="1500" needlearn="0" script="heal of raining.lua">

<vocation name="Druid"/>

<vocation name="Elder Druid"/>

</instant>

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

instant name= é o nome em inglês da magia, como Light Healing (Exura.)

 

words= são as palavras que precisam ser digitadas pra execução da magia, como Exura.

 

lvl= Nível nessessário pra usar a magia, no caso 140.

 

manapercent= Gasto de mana ao utilizar a magia, no caso 25%.

Se o usuário tem 100 de mana, 25 será consumido.

 

exhaustion= tempo em que a magia pode ser usada novamente, em milissegundos.

 

Needlearn= se o usuário precisa aprender a magia, por meio de itens, quests ou npcs. (0= não precisa aprender, 1= precisa aprender.)

 

script= localização do script da magia, no caso é heal of raining.lua, que seria no seu ot Data/Spells/Scripts/heal of raining.lua.

 

Vocation name= Vocação que pode usar a magia.

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2.

 

 

Caso queira adicionar novas magias no seu OT, abra seu Spells.XML no bloco de notas, desse jeito:

 

 

É necessário se cadastrar para acessar o conteúdo.

 

 

Copie uma definição de magia, assim:

 

 

É necessário se cadastrar para acessar o conteúdo.

 

 

E edite ao seu gosto, lembrando de mudar o nome da magia, as palavras ditas ao usar, o lugar onde o script se localiza e o nome do novo script.

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3.

 

 

O script da magia é o arquivo que contém TODAS as informações da magia, como o dano, animação, efeito da magia, etc.

 

 

Magia de exemplo: Exori.

 

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.9, 0)

 

local arr = {

{1, 1, 1},

{1, 2, 1},

{1, 1, 1}

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

 

~~~~~~~~~~~~~~~~~~~~~~~~

 

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

 

Basicamente o tipo de dano da magia, entre eles Physical, Drown, Energy, Poison, Fire, Ice, Death, etc.

 

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

 

Tipo de efeito da magia, nesse caso um efeito basico (Efeito do exori).

Entre eles CONST_ME_BLUERINGS, YELLOWRINGS, etc.

 

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.9, 0)

 

Basicamente a formula de dano da magia, editando os numeros -0.4 e -0.9 você edita respectivamente o Minino e máximo de dano da magia.

 

local arr = {

{1, 1, 1},

{1, 2, 1},

{1, 1, 1}

}

 

Onde a magia vai atacar, sendo 2 você, e 1 area em que ela ataca.

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

4.

 

 

Pra editar sua magia é MUITO simples:

 

 

Magia de exemplo: Exori.

 

 

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.9, 0)

 

local arr = {

{1, 1, 1},

{1, 2, 1},

{1, 1, 1}

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

 

~~~~~~~~~~~~~~~~~~~~~~

 

Edite valores, area, etc, salve, e ajuste no seu Spells.XML!

 

 

 

 

 

 

 

 

 

 

Bom Galeriinha, é só isso...

Duvidas, poste!

Vou estar sempre atualizando aqui..

 

Não se esqueça do meu agradecer ><'

Link para o comentário
Compartilhar em outros sites

  • Velha Guarda Ex-Staffer

Bom tópico.

Realmente explica como funciona o esquema de magias em Ot's

Mas esse ae é só para o 8.6?

Sei que deve funcionar em outros e etc..

Você pode adicionar mais sobre as mágias em ot's.

E não apenas o básico.

 

Apenas isso.

META: tibia.png

Link para o comentário
Compartilhar em outros sites

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

 

Tipo de efeito da magia, nesse caso um efeito basico (Efeito do exori).

Entre eles CONST_ME_BLUERINGS, YELLOWRINGS, etc.

 

como poderei saber qual o efeito que eu quero?

 

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.9, 0)

 

Basicamente a formula de dano da magia, editando os numeros -0.4 e -0.9 você edita respectivamente o Minino e máximo de dano da magia.

 

-0.4 seria o minimo? e -0.9 o maximo? e como os danos se aplicariam?

Link para o comentário
Compartilhar em outros sites

@Chidorigash,

 

Sim, no caso 0.4 é o mínimo e 0.9 é o máximo.

 

Segue em Spoiler um Tutorial de como conseguir uma lista de efeitos.

 

Para ver os efeitos, entre no seu GM/CM/GOD, e diga /z (numero).

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, -30, -0.9, 0)

 

Troque esta linha : setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

Por esta: setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_(numero do /z)

E deixe o resto como estava.

 

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois...
Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.