This article was converted from a previous version of TWHL and may need to be reviewed
- The formatting may be incorrect due to differences in the WikiCode processing engine, it needs to be revised and reformatted
- Some information may be out of date
- After the article is re-formatted and updated, remove this notice and the Review Required category.
- Some older tutorials are no longer useful, or they duplicate information from other tutorials and entity guides. In this case, delete the page after merging any relevant information into other pages. Contact an admin to delete a page.
CS Mapping : Part 1.
Before we start, make sure you have familiarised yourself with the
In The Beginning series of tutorials. I know you're thinking, "Half-life? But I want to map for Counter-Strike!" sure, but the basics are the same and the idea behind this tutorial is to show you the differences.
There are two things that
must be in a Counter-Strike map:
- An info_player_start: The Counter Terrorist (CT) spawn point.
- An info_player_deathmatch : The Terrorist (T) spawn point.
If you only put the info_player_start in the map, then no-one else will be able to join the map. It is a good idea to place about
10 of each type of info_player entity in your map. It is up to you how many you want to use, but 10 seems to be a common figure, and make sure they are not to close together or they will spawn frag each other. Give them a little space, about 32 units on either side and about 8 units off the floor. It's imperative that the entities are not intersecting geometry in anyway.
There is also an entity that is normally used with the Spawn points and that is a
func_buyzone. The buyzone is a brush based entity that defines an area where the teams can purchase Weapons and Equipment.
The buyzone is not absolutely neccessary, as the
info_player entity will define a small area at it's location that acts like one but you can't change the size, which is why a buyzone brush is better. If you use a Buyzone, then the Spawn point will not act as a default buyzone. This is good for when you want the players to travel to the buyzone before being allowed to buy weapons.
Maps There are a few types of maps out there for Counter-Strike. It is a good idea to know what type of map you are making before you start. The mapname prefix normally gives you an idea of what type of map it is going to be:
- cs_mapname: Normally indicates a Hostage map, where you must rescue or prevent the rescue of the Hostages.
- de_mapname: A Defuse map, where the idea is to plant or prevent planting a bomb.
- as_mapname: A VIP map, where you either kill (assasinate) the VIP or protect him.
- es_mapname : An Escape map, where the terrorists try to escape, and the CT's try to wax them.
Combining map types The reason you don't see multi mission CS maps ie;
de_as_es_cs_ mybrilliantmap, is that it almost always there are too many problems with roundstarts and servers to make it worth while. CS was never designed to be multi missioned.
The "cs_" Map
In this tutorial we will look at the basics of a CS type map. Build a large room, say 1024x1024x256.The following entities are required:
- An info_player_start in the room.
- An info_player_deathmatch in the room.
Make a brush and assign it to the
func_buyzone entity. You can make this team specific in the entity properties. Place the buyzone brush a few units off the floor, but not too far. It should be placed so the player can walk into it.
Ok, for the cs_map type, we need to add a few more entities.
The most important being the Hostages. Place a few
hostage_entities in your map. The number of Hostage entities you put in the map is up to you, but most maps use 4 or 5. For more information on this entity, check the
CS Entity Guide.
And now we need somewhere to lead them so they will be rescued. You have two choices here, you can use a bush based
func_hostage_rescue or a point based
info_hostage_rescue. The main difference between the two is that you can define the size of the brush for a func_hostage_rescue, where as an info_hostage_rescue is normally about 128 units around the area you place the entity. You may have to experiment with the func_hostage_rescue brush. It doesn't always indicate the actual area of rescue, but it is pretty close. If you put either entity in a corridor, just remember that if the hostages are led to any room that is adjacent to the entity, they might be "rescued" through the walls. Either way it is better to place both entities out in an open area.
The game will default to the func_hostage_rescue if both are used, so it's a bit pointless using both. However, some Bot Programs require both entities to be there so they can assign an important Waypoint to the area. The Hostage only has to touch the brush to be rescued. Placement of an info_hostage_rescue is not crucial as it will float to the floor much like an infonode.
What about a Decal? The hostage rescue point decal is
{hrpoint in the cstrike/decals.wad. You must have the .wad added to your WorldCraft/Hammer textures when you compile, if you want them to appear. For more information about Decals see SlayerA's
Decals: All you need to know Tutorial.
Add a light entity.
Now you're ready to compile. Because we are compiling a CS map, make sure you have read the
CS Setup Guide.
Ok, you should have a room with a couple of hostages, a rescue point and a buyzone...the rest is up to your imagination.
Next tutorial in the series:
CS Mapping, Part 2