Ir para conteúdo

[Movements] Tp com Limite de Players


Krono

Posts Recomendados

Tp com Limite de Players é um script que determina quantos players podem acessar cada area por vez. Com esse script dá para deixar as hunts mais distribuidas.

 

Veja como funciona com Imagen.

 

vMTREXX.gif

 

 

Instalando o script:

 

Em data/movements/scripts crie um arquivo com o nome Limitetp.lua e cole este script dentro:

     local c = {
        limit = 5, -- Limite de jogadores
        msgCancel = 'Tp bloqueado. Maximo de jogadores atingido', -- Mensagem quando o limite de jogadores estiver atingido

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada maxima superior esquerda
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada minima inferior direita
        },

        pos = {x = 1070, y = 1030, z = 7}, -- Coordenada onde será teletransportado
    local function getPlayersInArea(fromPos, toPos)
      local t = {}

        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), fromPos, toPos) then
                table.insert(t, cid)
            end
        end

      return t
    end

    function onStepIn(cid, item, fromPos, toPos)
        if isPlayer(cid) then

            if table.getn(getPlayersInArea(c.area.From, c.area.To)) < c.limit then
                doSendMagicEffect(fromPos, CONST_ME_TELEPORT)
                doTeleportThing(cid, c.pos)
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

             else
               doPlayerSendCancel(cid, c.msgCancel)
               doTeleportThing(cid, toPos, false)
            end
        end

      return true
    end

Em movements.xml adicione a tag:

<movevent type="StepIn" uniqueid="9478" event="script" value="Limitetp.lua"/>

Veja a imagem da configuração:

O3gI4Nj.png

 

 

Espero que gostem e usem!!

 

Credito: Belerofonte

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Amigo, estou tendo este erro aqui.

 

Tenta assim :

 local c = {
        limit = 5, -- Limite de jogadores
        msgCancel = 'Tp bloqueado. Maximo de jogadores atingido', -- Mensagem quando o limite de jogadores estiver atingido

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada maxima superior esquerda
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada minima inferior direita
        },

        pos = {x = 1070, y = 1030, z = 7}, -- Coordenada onde será teletransportado
    }

 local function getPlayersInArea(fromPos, toPos)
      local t = {}

        for _, cid in ipairs(getPlayersOnline()) do
            if isInRange(getThingPos(cid), fromPos, toPos) then
                table.insert(t, cid)
            end
        end

      return t
    end

    function onStepIn(cid, item, fromPos, toPos)
        if isPlayer(cid) then

            if table.getn(getPlayersInArea(c.area.From, c.area.To)) < c.limit then
                doSendMagicEffect(fromPos, CONST_ME_TELEPORT)
                doTeleportThing(cid, c.pos)
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)

             else
               doPlayerSendCancel(cid, c.msgCancel)
               doTeleportThing(cid, toPos, false)
            end
        end

      return true
    end

faltava um "}" pra fechar a tabela.

Editado por ScreaM
Link para o comentário
Compartilhar em outros sites

  • 2 years later...

É possivel adicionar ao player assim que passa pelo teleporte um temporizador? Por exemplo: 

 

Ele passa no teleporte pra matar um BOSS. Ele tem 5 minutos pra conseguir, se ele nao matar em 5 minutos ele é teleportado pra fora, e so pode acessar o portal depois de 3 minutos.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...