Commit 7da0970a authored by mercury233's avatar mercury233

update ShuffleSetCard to support shuffle szone

parent b1093e82
...@@ -1353,12 +1353,15 @@ int32 scriptlib::duel_shuffle_setcard(lua_State *L) { ...@@ -1353,12 +1353,15 @@ int32 scriptlib::duel_shuffle_setcard(lua_State *L) {
card* ms[7]; card* ms[7];
uint8 seq[7]; uint8 seq[7];
uint8 tp = 2; uint8 tp = 2;
uint8 loc = 0;
uint8 ct = 0; uint8 ct = 0;
for(auto cit = pgroup->container.begin(); cit != pgroup->container.end(); ++cit) { for(auto cit = pgroup->container.begin(); cit != pgroup->container.end(); ++cit) {
card* pcard = *cit; card* pcard = *cit;
if(pcard->current.location != LOCATION_MZONE || (pcard->current.position & POS_FACEUP) || (tp != 2 && (pcard->current.controler != tp))) if((loc != 0 && (pcard->current.location != loc)) || (pcard->current.location != LOCATION_MZONE && pcard->current.location != LOCATION_SZONE)
|| (pcard->current.position & POS_FACEUP) || (pcard->current.location == LOCATION_SZONE && pcard->current.sequence > 4) || (tp != 2 && (pcard->current.controler != tp)))
return 0; return 0;
tp = pcard->current.controler; tp = pcard->current.controler;
loc = pcard->current.location;
ms[ct] = pcard; ms[ct] = pcard;
seq[ct] = pcard->current.sequence; seq[ct] = pcard->current.sequence;
ct++; ct++;
...@@ -1368,11 +1371,15 @@ int32 scriptlib::duel_shuffle_setcard(lua_State *L) { ...@@ -1368,11 +1371,15 @@ int32 scriptlib::duel_shuffle_setcard(lua_State *L) {
std::swap(ms[i], ms[s]); std::swap(ms[i], ms[s]);
} }
pduel->write_buffer8(MSG_SHUFFLE_SET_CARD); pduel->write_buffer8(MSG_SHUFFLE_SET_CARD);
pduel->write_buffer8(loc);
pduel->write_buffer8(ct); pduel->write_buffer8(ct);
for(uint32 i = 0; i < ct; ++i) { for(uint32 i = 0; i < ct; ++i) {
card* pcard = ms[i]; card* pcard = ms[i];
pduel->write_buffer32(pcard->get_info_location()); pduel->write_buffer32(pcard->get_info_location());
if(loc == LOCATION_MZONE)
pduel->game_field->player[tp].list_mzone[seq[i]] = pcard; pduel->game_field->player[tp].list_mzone[seq[i]] = pcard;
else
pduel->game_field->player[tp].list_szone[seq[i]] = pcard;
pcard->current.sequence = seq[i]; pcard->current.sequence = seq[i];
pduel->game_field->raise_single_event(pcard, 0, EVENT_MOVE, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, tp, 0); pduel->game_field->raise_single_event(pcard, 0, EVENT_MOVE, pcard->current.reason_effect, pcard->current.reason, pcard->current.reason_player, tp, 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