Page 1 of 1

strategic team mods

Posted: Thu Jul 07, 2005 8:44 pm
by ViPER
I got the idea for these from when we would camp in the winery in southern france and fight over it - when theres just a few of us. When i saw the obj_team2 rocket launch tdm mod by Ivan the Terrible and JV_map I realized i could adapt the script for this. I also changed the scoreboard so it will post the winning team status.

Everybody liked them so much they asked me to do more. I call them strategic team mods. Here are the scripts for -

mohdm1

Code: Select all

//thanks to IVAN the terrible and JV_map for the script from v2 rocket launch mod

main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Hold the winery" 
setcvar "g_obj_alliedtext2" "By <TWL>ViPER"
setcvar "g_obj_alliedtext3" "Allies: 0"

setcvar "g_obj_axistext1" "Axis: 0"
setcvar "g_obj_axistext2" "winning team"
setcvar "g_obj_axistext3" "no score"

setcvar "g_scoreboardpic" "mohdm1"

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

	local.master = spawn ScriptMaster 
	local.master aliascache point_scored sound/items/RadioBomb.wav soundparms 2.0 0.0 1.0 0.0 10000 10000 item loaded maps "dm obj"
	local.master aliascache final_countdown sound/items/final_countdown.wav soundparms 1.3 0.0 1.0 0.0 10000 10000 local loaded maps "dm moh obj "

	level waittill prespawn
	
	//*** Precache Dm Stuff
	exec global/DMprecache.scr
	
	level.script = maps/dm/mohdm1.scr
	exec global/ambient.scr mohdm1
		
	thread global/door_locked.scr::lock
	
	//Add speaker
	spawn script_models "model" "fx/dummy.tik" "targetname" "speaker"
	$speaker.origin = ( 0 0 0)
	$speaker notsolid

	level waittill spawn
			
	thread dinnerroom
	thread scores
	thread messages
		
end

//-----------------------------------------------------------------------------

dinnerroom:	
	// defines 
	group.TEAM[allies] = 0 
	group.TEAM[axis] = 1 
	group.TIME_FOR_POINT = 15.0
	group.time_in_room[group.TEAM[allies]] = 0.0 
	group.time_in_room[group.TEAM[axis]] = 0.0 
	group.POINTS[allies] = 0 
	group.POINTS[axis] = 0
		
	// make trigger 
	local.t = spawn TriggerAll 
	// find out the correct size ;) 
	local.t.origin = ( 950 30 270 )
	local.t setsize ( 1 -1 -1 ) ( 550 385 250 )	
	local.t wait 0.1 //0.05 // trigger every frame 
	local.t.lasttriggertime = 0.0	
	local.t setthread dinnerroom_trigger // launch this thread upon triggering 
	
	while(1) 
	{	
		// check if someone currently is in the	trigger
		// small time tolerance	because	trigger	events sometimes get lost :/ 
		if(level.time -	local.t.lasttriggertime	<= 0.2) //0.20
		{ 
			// add to this teams counter 
			local.team = group.TEAM[local.t.lasttriggerteam] 
			local.otherteam = !local.team	
			group.time_in_room[local.team]+= 0.05	
			// reset other team's counter	
			group.time_in_room[local.otherteam] = 0.0	
		
			if(group.time_in_room[local.team] >= group.TIME_FOR_POINT) 
			{	
				// add a point 
				group.POINTS[local.t.lasttriggerteam]++
				//iprintln "Allies destroyed: " group.POINTS[allies] "   " "Axis launched: " group.POINTS[axis]
					if(local.team == 0)
					{
						thread alliedpoint
					}
					else
					{
						thread axispoint
					}
				group.time_in_room[local.team] = 0.0
			}
		} 
		else 
		{ 
			// reset counters for both teams 
			group.time_in_room[group.TEAM[allies]] = 0.0
			group.time_in_room[group.TEAM[axis]] = 0.0
		} 
		waitframe
	}	
end 

dinnerroom_trigger:	
  // self is the trigger 
  self.lasttriggerteam = parm.other.dmteam 
  self.lasttriggertime = level.time	
end

//-----------------------------------------------------------------------------

