From 093db9c033e811c7a93fb28c2befef0a45fd70af Mon Sep 17 00:00:00 2001 From: VladimirMangos Date: Mon, 19 Jul 2010 06:50:58 +0400 Subject: [PATCH] [10223] Implement spell 44572 affect to permament stun immuned targets. This also fix unexpected triggering effect any unrelated spell casts. --- sql/mangos.sql | 5 +++-- sql/updates/10223_01_mangos_spell_proc_event.sql | 5 +++++ sql/updates/Makefile.am | 2 ++ src/game/UnitAuraProcHandler.cpp | 16 +++++++++++----- src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 6 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 sql/updates/10223_01_mangos_spell_proc_event.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index c4fdc6b2d..223855df9 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_10219_01_mangos_spell_proc_event` bit(1) default NULL + `required_10223_01_mangos_spell_proc_event` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -18284,7 +18284,8 @@ INSERT INTO `spell_proc_event` VALUES (67702, 0x7F, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 45), (67771, 0x7F, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 45), (70664, 0x00, 7, 0x00000010, 0x00000010, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), -(70748, 0x00, 3, 0x00000000, 0x00000000, 0x00000000, 0x00200000, 0x00200000, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0); +(70748, 0x00, 3, 0x00000000, 0x00000000, 0x00000000, 0x00200000, 0x00200000, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), +(71761, 0x00, 3, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0.000000, 0.000000, 0); /*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/10223_01_mangos_spell_proc_event.sql b/sql/updates/10223_01_mangos_spell_proc_event.sql new file mode 100644 index 000000000..a3cda65ad --- /dev/null +++ b/sql/updates/10223_01_mangos_spell_proc_event.sql @@ -0,0 +1,5 @@ +ALTER TABLE db_version CHANGE COLUMN required_10219_01_mangos_spell_proc_event required_10223_01_mangos_spell_proc_event bit; + +delete from `spell_proc_event` where entry = 71761; +insert into `spell_proc_event` values +(71761, 0x00, 3, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0.000000, 0.000000, 0); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index eadf2804c..a4f772349 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -117,6 +117,7 @@ pkgdata_DATA = \ 10217_04_mangos_spell_chain.sql \ 10217_05_mangos_spell_proc_event.sql \ 10219_01_mangos_spell_proc_event.sql \ + 10223_01_mangos_spell_proc_event.sql \ README ## Additional files to include when running 'make dist' @@ -214,4 +215,5 @@ EXTRA_DIST = \ 10217_04_mangos_spell_chain.sql \ 10217_05_mangos_spell_proc_event.sql \ 10219_01_mangos_spell_proc_event.sql \ + 10223_01_mangos_spell_proc_event.sql \ README diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index 0aad36a04..d54214adf 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -2756,7 +2756,7 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit *pVictim, uint32 d } break; case SPELLFAMILY_MAGE: - if (auraSpellInfo->SpellIconID == 2127) // Blazing Speed + if (auraSpellInfo->SpellIconID == 2127) // Blazing Speed { switch (auraSpellInfo->Id) { @@ -2765,18 +2765,24 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit *pVictim, uint32 d trigger_spell_id = 31643; break; default: - sLog.outError("Unit::HandleProcTriggerSpellAuraProc: Spell %u miss posibly Blazing Speed",auraSpellInfo->Id); + sLog.outError("Unit::HandleProcTriggerSpellAuraProc: Spell %u miss possibly Blazing Speed",auraSpellInfo->Id); return SPELL_AURA_PROC_FAILED; } } - // Persistent Shield (Scarab Brooch trinket) - else if(auraSpellInfo->Id == 26467) + else if(auraSpellInfo->Id == 26467) // Persistent Shield (Scarab Brooch trinket) { - // This spell originally trigger 13567 - Dummy Trigger (vs dummy efect) + // This spell originally trigger 13567 - Dummy Trigger (vs dummy effect) basepoints[0] = damage * 15 / 100; target = pVictim; trigger_spell_id = 26470; } + else if(auraSpellInfo->Id == 71761) // Deep Freeze Immunity State + { + // spell applied only to permanent immunes to stun targets (bosses) + if (pVictim->GetTypeId() != TYPEID_UNIT || + (((Creature*)pVictim)->GetCreatureInfo()->MechanicImmuneMask & (1 << (MECHANIC_STUN - 1))) == 0) + return SPELL_AURA_PROC_FAILED; + } break; case SPELLFAMILY_WARRIOR: // Deep Wounds (replace triggered spells to directly apply DoT), dot spell have finilyflags diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 31ab37e51..5c2bce433 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10222" + #define REVISION_NR "10223" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 08bef33e7..631983353 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_10160_02_characters_pet_aura" - #define REVISION_DB_MANGOS "required_10219_01_mangos_spell_proc_event" + #define REVISION_DB_MANGOS "required_10223_01_mangos_spell_proc_event" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__