Commande GmAnnounce
Bonjour à tous,
Voici un patch qui vous permettra de faire des annonces uniquement visibles par vos Mj !
[code=diff]diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index 9702808..82c40d0 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -713,6 +713,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "aura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAuraCommand, "", NULL },
{ "unaura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnAuraCommand, "", NULL },
{ "announce", SEC_MODERATOR, true, &ChatHandler::HandleAnnounceCommand, "", NULL },
+ { "gmannounce", SEC_MODERATOR, true, &ChatHandler::HandleGmAnnounceCommand, "", NULL },
{ "notify", SEC_MODERATOR, true, &ChatHandler::HandleNotifyCommand, "", NULL },
{ "goname", SEC_MODERATOR, false, &ChatHandler::HandleGonameCommand, "", NULL },
{ "namego", SEC_MODERATOR, false, &ChatHandler::HandleNamegoCommand, "", NULL },
diff --git a/src/game/Chat.h b/src/game/Chat.h
index c9d4af7..9999b01 100644
--- a/src/game/Chat.h
+++ b/src/game/Chat.h
@@ -523,6 +523,7 @@ class ChatHandler
bool HandleGroupgoCommand(char* args);
bool HandleRecallCommand(char* args);
bool HandleAnnounceCommand(char* args);
+ bool HandleGmAnnounceCommand(char* args);
bool HandleNotifyCommand(char* args);
bool HandleGPSCommand(char* args);
bool HandleTaxiCheatCommand(char* args);
diff --git a/src/game/Language.h b/src/game/Language.h
index b4f6f47..c86b489 100644
--- a/src/game/Language.h
+++ b/src/game/Language.h
@@ -943,6 +943,8 @@ enum MangosStrings
// 10000-10999

// Use for custom patches 11000-11999
+ // GmAnnounce
+ LANG_GMSYSTEMMESSAGE = 11000,

// NOT RESERVED IDS 12000-1999999999
// `db_script_string` table index 2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID)
diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp
index c1c7517..bdf2cca 100644
--- a/src/game/Level1.cpp
+++ b/src/game/Level1.cpp
@@ -130,6 +130,16 @@ bool ChatHandler::HandleAnnounceCommand(char* args)
return true;
}

+// Gm announce
+bool ChatHandler::HandleGmAnnounceCommand(char* args)
+{
+ if(!*args)
+ return false;
+
+ sWorld.SendGMText(LANG_GMSYSTEMMESSAGE,args);
+ return true;
+}
+
//notification player at the screen
bool ChatHandler::HandleNotifyCommand(char* args)
{
diff --git a/src/game/World.cpp b/src/game/World.cpp
index 7445c2d..fafca2b 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -1626,6 +1626,24 @@ void World::SendWorldText(int32 string_id, ...)
va_end(ap);
}

+void World::SendGMText(int32 string_id, ...)
+{
+ va_list ap;
+ va_start(ap, string_id);
+
+ MaNGOS::WorldWorldTextBuilder wt_builder(string_id, &ap);
+ MaNGOS::LocalizedPacketListDo<MaNGOS::WorldWorldTextBuilder> wt_do(wt_builder);
+ for(SessionMap::const_iterator itr = m_sessions.begin(); itr != m_sessions.end(); ++itr)
+ {
+ if(!itr->second || !itr->second->GetPlayer() || !itr->second->GetPlayer()->IsInWorld() && itr->second->GetSecurity() =< SEC_MODERATOR)
+ continue;
+
+ wt_do(itr->second->GetPlayer());
+ }
+
+ va_end(ap);
+}
+
/// DEPRICATED, only for debug purpose. Send a System Message to all players (except self if mentioned)
void World::SendGlobalText(const char* text, WorldSession *self)
{
diff --git a/src/game/World.h b/src/game/World.h
index d382489..342f14d 100644
--- a/src/game/World.h
+++ b/src/game/World.h
@@ -500,6 +500,7 @@ class World
void LoadConfigSettings(bool reload = false);

void SendWorldText(int32 string_id, ...);
+ void SendGMText(int32 string_id, ...);
void SendGlobalText(const char* text, WorldSession *self);
void SendGlobalMessage(WorldPacket *packet, WorldSession *self = 0, uint32 team = 0);
void SendZoneMessage(uint32 zone, WorldPacket *packet, WorldSession *self = 0, uint32 team = 0);[/code]

Et le SQL :
[code=sql]DELETE FROM `command` WHERE name = 'gmannounce';
INSERT INTO `command` (name, security, help) VALUES
('gmannounce', 12, 'Display a message to every connected GM. Affiche un message à tous les Mj connectés.');

DELETE FROM mangos_string WHERE entry = 11000;
INSERT INTO mangos_string (entry, content_default, content_loc1, content_loc2, content_loc3, content_loc4, content_loc5, content_loc6, content_loc7, content_loc8) VALUES
(11000,'|cffff0000[GM Announce]: %s|r',NULL,'|cffff0000[Annonce Mj]: %s|r',NULL,NULL,NULL,NULL,NULL,NULL);[/code]

Source : => GetMangos <=

Have Fun !
Cordialement,
MacWarrior.
Mais OMG !
Oû vas-tu chercher toutes ces idées ! Heureux
(31-03-2011 17:38)hipili a écrit :  Mais OMG !
Oû vas-tu chercher toutes ces idées ! Heureux
(31-03-2011 15:55)MacWarrior a écrit :  Source : => GetMangos <=
Smile Hihi

Retourner en haut Accueil