alliedpoint:
	iprintlnbold "Allies occupy the winery and"
	iprintlnbold "       downed a jug of Vino"
	setcvar "g_obj_alliedtext3" ("Allies: " + group.POINTS[allies])
	huddraw_string 202 ("Allied: " + group.POINTS[allies])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound dfr_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

axispoint:
	iprintlnbold "Axis occupy the winery and"
	iprintlnbold "     downed a jug of Vino"
	setcvar "g_obj_axistext1" ("Axis: " + group.POINTS[axis])
	huddraw_string 204 ("Axis: " + group.POINTS[axis])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound den_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

checkwinner:
	if(group.POINTS[allies] > group.POINTS[axis])
		{
		setcvar "g_obj_axistext3" ("is ALLIES")
		}
	else if(group.POINTS[axis] > group.POINTS[allies])
		{
		setcvar "g_obj_axistext3" ("is AXIS")
		}
	else
		{
		setcvar "g_obj_axistext3" ("it's a TIE")
		}
end

//-----------------------------------------------------------------------------

scores:

	while(1){

	huddraw_virtualsize 200 1
	huddraw_align  200 right top
	huddraw_font   200 "verdana-12"
	huddraw_rect   200 -100 50 200 14
	huddraw_color  200 0 1 0
	huddraw_alpha  200 1.0
	huddraw_string 200 "Vino Drink Mod"

	huddraw_virtualsize 201 1
	huddraw_align  201 right top
	huddraw_font   201 "verdana-12"
	huddraw_rect   201 -75 60 200 14
	huddraw_color  201 0 1 0
	huddraw_alpha  201 1.0
	huddraw_string 201 "By ViPER"
	
	huddraw_virtualsize 202 1
	huddraw_align  202 right top
	huddraw_font   202 "verdana-12"
	huddraw_rect   202 -80 80 100 14
	huddraw_color  202 0 1 1
	huddraw_alpha  202 1.0
	huddraw_string 202 ("Wine Jugs: " + group.POINTS[allies])

	huddraw_virtualsize 203 1
	huddraw_shader 203 ("textures/hud/allies")
	huddraw_align  203 right top
	huddraw_rect   203 -100 80 14 14
	huddraw_alpha  203 1.0

	huddraw_virtualsize 204 1
	huddraw_align  204 right top
	huddraw_font   204 "verdana-12"
	huddraw_rect   204 -80 95 100 14
	huddraw_color  204 1 0 0
	huddraw_alpha  204 1.0
	huddraw_string 204 ("Wine Jugs: " + group.POINTS[axis])

	huddraw_virtualsize 205 1
	huddraw_shader 205 ("textures/hud/axis")
	huddraw_align  205 right top
	huddraw_rect   205 -100 95 14 14
	huddraw_alpha  205 1.0

	wait 5

	}

end

//-----------------------------------------------------------------------------

messages:
	wait 20
	iprintln "CAPTURE AND HOLD THE north/east WINERY!!"
	wait 80
	iprintln "CAPTURE AND HOLD THE north/east WINERY!!"
	wait 140
	iprintln "CAPTURE AND HOLD THE north/east WINERY!!"
	wait 120
	goto messages
end

//-----------------------------------------------------------------------------

roundbasedthread:

	// Can specify different scoreboard messages for round based games here.

	level waitTill prespawn

	level waittill spawn

	// set the parameters for this round based match
	level.dmrespawning = 0 // 1 or 0
	level.dmroundlimit = 5 // round time limit in minutes
	level.clockside = kills // set to axis, allies, kills, or draw

	level waittill roundstart

end
mohdm4

Code: Select all

//thanks to IVAN the terrible and JV_map for the script from v2 rocket launch mod
// THE BRIDGE
// ARCHITECTURE: POWZER


main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Hold the Hotel"
setcvar "g_obj_alliedtext2" "By <TWL>ViPER"
setcvar "g_obj_alliedtext3" "Allies: 0"

setcvar "g_obj_axistext1" "Axis: 0"
setcvar "g_obj_axistext2" "winning team"
setcvar "g_obj_axistext3" "no score"


