diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-04-04 23:52:17 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 23:52:17 +0300 |
commit | 53af9436ba90f619fb0dc4a6f9a28a81061420be (patch) | |
tree | a54752de55f3a803a1f3d66fd9bf7d1b19f8f17e /src/map/clif.c | |
parent | ff2fe99a614aa23c73f63402c67c08f7a4885c4b (diff) | |
parent | 4faf1f94fc7d38d0004b9694341c1c63c5785894 (diff) | |
download | hercules-53af9436ba90f619fb0dc4a6f9a28a81061420be.tar.gz hercules-53af9436ba90f619fb0dc4a6f9a28a81061420be.tar.bz2 hercules-53af9436ba90f619fb0dc4a6f9a28a81061420be.tar.xz hercules-53af9436ba90f619fb0dc4a6f9a28a81061420be.zip |
Merge pull request #2012 from Asheraf/clifmsgtable
add some missing msgtable packets
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index afe8aac40..942600a26 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9232,6 +9232,56 @@ void clif_msgtable_skill(struct map_session_data* sd, uint16 skill_id, int msg_i } /** +* Displays a format string from msgstringtable.txt with a %s value (ZC_FORMATSTRING_MSG). +* +* @param sd The target character. +* @param msg_id msgstringtable message index, 0-based (@see enum clif_messages) +* @param value The value to fill %s. +*/ +void clif_msgtable_str(struct map_session_data *sd, uint16 msg_id, const char *value) +{ + int message_len; + int len; + struct PACKET_ZC_FORMATSTRING_MSG *p; + + nullpo_retv(sd); + nullpo_retv(value); + + message_len = (int)strlen(value) + 1; + len = sizeof(*p) + message_len + 1; + + p = (struct PACKET_ZC_FORMATSTRING_MSG *)aMalloc(len); + p->PacketType = 0x2c2; + p->PacketLength = len; + p->MessageId = msg_id; + safestrncpy(p->MessageString, value, message_len); + p->MessageString[message_len] = 0; + + clif->send(p, p->PacketLength, &sd->bl, SELF); + aFree(p); +} + +/** +* Displays a format string from msgstringtable.txt with a color (ZC_MSG_COLOR). +* +* @param sd The target character. +* @param msg_id msgstringtable message index, 0-based (@see enum clif_messages) +* @param color The color to use +*/ +void clif_msgtable_color(struct map_session_data *sd, uint16 msg_id, uint32 color) +{ + struct PACKET_ZC_MSG_COLOR p; + + nullpo_retv(sd); + + p.PacketType = 0x9cd; + p.MessageId = msg_id; + p.MessageColor = RGB2BGR(color); + + clif->send(&p, sizeof(p), &sd->bl, SELF); +} + +/** * Validates and processes a global/guild/party message packet. * * @param[in] sd The source character. @@ -20923,6 +20973,8 @@ void clif_defaults(void) { clif->msgtable_skill = clif_msgtable_skill; clif->msgtable = clif_msgtable; clif->msgtable_num = clif_msgtable_num; + clif->msgtable_str = clif_msgtable_str; + clif->msgtable_color = clif_msgtable_color; clif->message = clif_displaymessage; clif->messageln = clif_displaymessage2; clif->messages = clif_displaymessage_sprintf; |