[ Tutorial De Scripting I ] Coletânea: Actions E Movements Simples

DaNDaNrOxX
em Tutoriais de Scripting

DaNDaNrOxX

oi mosso
avatar
Marquês
Marquês

INFOS

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

Olá XTibianos!

 

Tenho notado nos ultimos dias, que muitos usuários pedem ajuda em scripting, e que não sabem fazer coisas fáceis, e assim, tendo que pedir a outros para fazer. (Não sou nenhum profissional em scripts, pelo contrário, sou um iniciante. Mas vou tentar ajudar! :])

 

O que vou fazer aqui é uma pequena coletânea de scripts de minha autoria, para auxiliar os novatos na area, e tentar sanar as dúvidas.

 

Mais simplificado, vou postar aqui tutoriais de como fazer coisas simples, tipo um piso que teleporta, uma alavanca que teleporta, uma porta que só passa vocação X, um piso aonde apenas premium passa etc...

Aqui vai :)

 

~~Primeiro Tutorial~~ Fazendo um piso que teleporta para determinada posição

 

Abra a pasta do seu server, logo em seguida vá até a pasta data > Movements > Scripts.

Em seguida, copie qualquer arquivo que estiver lá dentro, cole na mesma pasta e renomeie para pisotp.lua, apague tudo que estiver dentro, e cole isto:

 

----- Piso para teleportar players by DaNDaNrOxX -------

function onStepIn(cid, item, pos)

playerpos = getPlayerPosition(cid)

teleport = {x=XXXX, y=XXXX, z=X}

if isPlayer(cid) == 1 then

doSendMagicEffect(teleport,10)

doTeleportThing(cid,teleport)

end

end

Aonde está em VERMELHO, Substitua pela coordenada aonde o player irá ser teleportado.

Logo em seguida, vá até a pasta data > movements > movements.xml, abra o arquivo movements.xml e depois de:

<?xml version="1.0"?>

 

<movements>

Adicione uma linha em baixo da seguinte forma:

<movevent event="StepIn" uniqueid="XXXX" script="pisotp.lua" />

Aonde está XXXX, coloque números tipo 8008, 9990, 9898, em fim, qualquer número que já não esteja sendo usado em seu server.

Depois vá até o seu mapa editor e no piso (Aquele que quando você pisar, irá teleportar para o lugar X)coloque o mesmo número que você colocou no <movevent event="StepIn" uniqueid="XXXX" script="pisotp.lua" />

---Fim do Primeiro Tutorial---

 

~~Segundo Tutorial~~ Fazendo um piso que teleporta players premium para uma determinada posição

 

Abra a pasta do seu server, logo em seguida vá até a pasta data > Movements > Scripts.

Em seguida, copie qualquer arquivo que estiver lá dentro, cole na mesma pasta e renomeie para premiumpass.lua, apague tudo que estiver dentro, e cole isto:

 

----- Piso para teleportar players premium by DaNDaNrOxX -------

function onStepIn(cid, item, pos)

playerpos = getPlayerPosition(cid)

teleport = {x=XXXX, y=XXXX, z=X}

if isPremium(cid) == 1 then

if isPlayer(cid) == 1 then

doSendMagicEffect(teleport,10)

doTeleportThing(cid,teleport)

end

else

doPlayerSendTextMessage(cid,22,"Desculpe, apenas players premium account estão autorizados a passar aqui.")

end

 

Aonde está em VERMELHO, Substitua pela coordenada aonde o player irá ser teleportado.

Logo em seguida, vá até a pasta data > movements > movements.xml, abra o arquivo movements.xml e depois de:

<?xml version="1.0"?>

 

<movements>

Adicione uma linha em baixo da seguinte forma:

<movevent event="StepIn" uniqueid="XXXX" script="premiumpass.lua" />

Aonde está XXXX, coloque números tipo 8008, 9990, 9898, em fim, qualquer número que já não esteja sendo usado em seu server.

Depois vá até o seu mapa editor e no piso (Aquele que quando você pisar, irá teleportar para o lugar X)coloque o mesmo número que você colocou no <movevent event="StepIn" uniqueid="XXXX" script="pisotp.lua" />

 

---Fim do Segundo Tutorial---

 

~~Terceiro Tutorial~~ Fazendo uma porta aonde só passa player que já fez uma determinada quest (por storage)

Está é um pouquinho mais complicada, requer um pouco de conhecimento de scripts... Vou tentar explicar bem para intenderem :)

 

Abra a pasta do seu server, logo em seguida vá até a pasta data > Actions > Scripts.

Em seguida, copie qualquer arquivo que estiver lá dentro, cole na mesma pasta e renomeie para portaquest.lua, apague tudo que estiver dentro, e cole isto:

 

----- Porta que passa apenas quem ja fez uma outra quest ou tem a storage necessaria by DaNDaNrOxX -------

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

quest = getPlayerStorageValue(cid,2184)

teleport = {x=XXXX, y=XXXX, z=XXXX}

playerpos = getPlayerPosition(cid)

if item.uid == 8090 and item.itemid == 1223 then

if quest == 1 then

doTeleportThing(cid,teleport)

