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
|
||||
|
||||
04/03
|
||||
* integrating anti freeze system to status update [Shinomori]
|
||||
* Fixed impossible drops at 0.01% chance [Lupus]
|
||||
* Fixed some variable declarations in SQL login.c causing compilation errors [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);
|
||||
if(anti_freeze_enable)
|
||||
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);
|
||||
break;
|
||||
|
||||
|
@ -789,16 +789,24 @@ int parse_fromchar(int fd){
|
||||
return 0;
|
||||
// how many users on world? (update)
|
||||
if (server[id].users != 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)
|
||||
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);
|
||||
// query
|
||||
if (mysql_query(&mysql_handle, tmpsql)) {
|
||||
printf("DB server Error - %s\n", mysql_error(&mysql_handle));
|
||||
}
|
||||
// send some answer
|
||||
WFIFOW(fd,0) = 0x2718;
|
||||
WFIFOSET(fd,2);
|
||||
|
||||
RFIFOSKIP(fd,6);
|
||||
break;
|
||||
|
||||
|
@ -1071,7 +1071,7 @@ int chrif_parse(int fd)
|
||||
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 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 0x2b04: chrif_recvmap(fd); break;
|
||||
case 0x2b06: chrif_changemapserverack(fd); break;
|
||||
|
@ -180,8 +180,12 @@ int console = 0;
|
||||
* (char鯖から送られてくる)
|
||||
*------------------------------------------
|
||||
*/
|
||||
void map_setusers(int n) {
|
||||
users = n;
|
||||
void map_setusers(int fd)
|
||||
{
|
||||
users = RFIFOL(fd,2);
|
||||
// send some anser
|
||||
WFIFOW(fd,0) = 0x2718;
|
||||
WFIFOSET(fd,2);
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
|
Loading…
x
Reference in New Issue
Block a user