setcvar "g_scoreboardpic" "mohdm4"

	// 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

	exec global/door_locked.scr::lock
	level.script = maps/dm/mohdm4.scr
	exec global/ambient.scr mohdm4
	
	thread global/minefield.scr::minefield_setup

	thread boxes

	//Add speaker
	spawn script_models "model" "fx/dummy.tik" "targetname" "speaker"
	$speaker.origin = ( 0 0 0)
	$speaker notsolid

	level waittill spawn

	$world farclipoverride -1

	thread dinnerroom
	thread scores
	thread messages
	
end

//-----------------------------------------------------------------------------

dinnerroom:	
	// defines 
	group.TEAM[allies] = 0 
	group.TEAM[axis] = 1 
	group.TIME_FOR_POINT = 15.0
	group.time_in_room[group.TEAM[allies]] = 0.0 
	group.time_in_room[group.TEAM[axis]] = 0.0 
	group.POINTS[allies] = 0 
	group.POINTS[axis] = 0
		
	// make trigger 
	local.t = spawn TriggerAll 
	// find out the correct size ;) 
	local.t.origin = ( -338 904 780 )
	local.t setsize ( -800 -1 -1 ) ( 1 600 250 )	
	local.t wait 0.1 //0.05 // trigger every frame 
	local.t.lasttriggertime = 0.0	
	local.t setthread dinnerroom_trigger // launch this thread upon triggering 
	
	while(1) 
	{	
		// check if someone currently is in the	trigger
		// small time tolerance	because	trigger	events sometimes get lost :/ 
		if(level.time -	local.t.lasttriggertime	<= 0.2) //0.20
		{ 
			// add to this teams counter 
			local.team = group.TEAM[local.t.lasttriggerteam] 
			local.otherteam = !local.team	
			group.time_in_room[local.team]+= 0.05	
			// reset other team's counter	
			group.time_in_room[local.otherteam] = 0.0	
		
			if(group.time_in_room[local.team] >= group.TIME_FOR_POINT) 
			{	
				// add a point 
				group.POINTS[local.t.lasttriggerteam]++
				//iprintln "Allies destroyed: " group.POINTS[allies] "   " "Axis launched: " group.POINTS[axis]
					if(local.team == 0)
					{
						thread alliedpoint
					}
					else
					{
						thread axispoint
					}
				group.time_in_room[local.team] = 0.0
			}
		} 
		else 
		{ 
			// reset counters for both teams 
			group.time_in_room[group.TEAM[allies]] = 0.0
			group.time_in_room[group.TEAM[axis]] = 0.0
		} 
		waitframe
	}	
end 

dinnerroom_trigger:	
  // self is the trigger 
  self.lasttriggerteam = parm.other.dmteam 
  self.lasttriggertime = level.time	
end

//-----------------------------------------------------------------------------

alliedpoint:
	iprintlnbold "Allies Occupy the Hotel top floor"
	setcvar "g_obj_alliedtext3" ("Allies: " + group.POINTS[allies])
	huddraw_string 202 ("ALLIED: " + group.POINTS[allies])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound dfr_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

axispoint:
	iprintlnbold "Axis Occupy the Hotel top floor"
	setcvar "g_obj_axistext1" ("Axis: " + group.POINTS[axis])
	huddraw_string 204 ("AXIS: " + group.POINTS[axis])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound den_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

checkwinner:
	if(group.POINTS[allies] > group.POINTS[axis])
		{
		setcvar "g_obj_axistext3" ("is ALLIES")
		}
	else if(group.POINTS[axis] > group.POINTS[allies])
		{
		setcvar "g_obj_axistext3" ("is AXIS")
		}
	else
		{
		setcvar "g_obj_axistext3" ("it's a TIE")
		}
end

//-----------------------------------------------------------------------------

