LE

[Atualizado] - Vocations Door

Por leleos, 06 de nov. de 2009 em Tutoriais de Mapping

script
16
4.5k
leleosL
06 de novembro de 2009 às 20:21

Vocations Door

 

 

Bom galera to aqui hoje pra ensinar a vocês como fazer uma Vocation door por Action Id.

 

Va no seu mapa editor e coloque um dos seguintes Actions IDs.

4531 = Sorcerers e Master Sorcerers

 

4532 = Druids e Elder Druids

 

4533 = Paladin's e Royal Paladin's

 

4534 = Knight's e Elite Knight's

 

Veja um exemplo:

 

imagemcrw.jpg

(Nessa Porta só Knight's e Elite Knight's poderão passar.)

 

Agora vamos ao Script.

 

 

Depois de adicionar o action id na porta, va em data/actions/scripts, criem um arquivo chamado vocdoor.lua.

 

No arquivo vocdoor.lua adicione:

 

 

 

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

playervoc = getPlayerVocation(cid)

 

 

if item.actionid == (4531) then

if getPlayerVocation(cid) == 1 or playervoc == 5 then

 

 

pos = getPlayerPosition(cid)

 

if pos.x == topos.x then

if pos.y < topos.y then

pos.y = topos.y + 1

else

pos.y = topos.y - 1

end

elseif pos.y == topos.y then

if pos.x < topos.x then

pos.x = topos.x + 1

else

pos.x = topos.x - 1

end

else

doPlayerSendTextMessage(cid,22,'Você precisa estar na frente da porta.')

return 1

end

 

doTeleportThing(cid,pos)

doSendMagicEffect(topos,12)

else

doPlayerSendTextMessage(cid,22,"Apenas Sorcerer's podem passar.")

end

 

elseif item.actionid == (4532) then

if getPlayerVocation(cid) == 2 or playervoc == 6 then

 

 

pos = getPlayerPosition(cid)

 

if pos.x == topos.x then

if pos.y < topos.y then

pos.y = topos.y + 1

else

pos.y = topos.y - 1

end

elseif pos.y == topos.y then

if pos.x < topos.x then

pos.x = topos.x + 1

else

pos.x = topos.x - 1

end

else

doPlayerSendTextMessage(cid,22,'Você precisa estar na frente da porta.')

return 1

end

 

doTeleportThing(cid,pos)

doSendMagicEffect(topos,12)

else

doPlayerSendTextMessage(cid,22,"Apenas Druid's podem passar.")

end

 

elseif item.actionid == (4533) then

if getPlayerVocation(cid) == 3 or playervoc == 7 then

pos = getPlayerPosition(cid)

 

if pos.x == topos.x then

if pos.y < topos.y then

pos.y = topos.y + 1

else

pos.y = topos.y - 1

end

elseif pos.y == topos.y then

if pos.x < topos.x then

pos.x = topos.x + 1

else

pos.x = topos.x - 1

end

else

doPlayerSendTextMessage(cid,22,'Você precisa estar na frente da porta.')

return 1

end

 

doTeleportThing(cid,pos)

doSendMagicEffect(topos,12)

else

doPlayerSendTextMessage(cid,22,"Apenas Paladin's podem passar.")

end

 

elseif item.actionid == (4534) then

if getPlayerVocation(cid) == 4 or playervoc == 8 then

pos = getPlayerPosition(cid)

 

if pos.x == topos.x then

if pos.y < topos.y then

pos.y = topos.y + 1

else

pos.y = topos.y - 1

end

elseif pos.y == topos.y then

if pos.x < topos.x then

pos.x = topos.x + 1

else

pos.x = topos.x - 1

end

else

doPlayerSendTextMessage(cid,22,'Você precisa estar na frente da porta.')

return 1

end

 

doTeleportThing(cid,pos)

doSendMagicEffect(topos,12)

else

doPlayerSendTextMessage(cid,22,"Apenas Knight's podem passar.")

end

return 1

else

return 0

end

end

 

 

 

Agora va em data/actions/actions.xml e adicione a seguinte tag:

 

<action actionid="4531" event="script" value="vocdoor.lua"/>

<action actionid="4532" event="script" value="vocdoor.lua"/>

<action actionid="4533" event="script" value="vocdoor.lua"/>

