Hostages & Bots
OK I'm assuming you have an area/map in mind for this and know roughly where you want to put everything, here's all the entities you need to have a fully working hostage rescue map, and limited information on the nav editor, waypoints and creating bots.
At the time of writing i'm still a little hazy on the waypoints and nav editor so any corrections please let me know. I'll add a more detailed tutorial once i've worked it out myself.
Note that all entities should be placed just above but not touching the ground unless otherwise stated.
For the number of counter-terrorist and terrorist start points it depends on the size of the map and how many players you want it to be able to cope with but the default is 32 players so suggested you place 16 of each.
1. Counter-Terrorist Start
Create a new entity called info_player_counterterrorist and place it where you want the ct's to start. Create one of these for each counter-terrorist start point. Don't place them too close together and don't place them in a narrow corridor or anywhere where an afk player is going to block others trying to get past!
2. Counter-Terrorist Buyzone
Select the texture tool and browse and filter on "trigger". Select the trigger texture (not the trigger relay texture). Create a brush that encompasses all the counter-terrorist start points but doesn’t cut any walls. If this isn't possible then you can create multiple brushes for multiple buyzones. With the entity selected press "Ctrl-T" to tie the brush to an entity and select entity type func_buyzone. Select your entity and go to properties. Select a name for your buyzone (eg. ctbuyzone1) and then select counterterrorist from the team number drop down.
3. Hostage Rescue Area
Select the texture tool and browse and filter on "trigger". Select the trigger texture (not the trigger relay texture). Create a brush that encompasses the area you want to be the hostage rescue area. Your brush should be just above the ground and set it so that it's height is around head height for a hostage just to make sure. With the entity selected press "Ctrl-T" to tie the brush to an entity and select entity type func_hostage_rescue. If you want there's decals for hostage rescue area which you can put on the floor.
4. Terrorist Start
As above for counter-terrorist but use info_player_terrorist entity
5. Terrorist Buyzone
As above for counter-terrorist but select terrorist from team number drop down.
Now all you need is some hostages to rescue. For this create an entity and select hostage_entity.
7. Creating Navigation File
The final step you need to do is to create a navigation file (.nav) for your map. This is a file used for creating waypoints and information for hostages and bots. This will be created in your map directory alongside your map. Eg. cs_mymap.bsp will have a nav file called cs_mymap.nav. Ensure that when you distribute or run your map that this file exists in the directory.
To create your .nav file:
Compile and run your map. If you try to use a hostage you'll find that they don't follow you, this is because the .nav file doesn't exist. In Advanced Options enable the developer console. Press ~ to access the console. Type "sv_cheats 1" which switches on cheats. Type "navedit 1" which enables navigation editor. This can be used for manually adding and changing waypoints in the map. Type "nav_generate". This'll take a few minutes or longer depending on the size of the map. The application will automatically build the .nav file for you and should re-start the map automatically. If not then re-start your map.
Now when you try to use a hostage it should follow you though they may not be particularly clever about it.
8. Bugs in The Nav File
If you find that counter-strike crashes on you while building the .nav file or opening your map then check the following:
1. Find your map directory and look for the .nav file. It may be corrupt. If it's 1kb in size then delete it. If not then back it up (rename it something else) and the next time it generates it should hopefuly be ok.
2. If it's still a problem then check your map and make sure that all your info_nodes (see later) and other hints for hostages are in sensible places (not stuck in the ground or high in the air) and check you've no leaks in your map.
9. Play Testing Your Map With Bots
Now that you have your map running and hostages following you about you'll want to play test it. To do this run your map then type "sv_cheats 0" to turn off cheats in case someone else joins your map. Type "bot_add" which will create a bot for you to play against. Keep adding more bots as required. Another useful command is "bot_difficulty 0/1/2/3" which sets the skill level of the bots (3 being the toughest). Also "bot_kick" and "bot_kill" are useful for getting rid of bots. For testing sniping points use "bot_snipers_only"
Things to look out for are hostages who don’t follow you, areas where they become stuck, etc. For bots the nav_edit editor can be used to add hints, where they can jump, where they can climb ladders, etc.
10. Hostage Waypoints
In addition to the nav editor you can use the entity info_node to create waypoints for your hostages. This is useful if you find that they're running on ahead of you and getting stuck. These should be placed in line of sight of each other so the hostages can walk from node to node. There are other types of nodes for various situations as with the nav editor.