diff --git a/sql/mangos.sql b/sql/mangos.sql index 2666460ad..ea9b2ab1e 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -23,7 +23,7 @@ DROP TABLE IF EXISTS `db_version`; CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, - `required_8247_01_mangos_spell_bonus_data` bit(1) default NULL + `required_8249_02_mangos_spell_chain` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -13569,6 +13569,273 @@ LOCK TABLES `spell_area` WRITE; /*!40000 ALTER TABLE `spell_area` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for `spell_bonus_data` +-- + +DROP TABLE IF EXISTS `spell_bonus_data`; +CREATE TABLE `spell_bonus_data` ( + `entry` smallint(5) unsigned NOT NULL, + `direct_bonus` float NOT NULL default '0', + `dot_bonus` float NOT NULL default '0', + `ap_bonus` float NOT NULL default '0', + `comments` varchar(255) default NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `spell_bonus_data` +-- + +LOCK TABLES `spell_bonus_data` WRITE; +/*!40000 ALTER TABLE `spell_bonus_data` DISABLE KEYS */; +INSERT INTO `spell_bonus_data` VALUES +('49941', '0', '0', '0.04', 'Death Knight - Blood Boil'), +('55078', '0', '0', '0.055', 'Death Knight - Blood Plague Dummy Proc'), +('50444', '0', '0', '0.105', 'Death Knight - Corpse Explosion Triggered'), +('52212', '0', '0', '0.0475', 'Death Knight - Death and Decay Triggered'), +('47632', '0', '0', '0.15', 'Death Knight - Death Coil Damage'), +('47633', '0', '0', '0.15', 'Death Knight - Death Coil Heal'), +('55095', '0', '0', '0.055', 'Death Knight - Frost Fever'), +('49184', '0', '0', '0.1', 'Death Knight - Howling Blast'), +('45477', '0', '0', '0.1', 'Death Knight - Icy Touch'), +('50842', '0', '0', '0.04', 'Death Knight - Pestilence'), +('47476', '0', '0', '0.06', 'Death Knight - Strangulate'), +('50536', '0', '0', '0.013', 'Death Knight - Unholy Blight Triggered'), +('50401', '0', '0', '0', 'Death Knight - Razor Frost'), +('56903', '0', '0', '0', 'Death Knight - Lichflame'), +('5185', '1.6104', '0', '0', 'Druid - Healing Touch'), +('33763', '0', '0.09518', '0', 'Druid - Lifebloom'), +('774', '0', '0.37604', '0', 'Druid - Rejuvenation'), +('8936', '0.539', '0.188', '0', 'Druid - Regrowth'), +('50288', '0.05', '0', '0', 'Druid - Starfall'), +('50294', '0.012', '0', '0', 'Druid - Starfall AOE'), +('18562', '0', '0', '0', 'Druid - Swiftmend'), +('44203', '0.538', '0', '0', 'Druid - Tranquility Triggered'), +('48438', '0', '0.11505', '0', 'Druid - Wild Growth'), +('50464', '0.6611', '0', '0', 'Druid - Nourish'), +('339', '0', '0.1', '0', 'Druid - Entangling Roots'), +('42231', '0.12898', '0', '0', 'Druid - Hurricane Triggered'), +('5570', '0', '0.127', '0', 'Druid - Insect Swarm'), +('8921', '0.1515', '0.13', '0', 'Druid - Moonfire'), +('2912', '1', '0', '0', 'Druid - Starfire'), +('5176', '0.5714', '0', '0', 'Druid - Wrath'), +('30451', '0.7143', '0', '0', 'Mage - Arcane Blast'), +('1449', '0.2128', '0', '0', 'Mage - Arcane Explosion'), +('7268', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 1'), +('7269', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 2'), +('7270', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 3'), +('8419', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 4'), +('8418', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 5'), +('10273', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 6'), +('10274', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 7'), +('25346', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 8'), +('27076', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 9'), +('38700', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 10'), +('38703', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 11'), +('42844', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 12'), +('42845', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 13'), +('1463', '0.8053', '0', '0', 'Mage - Mana Shield'), +('44425', '0.8571', '0', '0', 'Mage - Arcane Barrage'), +('11113', '0.1357', '0', '0', 'Mage - Blast Wave Rank'), +('31661', '0.1357', '0', '0', 'Mage - Dragons Breath'), +('2136', '0.4286', '0', '0', 'Mage - Fire Blast'), +('133', '1', '0', '0', 'Mage - Fire Ball'), +('2120', '0.2357', '0.122', '0', 'Mage - Flamestrike'), +('11366', '1.15', '0.05', '0', 'Mage - Pyroblast'), +('2948', '0.4286', '0', '0', 'Mage - Scorch'), +('44614', '0.8571', '0', '0', 'Mage - Frostfire Bolt'), +('44457', '0.4', '0.2', '0', 'Mage - Living Bomb'), +('42208', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 1'), +('42209', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 2'), +('42210', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 3'), +('42211', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 4'), +('42212', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 5'), +('42213', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 6'), +('42198', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 7'), +('42937', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 8'), +('42938', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 9'), +('120', '0.1357', '0', '0', 'Mage - Cone of Cold'), +('122', '0.193', '0', '0', 'Mage - Frost Nova'), +('116', '0.8143', '0', '0', 'Mage - Frost Bolt'), +('11426', '0.8053', '0', '0', 'Mage - Ice Barrier'), +('30455', '0.1429', '0', '0', 'Mage - Ice Lance'), +('34913','0', '0', '0', 'Mage - Molten Armor Triggered Rank 1'), +('43043','0', '0', '0', 'Mage - Molten Armor Triggered Rank 2'), +('43044','0', '0', '0', 'Mage - Molten Armor Triggered Rank 3'), +('19750','0.4286', '0', '0', 'Paladin - Flash of Light'), +('635', '0.7143', '0', '0', 'Paladin - Holy Light'), +('25912', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 1'), +('25911', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 2'), +('25902', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 3'), +('27176', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 4'), +('33073', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 5'), +('48822', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 6'), +('48823', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 7'), +('25914', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 1'), +('25913', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 2'), +('25903', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 3'), +('27175', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 4'), +('33074', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 5'), +('48820', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 6'), +('48821', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 7'), +('31935', '0.07', '0', '0.07', 'Paladin - Avengers Shiled'), +('26573', '0', '0.04', '0.04', 'Paladin - Consecration'), +('879', '0.15', '0', '0.15', 'Paladin - Exorcism'), +('24275', '0.15', '0', '0.15', 'Paladin - Hammer of Wrath'), +('20925', '0.09', '0', '0.056', 'Paladin - Holy Shield'), +('2812', '0.07', '0', '0.07', 'Paladin - Holy Wrath'), +('31893', '0.25', '0', '0.16', 'Paladin - Seal of Blood Enemy Proc'), +('32221', '0.25', '0', '0.16', 'Paladin - Seal of Blood Self Proc'), +('20424', '0.25', '0', '0.16', 'Paladin - Seal of Command Proc'), +('379', '0', '0', '0', 'Shaman - Earth Shield Triggered'), +('20167', '0.25', '0', '0.16', 'Paladin - Seal of Light Proc'), +('53719', '0.25', '0', '0.16', 'Paladin - Seal of The Martyr Enemy Proc'), +('53718', '0.25', '0', '0.16', 'Paladin - Seal of The Martyr Self Proc'), +('25742', '0.07', '0', '0.039', 'Paladin - Seal of Righteousness Dummy Proc'), +('53595', '0', '0', '0','Paladin - Hammer of the Righteous'), +('31803', '0', '0.013', '0.15', 'Paladin - Holy Vengeance'), +('52042', '0.045', '0', '0', 'Shaman - Healing Stream Totem Triggered Heal'), +('32546', '0.8068', '0', '0', 'Priest - Binding Heal'), +('34861', '0.402', '0', '0', 'Priest - Circle of Healing'), +('19236', '0.8068', '0', '0', 'Priest - Desperate Prayer'), +('2061', '0.8068', '0', '0', 'Priest - Flash Heal'), +('2060', '1.6135', '0', '0', 'Priest - Greater Heal'), +('23455', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 1'), +('23458', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 2'), +('23459', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 3'), +('27803', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 4'), +('27804', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 5'), +('27805', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 6'), +('25329', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 7'), +('17', '0.8068', '0', '0', 'Priest - Power Word: Shield'), +('596', '0.8086', '0', '0', 'Priest - Prayer of Healing'), +('33110', '0.8068', '0', '0', 'Priest - Prayer of Mending Heal Proc'), +('139', '0', '0.376', '0', 'Priest - Renew'), +('2944', '0.1849', '0', '0', 'Priest - Devouring Plague'), +('14914', '0.5711', '0.024', '0', 'Priest - Holy Fire'), +('15237', '0.1606', '0', '0', 'Priest - Holy Nova Damage'), +('8129', '0', '0', '0', 'Priest - Mana Burn'), +('8092', '0.4296', '0', '0', 'Priest - Mind Blast'), +('15407', '0.257', '0', '0', 'Priest - Mind Flay'), +('49821', '0.14286', '0', '0', 'Priest - Mind Sear Trigger Rank 1'), +('53022', '0.14286', '0', '0', 'Priest - Mind Sear Trigger Rank 2'), +('34433', '0.65', '0', '0', 'Priest - Shadowfiend'), +('32379', '0.4296', '0', '0', 'Priest - Shadow Word: Death'), +('589', '0', '0.1829', '0', 'Priest - Shadow Word: Pain'), +('585', '0.714', '0', '0', 'Priest - Smite'), +('34914', '0', '0.4', '0', 'Priest - Vampiric Touch'), +('974', '0.4762', '0', '0', 'Shaman - Earth Shield'), +('1064', '1.34', '0', '0', 'Shaman - Chain Heal'), +('331', '1.6106', '0', '0', 'Shaman - Healing Wave'), +('8004', '0.8082', '0', '0', 'Shaman - Lesser Healing Wave'), +('61295', '0.4', '0.18', '0', 'Shaman - Riptide'), +('421', '0.57', '0', '0', 'Shaman - Chain Lightning'), +('8042', '0.3858', '0', '0', 'Shaman - Earth Shock'), +('8443', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 1'), +('8504', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 2'), +('8505', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 3'), +('11310', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 4'), +('11311', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 5'), +('25538', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 6'), +('25539', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 7'), +('61651', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 8'), +('61660', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 9'), +('8050', '0.2142', '0.1', '0', 'Shaman - Flame Shock'), +('8026', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 1'), +('8028', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 2'), +('8029', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 3'), +('10445', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 4'), +('16343', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 5'), +('16344', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 6'), +('25488', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 7'), +('58786', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 8'), +('58787', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 9'), +('58788', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 10'), +('8056', '0.3858', '0', '0', 'Shaman - Frost Shock'), +('8034', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 1'), +('8037', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 2'), +('10458', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 3'), +('16352', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 4'), +('16353', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 5'), +('25501', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 6'), +('58797', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 7'), +('58798', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 8'), +('58799', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 9'), +('51505', '0.5714', '0', '0', 'Shaman - Lava Burst'), +('403', '0.7143', '0', '0', 'Shaman - Lightning Bolt'), +('26364', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 1'), +('26365', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 2'), +('26366', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 3'), +('26367', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 4'), +('26369', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 5'), +('26370', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 6'), +('26363', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 7'), +('26371', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 8'), +('26372', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 9'), +('49278', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 10'), +('49279', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 11'), +('8188', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 1'), +('10582', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 2'), +('10583', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 3'), +('10584', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 4'), +('25551', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 5'), +('58733', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 6'), +('58736', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 7'), +('3606', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 1'), +('6350', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 2'), +('6351', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 3'), +('6352', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 4'), +('10435', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 5'), +('10436', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 6'), +('25530', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 7'), +('58700', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 8'), +('58701', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 9'), +('58702', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 10'), +('980', '0', '0.1', '0', 'Warlock - Curse of Agony'), +('603', '0', '2', '0', 'Warlock - Curse of Doom'), +('172', '0', '0.3', '0', 'Warlock - Corruption'), +('348', '0.2', '0.2', '0', 'Warlock - Immolate'), +('27243', '0.22', '0.25', '0', 'Warlock - Seed of Corruption'), +('30108', '0', '0.24', '0', 'Warlock - Unstable Affliction'), +('31117', '1.8', '0', '0', 'Warlock - Unstable Affliction Dispell'), +('17962', '0', '0', '0', 'Warlock - Conflagrate'), +('6789', '0.22', '0', '0', 'Warlock - Death Coil'), +('28176', '0', '0', '0', 'Warlock - Fel Armor'), +('48181', '0.4729', '0', '0', 'Warlock - Haunt'), +('29722', '0.7143', '0', '0', 'Warlock - Incinerate'), +('5676', '0.4286', '0', '0', 'Warlock - Searing Pain'), +('686', '0.8571', '0', '0', 'Warlock - Shadow Bolt'), +('17877', '0.4286', '0', '0', 'Warlock - Shadowburn'), +('30283', '0.195', '0', '0', 'Warlock - Shadowfury'), +('6353', '1.15', '0', '0', 'Warlock - Soul Fire'), +('689', '0', '0.1428', '0', 'Warlock - Drain Life'), +('5138', '0', '0', '0', 'Warlock - Drain Mana'), +('1120', '0', '0.4286', '0', 'Warlock - Drain Soul'), +('755', '0', '0.4485', '0', 'Warlock - Health Funnel'), +('1949', '0', '0.0946', '0', 'Warlock - Hellfire'), +('5857', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 1'), +('11681', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 2'), +('11682', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 3'), +('27214', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 4'), +('47822', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 5'), +('42223', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 1'), +('42224', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 2'), +('42225', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 3'), +('42226', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 4'), +('42218', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 5'), +('47817', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 6'), +('47818', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 7'), +('18220', '0.96', '0', '0', 'Warlock - Dark Pact Rank 1'), +('18937', '0.96', '0', '0', 'Warlock - Dark Pact Rank 2'), +('18938', '0.96', '0', '0', 'Warlock - Dark Pact Rank 3'), +('27265', '0.96', '0', '0', 'Warlock - Dark Pact Rank 4'), +('59092', '0.96', '0', '0', 'Warlock - Dark Pact Rank 5'), +('6229', '0.3', '0', '0', 'Warlock - Shadow Ward'), +('63106', '0', '0', '0', 'Warlock - Siphon Life Triggered'); +/*!40000 ALTER TABLE `spell_bonus_data` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `spell_chain` -- @@ -13591,6 +13858,37 @@ LOCK TABLES `spell_chain` WRITE; /*!40000 ALTER TABLE `spell_chain` DISABLE KEYS */; INSERT INTO spell_chain VALUES /*------------------ +--(0) Not associated with skills +------------------*/ +/* Frostbrand Attack */ +(8034,0,8034,1,0), +(8037,8034,8034,2,0), +(10458,8037,8034,3,0), +(16352,10458,8034,4,0), +(16353,16352,8034,5,0), +(25501,16353,8034,6,0), +(58797,25501,8034,7,0), +(58798,58797,8034,8,0), +(58799,58798,8034,9,0), +/* Instant Poison */ +(8680,0,8680,1,0), +(8685,8680,8680,2,0), +(8689,8685,8680,3,0), +(11335,8689,8680,4,0), +(11336,11335,8680,5,0), +(11337,11336,8680,6,0), +(26890,11337,8680,7,0), +(57964,26890,8680,8,0), +(57965,57964,8680,9,0), +/* Wound Poison */ +(13218,0,13218,1,0), +(13222,13218,13218,2,0), +(13223,13222,13218,3,0), +(13224,13223,13218,4,0), +(27189,13224,13218,5,0), +(57974,27189,13218,6,0), +(57975,57974,13218,7,0), +/*------------------ --(6) Frost ------------------*/ /*Blizzard*/ @@ -17684,266 +17982,27 @@ INSERT INTO `spell_proc_event` VALUES UNLOCK TABLES; -- --- Table structure for spell_bonus_data +-- Table structure for spell_proc_item_enchant -- -DROP TABLE IF EXISTS `spell_bonus_data`; -CREATE TABLE `spell_bonus_data` ( - `entry` smallint(5) unsigned NOT NULL, - `direct_bonus` float NOT NULL default '0', - `dot_bonus` float NOT NULL default '0', - `ap_bonus` float NOT NULL default '0', - `comments` varchar(255) default NULL, + +DROP TABLE IF EXISTS `spell_proc_item_enchant`; +CREATE TABLE `spell_proc_item_enchant` ( + `entry` mediumint unsigned NOT NULL, + `ppmRate` float NOT NULL default '0', PRIMARY KEY (`entry`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -LOCK TABLES `spell_bonus_data` WRITE; -/*!40000 ALTER TABLE `spell_bonus_data` DISABLE KEYS */; -INSERT INTO `spell_bonus_data` VALUES -('49941', '0', '0', '0.04', 'Death Knight - Blood Boil'), -('55078', '0', '0', '0.055', 'Death Knight - Blood Plague Dummy Proc'), -('50444', '0', '0', '0.105', 'Death Knight - Corpse Explosion Triggered'), -('52212', '0', '0', '0.0475', 'Death Knight - Death and Decay Triggered'), -('47632', '0', '0', '0.15', 'Death Knight - Death Coil Damage'), -('47633', '0', '0', '0.15', 'Death Knight - Death Coil Heal'), -('55095', '0', '0', '0.055', 'Death Knight - Frost Fever'), -('49184', '0', '0', '0.1', 'Death Knight - Howling Blast'), -('45477', '0', '0', '0.1', 'Death Knight - Icy Touch'), -('50842', '0', '0', '0.04', 'Death Knight - Pestilence'), -('47476', '0', '0', '0.06', 'Death Knight - Strangulate'), -('50536', '0', '0', '0.013', 'Death Knight - Unholy Blight Triggered'), -('50401', '0', '0', '0', 'Death Knight - Razor Frost'), -('56903', '0', '0', '0', 'Death Knight - Lichflame'), +-- +-- Dumping data for table `spell_proc_item_enchant` +-- -('5185', '1.6104', '0', '0', 'Druid - Healing Touch'), -('33763', '0', '0.09518', '0', 'Druid - Lifebloom'), -('774', '0', '0.37604', '0', 'Druid - Rejuvenation'), -('8936', '0.539', '0.188', '0', 'Druid - Regrowth'), -('50288', '0.05', '0', '0', 'Druid - Starfall'), -('50294', '0.012', '0', '0', 'Druid - Starfall AOE'), -('18562', '0', '0', '0', 'Druid - Swiftmend'), -('44203', '0.538', '0', '0', 'Druid - Tranquility Triggered'), -('48438', '0', '0.11505', '0', 'Druid - Wild Growth'), -('50464', '0.6611', '0', '0', 'Druid - Nourish'), -('339', '0', '0.1', '0', 'Druid - Entangling Roots'), -('42231', '0.12898', '0', '0', 'Druid - Hurricane Triggered'), -('5570', '0', '0.127', '0', 'Druid - Insect Swarm'), -('8921', '0.1515', '0.13', '0', 'Druid - Moonfire'), -('2912', '1', '0', '0', 'Druid - Starfire'), -('5176', '0.5714', '0', '0', 'Druid - Wrath'), -('30451', '0.7143', '0', '0', 'Mage - Arcane Blast'), -('1449', '0.2128', '0', '0', 'Mage - Arcane Explosion'), -('7268', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 1'), -('7269', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 2'), -('7270', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 3'), -('8419', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 4'), -('8418', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 5'), -('10273', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 6'), -('10274', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 7'), -('25346', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 8'), -('27076', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 9'), -('38700', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 10'), -('38703', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 11'), -('42844', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 12'), -('42845', '0.2857', '0', '0', 'Mage - Arcane Missiles Triggered Spell Rank 13'), -('1463', '0.8053', '0', '0', 'Mage - Mana Shield'), -('44425', '0.8571', '0', '0', 'Mage - Arcane Barrage'), -('11113', '0.1357', '0', '0', 'Mage - Blast Wave Rank'), -('31661', '0.1357', '0', '0', 'Mage - Dragons Breath'), -('2136', '0.4286', '0', '0', 'Mage - Fire Blast'), -('133', '1', '0', '0', 'Mage - Fire Ball'), -('2120', '0.2357', '0.122', '0', 'Mage - Flamestrike'), -('11366', '1.15', '0.05', '0', 'Mage - Pyroblast'), -('2948', '0.4286', '0', '0', 'Mage - Scorch'), -('44614', '0.8571', '0', '0', 'Mage - Frostfire Bolt'), -('44457', '0.4', '0.2', '0', 'Mage - Living Bomb'), -('42208', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 1'), -('42209', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 2'), -('42210', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 3'), -('42211', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 4'), -('42212', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 5'), -('42213', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 6'), -('42198', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 7'), -('42937', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 8'), -('42938', '0.0952', '0', '0', 'Mage - Blizzard Triggered Spell Rank 9'), -('120', '0.1357', '0', '0', 'Mage - Cone of Cold'), -('122', '0.193', '0', '0', 'Mage - Frost Nova'), -('116', '0.8143', '0', '0', 'Mage - Frost Bolt'), -('11426', '0.8053', '0', '0', 'Mage - Ice Barrier'), -('30455', '0.1429', '0', '0', 'Mage - Ice Lance'), -('34913','0', '0', '0', 'Mage - Molten Armor Triggered Rank 1'), -('43043','0', '0', '0', 'Mage - Molten Armor Triggered Rank 2'), -('43044','0', '0', '0', 'Mage - Molten Armor Triggered Rank 3'), -('19750','0.4286', '0', '0', 'Paladin - Flash of Light'), -('635', '0.7143', '0', '0', 'Paladin - Holy Light'), -('25912', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 1'), -('25911', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 2'), -('25902', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 3'), -('27176', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 4'), -('33073', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 5'), -('48822', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 6'), -('48823', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Hurt Rank 7'), -('25914', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 1'), -('25913', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 2'), -('25903', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 3'), -('27175', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 4'), -('33074', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 5'), -('48820', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 6'), -('48821', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal Rank 7'), -('31935', '0.07', '0', '0.07', 'Paladin - Avengers Shiled'), -('26573', '0', '0.04', '0.04', 'Paladin - Consecration'), -('879', '0.15', '0', '0.15', 'Paladin - Exorcism'), -('24275', '0.15', '0', '0.15', 'Paladin - Hammer of Wrath'), -('20925', '0.09', '0', '0.056', 'Paladin - Holy Shield'), -('2812', '0.07', '0', '0.07', 'Paladin - Holy Wrath'), -('31893', '0.25', '0', '0.16', 'Paladin - Seal of Blood Enemy Proc'), -('32221', '0.25', '0', '0.16', 'Paladin - Seal of Blood Self Proc'), -('20424', '0.25', '0', '0.16', 'Paladin - Seal of Command Proc'), -('379', '0', '0', '0', 'Shaman - Earth Shield Triggered'), -('20167', '0.25', '0', '0.16', 'Paladin - Seal of Light Proc'), -('53719', '0.25', '0', '0.16', 'Paladin - Seal of The Martyr Enemy Proc'), -('53718', '0.25', '0', '0.16', 'Paladin - Seal of The Martyr Self Proc'), -('25742', '0.07', '0', '0.039', 'Paladin - Seal of Righteousness Dummy Proc'), -('53595', '0', '0', '0','Paladin - Hammer of the Righteous'), -('31803', '0', '0.013', '0.15', 'Paladin - Holy Vengeance'), -('52042', '0.045', '0', '0', 'Shaman - Healing Stream Totem Triggered Heal'), -('32546', '0.8068', '0', '0', 'Priest - Binding Heal'), -('34861', '0.402', '0', '0', 'Priest - Circle of Healing'), -('19236', '0.8068', '0', '0', 'Priest - Desperate Prayer'), -('2061', '0.8068', '0', '0', 'Priest - Flash Heal'), -('2060', '1.6135', '0', '0', 'Priest - Greater Heal'), -('23455', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 1'), -('23458', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 2'), -('23459', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 3'), -('27803', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 4'), -('27804', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 5'), -('27805', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 6'), -('25329', '0.3035', '0', '0', 'Priest - Holy Nova Heal Rank 7'), -('17', '0.8068', '0', '0', 'Priest - Power Word: Shield'), -('596', '0.8086', '0', '0', 'Priest - Prayer of Healing'), -('33110', '0.8068', '0', '0', 'Priest - Prayer of Mending Heal Proc'), -('139', '0', '0.376', '0', 'Priest - Renew'), -('2944', '0.1849', '0', '0', 'Priest - Devouring Plague'), -('14914', '0.5711', '0.024', '0', 'Priest - Holy Fire'), -('15237', '0.1606', '0', '0', 'Priest - Holy Nova Damage'), -('8129', '0', '0', '0', 'Priest - Mana Burn'), -('8092', '0.4296', '0', '0', 'Priest - Mind Blast'), -('15407', '0.257', '0', '0', 'Priest - Mind Flay'), -('49821', '0.14286', '0', '0', 'Priest - Mind Sear Trigger Rank 1'), -('53022', '0.14286', '0', '0', 'Priest - Mind Sear Trigger Rank 2'), -('34433', '0.65', '0', '0', 'Priest - Shadowfiend'), -('32379', '0.4296', '0', '0', 'Priest - Shadow Word: Death'), -('589', '0', '0.1829', '0', 'Priest - Shadow Word: Pain'), -('585', '0.714', '0', '0', 'Priest - Smite'), -('34914', '0', '0.4', '0', 'Priest - Vampiric Touch'), -('974', '0.4762', '0', '0', 'Shaman - Earth Shield'), -('1064', '1.34', '0', '0', 'Shaman - Chain Heal'), -('331', '1.6106', '0', '0', 'Shaman - Healing Wave'), -('8004', '0.8082', '0', '0', 'Shaman - Lesser Healing Wave'), -('61295', '0.4', '0.18', '0', 'Shaman - Riptide'), -('421', '0.57', '0', '0', 'Shaman - Chain Lightning'), -('8042', '0.3858', '0', '0', 'Shaman - Earth Shock'), -('8443', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 1'), -('8504', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 2'), -('8505', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 3'), -('11310', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 4'), -('11311', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 5'), -('25538', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 6'), -('25539', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 7'), -('61651', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 8'), -('61660', '0.2142', '0', '0', 'Shaman - Fire Nova Totem Casted by Totem Rank 9'), -('8050', '0.2142', '0.1', '0', 'Shaman - Flame Shock'), -('8026', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 1'), -('8028', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 2'), -('8029', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 3'), -('10445', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 4'), -('16343', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 5'), -('16344', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 6'), -('25488', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 7'), -('58786', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 8'), -('58787', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 9'), -('58788', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc Rank 10'), -('8056', '0.3858', '0', '0', 'Shaman - Frost Shock'), -('8034', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 1'), -('8037', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 2'), -('10458', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 3'), -('16352', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 4'), -('16353', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 5'), -('25501', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 6'), -('58797', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 7'), -('58798', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 8'), -('58799', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 9'), -('51505', '0.5714', '0', '0', 'Shaman - Lava Burst'), -('403', '0.7143', '0', '0', 'Shaman - Lightning Bolt'), -('26364', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 1'), -('26365', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 2'), -('26366', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 3'), -('26367', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 4'), -('26369', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 5'), -('26370', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 6'), -('26363', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 7'), -('26371', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 8'), -('26372', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 9'), -('49278', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 10'), -('49279', '0.33', '0', '0', 'Shaman - Lightning Shield Proc Rank 11'), -('8188', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 1'), -('10582', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 2'), -('10583', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 3'), -('10584', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 4'), -('25551', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 5'), -('58733', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 6'), -('58736', '0.1', '0', '0', 'Shaman - Magma Totam Passive Rank 7'), -('3606', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 1'), -('6350', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 2'), -('6351', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 3'), -('6352', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 4'), -('10435', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 5'), -('10436', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 6'), -('25530', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 7'), -('58700', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 8'), -('58701', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 9'), -('58702', '0.1667', '0', '0', 'Shaman - Searing Totem Attack Rank 10'), -('980', '0', '0.1', '0', 'Warlock - Curse of Agony'), -('603', '0', '2', '0', 'Warlock - Curse of Doom'), -('172', '0', '0.3', '0', 'Warlock - Corruption'), -('348', '0.2', '0.2', '0', 'Warlock - Immolate'), -('27243', '0.22', '0.25', '0', 'Warlock - Seed of Corruption'), -('30108', '0', '0.24', '0', 'Warlock - Unstable Affliction'), -('31117', '1.8', '0', '0', 'Warlock - Unstable Affliction Dispell'), -('17962', '0', '0', '0', 'Warlock - Conflagrate'), -('6789', '0.22', '0', '0', 'Warlock - Death Coil'), -('28176', '0', '0', '0', 'Warlock - Fel Armor'), -('48181', '0.4729', '0', '0', 'Warlock - Haunt'), -('29722', '0.7143', '0', '0', 'Warlock - Incinerate'), -('5676', '0.4286', '0', '0', 'Warlock - Searing Pain'), -('686', '0.8571', '0', '0', 'Warlock - Shadow Bolt'), -('17877', '0.4286', '0', '0', 'Warlock - Shadowburn'), -('30283', '0.195', '0', '0', 'Warlock - Shadowfury'), -('6353', '1.15', '0', '0', 'Warlock - Soul Fire'), -('689', '0', '0.1428', '0', 'Warlock - Drain Life'), -('5138', '0', '0', '0', 'Warlock - Drain Mana'), -('1120', '0', '0.4286', '0', 'Warlock - Drain Soul'), -('755', '0', '0.4485', '0', 'Warlock - Health Funnel'), -('1949', '0', '0.0946', '0', 'Warlock - Hellfire'), -('5857', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 1'), -('11681', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 2'), -('11682', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 3'), -('27214', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 4'), -('47822', '0.1428', '0', '0', 'Warlock - Hellfire Effect on Enemy Rank 5'), -('42223', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 1'), -('42224', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 2'), -('42225', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 3'), -('42226', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 4'), -('42218', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 5'), -('47817', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 6'), -('47818', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered Rank 7'), -('18220', '0.96', '0', '0', 'Warlock - Dark Pact Rank 1'), -('18937', '0.96', '0', '0', 'Warlock - Dark Pact Rank 2'), -('18938', '0.96', '0', '0', 'Warlock - Dark Pact Rank 3'), -('27265', '0.96', '0', '0', 'Warlock - Dark Pact Rank 4'), -('59092', '0.96', '0', '0', 'Warlock - Dark Pact Rank 5'), -('6229', '0.3', '0', '0', 'Warlock - Shadow Ward'), -('63106', '0', '0', '0', 'Warlock - Siphon Life Triggered'); -/*!40000 ALTER TABLE `spell_bonus_data` ENABLE KEYS */; +LOCK TABLES `spell_proc_item_enchant` WRITE; +/*!40000 ALTER TABLE `spell_proc_item_enchant` DISABLE KEYS */; +INSERT INTO `spell_proc_item_enchant` (`entry`, `ppmRate`) VALUES +(8034, 9), -- Frostbrand Weapon +(8680, 8.5714), -- Instant Poison +(13218, 21.4286); -- Wound Poison +/*!40000 ALTER TABLE `spell_proc_item_enchant` ENABLE KEYS */; UNLOCK TABLES; -- diff --git a/sql/updates/8249_01_mangos_spell_proc_item_enchant.sql b/sql/updates/8249_01_mangos_spell_proc_item_enchant.sql new file mode 100644 index 000000000..d1502ba40 --- /dev/null +++ b/sql/updates/8249_01_mangos_spell_proc_item_enchant.sql @@ -0,0 +1,13 @@ +ALTER TABLE db_version CHANGE COLUMN required_8247_01_mangos_spell_bonus_data required_8249_01_mangos_spell_proc_item_enchant bit; + +DROP TABLE IF EXISTS `spell_proc_item_enchant`; +CREATE TABLE `spell_proc_item_enchant` ( + `entry` mediumint unsigned NOT NULL, + `ppmRate` float NOT NULL default '0', + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +INSERT INTO `spell_proc_item_enchant` (`entry`, `ppmRate`) VALUES +(8034, 9), -- Frostbrand Weapon +(8680, 8.5714), -- Instant Poison +(13218, 21.4286); -- Wound Poison diff --git a/sql/updates/8249_02_mangos_spell_chain.sql b/sql/updates/8249_02_mangos_spell_chain.sql new file mode 100644 index 000000000..f3fda91c8 --- /dev/null +++ b/sql/updates/8249_02_mangos_spell_chain.sql @@ -0,0 +1,31 @@ +ALTER TABLE db_version CHANGE COLUMN required_8249_01_mangos_spell_proc_item_enchant required_8249_02_mangos_spell_chain bit; + +DELETE FROM `spell_chain` WHERE `spell_id` IN +(8034, 8037, 10458, 16352, 16353, 25501, 58797, 58798, 58799, 8680, 8685, 8689, 11335, 11336, 11337, 26890, 57964, 57965, 13218, 13222, 13223, 13224, 27189, 57974, 57975); + +INSERT INTO `spell_chain` (`spell_id`, `prev_spell`, `first_spell`, `rank`, `req_spell`) VALUES +(8034,0,8034,1,0), -- Frostbrand Attack +(8037,8034,8034,2,0), +(10458,8037,8034,3,0), +(16352,10458,8034,4,0), +(16353,16352,8034,5,0), +(25501,16353,8034,6,0), +(58797,25501,8034,7,0), +(58798,58797,8034,8,0), +(58799,58798,8034,9,0), +(8680,0,8680,1,0), -- Instant Poison +(8685,8680,8680,2,0), +(8689,8685,8680,3,0), +(11335,8689,8680,4,0), +(11336,11335,8680,5,0), +(11337,11336,8680,6,0), +(26890,11337,8680,7,0), +(57964,26890,8680,8,0), +(57965,57964,8680,9,0), +(13218,0,13218,1,0), -- Wound Poison +(13222,13218,13218,2,0), +(13223,13222,13218,3,0), +(13224,13223,13218,4,0), +(27189,13224,13218,5,0), +(57974,27189,13218,6,0), +(57975,57974,13218,7,0); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 584629ea5..5081f2f0b 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -252,6 +252,8 @@ pkgdata_DATA = \ 8227_01_mangos_spell_proc_event.sql \ 8237_01_mangos_creature_template.sql \ 8247_01_mangos_spell_bonus_data.sql \ + 8249_01_mangos_spell_proc_item_enchant.sql \ + 8249_02_mangos_spell_chain.sql \ README ## Additional files to include when running 'make dist' @@ -484,4 +486,6 @@ EXTRA_DIST = \ 8227_01_mangos_spell_proc_event.sql \ 8237_01_mangos_creature_template.sql \ 8247_01_mangos_spell_bonus_data.sql \ + 8249_01_mangos_spell_proc_item_enchant.sql \ + 8249_02_mangos_spell_chain.sql \ README diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 3255e04d0..16484d272 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -451,6 +451,7 @@ ChatCommand * ChatHandler::getCommandTable() { "spell_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesSpellCommand, "", NULL }, { "spell_pet_auras", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellPetAurasCommand, "", NULL }, { "spell_proc_event", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellProcEventCommand, "", NULL }, + { "spell_proc_item_enchant", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellProcItemEnchantCommand, "", NULL }, { "spell_script_target", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellScriptTargetCommand, "", NULL }, { "spell_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellScriptsCommand, "", NULL }, { "spell_target_position", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellTargetPositionCommand, "", NULL }, diff --git a/src/game/Chat.h b/src/game/Chat.h index 280d5505b..ac03a6f07 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -375,6 +375,7 @@ class ChatHandler bool HandleReloadSpellElixirCommand(const char* args); bool HandleReloadSpellLearnSpellCommand(const char* args); bool HandleReloadSpellProcEventCommand(const char* args); + bool HandleReloadSpellProcItemEnchantCommand(const char* args); bool HandleReloadSpellBonusesCommand(const char* args); bool HandleReloadSpellScriptTargetCommand(const char* args); bool HandleReloadSpellScriptsCommand(const char* args); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 2526652f5..c6ec6eacf 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -157,6 +157,7 @@ bool ChatHandler::HandleReloadAllSpellCommand(const char*) HandleReloadSpellLearnSpellCommand("a"); HandleReloadSpellProcEventCommand("a"); HandleReloadSpellBonusesCommand("a"); + HandleReloadSpellProcItemEnchantCommand("a"); HandleReloadSpellScriptTargetCommand("a"); HandleReloadSpellTargetPositionCommand("a"); HandleReloadSpellThreatsCommand("a"); @@ -528,6 +529,14 @@ bool ChatHandler::HandleReloadSpellBonusesCommand(const char*) return true; } +bool ChatHandler::HandleReloadSpellProcItemEnchantCommand(const char*) +{ + sLog.outString( "Re-Loading Spell Proc Item Enchant..." ); + spellmgr.LoadSpellProcItemEnchant(); + SendGlobalSysMessage("DB table `spell_proc_item_enchant` (item enchantment ppm) reloaded."); + return true; +} + bool ChatHandler::HandleReloadSpellScriptTargetCommand(const char*) { sLog.outString( "Re-Loading SpellsScriptTarget..." ); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index f9874ae61..62fe327d7 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -6997,7 +6997,7 @@ void Player::CastItemCombatSpell(Unit* Target, WeaponAttackType attType) if(spellData.SpellPPMRate) { - uint32 WeaponSpeed = GetAttackTime(attType); + uint32 WeaponSpeed = proto->Delay; chance = GetPPMProcChance(WeaponSpeed, spellData.SpellPPMRate); } else if(chance > 100.0f) @@ -7027,7 +7027,18 @@ void Player::CastItemCombatSpell(Unit* Target, WeaponAttackType attType) continue; } - float chance = pEnchant->amount[s] != 0 ? float(pEnchant->amount[s]) : GetWeaponProcChance(); + // Use first rank to access spell item enchant procs + uint32 firstRank = spellmgr.GetFirstSpellInChain(spellInfo->Id); + float ppmRate = spellmgr.GetItemEnchantProcChance(firstRank); + + float chance = ppmRate + ? GetPPMProcChance(proto->Delay, ppmRate) + : pEnchant->amount[s] != 0 ? float(pEnchant->amount[s]) : GetWeaponProcChance(); + + + ApplySpellMod(spellInfo->Id,SPELLMOD_CHANCE_OF_SUCCESS,chance); + ApplySpellMod(spellInfo->Id,SPELLMOD_FREQUENCY_OF_SUCCESS,chance); + if (roll_chance_f(chance)) { if(IsPositiveSpell(pEnchant->spellid[s])) diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index ad3eda329..3ef401901 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -769,6 +769,63 @@ void SpellMgr::LoadSpellProcEvents() sLog.outString( ">> Loaded %u extra spell proc event conditions", count ); } +void SpellMgr::LoadSpellProcItemEnchant() +{ + mSpellProcItemEnchantMap.clear(); // need for reload case + + uint32 count = 0; + + // 0 1 + QueryResult *result = WorldDatabase.Query("SELECT entry, ppmRate FROM spell_proc_item_enchant"); + if( !result ) + { + + barGoLink bar( 1 ); + + bar.step(); + + sLog.outString(); + sLog.outString( ">> Loaded %u proc item enchant definitions", count ); + return; + } + + barGoLink bar( result->GetRowCount() ); + + do + { + Field *fields = result->Fetch(); + + bar.step(); + + uint32 entry = fields[0].GetUInt32(); + float ppmRate = fields[1].GetFloat(); + + SpellEntry const* spellInfo = sSpellStore.LookupEntry(entry); + + if (!spellInfo) + { + sLog.outErrorDb("Spell %u listed in `spell_proc_item_enchant` does not exist", entry); + continue; + } + + if ( GetFirstSpellInChain(entry) != entry ) + { + sLog.outErrorDb("Spell %u listed in `spell_proc_item_enchant` is not first rank in chain", entry); + // prevent loading since it won't have an effect anyway + continue; + } + + mSpellProcItemEnchantMap[entry] = ppmRate; + + ++count; + } while( result->NextRow() ); + + delete result; + + sLog.outString(); + sLog.outString( ">> Loaded %u proc item enchant definitions", count ); +} + void SpellMgr::LoadSpellBonusess() { mSpellBonusMap.clear(); // need for reload case diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h index 2ac9e310b..bd76dcd9d 100644 --- a/src/game/SpellMgr.h +++ b/src/game/SpellMgr.h @@ -449,6 +449,7 @@ typedef UNORDERED_MAP SpellBonusMap; #define ELIXIR_SHATTRATH_MASK 0x8 typedef std::map SpellElixirMap; +typedef std::map SpellProcItemEnchantMap; // Spell script target related declarations (accessed using SpellMgr functions) enum SpellTargetType @@ -671,6 +672,16 @@ class SpellMgr return NULL; } + // Spell procs from item enchants + float GetItemEnchantProcChance(uint32 spellid) const + { + SpellProcItemEnchantMap::const_iterator itr = mSpellProcItemEnchantMap.find(spellid); + if(itr==mSpellProcItemEnchantMap.end()) + return 0.0f; + + return itr->second; + } + static bool IsSpellProcEventCanTriggeredBy( SpellProcEventEntry const * spellProcEvent, uint32 EventProcFlag, SpellEntry const * procSpell, uint32 procFlags, uint32 procExtra, bool active); // Spell bonus data @@ -898,6 +909,7 @@ class SpellMgr void LoadSpellScriptTarget(); void LoadSpellElixirs(); void LoadSpellProcEvents(); + void LoadSpellProcItemEnchant(); void LoadSpellBonusess(); void LoadSpellTargetPositions(); void LoadSpellThreats(); @@ -916,6 +928,7 @@ class SpellMgr SpellTargetPositionMap mSpellTargetPositions; SpellElixirMap mSpellElixirs; SpellProcEventMap mSpellProcEventMap; + SpellProcItemEnchantMap mSpellProcItemEnchantMap; SpellBonusMap mSpellBonusMap; SkillLineAbilityMap mSkillLineAbilityMap; SpellPetAuraMap mSpellPetAuraMap; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 1a46488d4..0b67a2f1d 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8926,8 +8926,7 @@ float Unit::GetPPMProcChance(uint32 WeaponSpeed, float PPM) const { // proc per minute chance calculation if (PPM <= 0) return 0.0f; - uint32 result = uint32((WeaponSpeed * PPM) / 600.0f); // result is chance in percents (probability = Speed_in_sec * (PPM / 60)) - return result; + return WeaponSpeed * PPM / 600.0f; // result is chance in percents (probability = Speed_in_sec * (PPM / 60)) } void Unit::Mount(uint32 mount) @@ -11732,7 +11731,10 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura* aura, SpellEntry con } // Apply chance modifer aura if(Player* modOwner = GetSpellModOwner()) + { modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_CHANCE_OF_SUCCESS,chance); + modOwner->ApplySpellMod(spellProto->Id,SPELLMOD_FREQUENCY_OF_SUCCESS,chance); + } return roll_chance_f(chance); } diff --git a/src/game/Unit.h b/src/game/Unit.h index 7abb97e6b..386f5181f 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -102,14 +102,15 @@ enum SpellModOp SPELLMOD_CRIT_DAMAGE_BONUS = 15, SPELLMOD_RESIST_MISS_CHANCE = 16, SPELLMOD_JUMP_TARGETS = 17, - SPELLMOD_CHANCE_OF_SUCCESS = 18, + SPELLMOD_CHANCE_OF_SUCCESS = 18, // Only used with SPELL_AURA_ADD_FLAT_MODIFIER and affects proc spells SPELLMOD_ACTIVATION_TIME = 19, SPELLMOD_EFFECT_PAST_FIRST = 20, SPELLMOD_CASTING_TIME_OLD = 21, SPELLMOD_DOT = 22, SPELLMOD_EFFECT3 = 23, SPELLMOD_SPELL_BONUS_DAMAGE = 24, - // spellmod 25, 26 unused + // spellmod 25 unused + SPELLMOD_FREQUENCY_OF_SUCCESS = 26, // Only used with SPELL_AURA_ADD_PCT_MODIFIER and affects used on proc spells SPELLMOD_MULTIPLE_VALUE = 27, SPELLMOD_RESIST_DISPEL_CHANCE = 28 }; diff --git a/src/game/World.cpp b/src/game/World.cpp index 0aec60ef4..869bf5357 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1148,6 +1148,9 @@ void World::SetInitialWorldSettings() sLog.outString( "Loading Spell Bonus Data..." ); spellmgr.LoadSpellBonusess(); + sLog.outString( "Loading Spell Proc Item Enchant..." ); + spellmgr.LoadSpellProcItemEnchant(); // must be after LoadSpellChains + sLog.outString( "Loading Aggro Spells Definitions..."); spellmgr.LoadSpellThreats(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index edf27fdd1..ba58a49ca 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 "8248" + #define REVISION_NR "8249" #endif // __REVISION_NR_H__