Commit 89d5e316 authored by mercury233's avatar mercury233

update Duel.GetLocationCountFromEx

parent 7c9d72a7
...@@ -1899,10 +1899,22 @@ int32 scriptlib::duel_get_location_count_fromex(lua_State *L) { ...@@ -1899,10 +1899,22 @@ int32 scriptlib::duel_get_location_count_fromex(lua_State *L) {
} }
swapped = true; swapped = true;
} }
bool use_temp_card = false;
card* scard = 0; card* scard = 0;
if(lua_gettop(L) >= 4) { if(lua_gettop(L) >= 4 && !lua_isnil(L, 4)) {
check_param(L, PARAM_TYPE_CARD, 4); if(check_param(L, PARAM_TYPE_CARD, 4, TRUE)) {
scard = *(card**)lua_touserdata(L, 4); scard = *(card**)lua_touserdata(L, 4);
} else {
use_temp_card = true;
uint32 type = lua_tointeger(L, 4);
scard = pduel->game_field->temp_card;
scard->current.location = LOCATION_EXTRA;
scard->data.type = TYPE_MONSTER | type;
if(type & TYPE_PENDULUM)
scard->current.position = POS_FACEUP_DEFENSE;
else
scard->current.position = POS_FACEDOWN_DEFENSE;
}
} }
uint32 zone = 0xff; uint32 zone = 0xff;
if(lua_gettop(L) >= 5) if(lua_gettop(L) >= 5)
...@@ -1916,6 +1928,11 @@ int32 scriptlib::duel_get_location_count_fromex(lua_State *L) { ...@@ -1916,6 +1928,11 @@ int32 scriptlib::duel_get_location_count_fromex(lua_State *L) {
pduel->game_field->player[0].list_mzone.swap(list_mzone[0]); pduel->game_field->player[0].list_mzone.swap(list_mzone[0]);
pduel->game_field->player[1].list_mzone.swap(list_mzone[1]); pduel->game_field->player[1].list_mzone.swap(list_mzone[1]);
} }
if(use_temp_card) {
scard->current.location = 0;
scard->data.type = 0;
scard->current.position = 0;
}
return 2; return 2;
} }
int32 scriptlib::duel_get_usable_mzone_count(lua_State *L) { int32 scriptlib::duel_get_usable_mzone_count(lua_State *L) {
......
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