<html> <head> <title>Q3Radiant Editor Manual: Appendix D</title> <link rel = "stylesheet" type = "text/css" href = "../styles/q3rad.css"> </head> <body> <h1 class = "MsoTitle">Q3Radiant Editor Manual</h1> <hr> <h1>Appendix D: Tricks, Tips, and Tutorials</h1> <h2><a name = "deathsnd">Making the death fall sound…</a></h2> 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. <h2><a name = "mirror">Making a Mirror …</a></h2> 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. <ul><b>Rules</b>: 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.</ul> <h2><a name = "jumppad">Making a Jump Pad</a></h2> <ol><li>Make the brush that contains your pulsing pad texture. It can be set in the floor or raised up on separate brush. <li>Make a trigger_push brush entity that is smaller than the pad (the id triggers are usually octagonal). <li>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. <li>Hi-light the trigger first, then the target_position (order is important). <li>Press CTRL + k to connect the two entities (pointing the first at the second). <li>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.</ol> <p><div class = "subheading">Lining Up the Pad Texture</div> 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. <ol><li>Make the brush that will be your pad (128x128 units). <li>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. <li>Lock the texture and move the brush into position.</ol> <p>If that doesn't work: <ol><li>Build your brush in place. <li>Apply the pad texture so that several corners of the pad circle are visible. <li>Compile a regioned area with the jump pad in it. <li>At least one of the pad circles should have a pulsing circle in it. <li>Back in the editor, slide the pad circle with the active pulse so it fills the pad. <li>Recompile. It <i>should</i> work now.</ol> <h2><a name = "launchpad">Making a Launch Pad</a></h2> 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. <p><b>Note:</b> The center point of the target must be <i> higher</i> than the center point of the trigger_push. <h2><a name="RA3">Making a "Rocket Arena" style map</a></h2> <ol><li>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. <li>Add a "target_give" entity somewhere in the world. <li>Create all the spawn spots you want to be in your map. <li>Select the "target_give" entity. <li>Select one of the "give on spawn in" entities. <li>Hit Ctrl-K in the editor to link the two items together. <li>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. <li>Select a spawn spot <li>Select the target_give entity <li>Hit Ctrl-K in the editor to link the two entities together. <li>Repeat steps 8 through 10 until all the spawn spots are linked to the target_give entity. <li>Compile the map <li>Set g_gametype to tournament mode and set fraglimit of 1. <li>Get a bunch of your friends to connect into your server and have fun playing a "Rocket Arena" style game =)</ol> <p>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. <h2><a name = "envbox">Making an Environment Box …</a></h2> This is the shader script taken from the sky.shader that I used to make a test sky box months and months ago. <p>In baseq3, make an 'env' folder. <p>Put your skybox art in here and use this naming convention: <p>[skyname]_lf.tga <br>[skyname]_rt.tga <br>[skyname]_ft.tga <br>[skyname]_bk.tga <br>[skyname]_up.tga <br>[skyname]_dn.tga <ul><li>Make a directory in your quake3 folder with the following path: <ul><span class = "type">quake3/baseq3/textures/[mymapname]</span></ul> <li>Make a directory in your quake3 folder with the following path: <ul><span class = "type">quake3/baseq3/scripts</span></ul> <li>Make a script document called [mymapname].shader <li>Make a script document called shaderlist.txt</ul> <p>In shaderlist.txt put [mymapname] on the first line and close the document. <p><pre style = "font-size: 10pt"> //******************************************************* //* 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 //} //}</pre> <h2><a name = "shooter">Making a Shooter</a></h2> The shooters; shooter_rocket, shooter_grenade, and shooter_plasma all fire a single projectile when they are triggered by an event. <ul><li>Make a shooter entity (rocket, grenade or plasma) <li>Give it a facing (1 to 360 degrees), or, <li>Target it at a target_position. <li>Give it a random value (potential degrees off target) <li>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. <li>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.</ul> <p align = "center"><a href = "appn_c.htm">Back</a> | <a href = "../index.htm">Home</a> | <a href = "appn_e.htm">Next</a> </body> </html>