Easy Annihilator Tutorial

Jovial
Por Jovial
em Tutoriais de Scripting
  • 1
  • 2

Jovial

The Scripter
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/07Posts: 22

.:Easy Annihilator Tutorial:.

 

Olá, para quem não sabe o Easy Annihilator é um sistema que criei para facilitar a criação de quests no estilo da anihilator, ou até mesmo arenas de lutas. Para adquirir o script clique aqui.

 

Para melhor entender como é configurado este sistema, aconselho a procurarem Tutorial sobre Array (Tabelas), pois a configuração de uma annihilator, para utilizar o Easy Annihilator System, é feita dentro de Arrays.

 

 

Configurando:

Todas as informações sobre a sua annihilator deverá ser organizada em um Array, no caso vamos nomeá-la Annihilator

 

Irei colocar abaixo a configuração de uma annihilator para 4 players e 6 monstros, igual a global, você só precisará mudar as posições para as do seu mapa.

 

local Annihilator = { --Aqui iniciamos uma Array, coloquei 'local' para que ela existir somente neste arquivo.
ANNIHILATOR_LEVER_UNIQUEID = 5000, --Aqui você coloca o uniqueid da sua alavanca ( o uso da virgula no fim é obrigatório, pois estamos dentro de uma Array, a Annihilator_config).
MIN_LEVEL = 100, --Aqui você coloca o level minimo para fazer a quest.
STORAGE = 5000, --Aqui você coloca o numero do Storage que deseja usar para salvar as informações da quest (para marcar/verificar se o player ja fez a quest).
CHECK_INVISIBLE_ACCESS = 1, --Aqui você poe o access minimo para ser ignorado, na verificação se a sala está vazia. (para não contar gms como players).
CHESTS = { --Aqui estamos abrindo uma array chamada CHESTS dentro da Array Annihilator_config.
	{uniqueid = 5001, prize = 2494, count = 1}, --Aqui você configura o uniqueid de cada baú, o item que ira receber (prize) e a quantidade.
	{uniqueid = 5002, prize = 2400, count = 1}, --Note que como estamos dentro da Array CHESTS usamos virgula para separar os valores, o uso é obrigado, somente no ultimo valor que não se deve colocar virgula.
	{uniqueid = 5003, prize = 2431, count = 1},
	{uniqueid = 5004, prize = 2421, count = 1} --Aqui não existe virgula, é o ultimo valor da array CHESTS
},-- Fechamos a Array CHESTS
PLAYER_POS = {
	{x = 500, y = 755, z = 9, stackpos = 253}, --Aqui você irá por as posições dos players, você pode colocar quantas quiser para aumentar o numero de players ou diminuir, mas obedecendo a sintaxe correta, sempre o ultimo valor sem virgula
	{x = 499, y = 755, z = 9, stackpos = 253},
	{x = 498, y = 755, z = 9, stackpos = 253},
	{x = 497, y = 755, z = 9, stackpos = 253}
},
PLAYER_TOPOS = {
	{x = 500, y = 755, z = 10}, --Posições para aonde os players devem ser levados, deve ter a mesma quantidade de valores do que a Array PLAYER_POS.
	{x = 499, y = 755, z = 10},
	{x = 498, y = 755, z = 10},
	{x = 497, y = 755, z = 10}
},
MONSTERS = {
	{name = "Demon", pos = {x = 500, y = 753, z = 10}}, --Aqui configuramos os monstros, qual deve ser sumonado e qual sua posição, você pode colocar mais  ou menos que isto.
	{name = "Demon", pos = {x = 498, y = 753, z = 10}},
	{name = "Demon", pos = {x = 497, y = 757, z = 10}},
	{name = "Demon", pos = {x = 499, y = 757, z = 10}},
	{name = "Demon", pos = {x = 501, y = 755, z = 10}},
	{name = "Demon", pos = {x = 502, y = 755, z = 10}}
},
TOP_LEFT_POS = {x = 494, y = 749, z = 10}, --Irei explicar logo abaixo.
BOTTOM_RIGHT_POS = {x = 517, y = 760, z = 10}, --Irei explicar logo abaixo.
TRASH_POS = {x = 528, y = 754, z = 10}, --Posição de um lugar escondido no mapa para onde os demons antigos serão levados
IS_FORGOTTEN_SERVER = TRUE --Se você usa o Forgotten Server ou servers mais recentes troque o FALSE por TRUE, pois a função de teleport de alguns servers é diferente, de qualquer maneira se os player não forem teleportados troque de FALSE para TRUE ou vice-versa, aqui não colocamos virgula, pois é o ultimo valor da Array Annihilator_config.
} --Fechamos a Array Annihilator_config

