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

TFS 1.X+ remove wall with lever tfs 1.5

bpm91

Intermediate OT User
Joined
May 23, 2019
Messages
881
Solutions
7
Reaction score
122
Location
Brazil
YouTube
caruniawikibr
Hi guys, I'm trying to create a script to remove the walls with levers. Could anyone tell me how to improve this here?

Lua:
function onUse(cid, item, frompos, item2, topos)
gatepos1 = {x = 32862, y = 32556, z = 11, stackpos=1}
gatepos2 = {x = 32863, y = 32556, z = 11, stackpos=1}
gatepos3 = {x = 32864, y = 32556, z = 11, stackpos=1}
gatepos4 = {x = 32865, y = 32556, z = 11, stackpos=1}
getgate = getThingfromPos(gatepos) --posição da parede

if item.actionid == 2999 and item.itemid == 1945 then --primeira alavanca inicial
doRemoveItem(getgate.uid,1) -- remove a parade
doCreateItem(355,1,gatepos1)
doCreateItem(355,1,gatepos2)
doCreateItem(355,1,gatepos3)
doCreateItem(355,1,gatepos4) --piso em baixo da parede
doTransformItem(item.uid,item.itemid+1)
elseif item.actionid == 2999 and item.itemid == 1946 then --segunda alavanca cria a parede
doCreateItem(1050,1,gatepos1)
doCreateItem(1050,1,gatepos2)
doCreateItem(1050,1,gatepos3)
doCreateItem(1050,1,gatepos4) --parede--
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry not possible.")
end
  return 1
  end
 
Hi guys i finish script but I realized that 1 friend can open the wall and another player can stand on top of the wall positions. How do I get the player to be kicked from the wall positions?


Lua:
function onUse(cid, item, frompos, item2, topos)
gatepos = {x=32862, y=32556, z=11, stackpos=1}
getgate = getThingfromPos(gatepos)

gatepos2 = {x = 32863, y = 32556, z = 11, stackpos=1}
getgate2 = getThingfromPos(gatepos2)
gatepos3 = {x = 32864, y = 32556, z = 11, stackpos=1}
getgate3 = getThingfromPos(gatepos3)
gatepos4 = {x = 32865, y = 32556, z = 11, stackpos=1}
getgate4 = getThingfromPos(gatepos4)

switchpos1 = {x=32862, y=32557, z=11}
switchpos2 = {x=32862, y=32555, z=11}


if item.itemid == 1945 then
doRemoveItem(getgate.uid,1)
doRemoveItem(getgate2.uid,1)
doRemoveItem(getgate3.uid,1)
doRemoveItem(getgate4.uid,1)
doCreateItem(3153,1,gatepos2)
doCreateItem(3153,1,gatepos3)
doCreateItem(3153,1,gatepos4)
doCreateItem(3153,1,gatepos)
doTransformItem(item.uid,item.itemid+1)
doTransformItem(getTileItemById(switchpos1, 1945).uid,1946)
doTransformItem(getTileItemById(switchpos2, 1945).uid,1946)  

elseif item.itemid == 1946 then
doCreateItem(1050,1,gatepos)
doCreateItem(1050,1,gatepos2)
doCreateItem(1050,1,gatepos3)
doCreateItem(1050,1,gatepos4)
doTransformItem(item.uid,item.itemid-1)
doTransformItem(getTileItemById(switchpos1, 1946).uid,1945)
doTransformItem(getTileItemById(switchpos2, 1946).uid,1945)

else

doPlayerSendCancel(cid,"Sorry not possible.")
end
  return 1
  end


WhatsApp Image 2022-10-03 at 21.21.12.jpeg
 
