Tutorial: Área De Treino Segura.

Addict
Por Addict
em Tutoriais de Scripting
  • 1
  • 2

Addict

Ex-Diretor de Equipe
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 12/10/05Posts: 568Gênero: MasculinoChar no Tibia: Homao Dapoha

Olá, irei mostrar aqui uma forma de fazer uma área de treino segura para os players, usando o map editor (sério!?) e scripts. O tutorial está longo mais por causa da explicação dos scripts, quem já sabe configurar isso é só olhar a idéia mesmo.

 

Como assim "segura"?

Sabe quando você quer treinar em paz, mas vem um PK, vê que você está AFK e te mata? Pois é, com essa minha idéia você nunca mais terá esse problema!

 

Sem mais delongas, vamos começar.

 

Primeio, faça a área no map editor da seguinte forma:

(use o estilo que quiser)

 

1170641628imagem1.png

 

Indicado com as flechas retas, está o destino dos teleports.

A janela se destaca por estar FECHADA, pois assim não tem como atirar runas ou bolts.

Ao usar a alavanca, a grade aparecerá, bloqueando a entrada no bloco de treino.

 

Scripts:

(nesse script fiz como se houvesse apenas 2 blocos a ser fechados)

 

Crie um arquivo .lua com o nome desejado na sua pasta data/actions/scripts (usarei o nome "levers_trainareas.lua")

 

function onUse(cid, item, frompos, item2, topos) 

  wall1 = {x=115, y=30, z=7, stackpos=1} 
  wall2 = {x=118, y=30, z=7, stackpos=1} 

  getwall1 = getThingfromPos(wall1) 
  getwall2 = getThingfromPos(wall2) 

--bloco 1 
  if item.uid == 8005 and item.itemid == 1945 and getwall5.itemid == 0 and getwall5.itemid == 0 then 
     doCreateItem(1547,1,wall5) 
     doTransformItem(item.uid,item.itemid+1) 
  elseif item.uid == 8005 and item.itemid == 1946 and getwall5.itemid == 1547 and getwall5.itemid == 1547 then 
     doRemoveItem(getwall5.uid,1) 
     doTransformItem(item.uid,item.itemid-1)      

--bloco 2 
  elseif item.uid == 8006 and item.itemid == 1945 and getwall6.itemid == 0 and getwall6.itemid == 0 then 
     doCreateItem(1547,1,wall6) 
     doTransformItem(item.uid,item.itemid+1) 
  elseif item.uid == 8006 and item.itemid == 1946 and getwall6.itemid == 1547 and getwall6.itemid == 1547 then 
     doRemoveItem(getwall6.uid,1) 
     doTransformItem(item.uid,item.itemid-1)    

  else 
     doPlayerSendCancel(cid,"Algo esta bloqueando a grade.") 
  end 

  return 1 
end

 

Entendendo o código:

 

wall1 = {x=115, y=30, z=7, stackpos=1} 
  wall2 = {x=118, y=30, z=7, stackpos=1}

 

Cada "wall" representa uma grade.

No bloco número 1 a grade será wall1, e no bloco 2 será wall2.

No x, y e z que aparecem você deve colocar as coordenadas do lugar onde aparecerá a GRADE de cada bloco.

 

getwall1 = getThingfromPos(wall1) 
  getwall2 = getThingfromPos(wall2)

 

Para cada wall você deverá colocar um getwall, que irá pegar a coordenada do wall descrito

para a wall1 temos o getwall1, veja: getwall1 = getThingfromPos(wall1)

 

if item.uid == 8001 and item.itemid == 1945 and getwall1.itemid == 0 and getwall1.itemid == 0 then 
     doCreateItem(1547,1,wall1) 
     doTransformItem(item.uid,item.itemid+1) 
  elseif item.uid == 8001 and item.itemid == 1946 and getwall1.itemid == 1547 and getwall1.itemid == 1547 then 
     doRemoveItem(getwall1.uid,1) 
     doTransformItem(item.uid,item.itemid-1)

 

Aqui iniciamos os comandos para criação da grade, e também para tirá-la quando a alavanca for ativada.

 

if item.uid == 8001

Quando aparecer isso, no lugar de 8001 você deve colocar o UniqueID da alavanca do bloco (nesse caso seria o bloco 1).

 

and getwall1.itemid == 0 and getwall1.itemid == 0 then

Aqui você deve trocar o numero do getwall pelo correspondente do bloco, nesse caso é o 1 mesmo.

