|
|
|
|
|
|
|
|
| Links |
|
|
|
Basic CS:S Mapping - By Raeven0 |
|
This tutorial was last updated on Aug 14, 2006.
This tutorial covers basic Counter-Strike Source mapping concepts. If the reader is not minimally familiar with using Hammer (he must be able to make blocks and place entities), he should read this tutorial first. It covers much more basic concepts, for all Source games (CS:S included).
To download a simple CS:S example map, including spawn points and buy zones, to be loaded and viewed in Hammer, click the following link.
http://www.editlife.net/file.php?download=47
For information on making specific types of CS:S maps, including 'funmaps' that restrict the player's spawning weapons, see these tutorials:
Bomb Defusion Scenario
Hostage Rescue Scenario
Weapon Effects
Contents:
- Spawn points for CTs and Ts
- Buy zones
- Ladders
- Forcing events to occur upon new round
- Note on the "Parent" property in CS:S
- Note on looping sounds
Spawn Points
To create spawn points for CS:S, use your entity placement tool to create info_player_terrorist and info_player_counterterrorist entities, for the Terrorists and Counter-Terrorists, respectively. One player will spawn at each point, so it's important to have a good number of them. Generally, at least 16 per side is sufficient, but to allow 64-player servers to run the map, you'll need at least 32 per side.
Remember! If the spawn point is too close to a solid object, such as a floor or a wall, it will be considered invalid, because CS:S will not spawn players inside solid objects. Try to keep your spawn points away from solid objects and from each other. Generally, as long as the entity's rectangle (in the 2D grid views) doesn't touch anything, the spawn point will be valid.
Your spawn points will probably look like this:

It is not necessary to place info_player_start entities for CS:S; however, it is good form to include at least one in the map, to appease Source engine requirements. No players will spawn from this entity in CS:S.
Buy Zones
To make an area in which players can buy weapons, simply create a block and make it a func_buyzone entity. Do this by selecting the block and pressing Ctrl and T. Then, choose func_buyzone from the Classname menu near the upper-left of the dialogue box that appears.
After you've done this, you will have a block that the players must stand inside in order to buy weapons. Since the block will be invisible, it doesn't matter what texture you use for it. However, most mappers use tools/toolstrigger, since this makes the buyzone easy to distinguish from other blocks, like walls.
In order to finish the buyzone, you need to edit its properties such that it works for the right team. Counter-Terrorists cannot buy weapons in a Terrorist buyzone, and vice versa. Simply open the entity properties dialogue box, if it's not already open, by selecting the buyzone block and pressing Alt and Enter. From there you can edit the properties of the buyzone, such as which team it works for.

Ladders
CS:S has two ways to make a ladder.
The first, somewhat easier, method is to create a block with any texture at all, then select it and make it a func_ladder entity. (Pressing Ctrl and T makes the selected block an entity.) The block will become climbable in-game.
The second, more versatile, method is to create a block with a ladder texture, or the tools/toolsinvisibleladder texture. Most ladder textures force their block to be climbable, and tools/toolsinvisibleladder results in a climbable block that is invisible. The advantage to this method is that you can use ladder textures on different entities and still have a climbable block. For instance, would you like a ladder that can move around? Func_ladder can't move, but func_physbox can. Simply use a ladder texture on a func_physbox entity and you have a movable ladder.
If you want to use one of the metal ladders seen in HL2 instead of a block, or would like more general information on CS:S ladders, consult this tutorial.

Forcing Events On New Round
--for instance, what if you want an explosion to occur two seconds after the start of every round?
Place a logic_auto entity. Open its properties (select it and press Alt and Enter) and view its Outputs tab. Add an OnMapSpawn output and do whatever you like with it! Upon the start of every round, when all the players spawn, the logic_auto entity in your map will fire all of its OnMapSpawn outputs. To trigger an explosion, for instance, you would set up one OnMapSpawn output targetting a named env_explosion entity, using the input Explode.
This functionality is seen in Valve's cs_havana. In order to have random routes open every round, the logic_auto sends a PickRandom input to a logic_case. The logic_case then randomly chooses between its four outputs (OnCase01, OnCase02, OnCase03, and OnCase04), each of which opens a route. At the start of each round, all the routes are reset, and the interaction of the logic_auto and logic_case opens different routes.
Parentnames in CS:S
"Parent" (or parentname) is a property of most entities that allows them to mimic the movements of some other entity; for instance, a dynamic light can be set to follow a light model around (see tutorial). In CS:S, however, every time a new round begins, some entities are deleted and recreated, whereas others are not.
This creates a problem because if an entity that's not reset is parented to an entity that is, then the former entity will be deleted once its parent is deleted, but it will not be remade when its parent is remade.
In order to work around this in CS:S, a mapper should use a logic_measure_movement point-entity when he wants entities that aren't reset to be in the same movement hierarchy as entities that are. In this FGD, I have put a note in the documentations of entities that aren't reset upon newround; the list (according to Valve) follows:
* ai_hint
* ai_network
* cs_player_manager
* cs_team_manager
* cs_gamerules
* env_fog_controller
* env_wind
* env_sun
* env_soundscape_triggerable
* env_soundscape_proxy
* env_soundscape
* func_illusionary
* func_buyzone
* func_wall
* func_brush
* info_map_parameters
* info_node_hint
* info_target
* info_node
* info_projecteddecal
* infodecal
* info_ladder
* keyframe_rope
* move_rope
* point_viewcontrol
* point_devshot_camera
* predicted_viewmodel
* sky_camera
* shadow_control
* scene_manager
* soundent
* trigger_soundscape
* viewmodel |
When you want to parent one of these entities to an entity not on the list, or vice versa, use a logic_measure_movement point-entity instead.
Permanently Looping Sounds
The ambient_generic entity is typically used to place sound in maps--often, permanently looping sound such as wind or waterfall effects. However, as of this writing, the ambient_generic entity can only loop for one round in CS:S; once a new round begins, the entity stops playing permanently.
To make an ambient entity loop permanently, make a logic_auto as outlined above and add two OnMapSpawn outputs to it. Set one output to target the ambient entity, using input StopSound, and a short Delay like 0 or 0.2; set the other output to target the ambient entity again, using input PlaySound, and a longer Delay like 0.8.
Still need help? Ask your questions in one of our HELP FORUMS
|
|
|
| Comments |
| Jake - May 28, 2010 |
| Freddy, you need to buy SDK software to get this. |
| Freddy - Jan 28, 2010 |
| Where can i download the program? |
| xrhstos - Jun 19, 2009 |
| greece |
| erik - Mar 19, 2009 |
| dont worry i´ve just reinstalled Source Sdk and i HOPE IT WORKS! |
| Erik - Mar 19, 2009 |
| guys my Entitys menu has dissapear(sorry for bad english) when i started hammer it was gone?!?!? |
| madman - Jun 4, 2008 |
| u guys r n00bs i u no no this stuff COME ON |
[19 extra comments]
|
|
|
|