X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fgamemode_race.qc;h=271456986d393461bbd21f00030bff8092abda33;hp=3cefc86692f6d6e8fbc9d6a094f424bdc5e4b01c;hb=c51698509e174e343dff48128a1dcfff1527c535;hpb=9eb82dd6fc682e3ddecd471835f9047816236342 diff --git a/qcsrc/server/mutators/gamemode_race.qc b/qcsrc/server/mutators/gamemode_race.qc index 3cefc8669..271456986 100644 --- a/qcsrc/server/mutators/gamemode_race.qc +++ b/qcsrc/server/mutators/gamemode_race.qc @@ -1,5 +1,4 @@ #include "gamemode_race.qh" -#include "../_all.qh" #include "gamemode.qh" @@ -8,7 +7,7 @@ // legacy bot roles .float race_checkpoint; void havocbot_role_race() -{ +{SELFPARAM(); if(self.deadflag != DEAD_NO) return; @@ -64,7 +63,7 @@ void race_EventLog(string mode, entity actor) // use an alias for easy changing } MUTATOR_HOOKFUNCTION(race_PlayerPhysics) -{ +{SELFPARAM(); // force kbd movement for fairness float wishspeed; vector wishvel; @@ -149,7 +148,7 @@ MUTATOR_HOOKFUNCTION(race_ResetMap) } MUTATOR_HOOKFUNCTION(race_PlayerPreThink) -{ +{SELFPARAM(); if(IS_SPEC(self) || IS_OBSERVER(self)) if(g_race_qualifying) if(msg_entity.enemy.race_laptime) @@ -159,7 +158,7 @@ MUTATOR_HOOKFUNCTION(race_PlayerPreThink) } MUTATOR_HOOKFUNCTION(race_ClientConnect) -{ +{SELFPARAM(); race_PreparePlayer(); self.race_checkpoint = -1; @@ -186,7 +185,7 @@ MUTATOR_HOOKFUNCTION(race_ClientConnect) } MUTATOR_HOOKFUNCTION(race_MakePlayerObserver) -{ +{SELFPARAM(); if(g_race_qualifying) if(PlayerScore_Add(self, SP_RACE_FASTEST, 0)) self.frags = FRAGS_LMS_LOSER; @@ -200,7 +199,7 @@ MUTATOR_HOOKFUNCTION(race_MakePlayerObserver) } MUTATOR_HOOKFUNCTION(race_PlayerSpawn) -{ +{SELFPARAM(); if(spawn_spot.target == "") // Emergency: this wasn't a real spawnpoint. Can this ever happen? race_PreparePlayer(); @@ -215,7 +214,7 @@ MUTATOR_HOOKFUNCTION(race_PlayerSpawn) } MUTATOR_HOOKFUNCTION(race_PutClientInServer) -{ +{SELFPARAM(); if(IS_PLAYER(self)) if(!gameover) { @@ -230,20 +229,20 @@ MUTATOR_HOOKFUNCTION(race_PutClientInServer) } MUTATOR_HOOKFUNCTION(race_PlayerDies) -{ +{SELFPARAM(); self.respawn_flags |= RESPAWN_FORCE; race_AbandonRaceCheck(self); return false; } MUTATOR_HOOKFUNCTION(race_BotRoles) -{ +{SELFPARAM(); self.havocbot_role = havocbot_role_race; return true; } MUTATOR_HOOKFUNCTION(race_PlayerPostThink) -{ +{SELFPARAM(); if(self.cvar_cl_allow_uidtracking == 1 && self.cvar_cl_allow_uid2name == 1) { if (!self.stored_netname) @@ -273,6 +272,15 @@ MUTATOR_HOOKFUNCTION(race_GetTeamCount) return false; } +MUTATOR_HOOKFUNCTION(race_CountFrags) +{ + // announce remaining frags if not in qualifying mode + if(!g_race_qualifying) + return true; + + return false; +} + void race_Initialize() { race_ScoreRules(); @@ -294,6 +302,7 @@ MUTATOR_DEFINITION(gamemode_race) MUTATOR_HOOK(GetPressedKeys, race_PlayerPostThink, CBC_ORDER_ANY); MUTATOR_HOOK(ForbidPlayerScore_Clear, race_ForbidClearPlayerScore, CBC_ORDER_ANY); MUTATOR_HOOK(GetTeamCount, race_GetTeamCount, CBC_ORDER_ANY); + MUTATOR_HOOK(Scores_CountFragsRemaining, race_CountFrags, CBC_ORDER_ANY); MUTATOR_ONADD { @@ -311,7 +320,7 @@ MUTATOR_DEFINITION(gamemode_race) 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; }