Nesse código, você diz que no lugar onde aparecerá a grade nao deve ter nenhum item, por isso o id "0", ou seja, nada.

 

doCreateItem(1547,1,wall1)

Cria a grade de ID 1547, na posição wall1 (óbviamente você não é obrigado a usar essa grade, você pode usar qualquer parede, apenas troque o ID).

 

getwall1.itemid == 1547 and getwall1.itemid == 1547 then

Siginifica que para retirar a grade, no sqm que ela está deve estar apenas a grade (ID 1547). Note que se você usar outra parede, você deverá substituir esse ID pelo o da parede usada.

 

doRemoveItem(getwall1.uid,1)

Remove a grade da posição getwall1.

 

else 
     doPlayerSendCancel(cid,"Algo esta bloqueando a grade.") 
  end 

  return 1 
end

 

Aqui, indicamos a mensagem que será enviada ao player caso algum item esteja no lugar de onde deve aparecer a grade. Você pode escrever qualquer coisa, desde que esteje dentro das aspas, e lembre-se de não colocar acentos ou cedilha.

 

A cada grade você deverá criar um wall, um getwall para o wall, e um script inteiro como esse;

 

elseif item.uid == 8002 and item.itemid == 1945 and getwall2.itemid == 0 and getwall2.itemid == 0 then 
     doCreateItem(1547,1,wall2) 
     doTransformItem(item.uid,item.itemid+1) 
  elseif item.uid == 8002 and item.itemid == 1946 and getwall2.itemid == 1547 and getwall2.itemid == 1547 then 
     doRemoveItem(getwall2.uid,1) 
     doTransformItem(item.uid,item.itemid-1)

 

onde você deverá editar os números para que ocorra tudo certo.

 

elseif item.uid == 8002 and item.itemid == 1945 and getwall2.itemid == 0 and getwall2.itemid == 0 then

 

VEJA QUE ADICIONAMOS "else" JUNTO AO "if" QUANDO ESSE NÃO FOR O PRIMEIRO BLOCO! APENAS O PRIMEIRO BLOCO DEVE COMEÇAR COM "if"!

 

Agora em data/actions/actions.xml, insira:

 

<action uniqueid="8001" script="levers_trainarea.lua" />

 

Note que para cada alavanca você deve botar uma linha igual essa com o UniqueID da alavanca. Se tivéssemos 3 alavancas seria assim (note a mudança dos UniqueIDs):

 

<action uniqueid="8001" script="levers_trainarea.lua" />

<action uniqueid="8002" script="levers_trainarea.lua" />

<action uniqueid="8003" script="levers_trainarea.lua" />

 

 

 

Assim, o player entra no bloquinho com a alavanca, aciona ela e fecha seu bloco, teleporta-se para os montros e treina em paz sem perigo de ser atacado.

 

Lembre-se que se a parede for vertical, você deverá usar o id da grade (ou parede escolhida) na posição vertical, no caso da grade, seria ID 1546.

 

Créditos: Ajcmaster

Rafix

Banido
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 30/08/05Posts: 231Char no Tibia: retired

A tuto é bom, mas o problema é quando espertinhos usarem a alavanca e sairem logo após isso.

é Preferível deixar uma PZ por toda a área, menos na área onde é pra ser atacado e na área onde é pra atacar(trainers).

Usuário Banido.

Motivo: Atitude Ofensivas

erpen

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 06/06/06Posts: 109

Mtu bom embora eu preferisse assim

Trainter -Fogo -pared

Alavanka -Player -vaziu(transformado em parede)

Trainer -Fogo -pared

 

Quando o player entrasse nos trainer ele ativaria uma alavanka.quando ativada a parte "vaziu"entre as 2 paredes criaria uma parede.impossibilitando de alguem entrar.Quando o player kizesse sair ele apertava a alanvanka e a parede desaparecia novamente.

dece seu jeito acontecera oque o rafix falou:

 

entra uma pessoa no cubinho e fexa a porta e sem seguida da logout.

do meu jeito isso nao acontece porque quando o player fexa a porta.os trainers atkam ele e o batle nao deixa o kra sair.se o kra kiser sair tera que abrir a porta e ir para um local protegido.


Prazer,



Meu fan??Use:


Meus topicós:
[[topic="54347"]Listão tutoriais relacionados a mapping![/topic]]

Tyler

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/07Posts: 80

SIm .. eh bom .. mas concordo com o rafix .. se o kra puxa a alavanca e sai ?

