From 8d356dbe3f056474700fcbdd563d8ea437b1464e Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Sun, 2 Nov 2008 00:19:12 +0000 Subject: * Minor cleanup in login server * Char server now records client version and reports it to map server * Map server will now report all skills (even ones with dangerous indices) for client version 1 and above * Use status change val1 (instead of val2) index for speed potions, so that they can be triggered more easily from within scripts * Item database now also keeps track of the effect that items have on the spower stat * spower is now based on level + int*2 + modifier (see last point) * Minor bugfixes in support functionality for the SLang interpreter - Do not restart the map server without also restarting the char server, as the interserver protocol has changed slightly! (patch by fate) --- src/login/login.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/login/login.c') diff --git a/src/login/login.c b/src/login/login.c index 30c6152..a9bfec6 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -130,6 +130,7 @@ int level_new_gm = 60; static struct dbt *gm_account_db; +#define VERSION_2_UPDATEHOST 0x01 // client supports updatehost //------------------------------ // Writing function of logs file //------------------------------ @@ -2786,6 +2787,8 @@ int parse_login(int fd) { WFIFOL(fd,2) = 1; // 01 = Server closed WFIFOSET(fd,3); } else { + int version_2 = RFIFOB(fd, 54); // version 2 + if (gm_level) printf("Connection of the GM (level:%d) account '%s' accepted.\n", gm_level, account.userid); else @@ -2800,7 +2803,8 @@ int parse_login(int fd) { * then the client can safely accept the 0x63 packet. The "version 2" value is not * otherwise used by eAthena. */ - if ((RFIFOW(fd, 0) == 0x64) && (RFIFOB(fd, 54) & 0x01)) + if ((RFIFOW(fd, 0) == 0x64) + && (version_2 & VERSION_2_UPDATEHOST)) { host_len = (int)strlen(update_host); if (host_len > 0) -- cgit v1.2.3-60-g2f50