OK not sure if this is working or of any help - or what the condition of the code was when I left off working with it - but you could try it and play around with it to see if you can get it working to meet your requirements. - nothing to lose.
Lift Down : Code :
;Artificial Intelligence Script
;Header
desc = Autolift1_Down (move down once, call lift up)
;Triggers
:state=0,activated=1,plrhigher=10,plrdistwithin=50:state=6,coloff
:state=1:moveup=-1
:state=1,raycastup=20 0:state=2
:state=2,plrdistfurther=55,playerassociated:state=3,unassociateplayer,colon
:state=3,activated=0,plrdistfurther=10,activateifused=1:state=4,coloff
:state=4:moveup=1
:state=4,raycastup=20 100:state=5
:state=5,plrdistfurther=55,playerassociated:state=0,unassociateplayer,colon
:state=6,plrdistwithin=50:sound=audiobank\scifi\scenery\lifts\up.wav,state=1,associateplayer
:state=6,plrdistfurther=55,playerassociated:state=0,colon
:state=7,plrdistwithin=50:sound=audiobank\scifi\scenery\lifts\down.wav,state=4,associateplayer
:state=7,plrdistfurther=55,playerassociated:state=3,colon
:activated=1:state=11,activate=0
:state=11,plrhigher=100:state=21
:state=11:state=31
:state=21,raycastup=20 100:state=3
:state=21:state=1
:state=31,raycastup=20 0:state=0
:state=31:state=4
;End of Script
Lift Switch : Code :
;Artificial Intelligence Script
;Header
desc = Instance Switch (activate upon use)
;Triggers
:state=0:hudreset,hudx=50,hudy=90,hudimagefine=gamecore\text\pressentertouse.tga,hudname=useswitchprompt,hudhide=1,hudmake=display,state=10
:plrdistwithin=50:hudshow=useswitchprompt,hudfadeout=useswitchprompt
:state=10,plrdistwithin=100,plrusingaction=1:state=1,setframe=0,plrsound=$0,activateifused=1
:state=1:incframe=0
:state=1,frameatend=0:state=2
:state=2,plrusingaction=0:state=4
:state=4:decframe=0
:state=4,frameatstart=0:state=5,setframe=0
:state=5:state=10
;End of Script
Good Luck with that