• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Ropes don't work on sewer gates tfs 1.2

jackl90

Member
Joined
Jul 25, 2017
Messages
249
Reaction score
12
Distribuition the forgotten server 1.2

Sewer gate id is 435, i tried put in all local on script but don't work..

This script my rope script is to 7.4 functions... are working but with sewer gates not :/
LUA:
local OPENED_HOLE = {293, 294, 385, 476, 435, 482, 483, 594, 595, 607, 609, 610, 615, 385, 387, 394}
local OPENED_TRAP = {462, 435}
local DOWN_LADDER = {369, 370, 408, 409, 427, 428, 3135, 3136, 5545, 5763, 412, 432, 433, 435}
local ROPE_SPOT = {386, 421}
local allowed_items_inway = {2016, 2017, 2018, 2019, 2020, 2021, 1903, 1904, 1905}
function onUse(cid, item, frompos, item2, topos)
    newPos = {x = topos.x, y = topos.y, z = topos.z, stackpos = 0}
    groundItem = getThingfromPos(newPos)
    blockingItem = getThingfromPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 1})
    if(isInArray(ROPE_SPOT, groundItem.itemid) == TRUE) then
        newPos.y = newPos.y + 1
        newPos.z = newPos.z - 1
        if((blockingItem.itemid > 0 and not isInArray(allowed_items_inway, blockingItem.itemid)) or isCreature(groundItem.uid)) then
           doPlayerSendCancel(cid, "You cannot use this object.")
       else
           doTeleportThing(cid, newPos)
        end
    elseif(isInArray(OPENED_HOLE, groundItem.itemid) == TRUE or isInArray(OPENED_TRAP, groundItem.itemid) == TRUE or isInArray(DOWN_LADDER, groundItem.itemid) == TRUE) then
        newPos.y = newPos.y + 1
        downPos = {x = topos.x, y = topos.y, z = topos.z + 1, stackpos = 255}
        downItem = getThingfromPos(downPos)
        if(downItem.itemid > 0) then
            doTeleportThing(downItem.uid, newPos)
        else
            doPlayerSendCancel(cid, "You cannot use this object.")
        end
    end
    return true
end
 
Solution
LUA:
local OPENED_HOLE = {293, 294, 385, 476, 435, 482, 483, 594, 595, 607, 609, 610, 615, 385, 387, 394}
local OPENED_TRAP = {462, 435}
local DOWN_LADDER = {369, 370, 408, 409, 427, 428, 3135, 3136, 5545, 5763, 412, 432, 433, 435}
local ROPE_SPOT = {386, 421}
local allowed_items_inway = {2016, 2017, 2018, 2019, 2020, 2021, 1903, 1904, 1905}
function onUse(cid, item, frompos, item2, topos)
    newPos = {x = topos.x, y = topos.y, z = topos.z, stackpos = 0}
    groundItem = getThingfromPos(newPos)
    blockingItem = getThingfromPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 1})
    if(isInArray(ROPE_SPOT, groundItem.itemid) == TRUE) then
        newPos.y = newPos.y + 1
        newPos.z = newPos.z - 1
        if((blockingItem.itemid...
LUA:
local OPENED_HOLE = {293, 294, 385, 476, 435, 482, 483, 594, 595, 607, 609, 610, 615, 385, 387, 394}
local OPENED_TRAP = {462, 435}
local DOWN_LADDER = {369, 370, 408, 409, 427, 428, 3135, 3136, 5545, 5763, 412, 432, 433, 435}
local ROPE_SPOT = {386, 421}
local allowed_items_inway = {2016, 2017, 2018, 2019, 2020, 2021, 1903, 1904, 1905}
function onUse(cid, item, frompos, item2, topos)
    newPos = {x = topos.x, y = topos.y, z = topos.z, stackpos = 0}
    groundItem = getThingfromPos(newPos)
    blockingItem = getThingfromPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 1})
    if(isInArray(ROPE_SPOT, groundItem.itemid) == TRUE) then
        newPos.y = newPos.y + 1
        newPos.z = newPos.z - 1
        if((blockingItem.itemid > 0 and not isInArray(allowed_items_inway, blockingItem.itemid)) or isCreature(groundItem.uid)) then
           doPlayerSendCancel(cid, "You cannot use this object.")
       else
           doTeleportThing(cid, newPos)
        end
    elseif(isInArray(OPENED_HOLE, groundItem.itemid) == TRUE or isInArray(OPENED_HOLE, item2.itemid) == TRUE or isInArray(OPENED_TRAP, groundItem.itemid) == TRUE or isInArray(DOWN_LADDER, groundItem.itemid) == TRUE) then
        newPos.y = newPos.y + 1
        downPos = {x = topos.x, y = topos.y, z = topos.z + 1, stackpos = 255}
        downItem = getThingfromPos(downPos)
        if(downItem.itemid > 0) then
            doTeleportThing(downItem.uid, newPos)
        else
            doPlayerSendCancel(cid, "You cannot use this object.")
        end
    end
    return true
end
 
Last edited by a moderator:
Solution
Back
Top