<action actionid="4534" event="script" value="vocdoor.lua"/>

 

Explicando

 

 

Vermelho = Os numeros em vermelho são os numeros das actions id's de cada porta.

Azul = Aonde esta em Azul são os numeros de cada vocação.

 

1 = Sorcerer

2 = Druid

3 = Paladin

4 = Knight

5 = Master Sorcerer

6 = Elder Druid

7 = Royal Paladin

8 = Elite Knight

 

Laranja = Laranja é a menssagem que aparecera caso o player tente passa na porta com a vocação errada.

 

Bom é isso ai, qualquer coisa é só pergunta.

Ahh não esquece de comentar =).

 

 

Creditos:

 

Leleo = EU

 

 

Obrigado pela atenção.

 

Abraços.

Editado Março 31 por leleos

VildenV
06 de novembro de 2009 às 20:24

Muito bom, aprovado!! explicando tudo 100% muito bom mesmo

 

do inicio até o fim..

 

Aprovado

\Mattheus ~*\
06 de novembro de 2009 às 20:27

Nossa mano, excelente tutorial, tudo explicado e uma excelente formatação irá ajudar e muito aqueles que estão começando com Scripting.

 

Tutorial Aprovado.

 

Abraços.

leleosL
06 de novembro de 2009 às 20:35

Nossa vindo de vocês fico até emocionado xD.

 

Obrigado pessoal.

 

Espero que ajude muitas pessoas.

 

Agora é espera para ver oque os MODS vão falar.

 

Abraços.

Henrique MouraH
06 de novembro de 2009 às 20:50

Ficou sim um excelente tutorial de ótima qualidade, poderia centralizar as imagens para ficar melhor.

Como o nosso Coordenador está ausente e é preciso a votação dele para a aprovação do tópico, você terá de aguardar.

 

Abraços.

satan666S
06 de novembro de 2009 às 21:00

se foi você quem fez o script que tal aprender um pouco sobre tables e aprender sobre todos os elementos da função onUse()?

 

só assim você vai retirar tudo isso do script.

 

if pos.x == topos.x then

if pos.y < topos.y then

pos.y = topos.y + 1

else

pos.y = topos.y - 1

end

elseif pos.y == topos.y then

if pos.x < topos.x then

pos.x = topos.x + 1

else

pos.x = topos.x - 1

end

leleosL
06 de novembro de 2009 às 21:10

Foi eu sim só que não sou muito bom em scripts, mais vou estudar mais a função.

 

Pode me indicar algum tutorial bom pra isso?

 

Last SeekerL
07 de novembro de 2009 às 09:46

O tutorial está bom, bem explicado, só que como o Marcryzius disse, ele poderia estar menor.

Tutorial aprovado.

leleosL
09 de novembro de 2009 às 17:21

Bom sobre o script, ele vai ficar assim por enquanto porque não sou muito chegado em scripts.

 

Eu vou ta estudando um pouco mais essa area para ver, pois não disponho de muito tempo.

 

Bom e isso ai gente qualquer coisa é só pergunta.

 

Abraços.

Lopoi2L
15 de novembro de 2009 às 21:37

Tópico 100% aprovado.

 

Muito bom esse seu tópico.

1 mês depois...
Henrique MouraH
06 de dezembro de 2009 às 23:57

Tutorial aprovado :button_ok:

Boa formatação, organização, imagens que facilitão o aprendizado e informação correta direto ao ponto.

 

Obrigado por trazer conteúdo ao XTibia!

1 mês depois...
bevilsB
20 de janeiro de 2010 às 17:29

Muito bom mesmo :)

Eu nao sabia disso :S muito rox vlws....

1 mês depois...
DevilMoonD
21 de fevereiro de 2010 às 20:17

esse mostrair spoil n ta mostrando nada ;O

1 mês depois...
luisonegoL
19 de março de 2010 às 13:15

Cara tutorial muito bom.

Eu sou novo nesse ramo e tal.

Essas pessoas como vc fazem a diferença na hora de fazer um server.

2 semanas depois...
leleosL
31 de março de 2010 às 22:26

Bom gente eu atualizei o topico agora da pra ver os spoiler certim, e tambem mudei algumas cores dsculpa a demora pra atualiza.

 

é isso ai galero abraços.