scores:

	while(1){

	huddraw_virtualsize 200 1
	huddraw_align  200 right top
	huddraw_font   200 "verdana-12"
	huddraw_rect   200 -100 50 200 14
	huddraw_color  200 0 1 0
	huddraw_alpha  200 1.0
	huddraw_string 200 "Hold the Hotel"

	huddraw_virtualsize 201 1
	huddraw_align  201 right top
	huddraw_font   201 "verdana-12"
	huddraw_rect   201 -75 60 200 14
	huddraw_color  201 0 1 0
	huddraw_alpha  201 1.0
	huddraw_string 201 "By ViPER"
	
	huddraw_virtualsize 202 1
	huddraw_align  202 right top
	huddraw_font   202 "verdana-12"
	huddraw_rect   202 -80 80 100 14
	huddraw_color  202 0 1 1
	huddraw_alpha  202 1.0
	huddraw_string 202 ("points: " + group.POINTS[allies])

	huddraw_virtualsize 203 1
	huddraw_shader 203 ("textures/hud/allies")
	huddraw_align  203 right top
	huddraw_rect   203 -100 80 14 14
	huddraw_alpha  203 1.0

	huddraw_virtualsize 204 1
	huddraw_align  204 right top
	huddraw_font   204 "verdana-12"
	huddraw_rect   204 -80 95 100 14
	huddraw_color  204 1 0 0
	huddraw_alpha  204 1.0
	huddraw_string 204 ("points: " + group.POINTS[axis])

	huddraw_virtualsize 205 1
	huddraw_shader 205 ("textures/hud/axis")
	huddraw_align  205 right top
	huddraw_rect   205 -100 95 14 14
	huddraw_alpha  205 1.0

	wait 5

	}

end

//-----------------------------------------------------------------------------

messages:
	wait 20
	iprintln "CAPTURE AND HOLD THE HOTEL TOP FLOOR!!"
	wait 80
	iprintln "CAPTURE AND HOLD THE HOTEL TOP FLOOR!!"
	wait 140
	iprintln "CAPTURE AND HOLD THE HOTEL TOP FLOOR!!"
	wait 120
	goto messages
end

//-----------------------------------------------------------------------------

roundbasedthread:

	// Can specify different scoreboard messages for round based games here.

	level waitTill prespawn

	level waittill spawn

	// set the parameters for this round based match
	level.dmrespawning = 0 // 1 or 0
	level.dmroundlimit = 5 // round time limit in minutes
	level.clockside = kills // set to axis, allies, kills, or draw

	level waittill roundstart

end
mohdm7

Code: Select all

//thanks to IVAN the terrible and JV_map for the script from v2 rocket launch mod
// NORTH AFRIKA
// ARCHITECTURE: NED, POWZER


main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Hold N/W House"
setcvar "g_obj_alliedtext2" "By <TWL>ViPER"
setcvar "g_obj_alliedtext3" "Allies: 0"

setcvar "g_obj_axistext1" "Axis: 0"
setcvar "g_obj_axistext2" "winning team"
setcvar "g_obj_axistext3" "no score"

setcvar "g_scoreboardpic" "mohdm7"

	// 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
		
		exec global/door_locked.scr::lock
		level.script = maps/dm/mohdm7.scr
		exec global/ambient.scr mohdm7

	//Add speaker
	spawn script_models "model" "fx/dummy.tik" "targetname" "speaker"
	$speaker.origin = ( 0 0 0)
	$speaker notsolid

	level waittill spawn
	$world farclipoverride -1

	thread dinnerroom
	thread scores
	thread messages
	
end

//-----------------------------------------------------------------------------

