Merge commit 'origin/master' into 320

This commit is contained in:
tomrus88 2009-09-14 16:32:59 +04:00
commit 6f2b9a7e80
48 changed files with 574 additions and 281 deletions

View file

@ -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_8482_01_mangos_spell_elixir` bit(1) default NULL
`required_8498_01_mangos_spell_proc_event` bit(1) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
--
@ -13594,152 +13594,159 @@ LOCK TABLES `spell_bonus_data` WRITE;
/*!40000 ALTER TABLE `spell_bonus_data` DISABLE KEYS */;
INSERT INTO `spell_bonus_data` VALUES
/* Death Knight */
('48721', '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'),
(48721, 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'),
(56903, 0, 0, 0, 'Death Knight - Lichflame'),
(50842, 0, 0, 0.04, 'Death Knight - Pestilence'),
(50401, 0, 0, 0, 'Death Knight - Razor Frost'),
(47476, 0, 0, 0.06, 'Death Knight - Strangulate'),
(50536, 0, 0, 0.013, 'Death Knight - Unholy Blight Triggered'),
/* Druid */
('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'),
(5185, 1.6104, 0, 0, 'Druid - Healing Touch'),
(339, 0, 0.1, 0, 'Druid - Entangling Roots'),
(42231, 0.12898,0, 0, 'Druid - Hurricane Triggered'),
(5570, 0, 0.2, 0, 'Druid - Insect Swarm'),
(33763, 0, 0.09518, 0, 'Druid - Lifebloom'),
(8921, 0.1515, 0.13, 0, 'Druid - Moonfire'),
(50464, 0.6611, 0, 0, 'Druid - Nourish'),
(8936, 0.539, 0.188, 0, 'Druid - Regrowth'),
(774, 0, 0.37604, 0, 'Druid - Rejuvenation'),
(50288, 0.05, 0, 0, 'Druid - Starfall'),
(50294, 0.012, 0, 0, 'Druid - Starfall AOE'),
(2912, 1, 0, 0, 'Druid - Starfire'),
(18562, 0, 0, 0, 'Druid - Swiftmend'),
(44203, 0.538, 0, 0, 'Druid - Tranquility Triggered'),
(61391, 0.193, 0, 0, 'Druid - Typhoon'),
(48438, 0, 0.11505, 0, 'Druid - Wild Growth'),
(5176, 0.5714, 0, 0, 'Druid - Wrath'),
/* Mage */
('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'),
('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'),
('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'),
(44425, 0.714286,0, 0, 'Mage - Arcane Barrage'),
(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'),
(42208, 0.1437, 0, 0, 'Mage - Blizzard Triggered'),
(2136, 0.4286, 0, 0, 'Mage - Fire Blast'),
(133, 1, 0, 0, 'Mage - Fire Ball'),
(2120, 0.2357, 0.122, 0, 'Mage - Flamestrike'),
(122, 0.193, 0, 0, 'Mage - Frost Nova'),
(116, 0.8143, 0, 0, 'Mage - Frost Bolt'),
(44614, 0.8571, 0, 0, 'Mage - Frostfire Bolt'),
(11426, 0.8053, 0, 0, 'Mage - Ice Barrier'),
(30455, 0.1429, 0, 0, 'Mage - Ice Lance'),
(44457, 0.4, 0.2, 0, 'Mage - Living Bomb'),
(1463, 0.8053, 0, 0, 'Mage - Mana Shield'),
(34913, 0, 0, 0, 'Mage - Molten Armor Triggered'),
(11366, 1.15, 0.05, 0, 'Mage - Pyroblast'),
(2948, 0.4286, 0, 0, 'Mage - Scorch'),
/* Paladin */
('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'),
('25914', '0.4286', '0', '0', 'Paladin - Holy Shock Triggered Heal'),
('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'),
(31935, 0.07, 0, 0.07, 'Paladin - Avengers Shiled'),
(53742, 0, 0.0156, 0.03, 'Paladin - Blood Corruption'),
(26573, 0, 0.04, 0.04, 'Paladin - Consecration'),
(879, 0.15, 0, 0.15, 'Paladin - Exorcism'),
(25997, 0, 0, 0, 'Paladin - Eye for an Eye'),
(19750, 1, 0, 0, 'Paladin - Flash of Light'),
(53595, 0, 0, 0, 'Paladin - Hammer of the Righteous'),
(24275, 0.15, 0, 0.15, 'Paladin - Hammer of Wrath'),
(635, 1.66, 0, 0, 'Paladin - Holy Light'),
(25912, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt'),
(20925, 0.09, 0, 0.056, 'Paladin - Holy Shield'),
(31803, 0, 0.0156, 0.03, 'Paladin - Holy Vengeance'),
(2812, 0.07, 0, 0.07, 'Paladin - Holy Wrath'),
(31898, 0.18, 0, 0.11, 'Paladin - Judgement of Blood Enemy'),
(32220, 0.0594, 0, 0.0363,'Paladin - Judgement of Blood Self'),
(20467, 0.25, 0, 0.16, 'Paladin - Judgement of Command'),
(53733, 0, 0, 0, 'Paladin - Judgement of Corruption'),
(20267, 0.1, 0, 0.1, 'Paladin - Judgement of Light Proc'),
(20187, 0.32, 0, 0, 'Paladin - Judgement of Righteousness'),
(53726, 0.18, 0, 0.11, 'Paladin - Judgement of the Martyr Enemy'),
(53725, 0.0594, 0, 0.0363,'Paladin - Judgement of the Martyr Self'),
(31804, 0, 0, 0, 'Paladin - Judgement of Vengeance'),
(31893, 0, 0, 0, 'Paladin - Seal of Blood Proc Enemy'),
(32221, 0, 0, 0, 'Paladin - Seal of Blood Proc Self'),
(20424, 0, 0, 0, 'Paladin - Seal of Command Proc'),
(53739, 0, 0.00156, 0.003, 'Paladin - Seal of Corruption (full stack proc)'),
(20167, 0.15, 0, 0.15, 'Paladin - Seal of Light Proc'),
(25742, 0.07, 0, 0.039, 'Paladin - Seal of Righteousness Dummy Proc'),
(53719, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Enemy'),
(53718, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Self'),
(42463, 0, 0.00156, 0.003, 'Paladin - Seal of Vengeance (full stack proc)'),
(53600, 0, 0, 0, 'Paladin - Shield of Righteousness'),
/* Priest */
('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'),
('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'),
('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'),
(32546, 0.8068, 0, 0, 'Priest - Binding Heal'),
(27813, 0, 0, 0, 'Priest - Blessed Recovery'),
(34861, 0.402, 0, 0, 'Priest - Circle of Healing'),
(19236, 0.8068, 0, 0, 'Priest - Desperate Prayer'),
(2944, 0, 0.1849, 0, 'Priest - Devouring Plague'),
(14914, 0.5711, 0.024, 0, 'Priest - Holy Fire'),
(15237, 0.1606, 0, 0, 'Priest - Holy Nova Damage'),
(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'),
(8129, 0, 0, 0, 'Priest - Mana Burn'),
(58381, 0.257143,0, 0, 'Priest - Mind Flay Triggered'),
(49821, 0.14286,0, 0, 'Priest - Mind Sear Trigger'),
(17, 0.8068, 0, 0, 'Priest - Power Word: Shield'),
(33110, 0.8068, 0, 0, 'Priest - Prayer of Mending Heal Proc'),
(33619, 0, 0, 0, 'Priest - Reflective Shield'),
(139, 0, 0.376, 0, 'Priest - Renew'),
(32379, 0.4296, 0, 0, 'Priest - Shadow Word: Death'),
(589, 0, 0.1829, 0, 'Priest - Shadow Word: Pain'),
(34433, 0.65, 0, 0, 'Priest - Shadowfiend'),
(585, 0.714, 0, 0, 'Priest - Smite'),
(34914, 0, 0.4, 0, 'Priest - Vampiric Touch'),
/* Shaman */
('974', '0.4762', '0', '0', 'Shaman - Earth Shield'),
('1064', '1.34', '0', '0', 'Shaman - Chain Heal'),
('331', '1.6106', '0', '0', 'Shaman - Healing Wave'),
('52042', '0.045', '0', '0', 'Shaman - Healing Stream Totem Triggered Heal'),
('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'),
('8050', '0.2142', '0.1', '0', 'Shaman - Flame Shock'),
('8026', '0.1', '0', '0', 'Shaman - Flametongue Weapon Proc'),
('8056', '0.3858', '0', '0', 'Shaman - Frost Shock'),
('8034', '0.1', '0', '0', 'Shaman - Frostbrand Attack Rank 1'),
('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'),
('8188', '0.1', '0', '0', 'Shaman - Magma Totam Passive'),
('3606', '0.1667', '0', '0', 'Shaman - Searing Totem Attack'),
(974, 0.4762, 0, 0, 'Shaman - Earth Shield'),
(379, 0, 0, 0, 'Shaman - Earth Shield Triggered'),
(1064, 1.34, 0, 0, 'Shaman - Chain Heal'),
(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'),
(8050, 0.2142, 0.1, 0, 'Shaman - Flame Shock'),
(8026, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc'),
(8056, 0.3858, 0, 0, 'Shaman - Frost Shock'),
(8034, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 1'),
(52042, 0.045, 0, 0, 'Shaman - Healing Stream Totem Triggered Heal'),
(331, 1.6106, 0, 0, 'Shaman - Healing Wave'),
(51505, 0.5714, 0, 0, 'Shaman - Lava Burst'),
(8004, 0.8082, 0, 0, 'Shaman - Lesser Healing Wave'),
(403, 0.7143, 0, 0, 'Shaman - Lightning Bolt'),
(26364, 0.33, 0, 0, 'Shaman - Lightning Shield Proc'),
(8188, 0.1, 0, 0, 'Shaman - Magma Totam Passive'),
(61295, 0.4, 0.18, 0, 'Shaman - Riptide'),
(3606, 0.1667, 0, 0, 'Shaman - Searing Totem Attack'),
/* Warlock */
('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'),
('42223', '0.952', '0', '0', 'Warlock - Rain of Fire Triggered'),
('18220', '0.96', '0', '0', 'Warlock - Dark Pact'),
('6229', '0.3', '0', '0', 'Warlock - Shadow Ward'),
('63106', '0', '0', '0', 'Warlock - Siphon Life Triggered'),
(17962, 0, 0, 0, 'Warlock - Conflagrate'),
(172, 0, 0.3, 0, 'Warlock - Corruption'),
(980, 0, 0.1, 0, 'Warlock - Curse of Agony'),
(603, 0, 2, 0, 'Warlock - Curse of Doom'),
(18220, 0.96, 0, 0, 'Warlock - Dark Pact'),
(5138, 0, 0, 0, 'Warlock - Drain Mana'),
(1120, 0, 0.4286, 0, 'Warlock - Drain Soul'),
(28176, 0, 0, 0, 'Warlock - Fel Armor'),
(18790, 0, 0, 0, 'Warlock - Fel Stamina'),
(48181, 0.4729, 0, 0, 'Warlock - Haunt'),
(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'),
(348, 0.2, 0.2, 0, 'Warlock - Immolate'),
(42223, 0.285714,0, 0, 'Warlock - Rain of Fire Triggered'),
(27243, 0.2129, 0.25, 0, 'Warlock - Seed of Corruption'),
(6229, 0.3, 0, 0, 'Warlock - Shadow Ward'),
(47960, 0, 0.06666, 0, 'Warlock - Shadowflame DoT'),
(47897, 0.1064, 0, 0, 'Warlock - Shadowflame Direct'),
(63106, 0, 0, 0, 'Warlock - Siphon Life Triggered'),
(6353, 1.15, 0, 0, 'Warlock - Soul Fire'),
(30294, 0, 0, 0, 'Warlock - Soul Leech'),
(31117, 1.8, 0, 0, 'Warlock - Unstable Affliction Dispell'),
/* Item */
(40293, 0, 0, 0, 'Item - Siphon Essence');
(40293, 0, 0, 0, 'Item - Siphon Essence');
/*!40000 ALTER TABLE `spell_bonus_data` ENABLE KEYS */;
UNLOCK TABLES;
@ -14255,6 +14262,10 @@ INSERT INTO spell_chain VALUES
/*Body and Soul*/
(64127,0,64127,1,0),
(64129,64127,64127,2,0),
/*Blessed Recovery Proc*/
(27813,0,27813,1,0),
(27817,27813,27813,2,0),
(27818,27817,27813,3,0),
/*Circle of Healing*/
(34861,0,34861,1,0),
(34863,34861,34861,2,0),
@ -16255,6 +16266,12 @@ INSERT INTO spell_chain VALUES
(53225,53223,50516,3,0),
(53226,53225,50516,4,0),
(61384,53226,50516,5,0),
/*Typhoon Triggered*/
(61391,0,61391,1,0),
(61390,61391,61391,2,0),
(61388,61390,61391,3,0),
(61387,61388,61391,4,0),
(53227,61387,61391,5,0),
/*Wrath*/
(5176,0,5176,1,0),
(5177,5176,5176,2,0),
@ -16821,9 +16838,9 @@ INSERT INTO spell_chain VALUES
(34769,0,34769,1,0),
(34767,34769,34769,2,33391),
/*------------------
--(780)Pet-ExoticChimaera
--(780)Pet-Exotic Chimaera
------------------*/
/*FroststormBreath*/
/*Froststorm Breath*/
(54644,0,54644,1,0),
(55488,54644,54644,2,0),
(55489,55488,54644,3,0),
@ -16831,9 +16848,9 @@ INSERT INTO spell_chain VALUES
(55491,55490,54644,5,0),
(55492,55491,54644,6,0),
/*------------------
--(781)Pet-ExoticDevlisaur
--(781)Pet-Exotic Devlisaur
------------------*/
/*MonstrousBite*/
/*Monstrous Bite*/
(54680,0,54680,1,0),
(55495,54680,54680,2,0),
(55496,55495,54680,3,0),
@ -16841,7 +16858,7 @@ INSERT INTO spell_chain VALUES
(55498,55497,54680,5,0),
(55499,55498,54680,6,0),
/*------------------
--(784)Pet-ExoticWorm
--(784)Pet-Exotic Worm
------------------*/
/*AcidSpit*/
(55749,0,55749,1,0),
@ -16861,9 +16878,9 @@ INSERT INTO spell_chain VALUES
(56630,56629,56626,5,0),
(56631,56630,56626,6,0),
/*------------------
--(787)Pet-ExoticCoreHound
--(787)Pet-Exotic Core Hound
------------------*/
/*LavaBreath*/
/*Lava Breath*/
(58604,0,58604,1,0),
(58607,58604,58604,2,0),
(58608,58607,58604,3,0),
@ -16871,16 +16888,27 @@ INSERT INTO spell_chain VALUES
(58610,58609,58604,5,0),
(58611,58610,58604,6,0),
/*------------------
--(788)Pet-ExoticSpiritBeast
--(788)Pet-Exotic Spirit Beast
------------------*/
/*SpiritStrike*/
/*Spirit Strike*/
(61193,0,61193,1,0),
(61194,61193,61193,2,0),
(61195,61194,61193,3,0),
(61196,61195,61193,4,0),
(61197,61196,61193,5,0),
(61198,61197,61193,6,0),
/*------------------
--(-) Not listed in skill abilities
------------------*/
/*Hurricane*/
(42231, 0,42231,1,0),
(42232,42231,42231,2,0),
(42233,42232,42231,3,0),
(42230,42233,42231,4,0),
(48466,42230,42231,5,0),
/*Shadowflame Triggered DoT*/
(47960,0,47960,1,0),
(61291,47960,47960,2,0),
/*Tranquility*/
(44203, 0,44203,1,0),
(44205,44203,44203,2,0),
@ -16888,13 +16916,7 @@ INSERT INTO spell_chain VALUES
(44207,44206,44203,4,0),
(44208,44207,44203,5,0),
(48444,44208,44203,6,0),
(48445,48444,44203,7,0),
/*Hurricane*/
(42231, 0,42231,1,0),
(42232,42231,42231,2,0),
(42233,42232,42231,3,0),
(42230,42233,42231,4,0),
(48466,42230,42231,5,0);
(48445,48444,44203,7,0);
/*!40000 ALTER TABLE `spell_chain` ENABLE KEYS */;
UNLOCK TABLES;
@ -17485,7 +17507,6 @@ INSERT INTO `spell_proc_event` VALUES
(31570, 0x00000000, 3, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(31785, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00008800, 0x00000000, 0.000000, 0.000000, 0),
(31794, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
(31801, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,20.000000, 0.000000, 0),
(31833, 0x00000000, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(31835, 0x00000000, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(31836, 0x00000000, 10, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
@ -17828,6 +17849,9 @@ INSERT INTO `spell_proc_event` VALUES
(53224, 0x00000000, 9, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(53228, 0x00000000, 9, 0x00000020, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(53232, 0x00000000, 9, 0x00000020, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(53234, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53237, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53238, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53256, 0x00000000, 9, 0x00000800, 0x00800001, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53259, 0x00000000, 9, 0x00000800, 0x00800001, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53260, 0x00000000, 9, 0x00000800, 0x00800001, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),

View file

@ -406,4 +406,8 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
( 0, 7,0x0010000000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Swipe', 'Spell::EffectSchoolDMG'),
( 0, 4,0x0000000000000080,0x00000000, -1, -1, -1, 2, -1,-1,'Thunder Clap', 'Spell::EffectSchoolDMG'),
( 0, 4,0x0000010000000000,0x00000000, -1, -1, -1, 2, -1,-1,'Victory Rush', 'Spell::EffectSchoolDMG'),
( 0, 8,0x0000000010000000,0x00000000, -1, -1, -1, 2, -1,-1,'Wound Poison', 'Spell::EffectSchoolDMG');
( 0, 8,0x0000000010000000,0x00000000, -1, -1, -1, 2, -1,-1,'Wound Poison', 'Spell::EffectSchoolDMG'),
/* some random spells from not proccessed files sorted by spell ids */
/*id fm familyMaskA fmMaskB icon vis cat eff aur ef name code */
(53563,-1, -1, -1, -1, -1, -1, -1, 4,-1,'Beacon of Light', 'Aura::HandleAuraDummy'); /* will outdated in 3.2.x */

View file

@ -6,4 +6,4 @@ CREATE TABLE `item_required_target` (
`type` tinyint(3) unsigned NOT NULL default '0',
`targetEntry` mediumint(8) unsigned NOT NULL default '0',
UNIQUE KEY `entry_type_target` (`entry`,`type`,`targetEntry`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;

View file

@ -4,4 +4,4 @@ UPDATE IGNORE character_spell
SET spell = 64901
WHERE spell = 64904;
DELETE FROM character_spell WHERE spell = 64904;
DELETE FROM character_spell WHERE spell = 64904;

View file

@ -1,3 +1,3 @@
ALTER TABLE db_version CHANGE COLUMN required_8021_01_mangos_spell_proc_event required_8030_03_mangos_npc_trainer bit;
DELETE FROM npc_trainer WHERE spell = 64904;
DELETE FROM npc_trainer WHERE spell = 64904;

View file

@ -1,4 +1,4 @@
ALTER TABLE db_version CHANGE COLUMN required_8030_03_mangos_npc_trainer required_8050_01_mangos_spell_proc_event bit;
DELETE FROM spell_proc_event WHERE entry = 63108;
INSERT INTO spell_proc_event VALUES (63108, 0x00, 5, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
INSERT INTO spell_proc_event VALUES (63108, 0x00, 5, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);

View file

@ -1,4 +1,4 @@
ALTER TABLE db_version CHANGE COLUMN required_8050_01_mangos_spell_proc_event required_8050_02_mangos_spell_bonus_data bit;
DELETE FROM spell_bonus_data WHERE entry = 63106;
INSERT INTO spell_bonus_data VALUES (63106, 0, 0, 0, 'Warlock - Siphon Life Triggered');
INSERT INTO spell_bonus_data VALUES (63106, 0, 0, 0, 'Warlock - Siphon Life Triggered');

View file

@ -1,3 +1,3 @@
ALTER TABLE db_version CHANGE COLUMN required_8064_01_mangos_spell_chain required_8065_01_mangos_spell_proc_event bit;
DELETE FROM spell_proc_event WHERE entry IN (47535, 47536, 47537, 58435);
DELETE FROM spell_proc_event WHERE entry IN (47535, 47536, 47537, 58435);

View file

@ -3,4 +3,4 @@ ALTER TABLE db_version CHANGE COLUMN required_8098_02_mangos_playercreateinfo_ac
DELETE FROM spell_proc_event WHERE entry IN (63156, 63158);
INSERT INTO spell_proc_event VALUES
(63156, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
(63158, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
(63158, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);

View file

@ -4,4 +4,4 @@ DELETE FROM spell_proc_event WHERE entry IN (31876, 31877, 31878);
INSERT INTO spell_proc_event VALUES
(31876, 0x00000000, 10, 0x00800000, 0x00000000, 0x00000008, 0x00004110, 0x00000000, 0.000000, 0.000000, 0),
(31877, 0x00000000, 10, 0x00800000, 0x00000000, 0x00000008, 0x00004110, 0x00000000, 0.000000, 0.000000, 0),
(31878, 0x00000000, 10, 0x00800000, 0x00000000, 0x00000008, 0x00004110, 0x00000000, 0.000000, 0.000000, 0);
(31878, 0x00000000, 10, 0x00800000, 0x00000000, 0x00000008, 0x00004110, 0x00000000, 0.000000, 0.000000, 0);

View file

@ -1,4 +1,4 @@
ALTER TABLE db_version CHANGE COLUMN required_8212_01_mangos_spell_proc_event required_8213_01_mangos_spell_bonus_data bit;
DELETE FROM `spell_bonus_data` where entry='17962';
INSERT INTO `spell_bonus_data` (`entry`) VALUES ('17962');
INSERT INTO `spell_bonus_data` (`entry`) VALUES ('17962');

View file

@ -1,4 +1,4 @@
ALTER TABLE db_version CHANGE COLUMN required_8227_01_mangos_spell_proc_event required_8237_01_mangos_creature_template bit;
UPDATE creature_template
SET mindmg = ROUND(mindmg + attackpower), maxdmg=ROUND(maxdmg+attackpower);
SET mindmg = ROUND(mindmg + attackpower), maxdmg=ROUND(maxdmg+attackpower);

View file

@ -1,3 +1,3 @@
ALTER TABLE db_version CHANGE COLUMN required_8249_02_mangos_spell_chain required_8250_01_mangos_spell_threat bit;
DELETE FROM `spell_threat` WHERE `entry` IN (778,9749,9907,14274,15629,15630,15631,15632,17390,17391,17392,26993,27011);
DELETE FROM `spell_threat` WHERE `entry` IN (778,9749,9907,14274,15629,15630,15631,15632,17390,17391,17392,26993,27011);

View file

@ -17,4 +17,4 @@ CREATE TABLE `guild_eventlog` (
-- The reason i decided for such dramatic change is that old guild_eventlog table didn't have Primary key and
-- used LogGuids from 0 to infinity
-- New system uses LogGuids from 0 to number defined in config.
-- New system uses LogGuids from 0 to number defined in config.

View file

@ -20,4 +20,4 @@ CREATE TABLE `guild_bank_eventlog` (
-- The reason i decided for such dramatic change is that old guild_bank_eventlog table used `TabId` = 0 for Money events and
-- used `LogGuid` from 0 to infinity
-- New system uses `LogGuid` from 0 to number defined in config.
-- New system uses `LogGuid` from 0 to number defined in config.

View file

@ -14,4 +14,4 @@ ALTER TABLE guild ADD COLUMN createdate bigint(20) NOT NULL default '0' AFTER mo
-- copy data to new column
UPDATE guild set createdate = created_temp;
-- remove old column
ALTER TABLE guild DROP COLUMN created_temp;
ALTER TABLE guild DROP COLUMN created_temp;

View file

@ -13,4 +13,4 @@ INSERT INTO character_account_data
SELECT c.guid as guid, a.type as type, a.time as time, a.data as data
FROM characters c LEFT JOIN account_data a ON c.account = a.account WHERE a.type IN (1, 3, 5, 6, 7);
DELETE FROM account_data WHERE type IN (1, 3, 5, 6, 7);
DELETE FROM account_data WHERE type IN (1, 3, 5, 6, 7);

View file

@ -0,0 +1,20 @@
ALTER TABLE db_version CHANGE COLUMN required_8482_01_mangos_spell_elixir required_8487_01_mangos_spell_bonus_data bit;
DELETE FROM `spell_bonus_data` where entry in (20424, 20467, 42463, 53739, 31803, 53742, 31804, 53733, 31893, 32221, 32220, 31898, 53719, 53718, 53725, 53726);
INSERT INTO `spell_bonus_data` VALUES
(20424, 0, 0, 0, "Paladin - Seal of Command Proc"),
(20467, 0.25, 0, 0.16, "Paladin - Judgement of Command"),
(42463, 0, 0.00156, 0.003, "Paladin - Seal of Vengeance (full stack proc)"),
(53739, 0, 0.00156, 0.003, "Paladin - Seal of Corruption (full stack proc)"),
(31803, 0, 0.0156, 0.03, "Paladin - Holy Vengeance"),
(53742, 0, 0.0156, 0.03, "Paladin - Blood Corruption"),
(31804, 0, 0, 0, "Paladin - Judgement of Vengeance"),
(53733, 0, 0, 0, "Paladin - Judgement of Corruption"),
(31893, 0, 0, 0, "Paladin - Seal of Blood Proc Enemy"),
(32221, 0, 0, 0, "Paladin - Seal of Blood Proc Self"),
(31898, 0.18, 0, 0.11, "Paladin - Judgement of Blood Enemy"),
(32220, 0.0594, 0, 0.0363, "Paladin - Judgement of Blood Self"),
(53719, 0, 0, 0, "Paladin - Seal of the Martyr Proc Enemy"),
(53718, 0, 0, 0, "Paladin - Seal of the Martyr Proc Self"),
(53726, 0.18, 0, 0.11, "Paladin - Judgement of the Martyr Enemy"),
(53725, 0.0594, 0, 0.0363, "Paladin - Judgement of the Martyr Self");

View file

@ -0,0 +1,3 @@
ALTER TABLE db_version CHANGE COLUMN required_8487_01_mangos_spell_bonus_data required_8487_02_mangos_spell_proc_event bit;
DELETE FROM `spell_proc_event` WHERE `entry` IN (31801, 53736);

View file

@ -0,0 +1,18 @@
ALTER TABLE db_version CHANGE COLUMN required_8487_02_mangos_spell_proc_event required_8488_01_mangos_spell_chain bit;
DELETE FROM `spell_chain` WHERE `spell_id` IN (27813, 27817, 27818, 61391, 61390, 61388, 61387, 53227, 47960, 61291);
INSERT INTO `spell_chain` (`spell_id`, `prev_spell`, `first_spell`, `rank`, `req_spell`) VALUES
/*Blessed Recovery Proc*/
('27813', '0', '27813', '1', '0'),
('27817', '27813', '27813', '2', '0'),
('27818', '27817', '27813', '3', '0'),
/*Typhoon Triggered*/
('61391', '0', '61391', '1', '0'),
('61390', '61391', '61391', '2', '0'),
('61388', '61390', '61391', '3', '0'),
('61387', '61388', '61391', '4', '0'),
('53227', '61387', '61391', '5', '0'),
/*Shadowflame Triggered DoT*/
('47960','0','47960','1','0'),
('61291','47960','47960','2','0');

View file

@ -0,0 +1,30 @@
ALTER TABLE db_version CHANGE COLUMN required_8488_01_mangos_spell_chain required_8488_02_mangos_spell_bonus_data bit;
DELETE FROM `spell_bonus_data` WHERE `entry` IN
-- Spells that would be better off using default calculations (and should be removed from base MaNGOS tables)
(689, 30108, 6789, 29722, 5676, 686, 17877, 30283, 11113, 31661, 120, 25914, 596, 8092, 15407,
-- Spells that are getting entries below
18790, 42223, 27243, 30294, 47960, 47897, 44425, 42208, 19750, 635, 20167, 20267, 20187, 53600, 25997, 2944, 58381, 27813, 33619, 5570, 61391);
INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) VALUES
('18790', '0', '0', '0','Warlock - Fel Stamina'),
('42223', '0.285714', '0', '0', 'Warlock - Rain of Fire Triggered'), -- should be same as default calc (2/7), but this is a triggered spell
('27243', '0.2129', '0.25', '0', 'Warlock - Seed of Corruption'),
('30294', '0', '0', '0', 'Warlock - Soul Leech'),
('47960', '0', '0.06666', '0', 'Warlock - Shadowflame DoT'),
('47897', '0.1064', '0', '0', 'Warlock - Shadowflame Direct'),
('44425', '0.714286', '0', '0', 'Mage - Arcane Barrage'), -- treat as 2.5 second cast time (as of 3.0.9)
('42208', '0.1437', '0', '0', 'Mage - Blizzard Triggered'),
('19750', '1', '0', '0', 'Paladin - Flash of Light'),
('635', '1.66', '0', '0', 'Paladin - Holy Light'), -- These two Paladin heals are their default calculations multiplied by 7/3, not sure why that is
('20167', '0.15', '0', '0.15', 'Paladin - Seal of Light Proc'),
('20267', '0.1', '0', '0.1', 'Paladin - Judgement of Light Proc'),
('20187', '0.32', '0', '0', 'Paladin - Judgement of Righteousness'),
('53600', '0', '0', '0', 'Paladin - Shield of Righteousness'),
('25997', '0', '0', '0', 'Paladin - Eye for an Eye'),
('2944', '0', '0.1849', '0', 'Priest - Devouring Plague'),
('58381', '0.257143', '0', '0', 'Priest - Mind Flay Triggered'), -- Treated as 2.7 sec channel instead of 3?
('27813', '0', '0', '0', 'Priest - Blessed Recovery'),
('33619', '0', '0', '0', 'Priest - Reflective Shield'),
('5570', '0', '0.2', '0', 'Druid - Insect Swarm'),
('61391', '0.193', '0', '0', 'Druid - Typhoon');

View file

@ -0,0 +1,8 @@
ALTER TABLE db_version CHANGE COLUMN required_8488_02_mangos_spell_bonus_data required_8498_01_mangos_spell_proc_event bit;
DELETE FROM `spell_proc_event` WHERE `entry` IN (53234, 53237, 53238);
INSERT INTO spell_proc_event VALUES
(53234, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53237, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
(53238, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0);

View file

@ -101,6 +101,11 @@ pkgdata_DATA = \
8462_01_mangos_creature_ai_texts.sql \
8469_01_characters_character_spell.sql \
8482_01_mangos_spell_elixir.sql \
8487_01_mangos_spell_bonus_data.sql \
8487_02_mangos_spell_proc_event.sql \
8488_01_mangos_spell_chain.sql \
8488_02_mangos_spell_bonus_data.sql \
8498_01_mangos_spell_proc_event.sql \
README
## Additional files to include when running 'make dist'
@ -182,4 +187,9 @@ EXTRA_DIST = \
8462_01_mangos_creature_ai_texts.sql \
8469_01_characters_character_spell.sql \
8482_01_mangos_spell_elixir.sql \
8487_01_mangos_spell_bonus_data.sql \
8487_02_mangos_spell_proc_event.sql \
8488_01_mangos_spell_chain.sql \
8488_02_mangos_spell_bonus_data.sql \
8498_01_mangos_spell_proc_event.sql \
README

View file

@ -20,7 +20,6 @@
#define MANGOS_GRIDNOTIFIERS_H
#include "ObjectGridLoader.h"
#include "ByteBuffer.h"
#include "UpdateData.h"
#include <iostream>

View file

@ -65,7 +65,7 @@ void WorldSession::HandleMoveWorldportAckOpcode()
GetPlayer()->SetSemaphoreTeleportFar(false);
// relocate the player to the teleport destination
GetPlayer()->SetMap(MapManager::Instance().CreateMap(loc.mapid, GetPlayer())); GetPlayer()->Relocate(loc.coord_x, loc.coord_y, loc.coord_z, loc.orientation);
GetPlayer()->SetMap(MapManager::Instance().CreateMap(loc.mapid, GetPlayer()));
GetPlayer()->Relocate(loc.coord_x, loc.coord_y, loc.coord_z, loc.orientation);
GetPlayer()->SendInitialPacketsBeforeAddToMap();

View file

@ -85,7 +85,6 @@ enum PhaseMasks
class WorldPacket;
class UpdateData;
class ByteBuffer;
class WorldSession;
class Creature;
class Player;

View file

@ -451,12 +451,23 @@ ObjectAccessor::UpdateObjectVisibility(WorldObject *obj)
void ObjectAccessor::UpdateVisibilityForPlayer( Player* player )
{
CellPair p = MaNGOS::ComputeCellPair(player->GetPositionX(), player->GetPositionY());
Cell cell(p);
WorldObject const* viewPoint = player->GetViewPoint();
Map* m = player->GetMap();
CellPair p(MaNGOS::ComputeCellPair(player->GetPositionX(), player->GetPositionY()));
Cell cell(p);
m->UpdatePlayerVisibility(player, cell, p);
m->UpdateObjectsVisibilityFor(player, cell, p);
if (player!=viewPoint)
{
CellPair pView(MaNGOS::ComputeCellPair(viewPoint->GetPositionX(), viewPoint->GetPositionY()));
Cell cellView(pView);
m->UpdateObjectsVisibilityFor(player, cellView, pView);
}
else
m->UpdateObjectsVisibilityFor(player, cell, p);
}
/// Define the static member of HashMapHolder

View file

@ -25,7 +25,6 @@
#include "Utilities/UnorderedMap.h"
#include "Policies/ThreadingModel.h"
#include "ByteBuffer.h"
#include "UpdateData.h"
#include "GridDefines.h"

View file

@ -3638,20 +3638,17 @@ void ObjectMgr::LoadQuests()
qinfo->GetQuestId(),qinfo->RewSpell,qinfo->RewSpell);
qinfo->RewSpell = 0; // no spell reward will display for this quest
}
if(!SpellMgr::IsSpellValid(spellInfo))
else if(!SpellMgr::IsSpellValid(spellInfo))
{
sLog.outErrorDb("Quest %u has `RewSpell` = %u but spell %u is broken, quest will not have a spell reward.",
qinfo->GetQuestId(),qinfo->RewSpell,qinfo->RewSpell);
qinfo->RewSpell = 0; // no spell reward will display for this quest
}
if(GetTalentSpellCost(qinfo->RewSpell))
else if(GetTalentSpellCost(qinfo->RewSpell))
{
sLog.outErrorDb("Quest %u has `RewSpell` = %u but spell %u is talent, quest will not have a spell reward.",
qinfo->GetQuestId(),qinfo->RewSpell,qinfo->RewSpell);
qinfo->RewSpell = 0; // no spell reward will display for this quest
continue;
}
}
@ -3665,20 +3662,17 @@ void ObjectMgr::LoadQuests()
qinfo->GetQuestId(),qinfo->RewSpellCast,qinfo->RewSpellCast);
qinfo->RewSpellCast = 0; // no spell will be casted on player
}
if(!SpellMgr::IsSpellValid(spellInfo))
else if(!SpellMgr::IsSpellValid(spellInfo))
{
sLog.outErrorDb("Quest %u has `RewSpellCast` = %u but spell %u is broken, quest will not have a spell reward.",
qinfo->GetQuestId(),qinfo->RewSpellCast,qinfo->RewSpellCast);
qinfo->RewSpellCast = 0; // no spell will be casted on player
}
if(GetTalentSpellCost(qinfo->RewSpellCast))
else if(GetTalentSpellCost(qinfo->RewSpellCast))
{
sLog.outErrorDb("Quest %u has `RewSpell` = %u but spell %u is talent, quest will not have a spell reward.",
qinfo->GetQuestId(),qinfo->RewSpellCast,qinfo->RewSpellCast);
qinfo->RewSpellCast = 0; // no spell will be casted on player
continue;
}
}

View file

@ -1008,13 +1008,6 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
caster->ProcDamageAndSpell(unitTarget, procAttacker, procVictim, procEx, damageInfo.damage, m_attackType, m_spellInfo);
caster->DealSpellDamage(&damageInfo, true);
// Judgement of Blood
if (m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN && (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000800000000)) && m_spellInfo->SpellIconID==153)
{
int32 damagePoint = damageInfo.damage * 33 / 100;
m_caster->CastCustomSpell(m_caster, 32220, &damagePoint, NULL, NULL, true);
}
}
// Passive spell hits/misses or active spells only misses (only triggers)
else

View file

@ -489,6 +489,9 @@ Unit *caster, Item* castItem) : Aura(spellproto, eff, currentBasePoints, target,
m_areaAuraType = AREA_AURA_RAID;
if (target->GetTypeId() == TYPEID_UNIT && ((Creature*)target)->isTotem())
m_modifier.m_auraname = SPELL_AURA_NONE;
// Light's Beacon not applied to caster itself (TODO: more generic check for another simialr spell if any?)
else if (target == caster_ptr && m_spellProto->Id == 53651)
m_modifier.m_auraname = SPELL_AURA_NONE;
break;
case SPELL_EFFECT_APPLY_AREA_AURA_FRIEND:
m_areaAuraType = AREA_AURA_FRIEND;
@ -782,7 +785,40 @@ void AreaAura::Update(uint32 diff)
for(std::list<Unit *>::iterator tIter = targets.begin(); tIter != targets.end(); tIter++)
{
if((*tIter)->HasAura(GetId(), m_effIndex))
// flag for seelction is need apply aura to current iteration target
bool apply = true;
// we need ignore present caster self applied are auras sometime
// in cases if this only auras applied for spell effect
Unit::spellEffectPair spair = Unit::spellEffectPair(GetId(), m_effIndex);
for(Unit::AuraMap::const_iterator i = (*tIter)->GetAuras().lower_bound(spair); i != (*tIter)->GetAuras().upper_bound(spair); ++i)
{
if (i->second->IsDeleted())
continue;
switch(m_areaAuraType)
{
case AREA_AURA_ENEMY:
// non caster self-casted auras (non stacked)
if(i->second->GetModifier()->m_auraname != SPELL_AURA_NONE)
apply = false;
break;
case AREA_AURA_RAID:
// non caster self-casted auras (stacked from diff. casters)
if(i->second->GetModifier()->m_auraname != SPELL_AURA_NONE || i->second->GetCasterGUID() == GetCasterGUID())
apply = false;
break;
default:
// in generic case not allow stacking area auras
apply = false;
break;
}
if(!apply)
break;
}
if(!apply)
continue;
if(SpellEntry const *actualSpellInfo = spellmgr.SelectAuraRankForPlayerLevel(GetSpellProto(), (*tIter)->getLevel()))
@ -815,7 +851,7 @@ void AreaAura::Update(uint32 diff)
caster->IsFriendlyTo(m_target) != needFriendly
)
{
m_target->RemoveAura(GetId(), GetEffIndex());
m_target->RemoveAurasByCasterSpell(GetId(), GetEffIndex(),GetCasterGUID());
}
else if( m_areaAuraType == AREA_AURA_PARTY) // check if in same sub group
{
@ -847,16 +883,16 @@ void AreaAura::Update(uint32 diff)
{
Player* checkTarget = m_target->GetCharmerOrOwnerPlayerOrPlayerItself();
if(!checkTarget)
m_target->RemoveAura(GetId(), GetEffIndex());
m_target->RemoveAurasByCasterSpell(GetId(), GetEffIndex(), GetCasterGUID());
}
else
m_target->RemoveAura(GetId(), GetEffIndex());
m_target->RemoveAurasByCasterSpell(GetId(), GetEffIndex(), GetCasterGUID());
}
}
else if( m_areaAuraType == AREA_AURA_PET || m_areaAuraType == AREA_AURA_OWNER )
{
if( m_target->GetGUID() != caster->GetCharmerOrOwnerGUID() )
m_target->RemoveAura(GetId(), GetEffIndex());
m_target->RemoveAurasByCasterSpell(GetId(), GetEffIndex(), GetCasterGUID());
}
}
}
@ -897,6 +933,32 @@ void Aura::ApplyModifier(bool apply, bool Real)
SetInUse(false);
}
bool Aura::IsNeedVisibleSlot(Unit const* caster) const
{
bool totemAura = caster && caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->isTotem();
// passive auras (except totem auras) do not get placed in the slots
if (m_isPassive && !totemAura)
return false;
// generic not caster case
if (m_target != caster)
return true;
// special area auras case at caster
switch(m_spellProto->Effect[GetEffIndex()])
{
case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY:
return false;
case SPELL_EFFECT_APPLY_AREA_AURA_RAID:
// not sure is totemAura need, just preserve old code results
return totemAura || m_modifier.m_auraname != SPELL_AURA_NONE;
default: break;
}
return true;
}
void Aura::_AddAura()
{
if (!GetId())
@ -954,10 +1016,7 @@ void Aura::_AddAura()
}
}
// passive auras (except totem auras) do not get placed in the slots
// area auras with SPELL_AURA_NONE are not shown on target
if((!m_isPassive || (caster && caster->GetTypeId() == TYPEID_UNIT && ((Creature*)caster)->isTotem())) &&
(m_spellProto->Effect[GetEffIndex()] != SPELL_EFFECT_APPLY_AREA_AURA_ENEMY || m_target != caster))
if (IsNeedVisibleSlot(caster))
{
SetAuraSlot( slot );
if(slot < MAX_AURAS) // slot found send data to client
@ -2418,6 +2477,20 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
}
break;
}
case SPELLFAMILY_PALADIN:
{
// Beacon of Light
if (GetId() == 53563)
{
if(apply)
// original caster must be target (beacon)
m_target->CastSpell(m_target,53651,true,NULL,this,m_target->GetGUID());
else
m_target->RemoveAurasByCasterSpell(53651,m_target->GetGUID());
return;
}
break;
}
case SPELLFAMILY_DRUID:
{
switch(GetId())

View file

@ -383,6 +383,7 @@ class MANGOS_DLL_SPEC Aura
uint32 m_in_use; // > 0 while in Aura::ApplyModifier call/Aura::Update/etc
private:
void CleanupTriggeredSpells();
bool IsNeedVisibleSlot(Unit const* caster) const; // helper for check req. visibility slot
};
class MANGOS_DLL_SPEC AreaAura : public Aura

View file

@ -610,9 +610,17 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
}
case SPELLFAMILY_PALADIN:
{
// Judgement of Vengeance ${1+0.22*$SPH+0.14*$AP} + 10% for each application of Holy Vengeance on the target
// Judgement of Vengeance/Corruption ${1+0.22*$SPH+0.14*$AP} + 10% for each application of Holy Vengeance/Blood Corruption on the target
if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x800000000)) && m_spellInfo->SpellIconID==2292)
{
uint32 debuf_id;
switch(m_spellInfo->Id)
{
case 53733: debuf_id = 53742; break;// Judgement of Corruption -> Blood Corruption
case 31804: debuf_id = 31803; break;// Judgement of Vengeance -> Holy Vengeance
default: return;
}
float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
int32 holy = m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo)) +
m_caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellInfo), unitTarget);
@ -621,11 +629,13 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
uint32 stacks = 0;
Unit::AuraList const& auras = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
for(Unit::AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
if((*itr)->GetId() == 31803 && (*itr)->GetCasterGUID()==m_caster->GetGUID())
{
if( ((*itr)->GetId() == debuf_id) && (*itr)->GetCasterGUID()==m_caster->GetGUID())
{
stacks = (*itr)->GetStackAmount();
break;
}
}
// + 10% for each application of Holy Vengeance on the target
if(stacks)
damage += damage * stacks * 10 /100;
@ -1670,25 +1680,7 @@ void Spell::EffectDummy(uint32 i)
if (!spell_proto)
return;
if (!unitTarget->hasUnitState(UNIT_STAT_STUNNED) && m_caster->GetTypeId()==TYPEID_PLAYER)
{
// decreased damage (/2) for non-stunned target.
SpellModifier *mod = new SpellModifier;
mod->op = SPELLMOD_DAMAGE;
mod->value = -50;
mod->type = SPELLMOD_PCT;
mod->spellId = m_spellInfo->Id;
mod->mask = UI64LIT(0x0000020000000000);
mod->mask2= UI64LIT(0x0);
((Player*)m_caster)->AddSpellMod(mod, true);
m_caster->CastSpell(unitTarget, spell_proto, true, NULL);
// mod deleted
((Player*)m_caster)->AddSpellMod(mod, false);
}
else
m_caster->CastSpell(unitTarget, spell_proto, true, NULL);
m_caster->CastSpell(unitTarget, spell_proto, true, NULL);
return;
}
}
@ -3508,6 +3500,11 @@ void Spell::EffectDispel(uint32 i)
std::list < std::pair<uint32,uint64> > success_list;// (spell_id,casterGuid)
std::list < uint32 > fail_list; // spell_id
int32 list_size = dispel_list.size();
// some spells have effect value = 0 and all from its by meaning expect 1
if(!damage)
damage = 1;
// Dispell N = damage buffs (or while exist buffs for dispel)
for (int32 count=0; count < damage && list_size > 0; ++count)
{
@ -4645,13 +4642,33 @@ void Spell::EffectWeaponDmg(uint32 i)
if(m_caster->GetTypeId()==TYPEID_PLAYER)
((Player*)m_caster)->AddComboPoints(unitTarget, 1);
}
// Mangle (Cat): CP
if (m_spellInfo->SpellFamilyName==SPELLFAMILY_DRUID && (m_spellInfo->SpellFamilyFlags==UI64LIT(0x0000040000000000)))
else if (m_spellInfo->SpellFamilyName==SPELLFAMILY_DRUID && (m_spellInfo->SpellFamilyFlags==UI64LIT(0x0000040000000000)))
{
if(m_caster->GetTypeId()==TYPEID_PLAYER)
((Player*)m_caster)->AddComboPoints(unitTarget, 1);
}
else if(m_spellInfo->SpellFamilyName==SPELLFAMILY_PALADIN)
{
// Judgement of Blood/of the Martyr backlash damage (33%)
if(m_spellInfo->SpellFamilyFlags & 0x0000000800000000LL && m_spellInfo->SpellIconID==153)
{
int32 damagePoint = m_damage * 33 / 100;
if(m_spellInfo->Id == 31898)
m_caster->CastCustomSpell(m_caster, 32220, &damagePoint, NULL, NULL, true);
else
m_caster->CastCustomSpell(m_caster, 53725, &damagePoint, NULL, NULL, true);
}
// Seal of Blood/of the Martyr backlash damage (10%)
else if(m_spellInfo->SpellIconID==2293)
{
int32 damagePoint = m_damage * 10 / 100;
if(m_spellInfo->Id == 31893)
m_caster->CastCustomSpell(m_caster, 32221, &damagePoint, NULL, NULL, true);
else
m_caster->CastCustomSpell(m_caster, 53718, &damagePoint, NULL, NULL, true);
}
}
// take ammo
if(m_attackType == RANGED_ATTACK && m_caster->GetTypeId() == TYPEID_PLAYER)

View file

@ -1571,6 +1571,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
if ((spellInfo_1->SpellFamilyFlags2 & 0x00000020) && (spellInfo_2->SpellIconID == 291 || spellInfo_2->SpellIconID == 3028) ||
(spellInfo_2->SpellFamilyFlags2 & 0x00000020) && (spellInfo_1->SpellIconID == 291 || spellInfo_1->SpellIconID == 3028))
return false;
// Beacon of Light and Light's Beacon
if ((spellInfo_1->SpellIconID == 3032) && (spellInfo_2->SpellIconID == 3032))
return false;
}
// Combustion and Fire Protection Aura (multi-family check)

View file

@ -427,7 +427,7 @@ enum ProcFlags
PROC_FLAG_KILLED = 0x00000001, // 00 Killed by agressor
PROC_FLAG_KILL = 0x00000002, // 01 Kill target (in most cases need XP/Honor reward)
PROC_FLAG_SUCCESSFUL_MILEE_HIT = 0x00000004, // 02 Successful melee auto attack
PROC_FLAG_SUCCESSFUL_MELEE_HIT = 0x00000004, // 02 Successful melee auto attack
PROC_FLAG_TAKEN_MELEE_HIT = 0x00000008, // 03 Taken damage from melee auto attack hit
PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT = 0x00000010, // 04 Successful attack by Spell that use melee weapon
@ -461,7 +461,7 @@ enum ProcFlags
PROC_FLAG_SUCCESSFUL_OFFHAND_HIT = 0x00800000 // 23 Successful off-hand melee attacks
};
#define MELEE_BASED_TRIGGER_MASK (PROC_FLAG_SUCCESSFUL_MILEE_HIT | \
#define MELEE_BASED_TRIGGER_MASK (PROC_FLAG_SUCCESSFUL_MELEE_HIT | \
PROC_FLAG_TAKEN_MELEE_HIT | \
PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT | \
PROC_FLAG_TAKEN_MELEE_SPELL_HIT | \

View file

@ -1205,12 +1205,12 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
switch (attackType)
{
case BASE_ATTACK:
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MILEE_HIT;
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_HIT;
damageInfo->procVictim = PROC_FLAG_TAKEN_MELEE_HIT;
damageInfo->HitInfo = HITINFO_NORMALSWING2;
break;
case OFF_ATTACK:
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MILEE_HIT | PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_HIT | PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
damageInfo->procVictim = PROC_FLAG_TAKEN_MELEE_HIT;//|PROC_FLAG_TAKEN_OFFHAND_HIT // not used
damageInfo->HitInfo = HITINFO_LEFTSWING;
break;
@ -3417,6 +3417,7 @@ bool Unit::AddAura(Aura *Aur)
return false;
}
// m_auraname can be modified to SPELL_AURA_NONE for area auras, this expected for this value
AuraType aurName = Aur->GetModifier()->m_auraname;
spellEffectPair spair = spellEffectPair(Aur->GetId(), Aur->GetEffIndex());
@ -3445,10 +3446,15 @@ bool Unit::AddAura(Aura *Aur)
}
bool stop = false;
switch(aurName)
// m_auraname can be modified to SPELL_AURA_NONE for area auras, use original
AuraType aurNameReal = AuraType(aurSpellInfo->EffectApplyAuraName[Aur->GetEffIndex()]);
switch(aurNameReal)
{
// DoT/HoT/etc
case SPELL_AURA_PERIODIC_DAMAGE: // allow stack
case SPELL_AURA_DUMMY: // allow stack
case SPELL_AURA_PERIODIC_DAMAGE:
case SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
case SPELL_AURA_PERIODIC_LEECH:
case SPELL_AURA_PERIODIC_HEAL:
@ -3752,6 +3758,22 @@ void Unit::RemoveAurasByCasterSpell(uint32 spellId, uint64 casterGUID)
}
}
void Unit::RemoveAurasByCasterSpell(uint32 spellId, uint32 effindex, uint64 casterGUID)
{
spellEffectPair spair = spellEffectPair(spellId, effindex);
for(AuraMap::iterator iter = m_Auras.lower_bound(spair); iter != m_Auras.upper_bound(spair);)
{
Aura *aur = iter->second;
if (aur->GetId() == spellId && aur->GetCasterGUID() == casterGUID)
{
RemoveAura(iter);
iter = m_Auras.lower_bound(spair);
}
else
++iter;
}
}
void Unit::RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit *dispeler)
{
for (AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end(); )
@ -5110,7 +5132,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
}
CastSpell(this, 28682, true, castItem, triggeredByAura);
return (procEx & PROC_EX_CRITICAL_HIT);// charge update only at crit hits, no hidden cooldowns
return (procEx & PROC_EX_CRITICAL_HIT); // charge update only at crit hits, no hidden cooldowns
}
}
break;
@ -5737,6 +5759,43 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
return false;
triggered_spell_id = 31803;
// Add 5-stack effect
int8 stacks = 0;
AuraList const& auras = target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
for(AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
{
if( ((*itr)->GetId() == 31803) && (*itr)->GetCasterGUID()==GetGUID())
{
stacks = (*itr)->GetStackAmount();
break;
}
}
if(stacks >= 5)
CastSpell(target,42463,true,NULL,triggeredByAura);
break;
}
// Seal of Corruption (damage calc on apply aura)
case 53736:
{
if(effIndex != 0) // effect 1,2 used by seal unleashing code
return false;
triggered_spell_id = 53742;
// Add 5-stack effect
int8 stacks = 0;
AuraList const& auras = target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
for(AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr)
{
if( ((*itr)->GetId() == 53742) && (*itr)->GetCasterGUID()==GetGUID())
{
stacks = (*itr)->GetStackAmount();
break;
}
}
if(stacks >= 5)
CastSpell(target,53739,true,NULL,triggeredByAura);
break;
}
// Spiritual Attunement
@ -5756,33 +5815,54 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
// Seal of Blood do damage trigger
case 31892:
{
if (effIndex == 0) // 0 effect - is proc on enemy
// 0 effect - is proc on enemy
if (effIndex == 0 && (procFlag & PROC_FLAG_SUCCESSFUL_MELEE_HIT))
triggered_spell_id = 31893;
else if (effIndex == 1) // 1 effect - is proc on self
{
// add spell damage from prev effect (27%)
damage += CalculateDamage(BASE_ATTACK, false) * 27 / 100;
basepoints0 = triggerAmount * damage / 100;
target = this;
triggered_spell_id = 32221;
}
else
return true;
break;
}
// Light's Beacon (heal target area aura)
case 53651:
{
// not do bonus heal for explicit beacon focus healing
if (GetGUID() == triggeredByAura->GetCasterGUID())
return false;
// beacon
Unit* beacon = triggeredByAura->GetCaster();
if (!beacon)
return false;
// find caster main aura at beacon
Aura* dummy = NULL;
Unit::AuraList const& baa = beacon->GetAurasByType(SPELL_AURA_DUMMY);
for(Unit::AuraList::const_iterator i = baa.begin(); i != baa.end(); ++i)
{
if ((*i)->GetId() == 53563 && (*i)->GetCasterGUID() == pVictim->GetGUID())
{
dummy = (*i);
break;
}
}
// original heal must be form beacon caster
if (!dummy)
return false;
triggered_spell_id = 53652; // Beacon of Light
basepoints0 = triggeredByAura->GetModifier()->m_amount*damage/100;
// cast with original caster set but beacon to beacon for apply caster mods and avoid LoS check
beacon->CastCustomSpell(beacon,triggered_spell_id,&basepoints0,NULL,NULL,true,castItem,triggeredByAura,pVictim->GetGUID());
return true;
}
// Seal of the Martyr do damage trigger
case 53720:
{
if (effIndex == 0) // 0 effect - is proc on enemy
// 0 effect - is proc on enemy
if (effIndex == 0 && (procFlag & PROC_FLAG_SUCCESSFUL_MELEE_HIT))
triggered_spell_id = 53719;
else if (effIndex == 1) // 1 effect - is proc on self
{
// add spell damage from prev effect (27%)
damage += CalculateDamage(BASE_ATTACK, false) * 27 / 100;
basepoints0 = triggerAmount * damage / 100;
target = this;
triggered_spell_id = 53718;
}
else
return true;
break;
@ -6590,6 +6670,13 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
break;
}
case SPELLFAMILY_HUNTER:
// Piercing Shots
if (auraSpellInfo->SpellIconID == 3247 && auraSpellInfo->SpellVisual[0] == 0)
{
basepoints[0] = damage * triggerAmount / 100 / 8;
trigger_spell_id = 63468;
target = pVictim;
}
break;
case SPELLFAMILY_PALADIN:
{
@ -8453,12 +8540,22 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
break;
}
break;
}
}
break;
}
case SPELL_DAMAGE_CLASS_MELEE:
{
// Judgement of Command proc always crits on stunned target
if(spellProto->SpellFamilyName == SPELLFAMILY_PALADIN)
{
if(spellProto->SpellFamilyFlags & 0x0000000000800000LL && spellProto->SpellIconID == 561)
{
if(pVictim->hasUnitState(UNIT_STAT_STUNNED))
return true;
}
}
}
case SPELL_DAMAGE_CLASS_RANGED:
{
if (pVictim)

View file

@ -1211,6 +1211,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
void RemoveAurasDueToSpell(uint32 spellId, Aura* except = NULL);
void RemoveAurasDueToItemSpell(Item* castItem,uint32 spellId);
void RemoveAurasByCasterSpell(uint32 spellId, uint64 casterGUID);
void RemoveAurasByCasterSpell(uint32 spellId, uint32 effindex, uint64 casterGUID);
void RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit *dispeler);
void RemoveAurasDueToSpellBySteal(uint32 spellId, uint64 casterGUID, Unit *stealer);
void RemoveAurasDueToSpellByCancel(uint32 spellId);

View file

@ -19,8 +19,11 @@
#ifndef __UPDATEDATA_H
#define __UPDATEDATA_H
#include "ByteBuffer.h"
class WorldPacket;
enum OBJECT_UPDATE_TYPE
{
UPDATETYPE_VALUES = 0,

View file

@ -37,6 +37,7 @@
#include "ByteBuffer.h"
#include "Opcodes.h"
#include "Database/DatabaseEnv.h"
#include "Auth/BigNumber.h"
#include "Auth/Sha1.h"
#include "WorldSession.h"
#include "WorldSocketMgr.h"

View file

@ -480,9 +480,9 @@ bool AuthSocket::_HandleLogonChallenge()
pkt << uint8(1);
pkt.append(g.AsByteArray(), 1);
pkt << uint8(32);
pkt.append(N.AsByteArray(), 32);
pkt.append(N.AsByteArray(32), 32);
pkt.append(s.AsByteArray(), s.GetNumBytes());// 32 bytes
pkt.append(unk3.AsByteArray(), 16);
pkt.append(unk3.AsByteArray(16), 16);
uint8 securityFlags = 0;
pkt << uint8(securityFlags); // security flags (0x0...0x04)
@ -807,7 +807,7 @@ bool AuthSocket::_HandleReconnectChallenge()
pkt << (uint8) AUTH_RECONNECT_CHALLENGE;
pkt << (uint8) 0x00;
_reconnectProof.SetRand(16 * 8);
pkt.append(_reconnectProof.AsByteBuffer()); // 16 bytes random
pkt.append(_reconnectProof.AsByteArray(16),16); // 16 bytes random
pkt << (uint64) 0x00 << (uint64) 0x00; // 16 bytes zeros
SendBuf((char const*)pkt.contents(), pkt.size());
return true;

View file

@ -186,21 +186,6 @@ uint8 *BigNumber::AsByteArray(int minSize)
return _array;
}
ByteBuffer BigNumber::AsByteBuffer()
{
ByteBuffer ret(GetNumBytes());
ret.append(AsByteArray(), GetNumBytes());
return ret;
}
std::vector<uint8> BigNumber::AsByteVector()
{
std::vector<uint8> ret;
ret.resize(GetNumBytes());
memcpy(&ret[0], AsByteArray(), GetNumBytes());
return ret;
}
const char *BigNumber::AsHexStr()
{
return BN_bn2hex(_bn);

View file

@ -20,7 +20,6 @@
#define _AUTH_BIGNUMBER_H
#include "Common.h"
#include "ByteBuffer.h"
struct bignum_st;
@ -83,8 +82,6 @@ class BigNumber
uint32 AsDword();
uint8* AsByteArray(int minSize = 0);
ByteBuffer AsByteBuffer();
std::vector<uint8> AsByteVector();
const char *AsHexStr();
const char *AsDecStr();

View file

@ -17,6 +17,7 @@
*/
#include "Auth/Sha1.h"
#include "Auth/BigNumber.h"
#include <stdarg.h>
Sha1Hash::Sha1Hash()

View file

@ -22,7 +22,8 @@
#include "Common.h"
#include <openssl/sha.h>
#include <openssl/crypto.h>
#include "Auth/BigNumber.h"
class BigNumber;
class Sha1Hash
{

View file

@ -17,6 +17,7 @@
*/
#include "Threading.h"
#include "Errors.h"
#include <ace/OS_NS_unistd.h>
#include <ace/Sched_Params.h>
#include <vector>

View file

@ -23,7 +23,6 @@
#include <ace/TSS_T.h>
#include "ace/Atomic_Op.h"
#include <assert.h>
#include "Errors.h"
namespace ACE_Based
{

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "8485"
#define REVISION_NR "8498"
#endif // __REVISION_NR_H__

View file

@ -1,6 +1,6 @@
#ifndef __REVISION_SQL_H__
#define __REVISION_SQL_H__
#define REVISION_DB_CHARACTERS "required_8469_01_characters_character_spell"
#define REVISION_DB_MANGOS "required_8482_01_mangos_spell_elixir"
#define REVISION_DB_MANGOS "required_8498_01_mangos_spell_proc_event"
#define REVISION_DB_REALMD "required_8332_01_realmd_realmcharacters"
#endif // __REVISION_SQL_H__