Commit 690afddc authored by mercury233's avatar mercury233 Committed by GitHub

check count limit for player effect (#384)

parent c554b0d4
......@@ -1732,22 +1732,18 @@ int32 scriptlib::card_is_has_effect(lua_State *L) {
}
effect_set eset;
pcard->filter_effect(code, &eset);
int32 size = eset.size();
if(!size) {
lua_pushnil(L);
return 1;
}
int32 check_player = PLAYER_NONE;
if(lua_gettop(L) >= 3) {
check_player = (int32)lua_tointeger(L, 3);
if(check_player > PLAYER_NONE)
check_player = PLAYER_NONE;
}
int32 size = 0;
for(int32 i = 0; i < eset.size(); ++i) {
if(check_player == PLAYER_NONE || eset[i]->check_count_limit(check_player))
if(check_player == PLAYER_NONE || eset[i]->check_count_limit(check_player)) {
interpreter::effect2value(L, eset[i]);
else
size--;
size++;
}
}
if(!size) {
lua_pushnil(L);
......
......@@ -3951,13 +3951,17 @@ int32 scriptlib::duel_is_player_affected_by_effect(lua_State *L) {
int32 code = (int32)lua_tointeger(L, 2);
effect_set eset;
pduel->game_field->filter_player_effect(playerid, code, &eset);
int32 size = eset.size();
int32 size = 0;
for(int32 i = 0; i < eset.size(); ++i) {
if(eset[i]->check_count_limit(playerid)) {
interpreter::effect2value(L, eset[i]);
size++;
}
}
if(!size) {
lua_pushnil(L);
return 1;
}
for(int32 i = 0; i < size; ++i)
interpreter::effect2value(L, eset[i]);
return size;
}
int32 scriptlib::duel_is_player_can_draw(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