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..




info
Grupo: Visconde
Registrado: 04/01/14
Posts: 320
Reputação: +15
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:
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.