mohaa-spearhead-sdk/tutorials/TOW_tutorial.html

1255 lines
57 KiB
HTML
Raw Normal View History

2003-02-06 00:00:00 +00:00
<html>
<head>
<title>MOHAA - SDK</title>
</head>
<body>
<Font size=+1><u><b>Tug of War Tutorial</b></u></Font>
<br>
<br>
THE MAP FILE
<BR>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This tutorial shows you how to set up your map for TOW.
</p>
<br>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;First you need a multiplayer map built so you can place in the TOW objectives. Once you have a map ready and your spawn points in lets begin placing the TOW objective. Your .map and .scr file names must be the same and placed in the <20>/maps/obj/<2F> folder. The filename must be in this form in order for the game to read them as a TOW map: <20>MP_filename_TOW.map<61>. filename can be anything you like, but the MP_ at the beginning and the _TOW at the end are necessary.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You can place up to 5 objectives for your TOW map. For this example we are going to place 5 objectives in the level, one that destroys the axis spawn point, one that destroys the allied spawn point and three more that each side will have to fight over controlling. Objective 1 will be the allied spawn point and Objective 5 will be the axis spawn point. Objectives 2, 3 and 4 are what we are going to set up first. In our <20>MP_tutorial_TOW.map<61> we have three light switches that indicated who has control of the objective(Red light = axis, Green light = allies).
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In your map file, create a brush that will be your light switch box. Now create another brush surrounding the switch. This will be your trigger. With the brush selected, right click on the grid and select <20>trigger<65> -> <20>use<73>. Press the <20>n<EFBFBD> key to bring up the entities window and give your trigger a targetname by enter the below values into the Key and Value fields.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key: setthread
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value: switch1
<br>
</p>
<p align = center>
<b><font size = -1>
Diagram 1-1 (Side View, Entity Window and 3D window)
</font></b>
<br>
<img src="TOW_map/1-1.jpg">
</P>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;We have to create a TOW objective and link it to our trigger. Right click on the grid and select <20>func<6E> -> <20>TOWObjective<76>. Press <20>n<EFBFBD> to bring up the <20>Entity<74> window and enter the following TOW values into the Key and Value fields.
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key: $targetname
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value: switchObj1
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key: AlliesObjNum
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value: 2
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key: AxisObjNum
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value: 4
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key: ControlledBy
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value: 1
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Key: ObjectiveNbr
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value: 2
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select the trigger that you created while the TOWObjective is still selected and press (ctrl + k) to link the two together. Now build three more Objectives following the same steps and using these values for trigger and TOWObjectives:
</p>
<pre>
<b>Trigger</b>
Setthread switch2
<b>TOWobjective</b>
$targetname switchObj2
AlliesObjNum 3
AxisObjNum 3
ControlledBy 2
ObjectiveNbr 3
<b>Trigger</b>
Setthread switch3
<b>TOWobjective</b>
$targetname switchObj3
AlliesObjNum 4
AxisObjNum 2
ControlledBy 0
ObjectiveNbr 4
</pre>
<p align = center>
<b><font size = -1>
Diagram 1-2 (Top view)
</font></b>
<br>
<img src="TOW_map/1-2.jpg">
</P>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Now we have to add the last two TOW Objectives, the allied spawn and the axis spawn. First we will create a bomb and then we will set the TOW objective. Right click on the grid and select <20>script<70> -> <20>object<63>. Enter the following lines into the key and value:
</p>
<pre>
<b>Key</b> <b>Value</b>
$explosion_fx fx/fx_flak88_explosion.tik
$explosion_sound explode_aagun
$targetname axis_bomb
$trigger_name allie_bomb_trigger
model items//pulse_explosive.tik
</pre>
<p>
This will create your bomb. Around it create a trigger with the following values:
</p>
<pre>
<b>Key</b> <b>Value</b>
$targetname allie_bomb_trigger
</pre>
<p>
Now create a TOWObject and give it the following values:
</p>
<pre>
<b>Key</b> <b>Value</b>
$targetname Obj_alliespawnpoint
AlliesObjNum 1
AxisObjNum 5
ControlledBy 1
ObjectiveNbr 1
</pre>
<p>
Link the TOWobjective to the trigger. Now you have to set up the axis spawn point. Follow the same steps above but change all the targetnames and trigger_names to the opposite team. (allie = axis)
</p>
<pre>
<b>Key</b> <b>Value</b>
$explosion_fx fx/fx_flak88_explosion.tik
$explosion_sound explode_aagun
$targetname allie_bomb
$trigger_name axis_bomb_trigger
model items//pulse_explosive.tik
</pre>
<p>
This will create your bomb. Around it create a trigger with the following values:
<p>
<pre>
<b>Key</b> <b>Value</b>
$targetname axis_bomb_trigger
</pre>
<p>
Now create a TOWObject and give it the following values:
</p>
<pre>
<b>Key</b> <b>Value</b>
$targetname Obj_axisspawnpoint
AlliesObjNum 5
AxisObjNum 1
ControlledBy 0
ObjectiveNbr 5
</pre>
<p align = center>
<b><font size = -1>
Diagram 1-3 (Top View and 3D View)
</font></b>
<br>
<img src="TOW_map/1-3.jpg">
</P>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Your TOW map will now work if you add the script provided to it. If you would like to add lights so you know who has control of the objective, then continue reading.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lets create the green light, that will be on when the Allies control an objective. First we will create the light bulb and then we will make the corona.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a brush and then press <20>n<EFBFBD> to open your <20>Entity<74> window. Select from the <20>Entity<74> window <20>addon_static_lamp_lightbulb-caged-green<65> and rotate it to face the direction you want.
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next we add the corona. Create a brush and press <20>n<EFBFBD> to open your <20>Entity<74> window. Select from the <20>Entity<74> window <20>addon_fx_corona_green-bright<68> and rotate it to face the direction you want. Give it a $targetname obj2_light_allie. The number after obj should correspond with the objective number you are working on(2, 3 or 4). Place the corona on top of your lightbulb and you are all set to go. Top make the red light bulb follow the same directions above but select the <20>red<65> objects instead of <20>green<65>. Also change the $targetname to obj2_light_axis. Make three sets of red and green lights and place them over their corresponding objective. Now lets move on to the script.
<br>
</p>
<br>
THE SCRIPT FILE
<br>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To get an understanding on how the scripting for TOW is read the Tug of War doc. Here we will just go over the things not covered in that doc.
</p>
<pre>
<i><font color=blue>
main:
level.script="maps/obj/MP_Tutorial_TOW.scr"
exec global/tow_dm.scr
level.gametype = int( getcvar( g_gametype ) )
//gametype 5 = Tug of War
if( level.gametype == 5 )
{
setcvar "g_obj_alliedtext1" "Protect Spawn Point"
setcvar "g_obj_alliedtext2" "Control Switch 1"
setcvar "g_obj_alliedtext3" "Control Switch 2"
setcvar "g_obj_alliedtext4" "Control Switch 3"
setcvar "g_obj_alliedtext5" "Detonate Axis Spawn Point"
setcvar "g_obj_axistext1" "Protect Spawn Point"
setcvar "g_obj_axistext2" "Control Switch 1"
setcvar "g_obj_axistext3" "Control Switch 2"
setcvar "g_obj_axistext4" "Control Switch 3"
setcvar "g_obj_axistext5" "Destroy Allied Spawn Point"
}
else
{
//Not a TOW game remove the bombs
$allie_bomb remove
$axis_bomb remove
// set scoreboard messages
setcvar "g_obj_alliedtext1" "Tow Tutorial"
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" ""
setcvar "g_obj_axistext2" ""
setcvar "g_obj_axistext3" ""
}
//////////////////////////
level waittill prespawn
//////////////////////////
//////////////////////////
level waittill spawn
//////////////////////////
level.bRoundStarted = 0
// level.bswitch1SwitchUp = 1
// level.bswitch2SwitchUp = 1
// level.bswitch3SwitchUp = 1
level.axisFire = 1
// set the parameters for this round based match
level.dmrespawning = 1 // 1 or 0
level.dmroundlimit = 15 // round time limit in minutes
level.clockside = draw // set to axis, allies, kills, or draw
level.numObjectives = 5 // Number of objectives needed to win
level.numAxisObjectives = 0 // Number of objectives taken by the axis
level.numAlliedObjectives = 0 // Number of objectives taken by the allies
//////////////////////////
// level waittill roundstart
//////////////////////////
//If this is a tug of war game then we init all the TOW stuff
if( level.gametype == 5 )
{
//init the objectives
thread init_objectives
thread init_spawner_bombs
thread init_switch_lights
//Setup the starting team objectives
thread set_objectives
level.bRoundStarted = 1
}
end
//----------------------------------------------------------
//Destroy the allied spawner here
//----------------------------------------------------------
alliesspawnpoint:
iprintln "The Allied Spawn Point has been Destroyed!"
//Take over the objective
$Obj_alliespawnpoint TakeOver 0
level.numAxisObjectives++
level.numAlliedObjectives--
iprintln "The Allied Team Can No Longer Respawn!"
waitthread Check_End_Match
end
//----------------------------------------------------------
//Destroy the axis spawner here
//----------------------------------------------------------
axisspawnpoint:
iprintln "The Axis Spawn Point has been Destroyed!"
$Obj_axisspawnpoint TakeOver 1
level.numAlliedObjectives++
level.numAxisObjectives--
iprintln "The Axis Team Can No Longer Respawn!"
waitthread Check_End_Match
end
//----------------------------------------------------------
//control switch 1 green/red
//----------------------------------------------------------
switch1:
if( level.bRoundStarted == 1 )
{
if( parm.other.dmteam == axis )
{
if( $Obj_switch1.ControlledBy != 0 )
{
$Obj_switch1 TakeOver 0
level.numAxisObjectives++
level.numAlliedObjectives--
$obj2_light_allie hide //Turns the allied light off
$obj2_light_axis show //Turns the axis light on
iprintln "The Axis Control Switch 1!"
waitthread Check_End_Match
}
}
else if( parm.other.dmteam == allies )
{
if( $Obj_switch1.ControlledBy != 1 )
{
$Obj_switch1 TakeOver 1
level.numAlliedObjectives++
level.numAxisObjectives--
$obj2_light_axis hide //Turns the Axis light off
$obj2_light_allie show //Turns the allied light on
iprintln "The Allies Control Switch 1!"
waitthread Check_End_Match
}
}
//Update team current objectives
thread set_objectives
}
end
//----------------------------------------------------------
//control switch 2 green/red
//----------------------------------------------------------
switch2:
if( level.bRoundStarted == 1 )
{
if( parm.other.dmteam == axis )
{
if( $Obj_switch2.ControlledBy != 0 )
{
$Obj_switch2 TakeOver 0
level.numAxisObjectives++
level.numAlliedObjectives--
$obj3_light_allie hide
$obj3_light_axis show
iprintln "The Axis Control Switch 2!"
waitthread Check_End_Match
}
}
else if( parm.other.dmteam == allies )
{
if( $Obj_switch2.ControlledBy != 1 )
{
$Obj_switch2 TakeOver 1
level.numAlliedObjectives++
level.numAxisObjectives--
$obj3_light_axis hide
$obj3_light_allie show
iprintln "The Allies Control Switch 2!"
waitthread Check_End_Match
}
}
//Update team current objectives
thread set_objectives
}
end
//----------------------------------------------------------
//control switch 3 green/red
//----------------------------------------------------------
switch3:
if( level.bRoundStarted == 1 )
{
if( parm.other.dmteam == axis )
{
if( $Obj_switch3.ControlledBy != 0 )
{
$Obj_switch3 TakeOver 0
level.numAxisObjectives++
level.numAlliedObjectives--
$obj4_light_allie hide
$obj4_light_axis show
iprintln "The Axis Control Switch 3!"
waitthread Check_End_Match
}
}
else if( parm.other.dmteam == allies )
{
if( $Obj_switch3.ControlledBy != 1 )
{
$Obj_switch3 TakeOver 1
level.numAlliedObjectives++
level.numAxisObjectives--
$obj4_light_axis hide
$obj4_light_allie show
iprintln "The Allies Control Switch 3!"
waitthread Check_End_Match
}
}
//Update team current objectives
thread set_objectives
}
end
//----------------------------------------------------------
//Set the teams current objectives
//----------------------------------------------------------
set_objectives:
//First lets do the allies
if( $Obj_switch3.ControlledBy == 0 )
{
$Obj_switch3 SetCurrent 1
}
else if( $Obj_switch2.ControlledBy == 0 )
{
$Obj_switch2 SetCurrent 1
}
else if( $Obj_switch1.ControlledBy == 0 )
{
$Obj_switch1 SetCurrent 1
}
else if( $Obj_axisspawnpoint.ControlledBy == 0 )
{
$Obj_axisspawnpoint SetCurrent 1
}
//Now the Axis
if( $Obj_switch1.ControlledBy == 1 )
{
$Obj_switch1 SetCurrent 0
}
else if( $Obj_switch2.ControlledBy == 1 )
{
$Obj_switch2 SetCurrent 0
}
else if( $Obj_switch3.ControlledBy == 1 )
{
$Obj_switch3 SetCurrent 0
}
else if( $Obj_alliespawnpoint.ControlledBy == 1 )
{
$Obj_alliespawnpoint SetCurrent 0
}
end
//--------------------------------------------------------------
//init the spawner bombs
//--------------------------------------------------------------
init_spawner_bombs:
//Allied spawner bomb
$axis_bomb thread global/tow_dm.scr::bomb_thinker "axis" maps/obj/MP_Tutorial_TOW.scr::alliesspawnpoint
$allie_bomb thread global/tow_dm.scr::bomb_thinker "allies" maps/obj/MP_Tutorial_TOW.scr::axisspawnpoint
end
//-----------------------------------------------
// Blow up Allied Spawner
//-----------------------------------------------
axis_bomb_relay_explode:
self waittill trigger
thread alliesspawnpoint
end
//-----------------------------------------------
// Blow up Axis Spawner
//-----------------------------------------------
allie_bomb_relay_explode:
self waittill trigger
thread axisspawnpoint
end
//----------------------------------------------------------
//Initialize the switch lights (start all lights off)
//----------------------------------------------------------
init_switch_lights:
$obj2_light_allie hide
$obj2_light_axis hide
$obj3_light_allie hide
$obj3_light_axis hide
$obj4_light_allie hide
$obj4_light_axis hide
end
//-----------------------------------------------
// init the objectives
//-----------------------------------------------
init_objectives:
//Allied spawn point
if( $Obj_alliespawnpoint.ControlledBy == 0 )
{
level.numAxisObjectives++
}
else if( $Obj_alliespawnpoint.ControlledBy == 1 )
{
level.numAlliedObjectives++
}
//Axis spawn point
if( $Obj_axisspawnpoint.ControlledBy == 0 )
{
level.numAxisObjectives++
}
else if( $Obj_axisspawnpoint.ControlledBy == 1 )
{
level.numAlliedObjectivse++
}
//switch 1
if( $Obj_switch1.ControlledBy == 0 )
{
level.numAxisObjectives++
}
else if( $Obj_switch1.ControlledBy == 1 )
{
level.numAlliedObjectives++
}
//switch 2
if( $Obj_switch2.ControlledBy == 0 )
{
level.numAxisObjectives++
}
else if( $Obj_switch2.ControlledBy == 1 )
{
level.numAlliedObjectives++
}
//switch 3
if( $Obj_switch3.ControlledBy == 0 )
{
level.numAxisObjectives++
}
else if( $Obj_switch3.ControlledBy == 1 )
{
level.numAlliedObjectives--
}
end
//-----------------------------------------------
// init the objectives
//-----------------------------------------------
Check_End_Match:
//Allies first
if( level.numAlliedObjectives == level.numObjectives )
{
//ignore the clock
level ignoreclock 1
//if there is a bomb ticking stop it.
waitthread global/tow_dm.scr::StopBomb
//Allies win play the movie
teamwin allies
}
else if( level.numAxisObjectives == level.numObjectives )
{
//ignore the clock
level ignoreclock 1
//if there is a bomb ticking stop it.
waitthread global/tow_dm.scr::StopBomb
//Axis win do their movie and end the map
teamwin axis
}
end
</font>
</i>
</pre>
<hr>
<b>Here are some general rules and tips when creating a TOW map.</b><br>
<br>
<br>
<TABLE dir=ltr cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top width="1%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">
<P style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; LINE-HEIGHT: 100%"></P><!--mstheme--></FONT></TD>
<TD vAlign=top width=24></TD><!--msnavigation-->
<TD vAlign=top><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">
<P class=MsoNormal style="TEXT-ALIGN: center" align=center><B
style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 16pt">How to
Setup a Tug-of-War Map<O:P> </O:P></SPAN></B></P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN
style="FONT-SIZE: 14pt">func_TOWObjective:</SPAN><O:P> &nbsp;</O:P>
</B></P>
<P class=MsoNormal>This new entity type allows easy setup of the new
Tug-of-War Objectives.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This
section will document the settings for this new entity type.<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><B
style="mso-bidi-font-weight: normal">$targetname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-</B>Use this to give the objective a descriptive name.<B
style="mso-bidi-font-weight: normal"><O:P> &nbsp;</O:P> </B></P>
<P class=MsoNormal><B
style="mso-bidi-font-weight: normal">AlliesObjNum<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></B><SPAN
style="mso-tab-count: 1"><B
style="mso-bidi-font-weight: normal; mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</B></SPAN>- Assign which objective number this is for the allies.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This is important because it will
affect how the checkboxes work in the new tab score screen.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>Each objective can be a different
number for each team.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>For
instance the first objective on the map may be the allied spawner.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This should be assigned as the
first allied objective but the last objective for the axis side.<B
style="mso-bidi-font-weight: normal"><O:P> &nbsp;</O:P> </B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">AxisObjNum<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>- </B>Assign which objective number this is for the axis.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>See AlliesObjNum for more
information.<SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;</SPAN><O:P>
&nbsp;</O:P> </P>
<P class=MsoNormal><B
style="mso-bidi-font-weight: normal">ControlledBy<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN></B>- This should be assigned to 0, 1, or 2.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>When the map starts this setting
will determine which objectives are owned by whom, and which are
neutral.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>0 = Axis, 1 =
Allies, 2 = Neutral.<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><B
style="mso-bidi-font-weight: normal">ObjectiveNbr<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>-</B> This just needs to be a unique number that does not conflict
with the other objectives.<SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>Typically use 0 <20> 5.<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>There are also 2 check boxes that can be checked.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>StartOn, and Respawner.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>Check the Respawner box if this
objective is to halt the team<61>s ability to respawn in when killed.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>For now always check the StartOn
box.<B style="mso-bidi-font-weight: normal"><O:P> &nbsp;</O:P> </B></P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN
style="FONT-SIZE: 14pt">Setting Up the Objectives in
MOHRadiant:</SPAN><O:P> &nbsp;</O:P> </B></P>
<P class=MsoNormal>Here are the steps needed to create a working
Tug-of-War Entity in MOHRadiant:<O:P> &nbsp;</O:P>
</P><!--mstheme--></FONT><!--msthemelist-->
<TABLE style="MARGIN-TOP: 0in" cellSpacing=0 cellPadding=0 width="100%"
border=0 type="disc"><!--msthemelist-->
<TBODY>
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Create a trigger that
will be used to set off the objective.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>All the triggers for these
maps should be trigger_multiple types.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Give your trigger
descriptive $targetname, and setthread names.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Create an entity and use
the func_TOWObjective entity type.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Setup the entity
variables described
above.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Connect the Objective
entity to the trigger.<SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>Not the other way around.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This is VERY important.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist--></TBODY></TABLE><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">
<P class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN
style="FONT-SIZE: 14pt">Scripting Tug-of-War Objectives:<O:P> &nbsp;</O:P>
</SPAN></B></P>
<P class=MsoNormal>Every Tug-of-War map is going to have different
scripting requirements.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>I<EFBFBD>ll
document the basic things that need to be setup and show some
examples.<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Scoreboard
Text:<O:P> </O:P></B></P>
<P class=MsoNormal>setcvar "g_obj_alliedtext1" "Allied Objective Text
1"</P>
<P class=MsoNormal>setcvar "g_obj_alliedtext2" "Allied Objective Text
2"</P>
<P class=MsoNormal>setcvar "g_obj_alliedtext3" "Allied Objective Text
3"</P>
<P class=MsoNormal>setcvar "g_obj_alliedtext4" "Allied Objective Text
4"</P>
<P class=MsoNormal>setcvar "g_obj_alliedtext5" "Allied Objective Text
5"<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>setcvar "g_obj_axistext1" "Axis Objective Text 1"</P>
<P class=MsoNormal>setcvar "g_obj_axistext2" "Axis Objective Text 2"</P>
<P class=MsoNormal>setcvar "g_obj_axistext3" "Axis Objective Text 3"</P>
<P class=MsoNormal>setcvar "g_obj_axistext4" "Axis Objective Text 4"</P>
<P class=MsoNormal>setcvar "g_obj_axistext5" "Axis Objective Text 5"<O:P>
&nbsp;</O:P> </P>
<P class=MsoNormal>There are 5 objective text entries for each team.<SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN> The example above shows how
to setup this text.<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><B
style="mso-bidi-font-weight: normal">Func_TOWObjective Variables and
Functions:<O:P> &nbsp;</O:P> </B></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><B
style="mso-bidi-font-weight: normal">Variables:<O:P> </O:P></B></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><B
style="mso-bidi-font-weight: normal">ControlledBy</B><SPAN
style="mso-tab-count: 1">&nbsp; </SPAN>- This is the team number that
controls the objective.<SPAN style="mso-spacerun: yes">&nbsp;</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">Example:<O:P> &nbsp;</O:P>
</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; LINE-HEIGHT: 100%">if(
$ObjectiveName.ControlledBy == 0 )</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; LINE-HEIGHT: 100%">{</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; LINE-HEIGHT: 100%"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>println <20>This objective is owned by the axis team.<2E></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; LINE-HEIGHT: 100%">}<O:P>
&nbsp;</O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">Will check to see if the
objective named $ObjectiveName to test if it is controlled by the axis
team and if it is will print out a message indicating as much.<O:P>
&nbsp;</O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><B
style="mso-bidi-font-weight: normal">Functions:<O:P> </O:P></B></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><B
style="mso-bidi-font-weight: normal">TakeOver <20> </B>Call this to have a
team take over the objective.<SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>Pass it 0, 1, or 2 which represent the team taking it over.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>0 = axis, 1 = allies, 2 =
neutral.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Example:<O:P>
&nbsp;</O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">$ObjectiveName TakeOver
0<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">Will cause the objective
named $ObjectiveName to be taken over by the axis team.<O:P> &nbsp;</O:P>
</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><B
style="mso-bidi-font-weight: normal">SetCurrent <20> </B>Call this to make
this the current objective for the passed in team.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>Pass it 0, 1, or 2 to represent
the team that sets this as the priority objective.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This will cause the compass for
the passed in team to point at this objective.</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">Example:<O:P> &nbsp;</O:P>
</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">$ObjectiveName SetCurrent
0<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">This will cause the
objective named $ObjectiveName to be set as the current objective on the
compass for the axis team.<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Scripting
Objective Take Over:<O:P> &nbsp;</O:P> </B></P>
<P class=MsoNormal>When an opposing team takes an objective there should
be a triggered setthread that gets called in script.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This is where the handling should
take place.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Here is an
example from Sub Pen:<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>toggle_subpen_doors:<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( parm.other.dmteam == axis )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( $obj_subpen_doors.ControlledBy != 0 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_subpen_doors TakeOver 0</P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>iprintln "The Axis have closed the pen doors!"</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>else if( parm.other.dmteam == allies )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( $obj_subpen_doors.ControlledBy != 1 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_subpen_doors TakeOver 1</P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>iprintln "The Allies have opened the pen doors!"</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Update team current objectives</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>thread set_objectives<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>end</P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal>This function gets triggered when a team hits the sub
pen doors trigger.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Here is a
breakdown of this function:<O:P> &nbsp;</O:P> </P><!--mstheme--></FONT><!--msthemelist-->
<TABLE style="MARGIN-TOP: 0in" cellSpacing=0 cellPadding=0 width="100%"
border=0 type="disc"><!--msthemelist-->
<TBODY>
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">First check to see which
team triggered the doors.<SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>This is accomplished by checking the parm.other.dmteam
variable which will be set to either axis or
allies.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Next check that the team
that triggered this does not already control the objective.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This is accomplished by
checking that particular objectives ControlledBy variable.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>The syntax for this is:
$&lt;ObjectiveName&gt;.ControlledBy.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>The ControlledBy variable
will be set to 0 for axis, 1 for allies, or 2 for neutral.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Now if the team that hit
this trigger does not own it we call the TakeOver function.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>We call this by using:
$&lt;ObjectiveName&gt; TakeOver TeamNumber.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>Where TeamNumber is 0, 1, or
2.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Finally the example
calls a function that updates the current objective for each team
based on which the scripter feels is the most important.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>Here is a listing of that
function from Sub Pen:<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist--></TBODY></TABLE><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">
<P
class=MsoNormal>//----------------------------------------------------------</P>
<P class=MsoNormal>//Set the teams current objectives</P>
<P
class=MsoNormal>//----------------------------------------------------------</P>
<P class=MsoNormal>set_objectives:<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//First lets do the allies</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( $obj_sub_clamps.ControlledBy == 0 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_sub_clamps SetCurrent 1</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>else if( $obj_subpen_doors.ControlledBy == 0 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_subpen_doors SetCurrent 1</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>else if( $obj_steal_sub.ControlledBy == 0 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_steal_sub SetCurrent 1</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Now the Axis</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( $obj_subpen_doors.ControlledBy == 1 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_subpen_doors SetCurrent 0</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>else if( $obj_sub_clamps.ControlledBy == 1 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_sub_clamps SetCurrent 0</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>else</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_allied_spawner SetCurrent 0</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>end<O:P> </O:P></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><O:P></O:P> </P>
<P class=MsoNormal>This function prioritizes which objectives each team
needs to be set to.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This
function is called everytime an objective gets taken.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This function is not automatically
called but rather called from inside the script.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>For the allies the priority
objectives are first the sub clamps, followed by the sub pen doors and
finally the sub itself.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>If
the clamps get taken by the axis then this function will set the clamps as
the current objective for the allies.<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Respawners<O:P>
&nbsp;</O:P> </B></P>
<P class=MsoNormal>This new game type allows a team to destroy an enemy
objective that will stop that team from spawning when killed.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This is surprisingly easy.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>First take over the objective as
normal, then use the name assigned to the spawner and call
disablespawn.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Example
below:<O:P> &nbsp;</O:P> </P>
<P
class=MsoNormal>//----------------------------------------------------------</P>
<P class=MsoNormal>//Destroy the allied spawner here</P>
<P
class=MsoNormal>//----------------------------------------------------------</P>
<P class=MsoNormal>destroy_allied_spawner:<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Make sure we are the allies</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( parm.other.dmteam != allies &amp;&amp;
$obj_allied_spawner.ControlledBy != 0 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>iprintln "The allied transport has been destroyed!"</P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Take over the objective</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_allied_spawner TakeOver 0</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$Allied_Spawn_Locations disablespawn</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal>end<O:P> </O:P></P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><B style="mso-bidi-font-weight: normal">Win
Conditions</B><O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>The following are handled automatically:<O:P>
&nbsp;</O:P> </P><!--mstheme--></FONT><!--msthemelist-->
<TABLE style="MARGIN-TOP: 0in" cellSpacing=0 cellPadding=0 width="100%"
border=0 type="disc"><!--msthemelist-->
<TBODY>
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">All 5 Objectives are
taken by one team.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">A respawner has been
destroyed and the team is all subsequently
killed.<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist-->
<TR>
<TD vAlign=baseline width=42><IMG height=15 alt=bullet hspace=13
src="Tug of War_files/expbul1d.gif" width=15></TD>
<TD vAlign=top width="100%"><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">Time runs out.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>This needs a little setup at
the beginning of the script.<SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>Here is an
example:<!--mstheme--></FONT><!--msthemelist--></TD></TR><!--msthemelist--></TBODY></TABLE><!--mstheme--><FONT
face="Book Antiqua, Times New Roman, Times">
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>// set the parameters for this round based match</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>level.defusing_team = "axis"<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>level.planting_team = "allies"</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>level.dmrespawning<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>=
1<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>// 1 or 0</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>level.dmroundlimit<SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>= 5<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>// round time limit in minutes</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>level.clockside<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>= axis<SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>// set to axis, allies, kills, or draw<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>level waittill roundstart</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><O:P></O:P> </P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in">The defusing and planting
teams need to be set but it does not matter which team.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>Just make sure they have different
team values set to them.<SPAN style="mso-spacerun: yes">&nbsp;
</SPAN>dmrespawning should always be set to 1.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>dmroundlimit is the amount of time
for each round.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>clockside is
set to determine which team wins if the clock runs out.<O:P> &nbsp;</O:P>
</P>
<P class=MsoNormal>Sometimes you may want to have a custom victory
condition as in sub pen.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Only
3 objectives need to be taken by the allies in sub pen to win the
map.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Here is the code that
handles that:<O:P> &nbsp;</O:P> </P>
<P
class=MsoNormal>//----------------------------------------------------------</P>
<P class=MsoNormal>//steal the sub</P>
<P
class=MsoNormal>//----------------------------------------------------------</P>
<P class=MsoNormal>steal_sub:<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Only the allies can actually take this objective</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>if( dm_other.dmteam != axis &amp;&amp; $obj_steal_sub.ControlledBy
!= 1 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{</P>
<P class=MsoNormal style="MARGIN-LEFT: 1in">if(
$obj_sub_clamps.ControlledBy == 1 &amp;&amp;<SPAN
style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_subpen_doors.ControlledBy == 1 )</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>{</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>$obj_steal_sub TakeOver 1</P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>iprintln "Tha Allies have stolen the U-Boat!"</P>
<P class=MsoNormal><O:P></O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Allies have won</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>teamwin allies</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>}</O:P> </P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>//Update team current objectives</P>
<P class=MsoNormal><SPAN
style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</SPAN>thread set_objectives</O:P> </P>
<P class=MsoNormal>end<O:P> &nbsp;</O:P> </P>
<P class=MsoNormal>This function is called when a team hits the trigger on
the top of the sub.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>It checks
to see if it is the allies, and if so then checks to see if the allies
have opened the doors and disengaged the clamps.<SPAN
style="mso-spacerun: yes">&nbsp; </SPAN>If all these conditions are met
the script calles teamwin and passes the winning team as the
parameter.</P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in"><O:P></O:P> </P>&nbsp;<!--mstheme--></FONT><!--msnavigation--></TD></TR><!--msnavigation--></TBODY></TABLE><!--msnavigation-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><!--mstheme--><FONT face="Book Antiqua, Times New Roman, Times"><!--mstheme--></FONT></TD></TR><!--msnavigation--></TBODY></TABLE>
</body>
<p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</p>
<pre>
<i><font color=blue>
</font>
</i>
</pre>