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