diff options
author | epoque11 <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-03-29 18:43:58 +0000 |
---|---|---|
committer | epoque11 <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-03-29 18:43:58 +0000 |
commit | b558c22a6a21f943c3ee75243d84b00ecae6cbe7 (patch) | |
tree | 59bd6ff54f1efdce67a849698e8e504de23758d5 /src | |
parent | d5134f4a7a590e40a91610418c695c4ff7387bd0 (diff) | |
download | hercules-b558c22a6a21f943c3ee75243d84b00ecae6cbe7.tar.gz hercules-b558c22a6a21f943c3ee75243d84b00ecae6cbe7.tar.bz2 hercules-b558c22a6a21f943c3ee75243d84b00ecae6cbe7.tar.xz hercules-b558c22a6a21f943c3ee75243d84b00ecae6cbe7.zip |
- Merged main-chat message handling (as requested/enforced by trojal <3)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15816 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/atcommand.c | 11 | ||||
-rw-r--r-- | src/map/clif.c | 8 | ||||
-rw-r--r-- | src/map/intif.c | 21 | ||||
-rw-r--r-- | src/map/intif.h | 1 |
4 files changed, 27 insertions, 14 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 74021b3db..978feb552 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -7790,14 +7790,9 @@ ACMD_FUNC(main) clif_displaymessage(fd, msg_txt(387)); return -1; } - sprintf(atcmd_output, msg_txt(386), sd->status.name, message); - // I use 0xFE000000 color for signalizing that this message is - // main chat message. 0xFE000000 is invalid color, same using - // 0xFF000000 for simple (not colored) GM messages. [LuzZza] - intif_broadcast2(atcmd_output, strlen(atcmd_output) + 1, 0xFE000000, 0, 0, 0, 0); - - // Chat logging type 'M' / Main Chat - log_chat(LOG_CHAT_MAINCHAT, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message); + + // send the message using inter-server system + intif_main_message( sd, message ); } } else { diff --git a/src/map/clif.c b/src/map/clif.c index 9dece4e7c..bd5f4721d 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9827,14 +9827,10 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd) if(!sd->state.mainchat) clif_displaymessage(fd, msg_txt(388)); // You should enable main chat with "@main on" command. else { - char output[256]; - snprintf(output, ARRAYLENGTH(output), msg_txt(386), sd->status.name, message); - intif_broadcast2(output, strlen(output) + 1, 0xFE000000, 0, 0, 0, 0); + // send the main message using inter-server system + intif_main_message( sd, message ); } - // Chat logging type 'M' / Main Chat - log_chat(LOG_CHAT_MAINCHAT, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message); - return; } diff --git a/src/map/intif.c b/src/map/intif.c index 3bfb608de..f84d57a19 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -192,6 +192,27 @@ int intif_broadcast2(const char* mes, int len, unsigned long fontColor, short fo return 0; } +/// send a message using the main chat system +/// <sd> the source of message +/// <message> the message that was sent +int intif_main_message(struct map_session_data* sd, const char* message) +{ + char output[256]; + + nullpo_retv(sd); + + // format the message for main broadcasting + snprintf( output, sizeof(output), msg_txt(386), sd->status.name, message ); + + // send the message using the inter-server broadcast service + intif_broadcast2( output, strlen(output) + 1, 0xFE000000, 0, 0, 0, 0 ); + + // log the chat message + log_chat( LOG_CHAT_MAINCHAT, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message ); + + return 0; +} + // The transmission of Wisp/Page to inter-server (player not found on this server) int intif_wis_message(struct map_session_data *sd, char *nick, char *mes, int mes_len) { diff --git a/src/map/intif.h b/src/map/intif.h index c7dc25db4..847523593 100644 --- a/src/map/intif.h +++ b/src/map/intif.h @@ -18,6 +18,7 @@ int intif_parse(int fd); int intif_broadcast(const char* mes, int len, int type); int intif_broadcast2(const char* mes, int len, unsigned long fontColor, short fontType, short fontSize, short fontAlign, short fontY); +int intif_main_message(struct map_session_data* sd, const char* message); int intif_wis_message(struct map_session_data *sd,char *nick,char *mes,int mes_len); int intif_wis_message_to_gm(char *Wisp_name, int permission, char *mes); |