NO
pedido

Area Com Limite De Players

Por Noninhouh, 25 de out. de 2012 em Scripts

limite de players
target dummy
otserv
tibia
script
7
1.9k
NoninhouhN
25 de outubro de 2012 às 14:43

Galera, vo fala logo como que eu quero o script...

 

Tipo em um quarto, so podem entrar 8 players, quando um 9º player for tentar entrar aparecera a mensagem:

This training room is already full!

 

E tambem se o player der logout dentro da area non-pvp, quando ele entrasse, ele seria teleportado para o templo

e apareceria a mensagem:

You has logged into the training room, hence you went back to the temple.

 

Vo passa uma imagem mostrando o quarto:

 

14t1qg5.png

 

 

 

 

 

Quem consegui ganha REP+ button_ok.png

Editado Outubro 25 por Noninhouh

VodkartV
25 de outubro de 2012 às 15:36

no from,to vc coloca as coordenadas do começo x ,y e z da sua sala aí

 

em data/creaturescript/script/login.lua adc antes do ultimo return true

 

local from,to = {x=, y=, z=}, {x=, y=, z=}
if isInRange(getCreaturePosition(cid), from, to) then
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You has logged into the training room, hence you went back to the temple.")
end

 

e o 2°eu fiz por piso, ai você coloca ali na área de entrada

 

movements/script/ nome do seu script.lua

 

function onStepIn(cid, item, position, fromPosition)
local from,to,players,limit = {x=, y=, z=}, {x=, y=, z=},{},8
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getCreaturePosition(pid), from, to) then
table.insert(player, pid)
end
end
if #players >= limit then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"This training room is already full!")
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return true
end 
return true
end

 

tag é essa:

 

<movevent type="StepIn" actionid="26205" event="script" value="nome do seu script.lua"/>

 

ai na entrada dos quatro canto você coloca o piso com esse actionID: 26205

NoninhouhN
25 de outubro de 2012 às 21:04

 

[25/10/2012 21:03:32] Lua Script Error: [MoveEvents Interface]

[25/10/2012 21:03:32] data/movements/scripts/targetdummyarea.lua:onStepIn

 

[25/10/2012 21:03:32] data/movements/scripts/targetdummyarea.lua:5: bad argument #1 to 'insert' (table expected, got nil)

[25/10/2012 21:03:32] stack traceback:

[25/10/2012 21:03:32] [C]: in function 'insert'

[25/10/2012 21:03:32] data/movements/scripts/targetdummyarea.lua:5: in function <data/movements/scripts/targetdummyarea.lua:1>

 

 

Deu esse error ae

 

--- EDIT ---

 

Poder ser tipo assim tambem, em vez de ter apenas 8 players, os players entram e podem andar em cima dos outros ;)

Tem que ser de algum jeito que não de para trapar os players lah, e nem empurrar

Editado Outubro 25 por Noninhouh

SlicerS
25 de outubro de 2012 às 23:07

troca isso..

table.insert(player, pid)

por isso..

table.insert(players, pid)

NoninhouhN
26 de outubro de 2012 às 14:44

Agora deu certo, vo da REP+ pro Vodkart, e amanhã eu do pra vc Slicer

 

--- EDIT ---

 

Mas tipo, eu vou fazer 9 salas dessa e vai ter 2 andares, mais os treiners da area vip, vai ficar com 36...

Eu vou ter que fazer 1 script para cada sala?

Editado Outubro 26 por Noninhouh

SkyLighS
26 de outubro de 2012 às 16:21

duvida sanada

reportado

 

Para um superior

caoticC
26 de outubro de 2012 às 18:43

Duvida Sanada

Tópico Movido