Page 1 of 3

Lockable doors

Posted: Tue Dec 28, 2004 6:20 pm
by Ke3pR
hi.. I started to script today an first i went to volume dmage .. and that worked .. and now i am busy with lockable doors but it does not work :S .. it just open.. maybe there is something wrong with my script or something ?
// Dungeon
// ARCHITECTURE: Ke3pR
// SCRIPTING: Ke3pR
main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" ""
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" ""
setcvar "g_obj_axistext2" ""
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" "none"

exec global/door_locked.scr::lock
$dooropenerin nottriggerable
$dooropenerout nottriggerable


level waitTill prespawn

//*** Precache Dm Stuff
exec global/DMprecache.scr

level.script = maps/dm/Dungeon.scr

level waittill spawn

fire2 :

$fire volumedamage 90

doorlock:
$outsidelock nottriggerable
$insidelock nottriggerable
$dooropenerin triggerable
$dooropenerout triggerable
wait 10
$dooropenerin nottriggerable
$dooropenerout nottriggerable
$outsidelock triggerable
$insidelock triggerable


end
thats my script..

Posted: Tue Dec 28, 2004 6:37 pm
by Ke3pR
btw : how do you de-filter triggers ?

Posted: Tue Dec 28, 2004 8:04 pm
by Green Beret
view tab at top of radiant.

view>filters>

Posted: Tue Dec 28, 2004 9:10 pm
by Ke3pR
and what about the door ? :)

Posted: Tue Dec 28, 2004 10:04 pm
by Green Beret

Code: Select all

doorlock:
$outsidelock nottriggerable
$insidelock nottriggerable
$dooropenerin triggerable
$dooropenerout triggerable
wait 10
$dooropenerin nottriggerable
$dooropenerout nottriggerable
$outsidelock triggerable
$insidelock triggerable
goto doorlock//<----i added this

end
does that look right?
what are u tryin to do?
do u want it to stay locked or no?

or try this

Code: Select all

// Dungeon
// ARCHITECTURE: Ke3pR
// SCRIPTING: Ke3pR
main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" ""
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" ""
setcvar "g_obj_axistext2" ""
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" "none"

level waitTill prespawn//changed this

exec global/door_locked.scr::lock
	$door1 lock//added this
	level.door1_locked = 1//added this
//(change $door1 to match your door targetname)

$dooropenerin nottriggerable
$dooropenerout nottriggerable

//*** Precache Dm Stuff
exec global/DMprecache.scr

level.script = maps/dm/Dungeon.scr

level waittill spawn

end

Posted: Wed Dec 29, 2004 8:52 am
by Ke3pR
I want just that my door is closed.. and if that works i want to make a button to unlock the door;)

but the door just opens when i use this script..

Code: Select all

// Dungeon
// ARCHITECTURE: Ke3pR
// SCRIPTING: Ke3pR
main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" ""
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" ""
setcvar "g_obj_axistext2" ""
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" "none"


level waitTill prespawn

exec global/door_locked.scr::lock 
   $door1 lock//added this 
   level.door1_locked = 1


$dooropenerin nottriggerable 
$dooropenerout nottriggerable

//*** Precache Dm Stuff
exec global/DMprecache.scr

level.script = maps/dm/Dungeon.scr

level waittill spawn

fire2 :

$fire volumedamage 70


end

Posted: Wed Dec 29, 2004 9:15 am
by lizardkid
the easiest, and usually best, way to lock doors is a simple one-line cmd.

lets just use $outsidelock for ease...

Code: Select all

doorLock:

$outsidelock notriggerable
$outsidelockDoor close
$outsidelockDoor waittil movedone
$outsidelockDoor lock

end

assuming the trigger with teh setthread is called outsidelock and the setthread is doorLock. it closes, locks the door and disables the trigger.

also, you need "end"s at the end of each thread,

Code: Select all

fire2 : 

$fire volumedamage 90

end
:wink:

Posted: Wed Dec 29, 2004 9:22 am
by Ke3pR
:shock: It just dont work ! maybe i should post my .map and my scr file ?!

Posted: Wed Dec 29, 2004 9:23 am
by At0miC
Try this one,

Code: Select all

// Dungeon 
// ARCHITECTURE: Ke3pR 
// SCRIPTING: Ke3pR 
main: 

