home *** CD-ROM | disk | FTP | other *** search
- // Admin.qc - Remote Administration of a Quake Server
- //
- // Modified 8/14/96
- //
- // Doug Keegan
- // Rip on IRC/NetQuake
- // doug.keegan@tamu.edu
-
-
- // impulse constants. Change the A_CODEx constants to your 'secret' admin code
-
- float A_CODE1 = 82;
- float A_CODE2 = 105;
- float A_CODE3 = 112;
- float A_DM1 = 49;
- float A_DM2 = 50;
- float A_DM3 = 51;
- float A_DM4 = 52;
- float A_DM5 = 53;
- float A_DM6 = 54;
- float A_TEAMT = 84;
- float A_DMT = 68;
- float A_COOPT = 67;
- float A_JUMP = 76;
- float A_NOEX = 78;
- float A_GRAVU = 71;
- float A_GRAVD = 72;
- float A_FRICU = 73;
- float A_FRICD = 74;
- float A_START = 83;
- float A_SKICK = 75;
- float A_YES = 121;
- float A_NO = 110;
- float A_FRAGL = 69;
- float A_TIMEL = 70;
- float A_MENU = 99;
-
- /*
- ============
- ShowMenu
- ============
- */
- void() ShowMenu =
- {
- local string st;
- sprint(self,"\n\n");
-
- st = ftos(A_TEAMT);
- sprint(self,"Teamplay ");
- if (A_TEAMT < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_DMT);
- sprint(self,"Deathmatch ");
- if (A_DMT < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n");
-
- st = ftos(A_COOPT);
- sprint(self,"Coop ");
- if (A_COOPT < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_NOEX);
- sprint(self,"Noexit ");
- if (A_NOEX < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n");
-
- st = ftos(A_JUMP);
- sprint(self,"Nextlevel ");
- if (A_JUMP < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_START);
- sprint(self,"Map start ");
- if (A_START < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n");
-
- st = ftos(A_FRAGL);
- sprint(self,"Fraglimit ");
- if (A_FRAGL < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_TIMEL);
- sprint(self,"Timelimit ");
- if (A_TIMEL < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n");
-
- st = ftos(A_GRAVU);
- sprint(self,"Gravity up ");
- if (A_GRAVU < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_GRAVD);
- sprint(self,"Gravity dn ");
- if (A_GRAVD < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n");
-
- st = ftos(A_FRICU);
- sprint(self,"Frictn up ");
- if (A_FRICU < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_FRICD);
- sprint(self,"Frictn dn ");
- if (A_FRICD < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n");
-
-
- st = ftos(A_SKICK);
- sprint(self,"Start kick ");
- if (A_SKICK < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_DM1);
- sprint(self,"Map dm1-6 ");
- if (A_DM1 < 100) sprint(self," ");
- sprint(self,st);
- st = ftos (A_DM6);
- sprint(self," - ");
- sprint(self,st);
-
- sprint(self,"\n");
-
- st = ftos(A_YES);
- sprint(self,"Answer yes ");
- if (A_YES < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self," ");
-
- st = ftos(A_NO);
- sprint(self,"Answer no ");
- if (A_NO < 100) sprint(self," ");
- sprint(self,st);
-
- sprint(self,"\n\n");
-
- };
-
- /*
- ============
- CheckAdmin
- ============
- */
- void() CheckAdmin =
- {
- if (self.impulse == A_CODE1)
- {
- self.admin = 1;
- }
- else
- if ((self.impulse == A_CODE2) && (self.admin == 1))
- {
- self.admin = 2;
- }
- else
- if ((self.impulse == A_CODE3) && (self.admin == 2))
- {
- self.admin = 3;
- sprint(self,"\nAdministration privileges enabled\n");
- sprint(self,"Impulse 99 for menu of commands\n");
- }
- else
- if (self.admin != 3) self.admin = 0;
- };
-
- /*
- ==========
- TeamToggle
- ==========
- */
- void() TeamToggle =
- {
- bprint("Teamplay is now ");
- if (cvar("teamplay") == 1)
- {
- bprint("OFF\n");
- localcmd("teamplay 0\n");
- }
- else
- {
- bprint("ON\n");
- localcmd("teamplay 1\n");
- }
- };
-
- /*
- ==========
- DMToggle
- ==========
- */
- void() DMToggle =
- {
- bprint("Deathmatch is now ");
- if (cvar("deathmatch") == 1)
- {
- bprint(" 2\n");
- localcmd("deathmatch 2\n");
- }
- else
- {
- bprint(" 1\n");
- localcmd("deathmatch 1\n");
- }
- bprint("Restarting level with new settings...\n");
- changelevel(mapname);
- };
-
- /*
- ==========
- CoopToggle
- ==========
- */
- void() CoopToggle =
- {
- bprint("Coop is now ");
- if (cvar("coop") == 1)
- {
- bprint(" 0\n");
- localcmd("coop 0\n");
- localcmd("deathmatch 1\n");
- }
- else
- {
- bprint(" 1\n");
- localcmd("deathmatch 0\n");
- localcmd("coop 1\n");
- }
- bprint("Restarting level with new settings...\n");
- changelevel(mapname);
- };
-
- /*
- ==========
- JumptoNext
- ==========
- */
- void() JumptoNext =
- {
- local entity ot;
- ot = find(world, classname, "trigger_changelevel");
- if (!ot || mapname == "start")
- sprint(self,"NextLevel is not defined");
- else
- {
- bprint("Game moved to next level...\n");
- changelevel(ot.map);
- }
- };
-
- /*
- ==========
- ToggleNoExit
- ==========
- */
- void() ToggleNoExit =
- {
- bprint("NoExit is now ");
- if (cvar("noexit") == 1)
- {
- bprint("OFF\n");
- localcmd("noexit 0\n");
- }
- else
- {
- bprint("ON\n");
- localcmd("noexit 1\n");
- }
- };
-
- /*
- ==========
- GravToggle
- ==========
- */
- void() GravToggle =
- {
- local string st;
- local float pad;
-
- pad = cvar("sv_gravity");
- if ( ((pad > 0)&&(self.impulse == A_GRAVD)) || ((pad < 3000)&&(self.impulse == A_GRAVU)) )
- {
- if (self.impulse == A_GRAVD)
- pad = pad - 100;
- else
- pad = pad + 100;
- st = ftos(pad);
- bprint("Gravity is now ");
- bprint(st);
- bprint("\n");
- localcmd("sv_gravity ");
- localcmd(st);
- localcmd("\n");
- }
- else
- {
- if (self.impulse == A_GRAVD)
- sprint(self,"Gravity is at minimum (0)\n");
- else
- sprint(self,"Gravity is at a maximum (3000)\n");
- }
- };
-
- /*
- ==========
- FricToggle
- ==========
- */
- void() FricToggle =
- {
- local string st;
- local float pad;
-
- pad = cvar("sv_friction");
- if ( ((pad > 0)&&(self.impulse == A_FRICD)) || ((pad < 10)&&(self.impulse == A_FRICU)) )
- {
- if (self.impulse == A_FRICD)
- pad = pad - 0.5;
- else
- pad = pad + 0.5;
- st = ftos(pad);
- bprint("Friction is now ");
- bprint(st);
- bprint("\n");
- localcmd("sv_friction ");
- localcmd(st);
- localcmd("\n");
- }
- else
- {
- if (self.impulse == A_FRICD)
- sprint(self,"Friction is at minimum (0)\n");
- else
- sprint(self,"Friction is at a maximum (10)\n");
- }
- };
-
- /*
- ==========
- MapStart
- ==========
- */
- void() MapStart =
- {
- bprint("Game moved to start...\n");
- changelevel("start");
- };
-
- /*
- ==========
- MapDM
- ==========
- */
- void() MapDM =
- {
- if (self.impulse == A_DM1)
- {
- bprint("Game moved to dm1...\n");
- changelevel("dm1");
- }
- if (self.impulse == A_DM2)
- {
- bprint("Game moved to dm2...\n");
- changelevel("dm2");
- }
- if (self.impulse == A_DM3)
- {
- bprint("Game moved to dm3...\n");
- changelevel("dm3");
- }
- if (self.impulse == A_DM4)
- {
- bprint("Game moved to dm4...\n");
- changelevel("dm4");
- }
- if (self.impulse == A_DM5)
- {
- bprint("Game moved to dm5...\n");
- changelevel("dm5");
- }
- if (self.impulse == A_DM6)
- {
- bprint("Game moved to dm6...\n");
- changelevel("dm6");
- }
- };
-
- /*
- ==========
- StartKick
- ==========
- */
- void() StartKick =
- {
- self.kick = 3;
- self.kicker = find(world, classname, "player");
- sprint(self,"Kick ");
- sprint(self,self.kicker.netname);
- sprint(self,"?\n");
- };
-
- /*
- ==========
- DoKick
- ==========
- */
- void() DoKick =
- {
- localcmd("kick ");
- localcmd(self.kicker.netname);
- localcmd("\n");
- self.kick = 0;
- };
-
- /*
- ==========
- NextKick
- ==========
- */
- void() NextKick =
- {
- self.kicker = find(self.kicker, classname, "player");
- if (self.kicker != world)
- {
- sprint(self,"Kick ");
- sprint(self,self.kicker.netname);
- sprint(self,"?\n");
- }
- else
- {
- sprint(self,"End of player list\n");
- self.kick = 0;
- }
- };
-
- /*
- ==========
- ChangeTimeL
- ==========
- */
- void() ChangeTimeL =
- {
- local string s;
- localcmd("timelimit ");
- s = ftos(self.impulse);
- localcmd(s);
- localcmd("\n");
- bprint("Timelimit changed to ");
- bprint(s);
- bprint("\n");
- self.impulse = 0;
- };
-
- /*
- ==========
- ChangeFragL
- ==========
- */
- void() ChangeFragL =
- {
- local string s;
- localcmd("fraglimit ");
- s = ftos(self.impulse);
- localcmd(s);
- localcmd("\n");
- bprint("Fraglimit changed to ");
- bprint(s);
- bprint("\n");
- self.impulse = 0;
- };
-
- /*
- ==========
- AdminCommands
- ==========
- */
- void() AdminCommands =
- {
- if ((self.indata > 0) && (self.impulse != 0))
- {
- if (self.indata == 1) ChangeFragL();
- if (self.indata == 2) ChangeTimeL();
- self.indata = 0;
- }
-
- if (self.impulse == A_FRAGL)
- {
- self.indata = 1;
- sprint(self,"Fraglimit?\n");
- }
- else
- if (self.impulse == A_TIMEL)
- {
- self.indata = 2;
- sprint(self,"Timelimit?\n");
- }
- else
-
- if (self.impulse == A_TEAMT) TeamToggle(); else
- if (self.impulse == A_DMT) DMToggle(); else
- if (self.impulse == A_COOPT) CoopToggle(); else
- if (self.impulse == A_JUMP) JumptoNext(); else
- if (self.impulse == A_NOEX) ToggleNoExit(); else
- if ((self.impulse == A_GRAVU) || (self.impulse == A_GRAVD)) GravToggle(); else
- if ((self.impulse == A_FRICU) || (self.impulse == A_FRICD)) FricToggle(); else
- if (self.impulse == A_START) MapStart(); else
- if ((self.impulse >= A_DM1)&&(self.impulse <= A_DM6)) MapDM(); else
- if (self.impulse == A_SKICK) StartKick(); else
- if (self.impulse == A_YES) DoKick(); else
- if (self.impulse == A_NO) NextKick(); else
- if (self.impulse == A_MENU) ShowMenu();
-
- };
-
-
-