Ir para conteúdo

(Tibia Ot) Entendendo Os Scripts : Monsters, Spells E Npc's


samuel1577

Posts Recomendados

Gente,peço que vcs postem o que acharam,porque realmente desanima

trazer um tuto desse tamanho,separar,por cor,code,tudo bonitinho, e vcs

só olharem e irem embora!

 

Tutorial meu basiado no tutor do lucas, creditos a mim e a ele.

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

 

 

Aprenda a fazer seus próprios Monstros, Spells e NPC

 

Basicamente scripts sao o conjunto dos códigos que formam os arquivos de players, monster, spells, etc.

 

Nesse

tutorial vou ensinar tudo, pra vc sair daqui fazendo monstros, spells e

tudo mais. E se no final houver alguma duvida poste aqui que serei

grato em ajudar. Neste Tutorial existem varios comandos básicos, bons

para iniciantes, parte por parte é explicada, visando um maior

entendimento sobre o assunto.

Vamos lá!

 

SPELLS

Primeiro vamos falar sobre as spells

Existem

as spells de instant e as spells de rune, as spells de instant sao

aquelas em q o monstro usa nele, e as de runa ele vai usar em vc. Entao

a primeira coisa que precisamos fazer é decidir se vamos fazer uma

spell de runa ou de instant, vou mostrar aqui apenas um exemplo, se nao

o topico ficara muito grande. Vamos começar, seguindo um exemplo de uma

magia minha:

Primeiro, crie um arquivo chamado crossover.lua, na pasta Data>Spells>Instant

 

Começamos o script com isso:

 

CODE

area = {

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

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

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

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

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

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

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

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

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

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

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

}

 

 

Essa

é a area em que a magia ira pegar, o numero 0 simboliza os espaços que

a magia nao pega e os numeros 1, os lugares onde acontecerá a magia, no

exemplo acima, é uma magia em forma de cruz

Pulamos entao uma linha e acrescentamos isso:

 

 

CODE

attackType = ATTACK_PHYSICAL

needDirection = false

areaEffect = NM_ME_YELLOW_RINGS

animationEffect = NM_ANI_NONE

 

hitEffect = NM_ME_HIT_AREA

damageEffect = NM_ME_DRAW_BLOOD

animationColor = BLACK_WHITE

offensive = true

drawblood = true

 

 

Vamos às explicações:

attackType = o tipo de ataque que será, no exemplo será um ataque fisico, mas tbm poderia ser um ataque de fogo, ou de energy

needDirection = se o ataque precisa de direção, como as firewaves

areaEffect = o tipo de animação que saira na area na magia

animationEffect = a animação de quando o player sofrer dano da magia

damageEffect = o efeito que saira quando o player receber o dano

animationColor = a cor da animação da Magia

offensive = se a magia é de ataque ou nao

drawblood = se embaixo do player vai sair sangue quando ele receber a magia

 

 

Explicado, pulamos uma linha e adicionamos:

 

CODE

UltimateExplosionObject

= MagicDamageObject(attackType, animationEffect, hitEffect,

damageEffect, animationColor, offensive, drawblood, 0, 0)

 

 

Essa é a função que fara com q oq explicamos acima funcione, pulamos outra linha e acrescentamos:

 

 

CODE

function onCast(cid, creaturePos, level, maglv, var)

centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z}

n = tonumber(var)

if n ~= nil then

-- bugged

-- ultimateExplosionObject.minDmg = var+0

-- UltimateExplosionObject.maxDmg = var+0

 

UltimateExplosionObject.minDmg = 0

UltimateExplosionObject.maxDmg = 0

else

UltimateExplosionObject.minDmg = (level * 2 + maglv * 3) * 2.6 - 30

UltimateExplosionObject.maxDmg = (level * 2 + maglv * 3) * 3.0

end

 

 

Essa é a fórmula do Dano que o player irá tomar ao receber a magia, agora pra finalizar adiconamos:

 

CODE

return doAreaMagic(cid, centerpos, needDirection, areaEffect, area, UltimateExplosionObject:ordered())

end

 

 

Pronto ja terminamos nossa primeira spell, agora para faze-la funcionar precisamos acrescenta-la aou arquivo spells.xml

vamos lá, na pasta Data>Spells abra o arquivo spells.xml e na sessao de INSTANT, acrescente esta linha:

 

CODE

spell

name="CrossOver" words="crossover" maglv="12" mana="160"

enabled="1">/>

 

 

Explicando:

spell name = nome da magia (pode ser qualquer um)

words = as palavras magicas que terao que ser ditas pra magia funcionar (tem q ser igual ao nome do script da magia)

magvl = maglv necessario para usar essa magia

mana = mana que será gasta

enabled = se a magia esta abilitada ou nao

vocation id = para quais vocações essa magia funcionará, no caso acima ela so funciona pra sorc e druid

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

 

MONSTERS

Spell criada, vamos passar para o Monstro que usara esta spell

Crie um arquivo .xml com um nome qualquer na pasta Data>Monsters

 

CODE

 

name="The Flash" level="500" maglevel="70" experience="1000"

pushable="0" armor="80" defense="90" canpushitems="1" staticattack="50"

changetarget="200" speed="100000">

Link para o comentário
Compartilhar em outros sites

Cade os créditos? Você não alterou nem a introdução do membro do outro fórum, e nem organizou de volta.

 

Como já citei vou tirar quantos pontos forem necessários para aprender. Já que não é a primeira vez que você recebe chamada de atenção.

 

REP- para, Samuel.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...