X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Foverkill%2Foverkill.qc;h=b8a203990af6aaa2797788d24fd1f543e0974843;hb=2cc219c0762e106241165f3b08fac54a516cda89;hp=c670879e3788e9c8cceff9e3bff4a49614f15b4c;hpb=74cebbb48d9481bb83eccb4438283f319352cb74;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mutators/mutator/overkill/overkill.qc b/qcsrc/common/mutators/mutator/overkill/overkill.qc index c670879e3..b8a203990 100644 --- a/qcsrc/common/mutators/mutator/overkill/overkill.qc +++ b/qcsrc/common/mutators/mutator/overkill/overkill.qc @@ -41,7 +41,7 @@ REGISTER_MUTATOR(ok, cvar("g_overkill") && !cvar("g_instagib") && !g_nexball && MUTATOR_HOOKFUNCTION(ok, W_DecreaseAmmo) { - entity actor = MUTATOR_ARGV(0, entity); + entity actor = M_ARGV(0, entity); if (actor.ok_use_ammocharge) { ok_DecreaseCharge(actor, PS(actor).m_weapon.m_id); @@ -51,7 +51,7 @@ MUTATOR_HOOKFUNCTION(ok, W_DecreaseAmmo) MUTATOR_HOOKFUNCTION(ok, W_Reload) { - entity actor = MUTATOR_ARGV(0, entity); + entity actor = M_ARGV(0, entity); return actor.ok_use_ammocharge; } @@ -94,6 +94,12 @@ float ok_CheckWeaponCharge(entity ent, int wep) MUTATOR_HOOKFUNCTION(ok, PlayerDamage_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); + float frag_damage = M_ARGV(4, float); + vector frag_force = M_ARGV(6, vector); + if(IS_PLAYER(frag_attacker) && IS_PLAYER(frag_target)) if(DEATH_ISWEAPON(frag_deathtype, WEP_BLASTER)) { @@ -107,6 +113,9 @@ MUTATOR_HOOKFUNCTION(ok, PlayerDamage_Calculate, CBC_ORDER_LAST) Send_Notification(NOTIF_ONE, frag_attacker, MSG_CENTER, CENTER_SECONDARY_NODAMAGE); frag_force = '0 0 0'; } + + M_ARGV(4, float) = frag_damage; + M_ARGV(6, vector) = frag_force; } return false; @@ -247,22 +256,24 @@ MUTATOR_HOOKFUNCTION(ok, PlayerPreThink) } MUTATOR_HOOKFUNCTION(ok, PlayerSpawn) -{SELFPARAM(); +{ + entity player = M_ARGV(0, entity); + if(autocvar_g_overkill_ammo_charge) { - FOREACH(Weapons, it != WEP_Null, LAMBDA(self.ammo_charge[it.m_id] = autocvar_g_overkill_ammo_charge_limit)); + FOREACH(Weapons, it != WEP_Null, LAMBDA(player.ammo_charge[it.m_id] = autocvar_g_overkill_ammo_charge_limit)); - self.ok_use_ammocharge = 1; - self.ok_notice_time = time; + player.ok_use_ammocharge = 1; + player.ok_notice_time = time; } else - self.ok_use_ammocharge = 0; + player.ok_use_ammocharge = 0; // if player changed their weapon while dead, don't switch to their death weapon - if(self.impulse) - self.ok_lastwep = 0; + if(player.impulse) + player.ok_lastwep = 0; - self.ok_pauseregen_finished = time + 2; + player.ok_pauseregen_finished = time + 2; return false; }