Call of Duty 5: Primary Light Switch

From COD Modding & Mapping Wiki
Jump to navigation Jump to search

This tutorial explains how to create a switcheable Primary Light in COD:WW

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/

	precacheModel("lights_hanging_worklight_off"); // precache selected model
	thread switch_start();

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

	if ( isdefined(spotlight) )
	for ( i = 0 ; i < spotlight.size ; i++ )
		spotlight[i] thread 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( "lights_hanging_worklight_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( "lights_hanging_worklight_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();


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


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!