Ir para conteúdo

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


DaNDaNrOxX

Posts Recomendados

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

Editado por DaNDaNrOxX
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

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

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
×
×
  • Criar Novo...