X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fg_damage.qc;h=61fe6ef87b44ff8c2e598d68787fce7fac680fa0;hb=7a0a311ff868e71c2336e0cdffdadad6a55fac8f;hp=441932e115b7b52308277592e020a5ec27ff327e;hpb=a11e3217808e6c8f2c971401ba2bcc43578832b1;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 441932e11..61fe6ef87 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" @@ -107,7 +107,7 @@ void GiveFrags (entity attacker, entity targ, float f, int deathtype) else if(!(attacker.weapons & WepSet_FromWeapon(culprit))) culprit = attacker.weapon; - if(g_weaponarena_random_with_blaster && culprit == WEP_BLASTER) // WEAPONTODO: Shouldn't this be in a mutator? + if(g_weaponarena_random_with_blaster && culprit == WEP_BLASTER.m_id) // WEAPONTODO: Shouldn't this be in a mutator? { // no exchange } @@ -566,6 +566,7 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo targ.revive_progress = ((frozen_type == 3) ? 1 : 0); targ.health = ((frozen_type == 3) ? targ_maxhealth : 1); targ.revive_speed = freeze_time; + self.bot_attack = false; entity ice, head; ice = spawn(); @@ -601,6 +602,9 @@ void Freeze (entity targ, float freeze_time, float frozen_type, float show_waypo void Unfreeze (entity targ) { + if(!targ.frozen) + return; + if(targ.frozen && targ.frozen != 3) // only reset health if target was frozen targ.health = ((IS_PLAYER(targ)) ? start_health : targ.max_health); @@ -608,6 +612,7 @@ void Unfreeze (entity targ) targ.frozen = 0; targ.revive_progress = 0; targ.revival_time = time; + self.bot_attack = true; WaypointSprite_Kill(targ.waypointsprite_attached); @@ -648,7 +653,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, int d RemoveGrapplingHook(targ); // STOP THAT, you parasite! // special rule: gravity bomb does not hit team mates (other than for disconnecting the hook) - if(DEATH_ISWEAPON(deathtype, WEP_HOOK) || DEATH_ISWEAPON(deathtype, WEP_TUBA)) + if(DEATH_ISWEAPON(deathtype, WEP_HOOK.m_id) || DEATH_ISWEAPON(deathtype, WEP_TUBA.m_id)) { if(IS_PLAYER(targ)) if(SAME_TEAM(targ, attacker)) @@ -662,7 +667,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 @@ -810,7 +815,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) { @@ -825,7 +830,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; } @@ -958,8 +963,8 @@ float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector in total_damage_to_creatures = 0; - if(deathtype != (WEP_HOOK | HITTYPE_SECONDARY | HITTYPE_BOUNCE)) // only send gravity bomb damage once - if(DEATH_WEAPONOF(deathtype) != WEP_TUBA) // do not send tuba damage (bandwidth hog) + if(deathtype != (WEP_HOOK.m_id | HITTYPE_SECONDARY | HITTYPE_BOUNCE)) // only send gravity bomb damage once + if(DEATH_WEAPONOF(deathtype) != WEP_TUBA.m_id) // do not send tuba damage (bandwidth hog) { force = inflictorvelocity; if(vlen(force) == 0) @@ -1020,7 +1025,7 @@ float RadiusDamageForSource (entity inflictor, vector inflictororigin, vector in force = force * (finaldmg / coredamage) * forceintensity; hitloc = nearest; - if(deathtype & WEP_BLASTER) + if(deathtype & WEP_BLASTER.m_id) force *= WEP_CVAR_BOTH(blaster, !(deathtype & HITTYPE_SECONDARY), force_zscale); if(targ != directhitentity)