X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fgamemode_ca.qc;h=570fc38016ca43cca22568cab450e85e969dc583;hb=3a035cb2732af064519135410c5664c2e1b3f501;hp=9ad532e909e4dcfd2b56d3d187308db93a999b15;hpb=5f9a104fb3f5ef5f8a68d671425290ea8a6f9843;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/gamemode_ca.qc b/qcsrc/server/mutators/gamemode_ca.qc index 9ad532e90..570fc3801 100644 --- a/qcsrc/server/mutators/gamemode_ca.qc +++ b/qcsrc/server/mutators/gamemode_ca.qc @@ -163,7 +163,7 @@ float ca_isEliminated(entity e) } MUTATOR_HOOKFUNCTION(ca_PlayerSpawn) -{ +{SELFPARAM(); self.caplayer = 1; if(!warmup_stage) eliminatedPlayers.SendFlags |= 1; @@ -171,7 +171,7 @@ MUTATOR_HOOKFUNCTION(ca_PlayerSpawn) } MUTATOR_HOOKFUNCTION(ca_PutClientInServer) -{ +{SELFPARAM(); if(!allowed_to_spawn) if(IS_PLAYER(self)) // this is true even when player is trying to join { @@ -188,9 +188,11 @@ MUTATOR_HOOKFUNCTION(ca_PutClientInServer) } MUTATOR_HOOKFUNCTION(ca_reset_map_players) -{ - FOR_EACH_CLIENT(self) +{SELFPARAM(); + entity e; + FOR_EACH_CLIENT(e) { + setself(e); self.killcount = 0; if(!self.caplayer && IS_BOT_CLIENT(self)) { @@ -208,7 +210,7 @@ MUTATOR_HOOKFUNCTION(ca_reset_map_players) } MUTATOR_HOOKFUNCTION(ca_ClientConnect) -{ +{SELFPARAM(); self.classname = "observer"; return 1; } @@ -226,7 +228,7 @@ MUTATOR_HOOKFUNCTION(ca_GetTeamCount) } entity ca_LastPlayerForTeam() -{ +{SELFPARAM(); entity pl, last_pl = world; FOR_EACH_PLAYER(pl) { @@ -253,7 +255,7 @@ void ca_LastPlayerForTeam_Notify() } MUTATOR_HOOKFUNCTION(ca_PlayerDies) -{ +{SELFPARAM(); ca_LastPlayerForTeam_Notify(); if(!allowed_to_spawn) self.respawn_flags = RESPAWN_SILENT; @@ -263,7 +265,7 @@ MUTATOR_HOOKFUNCTION(ca_PlayerDies) } MUTATOR_HOOKFUNCTION(ca_ClientDisconnect) -{ +{SELFPARAM(); if(self.caplayer == 1) ca_LastPlayerForTeam_Notify(); return 1; @@ -275,7 +277,7 @@ MUTATOR_HOOKFUNCTION(ca_ForbidPlayerScore_Clear) } MUTATOR_HOOKFUNCTION(ca_MakePlayerObserver) -{ +{SELFPARAM(); if(self.caplayer == 1) ca_LastPlayerForTeam_Notify(); if(self.killindicator_teamchange == -2) @@ -326,7 +328,7 @@ MUTATOR_HOOKFUNCTION(ca_PlayerDamage) } MUTATOR_HOOKFUNCTION(ca_FilterItem) -{ +{SELFPARAM(); if(autocvar_g_powerups <= 0) if(self.flags & FL_POWERUP) return true; @@ -353,6 +355,12 @@ MUTATOR_HOOKFUNCTION(ca_PlayerRegen) return true; } +MUTATOR_HOOKFUNCTION(ca_CountFrags) +{ + // announce remaining frags + return true; +} + void ca_Initialize() { allowed_to_spawn = true; @@ -394,6 +402,7 @@ MUTATOR_DEFINITION(gamemode_ca) MUTATOR_HOOK(FilterItem, ca_FilterItem, CBC_ORDER_ANY); MUTATOR_HOOK(PlayerDamage_SplitHealthArmor, ca_PlayerDamage_SplitHealthArmor, CBC_ORDER_ANY); MUTATOR_HOOK(PlayerRegen, ca_PlayerRegen, CBC_ORDER_ANY); + MUTATOR_HOOK(Scores_CountFragsRemaining, ca_CountFrags, CBC_ORDER_ANY); MUTATOR_ONADD { @@ -404,7 +413,7 @@ MUTATOR_DEFINITION(gamemode_ca) MUTATOR_ONREMOVE { - print("This is a game type and it cannot be removed at runtime."); + LOG_INFO("This is a game type and it cannot be removed at runtime."); return -1; }