From ec28958d868afdb3b3e421200c630d15b3526096 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 4 Apr 2017 22:33:05 +0300 Subject: Send current player language in send_pc_info. Send send_pc_info if language was changed. Also change plugin version to 17. --- src/elogin/send.c | 2 +- src/emap/pc.c | 1 + src/emap/send.c | 21 +++++++++++++-------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/elogin/send.c b/src/elogin/send.c index d1cb423..6eb081e 100644 --- a/src/elogin/send.c +++ b/src/elogin/send.c @@ -24,7 +24,7 @@ void send_server_version(int fd) WFIFOW(fd, 0) = 0x7531; WFIFOW(fd, 2) = 16; WFIFOL(fd, 4) = 0; // unused - WFIFOL(fd, 8) = 16; // plugin version + WFIFOL(fd, 8) = 17; // plugin version WFIFOL(fd, 12) = serverPacketVersion; // server packet version WFIFOSET(fd, WFIFOW(fd,2)); diff --git a/src/emap/pc.c b/src/emap/pc.c index 92e6fca..c6fdb02 100644 --- a/src/emap/pc.c +++ b/src/emap/pc.c @@ -63,6 +63,7 @@ int epc_setregistry_pre(TBL_PC **sdPtr, if (!data) return 0; data->language = *val; + send_pc_info(&sd->bl, &sd->bl, AREA); } else if (*reg == mountScriptId) { diff --git a/src/emap/send.c b/src/emap/send.c index a570ec0..616713f 100644 --- a/src/emap/send.c +++ b/src/emap/send.c @@ -185,28 +185,33 @@ void send_pc_info(struct block_list* bl1, if (!bl1 || bl1->type != BL_PC) return; - char buf[14]; struct map_session_data *sd = (struct map_session_data *)bl1; struct SessionExt *data = session_get_bysd(sd); if (!data) return; struct map_session_data *tsd = (struct map_session_data *)bl2; - if (tsd) - { - struct SessionExt *tdata = session_get_bysd(tsd); - if (!tdata || (bl1 != bl2 && tdata->clientVersion < 4)) - return; - } + if (!tsd) + return; + struct SessionExt *tdata = session_get_bysd(tsd); + if (!tdata || (bl1 != bl2 && tdata->clientVersion < 4)) + return; + int len = 14; + if (tdata->clientVersion >= 21) + len = 16; + char buf[len]; WBUFW (buf, 0) = 0xb0a; - WBUFW (buf, 2) = 14; // len + WBUFW (buf, 2) = len; WBUFL (buf, 4) = sd->bl.id; if (pc_has_permission(sd, permission_send_gm_flag)) WBUFL (buf, 8) = sd->group_id; else WBUFL (buf, 8) = 0; WBUFW (buf, 12) = data->mount; + if (tdata->clientVersion >= 21) + WBUFW (buf, 14) = data->language; + clif->send(&buf, sizeof(buf), bl2, target); } -- cgit v1.2.3-60-g2f50