]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Survival: Defenders no longer drop weapons by default.
authorLyberta <lyberta@lyberta.net>
Sat, 25 Mar 2017 09:14:07 +0000 (12:14 +0300)
committerLyberta <lyberta@lyberta.net>
Sat, 25 Mar 2017 09:14:07 +0000 (12:14 +0300)
qcsrc/server/mutators/mutator/gamemode_survival.qc
survival.cfg

index 8eeed33afe801ec6c01bf7c966e2511507cf4290..39a8f4a8da263fc0cda42bfc82abd2a5e8dd4dbc 100644 (file)
@@ -141,6 +141,9 @@ float autocvar_g_surv_cannon_fodder_attack_scale;
 /// \brief How much cannon fodder gets damaged. Higher values mean less damage.
 float autocvar_g_surv_cannon_fodder_defense_scale;
 
+/// \brief Whether defenders drop weapons after death.
+int autocvar_g_surv_defender_drop_weapons;
+
 /// \brief A stat that is used to track the time left in the round.
 .float surv_round_time_stat = _STAT(SURV_ROUND_TIME);
 /// \brief A stat that is used to track defender team.
@@ -1934,13 +1937,22 @@ MUTATOR_HOOKFUNCTION(surv, PlayerDamaged)
 MUTATOR_HOOKFUNCTION(surv, PlayerDies)
 {
        //DebugPrintToChatAll("PlayerDies");
-       entity frag_target = M_ARGV(2, entity);
-       if (!Surv_CanPlayerSpawn(frag_target))
+       entity victim = M_ARGV(2, entity);
+       if ((victim.team == surv_defenderteam) &&
+               (autocvar_g_surv_defender_drop_weapons == false))
+       {
+               for (int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+               {
+                       .entity went = weaponentities[slot];
+                       victim.(went).m_weapon = WEP_Null;
+               }
+       }
+       if (!Surv_CanPlayerSpawn(victim))
        {
-               frag_target.respawn_flags = RESPAWN_SILENT;
-               if (IS_BOT_CLIENT(frag_target))
+               victim.respawn_flags = RESPAWN_SILENT;
+               if (IS_BOT_CLIENT(victim))
                {
-                       bot_clear(frag_target);
+                       bot_clear(victim);
                }
        }
        return true;
index f80a5627f6c50c6b52363eca99bddbe55ae64e72..4d3486082e66a55789aa46b044146d0683badcd8 100644 (file)
@@ -40,7 +40,6 @@ set g_surv_defender_random_start_weapons "" "Weapons that can be randomly given
 set g_surv_cannon_fodder_num_random_start_weapons 2 "Number of weapons that can be randomly given to cannon fodder during spawn"
 set g_surv_cannon_fodder_random_start_weapons "machinegun mortar electro crylink vortex hagar devastator" "Weapons that can be randomly given to cannon fodder during spawn"
 
-
 set g_surv_defender_pickup_shells_small 2 "How many shells do defenders get when they pickup small health/armor"
 set g_surv_defender_pickup_shells_medium 5 "How many shells do defenders get when they pickup medium health/armor"
 set g_surv_defender_pickup_shells_big 10 "How many shells do defenders get when they pickup big health/armor"
@@ -62,3 +61,5 @@ set g_surv_defender_attack_scale 1 "How much defenders damage others. Higher val
 set g_surv_defender_defense_scale 3 "How much defenders get damaged. Higher values mean less damage"
 set g_surv_cannon_fodder_attack_scale 1 "How much cannon fodder damages others. Higher values mean more damage"
 set g_surv_cannon_fodder_defense_scale 1 "How much cannon fodder gets damaged. Higher values mean less damage"
+
+set g_surv_defender_drop_weapons 0 "Whether defenders drop weapons after death"