Commit 25758af1 authored by POLYMER's avatar POLYMER

fix

parent 191b1c30
...@@ -290,7 +290,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -290,7 +290,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
...@@ -328,7 +328,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -328,7 +328,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
......
...@@ -300,7 +300,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -300,7 +300,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
...@@ -338,7 +338,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -338,7 +338,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
......
...@@ -237,7 +237,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -237,7 +237,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
...@@ -275,7 +275,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -275,7 +275,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
......
...@@ -232,7 +232,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -232,7 +232,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
...@@ -270,7 +270,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -270,7 +270,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
......
...@@ -250,7 +250,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -250,7 +250,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
...@@ -288,7 +288,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -288,7 +288,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
......
...@@ -244,7 +244,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -244,7 +244,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
...@@ -282,7 +282,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp) ...@@ -282,7 +282,7 @@ function cm.mop(e,tp,eg,ep,ev,re,r,rp)
if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end if b3 then if seq==5 then flag=flag|0x2 else flag=flag|0x8 end end
if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end if b4 then if seq==1 then flag=flag|0x20 else flag=flag|0x40 end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0) local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,LOCATION_MZONE,0x600060)
local nseq=math.log(s&0xff,2) local nseq=math.log(s&0xff,2)
if s<0xffff then if s<0xffff then
Duel.MoveSequence(c,nseq) Duel.MoveSequence(c,nseq)
......
...@@ -164,7 +164,7 @@ function c11561078.cfilter(c) ...@@ -164,7 +164,7 @@ function c11561078.cfilter(c)
return c:IsCode(93717133,18963306,88177324) and Duel.IsExistingMatchingCard(c11561078.thfilter,tp,LOCATION_DECK,0,3,nil,c:GetCode()) and Duel.GetMatchingGroup(c11561078.thfilter,tp,LOCATION_DECK,0,nil,c:GetCode()):GetClassCount(Card.GetCode)>2 return c:IsCode(93717133,18963306,88177324) and Duel.IsExistingMatchingCard(c11561078.thfilter,tp,LOCATION_DECK,0,3,nil,c:GetCode()) and Duel.GetMatchingGroup(c11561078.thfilter,tp,LOCATION_DECK,0,nil,c:GetCode()):GetClassCount(Card.GetCode)>2
end end
function c11561078.thfilter(c,code) function c11561078.thfilter(c,code)
return (code==93717133 and c:IsSetCard(0x55,0x7b)) or (code==18963306 and c:IsSetCard(0x95,0xe5)) or (code==88177324 and c:IsSetCard(0x1b4,0x175)) return ((code==93717133 and c:IsSetCard(0x55,0x7b)) or (code==18963306 and c:IsSetCard(0x95,0xe5)) or (code==88177324 and c:IsSetCard(0x1b4,0x175))) and c:IsAbleToHand()
end end
function c11561078.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c11561078.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c11561078.cfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,e:GetHandler()) end if chk==0 then return Duel.IsExistingMatchingCard(c11561078.cfilter,tp,LOCATION_DECK+LOCATION_EXTRA,0,1,e:GetHandler()) end
......
...@@ -27,6 +27,12 @@ function s.pfilter(c) ...@@ -27,6 +27,12 @@ function s.pfilter(c)
return c:IsCode(40020509) and (c:IsFaceup() or c:IsLocation(LOCATION_HAND)) and not c:IsForbidden() return c:IsCode(40020509) and (c:IsFaceup() or c:IsLocation(LOCATION_HAND)) and not c:IsForbidden()
end end
function s.fusfilter(c,e,tp,m)
return c:IsType(TYPE_FUSION) and s.HighEvo(c)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false)
and c:CheckFusionMaterial(m,nil,tp)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk) function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
...@@ -45,10 +45,9 @@ end ...@@ -45,10 +45,9 @@ end
function s.spcon(e,tp,eg,ep,ev,re,r,rp) function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return rp==tp and ( return rp==tp and
re:IsActiveType(TYPE_TRAP) or re:IsActiveType(TYPE_TRAP)
(re:GetHandler():IsCode(40020509) and re:IsActiveType(TYPE_SPELL)) or (re:GetHandler():IsCode(40020539) and re:GetHandler():IsLocation(LOCATION_MZONE))
)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
......
...@@ -60,7 +60,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,7 +60,7 @@ function s.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local labs={e:GetLabel()} local labs={e:GetLabel()}
local count=#labs local count=#labs
if count and count>0 then if count and count>0 then
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_STANDBY) e1:SetCode(EVENT_PHASE+PHASE_STANDBY)
...@@ -76,7 +76,7 @@ function s.spfilter(c,e,tp,code) ...@@ -76,7 +76,7 @@ function s.spfilter(c,e,tp,code)
return c:IsCode(code) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsCode(code) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function s.spop(e,tp,eg,ep,ev,re,r,rp) function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetLabelObject() --local c=e:GetLabelObject()
local labs={e:GetLabel()} local labs={e:GetLabel()}
local ct=labs[1] local ct=labs[1]
local codes={} local codes={}
...@@ -85,7 +85,7 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -85,7 +85,7 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
end end
ct=ct-1 ct=ct-1
e:SetLabel(ct,table.unpack(labs)) e:SetLabel(ct,table.unpack(labs))
c:SetTurnCounter(ct) --c:SetTurnCounter(ct)
if ct==0 then if ct==0 then
Duel.Hint(HINT_CARD,0,id) Duel.Hint(HINT_CARD,0,id)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
......
...@@ -2,12 +2,6 @@ ...@@ -2,12 +2,6 @@
local s,id,o=GetID() local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
c:SetUniqueOnField(1,0,id) c:SetUniqueOnField(1,0,id)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e1:SetValue(s.linklimit)
--c:RegisterEffect(e1)
--hand link --hand link
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
...@@ -20,7 +14,7 @@ function s.initial_effect(c) ...@@ -20,7 +14,7 @@ function s.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e3:SetCode(EVENT_BE_MATERIAL) e3:SetCode(EVENT_BE_MATERIAL)
e3:SetCost(s.thcost) e3:SetCost(s.thcost)
e3:SetCondition(s.thcon) e3:SetCondition(s.thcon)
...@@ -39,10 +33,6 @@ end ...@@ -39,10 +33,6 @@ end
function s.mfilter(c) function s.mfilter(c)
return c:IsLocation(LOCATION_MZONE) return c:IsLocation(LOCATION_MZONE)
end end
function s.linklimit(e,c)
if not c then return false end
return not c:IsLinkAbove(3)
end
function s.matval(e,lc,mg,c,tp) function s.matval(e,lc,mg,c,tp)
if not lc:IsRace(RACE_ZOMBIE) then return false,nil end if not lc:IsRace(RACE_ZOMBIE) then return false,nil end
return true,not mg or mg:IsExists(s.mfilter,1,nil) return true,not mg or mg:IsExists(s.mfilter,1,nil)
......
...@@ -67,14 +67,15 @@ function s.lkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -67,14 +67,15 @@ function s.lkop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,s.lkfilter,tp,LOCATION_EXTRA+LOCATION_GRAVE,0,1,1,nil) local g=Duel.SelectMatchingCard(tp,s.lkfilter,tp,LOCATION_EXTRA+LOCATION_GRAVE,0,1,1,nil)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.LinkSummon(tp,tc,nil)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetValue(s.efilter) e1:SetValue(s.efilter)
tc:RegisterEffect(e1) e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD)
tc:RegisterEffect(e1,true)
Duel.LinkSummon(tp,tc,nil)
end end
end end
function s.cfilter(c) function s.cfilter(c)
......
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