// now change the predator's player model into a stomach model for the prey\r
// in other words, when a player is swallowed by another player, the predator becomes an inward stomach model so the prey can see theirself in the stomach\r
// this is only visible to the prey however, otherwise players would appear as a floating stomach to everyone (ewww)\r
+ stomachmodel = strcat(substring(self.playermodel, 0, strlen(self.playermodel) - 4), "_stomach.md3"); // 4 is the extension length\r
\r
- // don't do this if we have chase_active enabled, as we'd be seeing a floating stomach from third person view\r
- if(other.cvar_chase_active > 0 || other.classname == "observer") // the classname check prevents a bug\r
+ sprint(self, strcat("^7You have to become a player within the next ", ftos(cvar("g_maxplayers_spectator_blocktime")), " seconds, otherwise you will be kicked, because spectators aren't allowed at this time!\n"));\r
+ if(g_cts && self.killindicator && self.killindicator.health == 1) // self.killindicator.health == 1 means that the kill indicator was spawned by CTS_ClientKill\r
+ {\r
+ remove(self.killindicator);\r
+ self.killindicator = world;\r
+\r
+ ClientKill_Now(); // allow instant kill in this case\r
+ if((g_arena || g_ca) && ((champion && champion.classname == "player" && player_count > 1) || player_count == 1)) // don't allow a kill in this case either\r
+ {\r
+ // do nothing\r
+ }\r
+ else\r
+ ClientKill_TeamChange(0);\r
+}\r
+\r
+void CTS_ClientKill (entity e) // silent version of ClientKill, used when player finishes a CTS run. Useful to prevent cheating by running back to the start line and starting out with more speed\r
+{\r
+ e.killindicator = spawn();\r
+ e.killindicator.owner = e;\r
+ e.killindicator.think = KillIndicator_Think;\r
+ e.killindicator.nextthink = time + (e.lip) * 0.05;\r