--Agora vamos transformar essas informações para uma variavel que conterá o sistema para que essa annihilator funcione
Annihilator_ID = AnnihilatorSys:new(Annihilator)

Bem, agora vou explicar oque são as variaveis TOP_LEFT_POS e BOTTOM_RIGHT_POS.

 

TOP_LEFT_POS é a posição acima e a esquerda da Annihilator, usada na verificaçao se a sala está vazia ou não.(veja na SS abaixo em azul)

BOTTOM_RIGHT_POS é a posição abaixo e a direita da Annihilator, usada na verificaçao se a sala está vazia ou não.(veja na SS abaixo em verde)

exemplouy8.jpg

A annihilator verifica entre elas formando um retangulo, cujos dois de seus vértices são estes pontos, tudo dentro dele será verificado.

Tome cuidado para não pegar nenhum lugar fora da annihilator onde possa ter players, pois se tiver alguém la ele será considerado como dentro da annihilator.

 

Bem, está quase tudo pronto. Agora iremos colocar isto em um arquivo.

Crie um arquivo chamado Annihilator.lua, e nele coloque a Annihilator configurada para seu server, ficando:

local Annihilator_config = {
ANNIHILATOR_LEVER_UNIQUEID = 5000,
MIN_LEVEL = 100,
STORAGE = 5000,
CHECK_INVISIBLE_ACCESS = 1,
CHESTS = {
	{uniqueid = 5001, prize = 2494, count = 1},
	{uniqueid = 5002, prize = 2400, count = 1},
	{uniqueid = 5003, prize = 2431, count = 1},
	{uniqueid = 5004, prize = 2421, count = 1}
},
PLAYER_POS = {
	{x = 500, y = 755, z = 9, stackpos = 253},
	{x = 499, y = 755, z = 9, stackpos = 253},
	{x = 498, y = 755, z = 9, stackpos = 253},
	{x = 497, y = 755, z = 9, stackpos = 253}
},
PLAYER_TOPOS = {
	{x = 500, y = 755, z = 10},
	{x = 499, y = 755, z = 10},
	{x = 498, y = 755, z = 10},
	{x = 497, y = 755, z = 10}
},
MONSTERS = {
	{name = "Demon", pos = {x = 500, y = 753, z = 10}},
	{name = "Demon", pos = {x = 498, y = 753, z = 10}},
	{name = "Demon", pos = {x = 497, y = 757, z = 10}},
	{name = "Demon", pos = {x = 499, y = 757, z = 10}},
	{name = "Demon", pos = {x = 501, y = 755, z = 10}},
	{name = "Demon", pos = {x = 502, y = 755, z = 10}}
},
TOP_LEFT_POS = {x = 494, y = 749, z = 10},
BOTTOM_RIGHT_POS = {x = 517, y = 760, z = 10},
TRASH_POS = {x = 528, y = 754, z = 10},
IS_FORGOTTEN_SERVER = TRUE
}

Annihilator_ID = AnnihilatorSys:new(Annihilator)

function onUse(cid, item, frompos, item2, topos)
Annihilator_ID:onUse(cid, item) --Essa função verifica faz com que o sistema seja acionado quand oo player der use na alavanca ou no baú
return TRUE
end

Não se esqueça de criar as tags... No caso para este arquivo ficaria:

	<action uniqueid="5000" script="annihilator.lua"/>
<action uniqueid="5001" script="annihilator.lua"/>
<action uniqueid="5002" script="annihilator.lua"/>
<action uniqueid="5003" script="annihilator.lua"/>
<action uniqueid="5004" script="annihilator.lua"/>

 

OBS:Se voçe não for querer monstros não precisa colocar a parte MONSTERS na Array que você for configurar, o mesmo server para os baús. Se não tiver level minimo também não precisa por a parte de level minimo. (Bom para fazer arenas de batalhas ou outro tipo de coisas)

 

 

Exemplo de 3 annihilators em um único arquivo

No exemplo usei os mesmo premios nos baús mas você pode mudá-los, adicionar mais baús ou remover alguns.

O mapa foi feito pelo Lambix, eu só fiz a entrada das annihilators(a parte feia =D)

