Title : Chase cam, v4.01 Filename : chasecam.zip Version : 4.01 Date : 21 Dec 96 Author : Rob Albin Email : albinatr@apci.net Web site : http://www.apci.net/~albinatr Credits : Ferrara Francesco and Olivier Montanuy for bringing us QuakeC Manual v1.0, Vhold for his Homing Missiles v.001 QC patch, for the good velocity changing examples. Jeff Epler (jepler@inetnebr.com) for Flashlight v2 for the code to the laser-targeter. Type of Mod ----------- Quake C : yes Sound : no MDL : no Format of QuakeC ---------------- unified diff : yes context diff : no .qc files : yes, ver 1.06 progs.dat : yes (If you don't have patch and diff and can't work with .PAT files, check out my Quake-c page listed at the bottom of this file.) Description of the Modification ------------------------------- impulse 30 View-point toggle (Chase view, Normal view) impulse 31 Laser-targeter toggle (Standard, Glowing, off) impulse 200 multiskin impulse up impulse 201 multiskin impulse down Multiskin v1.1 -The server code for Multiskin v1.1 by Dennis Noordsij is built in, the player.mdl is not included, but if you have the player.mdl, you can add it to this game as described in Multiskin. Auto switching -Chase view temporarily auto disables while in water. Quake does not like to track the view between water surfaces. So the chase view avoids it like the plague :) Multi Player -Chase eyes are visible behind a player when in chase view. Haven't run any tests yet, but I've heard it works fine for MP. Single Player -In single player only, your current settings for the targeter and view are saved between levels. (ver40: Also saves HUD state) (Only saves when switching levels, not if you die and restart - they'll auto-switch to what they were when you first entered) (4.01 updates - see below) **** Thanks to: David Weiden Eric Fisher pLaGuE, http://lonestar.texas.net/~plague/ Steve Nadeau Giles Gregg Alan Dabiri For many good ideas and the positive feedback. **** ---------------- IMPULSE SUMMARY ---------------- (from weapons.qc) // ### chase cam mods ### else if (self.impulse == 30) Toggle_chase_cam(); else if (self.impulse == 31) LaserTargeterToggle( self ); else if (self.impulse == 32) Chase_cam_change_zmult(0); // minus else if (self.impulse == 33) Chase_cam_change_zmult(1); // plus else if (self.impulse == 34) Chase_cam_change_dist(0); // minus else if (self.impulse == 35) Chase_cam_change_dist(1); // plus else if (self.impulse == 36) Chasecam_find_monster(0); // minus else if (self.impulse == 37) Chasecam_find_monster(1); // plus else if (self.impulse == 38) Chase_cam_read_temp1(0); // read cvar temp1 into chasecam_dist else if (self.impulse == 39) Chase_cam_read_temp1(1); // read cvar temp1 into chasecam_zmult // ### hot key weapon mod ### else if (self.impulse == 40) HotKey_previous_weapon(); else if (self.impulse == 41) HotKey_weapon(1); // axe else if (self.impulse == 42) HotKey_weapon(2); // grenade else if (self.impulse == 43) HotKey_weapon(3); // rocket else if (self.impulse == 44) HotKey_CycleWeaponReverseCommand(); else if (self.impulse == 45) HotKey_CycleWeaponCommand(); // ### HUD mod ### else if (self.impulse == 50) Spawn_HUD_entity(self, FALSE); // ### Multiskin v1.1 ### else if (self.impulse == 200) Choose_multiskin(0); // up else if (self.impulse == 201) Choose_multiskin(1); // down -------------- VERSION NOTES -------------- [ver 4.01 updates] -Settings between levels (mainly SP feature) Remembered between levels: chasecam state, *distance, *Z offset targeter state HUD state *(centerprint state is correctly remembered now) (* = added in 4.01) Works in the same way as health,ammo, etc. "map e1m1" would turn everything off (default toggle states) "changelevel e1m1" would remember current settings -Distance, Z offset New customize methods, see CHASE VIEW DISTANCE CHANGING below. -Targeter hides during intermissions, if it was on at exit. Looked pretty silly. -Up/Down aiming improvements. Mainly to account for different offsets when customizing. I'm haveing better luck getting the new track function to handle this than in a prev. version. -Base chasecam.cfg script of all alias structures/impulse bindings. It's got the keys I use in it - so it's definitely something you'll want to edit and fix :) -You may wonder what the heck is the deal with the statement 'no more verticle offset variable' in 4.0 updates below, and now I've got a variable to adjust in this ver. I made the multiplier into a variable. It auto-adjusts, but you can set the degree now. (It was riding a wee-bit high last ver. So I'll let you make the call - now I can't be held to blame :) -New cheat function handler for a well known cheat impulse. [ver 4.0 updates] -TRACKING -no more vertical offset variable (still held over for spy tracking function), adjusts based on distance to player. -Reworked down aiming adjustments, pulls forward and down with a smoother grade. -Variable player jumping height Aiming all the way down to eye level has no effect, and jumps with default velocity. Aiming up increases the height based on how high your looking when you jump. -HUD (impulse 50) This is a hack of course, since there's no way in QC to do a real HUD. Only enabled in SP, since it takes over the message area and turns it into a static display. Refreshes every 2.5 seconds to keep on screen, or immediately on a number change. (Displays current weapon abbreviations in chase views.) [ver 3.6 updates] (all updates to spy view) -Fixed player not being able to take damage while in spy view. -View angles line up properly when shifting between different targets and back to player view. -Being able to fire your guns in spy view fixed from version 3.5. (I forgot to un-rem the lines in W_Attack() after some debugging.) [ver 3.5 updates] -Fixed the view switching for the spy view. Instead of switching back and forth from the player it cycles straight through targets. Since the forward/back impulses don't switch back, the toggle for the chasecam (impulse 30) will disable either view. ---------------- HOT-KEY WEAPONS ---------------- Provides hot-key impulses for axe, grenade, and rocket launcher that return to previous weapon. New cycle weapons impulses that don't select these weapons. (NOTE: if you don't use the new impulses, the original weapons' behavior is unchanged. An optional thing.) IMPULSE LIST (from weapons.qc) impulse 40 HotKey_previous_weapon(); impulse 41 HotKey_weapon(1); // axe impulse 42 HotKey_weapon(2); // grenade impulse 43 HotKey_weapon(3); // rocket impulse 44 HotKey_CycleWeaponReverseCommand(); impulse 45 HotKey_CycleWeaponCommand(); CFG file use: alias +axe_hotkey "impulse 41; +attack" alias -axe_hotkey "impulse 40; -attack" alias +grenade_hotkey "impulse 42; +attack" alias -grenade_hotkey "impulse 40; -attack" alias +rocket_hotkey "impulse 43; +attack" alias -rocket_hotkey "impulse 40; -attack" bind "" "+axe_hotkey" bind "" "+grenade_hotkey" bind "" "+rocket_hotkey" // new weapons cycle commands (skips hot-key weapons) bind "" "impulse 44" bind "" "impulse 45" ------------------ CHASE VIEW SPYING ------------------ [credits to Defiance (defienc@ibm.net) for the suggestion on this one] (impulse 30 chasecam toggle, to switch out of spy view) impulse 36 Last monster/player impulse 37 Next monster/player In single player, cycles through living monsters on level. In DM or coop, cycles through other living players on level. Email me if you find any problems with the DM stuff. DM note: When hit in spy view, you take the damage and flip back to normal view. The damage is accurate, but will never drop your health below 1. (Dying in the middle of transition to normal view tested out as buggy.) ----------------------------- CHASE VIEW DISTANCE CHANGING ----------------------------- impulse 32 lower Z offset impulse 33 raise Z offset impulse 34 lower distance impulse 35 increase distance impulse 38 read cvar temp1 into distance impulse 39 read cvar temp1 into Z offset (autoexec.cfg example) ----- alias cc_distance "temp1 80; impulse 38" alias cc_zoffset "temp1 14; impulse 39" bind "l" "cc_distance; wait; wait; cc_zoffset;" ----- Combined with remebering the values between levels, this should make it much easier to customize without having to break into the source and mess with it. All of these additions might seem a bit extreme, but I keep going back and adding them anyway. And the sole reason is because of the people who think the patch is worth a shit, and keep sending me email. Thanks for the support! If I could go back in time and release ver. 1.0 like this, I'd do it, sorry for the delay :) How to Install the Modification ------------------------------- Make a sub-directory in quake called 'chasecam' and copy the new PROGS.DAT to it. Copy autoexec.cfg, config.cfg, and quake.rc from 'id1' into 'chasecam' if they exist. add: bind "" "impulse 30" bind "" "impulse 31" bind "" "impulse 200" bind "" "impulse 201" to autoexec.cfg From directory 'quake' type: quake -game chasecam ************************************** * NEED TO READ * ************************************** Known Bugs: In certain spots walls will dissappear when view is up against them, rare. (Testing location: starting hall e3m7) Under testing every once in a while it still can disable the fire key from restarting the level if you die. Usually if your view gets hung up when you swing your view around crazy-like after your dead (like for testing :) *** Type 'restart' at the console if this happens *** Very rare, when it happens your carcass comes back to life standing up. Time to bring down the console. Copyright and Distribution Permissions -------------------------------------- Authors MAY use these modifications as a basis for other publically available work. You may distribute this Quake modification in any electronic format as long as this description file remains intact and unmodified and is retained along with all of the files in the archive and no fees other than the costs of distribution are charged. Availability ------------ http://www.apci.net/~albinatr/quake-c Online services: MSN Computer Games File Lib FTP: ftp://cdrom.com/pub/quake/quakec/misc/