Capture The Flag (RO2 MOD): Difference between revisions

From Tripwire Interactive Wiki
Jump to navigation Jump to search
(→‎Features: Added a bunch of features.)
Line 13: Line 13:
*Arty can be used with a delay between strikes instead of a number of strikes per round.
*Arty can be used with a delay between strikes instead of a number of strikes per round.
*'Hot Zones' can be defined throughout the map, and have a team index. Those are used to define areas around the flag bays, into which players get bonus points for attacking/defending.
*'Hot Zones' can be defined throughout the map, and have a team index. Those are used to define areas around the flag bays, into which players get bonus points for attacking/defending.
*Bots can play CTF.
*Bots have a CTF-specific AI logic. It will try to take/capture/return flags (as long as the mapper implements pathing correctly on his map).
*Sounds are played for taking, returning and capping a flag, as well as the flag expiration.
*Sounds are played for taking, returning and capping a flag, as well as the flag expiration.
*Custom messages are displayed accordingly to the CTF points system.
*Custom messages are displayed accordingly to the CTF points system.
Line 25: Line 25:
*The round/match end screens have been customized with custom stats (flags capped last round, and total flags capped).
*The round/match end screens have been customized with custom stats (flags capped last round, and total flags capped).
*A round can be won by capping enough flags, or at the end of the time limit, by having more flags than the opponent.
*A round can be won by capping enough flags, or at the end of the time limit, by having more flags than the opponent.
A match can be won by winning more rounds, or capping more flags (total of the match) than the enemy.
*A match can be won by winning more rounds, or capping more flags (total of the match) than the enemy.
*Tied rounds are taken into consideration for the maximum number of rounds allowed.
*Tied rounds are taken into consideration for the maximum number of rounds allowed.
*When there are 60 seconds left, a timer appears at the top of the screen and turns red when 30 seconds are left. It is similar to Firefight.
*When there are 60 seconds left, a timer appears at the top of the screen and turns red when 30 seconds are left. It is similar to Firefight.

Revision as of 13:15, 16 November 2012

Capture The Flag for Red Orchestra 2 is a MOD developed by the modder -=THOR=-, with the collaboration of Mad_Fred and GrimReality. It introduces the classic CTF game type to RO2. Each team has a flag, generally located close to its initial spawn area. The objective is to take flag of the enemy, and bring it home to 'capture' it. A soldier can capture the enemy flag when his own flag is home. When the flag carier dies, the flag drops on the ground. If an enemy touches its flag, or after a server-customizable delay expires, the flag returns automatically to its stand. Before it that happens, a teammate of the dead flag carrier can pick it up and continue.

Features

  • Realistic flag, made of a static mesh for the pole, and skeletal mesh for the fabric. The skeletal mesh uses UDK cloth physics. The flag is attached to the back of the player when carried (like a shouldered rifle).
  • Spawn protected or other mapper-specified zones cannot be entered by flag carriers (else, the flag returns automatically after a delay expires).
  • A HUD widget at the bottom of the screen appears when a flag is not home, and indicates the status of the flags (home, taken or dropped). It is always visible in the tactical overlay. The icons change dynamically.
  • The location of the flag bays are indicated by moving icons on the tactical overlay. The icons change dynamically depending on the state of the flag.
  • Custom alerts are displayed in the middle of the screen, when a flag is taken, dropped, returned, expired or captured. The player name of the instigator is displayed on a second row, in smaller characters (when applicable).
  • The number of flags capped on each team is displayed to the left of the scoreboard, on the map, and in the tactical overlay.
  • Spawn locations can change dynamically as the teams move on the map and get control over areas. The user anually selects his spawn location.
  • Optional configurable anti-camping system. The system discourages carriers from camping in a dark corner, helping to resolve the situation where both flag carriers hide somewhere. After some time with both flags taken, a flag carrier who is not moving enough will be displayed on the HUD of the enemy, for a few seconds, every few minutes (all delays are configurable).
  • Arty can be used with a delay between strikes instead of a number of strikes per round.
  • 'Hot Zones' can be defined throughout the map, and have a team index. Those are used to define areas around the flag bays, into which players get bonus points for attacking/defending.
  • Bots have a CTF-specific AI logic. It will try to take/capture/return flags (as long as the mapper implements pathing correctly on his map).
  • Sounds are played for taking, returning and capping a flag, as well as the flag expiration.
  • Custom messages are displayed accordingly to the CTF points system.
  • The flag bays appear on the map with a dynamic icon, and instructions in the right panel change with states of the flags.
  • Dead Roaming and 1st/3rd persons spectating are disabled for dead players. These view modes are only available for spectators, or when the mapper forgets to define cameras. A camera can be team-specific, or shared.
  • The flag carrier will be displayed with a special icon on the map.
  • Morale is affected by the number of captures of each team.
  • Spawn on squad leader an commander force-respawn are supported.
  • In the scoreboard, the player name of the flag carrier is displayed with a lighter color, and a "(FC)" tag next to their name.
  • The classic compass is always used (independently from the game mode).
  • The round/match end screens have been customized with custom stats (flags capped last round, and total flags capped).
  • A round can be won by capping enough flags, or at the end of the time limit, by having more flags than the opponent.
  • A match can be won by winning more rounds, or capping more flags (total of the match) than the enemy.
  • Tied rounds are taken into consideration for the maximum number of rounds allowed.
  • When there are 60 seconds left, a timer appears at the top of the screen and turns red when 30 seconds are left. It is similar to Firefight.
  • A customizable 'credits' panel appears at the bottom-left of the 'Round Start' window. The mapper enters the information in the SDK (WorldInfo).
  • The scoreboard shows the name of the custom gametype at the top.
  • The round start screen is customized to display the CTF information.

