home *** CD-ROM | disk | FTP | other *** search
/ Quake 'em / QUAKEEM.BIN / quake / programs / admin / admin.qc next >
Encoding:
Text File  |  1996-08-11  |  6.9 KB  |  318 lines

  1. // Admin.qc - Remote Administration of a Quake Server
  2. //
  3. // Released 8/8/96
  4. //
  5. // Doug Keegan
  6. // Rip on IRC/NetQuake
  7. // doug.keegan@tamu.edu
  8.  
  9.  
  10. // impulse constants. Change the A_CODEx constants to your 'secret' admin code
  11.  
  12. float   A_CODE1 = 150;
  13. float   A_CODE2 = 152;
  14. float   A_CODE3 = 154;
  15. float   A_DM1   = 49;
  16. float   A_DM2   = 50;
  17. float   A_DM3   = 51;
  18. float   A_DM4   = 52;
  19. float   A_DM5   = 53;
  20. float   A_DM6   = 54;
  21. float   A_TEAMT = 84;
  22. float   A_DMT   = 68;
  23. float   A_COOPT = 67;
  24. float   A_JUMP  = 76;
  25. float   A_NOEX  = 78;
  26. float   A_GRAVU = 71;
  27. float   A_GRAVD = 72;
  28. float   A_START = 83;
  29. float   A_SKICK = 75;
  30. float   A_YES   = 121;
  31. float   A_NO    = 110;
  32.  
  33.  
  34.  
  35. /*
  36. ============
  37. CheckAdmin
  38. ============
  39. */
  40. void() CheckAdmin =
  41. {
  42.         if (self.impulse == A_CODE1)
  43.         {
  44.                 self.admin = 1;
  45.         }
  46.         else
  47.         if ((self.impulse == A_CODE2) && (self.admin == 1))
  48.         {
  49.                 self.admin = 2;
  50.         }
  51.         else
  52.         if ((self.impulse == A_CODE3) && (self.admin == 2))
  53.         {
  54.                 self.admin = 3;
  55.                 sprint(self,"\nAdministration privileges enabled\n");
  56.         }
  57.         else
  58.         if (self.admin != 3) self.admin = 0;
  59. };
  60.  
  61. /*
  62. ==========
  63. TeamToggle
  64. ==========
  65. */
  66. void() TeamToggle =
  67. {
  68.         bprint("Teamplay is now ");
  69.         if (cvar("teamplay") == 1)
  70.         {
  71.                 bprint("OFF\n");
  72.                 localcmd("teamplay 0\n");
  73.         }
  74.         else
  75.         {
  76.                 bprint("ON\n");
  77.                 localcmd("teamplay 1\n"); 
  78.         }                             
  79. };
  80.  
  81. /*
  82. ==========
  83. DMToggle
  84. ==========
  85. */
  86. void() DMToggle =
  87. {
  88.         bprint("Deathmatch is now ");
  89.         if (cvar("deathmatch") == 1)
  90.         {
  91.                 bprint(" 2\n");
  92.                 localcmd("deathmatch 2\n");
  93.         }
  94.         else
  95.         {
  96.                 bprint(" 1\n");
  97.                 localcmd("deathmatch 1\n"); 
  98.         }
  99.         bprint("Restarting level with new settings...\n");
  100.         changelevel(mapname);
  101. };
  102.  
  103. /*
  104. ==========
  105. CoopToggle
  106. ==========
  107. */
  108. void() CoopToggle =
  109. {
  110.         bprint("Coop is now ");
  111.         if (cvar("coop") == 1)
  112.         {
  113.                 bprint(" 0\n");
  114.                 localcmd("coop 0\n");
  115.                 localcmd("deathmatch 1\n");
  116.         }
  117.         else
  118.         {
  119.                 bprint(" 1\n");
  120.                 localcmd("deathmatch 0\n");
  121.                 localcmd("coop 1\n");
  122.         }
  123.         bprint("Restarting level with new settings...\n");
  124.         changelevel(mapname);
  125. };
  126.  
  127. /*
  128. ==========
  129. JumptoNext
  130. ==========
  131. */
  132. void() JumptoNext =
  133. {
  134.         local entity ot;
  135.         ot = find(world, classname, "trigger_changelevel");
  136.         if (!ot || mapname == "start")     
  137.                 sprint(self,"NextLevel is not defined"); 
  138.         else
  139.         {
  140.                 bprint("Game moved to next level...\n");
  141.                 changelevel(ot.map);
  142.         }
  143. };
  144.  
  145. /*
  146. ==========
  147. ToggleNoExit
  148. ==========
  149. */
  150. void() ToggleNoExit =
  151. {                    
  152.         bprint("NoExit is now ");
  153.         if (cvar("noexit") == 1)
  154.         {
  155.                 bprint("OFF\n");
  156.                 localcmd("noexit 0\n");
  157.         }
  158.         else
  159.         {
  160.                 bprint("ON\n");
  161.                 localcmd("noexit 1\n");
  162.         }           
  163. };
  164.  
  165. /*
  166. ==========
  167. GravToggle
  168. ==========
  169. */
  170. void() GravToggle =
  171. {
  172.         local string st;
  173.         local float  pad;
  174.  
  175.         pad = cvar("sv_gravity");
  176.         if ( ((pad > 0)&&(self.impulse == 72)) || ((pad < 3000)&&(self.impulse == 71)) )
  177.         {
  178.                 if (self.impulse == 72)
  179.                         pad = pad - 100;
  180.                 else
  181.                         pad = pad + 100;
  182.                 st = ftos(pad);
  183.                 bprint("Gravity is now ");
  184.                 bprint(st);
  185.                 bprint("\n");
  186.                 localcmd("sv_gravity ");
  187.                 localcmd(st);
  188.                 localcmd("\n");
  189.          }
  190.          else
  191.          {
  192.                 if (self.impulse == 72)
  193.                         sprint(self,"Gravity is at minimum (0)\n");
  194.                 else
  195.                         sprint(self,"Gravity is at a maximum (3000)\n");
  196.          }
  197. };
  198.  
  199. /*
  200. ==========
  201. MapStart
  202. ==========
  203. */
  204. void() MapStart =
  205. {
  206.         bprint("Game moved to start...\n");
  207.         changelevel("start");
  208. };
  209.  
  210. /*
  211. ==========
  212. MapDM
  213. ==========
  214. */
  215. void() MapDM =
  216. {
  217.         if (self.impulse == A_DM1)
  218.         {
  219.                 bprint("Game moved to dm1...\n");
  220.                 changelevel("dm1");
  221.         }
  222.         if (self.impulse == A_DM2)
  223.         {
  224.                 bprint("Game moved to dm2...\n");
  225.                 changelevel("dm2");
  226.         }
  227.         if (self.impulse == A_DM3)
  228.         {
  229.                 bprint("Game moved to dm3...\n");
  230.                 changelevel("dm3");
  231.         }
  232.         if (self.impulse == A_DM4)
  233.         {
  234.                 bprint("Game moved to dm4...\n");
  235.                 changelevel("dm4");
  236.         }
  237.         if (self.impulse == A_DM5)
  238.         {
  239.                 bprint("Game moved to dm5...\n");
  240.                 changelevel("dm5");
  241.         }
  242.         if (self.impulse == A_DM6)
  243.         {
  244.                 bprint("Game moved to dm6...\n");
  245.                 changelevel("dm6");
  246.         }
  247. };
  248.  
  249. /*
  250. ==========
  251. StartKick
  252. ==========
  253. */
  254. void() StartKick =
  255. {
  256.         self.kick = 3;
  257.         self.kicker = find(world, classname, "player");
  258.         sprint(self,"Kick ");
  259.         sprint(self,self.kicker.netname);
  260.         sprint(self,"?\n");
  261. };
  262.  
  263. /*
  264. ==========
  265. DoKick
  266. ==========
  267. */
  268. void() DoKick =
  269. {
  270.         localcmd("kick ");
  271.         localcmd(self.kicker.netname);
  272.         localcmd("\n");
  273.         self.kick = 0;
  274. };
  275.  
  276. /*
  277. ==========
  278. NextKick
  279. ==========
  280. */
  281. void() NextKick =
  282. {
  283.         self.kicker = find(self.kicker, classname, "player");
  284.         if (self.kicker != world)
  285.         {
  286.                 sprint(self,"Kick ");
  287.                 sprint(self,self.kicker.netname);
  288.                 sprint(self,"?\n");
  289.         }
  290.         else
  291.         {
  292.                 sprint(self,"End of player list\n");
  293.                 self.kick = 0;
  294.         }                 
  295. };
  296.  
  297. /*
  298. ==========
  299. AdminCommands
  300. ==========
  301. */
  302. void() AdminCommands =
  303. {
  304.         if (self.impulse == A_TEAMT) TeamToggle(); else
  305.         if (self.impulse == A_DMT) DMToggle(); else
  306.         if (self.impulse == A_COOPT) CoopToggle(); else
  307.         if (self.impulse == A_JUMP) JumptoNext(); else
  308.         if (self.impulse == A_NOEX) ToggleNoExit(); else
  309.         if ((self.impulse == A_GRAVU) || (self.impulse == A_GRAVD)) GravToggle(); else
  310.         if (self.impulse == A_START) MapStart(); else
  311.         if ((self.impulse >= A_DM1)&&(self.impulse <= A_DM6)) MapDM(); else
  312.         if (self.impulse == A_SKICK) StartKick(); else
  313.         if (self.impulse == A_YES) DoKick(); else
  314.         if (self.impulse == A_NO) NextKick();
  315. };
  316.  
  317.  
  318.