Slopes & ramps:The most basic way to climb is to use a slope
or ramp. It is also good for a map, being easier to make, to compile and
is low wpoly usually. Yet we can't always use it, because we want maps
varied and kinda realistic, and sometimes slopes/ramps do not fit.
Things to take into consideration when making a slope/ramp are the
angle of slope, slipperyness of the slope, and gravity. If
the slope is too steep one cannot climb it, and if the server raises the
gravity climbing may also be impossible. This leaves us mappers with 3
choices - give a second route that does not depend on the slope, make a
very very shallow slope, or set the gravity on the slope in the map using
a trigger_gravity. All three are good, but the secondary route should be
there anyway to make the map more playable.
Now, if we want to use a trigger_gravity to lock in gravity around the
slope, we should make a block covered with aaatrigger texture to cover the
whole slope. It is ok if there is overlap. Tie the brush to
trigger_gravity, if you did it right it should be invisible in the map.
Now a player can always go up the slope, even if the server has set
gravity higher than normal to begin with. Always test a slope to see if it
is climbable.
The slippery slope: in real life slopes are often slippery, due to
water, ice, oils, or if the slope is talus/made of gravel. The best way to
simulate this is the use the combined func_friction and the trigger_push
entity. Like the trigger_gravity, the func_friction should be a
aaatrigger brush that overlays the whole slope. You can set it to the
slipperyness you desire. However, all around the slope, and also anywhere
that can be jumped to from the slope should be covered with other func_
friction brushes that reset the player's friction back to normal,
otherwise the player will be skating around the rest of the
map.... Since the friction entity doesn't care where the player goes,
the downward effect of gravity isn't really shown. For this it is best to
use a 3rd entity aaatrigger brush, the trigger_push. Like the others, it
should cover the whole slope/ramp and overlap does not matter. The angle
property should be set to push downward (There is a little pulldown menu
there for that.) with a force of 10-40. This should slow a player trying
to "skate up" the slope, which is an oddity that func_friction allows.
Some ways to make the slope/ramp:
- make a block brush, then clip it into a wedge shape. This method is
ok, but be sure to check the .map version of the map afterward to see
that the WC .rmf format to .map format didn't mess up. Quark users
probably do not need to worry about that.
- make a block brush, then vertex manipulate it into a wedge shape.
This method is usually ok, but may result in a bad brush during compile.
So again be sure to check the .map version of the map afterward to see
that the WC .rmf format to .map format didn't mess up. Quark users
probably do not need to worry about that.
- make a wedge brush, then rotate it to fit. This is probably the best
way, especially if you use snap-to-brush modes. It is almost
bulletproof.
|
trigger_gravity This lets you change the gravity that
affects the player. The player will keep this gravity until another
trigger_gravity entity changes it. Properties: targetname,
target, killtarget, netname, master, delay, message, gravity,
sounds, style. Flags: Monsters(hl), No Clients(hl),
Pushables USE: set the gravity between 0-1, 1 =
normal.
|
Func_friction This lets you change the friction that
affects the player. The player will keep this friction until another
func_friction entity changes it. Properties: renderfx,
rendermode, renderamt, rendercolor,
modifier. Flags: Appearflags. USE: set
the modifier property to between 0-100% of normal
friction. Do not forget to set renderfx to 0 so entity is
invisible! Also the players friction must be reset if less than
100% as the player exits the low friction area!
|
trigger_push This is a trigger that acts as a local
wind. Properties: targetname, target, master, killtarget,
delay, sounds, message, speed, style. Flags: Once only,
Start off, Pushables. USE: set the ANGLE to the direction
of push, or to Up/Down. (there is a pulldown menu for the
up/down.) set the speed to 0-2000, 100 stops sideways movement,
2000 is needed for upward, very little is needed for
downward.
| |