Commit d87a85eb authored by POLYMER's avatar POLYMER

fix

parent 18a89ad4
......@@ -92,18 +92,20 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
local n=11451718
local cn=_G["c"..n]
local chk=false
local c=e:GetHandler()
local lab=c:GetFlagEffectLabel(11451717)
while 1==1 do
local off=1
local ops={}
local opval={}
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2) and not chk then
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) and not chk then
ops[off]=aux.Stringid(n,10)
opval[off-1]=1
off=off+1
end
for i=11451711,11451715 do
local ci=_G["c"..i]
if ci and cn and cn[i] and Duel.GetFlagEffect(0,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2) then
if ci and cn and cn[i] and Duel.GetFlagEffect(tp,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) then
ops[off]=aux.Stringid(i,3)
opval[off-1]=i-11451709
off=off+1
......@@ -134,15 +136,15 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
end
end
if opval[op]==1 then
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0)
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0,lab)
chk=true
elseif opval[op]>=2 and opval[op]<=6 then
local ci=_G["c"..opval[op]+11451709]
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1)
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1,lab)
elseif opval[op]==7 then break end
end
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt,lab)
local c=e:GetHandler()
local g=c:GetAttackableTarget()
local b1=0
......@@ -159,13 +161,13 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL)
e1:SetValue(c:GetFlagEffectLabel(11451717)*500)
e1:SetValue(lab*500)
c:RegisterEffect(e1)
Duel.CalculateDamage(c,tc)
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
--end
end
--c:ResetFlagEffect(11451717)
......
......@@ -94,18 +94,20 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
local n=11451718
local cn=_G["c"..n]
local chk=false
local c=e:GetHandler()
local lab=c:GetFlagEffectLabel(11451717)
while 1==1 do
local off=1
local ops={}
local opval={}
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2) and not chk then
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) and not chk then
ops[off]=aux.Stringid(n,10)
opval[off-1]=1
off=off+1
end
for i=11451711,11451715 do
local ci=_G["c"..i]
if ci and cn and cn[i] and Duel.GetFlagEffect(0,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2) then
if ci and cn and cn[i] and Duel.GetFlagEffect(tp,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) then
ops[off]=aux.Stringid(i,3)
opval[off-1]=i-11451709
off=off+1
......@@ -136,11 +138,11 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
end
end
if opval[op]==1 then
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0)
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0,lab)
chk=true
elseif opval[op]>=2 and opval[op]<=6 then
local ci=_G["c"..opval[op]+11451709]
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1)
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1,lab)
elseif opval[op]==7 then break end
end
end
......@@ -190,7 +192,7 @@ function cm.fselect(g,c)
end
return true --g:GetClassCount(cm.direction,c,0)==1 or (g:IsContains(c) and #g>1 and g:GetClassCount(cm.direction,c,0)==2)
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt,lab)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,TYPE_SPELL+TYPE_TRAP)
local g2=Duel.GetFieldGroup(tp,LOCATION_ONFIELD,LOCATION_ONFIELD)
......@@ -198,17 +200,19 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
local b1=0
local fid=e:GetLabel()
if fid~=0 then b1=1 end
if ct<c:GetFlagEffectLabel(11451717) then
if ct<lab then
if opt==2 then return true end
if not c:IsLocation(LOCATION_MZONE) then return end
Duel.HintSelection(Group.FromCards(c))
--if Duel.SelectYesNo(tp,aux.Stringid(m,4+b1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tg=g2:SelectSubGroup(tp,cm.fselect,false,1,5,c)
--if tg and #tg>0 then Duel.HintSelection(tg) end
Duel.Destroy(tg,REASON_EFFECT)
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
--end
elseif ct>=c:GetFlagEffectLabel(11451717) and g and #g>0 then
elseif ct>=lab and g and #g>0 then
if opt==2 then return true end
Duel.HintSelection(Group.FromCards(c))
--if Duel.SelectYesNo(tp,aux.Stringid(m,b1)) then
......@@ -216,7 +220,7 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
local tg=g:Select(tp,1,1,nil)
Duel.Destroy(tg,REASON_EFFECT)
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
--end
end
--c:ResetFlagEffect(11451717)
......
......@@ -94,18 +94,20 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
local n=11451718
local cn=_G["c"..n]
local chk=false
local c=e:GetHandler()
local lab=c:GetFlagEffectLabel(11451717)
while 1==1 do
local off=1
local ops={}
local opval={}
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2) and not chk then
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) and not chk then
ops[off]=aux.Stringid(n,10)
opval[off-1]=1
off=off+1
end
for i=11451711,11451715 do
local ci=_G["c"..i]
if ci and cn and cn[i] and Duel.GetFlagEffect(0,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2) then
if ci and cn and cn[i] and Duel.GetFlagEffect(tp,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) then
ops[off]=aux.Stringid(i,3)
opval[off-1]=i-11451709
off=off+1
......@@ -136,20 +138,20 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
end
end
if opval[op]==1 then
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0)
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0,lab)
chk=true
elseif opval[op]>=2 and opval[op]<=6 then
local ci=_G["c"..opval[op]+11451709]
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1)
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1,lab)
elseif opval[op]==7 then break end
end
end
function cm.spfilter(c,e,tp)
return c:IsSetCard(0x3977) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt,lab)
local c=e:GetHandler()
local ct=c:GetFlagEffectLabel(11451717)
local ct=lab
local b1=0
local fid=e:GetLabel()
if fid~=0 then b1=1 end
......@@ -171,7 +173,7 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
Duel.SendtoGrave(g,REASON_EFFECT+REASON_REVEAL)
end
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
--end
end
--c:ResetFlagEffect(11451717)
......
......@@ -98,18 +98,20 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
local n=11451718
local cn=_G["c"..n]
local chk=false
local c=e:GetHandler()
local lab=c:GetFlagEffectLabel(11451717)
while 1==1 do
local off=1
local ops={}
local opval={}
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2) and not chk then
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) and not chk then
ops[off]=aux.Stringid(n,10)
opval[off-1]=1
off=off+1
end
for i=11451711,11451715 do
local ci=_G["c"..i]
if ci and cn and cn[i] and Duel.GetFlagEffect(0,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2) then
if ci and cn and cn[i] and Duel.GetFlagEffect(tp,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) then
ops[off]=aux.Stringid(i,3)
opval[off-1]=i-11451709
off=off+1
......@@ -140,18 +142,18 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
end
end
if opval[op]==1 then
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0)
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0,lab)
chk=true
elseif opval[op]>=2 and opval[op]<=6 then
local ci=_G["c"..opval[op]+11451709]
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1)
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1,lab)
elseif opval[op]==7 then break end
end
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt,lab)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(cm.sumfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,nil,e,tp)
local dr=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)<c:GetFlagEffectLabel(11451717)
local dr=Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)<lab
local b1=0
local fid=e:GetLabel()
if fid~=0 then b1=1 end
......@@ -181,7 +183,7 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
end
end
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
--end
end
--c:ResetFlagEffect(11451717)
......
......@@ -95,18 +95,20 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
local n=11451718
local cn=_G["c"..n]
local chk=false
local c=e:GetHandler()
local lab=c:GetFlagEffectLabel(11451717)
while 1==1 do
local off=1
local ops={}
local opval={}
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2) and not chk then
if cm.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) and not chk then
ops[off]=aux.Stringid(n,10)
opval[off-1]=1
off=off+1
end
for i=11451711,11451715 do
local ci=_G["c"..i]
if ci and cn and cn[i] and Duel.GetFlagEffect(0,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2) then
if ci and cn and cn[i] and Duel.GetFlagEffect(tp,0xffffff+i)==0 and ci.mvop and ci.mvop(e,tp,eg,ep,ev,re,r,rp,2,lab) then
ops[off]=aux.Stringid(i,3)
opval[off-1]=i-11451709
off=off+1
......@@ -137,11 +139,11 @@ function cm.mvop1(e,tp,eg,ep,ev,re,r,rp)
end
end
if opval[op]==1 then
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0)
cm.mvop(e,tp,eg,ep,ev,re,r,rp,0,lab)
chk=true
elseif opval[op]>=2 and opval[op]<=6 then
local ci=_G["c"..opval[op]+11451709]
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1)
ci.mvop(e,tp,eg,ep,ev,re,r,rp,1,lab)
elseif opval[op]==7 then break end
end
end
......@@ -207,9 +209,9 @@ function cm.retop3(e,tp,eg,ep,ev,re,r,rp)
Duel.ReturnToField(e:GetLabelObject())
e:Reset()
end
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt,lab)
local c=e:GetHandler()
local ct=c:GetFlagEffectLabel(11451717)//3
local ct=lab//3
--c:ResetFlagEffect(11451717)
local b1=0
local fid=e:GetLabel()
......@@ -226,7 +228,7 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
ct=ct-#sg
chk=true
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
Duel.SendtoHand(sg,nil,REASON_EFFECT)
end
end
......@@ -238,7 +240,7 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp,opt)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local sg=g1:Select(tp,1,ct,nil)
if fid~=0 then Duel.RaiseEvent(c,11451718,e,fid,0,0,0) end
if opt==1 then Duel.RegisterFlagEffect(0,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
if opt==1 then Duel.RegisterFlagEffect(tp,0xffffff+m,RESET_PHASE+PHASE_END,0,1) end
sg:ForEach(cm.returntofield,e)
Duel.RaiseEvent(sg,m,e,0,0,0,0)
end
......
......@@ -38,7 +38,7 @@ function s.spfilter(c,e,tp)
or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,nil,e,tp) end
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_EXTRA)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
......
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