summaryrefslogtreecommitdiff
path: root/src/login/login.c
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2008-11-02 00:19:12 +0000
committerJared Adams <jaxad0127@gmail.com>2008-11-02 00:19:12 +0000
commit8d356dbe3f056474700fcbdd563d8ea437b1464e (patch)
tree682694884b5cae5a9f6ec9136619ac2a90c8f73e /src/login/login.c
parentff4ed0b105b016aa3a7dad07db5fb00456bbe822 (diff)
downloadtmwa-8d356dbe3f056474700fcbdd563d8ea437b1464e.tar.gz
tmwa-8d356dbe3f056474700fcbdd563d8ea437b1464e.tar.bz2
tmwa-8d356dbe3f056474700fcbdd563d8ea437b1464e.tar.xz
tmwa-8d356dbe3f056474700fcbdd563d8ea437b1464e.zip
* 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)
Diffstat (limited to 'src/login/login.c')
-rw-r--r--src/login/login.c6
1 files changed, 5 insertions, 1 deletions
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)