This tutorial will outline how to set up a very basic Defense Point in a UT2003 map.
First off, creating a defensive position for bots to defend in UT2003 is much more complicated than it was in UT. This is largely because of the fact that the system is much more powerful in UT2003 and allows for very complex defensive behavior like sniping a particular area, and I believe, although I haven't tested it out, setting up an area for a bot to patrol as opposed to a static position to hold. To create defensive points, you must first have a GameObjective of some sort. For most gametypes, the GameObjective you will use will be located as a subclass of GameObjective. Examples of standard GameObjectives are the CTFBase for flags, and the xBombDelivery and xBombSpawn for the BombingRun? gametype.
The first step is to open up the Actor Properties Window of your already placed GameObjective and expand the GameObjective tab. One of the properties is DefenseScriptTags. Set this to be an arbitrary tag, for example RedFlagDefense or RedGoalDefense.
Now, you will need to add an actor of class UnrealScriptedSequence where you actually want the bot to defend. This actor, once set up, will act exactly like simply placing a DefensePoint actor did in UT. Leave the large "AIScript" icon at the same height off the ground that it is place, and position and orient it where you want the bot to stand and face, respectively. Now set Events → Tag to the same abitrary tag as you set the DefenseScriptTags to be in you GameObjective actor above (ex. RedFlagDefense).
At this point your defense points will work decently, but there are still several settings you should change to really get them working properly (and to really work at all if they're for CTF or BR, Domination points would probably work fine as-is).
If you are making these defensive points for DOM game, or some other gametype where the GameObjective can change hands, go to your GameObjective actor, and Set The Following Properties:
- GameObjective → bTeamControlled = True
For any team game at all where the GameObjective belongs to one team only, Set The Following Properties:
- GameObjective → DefenderTeamIndex = team number of the team that will defend the GameObjective (0 for red, 1 for blue)
Setting different priorities in GameObjective → Priority will rank what percentage of bots assigned to defense will defend each GameObjective (the higher the number the more likely a bot will be assigned to it). Use this if you have some objectives that are more important than others.
If you want to have different priorties for different defensive positions, open up each individual UnrealScriptedSequence and expand the UnrealScriptedSequence tab in the actor properties window.
You can now modify the Priority field in UnrealScriptedSequence → Priority (which works exactly like the priority field for the GameObjective, only now it will affect the bots who have already been chosen to defend the corresponding GameObjective).
For a sniping post, set UnrealScriptedSequence → bSniping to True. You should probably also specify the WeaponPreference to the SniperRifle (which is what the LightningGun? is referred to as in UED 3 I believe, someone should double-check that).
Finally, I imagine you can make a "SnipingVolumeTag" with a corresponding volume having its tag set to the same name, but I'm not sure if this is what is sniped into, or out of, or something else entirely.