Commit 161b5021 authored by mercury233's avatar mercury233

add time_compensator

parent 4541d3f0
......@@ -628,6 +628,9 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
start_duel(pduel, opt);
if(host_info.time_limit) {
time_elapsed = 0;
#ifdef YGOPRO_SERVER_MODE
time_compensator = 60;
#endif
timeval timeout = { 1, 0 };
event_add(etimer, &timeout);
}
......@@ -1876,8 +1879,15 @@ void SingleDuel::TimeConfirm(DuelPlayer* dp) {
if(dp->type != last_response)
return;
players[last_response]->state = CTOS_RESPONSE;
#ifdef YGOPRO_SERVER_MODE
if(time_elapsed < 10 && time_elapsed <= time_compensator){
time_compensator -= time_elapsed;
time_elapsed = 0;
}
#else
if(time_elapsed < 10)
time_elapsed = 0;
#endif //YGOPRO_SERVER_MODE
}
#ifdef YGOPRO_SERVER_MODE
void SingleDuel::RefreshMzone(int player, int flag, int use_cache, DuelPlayer* dp)
......
......@@ -76,6 +76,9 @@ protected:
unsigned char match_result[3];
unsigned short time_limit[2];
unsigned short time_elapsed;
#ifdef YGOPRO_SERVER_MODE
unsigned short time_compensator;
#endif
};
}
......
......@@ -633,6 +633,9 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
start_duel(pduel, opt);
if(host_info.time_limit) {
time_elapsed = 0;
#ifdef YGOPRO_SERVER_MODE
time_compensator = 60;
#endif
timeval timeout = { 1, 0 };
event_add(etimer, &timeout);
}
......@@ -1955,8 +1958,15 @@ void TagDuel::TimeConfirm(DuelPlayer* dp) {
if(dp != cur_player[last_response])
return;
cur_player[last_response]->state = CTOS_RESPONSE;
#ifdef YGOPRO_SERVER_MODE
if(time_elapsed < 10 && time_elapsed <= time_compensator){
time_compensator -= time_elapsed;
time_elapsed = 0;
}
#else
if(time_elapsed < 10)
time_elapsed = 0;
#endif //YGOPRO_SERVER_MODE
}
#ifdef YGOPRO_SERVER_MODE
void TagDuel::RefreshMzone(int player, int flag, int use_cache, DuelPlayer* dp)
......
......@@ -73,6 +73,9 @@ protected:
unsigned char turn_count;
unsigned short time_limit[2];
unsigned short time_elapsed;
#ifdef YGOPRO_SERVER_MODE
unsigned short time_compensator;
#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