Commit 96039388 authored by nanahira's avatar nanahira

shadow of remove ready

parent 42290b43
......@@ -424,6 +424,14 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode->ToObserver(dp);
break;
}
#ifdef YGOPRO_SERVER_MODE
case CTOS_HS_NOTREADY: {
if (!duel_mode || duel_mode->pduel)
return;
duel_mode->PlayerReady(dp, false);
break;
}
#else
case CTOS_HS_READY:
case CTOS_HS_NOTREADY: {
if (!duel_mode || duel_mode->pduel)
......@@ -431,6 +439,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode->PlayerReady(dp, (CTOS_HS_NOTREADY - pktType) != 0);
break;
}
#endif
case CTOS_HS_KICK: {
if (!duel_mode || duel_mode->pduel)
return;
......
......@@ -404,6 +404,13 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
else if (len < (2 + deckbuf.mainc + deckbuf.sidec) * (int)sizeof(int32_t))
valid = false;
if (!valid) {
#ifdef YGOPRO_SERVER_MODE
if(duel_count == 0) {
STOC_HS_PlayerChange scpc;
scpc.status = (dp->type << 4) | PLAYERCHANGE_NOTREADY;
NetServer::SendPacketToPlayer(dp, STOC_HS_PLAYER_CHANGE, scpc);
}
#endif
STOC_ErrorMsg scem;
scem.msg = ERRMSG_DECKERROR;
scem.code = 0;
......@@ -412,6 +419,9 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
}
if(duel_count == 0) {
deck_error[dp->type] = DeckManager::LoadDeck(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec);
#ifdef YGOPRO_SERVER_MODE
PlayerReady(dp, true);
#endif
} else {
if(DeckManager::LoadSide(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec)) {
ready[dp->type] = true;
......
......@@ -390,6 +390,11 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
else if (len < (2 + deckbuf.mainc + deckbuf.sidec) * (int)sizeof(int32_t))
valid = false;
if (!valid) {
#ifdef YGOPRO_SERVER_MODE
STOC_HS_PlayerChange scpc;
scpc.status = (dp->type << 4) | PLAYERCHANGE_NOTREADY;
NetServer::SendPacketToPlayer(dp, STOC_HS_PLAYER_CHANGE, scpc);
#endif
STOC_ErrorMsg scem;
scem.msg = ERRMSG_DECKERROR;
scem.code = 0;
......@@ -397,6 +402,9 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
return;
}
deck_error[dp->type] = DeckManager::LoadDeck(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec);
#ifdef YGOPRO_SERVER_MODE
PlayerReady(dp, true);
#endif
}
void TagDuel::StartDuel(DuelPlayer* dp) {
if(dp != host_player)
......
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