• 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!

Lua Rope action 7.4

armyman

Member
Joined
Feb 15, 2014
Messages
318
Reaction score
13
Action for rope don't work with item,field,creature or player in spot...

example tibia 7.1~7.4... but i need it in my version 7.72

can i do it? how?
 
Lua:
local OPENED_HOLE = {294, 383, 469, 470, 482, 482, 485, 489, 430}
local OPENED_TRAP = {462}
local DOWN_LADDER = {369, 370, 408, 409, 427, 428, 3135, 3136, 5545, 5763}
local ROPE_SPOT = {384, 418}
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)
   
    BlockItemPos = {x = topos.x, y = topos.y, z = topos.z, stackpos = 2}
    blockingItem = getThingfromPos(BlockItemPos)
    BlockItem1 = {x = topos.x, y = topos.y, z = topos.z, stackpos = 1}
    blockiItem1 = getThingfromPos(BlockItem1)
    if (isInArray(ROPE_SPOT, groundItem.itemid) == TRUE) then
        newPos.y = newPos.y + 1
        newPos.z = newPos.z - 1
        if blockingItem.itemid <= 0 or blockiItem1.itemid <= 0 or (isInArray(allowed_items_inway, blockingItem.itemid) == TRUE) then
        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, "Sorry, not possible.")
        end
    else
        return FALSE
    end
    return TRUE
end
 
Last edited:
not tested

Lua:
function onUse(cid, item, frompos, item2, topos)

    if topos.x == 65535 then
        return
    end
  
    local field = getTileItemByType(topos, ITEM_TYPE_MAGICFIELD)
    if field.itemid ~= 0 then
        return
    end
  
    if isPlayer(getTopCreature(topos).uid) then
        return
    end
  
    local Spot, Hole = {384, 418}, {294, 383, 469, 470, 482, 482, 485, 489, 430, 369, 370, 408, 409, 427, 428, 3135, 3136, 5545, 5763}
  
    local n = topos
    topos.y = topos.y + 1
    topos.z = topos.z - 1  
  
    if isInArray(Spot, item2.itemid) then
        doTeleportThing(cid, topos)
    elseif isInArray(Hole, item2.itemid) then
        local t = {x=n.x, y=n.y, z=n.z + 1, stackpos=255}
        if getTileItemByPos(t).uid ~= 0 then
            return doRelocate(t, topos)
        end
        doPlayerSendCancel(cid, "Sorry, not possible.")
    end
  
    return true
end
 
Back
Top