--------------------------------------------------------------------- Admin.qc Release 2 (modified) Well i must say that i liked the code from Doug Keegan a lot, but for our servers it had some flaws. I only did some minor changes to it so it is not a re-write of HIS code. What has changed ? ------------------ The NOEXIT, and TEAMPLAY toggles have been altered so NOEXIT will no longer change just between 0 and 1 but you can give your own number to it with IMPULSE X (where X is the number). Did that for NOEXIT 2 wich is no option in the original source. Same for TEAMPLAY as there are mods outthere who uses TEAMPLAY -1 trough 4, so again you can enter whatever you like and no longer switch only between 0 and 1. TEMP1 added for advanced gameplay. Since a lot of mods outthere use TEMP1 for special features, I added that one too, bind to impulse 111 (change to whatever you like in the admin.qc file) If you have suggestions, ideas, requests, write me at Ed Filofax@zues.stlnet.com -eof- -------------------------- ORIGINAL READ ME ----------------------- Admin.qc Release 2 by Doug Keegan Rip on #quake/NetQuake doug.keegan@tamu.edu ----- OVERVIEW -------- I wanted to be able to run a dedicated server and have a user be able to easily change game parameters while connected as a client, so I write admin.qc. It uses a 3 impulse sequence to give a client admin privileges, and then other impulses are used to perform certain functions, such as: changing levels changing gameplay settings changing environment settings kicking users Specific capabilities are detailed later on. SETUP ----- I figured the best way to distribute this would be in a source-code format, as most people like to integrate new patches with their existing code. Other than admin.qc, a few other changes have to be made to other files. Here are the other changes: In progs.src, before the line 'weapons.qc', add the line: admin.qc At the very end of defs.qc, add the lines: // server admin .float admin; .float indata; .float kick; .entity kicker; In weapons.qc, before the line: if (self.impulse >= 1 && self.impulse <= 8) in the function ImpulseCommands (ie at the beginning of the function), add the lines: // administration password if ((self.admin != 3)&&(self.impulse != 0)) CheckAdmin(); // administration toggles if ((self.admin == 3)&&(self.impulse != 0)) AdminCommands(); USE --- Here is the section of my .rc file that I use to control my server. If any of the impulses are already in use on your setup, change them here and in the constant declaration section at the top of admin.qc // admin setup // ** IMPORTANT: because in *single player* the game is paused until the // ** console is 'sent back up', the code may not appear to not work if you // ** test it with manually sent impulses in a non-multiplayer setup // enables admin until the next level only! change to something 'secret' here // and in the constant section of admin.qc bind o "impulse 150 ; wait ; impulse 152 ; wait ; impulse 154 ; " // toggles Teamplay bind g "impulse 84" // toggles NoExit bind h "impulse 78" // toggles Deathmatch bind j "impulse 68" // toggles Coop bind k "impulse 67" // sets map to start bind l "impulse 83" // also impulse 49 - 54 = map dm1 - dm6 // didn't bind 'em, wanted to save keys // goes to the nextlevel bind u "impulse 76" // starts kick sequence bind i "impulse 75" // yes answer bind y "impulse 121" // no answer bind n "impulse 110" // increase gravity by 100 bind b "impulse 71" // decrease gravity by 100 bind v "impulse 72" // increase friction by 0.5 bind ] "impulse 73" // decrease friction by 0.5 bind [ "impulse 74" // ** also impulse 69 and 70, prompt for fraglimit and timelimit, respectively // ** the next impulse sent will be the new limit for that var. // ** so, impulse 69, followed by impulse 30 would set fraglimit to 30. // ** also impulse 99 will show impulse menu for admins