Call of Duty 4: Switches Primary Light

From COD Modding & Mapping Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This tutorial explains how to create a switcheable Primary Light as seen in Steamlab

The technique used below is to move a ShadowCaster Brush over the actual Light Entity.

Create a new script called _lights.gsc in /raw/maps/mp/

main()
{
	precacheModel("com_studiolight_hanging_off"); // precache selected model
	thread switch_start();
}

switch_start()
{
	spotlight = getentarray( "switch", "targetname" ); // get triggers

	if ( isdefined(spotlight) )
		for ( i = 0 ; i < spotlight.size ; i++ )
			spotlight[i] thread lights_off();
}

lights_off()
{
	while (1)
	{
		speed = .01; // speed for moving on Z axis
		height = -36; // high in units to move on Z axis

		spotlight_hide = getent("spotlight_hide", "targetname"); // get script_brushmodel(s) in level
		spotlight_model = getent( "spotlight_model", "targetname" ); // get xmodel _on

		self waittill("trigger");
		spotlight_hide movez (height, speed); // Move script_brushmodel(s) on Z axis
		spotlight_model setmodel( "com_studiolight_hanging_off" );       // swap xmodel by _off
		self playsound("light_switch_off");
		spotlight_hide waittill ("movedone");

		self waittill("trigger");
		spotlight_hide movez (height - (height * 2), speed);
		spotlight_model setmodel( "com_studiolight_hanging_on" ); // switch back to _on Xmodel
		self playsound("light_switch_on");
		spotlight_hide waittill ("movedone");
	}
}

In your Map GSC file (/raw/maps/mp/mp_yourmap.gsc) add this after maps\mp\_load::main();

maps\mp\_lights::main();

Add the _off model to your Zone File, in my example:

xmodel,com_studiolight_hanging_off

In Radiant (minus the com_studiolight_hanging_on model):


The trigger is a trigger_usetouch and has targetname = switch ;
The ShadowCaster script_brushmodel is solid and has targetname = spotlight_hide ;
Trigger is connected/link to ShawdowCaster script_brushmodel ;
spotlight model (not on pic) would be a script_model and have targetname = spotlight_model ;

Sounds in the script are custom - you can use "metal_click" also (stock)

The Light Switch will not work if the Shadow option is turned off in GFX settings of the Game!

--Zeroy. 19:40, 19 October 2008 (UTC)