• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] TFS 1.1 Frozen Starlight portal

    Compartir:

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

    1default [Actions] TFS 1.1 Frozen Starlight portal el Dom Oct 21, 2018 10:09 pm

    [Hacker]

    avatar
    Nuevo Miembro
    Nuevo Miembro
    ¿Qué hace?
    Al usar el comando "! Set", un jugador puede guardar sus tarjetas y luego crear un portal para esas tarjetas utilizando su luz estelar congelada en el suelo para crear un portal.

    Características
    -Sólo la persona que hace portal puede usarlo.
    -No se puede hacer un portal si está en combate
    -No se puede hacer un portal en Co-ords guardados.
    -No se puede hacer portal en escaleras, agujeros, escaleras, etc. para evitar que el servidor se cuelgue.
    -Fundición activada para evitar los portales de spam
    -Puede crear solo 1 portal a la vez para evitar el spam.


    Datos de instalación


    data/actions/actions.xml
    Código:
    <action itemid="2361" script="starlighttp.lua"/>

    data/actions/scripts/starlighttp.lua
    Código:
    local groundIds = {
        294, 369, 370, 383, 392, 408, 409, 410, 427, 428, 430, 462, 469, 470, 482,
        484, 485, 489, 924, 3135, 3136, 7933, 7938, 8170, 8286, 8285, 8284, 8281,
        8280, 8279, 8277, 8276, 8567, 8585, 8596, 8595, 8249, 8250, 8251,
        8252, 8253, 8254, 8255, 8256, 8592, 8972, 9606, 9625, 13190, 14461, 19519, 21536
    }
     
    local storages = {82001, 82002, 82003}
     
    local function doRemoveTeleport(pos)
        local tp = Tile(pos):getItemById(1387)
        if tp then
            tp:remove()
        end
        return true
    end
     
    function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey, player)
        local s, player = {}, Player(cid)
        for x = 1, 3 do
            s[#s + 1] = player:getStorageValue(storages[x])
        end
     
        if player:getExhaustion(1000) > 0 then
            player:say('Your Starlight is still recharging!', TALKTYPE_MONSTER_SAY)
            return true
        end
     
        if player:getCondition(CONDITION_INFIGHT, CONDITIONID_DEFAULT) then
            player:say('You cannot make a Portal whilst in battle!', TALKTYPE_MONSTER_SAY)
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
        end
     
        player:setExhaustion(1000, 10)
     
        if s[1] < 0 then
            player:say('You need to set your position!', TALKTYPE_MONSTER_SAY)
            return true
        end
     
        if toPosition.x == s[1] and toPosition.y == s[2] and toPosition.z == s[3] then
            player:say('You cannot create a portal here.', TALKTYPE_MONSTER_SAY)
            return true
        end
     
        local tile = Tile(toPosition)
        local ground = tile:getGround()
        if ground and isInArray(groundIds, ground:getId())
                or tile:getItemById(14435)
                or tile:getItemById(1387)
                or tile:hasProperty(CONST_PROP_IMMOVABLEBLOCKSOLID)
                or tile:hasProperty(CONST_PROP_NOFIELDBLOCKPATH) then
            player:say('You cannot make a Portal here..', TALKTYPE_MONSTER_SAY)
            return true
        end
     
    local teleport = Game.createItem(1387, 1, toPosition)
    if teleport then
    teleport:setActionId(2361)
    teleport:setAttribute('description', 'Only ' .. player:getName():lower() .. ' can use this teleport.')
    end
     
        addEvent(doRemoveTeleport, 10 * 1000, toPosition)
        player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_BLUE)
        player:say('Your Frozen Starlight shimmers and creates a portal', TALKTYPE_MONSTER_SAY)
        return true
    end


    data/movements/movements.xml
    Código:
    <movevent event="StepIn" actionid="2361" script="ownertp.lua"/>

    data/movements/scripts/ownertp.lua
    Código:
    function onStepIn(creature, item, position, fromPosition)
        local player = creature:getPlayer()
        if not player then
            return true
        end
     
        local desc = item:hasAttribute('description') and item:getAttribute('description')
        if not desc:find(player:getName():lower()) then
            player:say('You cannot use this teleport.', TALKTYPE_MONSTER_SAY, false, 0, fromPosition)
            player:teleportTo(fromPosition)
            fromPosition:sendMagicEffect(CONST_ME_TELEPORT)
            position:sendMagicEffect(CONST_ME_TELEPORT)
            return true
        end
     
        local storages, s = {82001, 82002, 82003}, {}
        for i = 1, 3 do
            s[#s + 1] = player:getStorageValue(storages[i])
        end
     
        local teleportDestination = Position(s[1], s[2], s[3])
        player:teleportTo(teleportDestination)
        position:sendMagicEffect(CONST_ME_TELEPORT)
        teleportDestination:sendMagicEffect(CONST_ME_TELEPORT)
        return true
    end


    data/talkactions/talkactions.xml
    Código:
    <talkaction words="!set" script="custom/starlighttp.lua"/>

    data/talkactions/scripts/starlighttp.lua
    Código:
    local storages = {82001, 82002, 82003}
     
    function onSay(cid, words, param)
        local player = Player(cid)
        local pos = player:getPosition()
        local p = {pos.x, pos.y, pos.z}
        for x = 1, 3 do
            player:setStorageValue(storages[x], p[x])
        end
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Position set!")
        player:say('Your position has been set!', TALKTYPE_MONSTER_SAY)
        player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
        return false
    end



    Ver perfil de usuario

    2default Re: [Actions] TFS 1.1 Frozen Starlight portal el Dom Oct 21, 2018 10:31 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    gran aporte +1 (y)



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