]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'martin-t/misc' into 'master'
authorMario <zacjardine@y7mail.com>
Sat, 31 Dec 2016 01:25:48 +0000 (01:25 +0000)
committerMario <zacjardine@y7mail.com>
Sat, 31 Dec 2016 01:25:48 +0000 (01:25 +0000)
martin-t/misc

See merge request !399

18 files changed:
defaultXonotic.cfg
gamemodes.cfg
qcsrc/common/mutators/mutator/breakablehook/sv_breakablehook.qc
qcsrc/common/mutators/mutator/buffs/sv_buffs.qc
qcsrc/common/mutators/mutator/campcheck/sv_campcheck.qc
qcsrc/common/mutators/mutator/instagib/sv_instagib.qc
qcsrc/common/mutators/mutator/midair/sv_midair.qc
qcsrc/common/mutators/mutator/nades/nades.qc
qcsrc/common/mutators/mutator/overkill/sv_overkill.qc
qcsrc/common/mutators/mutator/rocketminsta/sv_rocketminsta.qc
qcsrc/server/g_damage.qc
qcsrc/server/mutators/events.qh
qcsrc/server/mutators/mutator/gamemode_ca.qc
qcsrc/server/mutators/mutator/gamemode_ctf.qc
qcsrc/server/mutators/mutator/gamemode_cts.qc
qcsrc/server/mutators/mutator/gamemode_invasion.qc
qcsrc/server/mutators/mutator/gamemode_keepaway.qc
qcsrc/server/player.qc

index bbdbdcb74a4873406ac60d3c4ac72fc158aba72e..a5d81ad303a52a5356b5e5cfd4cf74167a178cde 100644 (file)
@@ -1072,7 +1072,7 @@ alias gl_flashblend_update "_gl_flashblend_update_$r_shadow_realtime_dlight$r_sh
 
 set sv_clones 0        "number of clones a player may make (reset by the \"kill\" command)"
 
-set cl_handicap 1      "the higher, the more damage you will receive (client setting) NOTE: reconnect or use sendcvar command to update the choice."
+set cl_handicap 1      "multiplies damage received and divides damage dealt NOTE: reconnect or use 'sendcvar cl_handicap' to update the choice."
 
 seta cl_clippedspectating 1 "movement collision for spectators so that you can't pass through walls and such. (client setting) NOTE: reconnect or use sendcvar command to update the choice."
 
index 71f0dc1792200bea112c846ba847e47c7526bf29..630eb7a85d7bfee6e2eee10725c8299d0297f925 100644 (file)
@@ -18,7 +18,7 @@ alias asay_drop "say_team (%l) dropped %w ; impulse 17"
 // =================
 //  gamestart hooks
 // =================
-seta cl_matchcount 0 // incremented by cl_hook_gameend and used by playerstats to know when to 
+seta cl_matchcount 0 // incremented by cl_hook_gameend and used by playerstats to know when to
 alias _cl_hook_gamestart "set _cl_hook_gametype $1; _cl_hook_gamestart_stage2"
 alias _cl_hook_gamestart_stage2 "cl_hook_gamestart_all; cl_hook_gamestart_${_cl_hook_gametype}"
 alias cl_hook_gamestart_all
@@ -278,7 +278,7 @@ set g_ctf_dropped_capture_delay 1 "dropped capture delay"
 set g_ctf_dropped_capture_radius 100 "allow dropped flags to be automatically captured by base flags if the dropped flag is within this radius of it"
 set g_ctf_flag_damageforcescale 2
 set g_ctf_portalteleport 0 "allow flag carriers to go through portals made in portal gun without dropping the flag"
-set g_ctf_reverse 0 "if enabled, flags positions are switched: you have to capture the enemy's flag from your own base by bringing it to your own flag in the enemy base"
+set g_ctf_reverse 0 "if enabled, you score by bringing your own flag to an enemy's flag in their base"
 set g_ctf_flag_collect_delay 1
 set g_ctf_flag_health 0
 set g_ctf_flag_dropped_waypoint 2 "show dropped flag waypointsprite when a flag is lost. 1 = team only, 2 = for all players"
index fdb0dc38d1ee24161bfe30e83ca172c23d065f63..c23dd248cdc3c02113f0e0c03857415d58901ec3 100644 (file)
@@ -8,7 +8,7 @@ REGISTER_MUTATOR(breakablehook, cvar("g_breakablehook"));
 bool autocvar_g_breakablehook; // allow toggling mid match?
 bool autocvar_g_breakablehook_owner;
 
-MUTATOR_HOOKFUNCTION(breakablehook, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(breakablehook, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index d9eed031cd2f15b2fe4d6459bb2d6a19351d6e7a..900d16a45d20e6acf376fd297ea922d76b80bc81 100644 (file)
@@ -450,7 +450,7 @@ MUTATOR_HOOKFUNCTION(buffs, PlayerDamage_SplitHealthArmor)
        }
 }
 
