From 82e5f6d59d607f35283751c14587b944c702952f Mon Sep 17 00:00:00 2001 From: shennetsind Date: Fri, 14 Mar 2014 16:33:42 -0300 Subject: Fixed Bug 8078 gms relogging while char server is on char_server_type will no longer get rejected. Special Thanks to Beret. http://hercules.ws/board/tracker/issue-8078-maintenance-mode-enabled/ Signed-off-by: shennetsind --- src/char/char.c | 6 ++++-- src/map/chrif.c | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/char/char.c b/src/char/char.c index a24e198bf..a42524444 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -3153,14 +3153,15 @@ int parse_frommap(int fd) break; case 0x2b02: // req char selection - if( RFIFOREST(fd) < 18 ) + if( RFIFOREST(fd) < 22 ) return 0; { int account_id = RFIFOL(fd,2); uint32 login_id1 = RFIFOL(fd,6); uint32 login_id2 = RFIFOL(fd,10); uint32 ip = RFIFOL(fd,14); - RFIFOSKIP(fd,18); + int32 group_id = RFIFOL(fd, 18); + RFIFOSKIP(fd,22); if( runflag != CHARSERVER_ST_RUNNING ) { @@ -3180,6 +3181,7 @@ int parse_frommap(int fd) node->char_id = 0; node->login_id1 = login_id1; node->login_id2 = login_id2; + node->group_id = group_id; //node->sex = 0; node->ip = ntohl(ip); /* sounds troublesome. */ diff --git a/src/map/chrif.c b/src/map/chrif.c index 059255fde..80ee50a20 100644 --- a/src/map/chrif.c +++ b/src/map/chrif.c @@ -694,13 +694,14 @@ bool chrif_charselectreq(struct map_session_data* sd, uint32 s_ip) { chrif_check(false); - WFIFOHEAD(chrif->fd,18); + WFIFOHEAD(chrif->fd,22); WFIFOW(chrif->fd, 0) = 0x2b02; WFIFOL(chrif->fd, 2) = sd->bl.id; WFIFOL(chrif->fd, 6) = sd->login_id1; WFIFOL(chrif->fd,10) = sd->login_id2; WFIFOL(chrif->fd,14) = htonl(s_ip); - WFIFOSET(chrif->fd,18); + WFIFOL(chrif->fd,18) = sd->group_id; + WFIFOSET(chrif->fd,22); return true; } -- cgit v1.2.3-70-g09d2