diff options
-rw-r--r-- | sql/base/world_database.sql | 3 | ||||
-rw-r--r-- | sql/scripts/world_script_texts.sql | 2 | ||||
-rw-r--r-- | sql/scripts/world_scripts_full.sql | 1 | ||||
-rw-r--r-- | sql/updates/9948_world_script_name.sql | 2 | ||||
-rw-r--r-- | sql/updates/9948_world_script_texts.sql | 4 | ||||
-rw-r--r-- | sql/updates/9948_world_spell_script_names.sql | 7 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 16 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 3 | ||||
-rw-r--r-- | src/server/scripts/Northrend/sholazar_basin.cpp | 83 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 179 | ||||
-rw-r--r-- | src/server/scripts/World/chat_log.cpp | 34 |
11 files changed, 294 insertions, 40 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 825caf16d46..e73a3b1aab4 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -26793,10 +26793,13 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES -- quest ( 8913, 'spell_q55_sacred_cleansing'), ( 17271, 'spell_q5206_test_fetid_skull'), +( 19512, 'spell_q6124_6129_apply_salve'), ( 34665, 'spell_q10255_administer_antidote'), ( 44936, 'spell_q11515_fel_siphon_dummy'), ( 45449, 'spell_q11587_arcane_prisoner_rescue'), ( 46023, 'spell_q11730_ultrasonic_screwdriver'), +( 49587, 'spell_q12459_seeds_of_natures_wrath'), +( 51840, 'spell_q12634_despawn_fruit_tosser'), ( 52308, 'spell_q12683_take_sputum_sample'), ( 55804, 'spell_q12937_relief_for_the_fallen'), -- item diff --git a/sql/scripts/world_script_texts.sql b/sql/scripts/world_script_texts.sql index 9329e6a18fe..cd3147edf9a 100644 --- a/sql/scripts/world_script_texts.sql +++ b/sql/scripts/world_script_texts.sql @@ -1841,6 +1841,8 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` (30014,-1571039,'Yggdras emerges!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,3,0,0,''), (30017,-1571040,'Stinkbeard comin'' for you, little ones!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,''), (30007,-1571041,'Do you fell that folks? The air is cracking with energy! Than can only mean one thing...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,''), + (28604,-1571042,'Ouch! Watch where you''re tugging!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'adventurous dwarf SAY_DWARF_OUCH'), + (28604,-1571043,'Glad I could help!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'adventurous dwarf SAY_DWARF_HELP'), -- -1 574 000 UTGARDE KEEP (23953,-1574000,'Your blood is mine!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13221,1,0,0,'keleseth SAY_AGGRO'), diff --git a/sql/scripts/world_scripts_full.sql b/sql/scripts/world_scripts_full.sql index e32259e8bdf..cc6ba278698 100644 --- a/sql/scripts/world_scripts_full.sql +++ b/sql/scripts/world_scripts_full.sql @@ -1179,6 +1179,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_vekjik' WHERE `entry`=28315; UPDATE `creature_template` SET `ScriptName`='npc_avatar_of_freya' WHERE `entry`=27801; UPDATE `creature_template` SET `ScriptName`='npc_bushwhacker' WHERE `entry`=28317; UPDATE `creature_template` SET `ScriptName`='npc_engineer_helice' WHERE `entry`=28787; +UPDATE `creature_template` SET `ScriptName`='npc_adventurous_dwarf' WHERE `entry`=28604; /* SILITHUS */ UPDATE `creature_template` SET `ScriptName`='npcs_rutgar_and_frankal' WHERE `entry` IN (15170,15171); diff --git a/sql/updates/9948_world_script_name.sql b/sql/updates/9948_world_script_name.sql new file mode 100644 index 00000000000..acd7f5ed785 --- /dev/null +++ b/sql/updates/9948_world_script_name.sql @@ -0,0 +1,2 @@ +-- Add script name to the Adventurous Dwarf +UPDATE `creature_template` SET `npcflag`=1, `ScriptName`='npc_adventurous_dwarf' WHERE `entry`=28604; diff --git a/sql/updates/9948_world_script_texts.sql b/sql/updates/9948_world_script_texts.sql new file mode 100644 index 00000000000..8d52e0be8ec --- /dev/null +++ b/sql/updates/9948_world_script_texts.sql @@ -0,0 +1,4 @@ +DELETE FROM `script_texts` WHERE `entry` IN (-1571043,-1571042); +INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES +(28604,-1571042,'Ouch! Watch where you''re tugging!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'adventurous dwarf SAY_DWARF_OUCH'), +(28604,-1571043,'Glad I could help!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'adventurous dwarf SAY_DWARF_HELP'); diff --git a/sql/updates/9948_world_spell_script_names.sql b/sql/updates/9948_world_spell_script_names.sql new file mode 100644 index 00000000000..38ccd4aa8b1 --- /dev/null +++ b/sql/updates/9948_world_spell_script_names.sql @@ -0,0 +1,7 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=51840 AND `ScriptName`='spell_q12634_despawn_fruit_tosser'; +DELETE FROM `spell_script_names` WHERE `spell_id`=49587 AND `ScriptName`='spell_q12459_seeds_of_natures_wrath'; +DELETE FROM `spell_script_names` WHERE `spell_id`=19512 AND `ScriptName`='spell_q6124_6129_apply_salve'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(51840,'spell_q12634_despawn_fruit_tosser'), +(49587,'spell_q12459_seeds_of_natures_wrath'), +(19512,'spell_q6124_6129_apply_salve');
\ No newline at end of file diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 0c57e661bd3..0d314b39c6b 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7800,12 +7800,10 @@ bool ObjectMgr::LoadTrinityStrings(char const* table, int32 min_value, int32 max data.Content.resize(1); ++count; - // 0 -> default, idx in to idx+1 - data.Content[0] = fields[1].GetCppString(); - + data.Default = fields[1].GetCppString(); for (uint8 i = 1; i < MAX_LOCALE; ++i) { - std::string str = fields[i+1].GetCppString(); + std::string str = fields[i + 1].GetCppString(); AddLocaleString(str, LocaleConstant(i), data.Content); } } while (result->NextRow()); @@ -7821,15 +7819,11 @@ bool ObjectMgr::LoadTrinityStrings(char const* table, int32 min_value, int32 max const char *ObjectMgr::GetTrinityString(int32 entry, int locale_idx) const { - // locale_idx == -1 -> default, locale_idx >= 0 in to idx+1 - // Content[0] always exist if exist TrinityStringLocale if (TrinityStringLocale const *msl = GetTrinityStringLocale(entry)) { - int idx = locale_idx + 1; - if (int(msl->Content.size()) > idx && !msl->Content[idx].empty()) - return msl->Content[idx].c_str(); - else - return msl->Content[0].c_str(); + std::string s = msl->Default; + GetLocaleString(msl->Content, locale_idx, s); + return s.c_str(); } if (entry > 0) diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 2c20a9ca617..12f8b2b4a63 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -174,7 +174,8 @@ typedef UNORDERED_MAP<uint64/*(instance,guid) pair*/,time_t> RespawnTimes; struct TrinityStringLocale { - StringVector Content; // 0 -> default, i -> i-1 locale index + std::string Default; + StringVector Content; }; typedef std::map<uint32,uint32> CreatureLinkedRespawnMap; diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp index b02436f5548..3fac79e2d00 100644 --- a/src/server/scripts/Northrend/sholazar_basin.cpp +++ b/src/server/scripts/Northrend/sholazar_basin.cpp @@ -446,11 +446,84 @@ public: } }; +/*###### +## npc_adventurous_dwarf +######*/ + +#define GOSSIP_OPTION_ORANGE "Can you spare an orange?" +#define GOSSIP_OPTION_BANANAS "Have a spare bunch of bananas?" +#define GOSSIP_OPTION_PAPAYA "I could really use a papaya." + +enum eAdventurousDwarf +{ + QUEST_12634 = 12634, + + ITEM_BANANAS = 38653, + ITEM_PAPAYA = 38655, + ITEM_ORANGE = 38656, + + SPELL_ADD_ORANGE = 52073, + SPELL_ADD_BANANAS = 52074, + SPELL_ADD_PAPAYA = 52076, + + GOSSIP_MENU_DWARF = 13307, + + SAY_DWARF_OUCH = -1571042, + SAY_DWARF_HELP = -1571043 +}; + +class npc_adventurous_dwarf : public CreatureScript +{ +public: + npc_adventurous_dwarf() : CreatureScript("npc_adventurous_dwarf") { } + + CreatureAI *GetAI(Creature *pCreature) const + { + DoScriptText(SAY_DWARF_OUCH, pCreature); + return NULL; + } + + bool OnGossipHello(Player *pPlayer, Creature *pCreature) + { + if (pPlayer->GetQuestStatus(QUEST_12634) != QUEST_STATUS_INCOMPLETE) + return false; + + if (pPlayer->GetItemCount(ITEM_ORANGE) < 1) + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OPTION_ORANGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + + if (pPlayer->GetItemCount(ITEM_BANANAS) < 2) + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OPTION_BANANAS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + + if (pPlayer->GetItemCount(ITEM_PAPAYA) < 1) + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_OPTION_PAPAYA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); + + pPlayer->PlayerTalkClass->SendGossipMenu(GOSSIP_MENU_DWARF, pCreature->GetGUID()); + return true; + } + + bool OnGossipSelect(Player *pPlayer, Creature *pCreature, uint32 /*uiSender*/, uint32 uiAction) + { + uint32 spellId = 0; + switch (uiAction) + { + case GOSSIP_ACTION_INFO_DEF + 1: spellId = SPELL_ADD_ORANGE; break; + case GOSSIP_ACTION_INFO_DEF + 2: spellId = SPELL_ADD_BANANAS; break; + case GOSSIP_ACTION_INFO_DEF + 3: spellId = SPELL_ADD_PAPAYA; break; + } + if (spellId) + pPlayer->CastSpell(pPlayer, spellId, true); + DoScriptText(SAY_DWARF_HELP, pCreature); + pCreature->ForcedDespawn(); + return true; + } +}; + void AddSC_sholazar_basin() { - new npc_injured_rainspeaker_oracle; - new npc_vekjik; - new npc_avatar_of_freya; - new npc_bushwhacker; - new npc_engineer_helice; + new npc_injured_rainspeaker_oracle(); + new npc_vekjik(); + new npc_avatar_of_freya(); + new npc_bushwhacker(); + new npc_engineer_helice(); + new npc_adventurous_dwarf(); } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 34f85a1ac54..ac04c096721 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -60,7 +60,7 @@ public: // http://www.wowhead.com/quest=55 Morbent Fel // 8913 Sacred Cleansing -enum Quest55Data +enum eQuest55Data { NPC_MORBENT = 1200, NPC_WEAKENED_MORBENT = 24782, @@ -79,7 +79,7 @@ public: // http://www.wowhead.com/quest=5206 Marauders of Darrowshire // 17271 Test Fetid Skull -enum Quest5206Data +enum eQuest5206Data { SPELL_CREATE_RESONATING_SKULL = 17269, SPELL_CREATE_BONE_DUST = 17270 @@ -123,9 +123,66 @@ public: } }; +// http://www.wowhead.com/quest=6124 Curing the Sick (A) +// http://www.wowhead.com/quest=6129 Curing the Sick (H) +// 19512 Apply Salve +enum eQuests6124_6129Data +{ + NPC_SICKLY_GAZELLE = 12296, + NPC_CURED_GAZELLE = 12297, + NPC_SICKLY_DEER = 12298, + NPC_CURED_DEER = 12299, + DESPAWN_TIME = 30000 +}; + +class spell_q6124_6129_apply_salve : public SpellScriptLoader +{ +public: + spell_q6124_6129_apply_salve() : SpellScriptLoader("spell_q6124_6129_apply_salve") { } + + class spell_q6124_6129_apply_salve_SpellScript : public SpellScript + { + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (GetCastItem()) + if (Player* pCaster = GetCaster()->ToPlayer()) + if (Creature* pCreatureTarget = GetHitCreature()) + { + uint32 uiNewEntry = 0; + switch (pCaster->GetTeam()) + { + case HORDE: + if (pCreatureTarget->GetEntry() == NPC_SICKLY_GAZELLE) + uiNewEntry = NPC_CURED_GAZELLE; + break; + case ALLIANCE: + if (pCreatureTarget->GetEntry() == NPC_SICKLY_DEER) + uiNewEntry = NPC_CURED_DEER; + break; + } + if (uiNewEntry) + { + pCreatureTarget->UpdateEntry(uiNewEntry); + pCreatureTarget->ForcedDespawn(DESPAWN_TIME); + } + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q6124_6129_apply_salve_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q6124_6129_apply_salve_SpellScript(); + } +}; + // http://www.wowhead.com/quest=10255 Testing the Antidote // 34665 Administer Antidote -enum Quest10255Data +enum eQuest10255Data { NPC_HELBOAR = 16880, NPC_DREADTUSK = 16992, @@ -144,7 +201,7 @@ public: // http://www.wowhead.com/quest=11515 Blood for Blood // 44936 Quest - Fel Siphon Dummy -enum Quest11515Data +enum eQuest11515Data { NPC_FELBLOOD_INITIATE = 24918, NPC_EMACIATED_FELBLOOD = 24955 @@ -163,7 +220,7 @@ public: // http://www.wowhead.com/quest=11587 Prison Break // 45449 Arcane Prisoner Rescue -enum Quest11587Data +enum eQuest11587Data { SPELL_SUMMON_ARCANE_PRISONER_MALE = 45446, // Summon Arcane Prisoner - Male SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female @@ -215,7 +272,7 @@ public: // http://www.wowhead.com/quest=11730 Master and Servant // 46023 The Ultrasonic Screwdriver -enum Quest11730Data +enum eQuest11730Data { SPELL_SUMMON_SCAVENGEBOT_004A8 = 46063, SPELL_SUMMON_SENTRYBOT_57K = 46068, @@ -296,6 +353,113 @@ public: } }; +// http://www.wowhead.com/quest=12459 That Which Creates Can Also Destroy +// 49587 Seeds of Nature's Wrath +enum eQuest12459Data +{ + NPC_REANIMATED_FROSTWYRM = 26841, + NPC_WEAK_REANIMATED_FROSTWYRM = 27821, + + NPC_TURGID = 27808, + NPC_WEAK_TURGID = 27809, + + NPC_DEATHGAZE = 27122, + NPC_WEAK_DEATHGAZE = 27807, +}; + +class spell_q12459_seeds_of_natures_wrath : public SpellScriptLoader +{ +public: + spell_q12459_seeds_of_natures_wrath() : SpellScriptLoader("spell_q12459_seeds_of_natures_wrath") { } + + class spell_q12459_seeds_of_natures_wrath_SpellScript : public SpellScript + { + public: + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (Creature* pCreatureTarget = GetHitCreature()) + { + uint32 uiNewEntry = 0; + switch (pCreatureTarget->GetEntry()) + { + case NPC_REANIMATED_FROSTWYRM: uiNewEntry = NPC_WEAK_REANIMATED_FROSTWYRM; break; + case NPC_TURGID: uiNewEntry = NPC_WEAK_TURGID; break; + case NPC_DEATHGAZE: uiNewEntry = NPC_WEAK_DEATHGAZE; break; + } + if (uiNewEntry) + pCreatureTarget->UpdateEntry(uiNewEntry); + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q12459_seeds_of_natures_wrath_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q12459_seeds_of_natures_wrath_SpellScript(); + } +}; + +// http://www.wowhead.com/quest=12634 Some Make Lemonade, Some Make Liquor +// 51840 Despawn Fruit Tosser +enum eQuest12634Data +{ + SPELL_BANANAS_FALL_TO_GROUND = 51836, + SPELL_ORANGE_FALLS_TO_GROUND = 51837, + SPELL_PAPAYA_FALLS_TO_GROUND = 51839, + SPELL_SUMMON_ADVENTUROUS_DWARF = 52070 +}; + +class spell_q12634_despawn_fruit_tosser : public SpellScriptLoader +{ +public: + spell_q12634_despawn_fruit_tosser() : SpellScriptLoader("spell_q12634_despawn_fruit_tosser") { } + + class spell_q12634_despawn_fruit_tosser_SpellScript : public SpellScript + { + public: + bool Validate(SpellEntry const * /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_BANANAS_FALL_TO_GROUND)) + return false; + if (!sSpellStore.LookupEntry(SPELL_ORANGE_FALLS_TO_GROUND)) + return false; + if (!sSpellStore.LookupEntry(SPELL_PAPAYA_FALLS_TO_GROUND)) + return false; + if (!sSpellStore.LookupEntry(SPELL_SUMMON_ADVENTUROUS_DWARF)) + return false; + return true; + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + uint32 spellId = SPELL_BANANAS_FALL_TO_GROUND; + switch (urand(0, 3)) + { + case 1: spellId = SPELL_ORANGE_FALLS_TO_GROUND; break; + case 2: spellId = SPELL_PAPAYA_FALLS_TO_GROUND; break; + } + // sometimes, if you're lucky, you get a dwarf + if (roll_chance_i(5)) + spellId = SPELL_SUMMON_ADVENTUROUS_DWARF; + GetCaster()->CastSpell(GetCaster(), spellId, true, NULL); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q12634_despawn_fruit_tosser_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q12634_despawn_fruit_tosser_SpellScript(); + } +}; + // http://www.wowhead.com/quest=12683 Burning to Help // 52308 Take Sputum Sample class spell_q12683_take_sputum_sample : public SpellScriptLoader @@ -383,10 +547,13 @@ void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); new spell_q5206_test_fetid_skull(); + new spell_q6124_6129_apply_salve(); new spell_q10255_administer_antidote(); new spell_q11515_fel_siphon_dummy(); new spell_q11587_arcane_prisoner_rescue(); new spell_q11730_ultrasonic_screwdriver(); + new spell_q12459_seeds_of_natures_wrath(); + new spell_q12634_despawn_fruit_tosser(); new spell_q12683_take_sputum_sample(); new spell_q12937_relief_for_the_fallen(); } diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp index 0a686ddf4bb..52809c148a1 100644 --- a/src/server/scripts/World/chat_log.cpp +++ b/src/server/scripts/World/chat_log.cpp @@ -72,6 +72,18 @@ public: player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); break; + case CHAT_MSG_PARTY_LEADER: + if (sWorld.getBoolConfig(CONFIG_CHATLOG_PARTY)) + sLog.outChat("[PARTY] Leader %s tells group: %s", + player->GetName(), msg.c_str()); + break; + + case CHAT_MSG_RAID: + if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) + sLog.outChat("[RAID] Player %s tells raid with leader %s: %s", + player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); + break; + case CHAT_MSG_RAID_LEADER: if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) sLog.outChat("[RAID] Leader player %s tells raid: %s", @@ -84,28 +96,16 @@ public: player->GetName(), msg.c_str()); break; - case CHAT_MSG_PARTY_LEADER: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_PARTY)) - sLog.outChat("[PARTY] Leader %s tells group: %s", - player->GetName(), msg.c_str()); - break; - - case CHAT_MSG_BATTLEGROUND_LEADER: + case CHAT_MSG_BATTLEGROUND: if (sWorld.getBoolConfig(CONFIG_CHATLOG_BGROUND)) - sLog.outChat("[RAID] Leader player %s tells battleground: %s", - player->GetName(), msg.c_str()); - break; - - case CHAT_MSG_RAID: - if (sWorld.getBoolConfig(CONFIG_CHATLOG_RAID)) - sLog.outChat("[RAID] Player %s tells raid with leader %s: %s", + sLog.outChat("[BATTLEGROUND] Player %s tells battleground with leader %s: %s", player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); break; - case CHAT_MSG_BATTLEGROUND: + case CHAT_MSG_BATTLEGROUND_LEADER: if (sWorld.getBoolConfig(CONFIG_CHATLOG_BGROUND)) - sLog.outChat("[BATTLEGROUND] Player %s tells battleground with leader %s: %s", - player->GetName(), group ? group->GetLeaderName() : "<unknown>", msg.c_str()); + sLog.outChat("[BATTLEGROUND] Leader player %s tells battleground: %s", + player->GetName(), msg.c_str()); break; } } |