Limite de player por sala

RigBy
Por RigBy
em Actions e Talkactions

RigBy

Katrina? Romero Brito?
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 05/02/14Posts: 411Gênero: MasculinoChar no Tibia: Zeh Sergipano

Limite de player por sala

 

Introdução:

Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos.

O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada.

 

Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe.

 

Caso a sala esteja lotada.

dLc4IlT.png

Caso não.

U6DSuK0.png

 

Em data/movement/script, crie 

LimiteArea.lua e adicione.

Spoiler
-- Do not remove the credits ---- [MOVEEVENT] Limite de player por sala ---- Developed by Rigby ---- Especially for the Xtibia.com -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)local config = {-- Config ---- [ACTIONID] = {area = getPlayersInArea(AREA QUE IRA CHECAR (FROMPOS,TOPOS)), amountOfPlayers = QUANTIDADE QUE CABE, teleport = PARA ONDE SERA TELEPORTADO}[213123] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1, teleport = {x = 1037, y = 1025, z = 7}},[543543] = {area = getPlayersInArea({x = 1037, y = 1025, z = 7}, {x = 1041, y = 1025, z = 7}), amountOfPlayers = 2, teleport = {x = 1036, y = 1025, z = 7}},-- Config --}     if config[item.actionid] then        if #config[item.actionid].area < config[item.actionid].amountOfPlayers then            doTeleportThing(cid, config[item.actionid].teleport, false)            doPlayerSendTextMessage(cid, 25, "Welcome")        else            doPlayerSendTextMessage(cid, 25, "The room already reached its limit "..config[item.actionid].amountOfPlayers.." player 's wait someone out .")            doTeleportThing(cid, fromPosition)        end    endreturn trueend function getPlayersInArea(fromPos, toPos) -- Function made by Vodkartlocal players = {}    for _, pid in ipairs(getPlayersOnline()) do        if isInRange(getPlayerPosition(pid), fromPos, toPos) then            table.insert(players, pid)        end    end    return playersend

 

 
Em movement/movement.xml
Adicione essa tag
 
Spoiler
<movevent type="StepIn" actionid="213123;543543:ACTIONID" event="script" value="LimiteArea.lua"/>

 

 

E depois adicionar o actionid no piso ou teleport pelo mapa editor.
O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda.
Caso você adicione mais locais você terá que adicione na tag também.
 
 
 

 



DXBXk1i.gif

Bruno

Ousadia e Alegria
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 01/05/08Posts: 2571Gênero: Masculino

É um excelente script, parabéns!

 

Obrigado por compartilhar conosco.

Atenciosamente,
Bruno Minervino

 

Tibia Clients - Downloads Window

RigBy

Katrina? Romero Brito?
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 05/02/14Posts: 411Gênero: MasculinoChar no Tibia: Zeh Sergipano

Obrigado :D

:hi:



DXBXk1i.gif

HeelNox

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/10/11Posts: 444Gênero: FemininoChar no Tibia: No Have.

Parabéns bro, evoluiu muito desde a época.

2+2 = 1

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

esse código é bom para quem gosta de fazer quest, exemplo a firewalk boots

bossisg.png

RigBy

Katrina? Romero Brito?
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 05/02/14Posts: 411Gênero: MasculinoChar no Tibia: Zeh Sergipano

#DarkHell

Obrigado :D

 

#Vodkart

Sim, pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro time acabe.



DXBXk1i.gif

System Hardcore

Sua ausência me causou o caos.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/04/15Posts: 13

Junto com a área de checagem, poderia ser posto uma contagem em segundos para remover o player da área. Evitando assim que se houver perda de conexão do player ele fique trapando a sala até que o char relogue.

 

De qualquer modo é um belo script.

RigBy

Katrina? Romero Brito?
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 05/02/14Posts: 411Gênero: MasculinoChar no Tibia: Zeh Sergipano

Isso da para se resolve de varias maneiras como deixa a sala anti-logout ou adicionar uma storage no player para caso ele logue e tenha aquela storage ele seja expulso da sala.



DXBXk1i.gif

Martelix

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/08/08Posts: 57Char no Tibia: Termabre Dore

Simples, mas útil.

Deu uma vontade de volta a mexer com OT, pena que parei na versão 8.60 (0.4) kkk. Agora TFS 1.0+, tenho que desenferrujar...

Obrigado pelo script.

Pedroshow

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/10/10Posts: 9Char no Tibia: Pedrinho Cabuloso

Tem como fazer isso em portas ?

Rajas

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 30/12/07Posts: 132Gênero: MasculinoChar no Tibia: Hannibol
Em 29/07/2017 at 17:04, Pedroshow disse:

Tem como fazer isso em portas ?

@UP

KaboFlow

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/07/17Posts: 434
Em 25/06/2015 em 14:57, RigBy disse:

Limite de player por sala

 

Introdução:

Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos.

O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada.

 

Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe.

 

Caso a sala esteja lotada.

dLc4IlT.png

Caso não.

U6DSuK0.png

 

Em data/movement/script, crie 

LimiteArea.lua e adicione.

  Ocultar conteúdo
-- Do not remove the credits ---- [MOVEEVENT] Limite de player por sala ---- Developed by Rigby ---- Especially for the Xtibia.com -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)local config = {-- Config ---- [ACTIONID] = {area = getPlayersInArea(AREA QUE IRA CHECAR (FROMPOS,TOPOS)), amountOfPlayers = QUANTIDADE QUE CABE, teleport = PARA ONDE SERA TELEPORTADO}[213123] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1, teleport = {x = 1037, y = 1025, z = 7}},[543543] = {area = getPlayersInArea({x = 1037, y = 1025, z = 7}, {x = 1041, y = 1025, z = 7}), amountOfPlayers = 2, teleport = {x = 1036, y = 1025, z = 7}},-- Config --}     if config[item.actionid] then        if #config[item.actionid].area < config[item.actionid].amountOfPlayers then            doTeleportThing(cid, config[item.actionid].teleport, false)            doPlayerSendTextMessage(cid, 25, "Welcome")        else            doPlayerSendTextMessage(cid, 25, "The room already reached its limit "..config[item.actionid].amountOfPlayers.." player 's wait someone out .")            doTeleportThing(cid, fromPosition)        end    endreturn trueend function getPlayersInArea(fromPos, toPos) -- Function made by Vodkartlocal players = {}    for _, pid in ipairs(getPlayersOnline()) do        if isInRange(getPlayerPosition(pid), fromPos, toPos) then            table.insert(players, pid)        end    end    return playersend

 

 
Em movement/movement.xml
Adicione essa tag
 
  Ocultar conteúdo
<movevent type="StepIn" actionid="213123;543543:ACTIONID" event="script" value="LimiteArea.lua"/>

 

 

E depois adicionar o actionid no piso ou teleport pelo mapa editor.
O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda.
Caso você adicione mais locais você terá que adicione na tag também.
 
 
 

 

 

 

[25/01/2020 19:42:38] [Warning - Event::loadScript] Event onStepIn not found (data/movements/scripts/Tower/Players 1.lua)