Download

 

 

Espero que vocês tenham entendido, qualquer dúvida é só perguntar.

 

cya;

Jovial

Jovial®



"Nunca ande pelo caminho traçado, pois ele conduz somente até onde os outros foram."

Evolutions

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/08/07Posts: 4

##### jovial script otimo mesmo muito bom

maximusot

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 05/03/07Posts: 219

Script muito bom

APROVADO



CLIQUE AKI DEPOIS CLIQUE NO CLICK AQUI DA SEGUNDA LINHA NÃO DEMORA NEM 1 MINUTO


MINHAS METAS

~~~~~~~~~~~~~~
~~
MINHAS METAS~~
~~~~~~~~~~~~~~


1 post (X)
10 posts (X)
20 posts (X)
30 posts (X)
40 posts (X)
50 posts (X)
60 posts (X)
70 posts (X)
80 posts (X)
90 posts (X)
100 posts (X)
120 posts (X)
150 posts (X)
200 posts (X)
300 posts (X)
400 posts (X)
500 posts (X)
600 posts (X)
700 posts (X)
800 posts (_)
900 posts (_)
1000 potsts (_)
1300 posts (_)
1500 posts (_)
1800 posts (_)
2000 posts (_)
----------------------------------------------------

MEUS TRABALHOS

Conde Sapo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 14/08/07Posts: 322Char no Tibia: Conde Sapo (Secura)

sempre bom ver os trabalhos do JOVIAL

muito do que sei hoje é graças a esse mestre

 

 

APROVADAÇO

:thumbsupsmiley:

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


Encontro de Quake na minha Ex-LAN

odeio rapidshare

"Criticas enriquecem o trabalho dos inteligentes.
Os negligentes simplesmente as ignoram." - Conde Sapo

"A melhor recompensa do Mestre ,
é ver o Aluno superar as espectativas." - Conde Sapo



(finalmente me convenceram a fazer a Fan Bar)

Meus trabalhos :
\/------- Clicar

01 - Porta com chave numérica
02 - Efeito de MAR em movimento
03 - Fruta na Árvore (acrescentei arvore)
04 - NPC Messager
05 - Monstros Morrem Mas Nao Somem Do Mapa
06 - Simulando UnderWater
07 - SpellBook (Book 2175)
08 - CommandsSpellBook (Book 6120)
09 - Fixo: Tudo Sobre A Linguagem Lua
10 - Dice (Rolando os dados)
11 - Voodoo Skull (previsão da sorte do dia)
12 - Caça Niqueis
13 - Mapa-spawn.xml (Como funciona)
14 - Pendurando objetos na parede
15 - Santa Doll (Papai Noel)
16 - EuTeAmoVoce [Instant Spell]
17 - doSendAnimatedText (Todas as cores)
18 - NPC Banqueiro
19 - 8 Bichos (Massive Summon)
20 - Transformando Barril Simples em Barril de Mana Fluid
21 - Quebrando Itens Com Arma (Tirando BUG)
22 - Padre Marcelo (Totalmente REFEITO)
23 - Npc De Backpack ( Back Picka )
24 - Npc De Dolls ( Baby Doll )
25 - Fonte Da Juventude (Mana e Life)
26 - NPC que troca itens
27 - Removendo paredes com PAUSA, (efeito visual lindo)
28 - Halloween - Fazendo o PumpkinHead
29 - Halloween - Criando o monstro Halloween Hare
30 - Mapa pra fazer Testes (Sapo.otbm)
31 - Fishing Rod (Qualquer versão)
32 - Jungle Maw (planta que morde)
33 - Npc Stan (fantasias de Carnaval)
Clicar -------/\

CarlosPain

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/07Posts: 606Char no Tibia: Pain Niihzamun

Eu não sei, a parte dos scripts ficou muito confusa.... atrapalha a ler, não tem nada para destacar o script da instrução...

Eu não posso aprovar até você mudar isso, poís quem trabalha com script está acostumado, mas quem está começando

vai er dificuldade, e muita :/

 

Frozen

Carlos Donizeti

pain@xtibia.com

"Bebo porque sou egocêntrico... gosto quando o mundo gira ao meu redor."

Jovial

The Scripter
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/07Posts: 22

Frozen poderia ser mais especifico para que eu possa ver isto?

Jovial®



"Nunca ande pelo caminho traçado, pois ele conduz somente até onde os outros foram."