Custom Map Objects

Although the gametype is consituted of many classes, most of them are used internally, and not used by the mapper. This section describes only the objects used by the mapper to implement CTF on his map.

Placeable Actors

  • CGTAlliedFlag/CGTAxisFlag: Allied/Axis versions of the flag (and pole). The actor is attached to the back of the flag carrier when touched by him the first time and dropped on the ground when he dies. A new instance is created at the home location every time the flag is captured, dropped and expired/returned.
  • CGTFlagStand: Lower part of the flag pole. This actor is not attached to the flag carrier. It acts as a standard visual cue as to where the capture zone is.
  • CGTCameraActorViewpoint: Custom camera with team-index filters. When cycling through the list of viewpoints, the player will/won't be able to see through those cameras if the filter defined by the mapper allows him to.

Volumes

  • CGTAdvancedTriggerVolume: This volume is a ROTriggerVolume. It has Touch/Untouch events. This volume is used to define the hot zones, the flag capture zones, and the control zones for dynamic spawning areas.
  • CGTVolumeNoFlag: This volume is a CGTAdvancedTriggerVolume. If the flag carrier enters such a volume, the flag automatically returns after a delay expires.
  • CGTVolumePlayerStartGroup: This volume is a ROVolumePlayerStartGroup. It is used by spawn zone controllers.
  • CGTVolumeSpawnProtectionCTF: This volume is a ROVolumeSpawnProtection. If the flag carrier enters such a volume, the flag automatically returns after a delay expires.

Kismet

  • CGTSeqAct_GameManagerCTF: Used to assign the flags, flag zones, and hot zones to the internal game type controller. There should not be more than one instance of this object per map.
  • CGTSeqAct_SpawnZoneController: Used to dynamically control a spawn zone. Conditions can be defined, based on the number of enemy or friendly players (or their ratio) in a control zone, to define whether a spawn zone should be enabled or not.

Custom Map Info

For a CTF map, a Map Info of type CGTMapInfoCTF must be used.

  • Reinforcements are not used.
  • Since the duration of a CTF round is not defined by the mapper, the number of strikes per round cannot be used. Instead, the parameters <Allies/Axis><Mortar/Artillery/Rocket>StrikePeriod are used to define the period between strikes.
  • There are many fields under the credits category. The credits are displayed at the bottom-left of the round start screen.

Tutorials

Conversion - Streamed Map

About Streaming

Stock maps use level streaming. That means that most of the effects, sounds and art are located in independent files (e.g. FX-Apartments, SND-Apartments and ART-Apartments). If one change is made to these, any map that use them will have the changes. Top level files (e.g.: TE-Apartments, CD-Apartments and FF-Apartments) should only contain gametype-specific map data. Note that it might not be a good idea to use streaming for a custom map, since the streamed files may not be downloaded.

Creating the top-level file

The simplest way to start, is to copy an existing top-level file. Copy TE-Apartments.upk to Documents\My Games\RedOrchestra2\ROGame\Unpublished\CookedPC\Maps\Apartments. Rename it to CTF-Apartments.upk. Open the file with the SDK.

Removing useless content

Open Kismet. If you are unfamiliar with Kismet, you should go through some Kismet tutorials, or play around with it until you understand how it works. What to keep, and what not to keep, that is the question.

You probably want to keep:

  • Logic to trigger the recon planes.
  • Logic to enable radios.
  • One "LevelLoaded" block.

You probably want to remove:

  • TE Objectives logic.
  • All CD/FF logic.

Go to the Levels window. Hide all of the streamed levels by toggling the visibility button of each sublevel. Make sure you leave the top level visible. If all groups are visible, and all visibility options are on, you should see everything that is contained in your top-level file only. It is time to do some cleanup.

You probably want to keep:

  • Cover Nodes
  • Pylons
  • Blocking & Path Blocking Volumes
  • MapBounds Volumes (These are used from top-view, to create a mapping with the in-game map. They are not to be confused with MapBoundary volumes, which define Out of combat zone areas.)

You probably want to remove:

  • TE Objectives and their corresponding volumes.
  • ROPlayerStart Actors.

External links

Offical Capture The Flag thread