Jump to content
  • 0

Pedido Tp Trainer


brendoonh

Question

Boa tarde..
TFS: 0.4

 

Gostaria de fazer um pedido, se alguém puder me ajudar..

Então o pedido é o seguinte, um script que faça com que o teleport me leve a uma cabine vazia do treiner, no caso seriam diversas cabines.. Um exemplo é essa foto:

SDkfcAw.png

Script: 

Quando o player pisa no teleporte o script iria checar as gabines e manda ele pra uma vazia.

Caso o player logue lá dentro o script faria a mesma checagem e mandasse ele pra uma cabine vazia.
E uma pra prevenir, caso todas as cabines tivesse cheia, o player seria bloqueado de entrar e mandaria uma mensagem (configuravel)

Iai? Alguém pode me ajudar? Caso n entenda da um toque q tento explicar melhor.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
Em 18/07/2016 at 17:38, brendoonh disse:

Quando o player pisa no teleporte o script iria checar as gabines e manda ele pra uma vazia.

E uma pra prevenir, caso todas as cabines tivesse cheia, o player seria bloqueado de entrar e mandaria uma mensagem

Tô meio enferrujado em Lua..

Arrisca aí:

 

trainercabin.lua em data/movements/scripts

local pos = {	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7}}function onStepIn(cid, item, pos, fromPos)	for _, cabin in ipairs(pos) do		if getTopCreature(cabin).uid < 1 then			return doTeleportThing(cid, cabin) and doSendMagicEffect(cabin, CONST_ME_TELEPORT)		end	end	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Não há cabines disponíveis.')	return doTeleportThing(cid, fromPos, true) and doSendMagicEffect(fromPos, CONST_ME_POFF)end

 

 

 

movements.xml  em data/movements

Adiciona a tag:

<movevent type="StepIn" actionid="XXXXX" event="script" value="trainercabin.lua"/>

Só adicionar o actionid da tag no tile da cabine onde o player fica posicionado.

 

 

 

Em 18/07/2016 at 17:38, brendoonh disse:

Caso o player logue lá dentro o script faria a mesma checagem e mandasse ele pra uma cabine vazia

Numa área de training como essa que o player sempre fica em battle, ele só faria logout alí caso o servidor fosse fechado.

Mas..vai mandar ele para o templo por precaução.

 

cabincheck.lua em data/creaturescripts/scripts

local pos = {	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7},	{x = 123, y = 456, z = 7}}function onLogin(cid)	for _, cabin in ipairs(pos) do		if getTopCreature(cabin).uid < 1 then			return doTeleportThing(cid, cabin) and doSendMagicEffect(cabin, CONST_ME_TELEPORT)		end	end		return doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) and doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)end

 

 

 

creaturescripts.xml em data/creaturescripts

<event type="login" name="cabincheck" script="cabincheck.lua"/>

 

 

Aí é só você acertar as posições dos tiles das cabines nos dois scripts e pronto. E o actionid deve ser posto em todos os tiles das posições que estão na tabela.

Lembrando que eu não testei..

Edited by Riscado
Link to comment
Share on other sites

×
×
  • Create New...