integrating anti freeze system to server status update, should cure dropping server connections [Shinomori]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1389 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
f7dad84e7e
commit
1a6dea5fe5
@ -2,6 +2,7 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
|
||||||
04/03
|
04/03
|
||||||
|
* integrating anti freeze system to status update [Shinomori]
|
||||||
* Fixed impossible drops at 0.01% chance [Lupus]
|
* Fixed impossible drops at 0.01% chance [Lupus]
|
||||||
* Fixed some variable declarations in SQL login.c causing compilation errors [veider]
|
* Fixed some variable declarations in SQL login.c causing compilation errors [veider]
|
||||||
* Added NetBSD support into Makefile (Still lots of warrnings during compilation [veider]
|
* Added NetBSD support into Makefile (Still lots of warrnings during compilation [veider]
|
||||||
|
@ -1394,6 +1394,11 @@ int parse_fromchar(int fd) {
|
|||||||
server[id].users = RFIFOL(fd,2);
|
server[id].users = RFIFOL(fd,2);
|
||||||
if(anti_freeze_enable)
|
if(anti_freeze_enable)
|
||||||
server_freezeflag[id] = 5; // Char anti-freeze system. Counter. 5 ok, 4...0 freezed
|
server_freezeflag[id] = 5; // Char anti-freeze system. Counter. 5 ok, 4...0 freezed
|
||||||
|
|
||||||
|
// send some answer
|
||||||
|
WFIFOW(fd,0) = 0x2718;
|
||||||
|
WFIFOSET(fd,2);
|
||||||
|
|
||||||
RFIFOSKIP(fd,6);
|
RFIFOSKIP(fd,6);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -789,16 +789,24 @@ int parse_fromchar(int fd){
|
|||||||
return 0;
|
return 0;
|
||||||
// how many users on world? (update)
|
// how many users on world? (update)
|
||||||
if (server[id].users != RFIFOL(fd,2))
|
if (server[id].users != RFIFOL(fd,2))
|
||||||
|
{
|
||||||
printf("set users %s : %d\n", server[id].name, RFIFOL(fd,2));
|
printf("set users %s : %d\n", server[id].name, RFIFOL(fd,2));
|
||||||
server[id].users = RFIFOL(fd,2);
|
|
||||||
|
server[id].users = RFIFOL(fd,2);
|
||||||
|
sprintf(tmpsql,"UPDATE `sstatus` SET `user` = '%d' WHERE `index` = '%d'", server[id].users, id);
|
||||||
|
// query
|
||||||
|
if (mysql_query(&mysql_handle, tmpsql)) {
|
||||||
|
printf("DB server Error - %s\n", mysql_error(&mysql_handle));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(anti_freeze_enable)
|
if(anti_freeze_enable)
|
||||||
server_freezeflag[id] = 5; // Char anti-freeze system. Counter. 5 ok, 4...0 freezed
|
server_freezeflag[id] = 5; // Char anti-freeze system. Counter. 5 ok, 4...0 freezed
|
||||||
|
|
||||||
sprintf(tmpsql,"UPDATE `sstatus` SET `user` = '%d' WHERE `index` = '%d'", server[id].users, id);
|
// send some answer
|
||||||
// query
|
WFIFOW(fd,0) = 0x2718;
|
||||||
if (mysql_query(&mysql_handle, tmpsql)) {
|
WFIFOSET(fd,2);
|
||||||
printf("DB server Error - %s\n", mysql_error(&mysql_handle));
|
|
||||||
}
|
|
||||||
RFIFOSKIP(fd,6);
|
RFIFOSKIP(fd,6);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1071,7 +1071,7 @@ int chrif_parse(int fd)
|
|||||||
case 0x2afb: chrif_sendmapack(fd); break;
|
case 0x2afb: chrif_sendmapack(fd); break;
|
||||||
case 0x2afd: pc_authok(RFIFOL(fd,4), RFIFOL(fd,8), (time_t)RFIFOL(fd,12), (struct mmo_charstatus*)RFIFOP(fd,16)); break;
|
case 0x2afd: pc_authok(RFIFOL(fd,4), RFIFOL(fd,8), (time_t)RFIFOL(fd,12), (struct mmo_charstatus*)RFIFOP(fd,16)); break;
|
||||||
case 0x2afe: pc_authfail(RFIFOL(fd,2)); break;
|
case 0x2afe: pc_authfail(RFIFOL(fd,2)); break;
|
||||||
case 0x2b00: map_setusers(RFIFOL(fd,2)); break;
|
case 0x2b00: map_setusers(fd); break;
|
||||||
case 0x2b03: clif_charselectok(RFIFOL(fd,2)); break;
|
case 0x2b03: clif_charselectok(RFIFOL(fd,2)); break;
|
||||||
case 0x2b04: chrif_recvmap(fd); break;
|
case 0x2b04: chrif_recvmap(fd); break;
|
||||||
case 0x2b06: chrif_changemapserverack(fd); break;
|
case 0x2b06: chrif_changemapserverack(fd); break;
|
||||||
|
@ -180,8 +180,12 @@ int console = 0;
|
|||||||
* (char鯖から送られてくる)
|
* (char鯖から送られてくる)
|
||||||
*------------------------------------------
|
*------------------------------------------
|
||||||
*/
|
*/
|
||||||
void map_setusers(int n) {
|
void map_setusers(int fd)
|
||||||
users = n;
|
{
|
||||||
|
users = RFIFOL(fd,2);
|
||||||
|
// send some anser
|
||||||
|
WFIFOW(fd,0) = 0x2718;
|
||||||
|
WFIFOSET(fd,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
|
Loading…
x
Reference in New Issue
Block a user