]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into Mario/frozen_status_effect Mario/frozen_status_effect 1468/head
authorMario <mario.mario@y7mail.com>
Fri, 14 Mar 2025 19:12:31 +0000 (05:12 +1000)
committerMario <mario.mario@y7mail.com>
Fri, 14 Mar 2025 19:12:31 +0000 (05:12 +1000)
12 files changed:
1  2 
mutators.cfg
qcsrc/common/gamemodes/gamemode/ctf/sv_ctf.qc
qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc
qcsrc/common/gamemodes/gamemode/nexball/sv_weapon.qc
qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc
qcsrc/common/monsters/monster/mage.qc
qcsrc/common/monsters/sv_monsters.qc
qcsrc/common/mutators/mutator/nades/sv_nades.qc
qcsrc/common/mutators/mutator/overkill/sv_overkill.qc
qcsrc/server/client.qc
qcsrc/server/items/items.qc
qcsrc/server/utils.qh

diff --cc mutators.cfg
index a09c9441d4f7b13befa42175629c9b5c4953613d,8521d811c9c883b7cea48d9d10028bc2470d612d..8306751ecfadaf3a38c643a32c7effea1abf17f3
@@@ -258,8 -262,9 +262,8 @@@ set g_nades_napalm_fountain_edgedamage 
  set g_nades_napalm_fountain_radius 130 "distance from the fountain"
  
  // Ice (3)
- set g_nades_ice 1 "Ice nade: freezes and reduces health" // script-ignore
+ set g_nades_ice 1 "Ice nade: freezes and reduces health; \"1\" = allow client selection of this nade type" // script-ignore
  set g_nades_ice_freeze_time 3 "how long the ice field will last"
 -set g_nades_ice_health      0 "how much health the player will have after being unfrozen"
  set g_nades_ice_explode     0 "whether the ice nade should explode again once the ice field dissipated"
  set g_nades_ice_teamcheck   2 "\"0\" = freezes everyone including the player who threw the nade, \"1\" = freezes enemies and teammates, \"2\" = freezes only enemies"
  
index bab20b65b4d655fc3b2e0edcc206aa6494a5015f,e61edf85191e763a6ddebd13b95e6e1e2449085e..4d8e82a2483eac569a7e07229d7a4e474bfd36c7
@@@ -116,10 -124,9 +124,9 @@@ void ka_TouchEvent(entity this, entity 
                ka_RespawnBall(this);
                return;
        }
-       if(toucher.ballcarried) { return; }
 +      // TODO: mutator hook to prevent picking up objectives
        if(IS_INDEPENDENT_PLAYER(toucher)) { return; }
        if(IS_DEAD(toucher)) { return; }
 -      if(STAT(FROZEN, toucher)) { return; }
        if (!IS_PLAYER(toucher))
        {  // The ball just touched an object, most likely the world
                Send_Effect(EFFECT_BALL_SPARKS, this.origin, '0 0 0', 1);
index e59ead16c6aa7c0a276074b601286a6b7bed0725,7bb60c93e902033558345ca9e63a486b8a7ebcf0..107cdeb12bbfc0e531ddd3cd54921909310680dd
@@@ -93,9 -115,9 +115,8 @@@ void tka_TouchEvent(entity this, entit
                tka_RespawnBall(this);
                return;
        }
-       if(toucher.ballcarried) { return; }
        if(IS_INDEPENDENT_PLAYER(toucher)) { return; }
        if(IS_DEAD(toucher)) { return; }
 -      if(STAT(FROZEN, toucher)) { return; }
        if (!IS_PLAYER(toucher))
        {  // The ball just touched an object, most likely the world
                Send_Effect(EFFECT_BALL_SPARKS, this.origin, '0 0 0', 1);
Simple merge
Simple merge
Simple merge
Simple merge
index 94aa70f63d15b0093983e48accf46a16f8e96573,fee006ab212d834fffbeee2ec85b84840ab3f88a..89feab8156629b0ff042b050d70310c237e641ab
@@@ -22,8 -22,9 +22,9 @@@ const string STR_OBSERVER = "observer"
  #define IS_VEHICLE(v) (v.vehicle_flags & VHF_ISVEHICLE)
  #define IS_TURRET(v) (v.turret_flags & TUR_FLAG_ISTURRET)
  
 -#define IS_MOVABLE(v) ((IS_PLAYER(v) || IS_MONSTER(v)) && !STAT(FROZEN, v))
 +#define IS_MOVABLE(v) ((IS_PLAYER(v) || IS_MONSTER(v)) && !STAT(FROZEN, v) && !StatusEffects_active(STATUSEFFECT_Frozen, v))
  #define IS_DEAD(s) ((s).deadflag != DEAD_NO)
+ #define IS_INVISIBLE(v) (v.alpha <= 0.25 || StatusEffects_active(STATUSEFFECT_Invisibility, v) || MUTATOR_IS_ENABLED(cloaked))
  
  #define CENTER_OR_VIEWOFS(ent) (ent.origin + (IS_PLAYER(ent) ? ent.view_ofs : ((ent.mins + ent.maxs) * 0.5)))