dinnerroom:	
	// defines 
	group.TEAM[allies] = 0 
	group.TEAM[axis] = 1 
	group.TIME_FOR_POINT = 15.0
	group.time_in_room[group.TEAM[allies]] = 0.0 
	group.time_in_room[group.TEAM[axis]] = 0.0 
	group.POINTS[allies] = 0 
	group.POINTS[axis] = 0
		
	// make trigger 
	local.t = spawn TriggerAll 
	// find out the correct size ;) 
	local.t.origin = ( 600 1840 150 )
	local.t setsize ( -1350 -550 -1 ) ( 120 120 100 )	
	local.t wait 0.1 //0.05 // trigger every frame 
	local.t.lasttriggertime = 0.0	
	local.t setthread dinnerroom_trigger // launch this thread upon triggering 
	
	while(1) 
	{	
		// check if someone currently is in the	trigger
		// small time tolerance	because	trigger	events sometimes get lost :/ 
		if(level.time -	local.t.lasttriggertime	<= 0.2) //0.20
		{ 
			// add to this teams counter 
			local.team = group.TEAM[local.t.lasttriggerteam] 
			local.otherteam = !local.team	
			group.time_in_room[local.team]+= 0.05	
			// reset other team's counter	
			group.time_in_room[local.otherteam] = 0.0	
		
			if(group.time_in_room[local.team] >= group.TIME_FOR_POINT) 
			{	
				// add a point 
				group.POINTS[local.t.lasttriggerteam]++
				//iprintln "Allies destroyed: " group.POINTS[allies] "   " "Axis launched: " group.POINTS[axis]
					if(local.team == 0)
					{
						thread alliedpoint
					}
					else
					{
						thread axispoint
					}
				group.time_in_room[local.team] = 0.0
			}
		} 
		else 
		{ 
			// reset counters for both teams 
			group.time_in_room[group.TEAM[allies]] = 0.0
			group.time_in_room[group.TEAM[axis]] = 0.0
		} 
		waitframe
	}	
end 

dinnerroom_trigger:	
  // self is the trigger 
  self.lasttriggerteam = parm.other.dmteam 
  self.lasttriggertime = level.time	
end

//-----------------------------------------------------------------------------

alliedpoint:
	iprintlnbold "Allies Occupy the north/west HOUSE top floor"
	setcvar "g_obj_alliedtext3" ("Allies: " + group.POINTS[allies])
	huddraw_string 202 ("ALLIED: " + group.POINTS[allies])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound dfr_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

axispoint:
	iprintlnbold "Axis Occupy the north/west HOUSE top floor"
	setcvar "g_obj_axistext1" ("Axis: " + group.POINTS[axis])
	huddraw_string 204 ("AXIS: " + group.POINTS[axis])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound den_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

checkwinner:
	if(group.POINTS[allies] > group.POINTS[axis])
		{
		setcvar "g_obj_axistext3" ("is ALLIES")
		}
	else if(group.POINTS[axis] > group.POINTS[allies])
		{
		setcvar "g_obj_axistext3" ("is AXIS")
		}
	else
		{
		setcvar "g_obj_axistext3" ("it's a TIE")
		}
end

//-----------------------------------------------------------------------------

scores:

	while(1){

	huddraw_virtualsize 200 1
	huddraw_align  200 right top
	huddraw_font   200 "verdana-12"
	huddraw_rect   200 -100 50 200 14
	huddraw_color  200 0 1 0
	huddraw_alpha  200 1.0
	huddraw_string 200 "Hold n/w HOUSE"

	huddraw_virtualsize 201 1
	huddraw_align  201 right top
	huddraw_font   201 "verdana-12"
	huddraw_rect   201 -75 60 200 14
	huddraw_color  201 0 1 0
	huddraw_alpha  201 1.0
	huddraw_string 201 "By ViPER"
	
	huddraw_virtualsize 202 1
	huddraw_align  202 right top
	huddraw_font   202 "verdana-12"
	huddraw_rect   202 -80 80 100 14
	huddraw_color  202 0 1 1
	huddraw_alpha  202 1.0
	huddraw_string 202 ("points: " + group.POINTS[allies])

	huddraw_virtualsize 203 1
	huddraw_shader 203 ("textures/hud/allies")
	huddraw_align  203 right top
	huddraw_rect   203 -100 80 14 14
	huddraw_alpha  203 1.0

	huddraw_virtualsize 204 1
	huddraw_align  204 right top
	huddraw_font   204 "verdana-12"
	huddraw_rect   204 -80 95 100 14
	huddraw_color  204 1 0 0
	huddraw_alpha  204 1.0
	huddraw_string 204 ("points: " + group.POINTS[axis])

	huddraw_virtualsize 205 1
	huddraw_shader 205 ("textures/hud/axis")
	huddraw_align  205 right top
	huddraw_rect   205 -100 95 14 14
	huddraw_alpha  205 1.0

	wait 5

	}

end

//-----------------------------------------------------------------------------

