mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
Merge commit 'origin/master' into 320
This commit is contained in:
commit
299f40ac0c
39 changed files with 1131 additions and 480 deletions
|
|
@ -137,6 +137,7 @@ Each event type has its own specific interpretation of it's params, like every e
|
|||
39 ACTION_T_CALL_FOR_HELP Radius Call any friendly out-of-combat creatures in a radius (Param1) to attack current creature's target.
|
||||
40 ACTION_T_SET_SHEATH Sheath Sets sheath state for a creature (0 = no weapon, 1 = melee weapon, 2 = ranged weapon).
|
||||
41 ACTION_T_FORCE_DESPAWN No Params Despawns the creature
|
||||
42 ACTION_T_SET_INVINCIBILITY_HP_LEVEL hp_level, is_percent Set min. health level for creature that can be set at damage as flat value or percent from max health
|
||||
|
||||
* = Use -1 where the param is expected to do nothing. Random constant is generated for each event, so if you have a random yell and a random sound, they will be linked up with each other (ie. param2 with param2).
|
||||
|
||||
|
|
@ -737,6 +738,14 @@ This possible setup by set ar event AI start (single used EVENT_T_TIMER_OOC set
|
|||
Despawns the creature (in or out of combat)
|
||||
No parameters
|
||||
|
||||
-------------------------
|
||||
42 ACTION_T_SET_INVINCIBILITY_HP_LEVEL
|
||||
-------------------------
|
||||
Parameter 1: min. health level for creature that can be set at damage, 0 used as absent min. health value for apply damage.
|
||||
Parameter 2: format of paramater 1 value
|
||||
0 paramater 1 used as flat value
|
||||
1 paramater 1 used as percent (0..100) from creature max health
|
||||
|
||||
=========================================
|
||||
Target Types
|
||||
=========================================
|
||||
|
|
|
|||
641
sql/mangos.sql
641
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_8213_01_mangos_spell_bonus_data` bit(1) default NULL
|
||||
`required_8251_03_mangos_spell_proc_event` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||
|
||||
--
|
||||
|
|
@ -13569,6 +13569,168 @@ 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
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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'),
|
||||
('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');
|
||||
/*!40000 ALTER TABLE `spell_bonus_data` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--
|
||||
-- Table structure for table `spell_chain`
|
||||
--
|
||||
|
|
@ -13591,6 +13753,77 @@ LOCK TABLES `spell_chain` WRITE;
|
|||
/*!40000 ALTER TABLE `spell_chain` DISABLE KEYS */;
|
||||
INSERT INTO spell_chain VALUES
|
||||
/*------------------
|
||||
--(0) Not associated with skills
|
||||
------------------*/
|
||||
/* Fire Nova Totem Casted by Totem */
|
||||
(8443,0,8443,1,0),
|
||||
(8504,8443,8443,2,0),
|
||||
(8505,8504,8443,3,0),
|
||||
(11310,8505,8443,4,0),
|
||||
(11311,11310,8443,5,0),
|
||||
(25538,11311,8443,6,0),
|
||||
(25539,25538,8443,7,0),
|
||||
(61651,25539,8443,8,0),
|
||||
(61660,61651,8443,9,0),
|
||||
/* Flametongue Weapon Proc */
|
||||
(8026,0,8026,1,0),
|
||||
(8028,8026,8026,2,0),
|
||||
(8029,8028,8026,3,0),
|
||||
(10445,8029,8026,4,0),
|
||||
(16343,10445,8026,5,0),
|
||||
(16344,16343,8026,6,0),
|
||||
(25488,16344,8026,7,0),
|
||||
(58786,25488,8026,8,0),
|
||||
(58787,58786,8026,9,0),
|
||||
(58788,58787,8026,10,0),
|
||||
/* 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),
|
||||
/* Magma Totam Passive */
|
||||
(8188,0,8188,1,0),
|
||||
(10582,8188,8188,2,0),
|
||||
(10583,10582,8188,3,0),
|
||||
(10584,10583,8188,4,0),
|
||||
(25551,10584,8188,5,0),
|
||||
(58733,25551,8188,6,0),
|
||||
(58736,58733,8188,7,0),
|
||||
/* Searing Totem Attack */
|
||||
(3606,0,3606,1,0),
|
||||
(6350,3606,3606,2,0),
|
||||
(6351,6350,3606,3,0),
|
||||
(6352,6351,3606,4,0),
|
||||
(10435,6352,3606,5,0),
|
||||
(10436,10435,3606,6,0),
|
||||
(25530,10436,3606,7,0),
|
||||
(58700,25530,3606,8,0),
|
||||
(58701,58700,3606,9,0),
|
||||
(58702,58701,3606,10,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*/
|
||||
|
|
@ -13603,6 +13836,16 @@ INSERT INTO spell_chain VALUES
|
|||
(27085,10187,10,7,0),
|
||||
(42939,27085,10,8,0),
|
||||
(42940,42939,10,9,0),
|
||||
/* Blizzard Triggered Spell */
|
||||
(42208,0,42208,1,0),
|
||||
(42209,42208,42208,2,0),
|
||||
(42210,42209,42208,3,0),
|
||||
(42211,42210,42208,4,0),
|
||||
(42212,42211,42208,5,0),
|
||||
(42213,42212,42208,6,0),
|
||||
(42198,42213,42208,7,0),
|
||||
(42937,42198,42208,8,0),
|
||||
(42938,42937,42208,9,0),
|
||||
/*ConeofCold*/
|
||||
(120,0,120,1,0),
|
||||
(8492,120,120,2,0),
|
||||
|
|
@ -13749,6 +13992,10 @@ INSERT INTO spell_chain VALUES
|
|||
(30482,0,30482,1,0),
|
||||
(43045,30482,30482,2,0),
|
||||
(43046,43045,30482,3,0),
|
||||
/* Molten Armor Triggered */
|
||||
(34913,0,34913,1,0),
|
||||
(43043,34913,34913,2,0),
|
||||
(43044,43043,34913,3,0),
|
||||
/*Pyroblast*/
|
||||
(11366,0,11366,1,0),
|
||||
(12505,11366,11366,2,0),
|
||||
|
|
@ -14067,6 +14314,14 @@ INSERT INTO spell_chain VALUES
|
|||
(25331,27801,15237,7,0),
|
||||
(48077,25331,15237,8,0),
|
||||
(48078,48077,15237,9,0),
|
||||
/* Holy Nova Heal */
|
||||
(23455,0,23455,1,0),
|
||||
(23458,23455,23455,2,0),
|
||||
(23459,23458,23455,3,0),
|
||||
(27803,23459,23455,4,0),
|
||||
(27804,27803,23455,5,0),
|
||||
(27805,27804,23455,6,0),
|
||||
(25329,27805,23455,7,0),
|
||||
/*Lesser Heal*/
|
||||
(2050,0,2050,1,0),
|
||||
(2052,2050,2050,2,0),
|
||||
|
|
@ -14174,6 +14429,9 @@ INSERT INTO spell_chain VALUES
|
|||
/*Mind Sear*/
|
||||
(48045,0,48045,1,0),
|
||||
(53023,48045,48045,2,0),
|
||||
/* Mind Sear Trigger */
|
||||
(49821,0,49821,1,0),
|
||||
(53022,49821,49821,2,0),
|
||||
/*MindVision*/
|
||||
(2096,0,2096,1,0),
|
||||
(10909,2096,2096,2,0),
|
||||
|
|
@ -14874,6 +15132,20 @@ INSERT INTO spell_chain VALUES
|
|||
(38704,38699,5143,11,0),
|
||||
(42843,38704,5143,12,0),
|
||||
(42846,42843,5143,13,0),
|
||||
/* Arcane Missiles Triggered Spell */
|
||||
(7268,0,7268,1,0),
|
||||
(7269,7268,7268,2,0),
|
||||
(7270,7269,7268,3,0),
|
||||
(8419,7270,7268,4,0),
|
||||
(8418,8419,7268,5,0),
|
||||
(10273,8418,7268,6,0),
|
||||
(10274,10273,7268,7,0),
|
||||
(25346,10274,7268,8,0),
|
||||
(27076,25346,7268,9,0),
|
||||
(38700,27076,7268,10,0),
|
||||
(38703,38700,7268,11,0),
|
||||
(42844,38703,7268,12,0),
|
||||
(42845,42844,7268,13,0),
|
||||
/*Conjure Food*/
|
||||
(587,0,587,1,0),
|
||||
(597,587,587,2,0),
|
||||
|
|
@ -15487,6 +15759,18 @@ INSERT INTO spell_chain VALUES
|
|||
(25472,25469,324,9,0),
|
||||
(49280,25472,324,10,0),
|
||||
(49281,49280,324,11,0),
|
||||
/* Lightning Shield Proc */
|
||||
(26364,0,26364,1,0),
|
||||
(26365,26364,26364,2,0),
|
||||
(26366,26365,26364,3,0),
|
||||
(26367,26366,26364,4,0),
|
||||
(26369,26367,26364,5,0),
|
||||
(26370,26369,26364,6,0),
|
||||
(26363,26370,26364,7,0),
|
||||
(26371,26363,26364,8,0),
|
||||
(26372,26371,26364,9,0),
|
||||
(49278,26372,26364,10,0),
|
||||
(49279,49278,26364,11,0),
|
||||
/*Nature Resistance Totem*/
|
||||
(10595,0,10595,1,0),
|
||||
(10600,10595,10595,2,0),
|
||||
|
|
@ -15979,6 +16263,12 @@ INSERT INTO spell_chain VALUES
|
|||
(11684,11683,1949,3,0),
|
||||
(27213,11684,1949,4,0),
|
||||
(47823,27213,1949,5,0),
|
||||
/* Hellfire Effect on Enemy */
|
||||
(5857,0,5857,1,0),
|
||||
(11681,5857,5857,2,0),
|
||||
(11682,11681,5857,3,0),
|
||||
(27214,11682,5857,4,0),
|
||||
(47822,27214,5857,5,0),
|
||||
/*Immolate*/
|
||||
(348,0,348,1,0),
|
||||
(707,348,348,2,0),
|
||||
|
|
@ -16008,6 +16298,14 @@ INSERT INTO spell_chain VALUES
|
|||
(27212,11678,5740,5,0),
|
||||
(47819,27212,5740,6,0),
|
||||
(47820,47819,5740,7,0),
|
||||
/* Rain of Fire Triggered */
|
||||
(42223,0,42223,1,0),
|
||||
(42224,42223,42223,2,0),
|
||||
(42225,42224,42223,3,0),
|
||||
(42226,42225,42223,4,0),
|
||||
(42218,42226,42223,5,0),
|
||||
(47817,42218,42223,6,0),
|
||||
(47818,47817,42223,7,0),
|
||||
/*Searing Pain*/
|
||||
(5676,0,5676,1,0),
|
||||
(17919,5676,5676,2,0),
|
||||
|
|
@ -16130,6 +16428,22 @@ INSERT INTO spell_chain VALUES
|
|||
(33072,27174,20473,5,0),
|
||||
(48824,33072,20473,6,0),
|
||||
(48825,48824,20473,7,0),
|
||||
/* Holy Shock Triggered Hurt */
|
||||
(25912,0,25912,1,0),
|
||||
(25911,25912,25912,2,0),
|
||||
(25902,25911,25912,3,0),
|
||||
(27176,25902,25912,4,0),
|
||||
(33073,27176,25912,5,0),
|
||||
(48822,33073,25912,6,0),
|
||||
(48823,48822,25912,7,0),
|
||||
/* Holy Shock Triggered Heal */
|
||||
(25914,0,25914,1,0),
|
||||
(25913,25914,25914,2,0),
|
||||
(25903,25913,25914,3,0),
|
||||
(27175,25903,25914,4,0),
|
||||
(33074,27175,25914,5,0),
|
||||
(48820,33074,25914,6,0),
|
||||
(48821,48820,25914,7,0),
|
||||
/*Holy Wrath*/
|
||||
(2812,0,2812,1,0),
|
||||
(10318,2812,2812,2,0),
|
||||
|
|
@ -16863,9 +17177,6 @@ LOCK TABLES `spell_proc_event` WRITE;
|
|||
/*!40000 ALTER TABLE `spell_proc_event` DISABLE KEYS */;
|
||||
INSERT INTO `spell_proc_event` VALUES
|
||||
( 324, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
( 325, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
( 905, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
( 945, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
( 974, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
( 1463, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
( 3232, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
|
|
@ -16873,19 +17184,11 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
( 6346, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0.000000, 0.000000, 0),
|
||||
( 7383, 0x00000001, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0.000000, 0.000000, 0),
|
||||
( 7434, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
( 8134, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
( 8178, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
||||
( 8494, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
( 8495, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
( 9452, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 3.000000, 0.000000, 0),
|
||||
( 9782, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
( 9784, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
( 9799, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(10191, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
(10192, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
(10193, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
(10431, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(10432, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(11095, 0x00000000, 3, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(11119, 0x00000004, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(11120, 0x00000004, 3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
|
|
@ -16956,11 +17259,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(14193, 0x00000000, 8, 0x40800508, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(14194, 0x00000000, 8, 0x40800508, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(14195, 0x00000000, 8, 0x40800508, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(14318, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(14319, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(14320, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(14321, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(14322, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(14531, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(14774, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(14892, 0x00000000, 6, 0x10001E00, 0x00010004, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17051,8 +17349,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(20705, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(20911, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000070, 0.000000, 0.000000, 0),
|
||||
(20925, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(20927, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(20928, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(21185, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 10),
|
||||
(21882, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(21890, 0x00000000, 4, 0x2A764EEF, 0x0000036C, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17075,16 +17371,11 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(23920, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0.000000, 0.000000, 0),
|
||||
(24353, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(24389, 0x00000000, 3, 0x00C00017, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(24398, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(24658, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00014110, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(24905, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 15.000000, 0.000000, 0),
|
||||
(24932, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 6),
|
||||
(25050, 0x00000004, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(25296, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(25469, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(25472, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(25669, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 1.000000, 0.000000, 0),
|
||||
(25899, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000070, 0.000000, 0.000000, 0),
|
||||
(25988, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(26016, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 2.000000, 0.000000, 0),
|
||||
(26107, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17093,9 +17384,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(26135, 0x00000000, 10, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
||||
(26480, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 3.000000, 0.000000, 0),
|
||||
(26605, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(27044, 0x00000000, 9, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(27131, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
(27179, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(27419, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 3.000000, 0.000000, 0),
|
||||
(27498, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 3.000000, 0.000000, 0),
|
||||
(27521, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17197,8 +17485,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(32394, 0x00000000, 5, 0x00000402, 0x00000011, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(32409, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(32587, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(32593, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(32594, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(32642, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(32734, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(32748, 0x00000000, 8, 0x00000000, 0x00000001, 0x00000000, 0x00000140, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17223,11 +17509,9 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(33510, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 5.000000, 0.000000, 0),
|
||||
(33648, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(33719, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0.000000, 0.000000, 0),
|
||||
(33736, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(33746, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 10),
|
||||
(33757, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(33759, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 10),
|
||||
(33776, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00008800, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(33881, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(33882, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(33883, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17257,8 +17541,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(34859, 0x00000000, 6, 0x00001800, 0x00000004, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(34860, 0x00000000, 6, 0x00001800, 0x00000004, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(34914, 0x00000000, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(34916, 0x00000000, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(34917, 0x00000000, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(34935, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 8),
|
||||
(34938, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 8),
|
||||
(34939, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 8),
|
||||
|
|
@ -17348,8 +17630,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(42368, 0x00000000, 10, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(42370, 0x00000000, 11, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(42770, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
||||
(43019, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
(43020, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0.000000, 0.000000, 0),
|
||||
(43338, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(43443, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0.000000, 0.000000, 0),
|
||||
(43726, 0x00000000, 10, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17433,10 +17713,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(47582, 0x00000000, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0.000000, 0.000000, 0),
|
||||
(48110, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48111, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48112, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48113, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x000A02A8, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48159, 0x00000000, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48160, 0x00000000, 6, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48483, 0x00000000, 7, 0x00008800, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48484, 0x00000000, 7, 0x00008800, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48485, 0x00000000, 7, 0x00008800, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17452,18 +17728,12 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(48833, 0x00000000, 7, 0x00000000, 0x00000440, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48835, 0x00000000, 10, 0x00000000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48837, 0x00000000, 11, 0x90100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(48951, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(48952, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0.000000, 0.000000, 0),
|
||||
(48988, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(49018, 0x00000000, 15, 0x01400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(49137, 0x00000000, 15, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(49188, 0x00000000, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(49208, 0x00000000, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(49222, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(49280, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(49281, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(49283, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(49284, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(49503, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(49504, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(49529, 0x00000000, 15, 0x01400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17525,11 +17795,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(52008, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 20.000000, 0),
|
||||
(52020, 0x00000000, 7, 0x00008000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(52127, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(52129, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(52131, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(52134, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(52136, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(52138, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(52420, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 30),
|
||||
(52423, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000020, 0.000000, 0.000000, 0),
|
||||
(52795, 0x00000000, 6, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17622,7 +17887,6 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(57878, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||
(57880, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||
(57881, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||
(57960, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 3),
|
||||
(58357, 0x00000000, 4, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(58364, 0x00000000, 4, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(58372, 0x00000000, 4, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
|
|
@ -17675,257 +17939,33 @@ INSERT INTO `spell_proc_event` VALUES
|
|||
(61847, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||
(63108, 0x00000000, 5, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(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),
|
||||
(63245, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0);
|
||||
(63245, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||
(63730, 0x00000000, 6, 0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||
/*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */;
|
||||
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
|
||||
('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 */;
|
||||
--
|
||||
-- Dumping data for table `spell_proc_item_enchant`
|
||||
--
|
||||
|
||||
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;
|
||||
|
||||
--
|
||||
|
|
@ -18022,7 +18062,6 @@ INSERT INTO `spell_threat` VALUES
|
|||
(284,39),
|
||||
(285,59),
|
||||
(770,108),
|
||||
(778,108),
|
||||
(1608,78),
|
||||
(1672,180),
|
||||
(1715,61),
|
||||
|
|
@ -18042,10 +18081,8 @@ INSERT INTO `spell_threat` VALUES
|
|||
(8380,180),
|
||||
(8972,118),
|
||||
(9745,148),
|
||||
(9749,108),
|
||||
(9880,178),
|
||||
(9881,207),
|
||||
(9907,108),
|
||||
(11556,43),
|
||||
(11564,98),
|
||||
(11565,118),
|
||||
|
|
@ -18058,20 +18095,12 @@ INSERT INTO `spell_threat` VALUES
|
|||
(11600,275),
|
||||
(11601,315),
|
||||
(11775,395),
|
||||
(14274,200),
|
||||
(14921,415),
|
||||
(15629,300),
|
||||
(15630,400),
|
||||
(15631,500),
|
||||
(15632,600),
|
||||
(16857,108),
|
||||
(17735,200),
|
||||
(17750,300),
|
||||
(17751,450),
|
||||
(17752,600),
|
||||
(17390,108),
|
||||
(17391,108),
|
||||
(17392,108),
|
||||
(20569,100),
|
||||
(20736,100),
|
||||
(20925,20),
|
||||
|
|
@ -18091,9 +18120,7 @@ INSERT INTO `spell_threat` VALUES
|
|||
(25286,175),
|
||||
(25288,355),
|
||||
(25289,60),
|
||||
(26993,127),
|
||||
(26996,176),
|
||||
(27011,127),
|
||||
(27179,54),
|
||||
(29704,230),
|
||||
(29707,196),
|
||||
|
|
|
|||
|
|
@ -249,6 +249,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
|||
(50246,-1, -1, -1, -1, -1, -1, -1, -1,-1,'01001000', 'Spell::EffectDummy'),
|
||||
(50286, 7,0x0000000000000000,0x00000100, -1, -1, -1, 3, -1,-1,'Starfall', 'Spell::EffectDummy'),
|
||||
(50288,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Starfall', 'Spell::EffectDummy'),
|
||||
(51209,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Hungering Cold', 'Spell::EffectDummy'),
|
||||
(51582, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Rocket Boots Engaged', 'Spell::EffectDummy'),
|
||||
(51592, 0, -1, -1, -1, -1, -1, 3, -1,-1,'Pickup Primordial Hatchling', 'Spell::EffectDummy'),
|
||||
(52025,-1, -1, -1, -1, -1, -1, -1, -1,-1,'Cleansing Totem Effect', 'Spell::EffectDummy'),
|
||||
|
|
@ -318,6 +319,7 @@ INSERT INTO spell_check (spellid,SpellFamilyName,SpellFamilyMaskA,SpellFamilyMas
|
|||
( 0,11,0x0000000000002000,0x00000000, -1, -1, -1, 3, -1,-1,'Healing Stream Totem', 'Spell::EffectDummy'),
|
||||
( 0, 4,0x0000000100000000,0x00000000, -1, -1, -1, 2, -1,-1,'Heroic Throw', 'Spell::EffectSchoolDMG'),
|
||||
( 0,10, -1, -1, 156, -1, -1, 3, -1,-1,'Holy Shock', 'Spell::EffectDummy'),
|
||||
( 0,15,0x0000100000000000,0x00000000, -1, -1, -1, 3, -1,-1,'Hungering Cold', 'Spell::EffectDummy'),
|
||||
( 0, 5,0x0000000000000004,0x00000000, -1, -1, -1, -1, 3,-1,'Immolate', 'Spell::EffectSchoolDMG'),
|
||||
(0, 5, -1, -1, 208, -1, -1, -1, 4,-1,'Improved Life Tap', 'Spell::EffectDummy'),
|
||||
( 0, 5,0x0000004000000000,0x00000000,2128, -1, -1, 2, -1,-1,'Incinerate', 'Spell::EffectSchoolDMG'),
|
||||
|
|
|
|||
7
sql/updates/8227_01_mangos_spell_proc_event.sql
Normal file
7
sql/updates/8227_01_mangos_spell_proc_event.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_8213_01_mangos_spell_bonus_data required_8227_01_mangos_spell_proc_event bit;
|
||||
|
||||
DELETE FROM `spell_proc_event` WHERE entry IN (63730,63733,63737);
|
||||
INSERT INTO `spell_proc_event` VALUES
|
||||
(63730, 0x00000000, 6, 0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(63733, 0x00000000, 6, 0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||
(63737, 0x00000000, 6, 0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||
4
sql/updates/8237_01_mangos_creature_template.sql
Normal file
4
sql/updates/8237_01_mangos_creature_template.sql
Normal file
|
|
@ -0,0 +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);
|
||||
18
sql/updates/8247_01_mangos_spell_bonus_data.sql
Normal file
18
sql/updates/8247_01_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_8237_01_mangos_creature_template required_8247_01_mangos_spell_bonus_data bit;
|
||||
|
||||
DELETE FROM `spell_bonus_data` where entry in (49941, 55078, 50444, 52212, 47632, 47633, 55095, 49184, 45477, 45477, 50842, 47476, 50536, 50401, 56903);
|
||||
INSERT INTO `spell_bonus_data`(`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `comments`) 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");
|
||||
13
sql/updates/8249_01_mangos_spell_proc_item_enchant.sql
Normal file
13
sql/updates/8249_01_mangos_spell_proc_item_enchant.sql
Normal file
|
|
@ -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
|
||||
31
sql/updates/8249_02_mangos_spell_chain.sql
Normal file
31
sql/updates/8249_02_mangos_spell_chain.sql
Normal file
|
|
@ -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);
|
||||
3
sql/updates/8250_01_mangos_spell_threat.sql
Normal file
3
sql/updates/8250_01_mangos_spell_threat.sql
Normal file
|
|
@ -0,0 +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);
|
||||
141
sql/updates/8251_01_mangos_spell_chain.sql
Normal file
141
sql/updates/8251_01_mangos_spell_chain.sql
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_8250_01_mangos_spell_threat required_8251_01_mangos_spell_chain bit;
|
||||
|
||||
DELETE FROM `spell_chain` WHERE `spell_id` IN (
|
||||
7268,7269,7270,8419,8418,10273,10274,25346,27076,38700,38703,42844,42845,
|
||||
42208,42209,42210,42211,42212,42213,42198,42937,42938,
|
||||
34913,43043,43044,
|
||||
25912,25911,25902,27176,33073,48822,48823,
|
||||
25914,25913,25903,27175,33074,48820,48821,
|
||||
23455,23458,23459,27803,27804,27805,25329,
|
||||
49821,53022,
|
||||
8443,8504,8505,11310,11311,25538,25539,61651,61660,
|
||||
8026,8028,8029,10445,16343,16344,25488,58786,58787,58788,
|
||||
26364,26365,26366,26367,26369,26370,26363,26371,26372,49278,49279,
|
||||
8188,10582,10583,10584,25551,58733,58736,
|
||||
3606,6350,6351,6352,10435,10436,25530,58700,58701,58702,
|
||||
5857,11681,11682,27214,47822,
|
||||
42223,42224,42225,42226,42218,47817,47818
|
||||
);
|
||||
|
||||
INSERT INTO `spell_chain` (`spell_id`, `prev_spell`, `first_spell`, `rank`, `req_spell`) VALUES
|
||||
/* Arcane Missiles Triggered Spell */
|
||||
(7268,0,7268,1,0),
|
||||
(7269,7268,7268,2,0),
|
||||
(7270,7269,7268,3,0),
|
||||
(8419,7270,7268,4,0),
|
||||
(8418,8419,7268,5,0),
|
||||
(10273,8418,7268,6,0),
|
||||
(10274,10273,7268,7,0),
|
||||
(25346,10274,7268,8,0),
|
||||
(27076,25346,7268,9,0),
|
||||
(38700,27076,7268,10,0),
|
||||
(38703,38700,7268,11,0),
|
||||
(42844,38703,7268,12,0),
|
||||
(42845,42844,7268,13,0),
|
||||
/* Blizzard Triggered Spell */
|
||||
(42208,0,42208,1,0),
|
||||
(42209,42208,42208,2,0),
|
||||
(42210,42209,42208,3,0),
|
||||
(42211,42210,42208,4,0),
|
||||
(42212,42211,42208,5,0),
|
||||
(42213,42212,42208,6,0),
|
||||
(42198,42213,42208,7,0),
|
||||
(42937,42198,42208,8,0),
|
||||
(42938,42937,42208,9,0),
|
||||
/* Molten Armor Triggered */
|
||||
(34913,0,34913,1,0),
|
||||
(43043,34913,34913,2,0),
|
||||
(43044,43043,34913,3,0),
|
||||
/* Holy Shock Triggered Hurt */
|
||||
(25912,0,25912,1,0),
|
||||
(25911,25912,25912,2,0),
|
||||
(25902,25911,25912,3,0),
|
||||
(27176,25902,25912,4,0),
|
||||
(33073,27176,25912,5,0),
|
||||
(48822,33073,25912,6,0),
|
||||
(48823,48822,25912,7,0),
|
||||
/* Holy Shock Triggered Heal */
|
||||
(25914,0,25914,1,0),
|
||||
(25913,25914,25914,2,0),
|
||||
(25903,25913,25914,3,0),
|
||||
(27175,25903,25914,4,0),
|
||||
(33074,27175,25914,5,0),
|
||||
(48820,33074,25914,6,0),
|
||||
(48821,48820,25914,7,0),
|
||||
/* Holy Nova Heal */
|
||||
(23455,0,23455,1,0),
|
||||
(23458,23455,23455,2,0),
|
||||
(23459,23458,23455,3,0),
|
||||
(27803,23459,23455,4,0),
|
||||
(27804,27803,23455,5,0),
|
||||
(27805,27804,23455,6,0),
|
||||
(25329,27805,23455,7,0),
|
||||
/* Mind Sear Trigger */
|
||||
(49821,0,49821,1,0),
|
||||
(53022,49821,49821,2,0),
|
||||
/* Fire Nova Totem Casted by Totem */
|
||||
(8443,0,8443,1,0),
|
||||
(8504,8443,8443,2,0),
|
||||
(8505,8504,8443,3,0),
|
||||
(11310,8505,8443,4,0),
|
||||
(11311,11310,8443,5,0),
|
||||
(25538,11311,8443,6,0),
|
||||
(25539,25538,8443,7,0),
|
||||
(61651,25539,8443,8,0),
|
||||
(61660,61651,8443,9,0),
|
||||
/* Flametongue Weapon Proc */
|
||||
(8026,0,8026,1,0),
|
||||
(8028,8026,8026,2,0),
|
||||
(8029,8028,8026,3,0),
|
||||
(10445,8029,8026,4,0),
|
||||
(16343,10445,8026,5,0),
|
||||
(16344,16343,8026,6,0),
|
||||
(25488,16344,8026,7,0),
|
||||
(58786,25488,8026,8,0),
|
||||
(58787,58786,8026,9,0),
|
||||
(58788,58787,8026,10,0),
|
||||
/* Lightning Shield Proc */
|
||||
(26364,0,26364,1,0),
|
||||
(26365,26364,26364,2,0),
|
||||
(26366,26365,26364,3,0),
|
||||
(26367,26366,26364,4,0),
|
||||
(26369,26367,26364,5,0),
|
||||
(26370,26369,26364,6,0),
|
||||
(26363,26370,26364,7,0),
|
||||
(26371,26363,26364,8,0),
|
||||
(26372,26371,26364,9,0),
|
||||
(49278,26372,26364,10,0),
|
||||
(49279,49278,26364,11,0),
|
||||
/* Magma Totam Passive */
|
||||
(8188,0,8188,1,0),
|
||||
(10582,8188,8188,2,0),
|
||||
(10583,10582,8188,3,0),
|
||||
(10584,10583,8188,4,0),
|
||||
(25551,10584,8188,5,0),
|
||||
(58733,25551,8188,6,0),
|
||||
(58736,58733,8188,7,0),
|
||||
/* Searing Totem Attack */
|
||||
(3606,0,3606,1,0),
|
||||
(6350,3606,3606,2,0),
|
||||
(6351,6350,3606,3,0),
|
||||
(6352,6351,3606,4,0),
|
||||
(10435,6352,3606,5,0),
|
||||
(10436,10435,3606,6,0),
|
||||
(25530,10436,3606,7,0),
|
||||
(58700,25530,3606,8,0),
|
||||
(58701,58700,3606,9,0),
|
||||
(58702,58701,3606,10,0),
|
||||
/* Hellfire Effect on Enemy */
|
||||
(5857,0,5857,1,0),
|
||||
(11681,5857,5857,2,0),
|
||||
(11682,11681,5857,3,0),
|
||||
(27214,11682,5857,4,0),
|
||||
(47822,27214,5857,5,0),
|
||||
/* Rain of Fire Triggered */
|
||||
(42223,0,42223,1,0),
|
||||
(42224,42223,42223,2,0),
|
||||
(42225,42224,42223,3,0),
|
||||
(42226,42225,42223,4,0),
|
||||
(42218,42226,42223,5,0),
|
||||
(47817,42218,42223,6,0),
|
||||
(47818,47817,42223,7,0);
|
||||
23
sql/updates/8251_02_mangos_spell_bonus_data.sql
Normal file
23
sql/updates/8251_02_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_8251_01_mangos_spell_chain required_8251_02_mangos_spell_bonus_data bit;
|
||||
|
||||
DELETE FROM `spell_bonus_data` where entry in (
|
||||
49941,48721,
|
||||
8037,10458,16352,16353,25501,58797,58798,58799,18937,18938,27265,59092,49941,
|
||||
7269,7270,8419,8418,10273,10274,25346,27076,38700,38703,42844,42845,
|
||||
42209,42210,42211,42212,42213,42198,42937,42938,
|
||||
43043,43044,
|
||||
25911,25902,27176,33073,48822,48823,
|
||||
25913,25903,27175,33074,48820,48821,
|
||||
23458,23459,27803,27804,27805,25329,
|
||||
53022,
|
||||
8504,8505,11310,11311,25538,25539,61651,61660,
|
||||
8028,8029,10445,16343,16344,25488,58786,58787,58788,
|
||||
26365,26366,26367,26369,26370,26363,26371,26372,49278,49279,
|
||||
10582,10583,10584,25551,58733,58736,
|
||||
6350,6351,6352,10435,10436,25530,58700,58701,58702,
|
||||
11681,11682,27214,47822,
|
||||
42224,42225,42226,42218,47817,47818
|
||||
);
|
||||
|
||||
INSERT INTO `spell_bonus_data` VALUES
|
||||
('48721', '0', '0', '0.04', 'Death Knight - Blood Boil');
|
||||
8
sql/updates/8251_03_mangos_spell_proc_event.sql
Normal file
8
sql/updates/8251_03_mangos_spell_proc_event.sql
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_8251_02_mangos_spell_bonus_data required_8251_03_mangos_spell_proc_event bit;
|
||||
|
||||
DELETE FROM `spell_proc_event` WHERE entry IN (
|
||||
325,905,945,8134,8494,8495,10191,10192,10193,10431,10432,14318,14319,14320,
|
||||
14321,14322,20927,20928,24398,25296,25469,25472,25899,27044,27131,27179,32593,
|
||||
32594,33736,33776,34916,34917,43019,43020,63158,48159,48160,48951,48952,49280,
|
||||
49281,49283,49284,52129,52131,52134,52136,52138,57960,48112,48113,63733,63737
|
||||
);
|
||||
|
|
@ -249,6 +249,15 @@ pkgdata_DATA = \
|
|||
8211_01_mangos_spell_proc_event.sql \
|
||||
8212_01_mangos_spell_proc_event.sql \
|
||||
8213_01_mangos_spell_bonus_data.sql \
|
||||
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 \
|
||||
8250_01_mangos_spell_threat.sql \
|
||||
8251_01_mangos_spell_chain.sql \
|
||||
8251_02_mangos_spell_bonus_data.sql \
|
||||
8251_03_mangos_spell_proc_event.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -478,4 +487,13 @@ EXTRA_DIST = \
|
|||
8211_01_mangos_spell_proc_event.sql \
|
||||
8212_01_mangos_spell_proc_event.sql \
|
||||
8213_01_mangos_spell_bonus_data.sql \
|
||||
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 \
|
||||
8250_01_mangos_spell_threat.sql \
|
||||
8251_01_mangos_spell_chain.sql \
|
||||
8251_02_mangos_spell_bonus_data.sql \
|
||||
8251_03_mangos_spell_proc_event.sql \
|
||||
README
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ CreatureEventAI::CreatureEventAI(Creature *c ) : CreatureAI(c)
|
|||
AttackDistance = 0.0f;
|
||||
AttackAngle = 0.0f;
|
||||
|
||||
InvinceabilityHpLevel = 0;
|
||||
|
||||
//Handle Spawned Events
|
||||
if (!bEmptyList)
|
||||
{
|
||||
|
|
@ -780,6 +782,14 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
|
|||
m_creature->ForcedDespawn();
|
||||
break;
|
||||
}
|
||||
case ACTION_T_SET_INVINCIBILITY_HP_LEVEL:
|
||||
{
|
||||
if(action.invincibility_hp_level.is_percent)
|
||||
InvinceabilityHpLevel = m_creature->GetMaxHealth()*action.invincibility_hp_level.hp_level/100;
|
||||
else
|
||||
InvinceabilityHpLevel = action.invincibility_hp_level.hp_level;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1380,6 +1390,17 @@ void CreatureEventAI::ReceiveEmote(Player* pPlayer, uint32 text_emote)
|
|||
}
|
||||
}
|
||||
|
||||
void CreatureEventAI::DamageTaken( Unit* done_by, uint32& damage )
|
||||
{
|
||||
if(InvinceabilityHpLevel > 0 && m_creature->GetHealth() < InvinceabilityHpLevel+damage)
|
||||
{
|
||||
if(m_creature->GetHealth() <= InvinceabilityHpLevel)
|
||||
damage = 0;
|
||||
else
|
||||
damage = m_creature->GetHealth() - InvinceabilityHpLevel;
|
||||
}
|
||||
}
|
||||
|
||||
bool CreatureEventAI::SpawnedEventConditionsCheck(CreatureEventAI_Event const& event)
|
||||
{
|
||||
if(event.event_type != EVENT_T_SPAWNED)
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ enum EventAI_ActionType
|
|||
ACTION_T_CALL_FOR_HELP = 39, // Radius
|
||||
ACTION_T_SET_SHEATH = 40, // Sheath (0-passive,1-melee,2-ranged)
|
||||
ACTION_T_FORCE_DESPAWN = 41, // No Params
|
||||
ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42, // MinHpValue, format(0-flat,1-percent from max health)
|
||||
ACTION_T_END,
|
||||
};
|
||||
|
||||
|
|
@ -373,6 +374,12 @@ struct CreatureEventAI_Action
|
|||
{
|
||||
uint32 sheath;
|
||||
} set_sheath;
|
||||
// ACTION_T_SET_INVINCIBILITY_HP_LEVEL = 42
|
||||
struct
|
||||
{
|
||||
uint32 hp_level;
|
||||
uint32 is_percent;
|
||||
} invincibility_hp_level;
|
||||
// RAW
|
||||
struct
|
||||
{
|
||||
|
|
@ -575,6 +582,7 @@ class MANGOS_DLL_SPEC CreatureEventAI : public CreatureAI
|
|||
void AttackStart(Unit *who);
|
||||
void MoveInLineOfSight(Unit *who);
|
||||
void SpellHit(Unit* pUnit, const SpellEntry* pSpell);
|
||||
void DamageTaken(Unit* done_by, uint32& damage);
|
||||
void UpdateAI(const uint32 diff);
|
||||
bool IsVisible(Unit *) const;
|
||||
void ReceiveEmote(Player* pPlayer, uint32 text_emote);
|
||||
|
|
@ -609,5 +617,6 @@ class MANGOS_DLL_SPEC CreatureEventAI : public CreatureAI
|
|||
bool MeleeEnabled; // If we allow melee auto attack
|
||||
float AttackDistance; // Distance to attack from
|
||||
float AttackAngle; // Angle of attack
|
||||
uint32 InvinceabilityHpLevel; // Minimal health level allowed at damage apply
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -661,6 +661,16 @@ void CreatureEventAIMgr::LoadCreatureEventAI_Scripts()
|
|||
action.set_sheath.sheath = SHEATH_STATE_UNARMED;
|
||||
}
|
||||
break;
|
||||
case ACTION_T_SET_INVINCIBILITY_HP_LEVEL:
|
||||
if(action.invincibility_hp_level.is_percent)
|
||||
{
|
||||
if(action.invincibility_hp_level.hp_level > 100)
|
||||
{
|
||||
sLog.outErrorDb("CreatureEventAI: Event %u Action %u uses wrong percent value %u.", i, j+1, action.invincibility_hp_level.hp_level);
|
||||
action.invincibility_hp_level.hp_level = 100;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ACTION_T_EVADE: //No Params
|
||||
case ACTION_T_FLEE_FOR_ASSIST: //No Params
|
||||
case ACTION_T_DIE: //No Params
|
||||
|
|
|
|||
|
|
@ -1441,13 +1441,6 @@ struct SpellFocusObjectEntry
|
|||
// 16 string flags, unused
|
||||
};
|
||||
|
||||
// stored in SQL table
|
||||
struct SpellThreatEntry
|
||||
{
|
||||
uint32 spellId;
|
||||
int32 threat;
|
||||
};
|
||||
|
||||
struct SpellRadiusEntry
|
||||
{
|
||||
uint32 ID;
|
||||
|
|
|
|||
|
|
@ -861,12 +861,14 @@ void WorldSession::HandleBuyBankSlotOpcode(WorldPacket& recvPacket)
|
|||
recvPacket >> guid;
|
||||
|
||||
// cheating protection
|
||||
/* not critical if "cheated", and check skip allow by slots in bank windows open by .bank command.
|
||||
Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_BANKER);
|
||||
if(!pCreature)
|
||||
{
|
||||
sLog.outDebug( "WORLD: HandleBuyBankSlotOpcode - Unit (GUID: %u) not found or you can't interact with him.", uint32(GUID_LOPART(guid)) );
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
uint32 slot = _player->GetBankBagSlotCount();
|
||||
|
||||
|
|
|
|||
|
|
@ -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..." );
|
||||
|
|
|
|||
|
|
@ -962,10 +962,11 @@ void WorldSession::HandleRequestAccountData(WorldPacket& recv_data)
|
|||
|
||||
uint32 size = adata->Data.size();
|
||||
|
||||
ByteBuffer dest;
|
||||
dest.resize(size);
|
||||
uLongf destSize = compressBound(size);
|
||||
|
||||
ByteBuffer dest;
|
||||
dest.resize(destSize);
|
||||
|
||||
uLongf destSize = size;
|
||||
if(size && compress(const_cast<uint8*>(dest.contents()), &destSize, (uint8*)adata->Data.c_str(), size) != Z_OK)
|
||||
{
|
||||
sLog.outDebug("RAD: Failed to compress account data");
|
||||
|
|
|
|||
|
|
@ -1918,13 +1918,19 @@ void Pet::CastPetAura(PetAura const* aura)
|
|||
CastSpell(this, auraId, true);
|
||||
}
|
||||
|
||||
struct DoPetLearnSpell
|
||||
{
|
||||
DoPetLearnSpell(Pet& _pet) : pet(_pet) {}
|
||||
void operator() (uint32 spell_id) { pet.learnSpell(spell_id); }
|
||||
Pet& pet;
|
||||
};
|
||||
|
||||
void Pet::learnSpellHighRank(uint32 spellid)
|
||||
{
|
||||
learnSpell(spellid);
|
||||
|
||||
SpellChainMapNext const& nextMap = spellmgr.GetSpellChainNext();
|
||||
for(SpellChainMapNext::const_iterator itr = nextMap.lower_bound(spellid); itr != nextMap.upper_bound(spellid); ++itr)
|
||||
learnSpellHighRank(itr->second);
|
||||
DoPetLearnSpell worker(*this);
|
||||
spellmgr.doForHighRanks(spellid,worker);
|
||||
}
|
||||
|
||||
void Pet::SynchronizeLevelWithOwner()
|
||||
|
|
|
|||
|
|
@ -1275,8 +1275,8 @@ void Player::Update( uint32 p_time )
|
|||
{
|
||||
if (p_time >= m_DetectInvTimer)
|
||||
{
|
||||
m_DetectInvTimer = 3000;
|
||||
HandleStealthedUnitsDetection();
|
||||
m_DetectInvTimer = 3000;
|
||||
}
|
||||
else
|
||||
m_DetectInvTimer -= p_time;
|
||||
|
|
@ -6999,7 +6999,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)
|
||||
|
|
@ -7029,7 +7029,17 @@ 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
|
||||
float ppmRate = spellmgr.GetItemEnchantProcChance(spellInfo->Id);
|
||||
|
||||
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]))
|
||||
|
|
@ -16892,17 +16902,18 @@ void Player::HandleStealthedUnitsDetection()
|
|||
cell_lock->Visit(cell_lock, world_unit_searcher, *GetMap());
|
||||
cell_lock->Visit(cell_lock, grid_unit_searcher, *GetMap());
|
||||
|
||||
for (std::list<Unit*>::iterator i = stealthedUnits.begin(); i != stealthedUnits.end();)
|
||||
for (std::list<Unit*>::const_iterator i = stealthedUnits.begin(); i != stealthedUnits.end(); ++i)
|
||||
{
|
||||
if((*i)==this)
|
||||
{
|
||||
i = stealthedUnits.erase(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((*i)->isVisibleForOrDetect(this,true))
|
||||
bool hasAtClient = HaveAtClient((*i));
|
||||
bool hasDetected = (*i)->isVisibleForOrDetect(this, true);
|
||||
|
||||
if (hasDetected)
|
||||
{
|
||||
if(!hasAtClient)
|
||||
{
|
||||
|
||||
(*i)->SendUpdateToPlayer(this);
|
||||
m_clientGUIDs.insert((*i)->GetGUID());
|
||||
|
||||
|
|
@ -16915,12 +16926,16 @@ void Player::HandleStealthedUnitsDetection()
|
|||
// send data at target visibility change (adding to client)
|
||||
if((*i)!=this && (*i)->isType(TYPEMASK_UNIT))
|
||||
SendAurasForTarget(*i);
|
||||
|
||||
i = stealthedUnits.erase(i);
|
||||
continue;
|
||||
}
|
||||
|
||||
++i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(hasAtClient)
|
||||
{
|
||||
(*i)->DestroyForPlayer(this);
|
||||
m_clientGUIDs.erase((*i)->GetGUID());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -19676,13 +19691,19 @@ bool Player::IsAllowUseFlyMountsHere() const
|
|||
return v_map == 530 || v_map == 571 && HasSpell(54197);
|
||||
}
|
||||
|
||||
struct DoPlayerLearnSpell
|
||||
{
|
||||
DoPlayerLearnSpell(Player& _player) : player(_player) {}
|
||||
void operator() (uint32 spell_id) { player.learnSpell(spell_id,false); }
|
||||
Player& player;
|
||||
};
|
||||
|
||||
void Player::learnSpellHighRank(uint32 spellid)
|
||||
{
|
||||
learnSpell(spellid,false);
|
||||
|
||||
SpellChainMapNext const& nextMap = spellmgr.GetSpellChainNext();
|
||||
for(SpellChainMapNext::const_iterator itr = nextMap.lower_bound(spellid); itr != nextMap.upper_bound(spellid); ++itr)
|
||||
learnSpellHighRank(itr->second);
|
||||
DoPlayerLearnSpell worker(*this);
|
||||
spellmgr.doForHighRanks(spellid,worker);
|
||||
}
|
||||
|
||||
void Player::_LoadSkills()
|
||||
|
|
|
|||
|
|
@ -2121,7 +2121,6 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||
void UpdateVisibilityOf(T* target, UpdateData& data, UpdateDataMapType& data_updates, std::set<WorldObject*>& visibleNow);
|
||||
|
||||
// Stealth detection system
|
||||
uint32 m_DetectInvTimer;
|
||||
void HandleStealthedUnitsDetection();
|
||||
|
||||
uint8 m_forced_speed_changes[MAX_MOVE_TYPE];
|
||||
|
|
@ -2476,6 +2475,8 @@ class MANGOS_DLL_SPEC Player : public Unit
|
|||
bool m_bCanDelayTeleport;
|
||||
bool m_bHasDelayedTeleport;
|
||||
|
||||
uint32 m_DetectInvTimer;
|
||||
|
||||
// Temporary removed pet cache
|
||||
uint32 m_temporaryUnsummonedPetNumber;
|
||||
uint32 m_oldpetspell;
|
||||
|
|
|
|||
|
|
@ -104,7 +104,9 @@ void LoadSkillDiscoveryTable()
|
|||
{
|
||||
if (reportedReqSpells.count(reqSkillOrSpell)==0)
|
||||
{
|
||||
sLog.outErrorDb("Spell (ID: %u) not have have MECHANIC_DISCOVERY (28) value in Mechanic field in spell.dbc and not 100%% chance random discovery ability but listed for spellId %u (and maybe more) in `skill_discovery_template` table",reqSkillOrSpell,spellId);
|
||||
sLog.outErrorDb("Spell (ID: %u) not have MECHANIC_DISCOVERY (28) value in Mechanic field in spell.dbc"
|
||||
" and not 100%% chance random discovery ability but listed for spellId %u (and maybe more) in `skill_discovery_template` table",
|
||||
reqSkillOrSpell,spellId);
|
||||
reportedReqSpells.insert(reqSkillOrSpell);
|
||||
}
|
||||
continue;
|
||||
|
|
@ -143,6 +145,21 @@ void LoadSkillDiscoveryTable()
|
|||
sLog.outString( ">> Loaded %u skill discovery definitions", count );
|
||||
if(!ssNonDiscoverableEntries.str().empty())
|
||||
sLog.outErrorDb("Some items can't be successfully discovered: have in chance field value < 0.000001 in `skill_discovery_template` DB table . List:\n%s",ssNonDiscoverableEntries.str().c_str());
|
||||
|
||||
// report about empty data for explicit discovery spells
|
||||
for(uint32 spell_id = 1; spell_id < sSpellStore.GetNumRows(); ++spell_id)
|
||||
{
|
||||
SpellEntry const* spellEntry = sSpellStore.LookupEntry(spell_id);
|
||||
if(!spellEntry)
|
||||
continue;
|
||||
|
||||
// skip not explicit discovery spells
|
||||
if (!IsExplicitDiscoverySpell(spellEntry))
|
||||
continue;
|
||||
|
||||
if(SkillDiscoveryStore.find(spell_id)==SkillDiscoveryStore.end())
|
||||
sLog.outErrorDb("Spell (ID: %u) is 100%% chance random discovery ability but not have data in `skill_discovery_template` table",spell_id);
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetExplicitDiscoverySpell(uint32 spellId, Player* player)
|
||||
|
|
|
|||
|
|
@ -1690,16 +1690,16 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
|
|||
case TARGET_ALL_PARTY_AROUND_CASTER:
|
||||
case TARGET_ALL_PARTY_AROUND_CASTER_2:
|
||||
case TARGET_ALL_PARTY:
|
||||
FillRaidOrPartyTargets(TagUnitMap,m_caster,radius,false,true,true);
|
||||
FillRaidOrPartyTargets(TagUnitMap, m_caster, m_caster, radius, false, true, true);
|
||||
break;
|
||||
case TARGET_ALL_RAID_AROUND_CASTER:
|
||||
{
|
||||
if(m_spellInfo->Id == 57669) // Replenishment (special target selection)
|
||||
FillRaidOrPartyManaPriorityTargets(TagUnitMap, m_caster, radius, 10, true, false, false);
|
||||
FillRaidOrPartyManaPriorityTargets(TagUnitMap, m_caster, m_caster, radius, 10, true, false, false);
|
||||
else if (m_spellInfo->Id==52759) //Ancestral Awakening (special target selection)
|
||||
FillRaidOrPartyHealthPriorityTargets(TagUnitMap, m_caster, radius, 1, true, false, false);
|
||||
FillRaidOrPartyHealthPriorityTargets(TagUnitMap, m_caster, m_caster, radius, 1, true, false, false);
|
||||
else
|
||||
FillRaidOrPartyTargets(TagUnitMap, m_caster, radius, true, true, true);
|
||||
FillRaidOrPartyTargets(TagUnitMap, m_caster, m_caster, radius, true, true, true);
|
||||
break;
|
||||
}
|
||||
case TARGET_SINGLE_FRIEND:
|
||||
|
|
@ -1728,11 +1728,22 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap)
|
|||
// special target order
|
||||
if (m_spellInfo->Id==64904) // Hymn of Hope
|
||||
// target amount stored in parent spell dummy effect but hard for access
|
||||
FillRaidOrPartyManaPriorityTargets(TagUnitMap, m_caster, radius, 3, true, false, false);
|
||||
FillRaidOrPartyManaPriorityTargets(TagUnitMap, m_caster, m_caster, radius, 3, true, false, false);
|
||||
else
|
||||
FillAreaTargets(TagUnitMap, m_targets.m_destX, m_targets.m_destY, radius, PUSH_SELF_CENTER, SPELL_TARGETS_FRIENDLY);
|
||||
break;
|
||||
case TARGET_ALL_FRIENDLY_UNITS_IN_AREA:
|
||||
// Wild Growth
|
||||
if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DRUID && m_spellInfo->SpellIconID == 2864)
|
||||
{
|
||||
Unit* target = m_targets.getUnitTarget();
|
||||
if(!target)
|
||||
target = m_caster;
|
||||
uint32 count = CalculateDamage(2,m_caster); // stored in dummy effect, affected by mods
|
||||
|
||||
FillRaidOrPartyHealthPriorityTargets(TagUnitMap, m_caster, target, radius, count, true, false, true);
|
||||
}
|
||||
else
|
||||
FillAreaTargets(TagUnitMap, m_targets.m_destX, m_targets.m_destY, radius, PUSH_DEST_CENTER, SPELL_TARGETS_FRIENDLY);
|
||||
break;
|
||||
// TARGET_SINGLE_PARTY means that the spells can only be casted on a party member and not on the caster (some seals, fire shield from imp, etc..)
|
||||
|
|
@ -3555,13 +3566,14 @@ void Spell::HandleThreatSpells(uint32 spellId)
|
|||
if(!m_targets.getUnitTarget()->CanHaveThreatList())
|
||||
return;
|
||||
|
||||
SpellThreatEntry const *threatSpell = sSpellThreatStore.LookupEntry<SpellThreatEntry>(spellId);
|
||||
if(!threatSpell)
|
||||
uint16 threat = spellmgr.GetSpellThreat(spellId);
|
||||
|
||||
if(!threat)
|
||||
return;
|
||||
|
||||
m_targets.getUnitTarget()->AddThreat(m_caster, float(threatSpell->threat));
|
||||
m_targets.getUnitTarget()->AddThreat(m_caster, float(threat));
|
||||
|
||||
DEBUG_LOG("Spell %u, rank %u, added an additional %i threat", spellId, spellmgr.GetSpellRank(spellId), threatSpell->threat);
|
||||
DEBUG_LOG("Spell %u, rank %u, added an additional %i threat", spellId, spellmgr.GetSpellRank(spellId), threat);
|
||||
}
|
||||
|
||||
void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,uint32 i, float DamageMultiplier)
|
||||
|
|
@ -5751,14 +5763,14 @@ void Spell::FillAreaTargets( UnitList& TagUnitMap, float x, float y, float radiu
|
|||
cell_lock->Visit(cell_lock, grid_notifier, *m_caster->GetMap());
|
||||
}
|
||||
|
||||
void Spell::FillRaidOrPartyTargets( UnitList &TagUnitMap, Unit* target, float radius, bool raid, bool withPets, bool withcaster )
|
||||
void Spell::FillRaidOrPartyTargets( UnitList &TagUnitMap, Unit* member, Unit* center, float radius, bool raid, bool withPets, bool withcaster )
|
||||
{
|
||||
Player *pTarget = target->GetCharmerOrOwnerPlayerOrPlayerItself();
|
||||
Group *pGroup = pTarget ? pTarget->GetGroup() : NULL;
|
||||
Player *pMember = member->GetCharmerOrOwnerPlayerOrPlayerItself();
|
||||
Group *pGroup = pMember ? pMember->GetGroup() : NULL;
|
||||
|
||||
if (pGroup)
|
||||
{
|
||||
uint8 subgroup = pTarget->GetSubGroup();
|
||||
uint8 subgroup = pMember->GetSubGroup();
|
||||
|
||||
for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next())
|
||||
{
|
||||
|
|
@ -5768,36 +5780,36 @@ void Spell::FillRaidOrPartyTargets( UnitList &TagUnitMap, Unit* target, float ra
|
|||
if (Target && (raid || subgroup==Target->GetSubGroup())
|
||||
&& !m_caster->IsHostileTo(Target))
|
||||
{
|
||||
if (Target==m_caster && withcaster ||
|
||||
Target!=m_caster && m_caster->IsWithinDistInMap(Target, radius))
|
||||
if ((Target==center || center->IsWithinDistInMap(Target, radius)) &&
|
||||
(withcaster || Target != m_caster))
|
||||
TagUnitMap.push_back(Target);
|
||||
|
||||
if (withPets)
|
||||
if (Pet* pet = Target->GetPet())
|
||||
if (pet==m_caster && withcaster ||
|
||||
pet!=m_caster && m_caster->IsWithinDistInMap(pet, radius))
|
||||
if ((pet==center || center->IsWithinDistInMap(pet, radius)) &&
|
||||
(withcaster || pet != m_caster))
|
||||
TagUnitMap.push_back(pet);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* ownerOrSelf = pTarget ? pTarget : target->GetCharmerOrOwnerOrSelf();
|
||||
if (ownerOrSelf==m_caster && withcaster ||
|
||||
ownerOrSelf!=m_caster && m_caster->IsWithinDistInMap(ownerOrSelf, radius))
|
||||
Unit* ownerOrSelf = pMember ? pMember : member->GetCharmerOrOwnerOrSelf();
|
||||
if ((ownerOrSelf==center || center->IsWithinDistInMap(ownerOrSelf, radius)) &&
|
||||
(withcaster || ownerOrSelf != m_caster))
|
||||
TagUnitMap.push_back(ownerOrSelf);
|
||||
|
||||
if (withPets)
|
||||
if (Pet* pet = ownerOrSelf->GetPet())
|
||||
if (pet==m_caster && withcaster ||
|
||||
pet!=m_caster && m_caster->IsWithinDistInMap(pet, radius))
|
||||
if ((pet==center || center->IsWithinDistInMap(pet, radius)) &&
|
||||
(withcaster || pet != m_caster))
|
||||
TagUnitMap.push_back(pet);
|
||||
}
|
||||
}
|
||||
|
||||
void Spell::FillRaidOrPartyManaPriorityTargets( UnitList &TagUnitMap, Unit* target, float radius, uint32 count, bool raid, bool withPets, bool withCaster )
|
||||
void Spell::FillRaidOrPartyManaPriorityTargets( UnitList &TagUnitMap, Unit* member, Unit* center, float radius, uint32 count, bool raid, bool withPets, bool withCaster )
|
||||
{
|
||||
FillRaidOrPartyTargets(TagUnitMap,target,radius,raid,withPets,withCaster);
|
||||
FillRaidOrPartyTargets(TagUnitMap, member, center, radius, raid, withPets, withCaster);
|
||||
|
||||
PrioritizeManaUnitQueue manaUsers;
|
||||
for(UnitList::const_iterator itr = TagUnitMap.begin(); itr != TagUnitMap.end() && manaUsers.size() < count; ++itr)
|
||||
|
|
@ -5812,9 +5824,9 @@ void Spell::FillRaidOrPartyManaPriorityTargets( UnitList &TagUnitMap, Unit* targ
|
|||
}
|
||||
}
|
||||
|
||||
void Spell::FillRaidOrPartyHealthPriorityTargets( UnitList &TagUnitMap, Unit* target, float radius, uint32 count, bool raid, bool withPets, bool withCaster )
|
||||
void Spell::FillRaidOrPartyHealthPriorityTargets( UnitList &TagUnitMap, Unit* member, Unit* center, float radius, uint32 count, bool raid, bool withPets, bool withCaster )
|
||||
{
|
||||
FillRaidOrPartyTargets(TagUnitMap,target,radius,raid,withPets,withCaster);
|
||||
FillRaidOrPartyTargets(TagUnitMap, member, center, radius, raid, withPets, withCaster);
|
||||
|
||||
PrioritizeHealthUnitQueue healthQueue;
|
||||
for(UnitList::const_iterator itr = TagUnitMap.begin(); itr != TagUnitMap.end() && healthQueue.size() < count; ++itr)
|
||||
|
|
|
|||
|
|
@ -369,9 +369,9 @@ class Spell
|
|||
void SetTargetMap(uint32 i,uint32 cur,UnitList& TagUnitMap);
|
||||
|
||||
void FillAreaTargets( UnitList& TagUnitMap, float x, float y, float radius, SpellNotifyPushType pushType, SpellTargets spellTargets );
|
||||
void FillRaidOrPartyTargets( UnitList &TagUnitMap, Unit* target, float radius, bool raid, bool withPets, bool withcaster );
|
||||
void FillRaidOrPartyManaPriorityTargets( UnitList &TagUnitMap, Unit* target, float radius, uint32 count, bool raid, bool withPets, bool withcaster );
|
||||
void FillRaidOrPartyHealthPriorityTargets( UnitList &TagUnitMap, Unit* target, float radius, uint32 count, bool raid, bool withPets, bool withcaster );
|
||||
void FillRaidOrPartyTargets( UnitList &TagUnitMap, Unit* member, Unit* center, float radius, bool raid, bool withPets, bool withcaster );
|
||||
void FillRaidOrPartyManaPriorityTargets( UnitList &TagUnitMap, Unit* member, Unit* center, float radius, uint32 count, bool raid, bool withPets, bool withcaster );
|
||||
void FillRaidOrPartyHealthPriorityTargets( UnitList &TagUnitMap, Unit* member, Unit* center, float radius, uint32 count, bool raid, bool withPets, bool withcaster );
|
||||
|
||||
template<typename T> WorldObject* FindCorpseUsing();
|
||||
|
||||
|
|
|
|||
|
|
@ -5788,6 +5788,23 @@ void Aura::HandleSchoolAbsorb(bool apply, bool Real)
|
|||
m_modifier.m_amount += (int32)DoneActualBenefit;
|
||||
}
|
||||
|
||||
// Ice Barrier (remove effect from Shattered Barrier)
|
||||
if(!apply && m_spellProto->SpellIconID == 32 && m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE)
|
||||
{
|
||||
if (!((m_removeMode == AURA_REMOVE_BY_DEFAULT && !m_modifier.m_amount) || m_removeMode == AURA_REMOVE_BY_DISPEL))
|
||||
return;
|
||||
|
||||
if (m_target->HasAura(44745,0)) // Shattered Barrier, rank 1
|
||||
{
|
||||
if(roll_chance_i(50))
|
||||
m_target->CastSpell(m_target, 55080, true, NULL, this);
|
||||
}
|
||||
else if (m_target->HasAura(54787,0)) // Shattered Barrier, rank 2
|
||||
{
|
||||
m_target->CastSpell(m_target, 55080, true, NULL, this);
|
||||
}
|
||||
}
|
||||
|
||||
if (!apply && caster &&
|
||||
// Power Word: Shield
|
||||
m_spellProto->SpellFamilyName == SPELLFAMILY_PRIEST && m_spellProto->Mechanic == MECHANIC_SHIELD &&
|
||||
|
|
@ -6079,8 +6096,18 @@ void Aura::PeriodicTick()
|
|||
if(m_modifier.m_auraname==SPELL_AURA_OBS_MOD_HEALTH)
|
||||
pdamage = uint32(m_target->GetMaxHealth() * amount / 100);
|
||||
else
|
||||
{
|
||||
pdamage = amount;
|
||||
|
||||
// Wild Growth (1/7 - 6 + 2*ramainTicks) %
|
||||
if (m_spellProto->SpellFamilyName == SPELLFAMILY_DRUID && m_spellProto->SpellIconID == 2864)
|
||||
{
|
||||
int32 ticks = m_maxduration/m_modifier.periodictime;
|
||||
int32 remainingTicks = int32(float(m_duration) / m_modifier.periodictime + 0.5);
|
||||
pdamage = int32(pdamage) + int32(amount)*ticks*(-6+2*remainingTicks)/100;
|
||||
}
|
||||
}
|
||||
|
||||
pdamage = pCaster->SpellHealingBonus(m_target, GetSpellProto(), pdamage, DOT, GetStackAmount());
|
||||
|
||||
// This method can modify pdamage
|
||||
|
|
@ -6954,9 +6981,7 @@ void Aura::UnregisterSingleCastAura()
|
|||
{
|
||||
if (IsSingleTarget())
|
||||
{
|
||||
Unit* caster = NULL;
|
||||
caster = GetCaster();
|
||||
if(caster)
|
||||
if(Unit* caster = GetCaster())
|
||||
{
|
||||
caster->GetSingleCastAuras().remove(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1848,6 +1848,12 @@ void Spell::EffectDummy(uint32 i)
|
|||
}
|
||||
return;
|
||||
}
|
||||
// Hungering Cold
|
||||
else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000100000000000))
|
||||
{
|
||||
m_caster->CastSpell(m_caster, 51209, true);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -2537,8 +2543,9 @@ void Spell::EffectHeal( uint32 /*i*/ )
|
|||
Aura *targetAura = NULL;
|
||||
for(Unit::AuraList::const_iterator i = RejorRegr.begin(); i != RejorRegr.end(); ++i)
|
||||
{
|
||||
if((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID
|
||||
&& ((*i)->GetSpellProto()->SpellFamilyFlags == 0x40 || (*i)->GetSpellProto()->SpellFamilyFlags == 0x10) )
|
||||
if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DRUID &&
|
||||
// Regrowth or Rejuvenation 0x40 | 0x10
|
||||
((*i)->GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000050)))
|
||||
{
|
||||
if(!targetAura || (*i)->GetAuraDuration() < targetAura->GetAuraDuration())
|
||||
targetAura = *i;
|
||||
|
|
@ -2560,6 +2567,9 @@ void Spell::EffectHeal( uint32 /*i*/ )
|
|||
|
||||
int32 tickheal = caster->SpellHealingBonus(unitTarget, targetAura->GetSpellProto(), targetAura->GetModifier()->m_amount, DOT);
|
||||
int32 tickcount = GetSpellDuration(targetAura->GetSpellProto()) / targetAura->GetSpellProto()->EffectAmplitude[idx];
|
||||
|
||||
// Glyph of Swiftmend
|
||||
if(!caster->HasAura(54824))
|
||||
unitTarget->RemoveAurasDueToSpell(targetAura->GetId());
|
||||
|
||||
addhealth += tickheal * tickcount;
|
||||
|
|
@ -5026,6 +5036,7 @@ void Spell::EffectScriptEffect(uint32 effIndex)
|
|||
case 61177: // Northrend Inscription Research
|
||||
case 61288: // Minor Inscription Research
|
||||
case 61756: // Northrend Inscription Research (FAST QA VERSION)
|
||||
case 64323: // Book of Glyph Mastery
|
||||
{
|
||||
if(m_caster->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -700,6 +700,13 @@ bool SpellMgr::IsAffectedByMod(SpellEntry const *spellInfo, SpellModifier *mod)
|
|||
return false;
|
||||
}
|
||||
|
||||
struct DoSpellProcEvent
|
||||
{
|
||||
DoSpellProcEvent(SpellProcEventEntry const& _spe) : spe(_spe) {}
|
||||
void operator() (uint32 spell_id) { spellmgr.mSpellProcEventMap[spell_id] = spe; }
|
||||
SpellProcEventEntry const& spe;
|
||||
};
|
||||
|
||||
void SpellMgr::LoadSpellProcEvents()
|
||||
{
|
||||
mSpellProcEventMap.clear(); // need for reload case
|
||||
|
|
@ -734,6 +741,15 @@ void SpellMgr::LoadSpellProcEvents()
|
|||
continue;
|
||||
}
|
||||
|
||||
uint32 first_id = GetFirstSpellInChain(entry);
|
||||
|
||||
if ( first_id != entry )
|
||||
{
|
||||
sLog.outErrorDb("Spell %u listed in `spell_proc_event` is not first rank (%u) in chain", entry, first_id);
|
||||
// prevent loading since it won't have an effect anyway
|
||||
continue;
|
||||
}
|
||||
|
||||
SpellProcEventEntry spe;
|
||||
|
||||
spe.schoolMask = fields[1].GetUInt32();
|
||||
|
|
@ -748,6 +764,10 @@ void SpellMgr::LoadSpellProcEvents()
|
|||
|
||||
mSpellProcEventMap[entry] = spe;
|
||||
|
||||
// also add to high ranks
|
||||
DoSpellProcEvent worker(spe);
|
||||
doForHighRanks(entry,worker);
|
||||
|
||||
if (spell->procFlags==0)
|
||||
{
|
||||
if (spe.procFlags == 0)
|
||||
|
|
@ -769,6 +789,83 @@ void SpellMgr::LoadSpellProcEvents()
|
|||
sLog.outString( ">> Loaded %u extra spell proc event conditions", count );
|
||||
}
|
||||
|
||||
struct DoSpellProcItemEnchant
|
||||
{
|
||||
DoSpellProcItemEnchant(float _ppm) : ppm(_ppm) {}
|
||||
void operator() (uint32 spell_id) { spellmgr.mSpellProcItemEnchantMap[spell_id] = ppm; }
|
||||
float ppm;
|
||||
};
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
uint32 first_id = GetFirstSpellInChain(entry);
|
||||
|
||||
if ( first_id != entry )
|
||||
{
|
||||
sLog.outErrorDb("Spell %u listed in `spell_proc_item_enchant` is not first rank (%u) in chain", entry, first_id);
|
||||
// prevent loading since it won't have an effect anyway
|
||||
continue;
|
||||
}
|
||||
|
||||
mSpellProcItemEnchantMap[entry] = ppmRate;
|
||||
|
||||
// also add to high ranks
|
||||
DoSpellProcItemEnchant worker(ppmRate);
|
||||
doForHighRanks(entry,worker);
|
||||
|
||||
++count;
|
||||
} while( result->NextRow() );
|
||||
|
||||
delete result;
|
||||
|
||||
sLog.outString();
|
||||
sLog.outString( ">> Loaded %u proc item enchant definitions", count );
|
||||
}
|
||||
|
||||
struct DoSpellBonusess
|
||||
{
|
||||
DoSpellBonusess(SpellBonusEntry const& _spellBonus) : spellBonus(_spellBonus) {}
|
||||
void operator() (uint32 spell_id) { spellmgr.mSpellBonusMap[spell_id] = spellBonus; }
|
||||
SpellBonusEntry const& spellBonus;
|
||||
};
|
||||
|
||||
void SpellMgr::LoadSpellBonusess()
|
||||
{
|
||||
mSpellBonusMap.clear(); // need for reload case
|
||||
|
|
@ -791,13 +888,22 @@ void SpellMgr::LoadSpellBonusess()
|
|||
bar.step();
|
||||
uint32 entry = fields[0].GetUInt32();
|
||||
|
||||
const SpellEntry *spell = sSpellStore.LookupEntry(entry);
|
||||
SpellEntry const* spell = sSpellStore.LookupEntry(entry);
|
||||
if (!spell)
|
||||
{
|
||||
sLog.outErrorDb("Spell %u listed in `spell_bonus_data` does not exist", entry);
|
||||
continue;
|
||||
}
|
||||
|
||||
uint32 first_id = GetFirstSpellInChain(entry);
|
||||
|
||||
if ( first_id != entry )
|
||||
{
|
||||
sLog.outErrorDb("Spell %u listed in `spell_bonus_data` is not first rank (%u) in chain", entry, first_id);
|
||||
// prevent loading since it won't have an effect anyway
|
||||
continue;
|
||||
}
|
||||
|
||||
SpellBonusEntry sbe;
|
||||
|
||||
sbe.direct_damage = fields[1].GetFloat();
|
||||
|
|
@ -805,6 +911,11 @@ void SpellMgr::LoadSpellBonusess()
|
|||
sbe.ap_bonus = fields[3].GetFloat();
|
||||
|
||||
mSpellBonusMap[entry] = sbe;
|
||||
|
||||
// also add to high ranks
|
||||
DoSpellBonusess worker(sbe);
|
||||
doForHighRanks(entry,worker);
|
||||
|
||||
} while( result->NextRow() );
|
||||
|
||||
delete result;
|
||||
|
|
@ -932,12 +1043,50 @@ void SpellMgr::LoadSpellElixirs()
|
|||
|
||||
void SpellMgr::LoadSpellThreats()
|
||||
{
|
||||
sSpellThreatStore.Free(); // for reload
|
||||
mSpellThreatMap.clear(); // need for reload case
|
||||
|
||||
sSpellThreatStore.Load();
|
||||
uint32 count = 0;
|
||||
|
||||
// 0 1
|
||||
QueryResult *result = WorldDatabase.Query("SELECT entry, Threat FROM spell_threat");
|
||||
if( !result )
|
||||
{
|
||||
|
||||
barGoLink bar( 1 );
|
||||
|
||||
bar.step();
|
||||
|
||||
sLog.outString( ">> Loaded %u aggro generating spells", sSpellThreatStore.RecordCount );
|
||||
sLog.outString();
|
||||
sLog.outString( ">> Loaded %u aggro generating spells", count );
|
||||
return;
|
||||
}
|
||||
|
||||
barGoLink bar( result->GetRowCount() );
|
||||
|
||||
do
|
||||
{
|
||||
Field *fields = result->Fetch();
|
||||
|
||||
bar.step();
|
||||
|
||||
uint32 entry = fields[0].GetUInt32();
|
||||
uint16 Threat = fields[1].GetUInt16();
|
||||
|
||||
if (!sSpellStore.LookupEntry(entry))
|
||||
{
|
||||
sLog.outErrorDb("Spell %u listed in `spell_threat` does not exist", entry);
|
||||
continue;
|
||||
}
|
||||
|
||||
mSpellThreatMap[entry] = Threat;
|
||||
|
||||
++count;
|
||||
} while( result->NextRow() );
|
||||
|
||||
delete result;
|
||||
|
||||
sLog.outString();
|
||||
sLog.outString( ">> Loaded %u aggro generating spells", count );
|
||||
}
|
||||
|
||||
bool SpellMgr::IsRankSpellDueToSpell(SpellEntry const *spellInfo_1,uint32 spellId_2) const
|
||||
|
|
@ -2858,16 +3007,11 @@ DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellEntry const* spellproto
|
|||
// Explicit Diminishing Groups
|
||||
switch(spellproto->SpellFamilyName)
|
||||
{
|
||||
case SPELLFAMILY_MAGE:
|
||||
{
|
||||
// Shattered Barrier (triggered so doesn't share with Frost Nova)
|
||||
if (spellproto->SpellFamilyFlags & UI64LIT(0x00000080000))
|
||||
return DIMINISHING_TRIGGER_ROOT;
|
||||
// Frost Nova / Freeze (Water Elemental)
|
||||
else if (spellproto->SpellIconID == 193)
|
||||
return DIMINISHING_CONTROL_ROOT;
|
||||
case SPELLFAMILY_GENERIC:
|
||||
// some generic arena related spells have by some strange reason MECHANIC_TURN
|
||||
if (spellproto->Mechanic == MECHANIC_TURN)
|
||||
return DIMINISHING_NONE;
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_ROGUE:
|
||||
{
|
||||
// Blind
|
||||
|
|
|
|||
|
|
@ -36,8 +36,6 @@ class Player;
|
|||
class Spell;
|
||||
struct SpellModifier;
|
||||
|
||||
extern SQLStorage sSpellThreatStore;
|
||||
|
||||
// only used in code
|
||||
enum SpellCategories
|
||||
{
|
||||
|
|
@ -155,7 +153,9 @@ inline bool IsElementalShield(SpellEntry const *spellInfo)
|
|||
|
||||
inline bool IsExplicitDiscoverySpell(SpellEntry const *spellInfo)
|
||||
{
|
||||
return spellInfo->Effect[0]==SPELL_EFFECT_CREATE_RANDOM_ITEM && spellInfo->Effect[1]==SPELL_EFFECT_SCRIPT_EFFECT;
|
||||
return spellInfo->Effect[0] == SPELL_EFFECT_CREATE_RANDOM_ITEM
|
||||
&& spellInfo->Effect[1] == SPELL_EFFECT_SCRIPT_EFFECT
|
||||
|| spellInfo->Id == 64323; // Book of Glyph Mastery (Effect0==SPELL_EFFECT_SCRIPT_EFFECT without any other data)
|
||||
}
|
||||
|
||||
inline bool IsLootCraftingSpell(SpellEntry const *spellInfo)
|
||||
|
|
@ -447,6 +447,8 @@ typedef UNORDERED_MAP<uint32, SpellBonusEntry> SpellBonusMap;
|
|||
#define ELIXIR_SHATTRATH_MASK 0x8
|
||||
|
||||
typedef std::map<uint32, uint8> SpellElixirMap;
|
||||
typedef std::map<uint32, float> SpellProcItemEnchantMap;
|
||||
typedef std::map<uint32, uint16> SpellThreatMap;
|
||||
|
||||
// Spell script target related declarations (accessed using SpellMgr functions)
|
||||
enum SpellTargetType
|
||||
|
|
@ -626,6 +628,10 @@ inline bool IsProfessionOrRidingSkill(uint32 skill)
|
|||
|
||||
class SpellMgr
|
||||
{
|
||||
friend struct DoSpellBonusess;
|
||||
friend struct DoSpellProcEvent;
|
||||
friend struct DoSpellProcItemEnchant;
|
||||
|
||||
// Constructors
|
||||
public:
|
||||
SpellMgr();
|
||||
|
|
@ -660,6 +666,15 @@ class SpellMgr
|
|||
return SPELL_NORMAL;
|
||||
}
|
||||
|
||||
uint16 GetSpellThreat(uint32 spellid) const
|
||||
{
|
||||
SpellThreatMap::const_iterator itr = mSpellThreatMap.find(spellid);
|
||||
if(itr==mSpellThreatMap.end())
|
||||
return 0;
|
||||
|
||||
return itr->second;
|
||||
}
|
||||
|
||||
// Spell proc events
|
||||
SpellProcEventEntry const* GetSpellProcEvent(uint32 spellId) const
|
||||
{
|
||||
|
|
@ -669,6 +684,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
|
||||
|
|
@ -678,13 +703,7 @@ class SpellMgr
|
|||
SpellBonusMap::const_iterator itr = mSpellBonusMap.find(spellId);
|
||||
if( itr != mSpellBonusMap.end( ) )
|
||||
return &itr->second;
|
||||
// Not found, try lookup for 1 spell rank if exist
|
||||
if (uint32 rank_1 = GetFirstSpellInChain(spellId))
|
||||
{
|
||||
SpellBonusMap::const_iterator itr2 = mSpellBonusMap.find(rank_1);
|
||||
if( itr2 != mSpellBonusMap.end( ) )
|
||||
return &itr2->second;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -725,6 +744,17 @@ class SpellMgr
|
|||
|
||||
SpellChainMapNext const& GetSpellChainNext() const { return mSpellChainsNext; }
|
||||
|
||||
template<typename Worker>
|
||||
void doForHighRanks(uint32 spellid, Worker& worker)
|
||||
{
|
||||
SpellChainMapNext const& nextMap = GetSpellChainNext();
|
||||
for(SpellChainMapNext::const_iterator itr = nextMap.lower_bound(spellid); itr != nextMap.upper_bound(spellid); ++itr)
|
||||
{
|
||||
worker(itr->second);
|
||||
doForHighRanks(itr->second,worker);
|
||||
}
|
||||
}
|
||||
|
||||
// Note: not use rank for compare to spell ranks: spell chains isn't linear order
|
||||
// Use IsHighRankOfSpell instead
|
||||
uint8 GetSpellRank(uint32 spell_id) const
|
||||
|
|
@ -896,6 +926,7 @@ class SpellMgr
|
|||
void LoadSpellScriptTarget();
|
||||
void LoadSpellElixirs();
|
||||
void LoadSpellProcEvents();
|
||||
void LoadSpellProcItemEnchant();
|
||||
void LoadSpellBonusess();
|
||||
void LoadSpellTargetPositions();
|
||||
void LoadSpellThreats();
|
||||
|
|
@ -913,7 +944,9 @@ class SpellMgr
|
|||
SpellLearnSpellMap mSpellLearnSpells;
|
||||
SpellTargetPositionMap mSpellTargetPositions;
|
||||
SpellElixirMap mSpellElixirs;
|
||||
SpellThreatMap mSpellThreatMap;
|
||||
SpellProcEventMap mSpellProcEventMap;
|
||||
SpellProcItemEnchantMap mSpellProcItemEnchantMap;
|
||||
SpellBonusMap mSpellBonusMap;
|
||||
SkillLineAbilityMap mSkillLineAbilityMap;
|
||||
SpellPetAuraMap mSpellPetAuraMap;
|
||||
|
|
|
|||
|
|
@ -803,7 +803,9 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType)
|
|||
|
||||
UnitMods unitMod = UNIT_MOD_DAMAGE_MAINHAND;
|
||||
|
||||
float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType);
|
||||
/* difference in AP between current attack power and base value from DB */
|
||||
float att_pwr_change = GetTotalAttackPowerValue(attType) - GetCreatureInfo()->attackpower;
|
||||
float base_value = GetModifierValue(unitMod, BASE_VALUE) + (att_pwr_change * GetAPMultiplier(attType, false) / 14.0f);
|
||||
float base_pct = GetModifierValue(unitMod, BASE_PCT);
|
||||
float total_value = GetModifierValue(unitMod, TOTAL_VALUE);
|
||||
float total_pct = GetModifierValue(unitMod, TOTAL_PCT);
|
||||
|
|
|
|||
|
|
@ -3895,7 +3895,7 @@ void Unit::RemoveNotOwnSingleTargetAuras()
|
|||
if (aura->GetTarget() != this)
|
||||
{
|
||||
scAuras.erase(iter); // explicitly remove, instead waiting remove in RemoveAura
|
||||
aura->GetTarget()->RemoveAura(aura->GetId(),aura->GetEffIndex());
|
||||
aura->GetTarget()->RemoveAura(aura);
|
||||
iter = scAuras.begin();
|
||||
}
|
||||
else
|
||||
|
|
@ -3904,6 +3904,21 @@ void Unit::RemoveNotOwnSingleTargetAuras()
|
|||
|
||||
}
|
||||
|
||||
void Unit::RemoveAura(Aura* aura)
|
||||
{
|
||||
AuraMap::iterator i = m_Auras.lower_bound(spellEffectPair(aura->GetId(), aura->GetEffIndex()));
|
||||
AuraMap::iterator upperBound = m_Auras.upper_bound(spellEffectPair(aura->GetId(), aura->GetEffIndex()));
|
||||
for (; i != upperBound; ++i)
|
||||
{
|
||||
if (i->second == aura)
|
||||
{
|
||||
RemoveAura(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
sLog.outDebug("Trying to remove aura id %u effect %u by pointer but aura not found on target", aura->GetId(), aura->GetEffIndex());
|
||||
}
|
||||
|
||||
void Unit::RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode)
|
||||
{
|
||||
Aura* Aur = i->second;
|
||||
|
|
@ -4502,8 +4517,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
|||
triggered_spell_id = 25997;
|
||||
break;
|
||||
}
|
||||
// Sweeping Strikes
|
||||
case 12328:
|
||||
// Sweeping Strikes (NPC spells may be)
|
||||
case 18765:
|
||||
case 35429:
|
||||
{
|
||||
|
|
@ -5034,6 +5048,21 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
|||
basepoints0 = GetShieldBlockValue() * triggerAmount / 100;
|
||||
break;
|
||||
}
|
||||
|
||||
// Sweeping Strikes
|
||||
if (dummySpell->Id == 12328)
|
||||
{
|
||||
// prevent chain of triggered spell from same triggered spell
|
||||
if(procSpell && procSpell->Id == 26654)
|
||||
return false;
|
||||
|
||||
target = SelectNearbyTarget();
|
||||
if(!target)
|
||||
return false;
|
||||
|
||||
triggered_spell_id = 26654;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_WARLOCK:
|
||||
|
|
@ -7881,7 +7910,8 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
|
|||
}
|
||||
else // Tundra Stalker
|
||||
{
|
||||
if (pVictim->GetAura(SPELL_AURA_DUMMY, SPELLFAMILY_DEATHKNIGHT, UI64LIT(0x0400000000000000)))
|
||||
// Frost Fever (target debuff)
|
||||
if (pVictim->GetAura(SPELL_AURA_MOD_HASTE, SPELLFAMILY_DEATHKNIGHT, UI64LIT(0x0000000000000000), 0x00000002))
|
||||
DoneTotalMod *= ((*i)->GetModifier()->m_amount+100.0f)/100.0f;
|
||||
break;
|
||||
}
|
||||
|
|
@ -8896,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)
|
||||
|
|
@ -9232,13 +9261,11 @@ bool Unit::isVisibleForOrDetect(Unit const* u, bool detect, bool inVisibleList,
|
|||
|
||||
// NOW ONLY STEALTH CASE
|
||||
|
||||
// stealth and detected and visible for some seconds
|
||||
if (u->GetTypeId() == TYPEID_PLAYER && ((Player*)u)->m_DetectInvTimer > 300 && ((Player*)u)->HaveAtClient(this))
|
||||
return true;
|
||||
|
||||
//if in non-detect mode then invisible for unit
|
||||
//mobs always detect players (detect == true)... return 'false' for those mobs which have (detect == false)
|
||||
//players detect players only in Player::HandleStealthedUnitsDetection()
|
||||
if (!detect)
|
||||
return false;
|
||||
return (u->GetTypeId() == TYPEID_PLAYER) ? ((Player*)u)->HaveAtClient(this) : false;
|
||||
|
||||
// Special cases
|
||||
|
||||
|
|
@ -9254,21 +9281,13 @@ bool Unit::isVisibleForOrDetect(Unit const* u, bool detect, bool inVisibleList,
|
|||
if (u->hasUnitState(UNIT_STAT_STUNNED) && (u != this))
|
||||
return false;
|
||||
|
||||
// Creature can detect target only in aggro radius
|
||||
if(u->GetTypeId() != TYPEID_PLAYER)
|
||||
{
|
||||
//Always invisible from back and out of aggro range
|
||||
bool isInFront = u->isInFrontInMap(this,((Creature const*)u)->GetAttackDistance(this));
|
||||
// set max ditance
|
||||
float visibleDistance = (u->GetTypeId() == TYPEID_PLAYER) ? MAX_PLAYER_STEALTH_DETECT_RANGE : ((Creature const*)u)->GetAttackDistance(this);
|
||||
|
||||
//Always invisible from back (when stealth detection is on), also filter max distance cases
|
||||
bool isInFront = u->isInFrontInMap(this, visibleDistance);
|
||||
if(!isInFront)
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Always invisible from back
|
||||
bool isInFront = u->isInFrontInMap(this,(GetTypeId()==TYPEID_PLAYER || GetCharmerOrOwnerGUID()) ? World::GetMaxVisibleDistanceForPlayer() : World::GetMaxVisibleDistanceForCreature());
|
||||
if(!isInFront)
|
||||
return false;
|
||||
}
|
||||
|
||||
// if doesn't have stealth detection (Shadow Sight), then check how stealthy the unit is, otherwise just check los
|
||||
if(!u->HasAuraType(SPELL_AURA_DETECT_STEALTH))
|
||||
|
|
@ -9276,7 +9295,7 @@ bool Unit::isVisibleForOrDetect(Unit const* u, bool detect, bool inVisibleList,
|
|||
//Calculation if target is in front
|
||||
|
||||
//Visible distance based on stealth value (stealth rank 4 300MOD, 10.5 - 3 = 7.5)
|
||||
float visibleDistance = 10.5f - (GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH)/100.0f);
|
||||
visibleDistance = 10.5f - (GetTotalAuraModifier(SPELL_AURA_MOD_STEALTH)/100.0f);
|
||||
|
||||
//Visible distance is modified by
|
||||
//-Level Diff (every level diff = 1.0f in visible distance)
|
||||
|
|
@ -9290,7 +9309,9 @@ bool Unit::isVisibleForOrDetect(Unit const* u, bool detect, bool inVisibleList,
|
|||
//-Stealth Mod(positive like Master of Deception) and Stealth Detection(negative like paranoia)
|
||||
//based on wowwiki every 5 mod we have 1 more level diff in calculation
|
||||
visibleDistance += (int32(u->GetTotalAuraModifier(SPELL_AURA_MOD_DETECT)) - stealthMod)/5.0f;
|
||||
visibleDistance = visibleDistance > MAX_PLAYER_STEALTH_DETECT_RANGE ? MAX_PLAYER_STEALTH_DETECT_RANGE : visibleDistance;
|
||||
|
||||
// recheck new distance
|
||||
if(visibleDistance <= 0 || !IsWithinDist(u,visibleDistance))
|
||||
return false;
|
||||
}
|
||||
|
|
@ -11710,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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
|
@ -851,6 +852,7 @@ typedef std::set<uint64> GuardianPetList;
|
|||
|
||||
// delay time next attack to prevent client attack animation problems
|
||||
#define ATTACK_DISPLAY_DELAY 200
|
||||
#define MAX_PLAYER_STEALTH_DETECT_RANGE 45.0f // max distance for detection targets by player
|
||||
|
||||
struct SpellProcEventEntry; // used only privately
|
||||
|
||||
|
|
@ -1195,6 +1197,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
|||
|
||||
bool AddAura(Aura *aur);
|
||||
|
||||
void RemoveAura(Aura* aura);
|
||||
void RemoveAura(AuraMap::iterator &i, AuraRemoveMode mode = AURA_REMOVE_BY_DEFAULT);
|
||||
void RemoveAura(uint32 spellId, uint32 effindex, Aura* except = NULL);
|
||||
void RemoveSingleSpellAurasFromStack(uint32 spellId);
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ bool UpdateData::BuildPacket(WorldPacket *packet)
|
|||
|
||||
if (pSize > 100 ) // compress large packets
|
||||
{
|
||||
uint32 destsize = pSize;
|
||||
uint32 destsize = compressBound(pSize);
|
||||
packet->resize( destsize + sizeof(uint32) );
|
||||
|
||||
packet->put<uint32>(0, pSize);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ const char GameObjectInfodstfmt[]="iiissssiifiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";
|
|||
const char ItemPrototypesrcfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiiisiiii";
|
||||
const char ItemPrototypedstfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiiii";
|
||||
const char PageTextfmt[]="isi";
|
||||
const char SpellThreatfmt[]="ii";
|
||||
const char InstanceTemplatesrcfmt[]="iiiiiiiffffs";
|
||||
const char InstanceTemplatedstfmt[]="iiiiiiiffffi";
|
||||
|
||||
|
|
@ -48,7 +47,6 @@ SQLStorage sEquipmentStorage(EquipmentInfofmt,"entry","creature_equip_template")
|
|||
SQLStorage sGOStorage(GameObjectInfosrcfmt, GameObjectInfodstfmt, "entry","gameobject_template");
|
||||
SQLStorage sItemStorage(ItemPrototypesrcfmt, ItemPrototypedstfmt, "entry","item_template");
|
||||
SQLStorage sPageTextStore(PageTextfmt,"entry","page_text");
|
||||
SQLStorage sSpellThreatStore(SpellThreatfmt,"entry","spell_threat");
|
||||
SQLStorage sInstanceTemplate(InstanceTemplatesrcfmt, InstanceTemplatedstfmt, "map","instance_template");
|
||||
|
||||
void SQLStorage::Free ()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8225"
|
||||
#define REVISION_NR "8251"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue