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

Solved Brigde - Lever

Diemorko

New Member
Joined
Jan 31, 2011
Messages
64
Reaction score
0
fanfog.jpg

local t = {
pos = {x=32099, y=32205, z=8},
pos2 = {x=32100, y=32205, z=8},
pos3 = {x=32101, y=32205, z=8},
pos4 = {x=32145, y=32101, z=11},
id = 1304,
id2 = 4647, -- border
id2 = 4645, -- border
id4 = 4616,
id5 = 5770 -- most
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.itemid == 1945 then
-- most
doRemoveItem(getTileItemById(t.pos, 4645).uid)
doRemoveItem(getTileItemById(t.pos3, 4647).uid)
local moveTo = {x=t.pos.x, y=t.pos.y+1, z=t.pos.z}
doRelocate(t.pos, moveTo)
doCreateItem(9022, 1, t.pos)
doCreateItem(4645, 1, t.pos)
doCreateItem(t.id4, 1, t.pos2)
doCreateItem(9022, 1, t.pos3)
doCreateItem(4647, 1, t.pos3)
else
doRemoveItem(getTileItemById(t.pos1, 4645).uid)
doRemoveItem(getTileItemById(t.pos3, 4647).uid)
local moveTo = {x=t.pos.x, y=t.pos.y+1, z=t.pos.z}
doRelocate(t.pos, moveTo)
doCreateItem(9022, 1, t.pos)
doCreateItem(4645, 1, t.pos)
doCreateItem(t.id4, 1, t.pos2)
doCreateItem(9022, 1, t.pos3)
doCreateItem(4647, 1, t.pos3)
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You ' .. (item.itemid == 1945 and 'remov' or 'add') .. 'ed a brigde.')
return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end

I see the message:
21:03 You added a brigde.
and click again:
21:03 You removed a brigde.
But my brigde not added ;'(
 
I sending my script for you [ TFS 1.0 ] ~~ more need add exaust time and actionid on leavers:


PHP:
local posi3 = {x=32102, y=32205, z=8} 
poss = {
[1] = {x=32099, y=32205, z=8},
[2] = {x=32100, y=32205, z=8},
[3] = {x=32101, y=32205, z=8}
}

local lever = {
[1] = {x=32098, y=32204, z=8},
[2] = {x=32104, y=32204, z=8}
}
local itemids = 5770
function onUse(cid, item, fromPosition, itemEx, toPosition)

    if item.actionid == 1000 then
        if item.itemid == 1945 then
                doCreateItem(itemids,poss[1])
                if getTileItemById(poss[1],4645).itemid ~= nil then
                        doTransformItem(getTileItemById(poss[1],4645).uid,itemids)
                            doCreateItem(5770,poss[2])                   

                end
                if getTileItemById(poss[3],4647).itemid > 0 then
                        doTransformItem(getTileItemById(poss[3],4647).uid,itemids)
                        doRemoveItem(5770,poss[2]) -- Piso Marrom

                end
                for i=1,#lever do
                        if lever[i].x == fromPosition.x then
                                o = i
                        end
                end
                if o == 1 then
                        b = 2
                else
                        b = 1
                end
                doTransformItem(item.uid,item.itemid+1)
                doTransformItem(getTileItemById(lever[b],1945).uid,1946)
        elseif item.itemid == 1946 then
                for p = 1,#poss do
                doRelocate(poss[p], posi3)
                end
                for z =1,#poss do
                                poss[z].stackpos = 254
                                if getThingfromPos(poss[z]).itemid > 1000 then
                                        doRemoveItem(getThingfromPos(poss[z]).uid)
                                end
                                poss[z].stackpos = 1
                                if getThingfromPos(poss[z]).itemid > 1000 then
                                        doRemoveItem(getThingfromPos(poss[z]).uid)
                                end

                end
                for i=1,#lever do
                        if lever[i].x == toPosition.x then
                                o = i
                        end
                end
                if o == 1 then
                        b = 2
                else
                        b = 1
                end
                doCreateItem(4616,poss[1]) -- water
                doCreateItem(4616,poss[2]) -- water
                doCreateItem(351,poss[1]) -- Piso Marrom               
                doCreateItem(351,poss[3]) -- Piso Marrom
                doCreateItem(4645,poss[1])
                doCreateItem(4647,poss[3])
                doTransformItem(item.uid,item.itemid-1)
                doTransformItem(getTileItemById(lever[b],1946).uid,1945)
        end
      end
        return TRUE
end


thy and ask...
 
ADD actionID on Second Lever Too.
Lever 1 and Lever2 = 1000 -- Exemple

And check if Positions is True
Code:
local lever = {
[1] = {x=32098, y=32204, z=8},
[2] = {x=32104, y=32204, z=8}
}
 
Well I adapted this script and it works perfectly for me ... Using this same version of TFS. Try rebooting your server again, and forehead.

There is no reason to have errors. On erro then is your map be different of my.
 
Try this.

@kleitonalan value and script will work ;)


