diff options
-rw-r--r-- | sql/updates/world/2011_07_15_03_world_creature_template.sql | 54 | ||||
-rwxr-xr-x | src/server/game/Entities/Vehicle/Vehicle.cpp | 14 |
2 files changed, 56 insertions, 12 deletions
diff --git a/sql/updates/world/2011_07_15_03_world_creature_template.sql b/sql/updates/world/2011_07_15_03_world_creature_template.sql new file mode 100644 index 00000000000..353dab27424 --- /dev/null +++ b/sql/updates/world/2011_07_15_03_world_creature_template.sql @@ -0,0 +1,54 @@ +-- TODO: this list of vehicles isn't complete, need to find more vehicles with missing immunities +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask` | +0x00000002| -- MECHANIC_DISORIENTED (Blind) +0x00000004| -- MECHANIC_DISARM (Disarm) +0x00000008| -- MECHANIC_DISTRACT (Distract) +0x00000010| -- MECHANIC_FEAR (Fear, Psychic Scream) +0x00000020| -- MECHANIC_GRIP (Death Grip) +0x00000040| -- MECHANIC_ROOT (Entangling Roots) +0x00000100| -- MECHANIC_SILENCE (Silence) +0x00000200| -- MECHANIC_SLEEP (Wyvern Sting) +0x00000400| -- MECHANIC_SNARE (Crippling Poison, Piercing Howl) +0x00000800| -- MECHANIC_STUN (Hammer of Justice) +0x00001000| -- MECHANIC_FREEZE (Freezing Trap) +0x00002000| -- MECHANIC_KNOUCKOUT (Gouge, Blast Wave) +-- 0x00004000| -- MECHANIC_BLEED (Rend, Deep Wounds) - requires confirmation +0x00010000| -- MECHANIC_POLYMORPH (Polymorph) +0x00040000| -- MECHANIC_SHIELD (Power word: Shield) +-- 0x00200000| -- MECHANIC_INFECTED (Frost Fever, Blood Plague) - requires confirmation +0x00800000| -- MECHANIC_HORROR (warlock's Death Coil) +0x10000000| -- MECHANIC_IMMUNE_SHIELD (Hand of Protection) +0x02000000| -- MECHANIC_INTERRUPT (Kick, Counterspell) +0x04000000 -- MECHANIC_DAZE (Dazed) +where entry IN ( +-- Some random quest vehicles +25334, -- Horde Siege Tank +26523, -- Forsaken Blight Spreader +-- Strand of the Ancients vehicles +28781, -- Battleground Demolisher +27894, -- Antipersonnel Cannon +-- Wintergrasp vehicles +27881, -- Wintergrasp Catapult (both) +28094, -- Wintergrasp Demolisher (both) +28312, -- Wintergrasp Siege Engine (alliance) +28319, -- Wintergrasp Siege Turret (alliance) +28366, -- Wintergrasp Tower Cannon (both) +32627, -- Wintergrasp Siege Engine (horde) +32629, -- Wintergrasp Siege Turret (alliance) +-- Ulduar Vehicles +33060, -- Salvaged Siege Engine +33062, -- Salvaged Chopper +33067, -- Salvaged Siege Turret +33109, -- Salvaged Demolisher +-- Isle of Conquest vehicles +34793, -- Catapult (both) +34775, -- Demolisher (both) +34776, -- Siege Engine (alliance) +34777, -- Siege Turret (alliance) +34778, -- Flame Turret (alliance) +34802, -- Glaive Thrower (alliance) +34944, -- Keep Cannon (both) +35069, -- Siege Engine (horde) +35273, -- Glaive Thrower (horde) +36355, -- Siege Turret (horde) +36356); -- Flame Turret (horde) diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp index d93d51cf9da..fedebb45cb0 100755 --- a/src/server/game/Entities/Vehicle/Vehicle.cpp +++ b/src/server/game/Entities/Vehicle/Vehicle.cpp @@ -137,21 +137,11 @@ void Vehicle::Reset(bool evading /*= false*/) void Vehicle::ApplyAllImmunities() { - // This couldn't be done in DB, because Vehicle's immunities are overriden by Player's ones + // This couldn't be done in DB, because some spells have MECHANIC_NONE - // Vehicles should be immune on Knockback, Deathgrip ... + // Vehicles should be immune on Knockback ... _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK, true); _me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_KNOCK_BACK_DEST, true); - _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_GRIP, true); - - // ... Fear, Snare, Root, Stun ... - _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FEAR, true); - _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SNARE, true); - _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_ROOT, true); - _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, true); - _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_STUN, true); - _me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DISORIENTED, true); - _me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_CONFUSE, true); // Mechanical units & vehicles ( which are not Bosses, they have own immunities in DB ) should be also immune on healing ( exceptions in switch below ) if (_me->ToCreature() && _me->ToCreature()->GetCreatureInfo()->type == CREATURE_TYPE_MECHANICAL && !_me->ToCreature()->isWorldBoss()) |