// set scoreboard messages 
setcvar "g_obj_alliedtext1" "" 
setcvar "g_obj_alliedtext2" "" 
setcvar "g_obj_alliedtext3" "" 
setcvar "g_obj_axistext1" "" 
setcvar "g_obj_axistext2" "" 
setcvar "g_obj_axistext3" "" 

setcvar "g_scoreboardpic" "none" 


level waitTill prespawn 

exec global/door_locked.scr::lock 
   $door1 lock//added this 
   level.door1_locked = 1 


$dooropenerin nottriggerable 
$dooropenerout nottriggerable 

//*** Precache Dm Stuff 
exec global/DMprecache.scr 

level.script = maps/dm/Dungeon.scr 

level waittill spawn 

fire2 : 

$fire volumedamage 70 


end 

door: 
	
	if (level.door1_locked == 0)
	{
	$door1 lock
	level.door1_locked = 1
	//$switch playsound (you can have a sound for the lock/unlock)
	$switch anim off // if you use the switch model, this is your buttom
	end
	}
	if (level.door1_locked == 1)
	{
	$door1 unlock
	level.door1_locked = 0
	//$switch playsound (you can have a sound for the lock/unlock)
	$switch anim on // if you use the switch model
	end
	}

end
You need to create a switch buttom with a trigger ($switch)

Posted: Wed Dec 29, 2004 4:33 pm
by Ke3pR
bah .. bah.. bah the ******** door just opens :o could someone give me a example of the script and the map ? :$

Posted: Wed Dec 29, 2004 5:34 pm
by Green Beret
Here is a script from Tom Trude for locked doors with a Key to open them.

Code: Select all

// lockable_test
// ARCHITECTURE: tltrude
// SCRIPTING: tltrude

main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Lockable door"
setcvar "g_obj_alliedtext2" "test map"
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" ""
setcvar "g_obj_axistext2" ""
setcvar "g_obj_axistext3" ""

setcvar "g_scoreboardpic" ""

local.master = spawn ScriptMaster
local.master aliascache yordorsnd sound/mechanics/Mec_ElevatorRun_01.wav soundparms 1.0 0.0 1.0 0.0 160 1600 auto loaded maps "m dm moh obj "
local.master aliascache tomdorsnd sound/mechanics/Mec_ElevatorRun_01.wav soundparms 1.5 0.0 1.0 0.0 160 1600 auto loaded maps "m dm moh obj "

	// call additional stuff for playing this map round based is needed
	if(level.roundbased)
		thread roundbasedthread

	level waittill prespawn

	//*** Precache Dm Stuff
	exec global/DMprecache.scr

	level.script = maps/dm/lockable_test.scr
	exec global/ambient.scr mohdm7
	exec global/door_locked.scr::lock

	$door1 lock
	level.door1_locked = 1
	$door2 lock
	level.door2_locked = 1
	
	level waittill spawn

end

door1_key: 
	
	if (level.door1_locked == 0)
	{
	$door1 lock
	level.door1_locked = 1
	$switch1 playsound alarm_switch
	$switch1 anim off
	iprintln "Door1 locked!"
	end
	}
	if (level.door1_locked == 1)
	{
	$door1 unlock
	level.door1_locked = 0
	$switch1 playsound alarm_switch
	$switch1 anim on
	iprintln "Door1 unlocked!"
	end
	}

end 

door2_key: 
	
	if (level.door2_locked == 0)
	{
	$door2 lock
	level.door2_locked = 1
	$switch2 playsound alarm_switch
	$switch2 anim off
	iprintln "Door2 locked!"
	end
	}
	if (level.door2_locked == 1)
	{
	$door2 unlock
	level.door2_locked = 0
	$switch2 playsound alarm_switch
	$switch2 anim on
	iprintln "Door2 unlocked!"
	end
	}

end 
does this sound right?

Posted: Wed Dec 29, 2004 6:48 pm
by Ke3pR
is this with 2 doors :s ? .. i

Posted: Wed Dec 29, 2004 7:16 pm
by Green Beret
yes,u can comensate for one,just take out the other code.

Posted: Wed Dec 29, 2004 10:09 pm
by lizardkid
AAAAAH! even i'm getting confused with all these scripts flying around.

to make the door LOCKED jsut use this!

Code: Select all

$nameOfDoor lock
it'll set it as locked. no need to go giving keys and all that shiz yet... let the poor man breathe! :lol:

Posted: Wed Dec 29, 2004 10:51 pm
by Green Beret
yea,thats what i put in the first code i posted.but he wants to unlock it too.