• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Moveevents] Tp con limite de players

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Moveevents] Tp con limite de players el Miér Mar 18, 2015 6:33 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    hola usuarios de tibiaface

    bueno aqui les traigo un script muy util para cualquier evento se trata de un teleport que deja entrar a cierta cantidad de player


    /Data/Movements/Movements.xml






    <movevent type="StepIn" uniqueid="9478" event="script" value="limiTp.lua"/>
    Ahí pones el uniqueID que gustes(que no estés usando ya en otro script), el cual lo has de poner también en el Teleport con el RME.


    Servidor/Data/Movements/Scripts/limiTp.lua


    Código:
     local c = {
        limit = 5, -- Límite de jugadores que podrán entrar.
        msgCancel = 'No pueden entrar mas aventureros.', -- 'Mensaje' cuando ya se haya llenado el límite de jugadores anterior.

        area = {
          From = {x = 1069, y = 1027, z = 6}, -- Coordenada de la ESQUINA SUPERIOR IZQUIERDA del área al que son teletransportados.
          To = {x = 1071, y = 1030, z = 7}, -- Coordenada de la ESQUINA INFERIOR DERECHA del área al que son teletransportados.
        },

        pos = {x = 1070, y = 1030, z = 7}, -- Coordenada del lugar donde será teletransportado el jugador (Dentro del área anterior)
      }

    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

    Zona (básica) a editar:
     local c = {
       limit = 5, -- Límite de jugadores que podrán entrar.
       msgCancel = 'No pueden entrar mas aventureros.', -- 'Mensaje' cuando ya se haya llenado el límite de jugadores anterior.

       area = {
         From = {x = 1069, y = 1027, z = 6}, -- Coordenada de la ESQUINA SUPERIOR IZQUIERDA del área al que son teletransportados.
         To = {x = 1071, y = 1030, z = 7}, -- Coordenada de la ESQUINA INFERIOR DERECHA del área al que son teletransportados.
       },

       pos = {x = 1070, y = 1030, z = 7}, -- Coordenada del lugar donde será teletransportado el jugador (Dentro del área anterior)
     }

    Respecto a las variables que forman el área, es lo mismo que te expliqué en el otro script. Solo que, si a dicha área le vas a poner más de un piso, pues:
    - La coordenada que pongas en From ha de ser la de la ESQUINA SUPERIOR IZQUIERDA del PISO MÁS ALTO donde lo tengas puesto.
    - La coordenada que pongas en To ha de ser la de la ESQUINA INFERIOR DERECHA del PISO MÁS BAJO donde lo tengas puesto.

    Por ejemplo:


    Previsualización:

    (Ahí le puse como límite 2 jugadores para no tener que estar manejando a tantos xD)


    credito: Belerofonte




    Ver perfil de usuario http://www.tibiaface.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).