diff options
5 files changed, 602 insertions, 25 deletions
diff --git a/sql/updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql b/sql/updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql new file mode 100644 index 00000000000..533d3f7a196 --- /dev/null +++ b/sql/updates/auth/2013_03_11_00_auth_rbac_security_level_groups.sql @@ -0,0 +1,2 @@ +-- change secId from int(10)u to tinyint(3)u +ALTER TABLE `rbac_security_level_groups` CHANGE `secId` `secId` tinyint(3) unsigned NOT NULL COMMENT 'Security Level id'; diff --git a/sql/updates/world/2013_03_11_00_world_misc.sql b/sql/updates/world/2013_03_11_00_world_misc.sql new file mode 100644 index 00000000000..58b38397b9f --- /dev/null +++ b/sql/updates/world/2013_03_11_00_world_misc.sql @@ -0,0 +1,18 @@ +SET @BAT := 23959; +SET @BUNNY := 24230; + +UPDATE `creature_template` SET `AIName`='SmartAI', `flags_extra`=`flags_extra`|128 WHERE `entry`=@BUNNY; +UPDATE `creature_template` SET `inhabitType`=4, `AIName`='SmartAI' WHERE `entry`=@BAT; + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@BAT,@BUNNY) AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@BAT,0,0,0,38,0,100,0,0,1,0,0,69,1,0,0,0,0,0,19,@BUNNY,50,0,0,0,0,0,'Darkclaw Bat - On data set 0 1 - Move to position'), +(@BAT,0,1,0,34,0,100,0,0,1,0,0,45,0,1,0,0,0,0,19,@BUNNY,5,0,0,0,0,0,'Darkclaw Bat - On movement inform - Spellcast Scare the Guano Out of Them!: Cast Spell 1 On Target''s Master'), +(@BUNNY,0,0,1,54,0,100,0,0,0,0,0,103,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Firecracker Bunny - Just summoned - Root'), +(@BUNNY,0,1,0,61,0,100,0,0,0,0,0,45,0,1,0,0,0,0,19,@BAT,50,0,0,0,0,0,'Firecracker Bunny - Just summoned - Set data 0 1 Darkclaw Bat'), +(@BUNNY,0,2,0,38,0,100,0,0,1,0,0,11,62068,0,0,0,0,0,1,0,0,0,0,0,0,0,'Firecracker Bunny - On spellhit Scare the Guano Out of Them!: Cast Spell 1 On Target''s Master - Crosscast owner Scare the Guano Out of Them!: Cast Spell 1 On Target''s Master'), +(@BUNNY,0,3,0,8,0,100,0,62068,0,0,0,86,43307,0,23,0,0,0,0,0,0,0,0,0,0,0,'Firecracker Bunny - On spellhit Scare the Guano Out of Them!: Cast Spell 1 On Target''s Master - Crosscast owner Scare the Guano Out of Them!: Cast Spell 1 On Target''s Master'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=43307; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13,1,43307,0,0,31,0,3,@BUNNY,0,0,0,'','Spell Scare the Guano Out of Them!: Summon Darkclaw Guano targets Firecracker Bunny'); diff --git a/sql/updates/world/2013_03_11_00_world_playercreateinfo_spell.sql b/sql/updates/world/2013_03_11_00_world_playercreateinfo_spell.sql new file mode 100644 index 00000000000..3a8f0501916 --- /dev/null +++ b/sql/updates/world/2013_03_11_00_world_playercreateinfo_spell.sql @@ -0,0 +1,558 @@ +-- playercreateinfo_spell +TRUNCATE TABLE `playercreateinfo_spell`; + +ALTER TABLE `playercreateinfo_spell` + CHANGE `race` `racemask` INT(10) UNSIGNED DEFAULT 0 NOT NULL, + CHANGE `class` `classmask` INT(10) UNSIGNED DEFAULT 0 NOT NULL; + +ALTER TABLE `playercreateinfo_spell_custom` + CHANGE `race` `racemask` INT(10) UNSIGNED DEFAULT 0 NOT NULL, + CHANGE `class` `classmask` INT(10) UNSIGNED DEFAULT 0 NOT NULL; + +INSERT INTO `playercreateinfo_spell` (`racemask`, `classmask`, `Spell`, `Note`) VALUES +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Dranei +-- Classes: Warrior +(0x4FF, 0x1, 78, "Heroic Strike"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 81, "Dodge"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Shaman +(0x6FF, 0x43, 107, "Block"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Hunter, Death Knight +(0x6FF, 0x25, 196, "One-Handed Axes"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Priest, Shaman, Druid +(0x6FF, 0x453, 198, "One-Handed Maces"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Death Knight +(0x6FF, 0x27, 201, "One-Handed Swords"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 203, "Unarmed"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 204, "Defense"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 522, "SPELLDEFENSE (DND)"), +-- Races: Human, Dwarf, Night elf, Gnome, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x44D, 0x5FF, 668, "Language Common"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 1843, "Disarm"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 2382, "Generic"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Dranei +-- Classes: Warrior +(0x4FF, 0x1, 2457, "Battle Stance"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 2479, "Honorless Target"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 3050, "Detect"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 3365, "Opening"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Dranei +-- Classes: Warrior +(0x4FF, 0x1, 5301, "Defensive State (DND)"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 6233, "Closing"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 6246, "Closing"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 6247, "Opening"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 6477, "Opening"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 6478, "Opening"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 6603, "Attack"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 7266, "Duel"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 7267, "Grovel"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 7355, "Stuck"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 8386, "Attacking"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Death Knight +(0x6FF, 0x23, 8737, "Mail"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Death Knight, Shaman, Druid +(0x6FF, 0x46F, 9077, "Leather"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 9078, "Cloth"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Shaman +(0x6FF, 0x43, 9116, "Shield"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 9125, "Generic"), +-- Races: Human +-- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Mage, Warlock +(0x1, 0x1BB, 20597, "Sword Specialization"), +-- Races: Human +-- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Mage, Warlock +(0x1, 0x1BB, 20598, "The Human Spirit"), +-- Races: Human +-- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Mage, Warlock +(0x1, 0x1BB, 20599, "Diplomacy"), +-- Races: Human +-- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Mage, Warlock +(0x1, 0x1BB, 20864, "Mace Specialization"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 21651, "Opening"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 21652, "Closing"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 22027, "Remove Insignia"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 22810, "Opening - No Text"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Dranei +-- Classes: Warrior +(0x4FF, 0x1, 32215, "Victorious State"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 45927, "Summon Friend"), +-- Races: Human +-- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Mage, Warlock +(0x1, 0x1BB, 58985, "Perception"), +-- Races: Human +-- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Mage, Warlock +(0x1, 0x1BB, 59752, "Every Man for Himself"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5FF, 61437, "Opening"), +-- Races: Human, Dwarf, Tauren, Dranei +-- Classes: Warrior, Paladin +(0x425, 0x3, 199, "Two-Handed Maces"), +-- Races: Human, Dwarf, Blood elf, Dranei +-- Classes: Paladin +(0x605, 0x2, 635, "Holy Light"), +-- Races: Human, Dwarf, Blood elf, Dranei +-- Classes: Paladin +(0x605, 0x2, 21084, "Seal of Righteousness"), +-- Races: Human, Dwarf, Blood elf, Dranei +-- Classes: Paladin +(0x605, 0x2, 27762, "Libram"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Warrior, Hunter, Rogue, Warlock, Druid +(0x2DF, 0x50D, 1180, "Daggers"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Rogue +(0x2DF, 0x8, 1752, "Sinister Strike"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Rogue +(0x2DF, 0x8, 2098, "Eviscerate"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Warrior, Rogue +(0x2DF, 0x9, 2567, "Thrown"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Warrior, Rogue +(0x2DF, 0x9, 2764, "Throw"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Rogue +(0x2DF, 0x8, 16092, "Defensive State (DND)"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf +-- Classes: Rogue +(0x2DF, 0x8, 21184, "Rogue Passive (DND)"), +-- Races: Human, Dwarf, Night elf, Undead, Troll, Blood elf, Dranei +-- Classes: Priest +(0x69D, 0x10, 585, "Smite"), +-- Races: Human, Dwarf, Night elf, Undead, Troll, Blood elf, Dranei +-- Classes: Priest +(0x69D, 0x10, 2050, "Lesser Heal"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf, Dranei +-- Classes: Priest, Mage, Warlock +(0x6DF, 0x190, 5009, "Wands"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Blood elf, Dranei +-- Classes: Priest, Mage, Warlock +(0x6DF, 0x190, 5019, "Shoot"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Hunter, Death Knight +(0x6FF, 0x25, 197, "Two-Handed Axes"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 200, "Polearms"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Warrior, Paladin, Death Knight +(0x6FF, 0x23, 202, "Two-Handed Swords"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Rogue, Death Knight +(0x6FF, 0x28, 674, "Dual Wield"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 750, "Plate Mail"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 3127, "Parry"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 3275, "Linen Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 3276, "Heavy Linen Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 3277, "Wool Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 3278, "Heavy Wool Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 7928, "Silk Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 7929, "Heavy Silk Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 7934, "Anti-Venom"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 10840, "Mageweave Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 10841, "Heavy Mageweave Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 10846, "First Aid"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 18629, "Runecloth Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 18630, "Heavy Runecloth Bandage"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 33391, "Journeyman Riding"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 45462, "Plague Strike"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 45477, "Icy Touch"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 45902, "Blood Strike"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 45903, "Offensive State (DND)"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 47541, "Death Coil"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 48266, "Blood Presence"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 49410, "Forceful Deflection"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 49576, "Death Grip"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 52665, "Sigil"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 59879, "Blood Plague"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 59921, "Frost Fever"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Death Knight +(0x6FF, 0x20, 61455, "Runic Focus"), +-- Races: Human, Undead, Gnome, Troll, Blood elf, Dranei +-- Classes: Mage +(0x6D1, 0x80, 133, "Fireball"), +-- Races: Human, Undead, Gnome, Troll, Blood elf, Dranei +-- Classes: Mage +(0x6D1, 0x80, 168, "Frost Armor"), +-- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Blood elf, Dranei +-- Classes: Priest, Shaman, Mage, Warlock, Druid +(0x6FF, 0x5D0, 227, "Staves"), +-- Races: Human, Orc, Undead, Gnome, Blood elf +-- Classes: Warlock +(0x253, 0x100, 686, "Shadow Bolt"), +-- Races: Human, Orc, Undead, Gnome, Blood elf +-- Classes: Warlock +(0x253, 0x100, 687, "Demon Skin"), +-- Races: Human, Orc, Undead, Gnome, Blood elf +-- Classes: Warlock +(0x253, 0x100, 58284, "Chaos Bolt Passive"), +-- Races: Orc, Undead, Tauren, Troll, Blood elf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid +(0x2B2, 0x5FF, 669, "Language Orcish"), +-- Races: Orc +-- Classes: Warrior, Hunter, Rogue, Death Knight +(0x2, 0x2D, 20572, "Blood Fury"), +-- Races: Orc +-- Classes: Warrior, Hunter, Rogue, Death Knight, Shaman, Warlock +(0x2, 0x16D, 20573, "Hardiness"), +-- Races: Orc +-- Classes: Warrior, Hunter, Rogue, Death Knight, Shaman, Warlock +(0x2, 0x16D, 20574, "Axe Specialization"), +-- Races: Orc +-- Classes: Warrior, Rogue, Shaman +(0x2, 0x49, 21563, "Command"), +-- Races: Orc, Dwarf, Night elf, Tauren, Troll, Blood elf, Dranei +-- Classes: Hunter +(0x6AE, 0x4, 75, "Auto Shot"), +-- Races: Orc, Night elf, Troll, Blood elf +-- Classes: Hunter +(0x28A, 0x4, 264, "Bows"), +-- Races: Orc, Dwarf, Night elf, Tauren, Troll, Blood elf, Dranei +-- Classes: Hunter +(0x6AE, 0x4, 2973, "Raptor Strike"), +-- Races: Orc, Dwarf, Night elf, Tauren, Troll, Blood elf, Dranei +-- Classes: Hunter +(0x6AE, 0x4, 13358, "Defensive State (DND)"), +-- Races: Orc +-- Classes: Hunter +(0x2, 0x4, 20576, "Command"), +-- Races: Orc, Dwarf, Night elf, Tauren, Troll, Blood elf, Dranei +-- Classes: Hunter +(0x6AE, 0x4, 24949, "Defensive State 2 (DND)"), +-- Races: Orc, Dwarf, Night elf, Tauren, Troll, Blood elf, Dranei +-- Classes: Hunter +(0x6AE, 0x4, 34082, "Advantaged State (DND)"), +-- Races: Orc +-- Classes: Death Knight +(0x2, 0x20, 54562, "Command"), +-- Races: Orc, Tauren, Troll, Dranei +-- Classes: Shaman +(0x4A2, 0x40, 331, "Healing Wave"), +-- Races: Orc, Tauren, Troll, Dranei +-- Classes: Shaman +(0x4A2, 0x40, 403, "Lightning Bolt"), +-- Races: Orc, Tauren, Troll, Dranei +-- Classes: Shaman +(0x4A2, 0x40, 27763, "Totem"), +-- Races: Orc +-- Classes: Shaman +(0x2, 0x40, 33697, "Blood Fury"), +-- Races: Orc +-- Classes: Warlock +(0x2, 0x100, 20575, "Command"), +-- Races: Orc +-- Classes: Warlock +(0x2, 0x100, 33702, "Blood Fury"), +-- Races: Dwarf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight +(0x4, 0x3F, 672, "Language Dwarven"), +-- Races: Dwarf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight +(0x4, 0x3F, 2481, "Find Treasure"), +-- Races: Dwarf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight +(0x4, 0x3F, 20594, "Stoneform"), +-- Races: Dwarf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight +(0x4, 0x3F, 20595, "Gun Specialization"), +-- Races: Dwarf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight +(0x4, 0x3F, 20596, "Frost Resistance"), +-- Races: Dwarf +-- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight +(0x4, 0x3F, 59224, "Mace Specialization"), +-- Races: Dwarf, Tauren +-- Classes: Hunter +(0x24, 0x4, 266, "Guns"), +-- Races: Night elf +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Druid +(0x8, 0x43D, 671, "Language Darnassian"), +-- Races: Night elf +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Druid +(0x8, 0x43D, 20582, "Quickness"), +-- Races: Night elf +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Druid +(0x8, 0x43D, 20583, "Nature Resistance"), +-- Races: Night elf +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Druid +(0x8, 0x43D, 20585, "Wisp Spirit"), +-- Races: Night elf +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Druid +(0x8, 0x43D, 58984, "Shadowmelt"), +-- Races: Night elf, Tauren +-- Classes: Druid +(0x28, 0x400, 5176, "Wrath"), +-- Races: Night elf, Tauren +-- Classes: Druid +(0x28, 0x400, 5185, "Healing Touch"), +-- Races: Night elf, Tauren +-- Classes: Druid +(0x28, 0x400, 27764, "Fetish"), +-- Races: Undead +-- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock +(0x10, 0x1B9, 5227, "Underwater Breathing"), +-- Races: Undead +-- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock +(0x10, 0x1B9, 7744, "Will of the Forsaken"), +-- Races: Undead +-- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock +(0x10, 0x1B9, 17737, "Language Gutterspeak"), +-- Races: Undead +-- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock +(0x10, 0x1B9, 20577, "Cannibalize"), +-- Races: Undead +-- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock +(0x10, 0x1B9, 20579, "Shadow Resistance"), +-- Races: Tauren +-- Classes: Warrior, Hunter, Death Knight, Shaman, Druid +(0x20, 0x465, 670, "Language Taurahe"), +-- Races: Tauren +-- Classes: Warrior, Hunter, Death Knight, Shaman, Druid +(0x20, 0x465, 20549, "War Stomp"), +-- Races: Tauren +-- Classes: Warrior, Hunter, Death Knight, Shaman, Druid +(0x20, 0x465, 20550, "Endurance"), +-- Races: Tauren +-- Classes: Warrior, Hunter, Death Knight, Shaman, Druid +(0x20, 0x465, 20551, "Nature Resistance"), +-- Races: Tauren +-- Classes: Warrior, Hunter, Death Knight, Shaman, Druid +(0x20, 0x465, 20552, "Cultivation"), +-- Races: Gnome +-- Classes: Warrior, Rogue, Death Knight, Mage, Warlock +(0x40, 0x1A9, 7340, "Language Gnomish"), +-- Races: Gnome +-- Classes: Warrior, Rogue, Death Knight, Mage, Warlock +(0x40, 0x1A9, 20589, "Escape Artist"), +-- Races: Gnome +-- Classes: Warrior, Rogue, Death Knight, Mage, Warlock +(0x40, 0x1A9, 20591, "Expansive Mind"), +-- Races: Gnome +-- Classes: Warrior, Rogue, Death Knight, Mage, Warlock +(0x40, 0x1A9, 20592, "Arcane Resistance"), +-- Races: Gnome +-- Classes: Warrior, Rogue, Death Knight, Mage, Warlock +(0x40, 0x1A9, 20593, "Engineering Specialization"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 7341, "Language Troll"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 20555, "Regeneration"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 20557, "Beast Slaying"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 20558, "Throwing Specialization"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 26290, "Bow Specialization"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 26297, "Berserking"), +-- Races: Troll +-- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage +(0x80, 0xFD, 58943, "Da Voodoo Shuffle"), +-- Races: Blood elf +-- Classes: Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock +(0x200, 0x1BE, 813, "Language Thalassian"), +-- Races: Blood elf +-- Classes: Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock +(0x200, 0x1BE, 822, "Magic Resistance"), +-- Races: Blood elf +-- Classes: Paladin, Hunter, Priest, Mage, Warlock +(0x200, 0x196, 28730, "Arcane Torrent"), +-- Races: Blood elf +-- Classes: Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock +(0x200, 0x1BE, 28877, "Arcane Affinity"), +-- Races: Blood elf +-- Classes: Rogue +(0x200, 0x8, 25046, "Arcane Torrent"), +-- Races: Blood elf +-- Classes: Death Knight +(0x200, 0x20, 50613, "Arcane Torrent"), +-- Races: Dranei +-- Classes: Warrior, Paladin, Hunter, Death Knight +(0x400, 0x27, 6562, "Heroic Presence"), +-- Races: Dranei +-- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Shaman, Mage +(0x400, 0xF7, 28875, "Gemcutting"), +-- Races: Dranei +-- Classes: Warrior +(0x400, 0x1, 28880, "Gift of the Naaru"), +-- Races: Dranei +-- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Shaman, Mage +(0x400, 0xF7, 29932, "Language Draenei"), +-- Races: Dranei +-- Classes: Mage +(0x400, 0x80, 59541, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Paladin +(0x400, 0x2, 59542, "Gift of the Naaru"), +-- Races: Dranei +-- Classes: Hunter +(0x400, 0x4, 5011, "Crossbows"), +-- Races: Dranei +-- Classes: Shaman +(0x400, 0x40, 59540, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Hunter +(0x400, 0x4, 59543, "Gift of the Naaru"), +-- Races: Dranei +-- Classes: Priest, Shaman, Mage +(0x400, 0xD0, 28878, "Inspiring Presence"), +-- Races: Dranei +-- Classes: Death Knight +(0x400, 0x20, 59539, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Priest +(0x400, 0x10, 59544, "Gift of the Naaru"), +-- Races: Dranei +-- Classes: Priest +(0x400, 0x10, 59538, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Hunter +(0x400, 0x4, 59536, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Death Knight +(0x400, 0x20, 59545, "Gift of the Naaru"), +-- Races: Dranei +-- Classes: Paladin +(0x400, 0x2, 59535, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Shaman +(0x400, 0x40, 59547, "Gift of the Naaru"), +-- Races: Dranei +-- Classes: Warrior +(0x400, 0x1, 59221, "Shadow Resistance"), +-- Races: Dranei +-- Classes: Mage +(0x400, 0x80, 59548, "Gift of the Naaru"), +-- Races: Human, Dwarf, Blood elf, Dranei +-- Classes: Paladin +(0x605, 0x2, 60091, "Judgement Anti-Parry/Dodge Passive"), +-- Races: All +-- Classes: Death Knight +(0x0, 0x20, 56816, "Rune Strike"), +-- Races: All +-- Classes: Shaman +(0x0, 0x40, 75461, "Flame Shock Passive"), +-- Races: All +-- Classes: Warlock +(0x0, 0x100, 75445, "Demonic Immolate"); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index f3762b0aa9d..12bc3f741f5 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3141,7 +3141,7 @@ void ObjectMgr::LoadPlayerInfo() uint32 oldMSTime = getMSTime(); std::string tableName = sWorld->getBoolConfig(CONFIG_START_ALL_SPELLS) ? "playercreateinfo_spell_custom" : "playercreateinfo_spell"; - QueryResult result = WorldDatabase.PQuery("SELECT race, class, Spell FROM %s", tableName.c_str()); + QueryResult result = WorldDatabase.PQuery("SELECT racemask, classmask, Spell FROM %s", tableName.c_str()); if (!result) { @@ -3154,38 +3154,36 @@ void ObjectMgr::LoadPlayerInfo() do { Field* fields = result->Fetch(); + uint32 raceMask = fields[0].GetUInt32(); + uint32 classMask = fields[1].GetUInt32(); - uint32 current_race = fields[0].GetUInt8(); - if (current_race >= MAX_RACES) + if (raceMask != 0 && !(raceMask & RACEMASK_ALL_PLAYABLE)) { - sLog->outError(LOG_FILTER_SQL, "Wrong race %u in `playercreateinfo_spell` table, ignoring.", current_race); + sLog->outError(LOG_FILTER_SQL, "Wrong race mask %u in `playercreateinfo_spell` table, ignoring.", raceMask); continue; } - uint32 current_class = fields[1].GetUInt8(); - if (current_class >= MAX_CLASSES) + if (classMask != 0 && !(classMask & CLASSMASK_ALL_PLAYABLE)) { - sLog->outError(LOG_FILTER_SQL, "Wrong class %u in `playercreateinfo_spell` table, ignoring.", current_class); + sLog->outError(LOG_FILTER_SQL, "Wrong class mask %u in `playercreateinfo_spell` table, ignoring.", classMask); continue; } - if (!current_race || !current_class) + for (uint32 raceIndex = RACE_HUMAN; raceIndex < MAX_RACES; ++raceIndex) { - 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) - if (PlayerInfo* info = _playerInfo[r][c]) - info->spell.push_back(fields[2].GetUInt32()); - } - else if (PlayerInfo* info = _playerInfo[current_race][current_class]) - info->spell.push_back(fields[2].GetUInt32()); - else - { - sLog->outError(LOG_FILTER_SQL, "Wrong race: %u, class: %u combination in `playercreateinfo_spell` table, ignoring.", current_race, current_class); - continue; + if (raceMask == 0 || ((1 << (raceIndex - 1)) & raceMask)) + { + for (uint32 classIndex = CLASS_WARRIOR; classIndex < MAX_CLASSES; ++classIndex) + { + if (classMask == 0 || ((1 << (classIndex - 1)) & classMask)) + { + if (PlayerInfo* info = _playerInfo[raceIndex][classIndex]) + info->spell.push_back(fields[2].GetUInt32()); + else + sLog->outError(LOG_FILTER_SQL, "Racemask/classmask (%u/%u) combination was found containing an invalid race/class combination (%u/%u) in `playercreateinfo_spell` (Spell %u), ignoring.", raceMask, classMask, raceIndex, classIndex, fields[2].GetUInt32()); + } + } + } } ++count; diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 84c4359365f..6abde6cac04 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -328,14 +328,15 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData) Player* receiver = sObjectAccessor->FindPlayerByName(to); if (!receiver || (!HasPermission(RBAC_PERM_CAN_FILTER_WHISPERS) && - receiver->GetSession()->HasPermission(RBAC_PERM_CAN_FILTER_WHISPERS) && !receiver->isAcceptWhispers() && !receiver->IsInWhisperWhiteList(sender->GetGUID()))) { SendPlayerNotFoundNotice(to); return; } - if (GetPlayer()->GetTeam() != receiver->GetTeam() && !HasPermission(RBAC_PERM_TWO_SIDE_INTERACTION_CHAT)) + // @todo: check only sender permission and add receiver to whiteList if receiver does not have the permission + if (GetPlayer()->GetTeam() != receiver->GetTeam() && !HasPermission(RBAC_PERM_TWO_SIDE_INTERACTION_CHAT) && + !receiver->GetSession()->HasPermission(RBAC_PERM_TWO_SIDE_INTERACTION_CHAT)) { SendWrongFactionNotice(); return; |