-MUTATOR_HOOKFUNCTION(buffs, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(buffs, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index c4d2e030267114b46cba723d8322a614a0d8de26..36da631bb360cbb24f19a3d156eaffcf33a0eb4c 100644 (file)
@@ -16,7 +16,7 @@ MUTATOR_HOOKFUNCTION(campcheck, PlayerDies)
        Kill_Notification(NOTIF_ONE, frag_target, MSG_CENTER, CPID_CAMPCHECK);
 }
 
-MUTATOR_HOOKFUNCTION(campcheck, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(campcheck, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index 4c6dc15a3c0bff02b9dcaa75435e5789b2c9673f..88bb8c0d997b592c60c154684744ec51f089c484 100644 (file)
@@ -257,7 +257,7 @@ MUTATOR_HOOKFUNCTION(mutator_instagib, ForbidThrowCurrentWeapon)
        return true;
 }
 
-MUTATOR_HOOKFUNCTION(mutator_instagib, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(mutator_instagib, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index 40747ff0569b08a69ec0580027c7b38f3abdd1b3..92bbacc00663c2eb70d50dda92b913874eb2493d 100644 (file)
@@ -6,7 +6,7 @@ REGISTER_MUTATOR(midair, cvar("g_midair"));
 
 .float midair_shieldtime;
 
-MUTATOR_HOOKFUNCTION(midair, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(midair, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index c09e221e469ec96b7e912b3bc0491dd372cc68e7..27c31d2319ffcfe4bbdcc5c5ed0490be058dcf37 100644 (file)
@@ -1400,7 +1400,7 @@ MUTATOR_HOOKFUNCTION(nades, PlayerDies, CBC_ORDER_LAST)
        nades_RemoveBonus(frag_target);
 }
 
-MUTATOR_HOOKFUNCTION(nades, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(nades, Damage_Calculate)
 {
        entity frag_inflictor = M_ARGV(0, entity);
        entity frag_attacker = M_ARGV(1, entity);
index 56bc8d14cce8d4fad53d010fd57ecea83fa17e1d..501b3afd82e615b124effc3ddfc9a371a259aab7 100644 (file)
@@ -92,18 +92,17 @@ float ok_CheckWeaponCharge(entity ent, int wep)
        return (ent.ammo_charge[wep] >= cvar(sprintf("g_overkill_ammo_decharge_%s", wepent.netname)));
 }
 
-MUTATOR_HOOKFUNCTION(ok, PlayerDamage_Calculate, CBC_ORDER_LAST)
+MUTATOR_HOOKFUNCTION(ok, Damage_Calculate, CBC_ORDER_LAST)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
        float frag_deathtype = M_ARGV(3, float);
 
-       if(IS_PLAYER(frag_attacker) && IS_PLAYER(frag_target))
+       if(IS_PLAYER(frag_attacker) && (IS_PLAYER(frag_target) || IS_VEHICLE(frag_target) || IS_TURRET(frag_target)))
        if(DEATH_ISWEAPON(frag_deathtype, WEP_BLASTER))
        {
                if(frag_attacker != frag_target)
-               if(frag_target.health > 0)
-               if(STAT(FROZEN, frag_target) == 0)
+               if(!STAT(FROZEN, frag_target))
                if(!IS_DEAD(frag_target))
                {
                        Send_Notification(NOTIF_ONE, frag_attacker, MSG_CENTER, CENTER_SECONDARY_NODAMAGE);
@@ -281,8 +280,7 @@ MUTATOR_HOOKFUNCTION(ok, OnEntityPreSpawn)
                        wep.nextthink = time + 0.1;
                        return true;
                }
-
-               if(ent.classname == "item_invincible")
+               else if(ent.classname == "item_invincible")
                {
                        entity wep = new(weapon_rpc);
                        setorigin(wep, ent.origin);
index 04d8099e0230aacf2f4988ac4a93d4b5a89709b6..7edef9813de0fd3c13ca1d79d6593674202c32c1 100644 (file)
@@ -5,7 +5,7 @@
 
 REGISTER_MUTATOR(rm, cvar("g_instagib"));
 
-MUTATOR_HOOKFUNCTION(rm, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(rm, Damage_Calculate)
 {
        // we do it this way, so rm can be toggled during the match
        if(!autocvar_g_rm) { return; }
index a604a2bade1ef61b8ac45bb1eeac7d068ed3b406..b921143423fa6ce9dcee70c7d55392e3a754b475 100644 (file)
@@ -713,7 +713,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d
                }
 
                // should this be changed at all? If so, in what way?
-               MUTATOR_CALLHOOK(PlayerDamage_Calculate, inflictor, attacker, targ, deathtype, damage, mirrordamage, force);
+               MUTATOR_CALLHOOK(Damage_Calculate, inflictor, attacker, targ, deathtype, damage, mirrordamage, force);
                damage = M_ARGV(4, float);
                mirrordamage = M_ARGV(5, float);
                force = M_ARGV(6, vector);
index 09e1cf70bd212497b69907be4ec13c31e97d33ca..499110efa3f3641bf28c5589b1525fc59b15a0fd 100644 (file)
@@ -351,7 +351,7 @@ MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor, EV_PlayerDamage_SplitHealthArmor
  * called to adjust damage and force values which are applied to the player, used for e.g. strength damage/force multiplier
  * i'm not sure if I should change this around slightly (Naming of the entities, and also how they're done in g_damage).
  */
-#define EV_PlayerDamage_Calculate(i, o) \
+#define EV_Damage_Calculate(i, o) \
     /** inflictor              */ i(entity, MUTATOR_ARGV_0_entity) \
     /** attacker       */ i(entity, MUTATOR_ARGV_1_entity) \
     /** target                 */ i(entity, MUTATOR_ARGV_2_entity) \
@@ -363,7 +363,7 @@ MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor, EV_PlayerDamage_SplitHealthArmor
     /** force           */ i(vector, MUTATOR_ARGV_6_vector) \
     /** force                  */ o(vector, MUTATOR_ARGV_6_vector) \
     /**/
-MUTATOR_HOOKABLE(PlayerDamage_Calculate, EV_PlayerDamage_Calculate);
+MUTATOR_HOOKABLE(Damage_Calculate, EV_Damage_Calculate);
 
 /**
  * Called when a player is damaged
index 561a30d222a40b223d14d41a702403efba0f2a14..44c9d1592a4da0e78230d3d0c0993045341294fe 100644 (file)
@@ -321,7 +321,7 @@ MUTATOR_HOOKFUNCTION(ca, SetStartItems)
        start_ammo_fuel    = warmup_start_ammo_fuel    = cvar("g_lms_start_ammo_fuel");
 }
 
-MUTATOR_HOOKFUNCTION(ca, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(ca, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index d1c97bd2856f90d2e227f1deb65f1e314a676227..6036fa529e6ffcf8906a5bd9104bd5f63b300dcc 100644 (file)
@@ -2083,7 +2083,7 @@ MUTATOR_HOOKFUNCTION(ctf, PlayerPreThink)
                WaypointSprite_UpdateHealth(player.wps_flagcarrier, '1 0 0' * healtharmor_maxdamage(player.health, player.armorvalue, autocvar_g_balance_armor_blockpercent, DEATH_WEAPON.m_id));
 }
 
-MUTATOR_HOOKFUNCTION(ctf, PlayerDamage_Calculate) // for changing damage and force values that are applied to players in g_damage.qc
+MUTATOR_HOOKFUNCTION(ctf, Damage_Calculate) // for changing damage and force values that are applied to players in g_damage.qc
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index f83eb6b649a577568d1e796f6e1bafdca54088d9..21098a5e996f04ddf213b20bd2042d844226fd52 100644 (file)
@@ -312,7 +312,7 @@ MUTATOR_HOOKFUNCTION(cts, FilterItem)
                return true;
 }
 
-MUTATOR_HOOKFUNCTION(cts, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(cts, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index 1496feec595cdd2ec0fb83b0026ba267ae7380a7..58e49980cc2439a0bcb5fa4a5fa72260886fa0bd 100644 (file)
@@ -342,7 +342,7 @@ MUTATOR_HOOKFUNCTION(inv, PlayerSpawn)
        player.bot_attack = false;
 }
 
-MUTATOR_HOOKFUNCTION(inv, PlayerDamage_Calculate)
+MUTATOR_HOOKFUNCTION(inv, Damage_Calculate)
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index 6fa76d6c5c1e140fb15382fffbd15118979f8b23..b948c6d5e229e91601e89c49b6d62bc0cc6c2cfc 100644 (file)
@@ -323,7 +323,7 @@ MUTATOR_HOOKFUNCTION(ka, PlayerUseKey)
        }
 }
 
-MUTATOR_HOOKFUNCTION(ka, PlayerDamage_Calculate) // for changing damage and force values that are applied to players in g_damage.qc
+MUTATOR_HOOKFUNCTION(ka, Damage_Calculate) // for changing damage and force values that are applied to players in g_damage.qc
 {
        entity frag_attacker = M_ARGV(1, entity);
        entity frag_target = M_ARGV(2, entity);
index 9cccbe887a87790aa49ce0b8ac1b9a32e8304483..59f0c8029b7ab89f9a01458687631a5951e07c64 100644 (file)
@@ -318,9 +318,9 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage,
 
        if(!DEATH_ISSPECIAL(deathtype))
        {
-               damage *= sqrt(bound(1.0, this.cvar_cl_handicap, 100.0));
+               damage *= bound(1.0, this.cvar_cl_handicap, 10.0);
                if(this != attacker)
-                       damage /= sqrt(bound(1.0, attacker.cvar_cl_handicap, 100.0));
+                       damage /= bound(1.0, attacker.cvar_cl_handicap, 10.0);
        }
 
        if (time < this.spawnshieldtime && autocvar_g_spawnshield_blockdamage < 1)