KR
action

[Movements] Tp com Limite de Players

Por Krono, 11 de abr. de 2015 em CreatureScripts e Movements

tp com limite
players restrito
script
7
3k
KronoK
11 de abril de 2015 às 18:29

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

DanihcvD
11 de abril de 2015 às 18:46

Muito bom! Realmente vai ajudar bastante quem quer fazer hunts mais elaboradas.

1 mês depois...
12 de maio de 2015 às 13:04

Amigo, estou tendo este erro aqui.

post-382083-0-81539000-1431446670_thumb.png

12 de maio de 2015 às 13:16

Da para fazer Team Balance (Evento ou Server de War) por Teleport , Gostei desse Script

FurabioF
12 de maio de 2015 às 13:18

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 Maio 12 por ScreaM

12 de maio de 2015 às 13:40

Aee funcionou, Rep+

Eu estava realmente precisando deste sistema para os meus ginásios !

Muito bom, parabéns !

2 anos depois...
willks123W
15 de junho de 2017 às 11:49

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