--how far the door will open local slide_amount = 350 local state = {} local moved = {} function sliding_wall_init(e) state[e] = "closed" moved[e] = 0 end function sliding_wall_main(e) if GetPlayerDistance(e) < slide_amount then state[e] = "opening" elseif GetPlayerDistance(e) > slide_amount * 1.5 then if state[e] == "open" then state[e] = "closing" end end if state[e] == "opening" then if moved[e] < slide_amount then CollisionOff(e) SetPosition(e,g_Entity[e]['x'] + 1,g_Entity[e]['y'],g_Entity[e]['z']) CollisionOn(e) moved[e] = moved[e] + 1 else state[e] = "open" end elseif state[e] == "closing" then if moved[e] > 0 then CollisionOff(e) SetPosition(e,g_Entity[e]['x'] - 1,g_Entity[e]['y'],g_Entity[e]['z']) CollisionOn(e) moved[e] = moved[e] - 1 else state[e] = "closed" end end end