Commit 0c3b76c5 authored by argon.sun's avatar argon.sun

bug fix

parent c2b1f418
...@@ -930,10 +930,9 @@ void Game::Analyze(void* pd, char* engbuf) { ...@@ -930,10 +930,9 @@ void Game::Analyze(void* pd, char* engbuf) {
break; break;
} }
case MSG_MISSED_EFFECT: { case MSG_MISSED_EFFECT: {
count = NetManager::ReadInt8(pbuf); player = pbuf[0];
pbuf += 8; pbuf += 8;
// mainGame->SendGameMessage(0, offset, pbuf - offset); mainGame->SendGameMessage(player, offset, pbuf - offset);
// mainGame->SendGameMessage(1, offset, pbuf - offset);
break; break;
} }
case MSG_TOSS_COIN: { case MSG_TOSS_COIN: {
...@@ -2860,12 +2859,11 @@ bool Game::SolveMessage(void* pd, char* msg, int len) { ...@@ -2860,12 +2859,11 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
return true; return true;
} }
case MSG_MISSED_EFFECT: { case MSG_MISSED_EFFECT: {
int count = NetManager::ReadInt8(pbuf); NetManager::ReadInt32(pbuf);
int code, desc; int code = NetManager::ReadInt32(pbuf);
for (int i = 0; i < count; ++i) { myswprintf(textBuffer, L"[%ls]错过时点", mainGame->dataManager.GetName(code));
code = NetManager::ReadInt32(pbuf); mainGame->lstLog->addItem(textBuffer);
desc = NetManager::ReadInt32(pbuf); mainGame->logParam.push_back(code);
}
return true; return true;
} }
case MSG_TOSS_COIN: { case MSG_TOSS_COIN: {
...@@ -3550,9 +3548,8 @@ bool Game::AnalyzeReplay(void* pd, char* engbuf) { ...@@ -3550,9 +3548,8 @@ bool Game::AnalyzeReplay(void* pd, char* engbuf) {
break; break;
} }
case MSG_MISSED_EFFECT: { case MSG_MISSED_EFFECT: {
count = NetManager::ReadInt8(pbuf);
pbuf += 8; pbuf += 8;
// SolveMessage(pd, offset, pbuf - offset); SolveMessage(pd, offset, pbuf - offset);
break; break;
} }
case MSG_TOSS_COIN: { case MSG_TOSS_COIN: {
......
...@@ -3756,25 +3756,17 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) { ...@@ -3756,25 +3756,17 @@ int32 field::solve_chain(uint16 step, uint32 skip_new) {
return TRUE; return TRUE;
} }
int32 field::break_effect() { int32 field::break_effect() {
chain_list::iterator chit, rm;
chain_list missed;
core.hint_timing[0] = 0; core.hint_timing[0] = 0;
core.hint_timing[1] = 0; core.hint_timing[1] = 0;
for (chit = core.new_ochain.begin(); chit != core.new_ochain.end();) { for (auto chit = core.new_ochain.begin(); chit != core.new_ochain.end();) {
rm = chit++; auto rm = chit++;
if (!(rm->triggering_effect->flag & EFFECT_FLAG_DELAY)) { if (!(rm->triggering_effect->flag & EFFECT_FLAG_DELAY)) {
missed.push_back(*rm); pduel->write_buffer8(MSG_MISSED_EFFECT);
pduel->write_buffer32(rm->triggering_effect->handler->get_info_location());
pduel->write_buffer32(rm->triggering_effect->handler->data.code);
core.new_ochain.erase(rm); core.new_ochain.erase(rm);
} }
} }
if(missed.size()) {
pduel->write_buffer8(MSG_MISSED_EFFECT);
pduel->write_buffer8(missed.size());
for(chit = missed.begin(); chit != missed.end(); ++chit) {
pduel->write_buffer32(chit->triggering_effect->handler->data.code);
pduel->write_buffer32(chit->triggering_effect->description);
}
}
core.used_event.splice(core.used_event.end(), core.instant_event); core.used_event.splice(core.used_event.end(), core.instant_event);
adjust_instant(); adjust_instant();
return 0; return 0;
......
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