aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/3637_world_spell.sql8
-rw-r--r--sql/world_spell_full.sql10
-rw-r--r--src/game/ObjectMgr.cpp14
-rw-r--r--src/game/Unit.cpp23
4 files changed, 46 insertions, 9 deletions
diff --git a/sql/updates/3637_world_spell.sql b/sql/updates/3637_world_spell.sql
new file mode 100644
index 00000000000..5faa61934b0
--- /dev/null
+++ b/sql/updates/3637_world_spell.sql
@@ -0,0 +1,8 @@
+DELETE FROM `playercreateinfo_spell` WHERE Spell = 56816;
+INSERT INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES
+(0, 6, 56816, 'Rune Strike');
+
+DELETE FROM `spell_proc_event` WHERE `entry`=56816;
+INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
+(56816, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000030, 0, 0, 0); -- Rune Strike
+
diff --git a/sql/world_spell_full.sql b/sql/world_spell_full.sql
index bb50e70e3d7..7da0d4ddd0f 100644
--- a/sql/world_spell_full.sql
+++ b/sql/world_spell_full.sql
@@ -531,6 +531,10 @@ INSERT INTO `spell_target_position` (`id`, `target_map`, `target_position_x`, `t
-- --------
UPDATE `creature_template` SET `flags_extra` = 33 WHERE `entry` = 23576; /*no crush*/
+DELETE FROM `playercreateinfo_spell` WHERE Spell = 56816;
+INSERT INTO `playercreateinfo_spell` (`race`, `class`, `Spell`, `Note`) VALUES
+(0, 6, 56816, 'Rune Strike');
+
-- --------
-- REQUIRED
-- --------
@@ -1440,6 +1444,7 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
(56636, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Taste for Blood (Rank 1)
(56637, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Taste for Blood (Rank 2)
(56638, 0x00, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Taste for Blood (Rank 3)
+(56816, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000030, 0, 0, 0), -- Rune Strike
(56821, 0x00, 8, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Glyph of Sinister Strike
(56822, 0x00, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Rime (Rank 2)
(56834, 0x00, 15, 0x00440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Reaping (Rank 2)
@@ -1578,6 +1583,11 @@ INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `quest_id`, `quest
('29488', '54568', '12670', '1', '3'),
('29501', '54575', '12670', '1', '3');
+DELETE FROM `spell_script_target` WHERE entry IN (52124);
+INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
+(52124, 1, 28655);
+UPDATE `creature_template` SET spell1=52372,spell2=52373,spell3=52374,spell4=52375 WHERE `entry`=28406;
+
-- frostbrood vanquisher
update creature_template set maxhealth = 133525, minhealth = 133525, maxmana = 51360, minmana = 51360, spell1 = 53114, spell2 = 53112, spell3=53110 where entry = 28670;
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index 440ee986f43..52a06ed7e57 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -2293,8 +2293,18 @@ void ObjectMgr::LoadPlayerInfo()
continue;
}
- PlayerInfo* pInfo = &playerInfo[current_race][current_class];
- pInfo->spell.push_back(fields[2].GetUInt32());
+ if(!current_race || !current_class)
+ {
+ uint32 min_race = current_race ? current_race : 1;
+ uint32 max_race = current_race ? current_race + 1 : MAX_RACES;
+ uint32 min_class = current_class ? current_class : 1;
+ uint32 max_class = current_class ? current_class + 1 : MAX_CLASSES;
+ for(uint32 r = min_race; r < max_race; ++r)
+ for(uint32 c = min_class; c < max_class; ++c)
+ playerInfo[r][c].spell.push_back(fields[2].GetUInt32());
+ }
+ else
+ playerInfo[current_race][current_class].spell.push_back(fields[2].GetUInt32());
bar.step();
++count;
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index b901f76a7f3..cd199ee76d2 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9724,12 +9724,21 @@ bool Unit::IsDamageToThreatSpell(SpellEntry const * spellInfo) const
if(!spellInfo)
return false;
- uint32 family = spellInfo->SpellFamilyName;
- uint64 flags = spellInfo->SpellFamilyFlags;
-
- if((family == 5 && flags == 256) || //Searing Pain
- (family == SPELLFAMILY_SHAMAN && flags == SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK))
- return true;
+ switch(spellInfo->SpellFamilyName)
+ {
+ case SPELLFAMILY_WARLOCK:
+ if(spellInfo->SpellFamilyFlags[0] == 0x100) // Searing Pain
+ return true;
+ break;
+ case SPELLFAMILY_SHAMAN:
+ if(spellInfo->SpellFamilyFlags[0] == SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK)
+ return true;
+ break;
+ case SPELLFAMILY_DEATHKNIGHT:
+ if(spellInfo->SpellFamilyFlags[1] == 0x20000000) // Rune Strike
+ return true;
+ break;
+ }
return false;
}
@@ -11718,7 +11727,7 @@ void CharmInfo::InitPetActionBar()
SetActionBar(i,COMMAND_ATTACK - i,ACT_COMMAND);
SetActionBar(i + 7,COMMAND_ATTACK - i,ACT_REACTION);
}
- for(uint32 i = 4; i < 8; ++i)
+ for(uint32 i = 3; i < 7; ++i)
SetActionBar(i,0,ACT_PASSIVE);
}