Ir para conteúdo
Entre para seguir isso  
Jovial

[N:Fácil] Easy Annihilator Tutorial

Recommended Posts

Jovial    2
Jovial

.: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_config = { --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_config)

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_config)

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

Editado por Jovial

Compartilhar este post


Link para o post
Compartilhar em outros sites
Magus    2
Magus

Aprovadíssimo! Sua função com certeza irá ajudar muitas pessoas. ;)

 

Tópico movido.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Skyzor    1
Skyzor

Boa, muito bom mesmo velho.

Curti a anihi do Lambixa. =D

Compartilhar este post


Link para o post
Compartilhar em outros sites
[ B a l i l l o ]    0
[ B a l i l l o ]

Interessante, da para fazer outras quests com base nisso :)

 

a função .onUse é apenas de um OT ou existem em todos? Como o if/while/elseif e etc :P

Compartilhar este post


Link para o post
Compartilhar em outros sites
Jovial    2
Jovial
;242287']Interessante' date=' da para fazer outras quests com base nisso :)

 

a função .onUse é apenas de um OT ou existem em todos? Como o if/while/elseif e etc :P[/quote']

não existe função .onUse, a que esta ai é a Annihilator.onUse, que é declarada no lib, eu a fiz.

Compartilhar este post


Link para o post
Compartilhar em outros sites
[ B a l i l l o ]    0
[ B a l i l l o ]

Intendi, mas se ta apenas no teu lib, para os players catarem essa sua Easy Anihilator, eles não ia precisar dela tbm?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dark    3
Dark

@ [ B a l i l l o ]

 

Jovial:

Olá, para quem não sabe o Easy Annihilator é uma Lib (conjunto de funções) que criei para facilitar a criação de quests no estilo da anihilator. Para adquirir o script clique aqui.

 

(Y)

Compartilhar este post


Link para o post
Compartilhar em outros sites
[ B a l i l l o ]    0
[ B a l i l l o ]
@ [ B a l i l l o ]

 

 

 

(Y)

Ahh vlw, nem vi o.o

 

To me sentindo um idiota AUHEuae

Compartilhar este post


Link para o post
Compartilhar em outros sites
cba23    0
cba23

Amigo eu keria saber se vc pod me ajudar

 

na hora de eu executar eu OT a tela de comando passa uma msg assim:

 

:: Loading actions xml. ... Waring: [Event::Loadscript] Can not load script. data/actions/scripts/annihitators.lua:3: unexpected symbol near ' ='

 

ai a quest n funciona

 

e eu copiei td o o conteúdo q vc passou no tuto

 

oq vc axa q pod ser a causa do erro???? :(

 

Flww

Compartilhar este post


Link para o post
Compartilhar em outros sites
BLucas    0
BLucas

mtoo bom!

adorei.

Compartilhar este post


Link para o post
Compartilhar em outros sites
[ B a l i l l o ]    0
[ B a l i l l o ]
Amigo eu keria saber se vc pod me ajudar

 

na hora de eu executar eu OT a tela de comando passa uma msg assim:

 

:: Loading actions xml. ... Waring: [Event::Loadscript] Can not load script. data/actions/scripts/annihitators.lua:3: unexpected symbol near ' ='

 

ai a quest n funciona

 

e eu copiei td o o conteúdo q vc passou no tuto

 

oq vc axa q pod ser a causa do erro???? :(

 

Flww

 

 

Vai la, abre seu script e aperta CTRL+G e vai direto na linha do erro.

Isso pode ser um erro de variavel ou de algo exato (não sei explicar mt bem).

Vamos supor, se estiver assim:

If item.uid = [uniqueID que tu pois] then

 

Dai vc apenas poem + um =, ficando assim

If item.uid == [uniqueID que tu pois] then

 

Se for uma variavel, o erro vai tar assim (vou declarar uma variavel qualquer):

magicswordid == 2400

 

No caso, não pode tar os "==", e apenas "=", ficando

magicswordid = 2400

 

 

Espero ter ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Maluco mec    0
Maluco mec

bom mtu bom !

Compartilhar este post


Link para o post
Compartilhar em outros sites
ponsko    0
ponsko

Obrigado Pelo Topico

Compartilhar este post


Link para o post
Compartilhar em outros sites
daniel_silva    0
daniel_silva

hmm

muito bem explicado

parabens

Gz

Compartilhar este post


Link para o post
Compartilhar em outros sites
Jovial    2
Jovial

Tutorial Atualizado!

Sistema também atualizado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Addicted    1
Addicted

Otimo Tutorial :) Simples, porém completo :D

Compartilhar este post


Link para o post
Compartilhar em outros sites
sorrisotdr    0
sorrisotdr

ótimo tutorial, facilita e muito pra quem está criando seu próprio mapa e pra quem puxa um ot com problemas ... muito bom tá de parabens !

Compartilhar este post


Link para o post
Compartilhar em outros sites
HeberPcL    3
HeberPcL

Muito bom. Parabens pelo script !

 

 

=pp

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tiago_mix    0
Tiago_mix

kra alguem me ajuda

erromv8.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dark Kina    0
Dark Kina

Gostei...

 

Mto bom esse script =P

 

Irá ajudar mta gente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×