1 float _spectate(entity _player)
3 if(SpectateNext(_player) == 1)
6 self.classname = "spectator";
11 MUTATOR_HOOKFUNCTION(superspec_SV_ParseClientCommand)
13 if(MUTATOR_RETURNVALUE) // command was already handled?
16 if(self.classname == "player")
19 if(cmd_name == "followpowerup")
22 FOR_EACH_PLAYER(_player)
24 if(_player.strength_finished > time || _player.invincible_finished > time)
25 return _spectate(_player);
27 centerprint(self, "No active powerups\n");
31 if(cmd_name == "followstrength")
34 FOR_EACH_PLAYER(_player)
36 if(_player.strength_finished > time)
37 return _spectate(_player);
39 centerprint(self, "No active Strength\n");
43 if(cmd_name == "followstshield")
46 FOR_EACH_PLAYER(_player)
48 if(_player.invincible_finished > time)
49 return _spectate(_player);
51 centerprint(self, "No active Shield\n");
55 if(cmd_name == "followfc")
71 FOR_EACH_PLAYER(_player)
73 if(_player.flagcarried && (_player.team == _team || _team == 0))
74 return _spectate(_player);
77 centerprint(self, "No active FC\n");
84 MUTATOR_HOOKFUNCTION(superspec_BuildMutatorsString)
86 ret_string = strcat(ret_string, ":SS");
90 MUTATOR_HOOKFUNCTION(superspec_BuildMutatorsPrettyString)
92 ret_string = strcat(ret_string, ", Super Spectators");
97 MUTATOR_HOOKFUNCTION(superspec_PlayerSpawn)
103 MUTATOR_HOOKFUNCTION(superspec_ClientDisconnect)
108 MUTATOR_HOOKFUNCTION(superspec_PlayerPreThink)
114 MUTATOR_DEFINITION(mutator_superspec)
117 MUTATOR_HOOK(BuildMutatorsString, superspec_BuildMutatorsString, CBC_ORDER_ANY);
118 MUTATOR_HOOK(BuildMutatorsPrettyString, superspec_BuildMutatorsPrettyString, CBC_ORDER_ANY);
119 MUTATOR_HOOK(SV_ParseClientCommand, superspec_SV_ParseClientCommand, CBC_ORDER_ANY);
120 //MUTATOR_HOOK(ClientConnect, superspec_ClientConnect, CBC_ORDER_ANY);
121 //MUTATOR_HOOK(PlayerSpawn, superspec_PlayerSpawn, CBC_ORDER_ANY);
122 //MUTATOR_HOOK(PlayerPreThink, superspec_PlayerPreThink, CBC_ORDER_ANY);
123 //MUTATOR_HOOK(ClientDisconnect, superspec_ClientDisconnect, CBC_ORDER_ANY);