X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=42a45b50722d9289621ca13ed9763eeba2518675;hb=ae2c1407ec9a05e4f501a6604a7cce8e1030df9f;hp=23b68231045eb84202bbcd9e9faec738903e5ed8;hpb=ca811d45f7e7b64a01657b2252cab3cfdfedd970;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 23b682310..42a45b507 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -8,7 +8,7 @@ #include "spawnpoints.qh" #include "tturrets/include/turrets_early.qh" #include "t_items.qh" -#include "vehicles/vehicle.qh" +#include "../common/vehicles/sv_vehicles.qh" #include "weapons/accuracy.qh" #include "weapons/csqcprojectile.qh" #include "weapons/selection.qh" @@ -147,10 +147,7 @@ void GiveFrags (entity attacker, entity targ, float f, int deathtype) entity oldself; oldself = self; self = attacker; - frag_attacker = attacker; - frag_target = targ; - frag_score = f; - if(MUTATOR_CALLHOOK(GiveFragsForKill)) + if(MUTATOR_CALLHOOK(GiveFragsForKill, attacker, targ, f)) { f = frag_score; self = oldself; @@ -557,13 +554,13 @@ void Ice_Think() void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypoint) { - if(!IS_PLAYER(targ) && !(targ.flags & FL_MONSTER)) // only specified entities can be freezed + if(!IS_PLAYER(targ) && !IS_MONSTER(targ)) // only specified entities can be freezed return; if(targ.frozen) return; - float targ_maxhealth = ((targ.flags & FL_MONSTER) ? targ.max_health : start_health); + float targ_maxhealth = ((IS_MONSTER(targ)) ? targ.max_health : start_health); targ.frozen = frozen_type; targ.revive_progress = ((frozen_type == 3) ? 1 : 0); @@ -665,7 +662,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d { // exit the vehicle before killing (fixes a crash) if(IS_PLAYER(targ) && targ.vehicle) - vehicles_exit(VHEF_RELESE); + vehicles_exit(VHEF_RELEASE); // These are ALWAYS lethal // No damage modification here @@ -749,13 +746,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d } // should this be changed at all? If so, in what way? - frag_attacker = attacker; - frag_target = targ; - frag_damage = damage; - frag_force = force; - frag_deathtype = deathtype; - frag_mirrordamage = mirrordamage; - MUTATOR_CALLHOOK(PlayerDamage_Calculate); + MUTATOR_CALLHOOK(PlayerDamage_Calculate, attacker, targ, deathtype, damage, mirrordamage, force); damage = frag_damage; mirrordamage = frag_mirrordamage; force = frag_force; @@ -769,7 +760,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d { Unfreeze(targ); targ.health = autocvar_g_freezetag_revive_falldamage_health; - pointparticles(particleeffectnum("iceorglass"), targ.origin, '0 0 0', 3); + Send_Effect("iceorglass", targ.origin, '0 0 0', 3); Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_FREEZETAG_REVIVED_FALL, targ.netname); Send_Notification(NOTIF_ONE, targ, MSG_CENTER, CENTER_FREEZETAG_REVIVE_SELF); } @@ -780,7 +771,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d if(targ.frozen && deathtype == DEATH_HURTTRIGGER && !autocvar_g_freezetag_frozen_damage_trigger) { - pointparticles(particleeffectnum("teleport"), targ.origin, '0 0 0', 1); + Send_Effect("teleport", targ.origin, '0 0 0', 1); entity oldself = self; self = targ; @@ -810,7 +801,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d self.oldorigin = self.origin; self.prevorigin = self.origin; - pointparticles(particleeffectnum("teleport"), self.origin, '0 0 0', 1); + Send_Effect("teleport", self.origin, '0 0 0', 1); } self = oldself; @@ -819,7 +810,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d if(!g_instagib) { // apply strength multiplier - if (attacker.items & IT_STRENGTH) + if (attacker.items & ITEM_Strength.m_itemid) { if(targ == attacker) { @@ -834,7 +825,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d } // apply invincibility multiplier - if (targ.items & IT_INVINCIBLE) + if (targ.items & ITEM_Shield.m_itemid) damage = damage * autocvar_g_balance_powerup_invincible_takedamage; } @@ -849,12 +840,12 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d if(targ != attacker) { entity victim; - if((targ.vehicle_flags & VHF_ISVEHICLE) && targ.owner) + if(IS_VEHICLE(targ) && targ.owner) victim = targ.owner; else victim = targ; - if(IS_PLAYER(victim) || (victim.turrcaps_flags & TFL_TURRCAPS_ISTURRET) || (victim.flags & FL_MONSTER)) + if(IS_PLAYER(victim) || IS_TURRET(victim) || IS_MONSTER(victim)) { if(DIFF_TEAM(victim, attacker) && !victim.frozen) {