Ai vai te q fik chamando o gm ... Mas ta bom .. tpw .. ning nunca me pko quando eu tava treinado .. dai eu n sabia disso ... agr to alert ^^ !



é meu fan ? te ajudei ? foi totalmente com a minha cara ? ta aew a fan bar ^^!



Fan de




UhUl LePaRkOuR

Rickzs

Coordenador de Fórum
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 25/04/06Posts: 189

Tópico Movido para a seção oficial.

Natanael Beckman

Administrador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/08/06Posts: 554Char no Tibia: Balacky

Bem rox valeu pelo tuto.

 

 

 

 

 

:hi: :hi: :hi: :hi:

znExesyD.png

servercore.png

akur

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/07/07Posts: 42

muito bom esse tuto e um dos unicos que funfo aki =)

~*Metas*~
[x] 1 Post
[x] 30 Post's
[x] 50 Post's
[ ] 100 Post's
[ ] 150 Post's
[ ] 200 Post's
[ ] 250+ Post's

...

(x) Caçador
(x) Cavaleiro
( ) Baronete
( ) Duque

Dekooo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/07Posts: 377Char no Tibia: Sirke Amere *( AsTeRa )*

Muito rox!

Parabeins Addcit

assinatura bugada, vide sobre mim

_ferrari_

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 27/12/06Posts: 202

genial, pena q tem a sacanagem de puxa alavanca e sai

Objetivos:
50 posts [x]
100 posts[x]
200 posts[x]
500 posts[x]
"Um post em um fórum deve como uma saia. Longa o suficiente para cobrir o assunto, porém curta o suficiente para manter as coisas interessantes"
Gosta de mim? Foi com minha cara? Quer me matar? Use:

Popp

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 09/10/07Posts: 338Char no Tibia: Popr Sansungz

Mas Addict..

Com exori vis dá pra matar o 'vizinho' :$



Propaganda da Fadepe



Faculdade para o desenvolvimento de Pernambuco

- Administração de Empresa
- Administração em Marketing

- Rua Dr. José Maria, 1106, Tamarineira
- Telefone: (81) 3265-5020
- De segunda à sexta, das 14h às 21h30)
- E-mail: fadepe@fadepe.com.br

Neeco

Ex-Designer XTibia
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 29/03/08Posts: 338Char no Tibia: Neeco;

Northon

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/08/07Posts: 701

Parabéns Addict

 

Apesar de eu não jogar mais tibia, muito bom seu tutorial.

Não dou suporte via PM ou MSN, utilize o fórum para isto.
© 2007 ~ 2009

vini_xxe

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/11/06Posts: 260

Genial...

Funciono bem aqui

E nao deu nenhum problemaaa

Gratzzzzz

Bem na moral galera
Enquanto vocês ficam ae preocupados com uns OT SERVER
com um joguinho MEDIOCRE que nao leva a NADA
A vida ta passando
Comecei a jogar de brincadeira, quando me dei conta
4 ANOS se passaram, e ai, oq eu ganhei?
Perdi muitas minas, perdi muitas festas, muitos jogos :S
PAREI, PEGO GERAL, TO EM TODAS AS FESTAS
Fiquem ae jogando NERDS
Que eu vo vive minha vida
@@@@@@@@@@@@@@@@@@@@@@@@@@@@;

TIBIA, UM JOGO QUE VICIA, E EH PIOR QUE ALCOOL
NAO MATA A PESSOA
SOH ACABA COM SEU CONVIVIO SOCIAL
VOCE DEIXA SUA MAE LA SOZINHA PRA PEGA UM SKILL DE SWORD
WTF?
VC NAO SAI COM A GALERA PRA PEGA MINA, PQ TEM Q UPA --"
NERD !@;

danielmaria93

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/03/08Posts: 30Char no Tibia: Sir'Taj

Boa ideia mesmo =D

Volksz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/04/08Posts: 49Char no Tibia: Retired.

Otima idea...mas o cara vai no trainer depois de 15 minutos e kick e o GOD afk e a grade fica sem ninguem ou se o cara fexa a grade e logar como citou o cara acima ai...

 

Mas adorei seu tuto eu tava procurando isso ae mas pra usar em outra coisa vlwwww

Olá XTibiano:

Sua assinatura estava com um problema na TAG SPOILER e foi movida para a parte "Sobre mim".
Agradecemos a sua compreensão.

Atenciosamente,
JV Chequer

  • 1
  • 2