summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/elogin/send.c2
-rw-r--r--src/emap/pc.c1
-rw-r--r--src/emap/send.c21
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);
}