]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/kick_teamkiller/sv_kick_teamkiller.qc
Merge branch 'master' into martin-t/dmgtext
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / kick_teamkiller / sv_kick_teamkiller.qc
index 1772bcc63402ed1970031095c9ed33c039f892e9..d91546af5711fcfa9b9848202cc7c775c3aca151 100644 (file)
@@ -1,6 +1,7 @@
+#include "sv_kick_teamkiller.qh"
 
 float autocvar_g_kick_teamkiller_rate;
-float autocvar_g_kick_teamkiller_mintime;
+float autocvar_g_kick_teamkiller_lower_limit;
 
 REGISTER_MUTATOR(kick_teamkiller, (autocvar_g_kick_teamkiller_rate > 0));
 
@@ -21,10 +22,11 @@ MUTATOR_HOOKFUNCTION(kick_teamkiller, PlayerDies)
        }
 
        int teamkills = PlayerScore_Get(attacker, SP_TEAMKILLS);
-       // don't use the players actual playtime if they just started playing
-       // to avoid kicking players who only teamkilled by mistake just after joining
-       float playtime_minutes = max((time - attacker.alivetime)/60.0, autocvar_g_kick_teamkiller_mintime);
-       if (teamkills >= autocvar_g_kick_teamkiller_rate*playtime_minutes)
+       // use the players actual playtime
+       float playtime = time - CS(attacker).startplaytime;
+       // rate is in teamkills/minutes, playtime in seconds
+       if (teamkills >= autocvar_g_kick_teamkiller_lower_limit &&
+           teamkills >= autocvar_g_kick_teamkiller_rate*playtime/60.0)
        {
                Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_QUIT_KICK_TEAMKILL, attacker.netname);
                dropclient(attacker);