Commit e628a914 authored by VanillaSalt's avatar VanillaSalt

fix

parent cee83257
...@@ -1521,7 +1521,8 @@ int32 scriptlib::card_is_level_below(lua_State *L) { ...@@ -1521,7 +1521,8 @@ int32 scriptlib::card_is_level_below(lua_State *L) {
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
uint32 lvl = lua_tointeger(L, 2); uint32 lvl = lua_tointeger(L, 2);
if((pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)) if((pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)
|| (!(pcard->data.type & TYPE_MONSTER) && !(pcard->current.location & LOCATION_MZONE)))
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
else else
lua_pushboolean(L, pcard->get_level() <= lvl); lua_pushboolean(L, pcard->get_level() <= lvl);
...@@ -1532,7 +1533,8 @@ int32 scriptlib::card_is_level_above(lua_State *L) { ...@@ -1532,7 +1533,8 @@ int32 scriptlib::card_is_level_above(lua_State *L) {
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
uint32 lvl = lua_tointeger(L, 2); uint32 lvl = lua_tointeger(L, 2);
if((pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)) if((pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)
|| (!(pcard->data.type & TYPE_MONSTER) && !(pcard->current.location & LOCATION_MZONE)))
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
else else
lua_pushboolean(L, pcard->get_level() >= lvl); lua_pushboolean(L, pcard->get_level() >= lvl);
...@@ -1543,7 +1545,8 @@ int32 scriptlib::card_is_rank_below(lua_State *L) { ...@@ -1543,7 +1545,8 @@ int32 scriptlib::card_is_rank_below(lua_State *L) {
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
uint32 rnk = lua_tointeger(L, 2); uint32 rnk = lua_tointeger(L, 2);
if(!(pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)) if(!(pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)
|| (!(pcard->data.type & TYPE_MONSTER) && !(pcard->current.location & LOCATION_MZONE)))
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
else else
lua_pushboolean(L, pcard->get_rank() <= rnk); lua_pushboolean(L, pcard->get_rank() <= rnk);
...@@ -1554,7 +1557,8 @@ int32 scriptlib::card_is_rank_above(lua_State *L) { ...@@ -1554,7 +1557,8 @@ int32 scriptlib::card_is_rank_above(lua_State *L) {
check_param(L, PARAM_TYPE_CARD, 1); check_param(L, PARAM_TYPE_CARD, 1);
card* pcard = *(card**) lua_touserdata(L, 1); card* pcard = *(card**) lua_touserdata(L, 1);
uint32 rnk = lua_tointeger(L, 2); uint32 rnk = lua_tointeger(L, 2);
if(!(pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)) if(!(pcard->data.type & TYPE_XYZ) || (pcard->status & STATUS_NO_LEVEL)
|| (!(pcard->data.type & TYPE_MONSTER) && !(pcard->current.location & LOCATION_MZONE)))
lua_pushboolean(L, 0); lua_pushboolean(L, 0);
else else
lua_pushboolean(L, pcard->get_rank() >= rnk); lua_pushboolean(L, pcard->get_rank() >= rnk);
......
...@@ -35,8 +35,9 @@ function c12338068.spop(e,tp,eg,ep,ev,re,r,rp,c) ...@@ -35,8 +35,9 @@ function c12338068.spop(e,tp,eg,ep,ev,re,r,rp,c)
local atk=0 local atk=0
local tc=g:GetFirst() local tc=g:GetFirst()
while tc do while tc do
if atk>0 then local batk=tc:GetBaseAttack()
atk=atk+tc:GetBaseAttack() if batk>0 then
atk=atk+batk
end end
tc=g:GetNext() tc=g:GetNext()
end end
......
...@@ -7,17 +7,59 @@ function c1516510.initial_effect(c) ...@@ -7,17 +7,59 @@ function c1516510.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_FUSION_MATERIAL) e1:SetCode(EFFECT_FUSION_MATERIAL)
e1:SetCondition(aux.FConditionCodeFun(16178681,aux.FilterBoolFunction(Card.IsRace,RACE_SPELLCASTER),1,true,false)) e1:SetCondition(aux.FConditionCodeFun(16178681,aux.FilterBoolFunction(Card.IsRace,RACE_SPELLCASTER),1,true,false))
e1:SetOperation(c1516510.fsop2) e1:SetOperation(c1516510.fsop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
c1516510.material_count=1 c1516510.material_count=1
c1516510.material={16178681} c1516510.material={16178681}
c1516510.fsop1=aux.FOperationCodeFun(16178681,aux.FilterBoolFunction(Card.IsRace,RACE_SPELLCASTER),1,true,false)
function c1516510.imfilter(c) function c1516510.imfilter(c)
return c:IsLocation(LOCATION_MZONE) and c:GetSummonType()==SUMMON_TYPE_PENDULUM return c:IsLocation(LOCATION_MZONE) and c:GetSummonType()==SUMMON_TYPE_PENDULUM
end end
function c1516510.fsop2(e,tp,eg,ep,ev,re,r,rp,gc,chkf) function c1516510.fsop(e,tp,eg,ep,ev,re,r,rp,gc,chkf)
c1516510.fsop1(e,tp,eg,ep,ev,re,r,rp,gc,chkf) local g1=nil
local g2=nil
if gc then
g1=Group.CreateGroup()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g2=eg:FilterSelect(tp,Card.IsRace,1,1,nil,RACE_SPELLCASTER)
else
local sg1=Group.CreateGroup()
local sg2=Group.CreateGroup()
local fs=false
local tc=eg:GetFirst()
while tc do
if tc:IsCode(16178681) or tc:IsHasEffect(EFFECT_FUSION_SUBSTITUTE) then sg1:AddCard(tc) end
if tc:IsRace(RACE_SPELLCASTER) then
sg2:AddCard(tc)
if aux.FConditionCheckF(tc,chkf) then fs=true end
end
tc=eg:GetNext()
end
if sg2:GetCount()==1 then
sg1:Sub(sg2)
end
if chkf~=PLAYER_NONE then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
if fs then g1=sg1:Select(tp,1,1,nil)
else g1=sg1:FilterSelect(tp,aux.FConditionCheckF,1,1,nil,chkf) end
local tc1=g1:GetFirst()
sg2:RemoveCard(tc1)
if aux.FConditionCheckF(tc1,chkf) or sg2:GetCount()==1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g2=sg2:Select(tp,1,1,tc1)
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g2=sg2:FilterSelect(tp,aux.FConditionCheckF,1,1,tc1,chkf)
end
else
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g1=sg1:Select(tp,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FMATERIAL)
g2=sg2:Select(tp,1,1,g1:GetFirst())
end
end
g1:Merge(g2)
Duel.SetFusionMaterial(g1)
local c=e:GetHandler() local c=e:GetHandler()
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -33,7 +33,7 @@ function c21698716.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -33,7 +33,7 @@ function c21698716.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,0)
......
...@@ -32,7 +32,7 @@ function c32710364.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,7 +32,7 @@ function c32710364.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,0)
......
...@@ -35,7 +35,7 @@ function c32933942.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -35,7 +35,7 @@ function c32933942.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,0)
......
...@@ -20,7 +20,7 @@ function c34822850.initial_effect(c) ...@@ -20,7 +20,7 @@ function c34822850.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD) e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_FZONE) e3:SetRange(LOCATION_FZONE)
e3:SetTargetRange(LOCATION_HAND,0) e3:SetTargetRange(LOCATION_HAND+LOCATION_GRAVE,0)
e3:SetTarget(c34822850.efftg) e3:SetTarget(c34822850.efftg)
e3:SetCode(34822850) e3:SetCode(34822850)
c:RegisterEffect(e3) c:RegisterEffect(e3)
......
...@@ -37,10 +37,10 @@ function c36776089.retcost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -37,10 +37,10 @@ function c36776089.retcost(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c36776089.rettg(e,tp,eg,ep,ev,re,r,rp,chk) function c36776089.rettg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetLabelObject(),1,0,0) Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler():GetBattleTarget(),1,0,0)
end end
function c36776089.retop(e,tp,eg,ep,ev,re,r,rp) function c36776089.retop(e,tp,eg,ep,ev,re,r,rp)
local bc=e:GetLabelObject() local bc=e:GetHandler():GetBattleTarget()
if bc:IsRelateToBattle() then if bc:IsRelateToBattle() then
Duel.SendtoHand(bc,nil,REASON_EFFECT) Duel.SendtoHand(bc,nil,REASON_EFFECT)
end end
......
...@@ -4,7 +4,7 @@ function c4130270.initial_effect(c) ...@@ -4,7 +4,7 @@ function c4130270.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_TO_DECK) e1:SetCode(EFFECT_CANNOT_TO_DECK)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD) e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD)
c:RegisterEffect(e1) c:RegisterEffect(e1)
......
...@@ -80,13 +80,13 @@ function c60004971.eqop(e,tp,eg,ep,ev,re,r,rp) ...@@ -80,13 +80,13 @@ function c60004971.eqop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
local g=Duel.SelectMatchingCard(tp,c60004971.eqfilter,tp,LOCATION_DECK,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,c60004971.eqfilter,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if not tc or not Duel.Equip(tp,tc,ec) then return end if not tc or not Duel.Equip(tp,tc,ec,true) then return end
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EQUIP_LIMIT) e1:SetCode(EFFECT_EQUIP_LIMIT)
e1:SetReset(RESET_EVENT+0x1fe0000) e1:SetReset(RESET_EVENT+0x1fe0000)
e1:SetValue(c60004971.eqlimit2) e1:SetValue(c60004971.eqlimit2)
e1:SetLabelObject(tc) e1:SetLabelObject(ec)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
end end
......
...@@ -36,7 +36,7 @@ function c66127916.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -36,7 +36,7 @@ function c66127916.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g) Duel.ConfirmCards(1-tp,g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local tg=Duel.SelectMatchingCard(c66127916.filter3,tp,LOCATION_GRAVE,0,1,1,nil) local tg=Duel.SelectMatchingCard(tp,c66127916.filter3,tp,LOCATION_GRAVE,0,1,1,nil)
local tc=tg:GetFirst() local tc=tg:GetFirst()
if tc and Duel.SelectYesNo(tp,aux.Stringid(66127916,0)) then if tc and Duel.SelectYesNo(tp,aux.Stringid(66127916,0)) then
Duel.BreakEffect() Duel.BreakEffect()
......
...@@ -33,7 +33,7 @@ function c68215963.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -33,7 +33,7 @@ function c68215963.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,0)
......
...@@ -31,7 +31,7 @@ function c69937550.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -31,7 +31,7 @@ function c69937550.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,0)
......
...@@ -37,7 +37,7 @@ function c7093411.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -37,7 +37,7 @@ function c7093411.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,0)
......
...@@ -68,7 +68,7 @@ function c81210420.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -68,7 +68,7 @@ function c81210420.activate(e,tp,eg,ep,ev,re,r,rp)
e5:SetCode(EFFECT_SET_BASE_DEFENCE) e5:SetCode(EFFECT_SET_BASE_DEFENCE)
e5:SetValue(0) e5:SetValue(0)
tg:RegisterEffect(e5,true) tg:RegisterEffect(e5,true)
tg:SetStatus(STATUS_NO_LEVEL) tg:SetStatus(STATUS_NO_LEVEL,true)
tg=sg:GetNext() tg=sg:GetNext()
end end
Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEDOWN_DEFENCE) Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEDOWN_DEFENCE)
......
...@@ -31,7 +31,7 @@ function c95600067.repop(e,tp,eg,ep,ev,re,r,rp) ...@@ -31,7 +31,7 @@ function c95600067.repop(e,tp,eg,ep,ev,re,r,rp)
e1:SetCode(EFFECT_CHANGE_TYPE) e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fc0000) e1:SetReset(RESET_EVENT+0x17c0000)
e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS) e1:SetValue(TYPE_SPELL+TYPE_CONTINUOUS)
c:RegisterEffect(e1) c:RegisterEffect(e1)
Duel.RaiseEvent(c,47408488,e,0,tp,0,0) Duel.RaiseEvent(c,47408488,e,0,tp,0,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