Code:
<action uniqueid="1133" event="script" value="ratsbridge.lua" /> -- First Lever UID --
<action uniqueid="1134" event="script" value="ratsbridge.lua" /> -- Second Lever UID --


Code:
function onUse(cid, item, frompos, item2, topos)
    tile1 = {x = 32100, y = 32205, z = 8, stackpos = 1}
    tile2 = {x = 32101, y = 32205, z = 8, stackpos = 1}
    tile3 = {x = 32099, y = 32205, z = 8, stackpos = 1}
    local playerTile = {x = 32100, y = 32205, z = 8}
    local playerTile1 = {x = 32101, y = 32205, z = 8}
    local playerTile3 = {x = 32099, y = 32205, z = 8}
    gettile1 = getThingfromPos(tile1)
    gettile2 = getThingfromPos(tile2)
    gettile3 = getThingfromPos(tile3)
    if item.itemid == 1945 then
        for i = 1133, 1134 do
        doTransformItem(i, 1946)
        end
        doCreateItem(4609,1,tile1)
        doCreateItem(9021,1,tile2)
        doCreateItem(4647,1,tile2)
        doCreateItem(9021,1,tile3)
        doCreateItem(4645,1,tile3)
        if isCreature(getTopCreature(playerTile).uid) then
            doTeleportThing(getTopCreature(playerTile).uid, {x = 32102, y = 32205, z = 8})
        end
        if isCreature(getTopCreature(playerTile1).uid) then
            doTeleportThing(getTopCreature(playerTile1).uid, {x = 32102, y = 32205, z = 8})
        end
        if isCreature(getTopCreature(playerTile3).uid) then
            doTeleportThing(getTopCreature(playerTile3).uid, {x = 32102, y = 32205, z = 8})
        end
    elseif item.itemid == 1946 then
        for i = 1133, 1134 do
        doTransformItem(i, 1945)
        end
        doCreateItem(5770,1,tile1)
        doCreateItem(5770,1,tile2)
        doCreateItem(5770,1,tile3)
        doRemoveItem(gettile2.uid,1)
        doRemoveItem(gettile3.uid,1)
    else
        doPlayerSendCancel(cid,"Sorry, not possible.")
    end
    return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
    end
 
Last edited:
Try this.

Code:
<action uniqueid="1133" event="script" value="ratsbridge.lua" /> -- First Lever UID --
<action uniqueid="1134" event="script" value="ratsbridge.lua" /> -- Second Lever UID --


Code:
function onUse(cid, item, frompos, item2, topos)
    tile1 = {x = 32100, y = 32205, z = 8, stackpos = 1}
    tile2 = {x = 32101, y = 32205, z = 8, stackpos = 1}
    tile3 = {x = 32099, y = 32205, z = 8, stackpos = 1}
    local playerTile = {x = 32100, y = 32205, z = 8}
    local playerTile1 = {x = 32101, y = 32205, z = 8}
    local playerTile3 = {x = 32099, y = 32205, z = 8}
    gettile1 = getThingfromPos(tile1)
    gettile2 = getThingfromPos(tile2)
    gettile3 = getThingfromPos(tile3)
    if item.itemid == 1945 then
        for i = 1133, 1134 do
        doTransformItem(i, 1946)
        end
        doCreateItem(4609,1,tile1)
        doCreateItem(9021,1,tile2)
        doCreateItem(4647,1,tile2)
        doCreateItem(9021,1,tile3)
        doCreateItem(4645,1,tile3)
        if isCreature(getTopCreature(playerTile).uid) then
            doTeleportThing(getTopCreature(playerTile).uid, {x = 32102, y = 32205, z = 8})
        end
        if isCreature(getTopCreature(playerTile1).uid) then
            doTeleportThing(getTopCreature(playerTile1).uid, {x = 32102, y = 32205, z = 8})
        end
        if isCreature(getTopCreature(playerTile3).uid) then
            doTeleportThing(getTopCreature(playerTile3).uid, {x = 32102, y = 32205, z = 8})
        end
    elseif item.itemid == 1946 then
        for i = 1133, 1134 do
        doTransformItem(i, 1945)
        end
        doCreateItem(5770,1,tile1)
        doCreateItem(5770,1,tile2)
        doCreateItem(5770,1,tile3)
        doRemoveItem(gettile2.uid,1)
        doRemoveItem(gettile3.uid,1)
    else
        doPlayerSendCancel(cid,"Sorry, not possible.")
    end
    return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
    end

Useful
 
<action uniqueid="1133" script="ratsbridge.lua" /> -- First Lever UID --
<action uniqueid="1134" script="ratsbridge.lua" /> -- Second Lever UID --
 
Back
Top