NI
tfs 0.4

Pedido Tp Trainer

Por Nickbhz, 18 de jul. de 2016 em Scripts

pedido
script
tp
treiner
3
2.1k
NickbhzN
18 de julho de 2016 às 17:38

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.

RiscadoR
20 de julho de 2016 às 00:39
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..

Editado Julho 22 por Riscado

1 mês depois...
AdministradorA
18 de agosto de 2016 às 12:32

Resolvido?