Last edited:
This is not an "Improved" version, but, I hope this helps you...
in "pushgate" positions, you can modify where player will be kicked.
(x=gatepos.x+1... x=gatepos.x-1... y=gatepos.y+1... y=gatepos.y-1)
A.png
Lua:
function onUse(cid, item, frompos, item2, topos)
    gatepos = {x=32862, y=32556, z=11, stackpos=1}
    getgate = getThingfromPos(gatepos)
    gatepos2 = {x = 32863, y = 32556, z = 11, stackpos=1}
    getgate2 = getThingfromPos(gatepos2)
    gatepos3 = {x = 32864, y = 32556, z = 11, stackpos=1}
    getgate3 = getThingfromPos(gatepos3)
    gatepos4 = {x = 32865, y = 32556, z = 11, stackpos=1}
    getgate4 = getThingfromPos(gatepos4)

    switchpos1 = {x=32862, y=32557, z=11}
    switchpos2 = {x=32862, y=32555, z=11}
  
    pushgate1 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate2 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate3 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate4 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}

    if item.itemid == 1945 then
        doRemoveItem(getgate.uid,1)
        doRemoveItem(getgate2.uid,1)
        doRemoveItem(getgate3.uid,1)
        doRemoveItem(getgate4.uid,1)
        doCreateItem(3153,1,gatepos2)
        doCreateItem(3153,1,gatepos3)
        doCreateItem(3153,1,gatepos4)
        doCreateItem(3153,1,gatepos)
        doTransformItem(item.uid,item.itemid+1)
        doTransformItem(getTileItemById(switchpos1, 1945).uid,1946)
        doTransformItem(getTileItemById(switchpos2, 1945).uid,1946)

    elseif item.itemid == 1946 then
        if isCreature(getgate.uid) then
            doTeleportThing(getgate.uid, pushgate1, true)
        elseif isCreature(getgate2.uid) then
            doTeleportThing(getgate.uid, pushgate2, true)
        elseif isCreature(getgate3.uid) then
            doTeleportThing(getgate.uid, pushgate3, true)
        elseif isCreature(getgate4.uid) then
            doTeleportThing(getgate.uid, pushgate4, true)
        end
        doCreateItem(1050,1,gatepos)
        doCreateItem(1050,1,gatepos2)
        doCreateItem(1050,1,gatepos3)
        doCreateItem(1050,1,gatepos4)
        doTransformItem(item.uid,item.itemid-1)
        doTransformItem(getTileItemById(switchpos1, 1946).uid,1945)
        doTransformItem(getTileItemById(switchpos2, 1946).uid,1945)
    else
        doPlayerSendCancel(cid,"Sorry not possible.")
    end
  return 1
end
 
Last edited:

use tables plz, you dont want to put 999 elseif and repeat same functions
gatepos = {x=32862, y=32556, z=11, stackpos=1}
elseif item.itemid == 1946 then
if isCreature(getgate.uid) then
doTeleportThing(getgate.uid, pushgate1, true)


but when I'm stepped on the X marked in the photo, I'm not kicked
 
Im sorry, my mistake, need to change this ...
Lua:
    pushgate1 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate2 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate3 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate4 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}

for this one...

Lua:
    pushgate1 = {x=gatepos.x, y=gatepos.y + 1, z=gatepos.z, stackpos=gatepos.stackpos}
    pushgate2 = {x=gatepos2.x, y=gatepos2.y + 1, z=gatepos2.z, stackpos=gatepos2.stackpos}
    pushgate3 = {x=gatepos3.x, y=gatepos3.y + 1, z=gatepos3.z, stackpos=gatepos3.stackpos}
    pushgate4 = {x=gatepos4.x, y=gatepos4.y + 1, z=gatepos4.z, stackpos=gatepos4.stackpos}
 
work 50%
in position Position: 32862, 32556, 11 im kicked from wall. but in the side position I was not
View attachment 70973
Why are you using TFS 0.x functions? Isn't this Banuta 4th floor?
You can check this script using TFS 1.x functions and has all the levers exactly, Here.
If you don't need to use all the levers then you can remove their positions from the table.
 
Back
Top