X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fgamemode_cts.qc;h=bdaee8c314f66eeb1595a261bca15b31f6df5285;hb=7a21308e015b71524f9cc676e0b327b74b694f66;hp=50aa5e1fc51d48b87c7112c719a6924e2becb01b;hpb=61a847dbaab291d205cc9684b6d1a6e9bdad6375;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/gamemode_cts.qc b/qcsrc/server/mutators/gamemode_cts.qc index 50aa5e1fc..bdaee8c31 100644 --- a/qcsrc/server/mutators/gamemode_cts.qc +++ b/qcsrc/server/mutators/gamemode_cts.qc @@ -1,5 +1,4 @@ #include "gamemode_cts.qh" -#include "../_all.qh" #include "gamemode.qh" @@ -8,7 +7,7 @@ // legacy bot roles .float race_checkpoint; void havocbot_role_cts() -{ +{SELFPARAM(); if(self.deadflag != DEAD_NO) return; @@ -56,8 +55,8 @@ void cts_EventLog(string mode, entity actor) // use an alias for easy changing a GameLogEcho(strcat(":cts:", mode, ":", ((actor != world) ? (strcat(":", ftos(actor.playerid))) : ""))); } -MUTATOR_HOOKFUNCTION(cts_PlayerPhysics) -{ +MUTATOR_HOOKFUNCTION(cts, PlayerPhysics) +{SELFPARAM(); // force kbd movement for fairness float wishspeed; vector wishvel; @@ -107,7 +106,7 @@ MUTATOR_HOOKFUNCTION(cts_PlayerPhysics) return false; } -MUTATOR_HOOKFUNCTION(cts_ResetMap) +MUTATOR_HOOKFUNCTION(cts, reset_map_global) { float s; @@ -141,8 +140,8 @@ MUTATOR_HOOKFUNCTION(cts_ResetMap) return false; } -MUTATOR_HOOKFUNCTION(cts_PlayerPreThink) -{ +MUTATOR_HOOKFUNCTION(cts, PlayerPreThink) +{SELFPARAM(); if(IS_SPEC(self) || IS_OBSERVER(self)) if(g_race_qualifying) if(msg_entity.enemy.race_laptime) @@ -151,8 +150,8 @@ MUTATOR_HOOKFUNCTION(cts_PlayerPreThink) return false; } -MUTATOR_HOOKFUNCTION(cts_ClientConnect) -{ +MUTATOR_HOOKFUNCTION(cts, ClientConnect) +{SELFPARAM(); race_PreparePlayer(); self.race_checkpoint = -1; @@ -178,8 +177,8 @@ MUTATOR_HOOKFUNCTION(cts_ClientConnect) return false; } -MUTATOR_HOOKFUNCTION(cts_MakePlayerObserver) -{ +MUTATOR_HOOKFUNCTION(cts, MakePlayerObserver) +{SELFPARAM(); if(PlayerScore_Add(self, SP_RACE_FASTEST, 0)) self.frags = FRAGS_LMS_LOSER; else @@ -191,8 +190,8 @@ MUTATOR_HOOKFUNCTION(cts_MakePlayerObserver) return false; } -MUTATOR_HOOKFUNCTION(cts_PlayerSpawn) -{ +MUTATOR_HOOKFUNCTION(cts, PlayerSpawn) +{SELFPARAM(); if(spawn_spot.target == "") // Emergency: this wasn't a real spawnpoint. Can this ever happen? race_PreparePlayer(); @@ -206,8 +205,8 @@ MUTATOR_HOOKFUNCTION(cts_PlayerSpawn) return false; } -MUTATOR_HOOKFUNCTION(cts_PutClientInServer) -{ +MUTATOR_HOOKFUNCTION(cts, PutClientInServer) +{SELFPARAM(); if(IS_PLAYER(self)) if(!gameover) { @@ -221,21 +220,21 @@ MUTATOR_HOOKFUNCTION(cts_PutClientInServer) return false; } -MUTATOR_HOOKFUNCTION(cts_PlayerDies) -{ +MUTATOR_HOOKFUNCTION(cts, PlayerDies) +{SELFPARAM(); self.respawn_flags |= RESPAWN_FORCE; race_AbandonRaceCheck(self); return false; } -MUTATOR_HOOKFUNCTION(cts_BotRoles) -{ +MUTATOR_HOOKFUNCTION(cts, HavocBot_ChooseRole) +{SELFPARAM(); self.havocbot_role = havocbot_role_cts; return true; } -MUTATOR_HOOKFUNCTION(cts_PlayerPostThink) -{ +MUTATOR_HOOKFUNCTION(cts, GetPressedKeys) +{SELFPARAM(); if(self.cvar_cl_allow_uidtracking == 1 && self.cvar_cl_allow_uid2name == 1) { if (!self.stored_netname) @@ -251,35 +250,35 @@ MUTATOR_HOOKFUNCTION(cts_PlayerPostThink) return false; } -MUTATOR_HOOKFUNCTION(cts_ForbidThrowing) +MUTATOR_HOOKFUNCTION(cts, ForbidThrowCurrentWeapon) { // no weapon dropping in CTS return true; } -MUTATOR_HOOKFUNCTION(cts_FilterItem) -{ +MUTATOR_HOOKFUNCTION(cts, FilterItem) +{SELFPARAM(); if(self.classname == "droppedweapon") return true; return false; } -MUTATOR_HOOKFUNCTION(cts_PlayerDamage) +MUTATOR_HOOKFUNCTION(cts, PlayerDamage_Calculate) { - if(frag_target == frag_attacker || frag_deathtype == DEATH_FALL) + if(frag_target == frag_attacker || frag_deathtype == DEATH_FALL.m_id) if(!autocvar_g_cts_selfdamage) frag_damage = 0; return false; } -MUTATOR_HOOKFUNCTION(cts_ForbidClearPlayerScore) +MUTATOR_HOOKFUNCTION(cts, ForbidPlayerScore_Clear) { return true; // in CTS, you don't lose score by observing } -MUTATOR_HOOKFUNCTION(cts_SetMods) +MUTATOR_HOOKFUNCTION(cts, SetModname) { g_cloaked = 1; // always enable cloak in CTS @@ -291,23 +290,11 @@ void cts_Initialize() cts_ScoreRules(); } -MUTATOR_DEFINITION(gamemode_cts) +REGISTER_MUTATOR(cts, g_cts) { - MUTATOR_HOOK(PlayerPhysics, cts_PlayerPhysics, CBC_ORDER_ANY); - MUTATOR_HOOK(reset_map_global, cts_ResetMap, CBC_ORDER_ANY); - MUTATOR_HOOK(PlayerPreThink, cts_PlayerPreThink, CBC_ORDER_ANY); - MUTATOR_HOOK(ClientConnect, cts_ClientConnect, CBC_ORDER_ANY); - MUTATOR_HOOK(MakePlayerObserver, cts_MakePlayerObserver, CBC_ORDER_ANY); - MUTATOR_HOOK(PlayerSpawn, cts_PlayerSpawn, CBC_ORDER_ANY); - MUTATOR_HOOK(PutClientInServer, cts_PutClientInServer, CBC_ORDER_ANY); - MUTATOR_HOOK(PlayerDies, cts_PlayerDies, CBC_ORDER_ANY); - MUTATOR_HOOK(HavocBot_ChooseRole, cts_BotRoles, CBC_ORDER_ANY); - MUTATOR_HOOK(GetPressedKeys, cts_PlayerPostThink, CBC_ORDER_ANY); - MUTATOR_HOOK(ForbidThrowCurrentWeapon, cts_ForbidThrowing, CBC_ORDER_ANY); - MUTATOR_HOOK(FilterItem, cts_FilterItem, CBC_ORDER_ANY); - MUTATOR_HOOK(PlayerDamage_Calculate, cts_PlayerDamage, CBC_ORDER_ANY); - MUTATOR_HOOK(ForbidPlayerScore_Clear, cts_ForbidClearPlayerScore, CBC_ORDER_ANY); - MUTATOR_HOOK(SetModname, cts_SetMods, CBC_ORDER_ANY); + g_race_qualifying = 1; + independent_players = 1; + SetLimits(0, 0, 0, -1); MUTATOR_ONADD { @@ -325,7 +312,7 @@ MUTATOR_DEFINITION(gamemode_cts) 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; }