messages:
	wait 20
	iprintln "CAPTURE AND HOLD THE north/west HOUSE TOP FLOOR!!"
	wait 80
	iprintln "CAPTURE AND HOLD THE north/west HOUSE TOP FLOOR!!"
	wait 140
	iprintln "CAPTURE AND HOLD THE north/west HOUSE TOP FLOOR!!"
	wait 120
	goto messages
end

//-----------------------------------------------------------------------------

roundbasedthread:

	// Can specify different scoreboard messages for round based games here.

	level waitTill prespawn

	level waittill spawn

		// set the parameters for this round based match
		level.dmrespawning = 0 // 1 or 0
		level.dmroundlimit = 5 // round time limit in minutes
		level.clockside = kills // set to axis, allies, kills, or draw

	level waittill roundstart

end
mp_stadt_dm

Code: Select all

//thanks to IVAN the terrible and JV_map for the script from v2 rocket launch mod
main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "Hold North House"
setcvar "g_obj_alliedtext2" "By <TWL>ViPER"
setcvar "g_obj_alliedtext3" "Allies: 0"

setcvar "g_obj_axistext1" "Axis: 0"
setcvar "g_obj_axistext2" "winning team"
setcvar "g_obj_axistext3" "no score"

setcvar "g_scoreboardpic" "mp_Stadt_dm"

	// 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/MP_Stadt_DM.scr
	level.music = mp_stadt_dm
	
	exec global/ambient.scr 
       
        exec global/door_locked.scr::lock
	
	$world farplane 5250
	$world farplane_bias -100         
	$world farplane_color (.333 .333 .329)

	//Add speaker
	spawn script_models "model" "fx/dummy.tik" "targetname" "speaker"
	$speaker.origin = ( 0 0 0)
	$speaker notsolid

	level waittill spawn

	waitframe
	$world farplaneclipcolor "0.52 0.64 0.80"

	thread dinnerroom
	thread scores
	thread messages
	
end
//-----------------------------------------------------------------------------

roundbasedthread:

	// Can specify different scoreboard messages for round based games here.
	
	level waitTill prespawn

	// set the parameters for this round based match
	level.dmrespawning = 0 // 1 or 0
//	level.dmroundlimit = 5 // round time limit in minutes
	level.clockside = kills // set to axis, allies, kills, or draw

	level waittill roundstart

end

//-----------------------------------------------------------------------------

dinnerroom:	
	// defines 
	group.TEAM[allies] = 0 
	group.TEAM[axis] = 1 
	group.TIME_FOR_POINT = 15.0
	group.time_in_room[group.TEAM[allies]] = 0.0 
	group.time_in_room[group.TEAM[axis]] = 0.0 
	group.POINTS[allies] = 0 
	group.POINTS[axis] = 0
		
	// make trigger 
	local.t = spawn TriggerAll 
	// find out the correct size ;) 
	local.t.origin = ( -50 1570 350 )
	local.t setsize ( -300 -400 -1 ) ( 300 400 250 )	
	local.t wait 0.1 //0.05 // trigger every frame 
	local.t.lasttriggertime = 0.0	
	local.t setthread dinnerroom_trigger // launch this thread upon triggering 
	
	while(1) 
	{	
		// check if someone currently is in the	trigger
		// small time tolerance	because	trigger	events sometimes get lost :/ 
		if(level.time -	local.t.lasttriggertime	<= 0.2) //0.20
		{ 
			// add to this teams counter 
			local.team = group.TEAM[local.t.lasttriggerteam] 
			local.otherteam = !local.team	
			group.time_in_room[local.team]+= 0.05	
			// reset other team's counter	
			group.time_in_room[local.otherteam] = 0.0	
		
			if(group.time_in_room[local.team] >= group.TIME_FOR_POINT) 
			{	
				// add a point 
				group.POINTS[local.t.lasttriggerteam]++
				//iprintln "Allies destroyed: " group.POINTS[allies] "   " "Axis launched: " group.POINTS[axis]
					if(local.team == 0)
					{
						thread alliedpoint
					}
					else
					{
						thread axispoint
					}
				group.time_in_room[local.team] = 0.0
			}
		} 
		else 
		{ 
			// reset counters for both teams 
			group.time_in_room[group.TEAM[allies]] = 0.0
			group.time_in_room[group.TEAM[axis]] = 0.0
		} 
		waitframe
	}	
