STALKER |
Дата: Среда, 29.02.2012, 00:04 | Сообщение # 1 Offline |
| выглядит аннонс вот так: .nameannounce текст Заливать в базу мира (world или mangos) Code INSERT INTO `command` VALUES ('nameannounce',1,'Syntax: .nameannounce $MessageToBroadcast\r\n\r\nSend a global message to all players online in chat log with colored sender\'s name.'); REPLACE INTO `mangos_string` VALUES (60,'|c1f40af20 <Mod>|cffff0000[%s]|c1f40af20 announce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (61,'|c1f40af20 <GM>|cffff0000[%s]|c1f40af20 announce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (62,'|c1f40af20 <Admin>|cffff0000[%s]|c1f40af20 announce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
патч в аттаче.
Code diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index b650efd..dc9b3b5 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -690,6 +690,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 }, + { "nameannounce", SEC_MODERATOR, false, &ChatHandler::HandleNameAnnounceCommand, "", 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 38fed9c..01a04f9 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -515,6 +515,7 @@ class ChatHandler bool HandleGroupgoCommand(char* args); bool HandleRecallCommand(char* args); bool HandleAnnounceCommand(char* args); + bool HandleNameAnnounceCommand(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 f5b712e..22e4e8b 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -89,6 +89,9 @@ enum MangosStrings LANG_GM_ACCEPTS_WHISPER = 63, LANG_GM_NO_WHISPER = 64, // Room for more level 0 65-99 not used + LANG_SYSTEMMESSAGE_MODERATOR = 60, + LANG_SYSTEMMESSAGE_GAMEMASTER = 61, + LANG_SYSTEMMESSAGE_ADMINISTRATOR = 62, // level 1 chat LANG_GLOBAL_NOTIFY = 100, diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 167a144..74a9f83 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -130,6 +130,32 @@ bool ChatHandler::HandleAnnounceCommand(char* args) return true; } +bool ChatHandler::HandleNameAnnounceCommand(char* args) +{ + int32 strid = 0; + + if(!*args) + return false; + + switch(m_session->GetSecurity()) { + case SEC_MODERATOR: + strid = LANG_SYSTEMMESSAGE_MODERATOR; + break; + case SEC_GAMEMASTER: + strid = LANG_SYSTEMMESSAGE_GAMEMASTER; + break; + case SEC_ADMINISTRATOR: + strid = LANG_SYSTEMMESSAGE_ADMINISTRATOR; + break; + default: + return false; + } + + sWorld.SendWorldText(strid, m_session->GetPlayerName(), args); + + return true; +} + //notification player at the screen bool ChatHandler::HandleNotifyCommand(char* args) {
|
|
| |