aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/TextTables.txt92
-rw-r--r--sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_434.sql777
-rw-r--r--sql/updates/world/2013_03_15_01_world_smart_scripts.sql12
-rw-r--r--sql/updates/world/2013_03_15_01_world_trinity_strings.sql3
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h4
-rw-r--r--src/server/game/Entities/Player/Player.h1
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp13
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp22
-rw-r--r--src/server/game/Miscellaneous/Language.h3
-rw-r--r--src/server/game/Server/WorldSession.cpp3
-rw-r--r--src/server/scripts/Commands/cs_message.cpp20
11 files changed, 61 insertions, 889 deletions
diff --git a/doc/TextTables.txt b/doc/TextTables.txt
deleted file mode 100644
index fa8aebdb5d3..00000000000
--- a/doc/TextTables.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-=========================================
-Texts Documentation
-=========================================
-
-=========================================================
-WARNING: THIS DOCUMENTATION IS NOT ALWAYS UP TO DATE.
-FOR MORE UP-TO-DATE INFORMATION, CHECK THE TRINITY WIKI.
-=========================================================
-
-Scriptdev2 Revision 695 introduces a new format for using texts in EventAI and SD2 Scripts.
-This information relates to the *_texts tables located in the ScriptDev Database.
-
-Any script can at any time access and use text from any of the three text tables, as long as the entry does in fact exist.
-Custom scripters are adviced to store their text data in custom_texts.
-
-The different tables has ranges of entries allowed for that table.
-Reserved EventAI in Mangos entry -1 -> -999999
-script_texts: entry -1000000 -> -1999999
-custom_texts: entry -2000000 -> -2999999
-Any entry out of range for that table will display a startup error.
-
-
-=========================================
-Basic Structure of script_texts and custom_texts
-=========================================
-Below is a the list of current fields within the texts tables.
-
-Field_Name Description
------------------------------------------------------------
-entry This value is mearly an NEGATIVE identifier of the current text number. Required for sql queries.
-content_default This is the actual text presented in the default language (English).
-
-content_loc1 This is the actual text presented in the Localization #1 Clients (Korean)
-content_loc2 This is the actual text presented in the Localization #2 Clients (French)
-content_loc3 This is the actual text presented in the Localization #3 Clients (German)
-content_loc4 This is the actual text presented in the Localization #4 Clients (Chinese)
-content_loc5 This is the actual text presented in the Localization #5 Clients (Taiwanese)
-content_loc6 This is the actual text presented in the Localization #6 Clients (Spanish)
-content_loc7 This is the actual text presented in the Localization #7 Clients (Spanish Mexico)
-content_loc8 This is the actual text presented in the Localization #8 Clients (Russian)
-
-sound This value is the Sound ID that corresponds to the actual text used (Defined in SoundEntries.dbc).
-type Variables used to define type of text (Say/Yell/Textemote/Whisper).
-language This value is the Language that the text is native in (Defined in Languages.dbc).
-emote Value from enum Emote (defined in Emotes.dbc). Only source of text will play this emote (not target, if target are defined in DoScriptText)
-comment This is a comment regarding the text entry (For ACID, accepted format is to use Creature ID of NPC using it).
-
-Note: Fields `content_loc1` to `content_loc8` are NULL values by default and are handled by seperate localization projects.
-
-
-=========================================
-Text Types (type)
-=========================================
-Below is the list of current Text types that texts tables can handle. These were previously seperate Actions in ACID.
-
-# Internal Name Description
------------------------------------------------------------
-0 CHAT_TYPE_SAY This type sets the text to be displayed as a Say (Speech Bubble).
-1 CHAT_TYPE_YELL This type sets the text to be displayed as a Yell (Red Speech Bubble) and usually has a matching Sound ID.
-2 CHAT_TYPE_TEXT_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log.
-3 CHAT_TYPE_BOSS_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log (Used only for specific Bosses).
-4 CHAT_TYPE_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log.
-5 CHAT_TYPE_BOSS_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log (Used only for specific Bosses).
-6 CHAT_TYPE_ZONE_YELL Same as CHAT_TYPE_YELL but will display to all players in current zone.
-
-
-=========================================
-Language Types (language)
-=========================================
-Below is the list of current Language types that are allowed.
-This is the Race Language that the text is native to (So it will display properly)
-
-# Internal Name Description
------------------------------------------------------------
-0 UNIVERSAL Text in this language is understood by ALL Races.
-1 ORCISH Text in this language is understood ONLY by Horde Races.
-2 DARNASSIAN Text in this language is understood ONLY by the Night Elf Race.
-3 TAURAHE Text in this language is understood ONLY by the Tauren Race.
-6 DWARVISH Text in this language is understood ONLY by the Dwarf Race.
-7 COMMON Text in this language is understood ONLY by Alliance Races.
-8 DEMONIC Text in this language is understood ONLY by the Demon Race (Not Implimented).
-9 TITAN This language was used by Sargeras to speak with other Titians (Not Implemented).
-10 THALASSIAN Text in this language is understood ONLY by the Blood Elf Race.
-11 DRACONIC Text in this language is understood ONLY by the Dragon Race.
-12 KALIMAG Text will display as Kalimag (not readable by players, language of all elementals)
-13 GNOMISH Text in this language is understood ONLY by the Gnome Race.
-14 TROLL Text in this language is understood ONLY by the Troll Race.
-33 GUTTERSPEAK Text in this language is understood ONLY by the Undead Race.
-35 DRAENEI Text in this language is understood ONLY by the Draenai Race.
-36 ZOMBIE (not currently used?)
-37 GNOMISH BINARY Binary language used by Alliance when drinking Binary Brew
-38 GOBLIN BINARY Binary language used by Horce when drinking Binary Brew \ No newline at end of file
diff --git a/sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_434.sql b/sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_434.sql
deleted file mode 100644
index 7dadc47a3d0..00000000000
--- a/sql/updates/world/2013_03_12_00_world_playercreateinfo_spell_434.sql
+++ /dev/null
@@ -1,777 +0,0 @@
-TRUNCATE TABLE `playercreateinfo_spell`;
-
--- Commented out as the 3.3.5 file already takes care of altering the database.
--- 4.3.4 playercreateinfo_spell_custom doesn't have more data that what the 3.3.5 table has - leave it
---
--- ALTER TABLE `playercreateinfo_spell`
--- 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: All
--- Classes: Warrior, Paladin, Hunter, Death Knight
-(0x0, 0x27, 202, "Two-Handed Swords"),
--- Races: All
--- Classes: Warrior, Paladin, Hunter, Rogue, Death Knight, Shaman
-(0x0, 0x6F, 196, "One-Handed Axes"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 2457, "Battle Stance"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 88161, "Strike"),
--- Races: All
--- Classes: Warrior, Hunter, Rogue
-(0x0, 0xD, 5011, "Crossbows"),
--- Races: All
--- Classes: Warrior, Rogue
-(0x0, 0x9, 3018, "Shoot"),
--- Races: All
--- Classes: Warrior, Paladin, Hunter, Death Knight, Shaman
-(0x0, 0x67, 197, "Two-Handed Axes"),
--- Races: All
--- Classes: Warrior, Hunter, Rogue, Priest, Shaman, Mage, Warlock, Druid
-(0x0, 0x5DD, 1180, "Daggers"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 45927, "Summon Friend"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 6478, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 6603, "Auto Attack"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 22027, "Remove Insignia"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 22810, "Opening - No Text"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 21651, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 21652, "Closing"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 2382, "Generic"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 3365, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 3050, "Detect"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 9125, "Generic"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 8386, "Attacking"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 7266, "Duel"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 7267, "Grovel"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 7355, "Stuck"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 6233, "Closing"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 6246, "Closing"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 6247, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 6477, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 61437, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 68398, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 96220, "Opening"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 203, "Unarmed"),
--- Races: Human
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x1, 0x1BF, 20864, "Mace Specialization"),
--- Races: Human
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x1, 0x1BF, 20599, "Diplomacy"),
--- Races: Human
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x1, 0x1BF, 20597, "Sword Specialization"),
--- Races: Human
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x1, 0x1BF, 20598, "The Human Spirit"),
--- Races: Human
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x1, 0x1BF, 59752, "Every Man for Himself"),
--- Races: Human
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x1, 0x1BF, 79738, "Languages"),
--- Races: All
--- Classes: Warrior, Paladin, Death Knight
-(0x0, 0x23, 49410, "Forceful Deflection"),
--- Races: All
--- Classes: Warrior, Paladin, Death Knight, Shaman, Druid
-(0x0, 0x463, 199, "Two-Handed Maces"),
--- Races: All
--- Classes: Warrior, Hunter, Rogue, Shaman, Druid
-(0x0, 0x44D, 15590, "Fist Weapons"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 76268, "Armor Skills"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 76290, "Weapon Skills"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 88163, "Attack"),
--- Races: All
--- Classes: Warrior, Paladin, Hunter, Death Knight, Druid
-(0x0, 0x427, 200, "Polearms"),
--- Races: Human, Dwarf, Night elf, Gnome, Dranei, Worgen
--- Classes: All
-(0x20044D, 0x0, 668, "Language Common"),
--- Races: All
--- Classes: Warrior, Hunter, Priest, Shaman, Mage, Warlock, Druid
-(0x0, 0x5D5, 227, "Staves"),
--- Races: All
--- Classes: Warrior, Paladin, Shaman
-(0x0, 0x43, 9116, "Shield"),
--- Races: All
--- Classes: Warrior, Paladin, Death Knight
-(0x0, 0x23, 8737, "Mail"),
--- Races: All
--- Classes: Warrior, Paladin, Hunter, Rogue, Death Knight, Shaman, Druid
-(0x0, 0x46F, 9077, "Leather"),
--- Races: All
--- Classes: Warrior, Hunter, Rogue
-(0x0, 0xD, 264, "Bows"),
--- Races: All
--- Classes: Warrior, Hunter, Rogue
-(0x0, 0xD, 266, "Guns"),
--- Races: All
--- Classes: Warrior, Paladin, Shaman
-(0x0, 0x43, 107, "Block"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 81, "Dodge"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 32215, "Victorious State"),
--- Races: All
--- Classes: Warrior
-(0x0, 0x1, 5301, "Defensive State (DND)"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 204, "Defense"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 522, "SPELLDEFENSE (DND)"),
--- Races: All
--- Classes: Warrior, Rogue
-(0x0, 0x9, 2764, "Throw"),
--- Races: All
--- Classes: Warrior, Rogue
-(0x0, 0x9, 2567, "Thrown"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 9078, "Cloth"),
--- Races: All
--- Classes: Warrior, Paladin, Rogue, Priest, Death Knight, Shaman, Druid
-(0x0, 0x47B, 198, "One-Handed Maces"),
--- Races: All
--- Classes: Warrior, Paladin, Hunter, Rogue, Death Knight, Mage, Warlock
-(0x0, 0x1AF, 201, "One-Handed Swords"),
--- Races: Human, Dwarf, Tauren, Blood elf, Dranei
--- Classes: Paladin
-(0x625, 0x2, 27762, "Relic"),
--- Races: Human, Dwarf, Tauren, Blood elf, Dranei
--- Classes: Paladin
-(0x625, 0x2, 76271, "Armor Skills"),
--- Races: Human, Dwarf, Tauren, Blood elf, Dranei
--- Classes: Paladin
-(0x625, 0x2, 76294, "Weapon Skills"),
--- Races: Human, Dwarf, Tauren, Blood elf, Dranei
--- Classes: Paladin
-(0x625, 0x2, 35395, "Crusader Strike"),
--- Races: Human, Dwarf, Tauren, Blood elf, Dranei
--- Classes: Paladin
-(0x625, 0x2, 60091, "Judgement Anti-Parry/Dodge Passive"),
--- Races: Human, Dwarf, Tauren, Blood elf, Dranei
--- Classes: Paladin
-(0x625, 0x2, 20208, "Paladin pushback resistance"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 3044, "Arcane Shot"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 75, "Auto Shot"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 82928, "Aimed Shot!"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 34082, "Hunter Passive Auras (DND)"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 883, "Call Pet 1"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 982, "Revive Pet"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 13358, "Defensive State (DND)"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 24949, "Defensive State 2 (DND)"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 77442, "Focus"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 76249, "Weapon Skills"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 76250, "Armor Skills"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 87324, "Focused Aim"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Tauren, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Hunter
-(0x2007BF, 0x4, 87816, "General Hunter Passives"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Rogue
-(0x2003DF, 0x8, 1752, "Sinister Strike"),
--- Races: All
--- Classes: Rogue, Death Knight
-(0x0, 0x28, 674, "Dual Wield"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Rogue
-(0x2003DF, 0x8, 76273, "Armor Skills"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Rogue
-(0x2003DF, 0x8, 76297, "Weapon Skills"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Rogue
-(0x2003DF, 0x8, 16092, "Defensive State (DND)"),
--- Races: All
--- Classes: Priest, Mage, Warlock
-(0x0, 0x190, 5009, "Wands"),
--- Races: All
--- Classes: Priest, Mage, Warlock
-(0x0, 0x190, 5019, "Shoot"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 585, "Smite"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 84733, "Holy Focus"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 88685, "Holy Word: Sanctuary"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 88684, "Holy Word: Serenity"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 101062, "Flash Heal"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 76301, "Weapon Skills"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 76279, "Armor Skills"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 84734, "Dark Thoughts"),
--- Races: Human, Dwarf, Night elf, Undead, Tauren, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Priest
-(0x2007FD, 0x10, 77486, "Shadow Orb Power"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage
-(0x2007DF, 0x80, 71761, "Deep Freeze Immunity State"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage
-(0x2007DF, 0x80, 79684, "Offensive State (DND)"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage
-(0x2007DF, 0x80, 133, "Fireball"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage
-(0x2007DF, 0x80, 92315, "Pyroblast!"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage, Warlock
-(0x2007DF, 0x180, 85801, "DPS Caster Crit Damage Bonus"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage
-(0x2007DF, 0x80, 76298, "Weapon Skills"),
--- Races: Human, Orc, Dwarf, Night elf, Undead, Gnome, Troll, Goblin, Blood elf, Dranei, Worgen
--- Classes: Mage
-(0x2007DF, 0x80, 76276, "Armor Skills"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 688, "Summon Imp"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 86213, "Soul Swap Exhale"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 89420, "Drain Life"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 76299, "Weapon Skills"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 76277, "Armor Skills"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 87330, "Suppression"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 75445, "Demonic Immolate"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 686, "Shadow Bolt"),
--- Races: Human, Orc, Dwarf, Undead, Gnome, Troll, Goblin, Blood elf, Worgen
--- Classes: Warlock
-(0x2003D7, 0x100, 58284, "Chaos Bolt Passive"),
--- Races: Orc, Undead, Tauren, Troll, Goblin, Blood elf
--- Classes: All
-(0x3B2, 0x0, 669, "Language Orcish"),
--- Races: Orc
--- Classes: Warrior, Rogue, Mage
-(0x2, 0x89, 21563, "Command"),
--- Races: Orc
--- Classes: Warrior, Hunter, Rogue, Death Knight
-(0x2, 0x2D, 20572, "Blood Fury"),
--- Races: Orc
--- Classes: Warrior, Hunter, Rogue, Death Knight, Shaman, Mage, Warlock
-(0x2, 0x1ED, 20573, "Hardiness"),
--- Races: Orc
--- Classes: Warrior, Hunter, Rogue, Death Knight, Shaman, Mage, Warlock
-(0x2, 0x1ED, 20574, "Axe Specialization"),
--- Races: Orc
--- Classes: Warrior, Hunter, Rogue, Death Knight, Shaman, Mage, Warlock
-(0x2, 0x1ED, 79743, "Languages"),
--- Races: Orc
--- Classes: Hunter
-(0x2, 0x4, 20576, "Command"),
--- Races: Orc, Dwarf, Troll, Goblin, Dranei
--- Classes: Shaman
-(0x586, 0x40, 27763, "Relic"),
--- Races: Orc
--- Classes: Shaman
-(0x2, 0x40, 65222, "Command"),
--- Races: Orc
--- Classes: Shaman
-(0x2, 0x40, 33697, "Blood Fury"),
--- Races: Orc, Dwarf, Troll, Goblin, Dranei
--- Classes: Shaman
-(0x586, 0x40, 76272, "Armor Skills"),
--- Races: Orc, Dwarf, Troll, Goblin, Dranei
--- Classes: Shaman
-(0x586, 0x40, 76296, "Weapon Skills"),
--- Races: Orc, Dwarf, Troll, Goblin, Dranei
--- Classes: Shaman
-(0x586, 0x40, 89920, "Ancestral Focus"),
--- Races: Orc, Dwarf, Tauren, Troll, Goblin, Dranei
--- Classes: Shaman
-(0x5A6, 0x40, 403, "Lightning Bolt"),
--- Races: Orc
--- Classes: Mage, Warlock
-(0x2, 0x180, 33702, "Blood Fury"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 20596, "Frost Resistance"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 20595, "Gun Specialization"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 20594, "Stoneform"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 59224, "Mace Specialization"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 92682, "Explorer"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 79739, "Languages"),
--- Races: Dwarf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x4, 0x1FF, 672, "Language Dwarven"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 76252, "Languages"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 20583, "Nature Resistance"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 20582, "Quickness"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 20585, "Wisp Spirit"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 21009, "Elusiveness"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 58984, "Shadowmeld"),
--- Races: Night elf
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Druid
-(0x8, 0x4BD, 671, "Language Darnassian"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 84736, "Nature's Focus"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 81170, "Ravage!"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 79577, "Eclipse Mastery Driver Passive"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 76300, "Weapon Skills"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 76275, "Armor Skills"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 5176, "Wrath"),
--- Races: Night elf, Tauren, Troll, Worgen
--- Classes: Druid
-(0x2000A8, 0x400, 84738, "Celestial Focus"),
--- Races: Undead
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage
-(0x10, 0xBD, 17737, "Language Gutterspeak"),
--- Races: Undead
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x10, 0x1BD, 5227, "Underwater Breathing"),
--- Races: Undead
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x10, 0x1BD, 7744, "Will of the Forsaken"),
--- Races: Undead
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x10, 0x1BD, 20577, "Cannibalize"),
--- Races: Undead
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x10, 0x1BD, 20579, "Shadow Resistance"),
--- Races: Undead
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x10, 0x1BD, 79747, "Languages"),
--- Races: Undead
--- Classes: Warlock
-(0x10, 0x100, 17747, "Language Gutterspeak"),
--- Races: Tauren
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Druid
-(0x20, 0x437, 670, "Language Taurahe"),
--- Races: Tauren
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Druid
-(0x20, 0x437, 20549, "War Stomp"),
--- Races: Tauren
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Druid
-(0x20, 0x437, 20550, "Endurance"),
--- Races: Tauren
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Druid
-(0x20, 0x437, 20551, "Nature Resistance"),
--- Races: Tauren
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Druid
-(0x20, 0x437, 20552, "Cultivation"),
--- Races: Tauren
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Druid
-(0x20, 0x437, 79746, "Languages"),
--- Races: Gnome
--- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock
-(0x40, 0x1B9, 20591, "Expansive Mind"),
--- Races: Gnome
--- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock
-(0x40, 0x1B9, 20593, "Engineering Specialization"),
--- Races: Gnome
--- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock
-(0x40, 0x1B9, 20592, "Arcane Resistance"),
--- Races: Gnome
--- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock
-(0x40, 0x1B9, 92680, "Shortblade Specialization"),
--- Races: Gnome
--- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock
-(0x40, 0x1B9, 79740, "Languages"),
--- Races: Gnome
--- Classes: Warrior, Rogue, Priest, Death Knight, Mage, Warlock
-(0x40, 0x1B9, 7340, "Language Gnomish"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 7341, "Language Troll"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 26290, "Bow Specialization"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 26297, "Berserking"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 58943, "Da Voodoo Shuffle"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 20555, "Regeneration"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 20557, "Beast Slaying"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 20558, "Throwing Specialization"),
--- Races: Troll
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock, Druid
-(0x80, 0x5FD, 79744, "Languages"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 69269, "Language Goblin"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 69070, "Rocket Jump"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 69041, "Rocket Barrage"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 69044, "Best Deals Anywhere"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 69045, "Better Living Through Chemistry"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 69042, "Time is Money"),
--- Races: Goblin
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Shaman, Mage, Warlock
-(0x100, 0x1FD, 79749, "Languages"),
--- Races: Blood elf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x200, 0x1BF, 813, "Language Thalassian"),
--- Races: Blood elf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x200, 0x1BF, 822, "Arcane Resistance"),
--- Races: Blood elf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x200, 0x1BF, 28877, "Arcane Affinity"),
--- Races: Blood elf
--- Classes: Warrior
-(0x200, 0x1, 69179, "Arcane Torrent"),
--- Races: Blood elf
--- Classes: Warrior, Paladin, Hunter, Rogue, Priest, Death Knight, Mage, Warlock
-(0x200, 0x1BF, 79748, "Languages"),
--- Races: Blood elf
--- Classes: Paladin, Priest, Mage, Warlock
-(0x200, 0x192, 28730, "Arcane Torrent"),
--- Races: Blood elf
--- Classes: Hunter
-(0x200, 0x4, 80483, "Arcane Torrent"),
--- Races: Blood elf
--- Classes: Rogue
-(0x200, 0x8, 25046, "Arcane Torrent"),
--- Races: Dranei
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Shaman, Mage
-(0x400, 0xF7, 29932, "Language Draenei"),
--- Races: Dranei
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Shaman, Mage
-(0x400, 0xF7, 79741, "Languages"),
--- Races: Dranei
--- Classes: Warrior, Paladin, Hunter, Death Knight
-(0x400, 0x27, 6562, "Heroic Presence"),
--- Races: Dranei
--- Classes: Warrior
-(0x400, 0x1, 28880, "Gift of the Naaru"),
--- Races: Dranei
--- Classes: Warrior, Paladin, Hunter, Priest, Death Knight, Shaman, Mage
-(0x400, 0xF7, 28875, "Gemcutting"),
--- Races: Dranei
--- Classes: Warrior
-(0x400, 0x1, 59221, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Paladin
-(0x400, 0x2, 59535, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Paladin
-(0x400, 0x2, 59542, "Gift of the Naaru"),
--- Races: Dranei
--- Classes: Hunter
-(0x400, 0x4, 59543, "Gift of the Naaru"),
--- Races: Dranei
--- Classes: Hunter
-(0x400, 0x4, 59536, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Priest
-(0x400, 0x10, 59538, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Priest, Shaman, Mage
-(0x400, 0xD0, 28878, "Heroic Presence"),
--- Races: Dranei
--- Classes: Priest
-(0x400, 0x10, 59544, "Gift of the Naaru"),
--- Races: Dranei
--- Classes: Shaman
-(0x400, 0x40, 59540, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Shaman
-(0x400, 0x40, 59547, "Gift of the Naaru"),
--- Races: Dranei
--- Classes: Mage
-(0x400, 0x80, 59541, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Mage
-(0x400, 0x80, 59548, "Gift of the Naaru"),
--- Races: Worgen
--- Classes: Warrior, Hunter, Rogue, Priest, Death Knight, Mage, Warlock, Druid
-(0x200000, 0x5BD, 79742, "Languages"),
--- Races: Worgen
--- Classes: Warrior, Hunter, Rogue, Priest, Mage, Warlock, Druid
-(0x200000, 0x59D, 69001, ""), -- Not found in DBCs
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 52665, "Relic"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 63645, "Activating Primary Spec"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 63644, "Activating Secondary Spec"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 45902, "Blood Strike"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 82246, "Parry"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 89832, "Death Strike Enabler"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 45477, "Icy Touch"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 48266, "Frost Presence"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 61455, "Runic Focus"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 59921, "Frost Fever"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 33391, "Journeyman Riding"),
--- Races: All
--- Classes: All
-(0x0, 0x0, 89964, "Clear Glyph"), -- Edited because every class should have it (Only DKs did have it before)
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 76282, "Armor Skills"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 76292, "Weapon Skills"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 750, "Plate Mail"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 45462, "Plague Strike"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 47541, "Death Coil"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 49576, "Death Grip"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 59879, "Blood Plague"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 45903, "Offensive State (DND)"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 10846, "First Aid"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 3275, "Linen Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 18630, "Heavy Runecloth Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 3276, "Heavy Linen Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 3277, "Wool Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 3278, "Heavy Wool Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 7928, "Silk Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 7929, "Heavy Silk Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 10840, "Mageweave Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 10841, "Heavy Mageweave Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 18629, "Runecloth Bandage"),
--- Races: All
--- Classes: Death Knight
-(0x0, 0x20, 7934, "Anti-Venom"),
--- Races: Orc
--- Classes: Death Knight
-(0x2, 0x20, 54562, "Command"),
--- Races: Gnome
--- Classes: Death Knight
-(0x40, 0x20, 20589, "Escape Artist"),
--- HACK: You actually LEARN this racial
-/*-- Races: Goblin
--- Classes: All
-(0x100, 0x0, 69046, "Pack Hobgoblin"),*/
--- Races: Blood elf
--- Classes: Death Knight
-(0x200, 0x20, 50613, "Arcane Torrent"),
--- Races: Dranei
--- Classes: Death Knight
-(0x400, 0x20, 59539, "Shadow Resistance"),
--- Races: Dranei
--- Classes: Death Knight
-(0x400, 0x20, 59545, "Gift of the Naaru"),
--- Races: Worgen
--- Classes: All
-(0x200000, 0x0, 68978, "Flayer"),
--- Races: Worgen
--- Classes: Death Knight
-(0x200000, 0x20, 68992, "Darkflight"),
--- Races: Worgen
--- Classes: Death Knight
-(0x200000, 0x20, 68976, "Aberration"),
--- Races: Worgen
--- Classes: Death Knight
-(0x200000, 0x20, 68996, "Two Forms"),
--- Races: Worgen
--- Classes: All
-(0x200000, 0x0, 68975, "Viciousness"),
--- Races: Worgen
--- Classes: Death Knight
-(0x200000, 0x20, 94293, "Enable Worgen Altered Form"),
--- Races: Worgen
--- Classes: Death Knight
-(0x200000, 0x20, 87840, "Running Wild");
diff --git a/sql/updates/world/2013_03_15_01_world_smart_scripts.sql b/sql/updates/world/2013_03_15_01_world_smart_scripts.sql
new file mode 100644
index 00000000000..63561342f3c
--- /dev/null
+++ b/sql/updates/world/2013_03_15_01_world_smart_scripts.sql
@@ -0,0 +1,12 @@
+DELETE FROM `smart_scripts` WHERE `entryorguid`=30407 AND `source_type`=0;
+INSERT INTO `smart_scripts`(`entryorguid`,`id`,`link`,`event_type`,`event_flags`,`event_phase_mask`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`target_type`,`comment`) VALUES
+(30407,0,1,11,0,0,0,0,0,0,11,56726,0,1,'Captured Crusader - On Respawn - Apply Nerubian Webs (56726)'),
+(30407,1,0,61,0,0,0,0,0,0,22,1,0,1,'Captured Crusader - Linked to id 0 - Set event phase to 1'),
+(30407,2,0, 1,0,1,4000,4000,4000,4000,10,70,22,1,'Captured Crusader - Out of combat - Random emote'),
+(30407,3,4, 8,0,1,56683,0,0,0,11,56687,0,7,'Captured Crusader - Spell hit of Grab Captured Crusader (56683) - Cast Ride Vehicle (56687)'),
+(30407,4,5,61,0,1,0,0,0,0,1,0,0,1,'Captured Crusader - Linked to id 3 - Talk'),
+(30407,5,0,61,0,1,0,0,0,0,22,2,0,1,'Captured Crusader - Linked to id 3 - Set event phase to 2'),
+(30407,6,0, 1,0,2,8000,8000,8000,8000,1,1,0,1,'Captured Crusader - Out of combat - Talk'),
+(30407,7,8,23,1,2,56687,0,0,0,1,2,0,1,'Captured Crusader - Aura Ride Vehicle (56687) removed - Talk'),
+(30407,8,9,61,0,2,0,0,0,0,41,5000,0,1,'Captured Crusader - Linked to id 7 - Despawn'),
+(30407,9,0,61,0,2,0,0,0,0,22,0,0,1,'Captured Crusader - Linked to id 7 - Set event phase to 0');
diff --git a/sql/updates/world/2013_03_15_01_world_trinity_strings.sql b/sql/updates/world/2013_03_15_01_world_trinity_strings.sql
new file mode 100644
index 00000000000..0ae44b1ae53
--- /dev/null
+++ b/sql/updates/world/2013_03_15_01_world_trinity_strings.sql
@@ -0,0 +1,3 @@
+DELETE FROM `trinity_string` where `entry`=363;
+INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES
+(363, 'Player %s cannot whisper you any longer.');
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index d300cf64451..9b5d715b90b 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -105,8 +105,8 @@ enum SMART_EVENT
SMART_EVENT_REWARD_QUEST = 20, // QuestID(0any)
SMART_EVENT_REACHED_HOME = 21, // NONE
SMART_EVENT_RECEIVE_EMOTE = 22, // EmoteId, CooldownMin, CooldownMax, condition, val1, val2, val3
- SMART_EVENT_HAS_AURA = 23, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax
- SMART_EVENT_TARGET_BUFFED = 24, // Param1 = SpellID, Param2 = Number of Time STacked, Param3/4 RepeatMin, RepeatMax
+ SMART_EVENT_HAS_AURA = 23, // Param1 = SpellID, Param2 = Stack amount, Param3/4 RepeatMin, RepeatMax
+ SMART_EVENT_TARGET_BUFFED = 24, // Param1 = SpellID, Param2 = Stack amount, Param3/4 RepeatMin, RepeatMax
SMART_EVENT_RESET = 25, // Called after combat, when the creature respawn and spawn.
SMART_EVENT_IC_LOS = 26, // NoHostile, MaxRnage, CooldownMin, CooldownMax
SMART_EVENT_PASSENGER_BOARDED = 27, // CooldownMin, CooldownMax
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index c708179fe04..ab02b316ce5 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2484,6 +2484,7 @@ class Player : public Unit, public GridObject<Player>
void ClearWhisperWhiteList() { WhisperList.clear(); }
void AddWhisperWhiteList(uint64 guid) { WhisperList.push_back(guid); }
bool IsInWhisperWhiteList(uint64 guid);
+ void RemoveFromWhisperWhiteList(uint64 guid) { WhisperList.remove(guid); }
/*! These methods send different packets to the client in apply and unapply case.
These methods are only sent to the current unit.
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 655fb41cc83..54454e46a4a 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -16362,7 +16362,7 @@ void Unit::_ExitVehicle(Position const* exitPosition)
Player* player = ToPlayer();
- // If player is on mouted duel and exits the mount should immediatly lose the duel
+ // If the player is on mounted duel and exits the mount, he should immediatly lose the duel
if (player && player->duel && player->duel->isMounted)
player->DuelComplete(DUEL_FLED);
@@ -16390,14 +16390,19 @@ void Unit::_ExitVehicle(Position const* exitPosition)
SendMessageToSet(&data, false);
}
+ float height = pos.GetPositionZ();
+
Movement::MoveSplineInit init(this);
- init.MoveTo(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), false);
+
+ // Creatures without inhabit type air should begin falling after exiting the vehicle
+ if (GetTypeId() == TYPEID_UNIT && !CanFly() && height > GetMap()->GetWaterOrGroundLevel(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), &height) + 0.1f)
+ init.SetFall();
+
+ init.MoveTo(pos.GetPositionX(), pos.GetPositionY(), height, false);
init.SetFacing(GetOrientation());
init.SetTransportExit();
init.Launch();
- //GetMotionMaster()->MoveFall(); // Enable this once passenger positions are calculater properly (see above)
-
if (player)
player->ResummonPetTemporaryUnSummonedIfAny();
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index 6abde6cac04..ca79c1c350a 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -314,12 +314,6 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
} break;
case CHAT_MSG_WHISPER:
{
- if (sender->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ))
- {
- SendNotification(GetTrinityString(LANG_WHISPER_REQ), sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ));
- return;
- }
-
if (!normalizePlayerName(to))
{
SendPlayerNotFoundNotice(to);
@@ -327,16 +321,18 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
}
Player* receiver = sObjectAccessor->FindPlayerByName(to);
- if (!receiver || (!HasPermission(RBAC_PERM_CAN_FILTER_WHISPERS) &&
- !receiver->isAcceptWhispers() && !receiver->IsInWhisperWhiteList(sender->GetGUID())))
+ if (!receiver)
{
SendPlayerNotFoundNotice(to);
return;
}
+ if (!sender->isGameMaster() && sender->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) && !receiver->IsInWhisperWhiteList(sender->GetGUID()))
+ {
+ SendNotification(GetTrinityString(LANG_WHISPER_REQ), sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ));
+ return;
+ }
- // @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))
+ if (GetPlayer()->GetTeam() != receiver->GetTeam() && !HasPermission(RBAC_PERM_TWO_SIDE_INTERACTION_CHAT) && !receiver->IsInWhisperWhiteList(sender->GetGUID()))
{
SendWrongFactionNotice();
return;
@@ -349,7 +345,9 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
}
// If player is a Gamemaster and doesn't accept whisper, we auto-whitelist every player that the Gamemaster is talking to
- if (HasPermission(RBAC_PERM_CAN_FILTER_WHISPERS) && !sender->isAcceptWhispers() && !sender->IsInWhisperWhiteList(receiver->GetGUID()))
+ // We also do that if a player is under the required level for whispers.
+ if (receiver->getLevel() < sWorld->getIntConfig(CONFIG_CHAT_WHISPER_LEVEL_REQ) ||
+ (HasPermission(RBAC_PERM_CAN_FILTER_WHISPERS) && !sender->isAcceptWhispers() && !sender->IsInWhisperWhiteList(receiver->GetGUID())))
sender->AddWhisperWhiteList(receiver->GetGUID());
GetPlayer()->Whisper(msg, lang, receiver->GetGUID());
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 99d36135977..1ac10e156ad 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -384,7 +384,8 @@ enum TrinityStrings
LANG_COMMAND_CHEAT_CD = 360,
LANG_COMMAND_CHEAT_POWER = 361,
LANG_COMMAND_CHEAT_WW = 362,
- // Room for more level 2 363-399 not used
+ LANG_COMMAND_WHISPEROFFPLAYER = 363,
+ // Room for more level 2 364-399 not used
// level 3 chat
LANG_SCRIPTS_RELOADED = 400,
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 642e6e7d29c..074e04547f6 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -516,6 +516,9 @@ void WorldSession::LogoutPlayer(bool save)
///- Remove pet
_player->RemovePet(NULL, PET_SAVE_AS_CURRENT, true);
+ ///- Clear whisper whitelist
+ _player->ClearWhisperWhiteList();
+
///- empty buyback items and save the player in the database
// some save parts only correctly work in case player present in map/player_lists (pets, etc)
if (save)
diff --git a/src/server/scripts/Commands/cs_message.cpp b/src/server/scripts/Commands/cs_message.cpp
index e2c53492e9d..66f55b85c1c 100644
--- a/src/server/scripts/Commands/cs_message.cpp
+++ b/src/server/scripts/Commands/cs_message.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "ChannelMgr.h"
#include "Language.h"
#include "Player.h"
+#include "ObjectMgr.h"
class message_commandscript : public CommandScript
{
@@ -186,7 +187,7 @@ public:
return true;
}
- std::string argStr = (char*)args;
+ std::string argStr = strtok((char*)args, " ");
// whisper on
if (argStr == "on")
{
@@ -205,6 +206,23 @@ public:
return true;
}
+ if (argStr == "remove")
+ {
+ std::string name = strtok(NULL, " ");
+ if (normalizePlayerName(name))
+ if (Player* player = sObjectAccessor->FindPlayerByName(name))
+ {
+ handler->GetSession()->GetPlayer()->RemoveFromWhisperWhiteList(player->GetGUID());
+ handler->PSendSysMessage(LANG_COMMAND_WHISPEROFFPLAYER, name);
+ return true;
+ }
+ else
+ {
+ handler->PSendSysMessage(LANG_PLAYER_NOT_FOUND, name);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+ }
handler->SendSysMessage(LANG_USE_BOL);
handler->SetSentErrorMessage(true);
return false;