doSendMagicEffect(teleport,10)

else

doPlayerSendTextMessage(cid, 22, "Mensagem caso o player não tenha feito a quest que se pede para passar pela porta.")

end

end

end

 

Aonde está em VERMELHO, é o número de storage da quest que o player terá que ter feito antes de poder passar pela porta (pequena explicação em breve).

Aonde está em LARANJA, é a posição em X, Y e Z que o player irá ser teleportado caso ele já tenha feito a quest, no caso, coloque na frente da porta. Exemplo: Se você colocou a porta no x=1105,y=1005,z=7, coloque para teleportar no x=1107,y=1005,z=7 (ISTO É APENAS UM EXEMPLO SIMPLES).

Aonde está em Verde, coloque a ACTIONID que você irá colocar no mapa editor nesta porta e aonde está em ROSA é o ID da porta.

Aonde está em AZUL, Coloque a mensagem que irá aparecer no caso o player não tenha feito a quest que se pede para passar pela porta.

 

Logo em seguida, vá até a pasta data > actions > actions.xml, abra o arquivo actions.xml e depois de:

<?xml version="1.0"?>

 

<actions>

Adicione uma linha em baixo da seguinte forma:

<action actionid="8090" script="portaquest.lua" />

 

Depois vá até o seu mapa editor e coloque uma porta de ID 1223, click com o botão direito nela e coloque ActionID = 8090 e UniqueID = 8090

PS: PARA VOLTAR PELA PORTA, É NECESSÁRIO FAZER UM TELEPORTE (AQUELES AZUIS, NORMAIS).

---Fim do Terceiro Tutorial---

 

Bom pessoal, por enquanto é só, eu vou fazendo mais scripts e postando aqui para vocês. Espero ter ajudado alguem.

 

Lembrando que foi testado em Aries XML 0.4.0

 

Se ouver alguma dúvida poste aqui e eu tentarei ajudar.



Se ouver algum erro e alguem quiser me corrigir, deixe um post aqui por favor.

Atenciosamente, Daniel

Abraço

 

 

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.

 

 

RedZL

Never mind, I'll find someone like you.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/11/06Posts: 850Char no Tibia: Xearius Thor

Cara, eu nunca consegui fazer porcaria alguma em LUA. Mas esse tutorial me ajudou muito. Valeu Dan~

-

Ótima formatação, com uma explicação invejável nada mais nada menos que: Tutorial aprovado.

Atomowka

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 14/10/08Posts: 22

Vlw ai por ter colocado isso no xtibia.

vou por em bloco de notas aqui em casa

sem mais

zimbituba

Crystal Server Founder
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/08Posts: 704Char no Tibia: Atera Knight

uhull...

Tá bem organizado e explicado

Apesar de ser fácil, isto irá ajudar muita gente

If you would like to thank me for my Crystal Server and others, feel free to donate.
Paypal: shynzomapper@hotmail.com

Skulls

Coordenador de Eventos
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 26/02/07Posts: 859Gênero: Masculino

Tenho um tutorial parecido, mas o meu eh so de city e o otro eh so de skills.

O seu ta bem explicado.

Gostei

Parabens

BillyBola

Ex-Imprensa XTibia
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/06/08Posts: 676Char no Tibia: Kimera De Pegasus

Po isso ta muito bom e organizado.

 

Tutorial Aprovado

 

 

;D

DaNDaNrOxX

oi mosso
avatar
Marquês
Marquês

INFOS

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

Obrigado pelo apoio pessoal!

@gnomow157, de uma olhada neste linha:

if item.uid == 8090 and item.itemid == 1223 then

o que está em vermelho é o storage usado na quest.

Para você determinar qual storage o player deve ter para fazer a quest, basta você ver a storage usada na quest que você quer, e colocar aonde está em vermelho no script :)

Caso tenha mais alguma dúvida, não deixe de perguntar!

Abraço

 

 

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.

 

 

TIBIANO458

Xx Lord Ninja xX
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/11/06Posts: 17
uhull...

Tá bem organizado e explicado

Apesar de ser fácil, isto irá ajudar muita gente

 

Concordo E me ajudo mt Vlw

Cya



~~~~~~~~~~~~~~~~MINHA SIGN~~~~~~~~~~~~~~









*~~~~MINHAS METAS~~~~*


[X]1 Post.... SERVO
[X]10 Posts...CAMPONÊS
[_]25 Posts...CAÇADOR

[_]50 Posts...CAVALEIRO
[_]100 Posts...BARONETE
[_]200 Posts...BARÃO
[_]300 Posts...VISCONDE

[_]400 Posts...DUQUE
[_]600 Posts...ARQUEDUQUE
[_]800 Posts...ARISTOCRATA
[_]100 0Posts...REGENTE

[_]1400 Posts...SÁBIO
[_]1800 Posts...SACERDOTE
[_]2500 Posts...PRÍNCIPE



-------------- MEU TIME DE CORAÇÃO ------------


~~^~~IMAGENS LEGAIS ;) ~~^~~



lucas-_abc

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/05/06Posts: 6

nao tem com ofazer um q tem q matar o monster na sala , para aparecer um telepor , algo assim ?