Q3Radiant Editor Manual
Appendix D: Tricks, Tips, and Tutorials
The death yell that occurs when a player or bot falls into the
void or fog of death is triggered by the falling character passing
through a trigger multiple (should be no less than 32 units thick)
that is targeted on a target_speaker. If you look at q3DM17
and find a target speaker, you will see that it plays the falling
to death sound of the player who activates the trigger. Put
that sound in your own target_speaker.
Apply a mirror texture to brush (it will only work on brushes,
not curve patches). Next, place a misc_portal_surface entity within
64 units of the mirror and at roughly eye level for the character.
Because a mirror shows all that it can "see" the mapmaker needs to
take special care that his mirror doesn't see so much of the map
that it affects game performance.
Rules: A mirror should not be able to see another
mirror or portal surface. This means no mirror mazes or
mirror facing each other to produce infinite reflections.
- Make the brush that contains your pulsing pad texture. It can be
set in the floor or raised up on separate brush.
- Make a trigger_push brush entity that is smaller than the pad
(the id triggers are usually octagonal).
- Create a target_position entity and move it to the height and
location you want. The target position is both the aiming point for
the trigger_push and the highest point (apex) of the assisted
jump.
- Hi-light the trigger first, then the target_position (order is
important).
- Press CTRL + k to connect the two entities (pointing the first
at the second).
- Compile and test it. The first compile needs to be a full or
fast vis. If you need to make adjustments to the target_position,
you only need to use an entities compile.
Lining Up the Pad Texture
The combination of shader keys that make the jump pad pulsing
texture work can be tricky to line up. Try the following methods if
your own attempts bring no joy.
- Make the brush that will be your pad (128x128 units).
- Apply the pad texture. If it doesn't line up, turn off the lock
texture feature and move the pad until it lines up perfectly.
- Lock the texture and move the brush into position.
If that doesn't work:
- Build your brush in place.
- Apply the pad texture so that several corners of the pad circle
are visible.
- Compile a regioned area with the jump pad in it.
- At least one of the pad circles should have a pulsing circle in
it.
- Back in the editor, slide the pad circle with the active pulse
so it fills the pad.
- Recompile. It should work now.
Target the trigger_push that you put above the pad at a
target_position. The player will accelerate until he reaches the
target. Physics does the rest.
Note: The center point of the target must be
higher than the center point of the trigger_push.
- Create all the entities you want the player to spawn with when
he enters the arena, and make sure they are somewhere within the
enclosed space of the map.
- Add a "target_give" entity somewhere in the world.
- Create all the spawn spots you want to be in your map.
- Select the "target_give" entity.
- Select one of the "give on spawn in" entities.
- Hit Ctrl-K in the editor to link the two items together.
- Repeat steps 4 through 6 until the target_give is linked to
all
the entities you wish the player to spawn into the world with.
- Select a spawn spot
- Select the target_give entity
- Hit Ctrl-K in the editor to link the two entities together.
- Repeat steps 8 through 10 until all the spawn spots are linked
to
the target_give entity.
- Compile the map
- Set g_gametype to tournament mode and set fraglimit of 1.
- Get a bunch of your friends to connect into your server and
have
fun playing a "Rocket Arena" style game =)
An alternate use of target_give is how I used it in q3dm10 to
create the
"power tube" that gives you health and armour. The tube has a
trigger_multiple with a wait of 0.5, linked to a target_give which
is linked
to a small health and an armour shard.
This is the shader script taken from the sky.shader that I used
to make a test sky box months and months ago.
In baseq3, make an 'env' folder.
Put your skybox art in here and use this naming
convention:
[skyname]_lf.tga
[skyname]_rt.tga
[skyname]_ft.tga
[skyname]_bk.tga
[skyname]_up.tga
[skyname]_dn.tga
- Make a directory in your quake3 folder with the following path:
quake3/baseq3/textures/[mymapname]
- Make a directory in your quake3 folder with the following path:
- Make a script document called [mymapname].shader
- Make a script document called shaderlist.txt
In shaderlist.txt put [mymapname] on the first line and close
the document.
//*******************************************************
//* Sample environment box shader
//*******************************************************
textures/[mymapname]/[skyname]01
{
qer_editorimage textures/[mymapname]/[skyname]
surfaceparm noimpact
surfaceparm nolightmap
surfaceparm sky
q3map_sun 0.933333 0.541176 03.13725 60 160 11
q3map_surfacelight 100 //lots of diffuse light
skyparms - 512 -
sky env/[skyname]
// the following stuff lays clouds over the skybox map which you may not want with a city skyline
//{
// map textures/skies/dimclouds.tga
//
// tcMod turb 0 0.001 0.5 0.001
// tcMod scale 3 3
// tcMod scroll 0.01 0.01
// blendFunc GL_ONE GL_ONE_MINUS_SRC_COLOR
// depthWrite
//}
//{
// map textures/skies/pjbasesky.tga
// blendfunc GL_ONE GL_ONE
// tcMod scroll -0.01 -0.01
// tcMod scale 5 5
//}
//}
The shooters; shooter_rocket, shooter_grenade, and
shooter_plasma all fire a single projectile when they are triggered
by an event.
- Make a shooter entity (rocket, grenade or plasma)
- Give it a facing (1 to 360 degrees), or,
- Target it at a target_position.
- Give it a random value (potential degrees off target)
- Create an Activator. Make a trigger multiple or target an entity
at the shooter. When the trigger is entered or the entity is taken,
the, shooter is activated.
- If you want a shooter to fire multiple times, target the
activator on two or more target_delays. Set the delay time to a
different value for each (if using a trigger multiple, the WAIT
value on the trigger should be greater than the longest delay on
the target_delay). Target each target_delay on the shooter.
Back | Home | Next