Commit f9ba30c5 authored by nanahira's avatar nanahira

patch load script on server

parents 193aa936 5e1152ef
No preview for this file type
...@@ -936,9 +936,20 @@ void ReplayMode::ReplayReload() { ...@@ -936,9 +936,20 @@ void ReplayMode::ReplayReload() {
mainGame->dField.UpdateFieldCard(mainGame->LocalPlayer(1), LOCATION_REMOVED, (char*)queryBuffer); mainGame->dField.UpdateFieldCard(mainGame->LocalPlayer(1), LOCATION_REMOVED, (char*)queryBuffer);
} }
byte* ReplayMode::ScriptReaderEx(const char* script_name, int* slen) { byte* ReplayMode::ScriptReaderEx(const char* script_name, int* slen) {
#ifdef YGOPRO_SERVER_MODE
char sname[256] = "./specials";
strcat(sname, script_name + 8);//default script name: ./script/c%d.lua
byte* buffer = default_script_reader(sname, slen);
if(!buffer) {
char sname[256] = "./expansions";
strcat(sname, script_name + 1);
buffer = default_script_reader(sname, slen);
}
#else
char sname[256] = "./expansions"; char sname[256] = "./expansions";
strcat(sname, script_name + 1);//default script name: ./script/c%d.lua strcat(sname, script_name + 1);//default script name: ./script/c%d.lua
byte* buffer = default_script_reader(sname, slen); byte* buffer = default_script_reader(sname, slen);
#endif
if(buffer) if(buffer)
return buffer; return buffer;
else else
......
...@@ -1846,8 +1846,18 @@ void SingleDuel::RequestField(DuelPlayer* dp) { ...@@ -1846,8 +1846,18 @@ void SingleDuel::RequestField(DuelPlayer* dp) {
RefreshExtra(player, 0xffdfff, 0, dp); RefreshExtra(player, 0xffdfff, 0, dp);
RefreshRemoved(1 - player, 0xffdfff, 0, dp); RefreshRemoved(1 - player, 0xffdfff, 0, dp);
RefreshRemoved(player, 0xffdfff, 0, dp); RefreshRemoved(player, 0xffdfff, 0, dp);
/*
if(dp == players[last_response]) if(dp == players[last_response])
WaitforResponse(last_response); WaitforResponse(last_response);
*/
STOC_TimeLimit sctl;
sctl.player = 1 - last_response;
sctl.left_time = time_limit[1 - last_response];
NetServer::SendPacketToPlayer(dp, STOC_TIME_LIMIT, sctl);
sctl.player = last_response;
sctl.left_time = time_limit[last_response] - time_elapsed;
NetServer::SendPacketToPlayer(dp, STOC_TIME_LIMIT, sctl);
NetServer::SendPacketToPlayer(dp, STOC_FIELD_FINISH); NetServer::SendPacketToPlayer(dp, STOC_FIELD_FINISH);
} }
#endif //YGOPRO_SERVER_MODE #endif //YGOPRO_SERVER_MODE
...@@ -2039,8 +2049,10 @@ void SingleDuel::RefreshExtra(int player, int flag, int use_cache) ...@@ -2039,8 +2049,10 @@ void SingleDuel::RefreshExtra(int player, int flag, int use_cache)
BufferIO::WriteInt8(qbuf, player); BufferIO::WriteInt8(qbuf, player);
BufferIO::WriteInt8(qbuf, LOCATION_EXTRA); BufferIO::WriteInt8(qbuf, LOCATION_EXTRA);
int len = query_field_card(pduel, player, LOCATION_EXTRA, flag, (unsigned char*)qbuf, use_cache); int len = query_field_card(pduel, player, LOCATION_EXTRA, flag, (unsigned char*)qbuf, use_cache);
if(!dp || dp == players[player]) #ifdef YGOPRO_SERVER_MODE
NetServer::SendBufferToPlayer(players[player], STOC_GAME_MSG, query_buffer, len + 3); if(!dp || dp == players[player])
#endif
NetServer::SendBufferToPlayer(players[player], STOC_GAME_MSG, query_buffer, len + 3);
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
if(!dp) if(!dp)
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
...@@ -2115,9 +2127,20 @@ void SingleDuel::RefreshSingle(int player, int location, int sequence, int flag) ...@@ -2115,9 +2127,20 @@ void SingleDuel::RefreshSingle(int player, int location, int sequence, int flag)
} }
} }
byte* SingleDuel::ScriptReaderEx(const char* script_name, int* slen) { byte* SingleDuel::ScriptReaderEx(const char* script_name, int* slen) {
#ifdef YGOPRO_SERVER_MODE
char sname[256] = "./specials";
strcat(sname, script_name + 8);//default script name: ./script/c%d.lua
byte* buffer = default_script_reader(sname, slen);
if(!buffer) {
char sname[256] = "./expansions";
strcat(sname, script_name + 1);
buffer = default_script_reader(sname, slen);
}
#else
char sname[256] = "./expansions"; char sname[256] = "./expansions";
strcat(sname, script_name + 1);//default script name: ./script/c%d.lua strcat(sname, script_name + 1);//default script name: ./script/c%d.lua
byte* buffer = default_script_reader(sname, slen); byte* buffer = default_script_reader(sname, slen);
#endif
if(buffer) if(buffer)
return buffer; return buffer;
else else
......
...@@ -1921,8 +1921,18 @@ void TagDuel::RequestField(DuelPlayer* dp) { ...@@ -1921,8 +1921,18 @@ void TagDuel::RequestField(DuelPlayer* dp) {
RefreshExtra(player, 0xffdfff, 0, dp); RefreshExtra(player, 0xffdfff, 0, dp);
RefreshRemoved(1 - player, 0xffdfff, 0, dp); RefreshRemoved(1 - player, 0xffdfff, 0, dp);
RefreshRemoved(player, 0xffdfff, 0, dp); RefreshRemoved(player, 0xffdfff, 0, dp);
/*
if(dp == cur_player[last_response]) if(dp == cur_player[last_response])
WaitforResponse(last_response); WaitforResponse(last_response);
*/
STOC_TimeLimit sctl;
sctl.player = 1 - last_response;
sctl.left_time = time_limit[1 - last_response];
NetServer::SendPacketToPlayer(dp, STOC_TIME_LIMIT, sctl);
sctl.player = last_response;
sctl.left_time = time_limit[last_response] - time_elapsed;
NetServer::SendPacketToPlayer(dp, STOC_TIME_LIMIT, sctl);
NetServer::SendPacketToPlayer(dp, STOC_FIELD_FINISH); NetServer::SendPacketToPlayer(dp, STOC_FIELD_FINISH);
} }
#endif //YGOPRO_SERVER_MODE #endif //YGOPRO_SERVER_MODE
...@@ -2248,9 +2258,20 @@ void TagDuel::RefreshSingle(int player, int location, int sequence, int flag) { ...@@ -2248,9 +2258,20 @@ void TagDuel::RefreshSingle(int player, int location, int sequence, int flag) {
} }
} }
byte* TagDuel::ScriptReaderEx(const char* script_name, int* slen) { byte* TagDuel::ScriptReaderEx(const char* script_name, int* slen) {
#ifdef YGOPRO_SERVER_MODE
char sname[256] = "./specials";
strcat(sname, script_name + 8);//default script name: ./script/c%d.lua
byte* buffer = default_script_reader(sname, slen);
if(!buffer) {
char sname[256] = "./expansions";
strcat(sname, script_name + 1);
buffer = default_script_reader(sname, slen);
}
#else
char sname[256] = "./expansions"; char sname[256] = "./expansions";
strcat(sname, script_name + 1);//default script name: ./script/c%d.lua strcat(sname, script_name + 1);//default script name: ./script/c%d.lua
byte* buffer = default_script_reader(sname, slen); byte* buffer = default_script_reader(sname, slen);
#endif
if(buffer) if(buffer)
return buffer; return buffer;
else else
......
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