\M

[spells] Criando Uma Spell ! - Nivel: Intermediario .

Por \Mattheus ~*, 11 de out. de 2009 em Tutoriais de Scripting

otserv
tibia
script
18
9.5k
\Mattheus ~*\
11 de outubro de 2009 às 22:42
Fala ai Galera do XTibia


Pra você que sempre teve vontade de fazer uma Spell(Magia), Criado por você mesmo .
Então pra você que quer criar a magia veja todo o Tópico .


Então vamos ao Trabalho ;)


Primeiramente vá em spells\scripts\attack, depois você copia a magia que quiser, por exemplo você pode copiar a magia "Exevo gran mas vis" pois cada magia tem a sua área.
Eu vou pegar com exemplo a magia "Divine Caldera" ou seja Exevo Mas San, então ta copiei e colei.
Depois você entra na magia. (Eu vó entrar na divine caldera.lua).
tuto1k.jpg

Vou explicar parte por parte.


Parte 1 - O Tipo de Dano da Magia


Dentro da magia está assim: (Divine Caldera.lua)

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)


HOLYDAMAGE = O Tipo de dano que afetará o Player ou o Monster .

Tipos de Danos:
COMBAT_EARTHDAMAGE = Dano tipo Poison .
COMBAT_ENERGYDAMAGE = Dano de Energy .
COMBAT_ICEDAMAGE = Dano de Ice .
COMBAT_PHYSICALDAMAGE = Dano Físico . (Mais usado)
COMBAT_FIREDAMAGE = Dano de Fire .

Parte 2 - Efeito da Magia


setCombatParam(combat, COMBAT_PARAM_EFFECT, 49)


EFFECT, 49 = Efeito da Magia (49 = Divine)

Para ver os Tipos de Efeitos entre em seu OT Server digite: /z ou !z e o númera desejado, por exemplo o da magia Exevo Mas San é /z 49.

Parte 3 - Dano da Magia


setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.5, -30, -1.1, 0)

-0.5, -30, -1.1, 0 = Danos da magia .
Os danos da magia são gerados por você, você pode escolher o numéro que queira, não tão alto se não a magia vai ficar dando Hs (1 Hit) em qualuquer monster .

Você também pode botar outra função que o dano e gerado pelo Magic Level (ML) do Player .

function onGetFormulaValues(cid, level, maglevel)
min = -maglevel*8.8 -level/5
max = -maglevel*13.2 -level/5



Parte 4 - Condições



local condition = createConditionObject(CONDITION_DRUNK)


CONDITION_DRUNK = O Player ficara Bêbado .

Você podera botar para quê o Player fique Bêbado quando atingido com Exevo Mas San ou a sua Magia .

Para botar que o Player Fique Bêbado adicione isto na sua Magia:
local condition = createConditionObject(CONDITION_DRUNK)
setConditionParam(condition, CONDITION_PARAM_TICKS, 10000)
setCombatCondition(combat, condition)

Adicione isto entre os efeitos da magia e entre a Area.
tuto2c.jpg


Parte 5 - Área da Magia


local arr = {
{0, 0, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 3, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 0, 0}
}


A área da magia e a mais simples, Quando você coloca 1 é aonde a magia ira aparecer no Tibia, no local 3 e se você quiser por exemplo que a magia fique por dentro do Player, ja com o Array 2 a magia não ficara por dentro do Player .

Com Array 3:

tuto3v.jpg

Com Array 2:
tuto4.jpg

Só isso Galéra, quem gosto Comente, quem não gosto, só lamento .

Abraços .

Editado Outubro 12 por MattheusOT

DaNDaNrOxXD
12 de outubro de 2009 às 00:30

~> Movido para Aprovação de Tutoriais <~

Abraços

rubinhobarricheloR
12 de outubro de 2009 às 10:33

Gostei da formatação, conteúdo, contém imagens.

Irei avaliar junto com a moderação, e veremos se aprovamos.

Obrigado pelo ótimo conteúdo.

satan666S
12 de outubro de 2009 às 14:10

pergunta e o dano da magia cadê?

rubinhobarricheloR
12 de outubro de 2009 às 16:56

Adicione o dano da magia ao tópico para que possamos aprova-la.

Abraço.

Henrique MouraH
12 de outubro de 2009 às 17:22

Em sí, é um bom tutorial. Faltou algumas partes avançadas, você pode melhora-lo.

Obrigado pelo conteúdo.

 

Abraços.

\Mattheus ~*\
12 de outubro de 2009 às 17:34

Atualizado ai Galera ..

 

Adicionado: Parte 3 - Dano da Magia .

 

Abraços .

rubinhobarricheloR
12 de outubro de 2009 às 18:21

Parabéns, seu tópico foi aprovado com sucesso.

Tópico movido :button_ok:

\Mattheus ~*\
12 de outubro de 2009 às 18:27

Opá, Vlw ai Rubinho s2

 

Mais um Aprovado ;)

 

Abraços .

satan666S
12 de outubro de 2009 às 21:16

explique melhor sobre o dano porque da forma que está acredito que muitos não iram entender nada.

 

Parte 4 - Danos Adicionais

não são danos e sim condições.

\Mattheus ~*\
12 de outubro de 2009 às 21:25

Ok, Vou concertar,

 

 

Botarei Condições .

 

 

Abraços . (Obrigado pelas dicas)

7 meses depois...
NockPlaysN
31 de maio de 2010 às 11:55

Euaqui!

 

Elogio: Tutorial está bom, continue assim vei.

 

Critica: Você esqeceu como termina ela, quando você salva ela no spells.

 

Valeu abraços... ;D~

1 mês depois...
MaposM
12 de junho de 2010 às 18:00

tava precisanu mto desse topico. vlws :smile_positivo:

mario700M
12 de junho de 2010 às 20:30

hey cara, eu fiz assim olha:

 

----------------------

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, 0, -1.3, 0)

 

local arr = {

{0, 1, 0, 0, 0, 1, 0},

{0, 1, 0, 0, 0, 1, 0},

{0, 0, 1, 1, 1, 0, 0},

{0, 0, 1, 3, 1, 0, 0},

{0, 0, 1, 1, 1, 0, 0},

{0, 1, 0, 0, 0, 1, 0},

{0, 1, 0, 0, 0, 1, 0}

}

 

Local area = createCombatArea(arr)

 

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

--------------------

 

tem algum erro? quando abri o server ele diz assim

"expected near 'area'"

 

e outra coisa...

o script das minhas magias do meu ot, dei o download de dois, nao sao como esse que vc fez..

é assim olha:

---------

local area = createCombatArea(AREA_CIRCLE3X3)

---------

 

 

ve se tem como me ajudar!

Editado Junho 12 por mario700

NivaldinN
13 de junho de 2010 às 18:26

Amigo, não entendi ainda a parte da dano.

Poderia explicar melhor? Obrigado.