Zion - the Way of the Quaker Version v0.8 by nikodemos@mindspring.com I would like to thank id software for their fine game, Lee Smith for the amazing proqcc compiler, and SoulScythe for Scrambler!. QuakeC mod - server side patch - no client code necessary! Zion is a patch designed to make both single-player and deathmatch games a lot more interesting, challenging, and over all, fun! The modifications presented here were designed to enhance gameplay without disrupting the balance. Weapons like the sniper rifle offer enhanced capabilities but also penalize the player by consuming more ammo and requiring an extensive reload period. Other, passive modifications add to the "realism" of gameplay. While many of these ideas may have been designed and implemented prior to this release, the code contained within this patch is 100% original with the exception of the original .qc files supplied by id software (c). Current features include: * ricocheting spikes * option for "bouncing" rockets (a MUST see!) * flames (explosions can catch things on fire) * impact: shotgun blasts, rockets knock enemies backwards * dud grenades ... sometimes they just ... well, you'll see! * realistic falling (ouch!) * sniper rifle with laser scope * rocket overheating * dynamic monster allocation (DMA! heh) * client-side intro with help text Installation: Make a directory under \quake and name it what you like (uhm, may I suggest, perhaps, "zion"?) Unzip this progs.dat file into \quake\ If you chose zion, then your path will look like \quake\zion\progs.dat Now run quake with the -game zion option and any other command line parameters you normally use. If you have any special autoexec.cfg, you may wish to copy into the \quake\zion directory as well. Anyone connecting to your server will be able to use this patch, as it does not contain any propietary graphics or sounds. Even though it was next to impossible to resist, I did NOT remove the monster code, so you can use this in single player (gasp!). Just play! How to use this mod: The majority of the functions in this mod are passive, in that the user does not have to do anything special to invoke them. This is obvious with the impact of rockets, grenades, and bullets (knocks the enemy back), is evident with the flames spawned by explosions, and of course the occassional dud grenade. Spikes will rebound about three times before dying, and will slow down in water. For some unknown reason, the additonal velocity added to entities when struck by the rocket has the magical effect of producing spectacular gibs. Enjoy them! Falls are now more realistic .. you are injured based on your vertical velocity. The longer you fall, the harder you hit. A breakdown of Zion features, including dynamic monster allocation, follows. Weapon selection: There are two special weapons, the bouncing rockets and the sniper rifle. These weapons are toggled using impulse commands. To select the sniper rifle, simply select the shotgun (impulse 2) and then hit impulse 2 again. To select the bouncy rockets, simply select the rocket launcher (impulse 7) and then hit impulse 7 again. Once the shotgun or the rocket is selected, hitting that impulse toggles between special and ordinary weapons. Weapon cycling is a little different: it always cycles to the currently selected weapon. For example, if sniper rifle has been selected, then the weapon cycle will go from axe to sniper rifle to super shotgun, etc. If you wish to reselect the shotgun, you must cycle to the sniper rifle and then toggle with impulse 2. The same goes for the rocket. This may seem like a pain in the ass, but these are special weapons. We don't want to make them too easy on you! Sniper rifle: The sniper rifle requires 10 shells. If you have too few, it automatically reverts to the shotgun. If you fire a shot, then go below the necessary ammo, you are reverted to the shotgun. The sniper rifle features the latest in splash-beam scoping technology. A shimmering red splash-beam will illuminate your target. This surrounds the EXACT area that the shot will hit (ignore that damn crosshair!) The sniper rifle takes 5 seconds to load and 3 seconds to wind down from a shot. This means that when you select the sniper rifle, you must wait five seconds to load and set and lock. Once it is locked, the super power of this rifle is almost instaneous! It will thoroughly shred your opponents in half. If it doesn't kill them, it will most certainly knock them across the room. After it is fired, you must wait 3 seconds for it to wind down, then another 5 seconds to reload. Therefore, effectively, you must wait 8 seconds between shots. Hey, it's worth the wait! The sniper bullet is so powerful, it has been known to detonate the victim's rockets and grenades. Bouncing rockets: New technology has brought us the latest in reinforced, impact resistant rockets. These rockets, while depleting your ammo supply by 5, are well worth it. The rocket is super-reinforced to bounce off almost anything. When you fire these puppies, they will ricochet across walls, off of the ground, and bounce around until they hit something or run out of fuel. The rocket works by detecting heat. If it strikes near a source of heat, it will detonate. Please note that while the majority of the time this detonation will be your intended target, mechanisms such as doors and triggers radiate faint heat and will detonate the rocket as well, triggering their mechanism. Also, be very wary of tight spaces ... the rocket doesn't care who fired it, and has no qualms about returning to destroy it's owner! Note carefully the geometry of your surroundings, and also realize it doesn't always rebound in perfect angles - to witness this, try firing one up a wind tunnel! The rocket will run out of fuel after about 10 seconds. The intense heat from the propoulsion system will cause the casing to evaporate, with no fuel left to detonate an explosion. Rocket Overheating: Yes, your rockets can overheat. This is very difficult, but it can happen. Just try sitting in one spot firing rockets continously, and you'll see what I mean. The ignition mechanism adds 0.4 units of heat, the explosion of the exiting rocket adds 0.6 units. The rocket fires at a maximum rate of 1 blast every 0.8 seconds, and cools at a rate of 1 unit every second. Therefore, you basically have, for an unheated rocket, 1 unit added every 0.8 seconds, with 1 unit subtracted every second. You do the math. An overheated rocket (with 3 units of heat or more) will not fire, but the ignition mechanism still triggers, adding 0.4 units every 0.8 seconds (it will eventually cool off). However, BEWARE! Sometimes the rocket launcher will become so hot that the ignition switch fails but the explosives ignite, turning you into a Christmas Tree of DEATH! Bouncing spikes: Those spikes don't always disintegrate! A good spike can bounce up to three times before losing steam. This can be used to your advantage to fire around corners, but be careful - just because they're YOUR spikes doesn't mean that you're immune to them! Also, note that spikes fired into the water will slow down after a short period of time due to the higher viscosity of water. Impacts: For every action, there is an equal and opposite reaction. While you can brace yourself for a well-placed shot and deflect the punch vertically, your targets do not share that luxury. Shotgun blasts, sniper rifle blasts, and impacts from explosives will pick them up and throw them! Flames: The explosives in Quake are not perfect. Sometimes they splash fuel and ignite it almost instantly, causing flames to spring up. These flames will burn until there is nothing to consume. Be careful when launching explosives, sometimes you may be met with a wall of flame. Generally the flames will burn themselves out after a short period of time, but while they're active, they hurt! Duds: Not all grenades are perfect! Sometimes you'll get a dud, which triggers but does not ignite. These will flip harmlessly into the air and evaporate. Dynamic Monster Allocation: I was using this to test my mods on deathmatch levels, and figured, hell, why take 'em out? Basically DMA allows you to dynamically insert monsters into a game. There are two steps to DMA. First, the server must set the "temp1" variable to "255". Type this command: temp1 255 At the server console, or launch the quake like: quake.exe -listen -game zion +temp1 255 This allows monster insertion. If temp1 is not set to 255, monsters cannot be inserted! Alternatively, typing "addmonsters" at the console sets this variable for you (this MUST be the server console). Please note that if you are running as a server in deathmatch mode, the monsters have not been precached. After typing the "addmonsters" command, you must then switch maps to have the monsters precached. If not, your game will crash with an error, or the monsters will spawn incorrectly. A good example would be: quake.exe -game zion -listen +map dm3 addmonsters changelevel dm3 This loads the game as deathmatch, sets the addmonsters, then changes to the same map, ready for insertion. If monster insertion is turned on, simply type one of the following: soldier zombie knight wizard on the server console, and you're in! If you are running your game on a dedicated server, you would want to place commands in an autoexec.cfg file or something. I have not put any remote administration in this release, so it's kind of difficult to do much about monsters from a dedicated server. The monsters are inserted at a random location, and this DOES NOT coincide with the player deathmatch starts. I use a special routine that examines the map and selects a decent location, then inserts the monster. I have not tested this algorithm extensively yet, so you might find some monsters stuck in walls or each other. Please let me know. As a final note, the aliases are not triggered until the console is brought up, so typing multiple "wizard wizard wizard" in the console will only give you one wizard. If you want forty, instead of bringing down the console, just "bind w wizard" and then hit w to your heart's content! If you have any questions/concerns/suggestions/comments for this mod, please e-mail me: nikodemos@mindspring.com. Your input is greatly appreciated! The propietary code contained within this patch, as well as the text of this document, are both (c) 1997 Jayke Savage (nikodemos@mindspring.com)