Guim

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 8Char no Tibia: Não jogo mais

Otimo Script Jovial

Parabens

 

Aprovado

Metas:
[X]10 post [X]Campones
[X]25 post [X]Caçador
[ ]50 post
[ ]100 post
[ ]175 post
[ ]Ter um topico em uma lista
[ ]Ter um topico FIXO
-------------------------------------
Eu Sou:
--95%
-------------------------------------
-------------------------------------
É meu fan? Entao use:
:`^~--~^´:

maximusot

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 05/03/07Posts: 219

tp se você pulasse uma linha tipo a cada vez que você termina-se de fazer uma observação exemplo

 

ANNIHILATOR_LEVER_UNIQUEID = 5000, --Aqui você coloca o uniqueid da sua alavanca ( o uso da virgula no fim é obrigatório, pois estamos dentro de uma Array, a Annihilator_config).

 

MIN_LEVEL = 100, --Aqui você coloca o level minimo para fazer a quest.

 

fizesse issu o dexava de vermelho a observação(não precisa ser vermelho mais apenas uma cor que se destaque das outras)

 

ANNIHILATOR_LEVER_UNIQUEID = 5000, --Aqui você coloca o uniqueid da sua alavanca ( o uso da virgula no fim é obrigatório, pois estamos dentro de uma Array, a Annihilator_config).

 

MIN_LEVEL = 100, --Aqui você coloca o level minimo para fazer a quest.

 

faz algo desse tipo que seu script ia ficar perfeitoo...



CLIQUE AKI DEPOIS CLIQUE NO CLICK AQUI DA SEGUNDA LINHA NÃO DEMORA NEM 1 MINUTO


MINHAS METAS

~~~~~~~~~~~~~~
~~
MINHAS METAS~~
~~~~~~~~~~~~~~


1 post (X)
10 posts (X)
20 posts (X)
30 posts (X)
40 posts (X)
50 posts (X)
60 posts (X)
70 posts (X)
80 posts (X)
90 posts (X)
100 posts (X)
120 posts (X)
150 posts (X)
200 posts (X)
300 posts (X)
400 posts (X)
500 posts (X)
600 posts (X)
700 posts (X)
800 posts (_)
900 posts (_)
1000 potsts (_)
1300 posts (_)
1500 posts (_)
1800 posts (_)
2000 posts (_)
----------------------------------------------------

MEUS TRABALHOS

Jovial

The Scripter
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/01/07Posts: 22

Obrigado pela sujestão assim que eu tiver tempo eu organizo o tutorial.

Jovial®



"Nunca ande pelo caminho traçado, pois ele conduz somente até onde os outros foram."

leandrocore

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 01/12/07Posts: 127Gênero: Masculino

:smile_positivo: otima Script parabens :smile_positivo:

 

by dArK

 

 

 

:XTibia_smile:

Rustty

Ex - Coordenador de Conteúdo
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 30/07/07Posts: 151

Aprovado.

Motivo : Bem organizado e útil.

Movido para seção de Tutoriais de Scripting.

DaNDaNrOxX

oi mosso
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/01/08Posts: 1455Char no Tibia: Saint Claire

Excelente trabalho amigo!

muito bom mesmo :)

 

 

Entrada na equipe: 23/10/2008 Cargo: Estagiário

Promoção: 25/11/2008 Cargo: Moderador

Promoção: 21/10/2009 Cargo: Coordenador

Remoção: 09/05/2010 Motivo: Estudos

Retorno: 15/11/2010 Cargo: Moderador

Remoção: 20/12/2012.

 

 

Wenemy

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 24/02/08Posts: 134Char no Tibia: Buster of Flame

Concerteza um dos melhores tutoriais sobre fazer anihi, esta muito bem explicado... Parabens

 

//The Wenemy




//The Wenemy - Mapper



Dorion 7.81 PERFECT

icaro2512

tyzzers.com
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/12/05Posts: 17Char no Tibia: Vernus the Knight

Affs o que é um array e onde eu acho esse tutorial Ajuda aew explika melhor quem num sabe num tem como

elaborar essa quest ;/

grt217

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/06/07Posts: 99Char no Tibia: [ADM] GuiH

Parabens Muito Bom Mesmoooo

Cara Juro Tava Precisando Disso

Obrigado Vai Me Ajuda Bastante

Tchau

Xtibia 100% Cultura. =)


Meu Fan Bar








Sou Fan De:



  • 1
  • 2