diff options
author | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-01-14 08:12:52 +0000 |
---|---|---|
committer | shennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-01-14 08:12:52 +0000 |
commit | 69b055ee5b2ce7ff629f8e2c395b7e069bb7fd9a (patch) | |
tree | 98b60d68dabe577a89415aa6afd5147854db3d2f /src/map/chrif.c | |
parent | dcdb55d68af1d4835a4607d74783e0513699312c (diff) | |
download | hercules-69b055ee5b2ce7ff629f8e2c395b7e069bb7fd9a.tar.gz hercules-69b055ee5b2ce7ff629f8e2c395b7e069bb7fd9a.tar.bz2 hercules-69b055ee5b2ce7ff629f8e2c395b7e069bb7fd9a.tar.xz hercules-69b055ee5b2ce7ff629f8e2c395b7e069bb7fd9a.zip |
another cool multi-map-server ancient bugfix:
- added a 'changing_mapservers' state, so the map server receiving the player knows he doesn't have to do certain things, in this case not display motd and use the aurafix.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15445 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/chrif.c')
-rw-r--r-- | src/map/chrif.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/map/chrif.c b/src/map/chrif.c index 7ec4f5c90..014d5f5df 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -587,10 +587,11 @@ void chrif_authok(int fd) struct mmo_charstatus* status; int char_id; struct auth_node *node; + bool changing_mapservers; TBL_PC* sd; //Check if both servers agree on the struct's size - if( RFIFOW(fd,2) - 24 != sizeof(struct mmo_charstatus) ) + if( RFIFOW(fd,2) - 25 != sizeof(struct mmo_charstatus) ) { ShowError("chrif_authok: Data size mismatch! %d != %d\n", RFIFOW(fd,2) - 24, sizeof(struct mmo_charstatus)); return; @@ -601,8 +602,8 @@ void chrif_authok(int fd) login_id2 = RFIFOL(fd,12); expiration_time = (time_t)(int32)RFIFOL(fd,16); gmlevel = RFIFOL(fd,20); - status = (struct mmo_charstatus*)RFIFOP(fd,24); - + changing_mapservers = (RFIFOB(fd,24)); + status = (struct mmo_charstatus*)RFIFOP(fd,25); char_id = status->char_id; //Check if we don't already have player data in our server @@ -633,7 +634,7 @@ void chrif_authok(int fd) node->char_id == char_id && node->login_id1 == login_id1 ) { //Auth Ok - if (pc_authok(sd, login_id2, expiration_time, gmlevel, status)) + if (pc_authok(sd, login_id2, expiration_time, gmlevel, status, changing_mapservers)) return; } else { //Auth Failed pc_authfail(sd); |