#include "sv_cts.qh"
+#include <server/client.qh>
#include <server/race.qh>
-#include <server/items.qh>
+#include <server/world.qh>
+#include <server/gamelog.qh>
+#include <server/intermission.qh>
+#include <server/items/spawning.qh>
+#include <server/weapons/common.qh>
+#include <common/mapobjects/triggers.qh>
float autocvar_g_cts_finish_kill_delay;
bool autocvar_g_cts_selfdamage;
+bool autocvar_g_cts_removeprojectiles;
// legacy bot roles
.float race_checkpoint;
Score_NicePrint(NULL);
race_ClearRecords();
- PlayerScore_Sort(race_place, 0, 1, 0);
+ PlayerScore_Sort(race_place, 0, true, false);
FOREACH_CLIENT(true, {
if(it.race_place)
entity player = M_ARGV(0, entity);
if(GameRules_scoring_add(player, RACE_FASTEST, 0))
- player.frags = FRAGS_LMS_LOSER;
+ player.frags = FRAGS_PLAYER_OUT_OF_GAME;
else
player.frags = FRAGS_SPECTATOR;
frag_target.respawn_flags |= RESPAWN_FORCE;
race_AbandonRaceCheck(frag_target);
+
+ if(autocvar_g_cts_removeprojectiles)
+ {
+ IL_EACH(g_projectiles, it.owner == frag_target && (it.flags & FL_PROJECTILE),
+ {
+ delete(it);
+ });
+ }
}
MUTATOR_HOOKFUNCTION(cts, HavocBot_ChooseRole)
{
entity player = M_ARGV(0, entity);
- if(CS(player).cvar_cl_allow_uidtracking == 1 && CS(player).cvar_cl_allow_uid2name == 1)
+ if(CS_CVAR(player).cvar_cl_allow_uidtracking == 1 && CS_CVAR(player).cvar_cl_allow_uid2name == 1)
{
if (!player.stored_netname)
player.stored_netname = strzone(uid2name(player.crypto_idfp));