Commit 6a455485 authored by nanahira's avatar nanahira

Merge branch 'server' of github.com:moecube/ygopro into server

parents 4de81139 44070585
...@@ -630,7 +630,8 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) { ...@@ -630,7 +630,8 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
if(host_info.time_limit) { if(host_info.time_limit) {
time_elapsed = 0; time_elapsed = 0;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
time_compensator = host_info.time_limit; time_compensator[0] = host_info.time_limit;
time_compensator[1] = host_info.time_limit;
#endif #endif
timeval timeout = { 1, 0 }; timeval timeout = { 1, 0 };
event_add(etimer, &timeout); event_add(etimer, &timeout);
...@@ -1147,6 +1148,10 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -1147,6 +1148,10 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
#endif #endif
time_limit[0] = host_info.time_limit; time_limit[0] = host_info.time_limit;
time_limit[1] = host_info.time_limit; time_limit[1] = host_info.time_limit;
#ifdef YGOPRO_SERVER_MODE
time_compensator[0] = host_info.time_limit;
time_compensator[1] = host_info.time_limit;
#endif
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[1]); NetServer::ReSendToPlayer(players[1]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
...@@ -1884,8 +1889,8 @@ void SingleDuel::TimeConfirm(DuelPlayer* dp) { ...@@ -1884,8 +1889,8 @@ void SingleDuel::TimeConfirm(DuelPlayer* dp) {
return; return;
players[last_response]->state = CTOS_RESPONSE; players[last_response]->state = CTOS_RESPONSE;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
if(time_elapsed < 10 && time_elapsed <= time_compensator){ if(time_elapsed < 10 && time_elapsed <= time_compensator[dp->type]){
time_compensator -= time_elapsed; time_compensator[dp->type] -= time_elapsed;
time_elapsed = 0; time_elapsed = 0;
} }
#else #else
......
...@@ -80,7 +80,7 @@ protected: ...@@ -80,7 +80,7 @@ protected:
unsigned short time_limit[2]; unsigned short time_limit[2];
unsigned short time_elapsed; unsigned short time_elapsed;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
unsigned short time_compensator; unsigned short time_compensator[2];
#endif #endif
}; };
......
...@@ -635,7 +635,8 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) { ...@@ -635,7 +635,8 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
if(host_info.time_limit) { if(host_info.time_limit) {
time_elapsed = 0; time_elapsed = 0;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
time_compensator = host_info.time_limit; time_compensator[0] = host_info.time_limit;
time_compensator[1] = host_info.time_limit;
#endif #endif
timeval timeout = { 1, 0 }; timeval timeout = { 1, 0 };
event_add(etimer, &timeout); event_add(etimer, &timeout);
...@@ -1111,6 +1112,10 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -1111,6 +1112,10 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
#endif #endif
time_limit[0] = host_info.time_limit; time_limit[0] = host_info.time_limit;
time_limit[1] = host_info.time_limit; time_limit[1] = host_info.time_limit;
#ifdef YGOPRO_SERVER_MODE
time_compensator[0] = host_info.time_limit;
time_compensator[1] = host_info.time_limit;
#endif
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[1]); NetServer::ReSendToPlayer(players[1]);
NetServer::ReSendToPlayer(players[2]); NetServer::ReSendToPlayer(players[2]);
...@@ -1985,8 +1990,8 @@ void TagDuel::TimeConfirm(DuelPlayer* dp) { ...@@ -1985,8 +1990,8 @@ void TagDuel::TimeConfirm(DuelPlayer* dp) {
return; return;
cur_player[last_response]->state = CTOS_RESPONSE; cur_player[last_response]->state = CTOS_RESPONSE;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
if(time_elapsed < 10 && time_elapsed <= time_compensator){ if(time_elapsed < 10 && time_elapsed <= time_compensator[dp->type]){
time_compensator -= time_elapsed; time_compensator[dp->type] -= time_elapsed;
time_elapsed = 0; time_elapsed = 0;
} }
#else #else
......
...@@ -74,7 +74,7 @@ protected: ...@@ -74,7 +74,7 @@ protected:
unsigned short time_limit[2]; unsigned short time_limit[2];
unsigned short time_elapsed; unsigned short time_elapsed;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
unsigned short time_compensator; unsigned short time_compensator[2];
#endif #endif
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment