Checkpoints
              
              This is an example for 3-checkpoint capture the flag map. First 
              build a simple room with an info_player_start and a script-entity 
              (right click and choose script > multiplayer_script). then place 
              3 team_wolf_checkpoint entities in it. do this by right clicking 
              and then choose them in directory team. Now your map should be like 
              this:
              
              
               
 
              
              
              
              Now select the first of the checkpoints and press 'N'. Enter 
              all settings like I did. The model is the normal flagpole that is 
              used in every official map for checkpoints/spawnpoints.
              
              
               
 
              
              
              Repeat this for all the 3 checkpoints of course with other scriptnames 
              - these are cp2 and cp3. That's it for the map, now here comes the 
              script, no fear it looks like a lot of work but it's just copy and 
              paste all the time. If you don't understand what is going on then 
              have a look at the scripting tutorial. 
//checkpoint_tutorial
              //Map: checkpoint_tutorial.map
              //done by the muffinman
              //
game_manager
              {
              spawn
              {
              wm_axis_respawntime 30
              wm_allied_respawntime 30
wm_number_of_objectives 
              4
              wm_set_round_timelimit 10
// Nazi's control objective #1 at the start
wm_setwinner -1
wm_set_objective_status 
              1 -1
              wm_set_objective_status 2 -1
              wm_set_objective_status 3 -1
// Accum 
              1-3 will be the state of the checkpoints, -1 means nobody controls 
              the flag
              accum 1 set -1
              accum 2 set -1
              accum 3 set -1
// Accum 
              4 tracks the tide of battle
              accum 4 set 0
              }
// The following functions are called from the checkpoints when either team takes control of it
trigger 
              cp1_blue
              {
              // Allied takes control of checkpoint #1
              wm_set_objective_status 1 1
// First 
              update winner based on number of flags held by both teams
              trigger game_manager adjustwinner_cp1_blue
// Change 
              the variable within the script so that we can check if someone wins 
              the round
              accum 1 set 1
// Some 
              kind of UI pop-up to alert players
              wm_announce "Allies take the checkpoint 1!"
// Call 
              function to check if the round has been won
              trigger game_manager checkgame_blue
              }
trigger 
              cp1_red
              {
              wm_set_objective_status 1 0
// First 
              update winner based on number of flags held by both teams
              trigger game_manager adjustwinner_cp1_red
// Change 
              the variable within the script so that we can check if someone wins 
              the round
              accum 1 set 0
// Some 
              kind of UI pop-up to alert players
              wm_announce "Axis take the Checkpoint 1!"
// Call 
              function to check if the round has been won
              trigger game_manager checkgame_red
              }
trigger 
              cp2_blue
              {
              // Allied takes control of checkpoint #1
              wm_set_objective_status 2 1
// First 
              update winner based on number of flags held by both teams
              trigger game_manager adjustwinner_cp1_blue
// Change 
              the variable within the script so that we can check if someone wins 
              the round
              accum 2 set 1
// Some 
              kind of UI pop-up to alert players
              wm_announce "Allies take the checkpoint 2!"
// Call 
              function to check if the round has been won
              trigger game_manager checkgame_blue
              }
trigger 
              cp2_red
              {
              wm_set_objective_status 2 0
// First 
              update winner based on number of flags held by both teams
              trigger game_manager adjustwinner_cp1_red
// Change 
              the variable within the script so that we can check if someone wins 
              the round
              accum 2 set 0
// Some 
              kind of UI pop-up to alert players
              wm_announce "Axis take the Checkpoint 2!"
// Call 
              function to check if the round has been won
              trigger game_manager checkgame_red
              }
trigger 
              cp3_blue
              {
              // Allied takes control of checkpoint #1
              wm_set_objective_status 3 1
// First 
              update winner based on number of flags held by both teams
              trigger game_manager adjustwinner_cp1_blue
// Change 
              the variable within the script so that we can check if someone wins 
              the round
              accum 3 set 1
// Some 
              kind of UI pop-up to alert players
              wm_announce "Allies take the checkpoint 3!"
// Call 
              function to check if the round has been won
              trigger game_manager checkgame_blue
              }
trigger 
              cp3_red
              {
              wm_set_objective_status 3 0
// First 
              update winner based on number of flags held by both teams
              trigger game_manager adjustwinner_cp1_red
// Change 
              the variable within the script so that we can check if someone wins 
              the round
              accum 3 set 0
// Some 
              kind of UI pop-up to alert players
              wm_announce "Axis take the Checkpoint 3!"
// Call 
              function to check if the round has been won
              trigger game_manager checkgame_red
              }
              // Keep winner set to team with most flags
trigger 
              checkwinner
              {
              wm_setwinner -1
              accum 4 abort_if_equal 0
              wm_setwinner 1
              accum 4 abort_if_greater_than 0
              wm_setwinner 0
              }
trigger 
              adjustwinner_cp1_blue
              {
              accum 4 inc 1
              trigger game_manager checkwinner
              accum 1 abort_if_not_equal 0
              accum 4 inc 1
              trigger game_manager checkwinner
              }
trigger 
              adjustwinner_cp1_red
              {
              accum 4 inc -1
              trigger game_manager checkwinner
              accum 1 abort_if_not_equal 1
              accum 4 inc -1
              trigger game_manager checkwinner
              }
trigger 
              adjustwinner_cp2_blue
              {
              accum 4 inc 1
              trigger game_manager checkwinner
              accum 2 abort_if_not_equal 0
              accum 4 inc 1
              trigger game_manager checkwinner
              }
trigger 
              adjustwinner_cp2_red
              {
              accum 4 inc -1
              trigger game_manager checkwinner
              accum 2 abort_if_not_equal 1
              accum 4 inc -1
              trigger game_manager checkwinner
              }
trigger 
              adjustwinner_cp3_blue
              {
              accum 4 inc 1
              trigger game_manager checkwinner
              accum 3 abort_if_not_equal 0
              accum 4 inc 1
              trigger game_manager checkwinner
              }
trigger 
              adjustwinner_cp3_red
              {
              accum 4 inc -1
              trigger game_manager checkwinner
              accum 3 abort_if_not_equal 1
              accum 4 inc -1
              trigger game_manager checkwinner
              }
              // Check for game-winning condition
trigger 
              checkgame_blue
              {
              // Check all for checkpoints and see if they have been set to '1' 
              - allied
              accum 1 abort_if_not_equal 1
              accum 2 abort_if_not_equal 1
              accum 3 abort_if_not_equal 1
// Set 
              the round winner: 0 == AXIS, 1 == ALLIED
              wm_setwinner 1
// End 
              the round
              wm_endround
              }
trigger 
              checkgame_red
              {
              // Check all for checkpoints and see if they have been set to '0' 
              - axis
              accum 1 abort_if_not_equal 0
              accum 2 abort_if_not_equal 0
              accum 3 abort_if_not_equal 0
// Set 
              the round winner: 0 == AXIS, 1 == ALLIED
              wm_setwinner 0
// End 
              the round
              wm_endround
              }
              }
cp1
              {
              trigger axis_capture
              {
              trigger game_manager cp1_red
              }
trigger 
              allied_capture
              {
              trigger game_manager cp1_blue
              }
              }
cp2
              {
              trigger axis_capture
              {
              trigger game_manager cp2_red
              }
trigger 
              allied_capture
              {
              trigger game_manager cp2_blue
              }
              }
cp3
              {
              trigger axis_capture
              {
              trigger game_manager cp3_red
              }
trigger 
              allied_capture
              {
              trigger game_manager cp3_blue
              }
              }
              
 
	