home *** CD-ROM | disk | FTP | other *** search
/ Quake++ for Quake / Quake++.iso / howto.txt < prev    next >
Encoding:
Text File  |  1996-09-20  |  24.8 KB  |  643 lines

  1. *Before you step ahead , Please registed you game or call 1-800-id-games to order now.
  2.  
  3. This toolkit is for you to modify or create levels for quake.
  4. It may make the modified levels working on the shareware version, but we strongly suggest you to regist, So they can create more powerful game for us.
  5.  
  6. First get an unpacker and unpack everything with the bsp extension.
  7.  
  8. :You may copy the unpack.exe or qube.exe to the  \quake\id\ directory from the tool box;
  9.  
  10. :Make a backup of pak0.pak(in case you have any trouble later) ;
  11.  
  12. :Run " unpack pak0.pak " or " qube -kX pak0.pak " to extract all the files;
  13.  
  14. :Now you shall find out there are few new folders and files appear in id1 directory;
  15.  
  16. :All of graphics, textures, weapons are inside of Progs directory;
  17.  
  18. :All of the sound effects are inside of sound direcotry;
  19.  
  20. :The levels of Game are inside of Maps(e1m1.bsp is game1 level 1 * e2m4 is game2 level 4); 
  21.  
  22. :Rename the pak0.pak to other name;
  23.  
  24. :Have you got any idea yet ? Yes, When Quake start, it will find the pak0.pak first and if it dosen't show then program will read the files from the directory (progs, sound,maps...);
  25.  
  26. :We already browse them all,so you can subchange or change all to create you new 3D game now.
  27.  
  28.  
  29. get makewad2, if you can't find it anywhere else, you can find it in qconvert.
  30. put makewad2 in your id1 directory and run it.  Now you should have a quaketex.wad.
  31.  
  32. Second, get Qbsp, Light, & Vis stuff.  They will all be in a qbsp package...  try cdrom.com in the qbsp_pak_tools section.  Get the ones for registerd version, and get either the DOS or the windows ones.  Make sure they are for the registered version.
  33.  
  34. Make a map, f3 to save a map file, and then at a dos prompt do this:
  35. qbsp mymap  {this will build it}
  36. light mymap {this will put the proper light sources in the right places}
  37. vis mymap {this will optomize kind of}
  38.  
  39. then copy the resulting bsp file to your id1/maps directory.  What?  you don't have a maps directory?  Well just make one.  Now go into quake, pull down the console and type: map mymap.  
  40.  
  41. cool, huh?
  42.  
  43. Notes on map making:
  44. This is not like doom.  You arn't building sectors, you're putting walls together, walls that have thickness.  Think of it as big slabs.  And remember, 4 walls are not enough to make a room, You must not forget to put a cieling and a floor in.
  45.  
  46. The following specs will guide you in making those flickering lights and teleport devices and all the other cool stuff.
  47.  
  48. ----------------------------------------
  49. Quake MAP Specs
  50.  
  51.  
  52. Last Updated: 8/22/96 8:52PM EST
  53.  
  54.  
  55. Info on entities/maps and maintenance by Niklata (Nicholas Dwarkanath)
  56.  
  57. Coordinate System:
  58.  
  59. Quake uses a standard right-handed (X,Y,Z) coordinate system. If you're not familiar with the reference of "right-handed" to a coordinate system, it basically provides a tactile and visual discription of the mechanics of the system. If you point your fingers towards the positive x-axis and bend your fingers so that your knuckles face the positive y-axis, your thumb will point towards the positive z-axis:
  60.  
  61.  
  62.         ^ z+
  63.         |
  64.         |
  65.         |
  66.         |
  67.         |------------> y+
  68.        /
  69.       /
  70.      /
  71.     /
  72.    <
  73.  x+
  74.  
  75.  
  76.  
  77. Some entities also need to have an angle tag that tells the direction it is facing. The values possible are listed below:
  78.  
  79.  
  80. 0-359: Normal Angle (zero == east)
  81. -1: Up
  82. -2: Down
  83.  
  84.  
  85.  
  86. Brushes:
  87.  
  88. Brushes are one of the two primary components of a MAP file. Each brush defines a solid region. Brushes define this region as the intersection of four or more planes. Each plane is defined by three noncolinear points. These points must go in a clockwise orientation:
  89.  
  90.  
  91. 1--2----------------->
  92. |
  93. 3
  94. |
  95. |
  96. |
  97. |
  98. |
  99. ,
  100.  
  101.  
  102. x_off     - Texture x-offset (must be multiple of 16)
  103. y_off     - Texture y-offset (must be multiple of 16)
  104. rot_angle - floating point value indicating texture rotation
  105. x_scale   - scales x-dimension of texture (negative value to flip)
  106. y_scale   - scales y-dimension of texture (negative value to flip)
  107. Many entity/brush combinations can be put into a map file. All MAP files must contain with a worldspawn entity, usually as the first entry. This entry defines all of the normal brushes that make up the structure of the level. There should be only one worldspawn entity per MAP file. Here's the syntax of the worldspawn class:
  108.  
  109.  
  110. "classname" "worldspawn" // Tells Quake to spawn the world
  111. "wad" "DIRPATH"          // tells what graphics (texture) WAD2 file to use.
  112. "message" "TITLE"        // The title of the level
  113. "worldtype" "#"          // Describes time of environment (changes appearance/name of keys)
  114.                          // 0 == Medieval (medieval)
  115.                          // 1 == Runic (metal)
  116.                          // 2 == Present (base)
  117. "sounds" "#"             // Tells the CD player which track to play.
  118. "light" "#"              // Default light level
  119.  
  120.  
  121. Entities are the second major component of Quake MAP files. An entity is basically a bit like a thing, but they also function as triggers and as pathmarkers. 
  122.  
  123. "spawnflags" tag: 
  124.  
  125. General:
  126.  
  127. 256  - Normal Skill or higher
  128. 512  - Hard Skill or higher
  129. 1792 - Appears in deathmatch only
  130.  
  131. item_health:
  132. 1    - Larger Health/Larger Ammo
  133. 2    - Megahealth
  134.  
  135. monster_zombie:
  136. 1    - Crucified Zombie
  137.  
  138.  
  139.  
  140. General Entity syntax:
  141.  
  142. Specifics    Args      Description
  143. --------------------------------------------------------------------------------
  144. "classname"  "name"    // Type of entity to be defined (mandatory)
  145. "origin"     "X Y Z"   // Coordinates of where it starts in space.
  146. "angle"      "#"       // Direction it faces or moves (sometimes in degrees)
  147. "light"      "#"       // Used with the light classname.
  148. "target"     "t#"      // Matches a targetname.
  149. "targetname" "t#"      // Like a linedef tag.
  150. "killtarget" "#"       // Removes target when triggered?
  151. "spawnflags" "#"       // Used to flag/describe an entity that is not default.
  152. "style"      "#"       // Used to flag/describe an entity that is not default.
  153. "message"    "string"  // Message displayed when triggered (\n for linebreaks)
  154. "mangle"     "X Y Z"   // Point where the intermission camera looks at
  155.  
  156. specifics/args present only in models:
  157.  
  158. "speed"      "#"       // How fast the model is moved.
  159. "wait"       "#"       // How long a pause between completion of movement or
  160.                        // return to original position (in seconds or 10ths)
  161. "lip"        "#"       // Seems to be a means of adjusting the starting position.
  162. "dmg"        "#"       // How much damage the model causes when it shuts on you?
  163. "health"     "#"       // How much damage the model takes before it triggers
  164. "delay"      "#"       // Time before event is triggered
  165. "sounds"     "#"       // How much damage the model causes when it shuts on you?
  166. "wad"        "wadfile" // The wad2 graphics file used by the world for textures.
  167. "height"     "#"       // How high a platform will raise
  168.  
  169. All known entities (current for Shareware Quake 1.01):
  170.  
  171.  
  172. air_bubbles                   : Rising bubbles
  173.  
  174. ambient_drip                  : Dripping sound
  175. ambient_drone                 : Engine/machinery sound
  176. ambient_comp_hum              : Computer background sounds
  177. ambient_flouro_buzz           : Flourescent buzzing sound
  178. ambient_light_buzz            : Buzzing sound from light
  179. ambient_suck_wind             : Wind sound
  180. ambient_swamp1                : Frogs croaking
  181. ambient_swamp2                : Slightly different sounding frogs croaking
  182. ambient_thunder               : Thunder sound
  183.  
  184. event_lightning               : Lightning (Used to kill Cthon, shareware boss)
  185.  
  186. func_door                     : Door
  187. func_door_secret              : A door that is triggered to open
  188. func_wall                     : A moving wall?
  189. func_button                   : A button
  190. func_train                    : A platform (moves along a "train")
  191. func_plat                     : A lift/elevator
  192. func_dm_only                  : A teleporter that only appears in deathmatch
  193. func_illusionary              : Creates brush that appears solid, but isn't.
  194.  
  195. info_null                     : Used as a placeholder (removes itself)
  196. info_notnull                  : Used as a placeholder (does not remove itself)
  197. info_intermission             : Cameras positioning for intermission (?)
  198. info_player_start             : Main player starting point (only one allowed)
  199. info_player_deathmatch        : A deathmatch start (more than one allowed)
  200. info_player_coop              : A coop player start (more than one allowed)
  201. info_player_start2            : Return point from episode
  202. info_teleport_destination     : Gives coords for a teleport destination using a targetname
  203.  
  204. All item_ tags may have a target tag.  It triggers 
  205. the event when the item is picked up.
  206.  
  207. item_cells                    : Ammo for the Thunderbolt
  208. item_rockets                  : Ammo for Rocket/Grenade Launcher
  209. item_shells                   : Ammo for both Shotgun and SuperShotgun
  210. item_spikes                   : Ammo for Perforator and Super Perforator
  211. item_weapon                   : Generic weapon class
  212. item_health                   : Medkit
  213. item_artifact_envirosuit      : Environmental Protection Suit
  214. item_artifact_super_damage    : Quad Damage
  215. item_artifact_invulnerability : Pentagram of Protection
  216. item_artifact_invisibility    : Ring of Shadows (Invisibility)
  217. item_armorInv                 : Red armor
  218. item_armor2                   : Yellow armor
  219. item_armor1                   : Green armor
  220. item_key1                     : Silver Key
  221. item_key2                     : Gold Key
  222. item_sigil                    : Sigil (a rune)
  223.  
  224. light                         : A projected light. No visible lightsource.
  225. light_torch_small_walltorch   : Small wall torch (gives off light)
  226. light_flame_large_yellow      : Large yellow fire (gives off light)
  227. light_flame_small_yellow      : Small yellow fire (gives off light)
  228. light_flame_small_white       : Small white fire  (gives off light)
  229. light_fluoro                  : Fluorescent light? (Gives off light, humming sound?)
  230. light_fluorospark             : Fluorescent light? (Gives off light, makes sparking sound)
  231. light_globe                   : Light that appears as a globe sprite
  232.  
  233. monster_army                  : Grunt
  234. monster_dog                   : Attack dog
  235. monster_ogre                  : Ogre
  236. monster_ogre_marksman         : Ogre (synonymous with monster_ogre)
  237. monster_knight                : Knight
  238. monster_zombie                : Zombie
  239. monster_wizard                : Scragg (Wizard)
  240. monster_demon1                : Fiend (Demon)
  241. monster_shambler              : Shambler
  242. monster_boss                  : Cthon (Boss of Shareware Quake)
  243. monster_enforcer              : Enforcer
  244. monster_hell_knight           : Hell Knight
  245. monster_shalrath              : Shalrath
  246. monster_tarbaby               : Slime
  247. monster_fish                  : Fish
  248. monster_oldone                : Shubb-Niggurath
  249.                                        (requires a misc_teleportrain and a info_intermission)
  250.  
  251. misc_fireball                 : Small fireball (gives off light, harms player)
  252. misc_explobox                 : Large Nuclear Container
  253. misc_explobox2                : Small Nuclear Container
  254. misc_teleporttrain            : Spiked ball needed to telefrag monster_oldone
  255.  
  256. path_corner                   : Used to define path of func_train platforms
  257.  
  258. trap_spikeshooter             : Shoots spikes (nails)
  259. trap_shooter                  : Fires nails without needing to be triggered.
  260.  
  261. trigger_teleport              : Teleport (all trigger_ tags are triggered by walkover)
  262. trigger_changelevel           : Changes to another level
  263. trigger_setskill              : Changes skill level
  264. trigger_counter               : Triggers action after it has been triggered count times.
  265. trigger_once                  : Triggers action only once
  266. trigger_multiple              : Triggers action (can be retriggered)
  267. trigger_onlyregistered        : Triggers only if game is registered (registered == 1)
  268. trigger_secret                : Triggers action and awards secret credit.
  269. trigger_monsterjump           : Causes triggering monster to jump in a direction
  270. trigger_relay                 : Allows delayed/multiple actions from one trigger 
  271. trigger_push                  : Pushes a player in a direction (like a windtunnel)
  272. trigger_hurt                  : Hurts whatever touches the trigger
  273.  
  274. weapon_supershotgun           : Super Shotgun
  275. weapon_nailgun                : Perforator
  276. weapon_supernailgun           : Super Perforator
  277. weapon_grenadelauncher        : Grenade Launcher
  278. weapon_rocketlauncher         : Rocket Launcher
  279. weapon_lightning              : Lightning Gun
  280.  
  281.  
  282.  
  283.  
  284. Entity 'class' examples
  285.  
  286.  
  287. Lights
  288.  
  289. For all light-emmitting entities, spawnflags and style have special meanings:
  290.  
  291.  
  292. Spawnflags:
  293. 0 - Light starts on.  Switches off when triggered.
  294. 1 - Light starts off.  Switches on when triggered.
  295.  
  296. Style:
  297. 0  - normal
  298. 1  - flicker (first variety)
  299. 2  - slow strong pulse
  300. 3  - candle (first variety)
  301. 4  - fast strobe
  302. 5  - gentle pulse
  303. 6  - flicker (second variety)
  304. 7  - candle (second variety)
  305. 8  - candle (third variety)
  306. 9  - slow strobe
  307. 10 - flourescent flicker
  308. 11 - slow pulse, not fading to black
  309.    
  310.    styles 32-62 are assigned by the light program for switchable lights
  311.  
  312. 63 - testing
  313.  
  314.  
  315. Regular Light:
  316.  
  317.  
  318.     "classname" "light"
  319.     "light" "#"         // Tells how bright the light is (optional - default 200)
  320.     "style" "#"         // How the light appears
  321.     "spawnflags" "#"    // State light starts in
  322.     "targetname" "#"    // Target id of the light
  323.  
  324.  
  325. Fluorescent Light:
  326.  
  327.     "classname" "light_fluoro"
  328.     "light" "#"         // Tells how bright the light is (optional - default 200)
  329.     "style" "#"         // How the light appears
  330.     "spawnflags" "#"    // State light starts in
  331.     "targetname" "#"    // Target id of the light
  332.  
  333. Fluorescent Light (makes sparking sound):
  334.     "classname" "light_fluorospark"
  335.     "light" "#"         // Tells how bright the light is (optional - default 200)
  336.     "style" "#"         // How the light appears
  337.     "spawnflags" "#"    // State light starts in
  338.     "targetname" "#"    // Target id of the light
  339.  
  340. Torches:
  341.  
  342.     "classname" "light_torch_small_walltorch"
  343.     "light" "#"         // Tells how bright the light is (optional - default 200)
  344.     "style" "#"         // How the light appears
  345.     "spawnflags" "#"    // State light starts in
  346.     "targetname" "#"    // Target id of the light
  347.  
  348. Fire:
  349.  
  350. "classname" "light_flame_large_yellow, light_flame_small_yellow, light_flame_small_white"
  351. "light" "#"         // Tells how bright the light is (optional)
  352. "origin" "X Y Z"
  353.  
  354.  
  355.  
  356. Player Movement Entities
  357.  
  358.  
  359. Level Change Trigger (attaches to brush):
  360.  
  361.     "classname" "trigger_changelevel"
  362.     "map" "mapname"  // Map to change to on trigger (e.g. e1m8)
  363.     "spawnflags" "#" // Flags describing the object (optional)
  364.  
  365. Teleport Trigger (attaches to brush):
  366.  
  367.     "classname" "trigger_teleport"
  368.     "target" "t#"     // Teleport destination name to teleport to.
  369.     "targetname" "t#" // Trigger name (optional) - only teleports once
  370.                                              activated if targetname is present.
  371. Teleport Destination:
  372.  
  373.     "classname" "info_teleport_destination"
  374.     "angle" "#"       // angle the player will face upon leaving teleport
  375.     "targetname" "t#" // Teleport's trigger name
  376.  
  377.  Movers
  378.  
  379.  
  380. Door (attaches to brush):
  381.  
  382.     "classname" "func_door, func_door_secret"
  383.     "angle" "#"      // angle it faces
  384.     "speed" "#"      // speed of movement
  385.     "targetname" "#" // Door's trigger name
  386.     "sounds" "#"     // sound it makes
  387.     "wait" "#"       // delay before closing
  388.     "spawnflags "#"       // Flags describing the object (optional)
  389.     "lip" "#"        // some kind of offset (optional)
  390.  
  391. Spawns on certain skill levels (controlled by spawnflags), can be removed by a trigger. (attaches to brush):
  392.  
  393.     "classname" "func_wall"
  394.     "spawnflags" "#" // flags for something (optional I'd guess)
  395.  
  396. A platform (i.e. lift or elevator, attaches to brush):
  397.  
  398.     "classname" "func_plat"
  399.     "height" "#" // height it rises? (optional)
  400.     "sounds" "#" // sound it makes (optional)
  401.  
  402. Moving platform (Attaches to brush):
  403.  
  404.     "classname" "func_train"
  405.     "sounds" "#"      // Sound it makes when activated
  406.     "speed" "#"       // Speed at which it moves (optional)
  407.     "target" "t#"     // Trigger name of its first path_corner destination
  408.     "targetname" "t#" // Its trigger name
  409.     "dmg" "#"         // Damage done on crush
  410.  
  411. Describes path of train/monsters:
  412.  
  413.     "classname" "path_corner"
  414.     "origin" "X Y Z"
  415.     "target" "t#"     // Trigger name of next train destination.
  416.     "targetname" "t#" // It's trigger name.
  417.  
  418.  
  419.  
  420.  
  421. Triggers/Switches
  422.  
  423.  
  424. A button/switch (attaches to brush):
  425.  
  426.     "classname" "func_button"
  427.     "angle" "#"   // Angle button moves?
  428.     "speed" "#"   // Speed it moves in?
  429.     "target" "t#" // Trigger name of target entity
  430.     "health" "#"  // If there is health, button is shootable
  431.     "sounds" "#"  // Sound it makes when activated
  432.                                       // 1 == Steam Metal
  433.                                       // 2 == Wooden Clunk
  434.                                       // 3 == Metallic Click
  435.                                       // 4 == In-Out
  436.     "wait" "#"    // Wait until retrigger? (-1 stays pressed)
  437.     "delay" "#"   // Delay before action is triggered
  438.  
  439. Walk-over trigger (attaches to brush):
  440.  
  441.     "classname" "trigger_once, trigger_multiple, trigger_onlyregistered, trigger_secret"
  442.     "style" "#"       // 32 works
  443.     "killtarget" "t#" // Kills something [for triggering monster events] (optional)
  444.     "target" "t#"     // Trigger name of target
  445.     "sounds" "#"      // Sound made when triggered
  446.                                           // 1 == Secret Sound
  447.                                           // 2 == Beep Beep
  448.                                           // 3 == Large Switch
  449.                                           // 4 == Set "message" to text string
  450.     "wait" "#"        // Delay before retrigger. some classes only. (optional)
  451.     "delay" "#"       // Delay before action is triggered
  452.  
  453.  
  454. Triggers target after it is triggered count times:
  455.  
  456.     "classname" "trigger_counter" 
  457.     "targetname" "t#" // Its trigger name
  458.     "target" "t#"     // Trigger name of its target
  459.     "count" "#"       // Decrements on each trigger.  When 0 activates target.
  460.     "wait" "#"        // Required delay before retrigger
  461.     "delay" "#"       // Delay before action is triggered
  462.  
  463. Used to stagger events on a trigger:
  464.  
  465.     "classname" "trigger_relay"
  466.     "origin" "X Y Z"  // Where it is located
  467.     "killtarget" "#"  // Removes targeted entity (optional)
  468.     "targetname" "t#" // Its trigger name
  469.     "target" "t#"     // Trigger name of its target
  470.     "delay" "#"       // Delay before action is triggered
  471.  
  472. Makes a monster jump when it reaches a brush:
  473.  
  474.     "classname" "trigger_monsterjump"
  475.     "speed" "#"       // Forward velocity of the monster jump
  476.     "height" "#"      // How high the monster jumps
  477.     "angle" "#"       // Angle towards which the monster jumps
  478.  
  479. An invisible brush?:
  480.  
  481.     "classname" "func_illusionary"
  482.  
  483.  
  484.  
  485.  
  486. Traps/Things harmful to you:
  487.  
  488.  
  489. Triggerable Nail-firing trap:
  490.  
  491.     "classname" "trap_spikeshooter"
  492.     "angle" "#"       // Angle the trap fires at
  493.     "targetname" "t#" // Trap's trigger name
  494.     "spawnflags" "#"  // ??? 1024 works
  495.  
  496. Constant Nail-firing trap:
  497.  
  498.  
  499.     "classname" "trap_shooter"
  500.     "angle" "#"       // Angle the trap fires at
  501.     "spawnflags" "#"  // ??? 1024 works
  502.     "wait" "#"        // Time between shots
  503.  
  504. Fireballs:
  505.  
  506.     "classname" "misc_fireball"
  507.     "speed" "#" // Tells how fast the fireball moves
  508.  
  509.  
  510.  
  511. Miscellaneous:
  512.  
  513.  
  514.  
  515. Pushes the player in a direction:
  516.  
  517.     "classname" "trigger_push"
  518.     "speed" "#"       // Force of the push
  519.     "angle" "#"       // Direction player is pushed towards (-1=up -2=down, other=normal)
  520.  
  521. Cameras for the intermission screen:
  522.  
  523.  
  524.     "classname" "info_intermission"
  525.     "mangle" "X Y Z" // location the camera looks at
  526.     "angle" "#"      // angle of the camera
  527.  
  528. Setting difficulty level (attaches to brush):
  529.     "classname" "trigger_setskill"
  530.     "message" "#"   // Skill level to change to.
  531.  
  532.  
  533. Lightning used to kill the boss of shareware.  I'll figure out how to use
  534. it later...  I pretty much know how, I just want to test it before I
  535. put it here :).  From the testing I've done, the lightning produced will
  536. not damage a player, however.  It probably triggers a script to give the
  537. boss character damage.
  538.  
  539.     "classname" "event_lightning"
  540.     "origin" "X Y Z"  // location of lightning (origin?)
  541.     "targetname" "t#" // It's trigger name
  542.  
  543.  
  544.  
  545.  
  546.  Level Structures
  547.  
  548.  
  549.  Moving Platforms:
  550.  
  551.  
  552. Creating a moving platform isn't that difficult.   Here's an example:
  553.  
  554.  
  555. "classname" "func_train"
  556. "sounds" "1"
  557. "speed" "128"
  558. "target" "t1dest1"
  559. "targetname" "t1"
  560.  
  561. (attach it to brush)
  562.  
  563. Now you define each of the path_corners it will travel to.  When it reaches
  564. a path_corner, it will float to the next path_corner defined in the target
  565. tag of the path_corner.  The platform will start at the path_corner pointed
  566. to by the platform's target tag.  It will continue the loop indefinitely
  567. and it will go through walls to get to its destination.  Here's its path_corners
  568. would look like:
  569.  
  570. "classname" "path_corner"
  571. "targetname" "t1dest1"
  572. "target"" "t1dest2"
  573.  
  574. "classname" "path_corner"
  575. "origin" "0 128 0"
  576. "targetname" "t1dest2"
  577. "target"" "t1dest1"
  578.  
  579. Monsters and Triggers:
  580.  
  581.  
  582. Have you been wondering how you can get events to trigger when a monster dies, as first
  583. seen in E1M2 with the demons?  Well, it's not too difficult.  When you attach a
  584. target tag to a monster, the monster's death will trigger the event.  I believe
  585. (not tested) that if other monsters have a targetname tag the same as a monster
  586. with the target tag, the target event will only occur when all monsters with
  587. a matching targetname tag are dead.  The monster with the target tag need not
  588. have the targetname tag.
  589.  
  590.  
  591.  
  592. How to use trigger_count:
  593.  
  594. The trigger_count class is quite an interesting trigger. You know of the area in E1M1 where you have to hit the three switches to open the door? Well, that's done using a trigger_counter. Each of the buttons you hit has its target property set so it points to a trigger_counter. The trigger_counter has its count tag set to three. Each time a switch is hit, the trigger_counter's count property will decrement by one. When it reaches zero, it will open the door. Each button can only be triggered once as it has a wait of -1. Here's an example given to me by Remco Stoffer:
  595.  
  596.  
  597.  "classname"    "func_door"
  598.  "targetname"    "door2"
  599.  "target"        "light1"
  600.  "angle"    "-1"
  601.  "wait" "-1"
  602.  "sounds" "4"
  603.  "message"   "press all buttons"
  604.  
  605.  "classname"      "trigger_counter"
  606.  "count"          "3"
  607.  "targetname"     "door1"
  608.  "target"         "door2"
  609.  "wait"           "-1"
  610.  
  611.  "classname"      "func_button"
  612.  "angle"          "0"
  613.  "wait"           "-1"
  614.  "target"         "door1"
  615.  
  616.  "classname"      "func_button"
  617.  "angle"          "0"
  618.  "wait"           "-1"
  619.  "target"         "door1"
  620.  
  621.  "classname"      "func_button"
  622.  "angle"          "0"
  623.  "wait"           "-1"
  624.  "target"         "door1"
  625.  
  626.  
  627. Teleporting Monsters:
  628.  
  629. Unlike in Doom-Engine games, you can precisely teleport monsters into new locations in Quake. To do so, you must first create a out of reach area for the monsters to reside in. Give this area a trigger_teleport tag and assign a targetname tag to it. Create a teleport_destination where you want the monster to appear. Now, you must create a trigger whose target property points to the trigger_teleport's targetname. When this trigger is activated, the monster in the room will teleport to the teleport_destination. Make sure that there is only one monster per room and one room per teleport_destination. Otherwise, when the teleport is triggered, all the monsters will telefrag each other (like what happens in E1M7 when you win).
  630.  
  631. Properties of Buttons:
  632.  
  633. The behavior of buttons can be altered in many ways. By default, buttons are activated by pressing them (moving near them). Buttons can be made shootable by giving them a health tag. Unless you want to have to shoot the button tons of times, set the health tag to "1". If you want to have the button flash when you shoot it, you must include all of the button animation textures in the level. You can just put them on brushes outside the level. 
  634.  
  635.  
  636. ------------------------------------------------------------------------
  637.  
  638.  
  639. Quake is ⌐1996 id Software. Some information about entities was obtained from the Unofficial Quake Specs, a truly awesome reference guide to Quake editing.
  640.  
  641. Disclaimer: This document is provided as is and may not be perfect. I do not guarentee the validity of any of the information in it. I will not be held liable or responsible for any damages caused from use or misuse of the information contained within this document.
  642.  
  643.