* Various functions to broadcast output to GMs only - Patch by Machiavelli
--HG-- branch : trunk
This commit is contained in:
1 parent
5313601ea6
commit
5ca3aacaaf
7 files changed
+182
-59
No files matched your search
@@ -533,7 +533,9 @@ ChatCommand * ChatHandler::getCommandTable()
|
||||
{ "unaura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnAuraCommand, "", NULL },
|
||||
{ "nameannounce", SEC_MODERATOR, false, &ChatHandler::HandleNameAnnounceCommand, "", NULL },
|
||||
{ "announce", SEC_MODERATOR, true, &ChatHandler::HandleAnnounceCommand, "", NULL },
|
||||
{ "gmannounce", SEC_MODERATOR, true, &ChatHandler::HandleGMAnnounceCommand, "", NULL },
|
||||
{ "notify", SEC_MODERATOR, true, &ChatHandler::HandleNotifyCommand, "", NULL },
|
||||
{ "gmnotify", SEC_MODERATOR, true, &ChatHandler::HandleGMNotifyCommand, "", NULL },
|
||||
{ "goname", SEC_MODERATOR, false, &ChatHandler::HandleGonameCommand, "", NULL },
|
||||
{ "namego", SEC_MODERATOR, false, &ChatHandler::HandleNamegoCommand, "", NULL },
|
||||
{ "groupgo", SEC_MODERATOR, false, &ChatHandler::HandleGroupgoCommand, "", NULL },
|
||||
@@ -722,6 +724,22 @@ void ChatHandler::SendGlobalSysMessage(const char *str)
|
||||
free(buf);
|
||||
}
|
||||
|
||||
void ChatHandler::SendGlobalGMSysMessage(const char *str)
|
||||
{
|
||||
// Chat output
|
||||
WorldPacket data;
|
||||
|
||||
// need copy to prevent corruption by strtok call in LineFromMessage original string
|
||||
char* buf = strdup(str);
|
||||
char* pos = buf;
|
||||
|
||||
while(char* line = LineFromMessage(pos))
|
||||
{
|
||||
FillSystemMessageData(&data, line);
|
||||
sWorld.SendGlobalGMMessage(&data);
|
||||
}
|
||||
}
|
||||
|
||||
void ChatHandler::SendSysMessage(int32 entry)
|
||||
{
|
||||
SendSysMessage(GetTrinityString(entry));
|
||||
|
||||
@@ -81,6 +81,7 @@ class ChatHandler
|
||||
virtual bool needReportToTarget(Player* chr) const;
|
||||
|
||||
void SendGlobalSysMessage(const char *str);
|
||||
void SendGlobalGMSysMessage(const char *str);
|
||||
|
||||
bool ExecuteCommandInTable(ChatCommand *table, const char* text, const std::string& fullcommand);
|
||||
bool ShowHelpForCommand(ChatCommand *table, const char* cmd);
|
||||
@@ -110,7 +111,9 @@ class ChatHandler
|
||||
bool HandleRecallCommand(const char* args);
|
||||
bool HandleNameAnnounceCommand(const char* args);
|
||||
bool HandleAnnounceCommand(const char* args);
|
||||
bool HandleGMAnnounceCommand(const char* args);
|
||||
bool HandleNotifyCommand(const char* args);
|
||||
bool HandleGMNotifyCommand(const char* args);
|
||||
bool HandleGMmodeCommand(const char* args);
|
||||
bool HandleGMChatCommand(const char* args);
|
||||
bool HandleVisibleCommand(const char* args);
|
||||
|
||||
+4
-1
@@ -776,7 +776,10 @@ enum TrinityStrings
|
||||
LANG_INSTANCE_MUST_RAID_GRP = 5007,
|
||||
LANG_INSTANCE_NOT_AS_GHOST = 5008,
|
||||
LANG_COMMAND_PLAYED_TO_ALL = 5009,
|
||||
// Room for more Trinity strings 5009-9999
|
||||
// Room for more Trinity strings 5010-9999
|
||||
// Used for GM Announcements
|
||||
LANG_GM_BROADCAST = 6613,
|
||||
LANG_GM_NOTIFY = 6614,
|
||||
|
||||
// Use for not-in-offcial-sources patches
|
||||
// 10000-10999
|
||||
|
||||
@@ -139,6 +139,16 @@ bool ChatHandler::HandleAnnounceCommand(const char* args)
|
||||
return true;
|
||||
}
|
||||
|
||||
// announce to logged in GMs
|
||||
bool ChatHandler::HandleGMAnnounceCommand(const char* args)
|
||||
{
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
sWorld.SendGMText(LANG_GM_BROADCAST,args);
|
||||
return true;
|
||||
}
|
||||
|
||||
//notification player at the screen
|
||||
bool ChatHandler::HandleNotifyCommand(const char* args)
|
||||
{
|
||||
@@ -155,6 +165,22 @@ bool ChatHandler::HandleNotifyCommand(const char* args)
|
||||
return true;
|
||||
}
|
||||
|
||||
//notification GM at the screen
|
||||
bool ChatHandler::HandleGMNotifyCommand(const char* args)
|
||||
{
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
std::string str = GetTrinityString(LANG_GM_NOTIFY);
|
||||
str += args;
|
||||
|
||||
WorldPacket data(SMSG_NOTIFICATION, (str.size()+1));
|
||||
data << str;
|
||||
sWorld.SendGlobalGMMessage(&data);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//Enable\Dissable GM Mode
|
||||
bool ChatHandler::HandleGMmodeCommand(const char* args)
|
||||
{
|
||||
|
||||
+58
-58
@@ -95,7 +95,7 @@ bool ChatHandler::HandleReloadAllLootCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Loot Tables..." );
|
||||
LoadLootTables();
|
||||
SendGlobalSysMessage("DB tables `*_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB tables `*_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ bool ChatHandler::HandleReloadAllQuestCommand(const char* /*args*/)
|
||||
|
||||
sLog.outString( "Re-Loading Quests Relations..." );
|
||||
objmgr.LoadQuestRelations();
|
||||
SendGlobalSysMessage("DB tables `*_questrelation` and `*_involvedrelation` reloaded.");
|
||||
SendGlobalGMSysMessage("DB tables `*_questrelation` and `*_involvedrelation` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ bool ChatHandler::HandleReloadAllScriptsCommand(const char*)
|
||||
HandleReloadQuestEndScriptsCommand("a");
|
||||
HandleReloadQuestStartScriptsCommand("a");
|
||||
HandleReloadSpellScriptsCommand("a");
|
||||
SendGlobalSysMessage("DB tables `*_scripts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB tables `*_scripts` reloaded.");
|
||||
HandleReloadDbScriptStringCommand("a");
|
||||
HandleReloadWpScriptsCommand("a");
|
||||
return true;
|
||||
@@ -179,7 +179,7 @@ bool ChatHandler::HandleReloadConfigCommand(const char* /*args*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading config settings..." );
|
||||
sWorld.LoadConfigSettings(true);
|
||||
SendGlobalSysMessage("World config settings reloaded.");
|
||||
SendGlobalGMSysMessage("World config settings reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ bool ChatHandler::HandleReloadAreaTriggerTavernCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Tavern Area Triggers..." );
|
||||
objmgr.LoadTavernAreaTriggers();
|
||||
SendGlobalSysMessage("DB table `areatrigger_tavern` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `areatrigger_tavern` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -195,14 +195,14 @@ bool ChatHandler::HandleReloadAreaTriggerTeleportCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading AreaTrigger teleport definitions..." );
|
||||
objmgr.LoadAreaTriggerTeleports();
|
||||
SendGlobalSysMessage("DB table `areatrigger_teleport` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `areatrigger_teleport` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleReloadCommandCommand(const char*)
|
||||
{
|
||||
load_command_table = true;
|
||||
SendGlobalSysMessage("DB table `command` will be reloaded at next chat command use.");
|
||||
SendGlobalGMSysMessage("DB table `command` will be reloaded at next chat command use.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ bool ChatHandler::HandleReloadCreatureQuestRelationsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Loading Quests Relations... (`creature_questrelation`)" );
|
||||
objmgr.LoadCreatureQuestRelations();
|
||||
SendGlobalSysMessage("DB table `creature_questrelation` (creature quest givers) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `creature_questrelation` (creature quest givers) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -218,7 +218,7 @@ bool ChatHandler::HandleReloadCreatureQuestInvRelationsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Loading Quests Relations... (`creature_involvedrelation`)" );
|
||||
objmgr.LoadCreatureInvolvedRelations();
|
||||
SendGlobalSysMessage("DB table `creature_involvedrelation` (creature quest takers) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `creature_involvedrelation` (creature quest takers) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ bool ChatHandler::HandleReloadGOQuestRelationsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Loading Quests Relations... (`gameobject_questrelation`)" );
|
||||
objmgr.LoadGameobjectQuestRelations();
|
||||
SendGlobalSysMessage("DB table `gameobject_questrelation` (gameobject quest givers) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `gameobject_questrelation` (gameobject quest givers) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -234,7 +234,7 @@ bool ChatHandler::HandleReloadGOQuestInvRelationsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Loading Quests Relations... (`gameobject_involvedrelation`)" );
|
||||
objmgr.LoadGameobjectInvolvedRelations();
|
||||
SendGlobalSysMessage("DB table `gameobject_involvedrelation` (gameobject quest takers) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `gameobject_involvedrelation` (gameobject quest takers) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ bool ChatHandler::HandleReloadQuestAreaTriggersCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Quest Area Triggers..." );
|
||||
objmgr.LoadQuestAreaTriggers();
|
||||
SendGlobalSysMessage("DB table `areatrigger_involvedrelation` (quest area triggers) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `areatrigger_involvedrelation` (quest area triggers) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -250,7 +250,7 @@ bool ChatHandler::HandleReloadQuestTemplateCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Quest Templates..." );
|
||||
objmgr.LoadQuests();
|
||||
SendGlobalSysMessage("DB table `quest_template` (quest definitions) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `quest_template` (quest definitions) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -259,7 +259,7 @@ bool ChatHandler::HandleReloadLootTemplatesCreatureCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`creature_loot_template`)" );
|
||||
LoadLootTemplates_Creature();
|
||||
LootTemplates_Creature.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `creature_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `creature_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ bool ChatHandler::HandleReloadLootTemplatesDisenchantCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`disenchant_loot_template`)" );
|
||||
LoadLootTemplates_Disenchant();
|
||||
LootTemplates_Disenchant.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `disenchant_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `disenchant_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ bool ChatHandler::HandleReloadLootTemplatesFishingCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`fishing_loot_template`)" );
|
||||
LoadLootTemplates_Fishing();
|
||||
LootTemplates_Fishing.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `fishing_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `fishing_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ bool ChatHandler::HandleReloadLootTemplatesGameobjectCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`gameobject_loot_template`)" );
|
||||
LoadLootTemplates_Gameobject();
|
||||
LootTemplates_Gameobject.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `gameobject_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `gameobject_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ bool ChatHandler::HandleReloadLootTemplatesItemCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`item_loot_template`)" );
|
||||
LoadLootTemplates_Item();
|
||||
LootTemplates_Item.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `item_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `item_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ bool ChatHandler::HandleReloadLootTemplatesPickpocketingCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`pickpocketing_loot_template`)" );
|
||||
LoadLootTemplates_Pickpocketing();
|
||||
LootTemplates_Pickpocketing.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `pickpocketing_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `pickpocketing_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ bool ChatHandler::HandleReloadLootTemplatesProspectingCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`prospecting_loot_template`)" );
|
||||
LoadLootTemplates_Prospecting();
|
||||
LootTemplates_Prospecting.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `prospecting_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `prospecting_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ bool ChatHandler::HandleReloadLootTemplatesQuestMailCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`quest_mail_loot_template`)" );
|
||||
LoadLootTemplates_QuestMail();
|
||||
LootTemplates_QuestMail.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `quest_mail_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `quest_mail_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -330,7 +330,7 @@ bool ChatHandler::HandleReloadLootTemplatesReferenceCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Loot Tables... (`reference_loot_template`)" );
|
||||
LoadLootTemplates_Reference();
|
||||
SendGlobalSysMessage("DB table `reference_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `reference_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -339,7 +339,7 @@ bool ChatHandler::HandleReloadLootTemplatesSkinningCommand(const char*)
|
||||
sLog.outString( "Re-Loading Loot Tables... (`skinning_loot_template`)" );
|
||||
LoadLootTemplates_Skinning();
|
||||
LootTemplates_Skinning.CheckLootRefs();
|
||||
SendGlobalSysMessage("DB table `skinning_loot_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `skinning_loot_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ bool ChatHandler::HandleReloadTrinityStringCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading trinity_string Table!" );
|
||||
objmgr.LoadTrinityStrings();
|
||||
SendGlobalSysMessage("DB table `trinity_string` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `trinity_string` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -355,7 +355,7 @@ bool ChatHandler::HandleReloadNpcOptionCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading `npc_option` Table!" );
|
||||
objmgr.LoadNpcOptions();
|
||||
SendGlobalSysMessage("DB table `npc_option` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `npc_option` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -363,7 +363,7 @@ bool ChatHandler::HandleReloadNpcGossipCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading `npc_gossip` Table!" );
|
||||
objmgr.LoadNpcTextId();
|
||||
SendGlobalSysMessage("DB table `npc_gossip` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `npc_gossip` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -371,7 +371,7 @@ bool ChatHandler::HandleReloadNpcTrainerCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading `npc_trainer` Table!" );
|
||||
objmgr.LoadTrainerSpell();
|
||||
SendGlobalSysMessage("DB table `npc_trainer` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `npc_trainer` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -379,7 +379,7 @@ bool ChatHandler::HandleReloadNpcVendorCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading `npc_vendor` Table!" );
|
||||
objmgr.LoadVendors();
|
||||
SendGlobalSysMessage("DB table `npc_vendor` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `npc_vendor` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -387,7 +387,7 @@ bool ChatHandler::HandleReloadReservedNameCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Loading ReservedNames... (`reserved_name`)" );
|
||||
objmgr.LoadReservedPlayersNames();
|
||||
SendGlobalSysMessage("DB table `reserved_name` (player reserved names) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `reserved_name` (player reserved names) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -395,7 +395,7 @@ bool ChatHandler::HandleReloadSkillDiscoveryTemplateCommand(const char* /*args*/
|
||||
{
|
||||
sLog.outString( "Re-Loading Skill Discovery Table..." );
|
||||
LoadSkillDiscoveryTable();
|
||||
SendGlobalSysMessage("DB table `skill_discovery_template` (recipes discovered at crafting) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `skill_discovery_template` (recipes discovered at crafting) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -403,7 +403,7 @@ bool ChatHandler::HandleReloadSkillExtraItemTemplateCommand(const char* /*args*/
|
||||
{
|
||||
sLog.outString( "Re-Loading Skill Extra Item Table..." );
|
||||
LoadSkillExtraItemTable();
|
||||
SendGlobalSysMessage("DB table `skill_extra_item_template` (extra item creation when crafting) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `skill_extra_item_template` (extra item creation when crafting) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ bool ChatHandler::HandleReloadSkillFishingBaseLevelCommand(const char* /*args*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Skill Fishing base level requirements..." );
|
||||
objmgr.LoadFishingBaseSkillLevel();
|
||||
SendGlobalSysMessage("DB table `skill_fishing_base_level` (fishing base level for zone/subzone) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `skill_fishing_base_level` (fishing base level for zone/subzone) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -419,7 +419,7 @@ bool ChatHandler::HandleReloadSpellAffectCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading SpellAffect definitions..." );
|
||||
spellmgr.LoadSpellAffects();
|
||||
SendGlobalSysMessage("DB table `spell_affect` (spell mods apply requirements) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_affect` (spell mods apply requirements) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ bool ChatHandler::HandleReloadSpellRequiredCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Spell Required Data... " );
|
||||
spellmgr.LoadSpellRequired();
|
||||
SendGlobalSysMessage("DB table `spell_required` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_required` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -435,7 +435,7 @@ bool ChatHandler::HandleReloadSpellElixirCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Spell Elixir types..." );
|
||||
spellmgr.LoadSpellElixirs();
|
||||
SendGlobalSysMessage("DB table `spell_elixir` (spell elixir types) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_elixir` (spell elixir types) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@ bool ChatHandler::HandleReloadSpellLearnSpellCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Spell Learn Spells..." );
|
||||
spellmgr.LoadSpellLearnSpells();
|
||||
SendGlobalSysMessage("DB table `spell_learn_spell` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_learn_spell` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -451,7 +451,7 @@ bool ChatHandler::HandleReloadSpellProcEventCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Spell Proc Event conditions..." );
|
||||
spellmgr.LoadSpellProcEvents();
|
||||
SendGlobalSysMessage("DB table `spell_proc_event` (spell proc trigger requirements) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_proc_event` (spell proc trigger requirements) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -459,7 +459,7 @@ bool ChatHandler::HandleReloadSpellScriptTargetCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading SpellsScriptTarget..." );
|
||||
spellmgr.LoadSpellScriptTarget();
|
||||
SendGlobalSysMessage("DB table `spell_script_target` (spell targets selection in case specific creature/GO requirements) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_script_target` (spell targets selection in case specific creature/GO requirements) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -467,7 +467,7 @@ bool ChatHandler::HandleReloadSpellTargetPositionCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Spell target coordinates..." );
|
||||
spellmgr.LoadSpellTargetPositions();
|
||||
SendGlobalSysMessage("DB table `spell_target_position` (destination coordinates for spell targets) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_target_position` (destination coordinates for spell targets) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -475,7 +475,7 @@ bool ChatHandler::HandleReloadSpellThreatsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Aggro Spells Definitions...");
|
||||
spellmgr.LoadSpellThreats();
|
||||
SendGlobalSysMessage("DB table `spell_threat` (spell aggro definitions) reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_threat` (spell aggro definitions) reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -483,7 +483,7 @@ bool ChatHandler::HandleReloadSpellPetAurasCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Spell pet auras...");
|
||||
spellmgr.LoadSpellPetAuras();
|
||||
SendGlobalSysMessage("DB table `spell_pet_auras` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_pet_auras` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -491,7 +491,7 @@ bool ChatHandler::HandleReloadPageTextsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Page Texts..." );
|
||||
objmgr.LoadPageTexts();
|
||||
SendGlobalSysMessage("DB table `page_texts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `page_texts` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -499,7 +499,7 @@ bool ChatHandler::HandleReloadItemEnchantementsCommand(const char*)
|
||||
{
|
||||
sLog.outString( "Re-Loading Item Random Enchantments Table..." );
|
||||
LoadRandomEnchantmentsTable();
|
||||
SendGlobalSysMessage("DB table `item_enchantment_template` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `item_enchantment_template` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -518,7 +518,7 @@ bool ChatHandler::HandleReloadGameObjectScriptsCommand(const char* arg)
|
||||
objmgr.LoadGameObjectScripts();
|
||||
|
||||
if(*arg!='a')
|
||||
SendGlobalSysMessage("DB table `gameobject_scripts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `gameobject_scripts` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -538,7 +538,7 @@ bool ChatHandler::HandleReloadEventScriptsCommand(const char* arg)
|
||||
objmgr.LoadEventScripts();
|
||||
|
||||
if(*arg!='a')
|
||||
SendGlobalSysMessage("DB table `event_scripts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `event_scripts` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -578,7 +578,7 @@ bool ChatHandler::HandleReloadQuestEndScriptsCommand(const char* arg)
|
||||
objmgr.LoadQuestEndScripts();
|
||||
|
||||
if(*arg!='a')
|
||||
SendGlobalSysMessage("DB table `quest_end_scripts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `quest_end_scripts` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -598,7 +598,7 @@ bool ChatHandler::HandleReloadQuestStartScriptsCommand(const char* arg)
|
||||
objmgr.LoadQuestStartScripts();
|
||||
|
||||
if(*arg!='a')
|
||||
SendGlobalSysMessage("DB table `quest_start_scripts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `quest_start_scripts` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -618,7 +618,7 @@ bool ChatHandler::HandleReloadSpellScriptsCommand(const char* arg)
|
||||
objmgr.LoadSpellScripts();
|
||||
|
||||
if(*arg!='a')
|
||||
SendGlobalSysMessage("DB table `spell_scripts` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_scripts` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -627,7 +627,7 @@ bool ChatHandler::HandleReloadDbScriptStringCommand(const char* arg)
|
||||
{
|
||||
sLog.outString( "Re-Loading Script strings from `db_script_string`...");
|
||||
objmgr.LoadDbScriptStrings();
|
||||
SendGlobalSysMessage("DB table `db_script_string` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `db_script_string` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -637,7 +637,7 @@ bool ChatHandler::HandleReloadGameGraveyardZoneCommand(const char* /*arg*/)
|
||||
|
||||
objmgr.LoadGraveyardZones();
|
||||
|
||||
SendGlobalSysMessage("DB table `game_graveyard_zone` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `game_graveyard_zone` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -648,7 +648,7 @@ bool ChatHandler::HandleReloadGameTeleCommand(const char* /*arg*/)
|
||||
|
||||
objmgr.LoadGameTele();
|
||||
|
||||
SendGlobalSysMessage("DB table `game_tele` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `game_tele` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -659,7 +659,7 @@ bool ChatHandler::HandleReloadSpellDisabledCommand(const char* /*arg*/)
|
||||
|
||||
objmgr.LoadSpellDisabledEntrys();
|
||||
|
||||
SendGlobalSysMessage("DB table `spell_disabled` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `spell_disabled` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -668,7 +668,7 @@ bool ChatHandler::HandleReloadLocalesCreatureCommand(const char* /*arg*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Locales Creature ...");
|
||||
objmgr.LoadCreatureLocales();
|
||||
SendGlobalSysMessage("DB table `locales_creature` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `locales_creature` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -676,7 +676,7 @@ bool ChatHandler::HandleReloadLocalesGameobjectCommand(const char* /*arg*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Locales Gameobject ... ");
|
||||
objmgr.LoadGameObjectLocales();
|
||||
SendGlobalSysMessage("DB table `locales_gameobject` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `locales_gameobject` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -684,7 +684,7 @@ bool ChatHandler::HandleReloadLocalesItemCommand(const char* /*arg*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Locales Item ... ");
|
||||
objmgr.LoadItemLocales();
|
||||
SendGlobalSysMessage("DB table `locales_item` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `locales_item` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -692,7 +692,7 @@ bool ChatHandler::HandleReloadLocalesNpcTextCommand(const char* /*arg*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Locales NPC Text ... ");
|
||||
objmgr.LoadNpcTextLocales();
|
||||
SendGlobalSysMessage("DB table `locales_npc_text` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `locales_npc_text` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -700,7 +700,7 @@ bool ChatHandler::HandleReloadLocalesPageTextCommand(const char* /*arg*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Locales Page Text ... ");
|
||||
objmgr.LoadPageTextLocales();
|
||||
SendGlobalSysMessage("DB table `locales_page_text` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `locales_page_text` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -708,7 +708,7 @@ bool ChatHandler::HandleReloadLocalesQuestCommand(const char* /*arg*/)
|
||||
{
|
||||
sLog.outString( "Re-Loading Locales Quest ... ");
|
||||
objmgr.LoadQuestLocales();
|
||||
SendGlobalSysMessage("DB table `locales_quest` reloaded.");
|
||||
SendGlobalGMSysMessage("DB table `locales_quest` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -2273,6 +2273,23 @@ void World::SendGlobalMessage(WorldPacket *packet, WorldSession *self, uint32 te
|
||||
}
|
||||
}
|
||||
|
||||
void World::SendGlobalGMMessage(WorldPacket *packet, WorldSession *self, uint32 team)
|
||||
{
|
||||
SessionMap::iterator itr;
|
||||
for (itr = m_sessions.begin(); itr != m_sessions.end(); itr++)
|
||||
{
|
||||
if (itr->second &&
|
||||
itr->second->GetPlayer() &&
|
||||
itr->second->GetPlayer()->IsInWorld() &&
|
||||
itr->second != self &&
|
||||
itr->second->GetSecurity() >SEC_PLAYER &&
|
||||
(team == 0 || itr->second->GetPlayer()->GetTeam() == team) )
|
||||
{
|
||||
itr->second->SendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Send a System Message to all players (except self if mentioned)
|
||||
void World::SendWorldText(int32 string_id, ...)
|
||||
{
|
||||
@@ -2327,6 +2344,60 @@ void World::SendWorldText(int32 string_id, ...)
|
||||
delete data_cache[i][j];
|
||||
}
|
||||
|
||||
void World::SendGMText(int32 string_id, ...)
|
||||
{
|
||||
std::vector<std::vector<WorldPacket*> > data_cache; // 0 = default, i => i-1 locale index
|
||||
|
||||
for(SessionMap::iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
|
||||
{
|
||||
if(!itr->second || !itr->second->GetPlayer() || !itr->second->GetPlayer()->IsInWorld() )
|
||||
continue;
|
||||
|
||||
uint32 loc_idx = itr->second->GetSessionDbLocaleIndex();
|
||||
uint32 cache_idx = loc_idx+1;
|
||||
|
||||
std::vector<WorldPacket*>* data_list;
|
||||
|
||||
// create if not cached yet
|
||||
if(data_cache.size() < cache_idx+1 || data_cache[cache_idx].empty())
|
||||
{
|
||||
if(data_cache.size() < cache_idx+1)
|
||||
data_cache.resize(cache_idx+1);
|
||||
|
||||
data_list = &data_cache[cache_idx];
|
||||
|
||||
char const* text = objmgr.GetTrinityString(string_id,loc_idx);
|
||||
|
||||
char buf[1000];
|
||||
|
||||
va_list argptr;
|
||||
va_start( argptr, string_id );
|
||||
vsnprintf( buf,1000, text, argptr );
|
||||
va_end( argptr );
|
||||
|
||||
char* pos = &buf[0];
|
||||
|
||||
while(char* line = ChatHandler::LineFromMessage(pos))
|
||||
{
|
||||
WorldPacket* data = new WorldPacket();
|
||||
ChatHandler::FillMessageData(data, NULL, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, 0, line, NULL);
|
||||
data_list->push_back(data);
|
||||
}
|
||||
}
|
||||
else
|
||||
data_list = &data_cache[cache_idx];
|
||||
|
||||
for(int i = 0; i < data_list->size(); ++i)
|
||||
if(itr->second->GetSecurity()>0)
|
||||
itr->second->SendPacket((*data_list)[i]);
|
||||
}
|
||||
|
||||
// free memory
|
||||
for(int i = 0; i < data_cache.size(); ++i)
|
||||
for(int j = 0; j < data_cache[i].size(); ++j)
|
||||
delete data_cache[i][j];
|
||||
}
|
||||
|
||||
/// Send a System Message to all players (except self if mentioned)
|
||||
void World::SendGlobalText(const char* text, WorldSession *self)
|
||||
{
|
||||
|
||||
@@ -419,7 +419,9 @@ class World
|
||||
|
||||
void SendWorldText(int32 string_id, ...);
|
||||
void SendGlobalText(const char* text, WorldSession *self);
|
||||
void SendGMText(int32 string_id, ...);
|
||||
void SendGlobalMessage(WorldPacket *packet, WorldSession *self = 0, uint32 team = 0);
|
||||
void SendGlobalGMMessage(WorldPacket *packet, WorldSession *self = 0, uint32 team = 0);
|
||||
void SendZoneMessage(uint32 zone, WorldPacket *packet, WorldSession *self = 0, uint32 team = 0);
|
||||
void SendZoneText(uint32 zone, const char *text, WorldSession *self = 0, uint32 team = 0);
|
||||
void SendServerMessage(uint32 type, const char *text = "", Player* player = NULL);
|
||||
|
||||
Reference in new issue
Block a user