end 

dinnerroom_trigger:	
  // self is the trigger 
  self.lasttriggerteam = parm.other.dmteam 
  self.lasttriggertime = level.time	
end

//-----------------------------------------------------------------------------

alliedpoint:
	iprintlnbold "Allies Occupy the North House top floor"
	setcvar "g_obj_alliedtext3" ("Allies: " + group.POINTS[allies])
	huddraw_string 202 ("ALLIED: " + group.POINTS[allies])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound dfr_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

axispoint:
	iprintlnbold "Axis Occupy the North House top floor"
	setcvar "g_obj_axistext1" ("Axis: " + group.POINTS[axis])
	huddraw_string 204 ("AXIS: " + group.POINTS[axis])
	$speaker playsound point_scored "levelwide"
	wait 1
	$speaker playsound den_victory_v01 "levelwide"
	thread checkwinner
end

//-----------------------------------------------------------------------------

checkwinner:
	if(group.POINTS[allies] > group.POINTS[axis])
		{
		setcvar "g_obj_axistext3" ("is ALLIES")
		}
	else if(group.POINTS[axis] > group.POINTS[allies])
		{
		setcvar "g_obj_axistext3" ("is AXIS")
		}
	else
		{
		setcvar "g_obj_axistext3" ("it's a TIE")
		}
end

//-----------------------------------------------------------------------------

scores:

	while(1){

	huddraw_virtualsize 200 1
	huddraw_align  200 right top
	huddraw_font   200 "verdana-12"
	huddraw_rect   200 -100 50 200 14
	huddraw_color  200 0 1 0
	huddraw_alpha  200 1.0
	huddraw_string 200 "Hold North House"

	huddraw_virtualsize 201 1
	huddraw_align  201 right top
	huddraw_font   201 "verdana-12"
	huddraw_rect   201 -75 60 200 14
	huddraw_color  201 0 1 0
	huddraw_alpha  201 1.0
	huddraw_string 201 "By ViPER"
	
	huddraw_virtualsize 202 1
	huddraw_align  202 right top
	huddraw_font   202 "verdana-12"
	huddraw_rect   202 -80 80 100 14
	huddraw_color  202 0 1 1
	huddraw_alpha  202 1.0
	huddraw_string 202 ("points: " + group.POINTS[allies])

	huddraw_virtualsize 203 1
	huddraw_shader 203 ("textures/hud/allies")
	huddraw_align  203 right top
	huddraw_rect   203 -100 80 14 14
	huddraw_alpha  203 1.0

	huddraw_virtualsize 204 1
	huddraw_align  204 right top
	huddraw_font   204 "verdana-12"
	huddraw_rect   204 -80 95 100 14
	huddraw_color  204 1 0 0
	huddraw_alpha  204 1.0
	huddraw_string 204 ("points: " + group.POINTS[axis])

	huddraw_virtualsize 205 1
	huddraw_shader 205 ("textures/hud/axis")
	huddraw_align  205 right top
	huddraw_rect   205 -100 95 14 14
	huddraw_alpha  205 1.0

	wait 5

	}

end

//-----------------------------------------------------------------------------

messages:
	wait 20
	iprintln "CAPTURE AND HOLD THE NORTH HOUSE TOP FLOOR!!"
	wait 80
	iprintln "CAPTURE AND HOLD THE NORTH HOUSE TOP FLOOR!!"
	wait 140
	iprintln "CAPTURE AND HOLD THE NORTH HOUSE TOP FLOOR!!"
	wait 120
	goto messages
end

Posted: Thu Jul 07, 2005 8:49 pm
by Rookie One.pl
Hmm, this is much like the king of the hill gameplay.

Posted: Thu Jul 07, 2005 9:48 pm
by Mj
Glancing over and thinking about it, it looks pretty awesome :)

Posted: Fri Jul 22, 2005 3:16 am
by JoeyC
nice