Commit bcba760e authored by POLYMER's avatar POLYMER

fix

parent 1219d02d
......@@ -5949,7 +5949,6 @@
98933011 0
98933012 0
98933014 0
57300400 0
87498743 0
89400000 0
89400001 0
......@@ -5992,7 +5991,6 @@
82800105 0
82800108 0
82800111 0
57300455 0
65131042 0
88881026 0
98920359 0
......
No preview for this file type
expansions/pics/63714000.jpg

83.1 KB | W: | H:

expansions/pics/63714000.jpg

201 KB | W: | H:

expansions/pics/63714000.jpg
expansions/pics/63714000.jpg
expansions/pics/63714000.jpg
expansions/pics/63714000.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -84,7 +84,7 @@ function cm.clear(e,tp,eg,ep,ev,re,r,rp)
i=i+1
end
local tp=e:GetHandler():GetOwner()
Duel.ResetFlagEffect(tp,m)
Duel.ResetFlagEffect(tp,11451767)
--local eset={Duel.IsPlayerAffectedByEffect(tp,EFFECT_FLAG_EFFECT+m)}
--for _,te in pairs(eset) do te:Reset() end
if res then
......@@ -94,7 +94,7 @@ function cm.clear(e,tp,eg,ep,ev,re,r,rp)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetTargetRange(1,0)
e3:SetCode(EFFECT_FLAG_EFFECT+m)
e3:SetCode(EFFECT_FLAG_EFFECT+11451767)
Duel.RegisterEffect(e3,tp)
else
cm.chain_with_stridgon=0
......
......@@ -17,7 +17,8 @@ function cm.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_HAND)
e2:SetCondition(cm.spcon2)
e2:SetOperation(cm.spop2(c))
e2:SetTarget(cm.sptg2(c))
e2:SetOperation(cm.spop2)
--effect gain
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
......@@ -62,12 +63,20 @@ function cm.spcon2(e,c)
local num=Duel.GetMatchingGroupCount(Card.IsFacedown,tp,LOCATION_REMOVED,LOCATION_REMOVED,nil)
return Duel.GetMZoneCount(tp)>0 and (num%c:GetLevel())==0 and num~=0 --and Duel.GetDecktopGroup(tp,c:GetLevel()//2):FilterCount(Card.IsAbleToRemoveAsCost,nil,POS_FACEDOWN)==c:GetLevel()//2
end
function cm.spop2(sc)
return function(e,tp,eg,ep,ev,re,r,rp,c)
function cm.sptg2(sc)
return function(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetMatchingGroup(Card.IsFacedown,tp,LOCATION_REMOVED,LOCATION_REMOVED,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local sg=g:SelectSubGroup(tp,function(g) return g:IsExists(aux.FilterEqualFunction(Card.GetOriginalCode,m),1,nil) end,false,c:GetLevel()//2,c:GetLevel()//2)
Duel.Hint(HINT_CARD,0,m)
Duel.SendtoGrave(sg,REASON_RETURN)
local sg=g:SelectSubGroup(tp,function(g) return g:IsExists(aux.FilterEqualFunction(Card.GetOriginalCode,m),1,nil) end,Duel.IsSummonCancelable(),c:GetLevel()//2,c:GetLevel()//2)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
end
function cm.spop2(e,tp,eg,ep,ev,re,r,rp,c)
local sg=e:GetLabelObject()
Duel.Hint(HINT_CARD,0,m)
Duel.SendtoGrave(sg,REASON_RETURN)
end
\ No newline at end of file
......@@ -62,8 +62,7 @@ function s.discon(e,tp,eg,ep,ev,re,r,rp)
local ex3=re:IsHasCategory(CATEGORY_DRAW)
local ex4=re:IsHasCategory(CATEGORY_SEARCH)
local ex5=re:IsHasCategory(CATEGORY_TOHAND)
return (ex3 or ex4 or ex5) and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainDisablable(ev) and ep==1-tp
and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_MZONE,0,1,c)
return (ex3 or ex4 or ex5) and not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and Duel.IsChainDisablable(ev) and Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_MZONE,0,1,c)
end
function s.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) and Duel.IsPlayerCanDraw(1-tp,1) end
......
--僵尸对战模式
local s,id,o=GetID()
function s.initial_effect(c)
--Game Start
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE_START+PHASE_DRAW)
e1:SetRange(LOCATION_DECK+LOCATION_HAND)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCountLimit(1,id+EFFECT_COUNT_CODE_DUEL)
e1:SetCondition(s.lmcon)
e1:SetOperation(s.lmop)
c:RegisterEffect(e1)
end
function s.lmcon(e)
local c=e:GetHandler()
local tp=c:GetControler()
return Duel.GetFlagEffect(0,id)==0 and not c:IsPublic()
end
function s.lmop(e)
if Duel.GetFlagEffect(0,id)~=0 then return end
Duel.RegisterFlagEffect(0,id,0,0,1)
local c=e:GetHandler()
local tp=c:GetControler()
Duel.ConfirmCards(tp,c)
Duel.ConfirmCards(1-tp,c)
Duel.Hint(24,0,aux.Stringid(id,1))
if Duel.SelectYesNo(1-tp,aux.Stringid(id,0)) then
local g=Duel.GetFieldGroup(tp,0xff,0xff)
for ec in aux.Next(g) do
Duel.Exile(ec,0)
end
Duel.ResetTimeLimit(tp,900)
Duel.ResetTimeLimit(1-tp,900)
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(id,2))
getmetatable(e:GetHandler()).announce_filter1={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local ac=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter1))
Duel.SetTargetParam(ac)
getmetatable(e:GetHandler()).announce_filter2={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local bc=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter2))
getmetatable(e:GetHandler()).announce_filter3={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,bc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local cc=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter3))
getmetatable(e:GetHandler()).announce_filter4={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,bc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,cc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local dc=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter4))
getmetatable(e:GetHandler()).announce_filter5={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,bc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,cc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,dc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local ec=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter5))
getmetatable(e:GetHandler()).announce_filter6={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,bc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,cc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,dc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ec,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local fc=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter6))
getmetatable(e:GetHandler()).announce_filter7={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,bc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,cc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,dc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ec,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,fc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local gc=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter7))
getmetatable(e:GetHandler()).announce_filter8={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ac,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,bc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,cc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,dc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ec,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,fc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,gc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local hc=Duel.AnnounceCard(tp,table.unpack(getmetatable(e:GetHandler()).announce_filter8))
Duel.Hint(HINT_SELECTMSG,1-tp,aux.Stringid(id,2))
getmetatable(e:GetHandler()).announce_filter9={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local ic=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter9))
Duel.SetTargetParam(ic)
getmetatable(e:GetHandler()).announce_filter10={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local jc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter10))
getmetatable(e:GetHandler()).announce_filter11={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,jc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local kc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter11))
getmetatable(e:GetHandler()).announce_filter12={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,jc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,kc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local lc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter12))
getmetatable(e:GetHandler()).announce_filter13={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,jc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,kc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,lc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local mc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter13))
getmetatable(e:GetHandler()).announce_filter14={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,jc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,kc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,lc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,mc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local nc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter14))
getmetatable(e:GetHandler()).announce_filter15={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,jc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,kc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,lc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,mc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,nc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local oc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter15))
getmetatable(e:GetHandler()).announce_filter16={0xc520,OPCODE_ISSETCARD,57300401,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,ic,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,jc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,kc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,lc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,mc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,nc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,oc,OPCODE_ISCODE,OPCODE_NOT,OPCODE_AND,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT,OPCODE_AND}
local pc=Duel.AnnounceCard(1-tp,table.unpack(getmetatable(e:GetHandler()).announce_filter16))
--Load the data of the first player
s.incremental(57300401,tp)
s.incremental(ac,tp)
s.incremental(bc,tp)
s.incremental(cc,tp)
s.incremental(dc,tp)
s.incremental(ec,tp)
s.incremental(fc,tp)
s.incremental(gc,tp)
s.incremental(hc,tp)
s.incremental(57300411,tp)
s.incremental(57300427,tp)
s.incremental(57300431,tp)
s.incremental(57300435,tp)
s.incremental(57300436,tp)
s.incremental(57300442,tp)
s.incremental(57300443,tp)
s.incremental(57300444,tp)
s.incremental(57300449,tp)
s.incremental(57300455,tp)
--Loading data for backhanded players
s.incremental(57300401,1-tp)
s.incremental(ic,1-tp)
s.incremental(jc,1-tp)
s.incremental(kc,1-tp)
s.incremental(lc,1-tp)
s.incremental(mc,1-tp)
s.incremental(nc,1-tp)
s.incremental(oc,1-tp)
s.incremental(pc,1-tp)
s.incremental(57300411,1-tp)
s.incremental(57300427,1-tp)
s.incremental(57300431,1-tp)
s.incremental(57300435,1-tp)
s.incremental(57300436,1-tp)
s.incremental(57300442,1-tp)
s.incremental(57300443,1-tp)
s.incremental(57300444,1-tp)
s.incremental(57300449,1-tp)
s.incremental(57300455,1-tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local pg1=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if pg1:GetCount()>0 then
Duel.SendtoHand(pg1,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,pg1)
end
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND)
local pg2=Duel.SelectMatchingCard(1-tp,s.thfilter,1-tp,LOCATION_DECK,0,1,1,nil)
if pg2:GetCount()>0 then
Duel.SendtoHand(pg2,nil,REASON_EFFECT)
Duel.ConfirmCards(tp,pg2)
end
Duel.ShuffleDeck(tp)
Duel.ShuffleDeck(1-tp)
for p in aux.TurnPlayers() do
local ct=Duel.GetFieldGroupCount(p,LOCATION_HAND,0)
if 5-ct>0 then
if bk then
bk=false
Duel.BreakEffect()
end
Duel.Draw(p,5-ct,REASON_EFFECT)
end
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_DRAW_COUNT)
e1:SetTargetRange(1,1)
e1:SetValue(s.drval)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE+EFFECT_FLAG_IGNORE_RANGE+EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EFFECT_TO_GRAVE_REDIRECT)
e2:SetTargetRange(0xff,0xff)
e2:SetTarget(s.rmtg)
e2:SetValue(LOCATION_DECK)
Duel.RegisterEffect(e2,tp)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CHANGE_DAMAGE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
e3:SetValue(0)
Duel.RegisterEffect(e3,tp)
Duel.RegisterFlagEffect(0,id,0,0,1)
end
end
function s.incremental(code,tp)
local tn=s.calculation(code)
if tn==3 then
local x=0
while x<3 do
local token=Duel.CreateToken(tp,code)
Duel.SendtoDeck(token,nil,0,0)
x=x+1
end
elseif tn==2 then
local x=0
while x<2 do
local token=Duel.CreateToken(tp,code)
Duel.SendtoDeck(token,nil,0,0)
x=x+1
end
else
local token=Duel.CreateToken(tp,code)
Duel.SendtoDeck(token,nil,0,0)
end
end
function s.calculation(code)
local token=Duel.CreateToken(tp,code)
if token:IsType(TYPE_SPELL+TYPE_TRAP) or token:IsLevelBelow(5)
or token:IsType(TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK) then
return 3
elseif token:IsLevelAbove(6) and token:IsLevelBelow(9) then
return 2
else
return 1
end
end
function s.thfilter(c)
return c:IsCode(57300401) and c:IsAbleToHand()
end
function s.drval(e)
local tp=Duel.GetTurnPlayer()
local ct=5-Duel.GetMatchingGroupCount(nil,tp,LOCATION_HAND,0,nil)
if ct>=1 then
return ct
else
return 1
end
end
function s.rmtg(e,c)
return c:IsSetCard(0xc520)
end
function s.rrmcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetLabel()>0
end
function s.rrmop(e,tp,eg,ep,ev,re,r,rp)
local ct=e:GetLabel()
local rt=0
for i=1,ct do
if Duel.GetDecktopGroup(tp,i)==i then rt=rt+1 end
end
local tg=Duel.GetDecktopGroup(tp,rt)
if #tg==0 then return end
Duel.DisableShuffleCheck()
if Duel.Remove(tg,POS_FACEDOWN,REASON_EFFECT)>0 and Duel.GetMatchingGroupCount(nil,tp,LOCATION_DECK,0,nil)==0 then
Duel.Win(1-tp,WIN_REASON_EXODIA)
end
end
function Zombie_Characteristics(c,lp)
local ce0=Effect.CreateEffect(c)
ce0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
ce0:SetCode(EVENT_BATTLED)
ce0:SetCondition(s.damcon)
ce0:SetOperation(s.damop)
c:RegisterEffect(ce0)
local ce1=Effect.CreateEffect(c)
ce1:SetType(EFFECT_TYPE_FIELD)
ce1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
ce1:SetRange(LOCATION_MZONE)
ce1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
ce1:SetTarget(s.indtg)
ce1:SetValue(1)
c:RegisterEffect(ce1)
local ce2=Effect.CreateEffect(c)
ce2:SetType(EFFECT_TYPE_FIELD)
ce2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
ce2:SetRange(LOCATION_MZONE)
ce2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
ce2:SetValue(s.tglimit)
c:RegisterEffect(ce2)
local ce3=Effect.CreateEffect(c)
ce3:SetType(EFFECT_TYPE_SINGLE)
ce3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce3:SetRange(LOCATION_MZONE)
ce3:SetCode(EFFECT_SELF_DESTROY)
ce3:SetCondition(s.descon)
c:RegisterEffect(ce3)
local ce4=Effect.CreateEffect(c)
ce4:SetType(EFFECT_TYPE_SINGLE)
ce4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce4:SetCode(EFFECT_UNRELEASABLE_SUM)
ce4:SetRange(LOCATION_MZONE)
ce4:SetLabel(lp)
ce4:SetValue(1)
ce4:SetCondition(s.imcon)
c:RegisterEffect(ce4)
local ce5=ce4:Clone()
ce5:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
ce5:SetValue(s.fuslimit)
c:RegisterEffect(ce5)
local ce6=ce4:Clone()
ce6:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(ce6)
local ce7=ce4:Clone()
ce7:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(ce7)
local ce8=Effect.CreateEffect(c)
ce8:SetType(EFFECT_TYPE_SINGLE)
ce8:SetCode(EFFECT_SELF_DESTROY)
ce8:SetRange(LOCATION_MZONE)
ce8:SetLabel(lp)
ce8:SetCondition(s.descon2)
c:RegisterEffect(ce8)
local ce9=Effect.CreateEffect(c)
ce9:SetType(EFFECT_TYPE_SINGLE)
ce9:SetCode(EFFECT_SET_ATTACK_FINAL)
ce9:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce9:SetRange(LOCATION_MZONE)
ce9:SetLabel(lp)
ce9:SetValue(s.adval)
c:RegisterEffect(ce9)
end
function Zombie_Characteristics_X(c)
local ce0=Effect.CreateEffect(c)
ce0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
ce0:SetCode(EVENT_BATTLED)
ce0:SetCondition(s.damcon)
ce0:SetOperation(s.damop)
c:RegisterEffect(ce0)
local ce1=Effect.CreateEffect(c)
ce1:SetType(EFFECT_TYPE_FIELD)
ce1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
ce1:SetRange(LOCATION_MZONE)
ce1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
ce1:SetTarget(s.indtg)
ce1:SetValue(1)
c:RegisterEffect(ce1)
local ce2=Effect.CreateEffect(c)
ce2:SetType(EFFECT_TYPE_FIELD)
ce2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
ce2:SetRange(LOCATION_MZONE)
ce2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
ce2:SetValue(s.tglimit)
c:RegisterEffect(ce2)
local ce3=Effect.CreateEffect(c)
ce3:SetType(EFFECT_TYPE_SINGLE)
ce3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce3:SetRange(LOCATION_MZONE)
ce3:SetCode(EFFECT_SELF_DESTROY)
ce3:SetCondition(s.descon)
c:RegisterEffect(ce3)
end
function Zombie_Characteristics_EX(c,lp)
local ce0=Effect.CreateEffect(c)
ce0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
ce0:SetCode(EVENT_BATTLED)
ce0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
ce0:SetCondition(s.damcon)
ce0:SetOperation(s.damop)
c:RegisterEffect(ce0)
local ce1=Effect.CreateEffect(c)
ce1:SetType(EFFECT_TYPE_FIELD)
ce1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
ce1:SetRange(LOCATION_MZONE)
ce1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
ce1:SetTarget(s.indtg)
ce1:SetValue(1)
c:RegisterEffect(ce1)
local ce2=Effect.CreateEffect(c)
ce2:SetType(EFFECT_TYPE_FIELD)
ce2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
ce2:SetRange(LOCATION_MZONE)
ce2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
ce2:SetValue(s.tglimit)
c:RegisterEffect(ce2)
local ce3=Effect.CreateEffect(c)
ce3:SetType(EFFECT_TYPE_SINGLE)
ce3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce3:SetRange(LOCATION_MZONE)
ce3:SetCode(EFFECT_SELF_DESTROY)
ce3:SetCondition(s.descon)
c:RegisterEffect(ce3)
local ce4=Effect.CreateEffect(c)
ce4:SetType(EFFECT_TYPE_SINGLE)
ce4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce4:SetCode(EFFECT_UNRELEASABLE_SUM)
ce4:SetRange(LOCATION_MZONE)
ce4:SetLabel(lp)
ce4:SetValue(1)
ce4:SetCondition(s.imcon)
c:RegisterEffect(ce4)
local ce5=ce4:Clone()
ce5:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
ce5:SetValue(s.fuslimit)
c:RegisterEffect(ce5)
local ce6=ce4:Clone()
ce6:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
c:RegisterEffect(ce6)
local ce7=ce4:Clone()
ce7:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
c:RegisterEffect(ce7)
local ce8=Effect.CreateEffect(c)
ce8:SetType(EFFECT_FLAG_SINGLE_RANGE)
ce8:SetCode(EFFECT_SELF_DESTROY)
ce8:SetRange(LOCATION_MZONE)
ce8:SetLabel(lp)
ce8:SetCondition(s.descon2)
c:RegisterEffect(ce8)
local ce9=Effect.CreateEffect(c)
ce9:SetType(EFFECT_TYPE_SINGLE)
ce9:SetCode(EFFECT_CANNOT_TRIGGER)
ce9:SetRange(LOCATION_MZONE)
ce9:SetLabel(lp)
ce9:SetCondition(s.imcon)
c:RegisterEffect(ce9)
local ce10=Effect.CreateEffect(c)
ce10:SetType(EFFECT_TYPE_SINGLE)
ce10:SetCode(EFFECT_SET_ATTACK_FINAL)
ce10:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
ce10:SetRange(LOCATION_MZONE)
ce10:SetLabel(lp)
ce10:SetValue(s.adval)
c:RegisterEffect(ce10)
end
function s.damcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=Duel.GetAttackTarget()
return Duel.GetAttacker()==c
and ((c:IsPosition(POS_ATTACK) and bc and bc:IsSetCard(0xc520) and bc:IsPosition(POS_ATTACK))
or bc==nil and Duel.GetFlagEffect(0,id)==0)
end
function s.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=Duel.GetAttackTarget()
local aatk=0
if c:IsPosition(POS_ATTACK) then
aatk=c:GetAttack()*-1
end
local batk=0
if bc and bc:IsSetCard(0xc520) and bc:IsPosition(POS_ATTACK) then
batk=bc:GetAttack()*-1
end
if bc and bc:IsSetCard(0xc520) and bc:IsPosition(POS_ATTACK) and c:GetFlagEffect(57300424)==0 then
local e1=Effect.CreateEffect(bc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(batk)
c:RegisterEffect(e1)
end
if bc and c:IsPosition(POS_ATTACK) and bc:GetFlagEffect(57300424)==0 then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(aatk)
bc:RegisterEffect(e1)
end
if bc==nil and c:GetAttack()>0 and Duel.GetFlagEffect(0,id)~=0 then
local dam=math.ceil(c:GetAttack()/1000)
if dam>0 then
local rt=0
for i=1,dam do
if Duel.GetDecktopGroup(1-tp,i):GetCount()==i then rt=rt+1 end
end
local tg=Duel.GetDecktopGroup(1-tp,rt)
if #tg==0 then return end
Duel.DisableShuffleCheck()
if Duel.Remove(tg,POS_FACEDOWN,REASON_EFFECT)>0 and Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_DECK,nil)==0 then
Duel.Win(tp,WIN_REASON_EXODIA)
end
end
end
end
function s.indtg(e,c)
local tc=e:GetHandler()
return (c==tc and tc:GetBattleTarget():IsSetCard(0xc520) or c==tc:GetBattleTarget() and tc:IsSetCard(0xc520))
end
function s.tglimit(e,c)
local tc=e:GetHandler()
return (c==tc and tc:GetBattleTarget():IsSetCard(0xc520) or c==tc:GetBattleTarget() and tc:IsSetCard(0xc520))
end
function s.descon(e)
local c=e:GetHandler()
return c:GetDefense()==0
end
function s.imcon(e)
local c=e:GetHandler()
return c:IsDefenseBelow(e:GetLabel())
end
function s.fuslimit(e,c,sumtype)
return sumtype==SUMMON_TYPE_FUSION
end
function s.descon2(e)
local c=e:GetHandler()
return Duel.GetTurnPlayer()==1-e:GetHandlerPlayer() and Duel.GetCurrentPhase()==PHASE_END and c:GetDefense()<=e:GetLabel()
end
function s.adval(e,c)
if c:IsDefenseBelow(e:GetLabel()) then
return 0
else
return c:GetAttack()
end
end
\ No newline at end of file
--墓碑
local s,id,o=GetID()
function s.initial_effect(c)
c:EnableCounterPermit(0x0520)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_POSITION)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,id+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_LIMIT_SPECIAL_SUMMON_POSITION)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
e2:SetRange(LOCATION_SZONE)
e2:SetTarget(s.splimit)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_CHANGE_POSITION)
e3:SetRange(LOCATION_SZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(s.postg)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_CANNOT_MSET)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(1,0)
e4:SetTarget(s.postg)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_SZONE)
e5:SetValue(s.efilter)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,0)
e6:SetTarget(s.attg)
e6:SetValue(s.atlimit)
c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetCode(EFFECT_DIRECT_ATTACK)
e7:SetRange(LOCATION_SZONE)
e7:SetTargetRange(LOCATION_MZONE,0)
e7:SetTarget(s.atktg)
c:RegisterEffect(e7)
local e8=Effect.CreateEffect(c)
e8:SetDescription(aux.Stringid(id,0))
e8:SetCategory(CATEGORY_SPECIAL_SUMMON)
e8:SetType(EFFECT_TYPE_QUICK_O)
e8:SetCode(EVENT_FREE_CHAIN)
e8:SetCountLimit(1)
e8:SetRange(LOCATION_SZONE)
e8:SetCondition(s.spcon)
e8:SetTarget(s.sptg)
e8:SetOperation(s.spop)
c:RegisterEffect(e8)
local e9=Effect.CreateEffect(c)
e9:SetDescription(aux.Stringid(id,0))
e9:SetCategory(CATEGORY_COUNTER)
e9:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e9:SetCode(EVENT_DAMAGE_STEP_END)
e9:SetRange(LOCATION_SZONE)
e9:SetCondition(s.ccon)
e9:SetTarget(s.ctg)
e9:SetOperation(s.cop)
c:RegisterEffect(e9)
local e10=Effect.CreateEffect(c)
e10:SetCategory(CATEGORY_COUNTER)
e10:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e10:SetCode(EVENT_PHASE+PHASE_END)
e10:SetRange(LOCATION_SZONE)
e10:SetCountLimit(1)
e10:SetTarget(s.ctg)
e10:SetOperation(s.cop)
c:RegisterEffect(e10)
local e11=Effect.CreateEffect(c)
e11:SetDescription(aux.Stringid(id,2))
e11:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e11:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e11:SetProperty(EFFECT_FLAG_NO_TURN_RESET)
e11:SetRange(LOCATION_SZONE)
e11:SetCode(EVENT_PHASE+PHASE_END)
e11:SetCountLimit(1)
e11:SetCondition(s.spcon3)
e11:SetTarget(s.sptg3)
e11:SetOperation(s.spop3)
c:RegisterEffect(e11)
local e12=Effect.CreateEffect(c)
e12:SetDescription(aux.Stringid(id,10))
e12:SetType(EFFECT_TYPE_SINGLE)
e12:SetCode(EFFECT_TRAP_ACT_IN_HAND)
e12:SetCondition(s.handcon)
c:RegisterEffect(e12)
end
function s.posfilter(c)
return c:IsPosition(POS_DEFENSE) and c:IsSetCard(0xc520)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(s.posfilter,tp,LOCATION_MZONE,0,nil)
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,g:GetCount(),0,0)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(s.posfilter,tp,LOCATION_MZONE,0,nil)
if g:GetCount()>0 then
Duel.ChangePosition(g,POS_FACEUP_ATTACK)
end
end
function s.splimit(e,c,tp,sumtp,sumpos)
return bit.band(sumpos,POS_DEFENSE)>0 and c:IsSetCard(0xc520)
end
function s.postg(e,c)
return c:IsSetCard(0xc520)
end
function s.handcon(e)
return not Duel.IsExistingMatchingCard(s.hcfilter,e:GetHandler():GetControler(),LOCATION_GRAVE,0,1,nil)
end
function s.hcfilter(c)
return not c:IsSetCard(0xc520)
end
function s.efilter(e,te)
return not te:GetOwner():IsSetCard(0xc520)
end
function s.attg(e,c)
e:SetLabelObject(c)
return c:IsFaceup() and c:IsSetCard(0xc520) and c:IsLocation(LOCATION_MZONE)
end
function s.atlimit(e,c)
local lc=e:GetLabelObject()
return not lc:GetColumnGroup():IsContains(c)
end
function s.atkfilter(c,tp)
return c:IsLocation(LOCATION_MZONE) and c:IsControler(1-tp)
end
function s.atktg(e,c)
local cg=c:GetColumnGroup()
return c:IsFaceup() and c:IsSetCard(0xc520) and not cg:IsExists(s.atkfilter,1,nil,e:GetHandlerPlayer())
end
function s.filter(c,cc,e,tp)
return c:IsSetCard(0xc520) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and c:GetLevel()>0 and cc:IsCanRemoveCounter(tp,0x0520,c:GetLevel(),REASON_COST)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rpc)
return Duel.GetTurnPlayer()==tp
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_HAND,0,1,nil,e:GetHandler(),e,tp) end
local g=Duel.GetMatchingGroup(s.filter,tp,LOCATION_HAND,0,nil,e:GetHandler(),e,tp)
local lvt={}
local tc=g:GetFirst()
while tc do
local tlv=tc:GetLevel()
lvt[tlv]=tlv
tc=g:GetNext()
end
local pc=1
for i=1,12 do
if lvt[i] then lvt[i]=nil lvt[pc]=i pc=pc+1 end
end
lvt[pc]=nil
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(id,1))
local lv=Duel.AnnounceNumber(tp,table.unpack(lvt))
e:GetHandler():RemoveCounter(tp,0x0520,lv,REASON_COST)
e:SetLabel(lv)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function s.sfilter(c,lv,e,tp)
return c:IsSetCard(0xc520) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and c:GetLevel()==lv
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local lv=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.sfilter,tp,LOCATION_HAND,0,1,1,nil,lv,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function s.ccon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsSetCard(0xc520) and Duel.GetAttacker():IsControler(tp) and Duel.GetAttackTarget()==nil
end
function s.ctg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsCanAddCounter(0x0520,2) end
end
function s.cop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
c:AddCounter(0x0520,2)
end
end
function s.spcon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function s.sptg3(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local zone=1<<c:GetSequence()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,57300402,0xc520,TYPES_TOKEN_MONSTER,600,1400,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP_ATTACK) end
e:GetHandler():RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,3))
end
function s.spop3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
if not Duel.IsPlayerCanSpecialSummonMonster(tp,57300413,0xc520,TYPES_TOKEN_MONSTER,600,1600,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP_ATTACK) then return end
local zone=1<<c:GetSequence()
local ss=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)
if ss>0 then
local token=Duel.CreateToken(tp,57300402)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP_ATTACK,zone)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_HAND+LOCATION_EXTRA)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetOperation(s.backop)
token:RegisterEffect(e1)
Duel.SpecialSummonComplete()
local fid=token:GetFieldID()
token:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1,fid)
local ct=Duel.GetTurnCount(tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EVENT_PHASE+PHASE_END,2)
e2:SetReset(RESET_PHASE+PHASE_END,2)
e2:SetCountLimit(1)
e2:SetLabel(fid,ct)
e2:SetLabelObject(token)
e2:SetCondition(s.descon3)
e2:SetOperation(s.desop3)
Duel.RegisterEffect(e2,tp)
else
return
end
end
function s.backop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Exile(c,0)
end
function s.desfilter(c,fid)
return c:GetFlagEffectLabel(id)==fid
end
function s.descon3(e,tp,eg,ep,ev,re,r,rp)
local fid,ct=e:GetLabel()
local g=e:GetLabelObject()
if ct==Duel.GetTurnCount(tp) return false end
if not g:IsExists(s.desfilter,1,nil,fid) then
g:DeleteGroup()
e:Reset()
return false
else return true end
end
function s.desop3(e,tp,eg,ep,ev,re,r,rp)
local fid,ct=e:GetLabel()
local g=e:GetLabelObject()
local dg=g:Filter(s.desfilter,nil,fid)
g:DeleteGroup()
Duel.Destroy(dg,REASON_EFFECT)
end
\ No newline at end of file
--pvz bt z 普通僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
--pvz bt z 普通小鬼僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 路障僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 铁桶僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 胖墩僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,1000)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_BATTLE_CONFIRM)
e1:SetTarget(s.targ)
e1:SetOperation(s.op)
c:RegisterEffect(e1)
end
function s.targ(e,tp,eg,ep,ev,re,r,rp,chk)
local t=Duel.GetAttackTarget()
if chk==0 then return Duel.GetAttacker()==e:GetHandler() and t~=nil and not t:IsAttackPos() and t:IsAbleToGrave() and t:IsDefenseBelow(800) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,t,1,0,0)
end
function s.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local t=Duel.GetAttackTarget()
if t~=nil and t:IsRelateToBattle() and not t:IsAttackPos() then
Duel.SendtoGrave(t,REASON_EFFECT)
if c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(800)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
end
end
end
\ No newline at end of file
--pvz bt z 铁钢门僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 玻璃门僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 垃圾桶僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e1:SetCondition(s.natkcon)
c:RegisterEffect(e1)
end
function s.natkcon(e)
local c=e:GetHandler()
return c:GetDefense()>=1100
end
\ No newline at end of file
--pvz bt z 读报僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,500)
end
\ No newline at end of file
--pvz bt z 狂暴读报僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddXyzProcedure(c,nil,5,2,s.ovfilter,aux.Stringid(id,0),3,nil)
c:EnableReviveLimit()
Zombie_Characteristics(c,500)
end
function s.ovfilter(c)
return c:IsFaceup() and c:IsCode(57300410) and c:IsDefenseBelow(1000)
end
\ No newline at end of file
--pvz bt z 忍者小鬼僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,700)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_SINGLE)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetOperation(s.btop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
end
function s.btop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e1:SetValue(aux.imval1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e1)
end
end
\ No newline at end of file
--pvz bt z 伴舞僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e1:SetCondition(s.natkcon)
c:RegisterEffect(e1)
if not s.global_check then
s.global_check=true
local ge1=Effect.GlobalEffect()
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_ATTACK_ANNOUNCE)
ge1:SetOperation(s.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetAttacker():IsCode(id,id+1) then
Duel.RegisterFlagEffect(Duel.GetAttacker():GetControler(),id,RESET_PHASE+PHASE_END,0,1)
end
end
function s.natkcon(e)
return Duel.GetFlagEffect(e:GetHandlerPlayer(),id)>0
end
\ No newline at end of file
--pvz bt z 迪斯科僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,700)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e1:SetCondition(s.natkcon)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetCondition(s.spcon)
e2:SetTarget(s.sptg)
e2:SetOperation(s.spop)
c:RegisterEffect(e2)
if not s.global_check then
s.global_check=true
local ge1=Effect.GlobalEffect()
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_ATTACK_ANNOUNCE)
ge1:SetOperation(s.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetAttacker():IsCode(id,id-1) then
Duel.RegisterFlagEffect(Duel.GetAttacker():GetControler(),id,RESET_PHASE+PHASE_END,0,1)
end
end
function s.natkcon(e)
return Duel.GetFlagEffect(e:GetHandlerPlayer(),id)>0
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
if not Duel.IsPlayerCanSpecialSummonMonster(tp,57300413,0xc520,TYPES_TOKEN_MONSTER,600,2000,1,RACE_ZOMBIE,ATTRIBUTE_DARK,POS_FACEUP_ATTACK) then return end
local seq=c:GetSequence()
if seq==5 or seq==6 then return end
local zone=0
if seq>0 then zone=zone|(1<<(seq-1)) end
if seq<4 then zone=zone|(1<<(seq+1)) end
local ss=Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,zone)
if ss>1 then
local token1=Duel.CreateToken(tp,57300413)
Duel.SpecialSummonStep(token1,0,tp,tp,false,false,POS_FACEUP_ATTACK,zone)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_HAND+LOCATION_EXTRA)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetOperation(s.backop)
token1:RegisterEffect(e1)
local token2=Duel.CreateToken(tp,57300413)
Duel.SpecialSummonStep(token2,0,tp,tp,false,false,POS_FACEUP_ATTACK,zone)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_HAND+LOCATION_EXTRA)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetOperation(s.backop)
token2:RegisterEffect(e1)
Duel.SpecialSummonComplete()
elseif ss>0 then
local token=Duel.CreateToken(tp,57300413)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP_ATTACK,zone)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetRange(LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_HAND+LOCATION_EXTRA)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_SET_AVAILABLE)
e1:SetOperation(s.backop)
token:RegisterEffect(e1)
Duel.SpecialSummonComplete()
else
return
end
end
function s.backop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Exile(c,0)
end
\ No newline at end of file
--pvz bt z 香肠小鬼僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,700)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(s.deftg)
e1:SetOperation(s.defop)
c:RegisterEffect(e1)
end
function s.deffilter(c,tp)
return c:IsType(TYPE_MONSTER) and c:IsDefenseAbove(1) and c:IsFaceup() and c:IsControler(1-tp) and not (c:GetFlagEffect(57300424)~=0)
end
function s.deftg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local seq=c:GetSequence()
local g=c:GetColumnGroup():Filter(s.deffilter,nil,tp)
if chk==0 then return g:GetCount()>0 and (seq>0 and Duel.CheckLocation(tp,LOCATION_MZONE,seq-1))
or (seq<4 and Duel.CheckLocation(tp,LOCATION_MZONE,seq+1))
and c:IsAttackAbove(1) end
end
function s.defop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or not c:IsControler(tp) then return end
local g=c:GetColumnGroup():Filter(s.deffilter,nil,tp)
if g:GetCount()>0 then
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(c:GetAttack()*-1)
tc:RegisterEffect(e1)
end
local seq=c:GetSequence()
local flag=0
if seq>0 and Duel.CheckLocation(tp,LOCATION_MZONE,seq-1) then flag=flag|(1<<(seq-1)) end
if seq<4 and Duel.CheckLocation(tp,LOCATION_MZONE,seq+1) then flag=flag|(1<<(seq+1)) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,~flag)
local seq=math.log(s,2)
Duel.MoveSequence(c,seq)
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
\ No newline at end of file
--pvz bt z 撑杆僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e1:SetCountLimit(1)
e1:SetTarget(s.deftg)
e1:SetOperation(s.defop)
c:RegisterEffect(e1)
end
function s.filter(c,g)
return c:IsDefenseBelow(3000) and c:IsFaceup() and g:IsContains(c)
end
function s.deftg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
local cg=c:GetColumnGroup()
cg:AddCard(c)
if chkc then return s.filter(chkc,cg) and chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_MZONE) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,cg) end
e:GetHandler():RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,3))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil,cg)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function s.defop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() and c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DIRECT_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetCode(EFFECT_UPDATE_DEFENSE)
e2:SetValue(tc:GetAttack()*-1)
c:RegisterEffect(e2)
end
end
\ No newline at end of file
--pvz bt z 超新星僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,600)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,0))
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(s.target)
e2:SetOperation(s.operation)
c:RegisterEffect(e2)
end
function s.filter(c)
return c:IsFaceup() and c:IsSetCard(0x33) and not c:IsCode(2009101)
end
function s.spcon(e,c)
if c==nil then return true end
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0 and
Duel.IsExistingMatchingCard(s.filter,c:GetControler(),LOCATION_MZONE,0,1,nil)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsFaceup() end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,Card.IsFaceup,tp,0,LOCATION_MZONE,1,1,nil)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetLabel(tc:GetOriginalCode())
e1:SetTargetRange(0,1)
e1:SetValue(s.actlimit)
e1:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SET_ATTACK_FINAL)
e2:SetLabel(tc:GetOriginalCode())
e2:SetProperty(0,EFFECT_FLAG2_WICKED)
e2:SetTargetRange(0,LOCATION_MZONE)
e2:SetTarget(s.atktg)
e2:SetValue(s.atkval)
e2:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e2,tp)
end
end
function s.actlimit(e,re,tp)
return re:GetHandler():IsOriginalCodeRule(e:GetLabel()) and re:IsActiveType(TYPE_MONSTER)
end
function s.atktg(e,c)
return c:IsOriginalCodeRule(e:GetLabel())
end
function s.atkval(e,c)
return 0
end
\ No newline at end of file
--pvz bt z 乌龟骑手僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,600)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetOperation(s.atkop)
c:RegisterEffect(e1)
end
function s.atkfilter(c,tp)
return not c:IsAttack(0) and c:IsFaceup() and c:IsControler(1-tp)
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or not c:IsControler(tp) then return end
local g=c:GetColumnGroup():Filter(s.atkfilter,nil,tp)
if g:GetCount()>0 then
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(math.ceil(c:GetAttack()/2))
tc:RegisterEffect(e1)
end
end
end
\ No newline at end of file
--pvz bt z 闹鬼僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetDefense()>=700
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp,e:GetHandler())>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,id+1,0xc520,TYPES_TOKEN_MONSTER,0,1700,4,RACE_ZOMBIE,ATTRIBUTE_DARK) end
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.Destroy(c,REASON_EFFECT)~=0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,id+1,0xc520,TYPES_TOKEN_MONSTER,0,1700,4,RACE_ZOMBIE,ATTRIBUTE_DARK) then
local token=Duel.CreateToken(tp,id+1)
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetValue(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
token:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_NO_BATTLE_DAMAGE)
e2:SetValue(1)
token:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
e3:SetValue(1)
token:RegisterEffect(e3)
local e4=Effect.CreateEffect(e:GetHandler())
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetCountLimit(1)
e4:SetRange(LOCATION_MZONE)
e4:SetCondition(s.descon)
e4:SetOperation(s.desop)
e4:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
e:GetHandler():RegisterEffect(e4)
e:GetHandler():RegisterFlagEffect(id,RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,2)
s[e:GetHandler()]=e4
Duel.SpecialSummonComplete()
end
end
function s.descon(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function s.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
c:SetTurnCounter(ct)
if ct==2 then
Duel.Destroy(c,REASON_RULE)
c:ResetFlagEffect(1082946)
end
end
\ No newline at end of file
--pvz bt z Z科技射线僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,300)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1)
e1:SetTarget(s.dtg)
e1:SetOperation(s.dop)
c:RegisterEffect(e1)
end
function s.filter(c,g)
return c:IsFaceup() and g:IsContains(c)
end
function s.dtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
local cg=c:GetColumnGroup()
cg:AddCard(c)
if chkc then return s.filter(chkc,cg) and chkc:IsControler(1-tp) and chkc:IsLocation(LOCATION_MZONE) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil,cg) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil,cg)
end
function s.dop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_IGNORE_BATTLE_TARGET)
e2:SetValue(1)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
tc:RegisterEffect(e2)
end
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EFFECT_IGNORE_BATTLE_TARGET)
e2:SetValue(1)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
c:RegisterEffect(e2)
end
end
\ No newline at end of file
--pvz bt z 魔术师僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES+CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetDefense()<=200
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanSpecialSummon(tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and not Duel.IsPlayerAffectedByEffect(tp,63060238)
and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>0 end
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)==0 then return end
Duel.ConfirmDecktop(tp,1)
local g=Duel.GetDecktopGroup(tp,1)
local tc=g:GetFirst()
if tc:IsSetCard(0xc520) and tc:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.DisableShuffleCheck()
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
else
Duel.SendtoGrave(tc,REASON_EFFECT)
end
end
\ No newline at end of file
--pvz bt z Z科技悬浮机器人
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(s.atkcon)
e1:SetTarget(s.atktg)
e1:SetOperation(s.atkop)
c:RegisterEffect(e1)
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(id)==0
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetAttack()*2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
if c:IsRelateToEffect(e) then
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2)
end
end
\ No newline at end of file
--pvz bt z Z科技护盾机器人
local s,id,o=GetID()
function s.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_BATTLED)
e0:SetCondition(s.damcon)
e0:SetOperation(s.damop)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e1:SetTarget(s.indtg)
e1:SetValue(1)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetValue(s.tglimit)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DESTROY_REPLACE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetTarget(s.desreptg)
e3:SetOperation(s.desrepop)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e4:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e4:SetCode(EVENT_ADJUST)
e4:SetRange(LOCATION_MZONE)
e4:SetOperation(s.adjustop)
c:RegisterEffect(e4)
end
function s.damcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=Duel.GetAttackTarget()
return Duel.GetAttacker()==c
and ((c:IsPosition(POS_ATTACK) and bc and bc:IsSetCard(0xc520) and bc:IsPosition(POS_ATTACK))
or bc==nil and Duel.GetFlagEffect(0,id)==0)
end
function s.damop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=Duel.GetAttackTarget()
local aatk=0
if c:IsPosition(POS_ATTACK) then
aatk=c:GetAttack()*-1
end
local batk=0
if bc and bc:IsSetCard(0xc520) and bc:IsPosition(POS_ATTACK) then
batk=bc:GetAttack()*-1
end
if bc and bc:IsSetCard(0xc520) and bc:IsPosition(POS_ATTACK) and not (c:GetFlagEffect(57300424)~=0) then
local e1=Effect.CreateEffect(bc)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(batk)
c:RegisterEffect(e1)
end
if bc and c:IsPosition(POS_ATTACK) and not (bc:GetFlagEffect(57300424)~=0) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(aatk)
bc:RegisterEffect(e1)
end
if bc==nil and c:GetAttack()>0 and Duel.GetFlagEffect(0,id)~=0 then
local dam=math.ceil(c:GetAttack()/1000)
if dam>0 then
local rt=0
for i=1,dam do
if Duel.GetDecktopGroup(1-tp,i):GetCount()==i then rt=rt+1 end
end
local tg=Duel.GetDecktopGroup(1-tp,rt)
if #tg==0 then return end
Duel.DisableShuffleCheck()
if Duel.Remove(tg,POS_FACEDOWN,REASON_EFFECT)>0 and Duel.GetMatchingGroupCount(nil,tp,0,LOCATION_DECK,nil)==0 then
Duel.Win(tp,WIN_REASON_EXODIA)
end
end
end
end
function s.indtg(e,c)
local tc=e:GetHandler()
return (c==tc and tc:GetBattleTarget():IsSetCard(0xc520) or c==tc:GetBattleTarget() and tc:IsSetCard(0xc520))
end
function s.tglimit(e,c)
local tc=e:GetHandler()
return (c==tc and tc:GetBattleTarget():IsSetCard(0xc520) or c==tc:GetBattleTarget() and tc:IsSetCard(0xc520))
end
function s.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsReason(REASON_BATTLE+REASON_EFFECT) and not c:IsReason(REASON_REPLACE)
and not c:GetDefense()==0 end
if Duel.SelectEffectYesNo(tp,c,96) then
return true
else return false end
end
function s.desrepop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_DEFENSE_FINAL)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
function s.desfilter2(c,s,tp)
local seq=c:GetSequence()
return seq<5 and math.abs(seq-s)==1 and c:IsControler(tp)
end
function s.adjustop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local seq=c:GetSequence()
local g=Duel.GetMatchingGroup(s.desfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,nil,seq,c:GetControler())
if g:GetCount()~=0 then
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetValue(1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_CLIENT_HINT)
tc:RegisterEffect(e2)
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
Duel.Readjust()
end
end
\ No newline at end of file
--pvz bt z Z科技压制者机器人
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_EXTRA_ATTACK)
e1:SetValue(3)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetOperation(s.atkop)
c:RegisterEffect(e2)
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:RegisterFlagEffect(57300424,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
\ No newline at end of file
--pvz bt z Z科技磁暴履带车
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(id,1))
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BATTLED)
e3:SetOperation(s.defop)
c:RegisterEffect(e3)
end
function s.deffilter(c,tp)
if c:IsLocation(LOCATION_FZONE) then return false end
if not (c:IsDefenseAbove(1) and c:IsFaceup() and c:IsControler(1-tp) and not (c:GetFlagEffect(57300424)~=0)) then return false end
if ((i==0 or i==2) and c:GetSequence()==5) or ((o==2 or i==4) and c:GetSequence()==6) then return true end
return i+c:GetSequence()==5 or i+c:GetSequence()==3
end
function s.defop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or not c:IsControler(tp) then return end
local dis=c:GetSequence()
local g=Duel.IsExistingMatchingCard(s.deffilter,tp,0,LOCATION_MZONE,1,nil,i)
if g:GetCount()>0 then
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(c:GetAttack()*-1)
tc:RegisterEffect(e1)
end
end
end
\ No newline at end of file
--pvz bt z Z科技堡垒机器人
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddFusionProcFunRep(c,s.ffilter,5,true)
aux.AddContactFusionProcedure(c,Card.IsAbleToRemoveAsCost,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,Duel.Remove,POS_FACEUP,REASON_COST)
c:EnableReviveLimit()
Zombie_Characteristics_X(c)
end
function s.ffilter(c,fc,sub,mg,sg)
return c:IsFusionSetCard(0x5521) and (not sg or not sg:IsExists(Card.IsFusionCode,1,c,c:GetFusionCode()))
end
\ No newline at end of file
--pvz bt z Z科技传送僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,600)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCode(EVENT_BE_BATTLE_TARGET)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCondition(s.condition)
e1:SetCost(s.cost)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_FIELD)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetRange(LOCATION_REMOVED)
e2:SetCountLimit(1)
e2:SetTarget(s.sumtg)
e2:SetOperation(s.sumop)
c:RegisterEffect(e2)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(id)==0
end
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() end
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateAttack()
e:GetHandler():RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,0)
end
function s.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:GetFlagEffect(id)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function s.sumop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) and Duel.SpecialSummon(e:GetHandler(),0,tp,tp,false,false,POS_FACEUP)~=0 then
e:GetHandler():RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1)
end
end
\ No newline at end of file
--pvz bt z 矿工僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,600)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetOperation(s.coinop)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e3)
local e4=e2:Clone()
e4:SetCode(EVENT_FLIP_SUMMON_SUCCESS)
c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetValue(aux.imval1)
c:RegisterEffect(e5)
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_SINGLE)
e6:SetCode(EFFECT_DIRECT_ATTACK)
c:RegisterEffect(e6)
end
function s.coinop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_ATTACK)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e2)
end
\ No newline at end of file
--pvz bt z 史莱姆僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(s.defcon)
e1:SetTarget(s.deftg)
e1:SetOperation(s.defop)
c:RegisterEffect(e1)
end
function s.defcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetDefense()<=400 and e:GetHandler():GetFlagEffect(id)<2
end
function s.deftg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function s.defop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetBaseDefense())
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_ATTACK)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
if Duel.GetTurnPlayer()==tp then
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
else
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
end
c:RegisterEffect(e2)
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1)
end
\ No newline at end of file
--pvz bt z 黑暗骑士僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
c:EnableReviveLimit()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(s.sprcon)
e2:SetTarget(s.sprtg)
e2:SetOperation(s.sprop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_UPDATE_DEFENSE)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0xc520))
e3:SetValue(300)
c:RegisterEffect(e3)
Zombie_Characteristics_X(c)
end
function s.sprfilter(c)
return c:IsFaceupEx() and c:IsAbleToRemoveAsCost()
end
function s.filter1(c,g)
return c:IsCode(57300403) and g:IsExists(s.filter2,1,c,g,c)
end
function s.filter2(c,g,ec)
return c:IsSetCard(0x5521) and g:IsExists(s.filter3,1,Group.FromCards(c,ec),g,c:GetCode())
end
function s.filter3(c,g,code)
return c:IsSetCard(0x5521) and not c:IsCode(code)
end
function s.fselect(g,tp,sc)
return g:IsExists(s.filter1,1,nil,g) and Duel.GetLocationCountFromEx(tp,tp,g,sc)>0
end
function s.sprcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local g=Duel.GetMatchingGroup(s.sprfilter,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,nil)
return g:CheckSubGroup(s.fselect,3,3,tp,c)
end
function s.sprtg(e,tp,eg,ep,ev,re,r,rp,chk,c)
local g=Duel.GetMatchingGroup(s.sprfilter,tp,LOCATION_HAND+LOCATION_MZONE+LOCATION_GRAVE,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local sg=g:SelectSubGroup(tp,s.fselect,true,3,3,tp,c)
if sg then
sg:KeepAlive()
e:SetLabelObject(sg)
return true
else return false end
end
function s.sprop(e,tp,eg,ep,ev,re,r,rp,c)
local g=e:GetLabelObject()
Duel.Remove(g,POS_FACEUP,REASON_SPSUMMON+REASON_COST)
g:DeleteGroup()
end
\ No newline at end of file
--pvz bt z 忍者僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_BE_BATTLE_TARGET)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_NO_TURN_RESET)
e1:SetCondition(s.atkcon)
e1:SetTarget(s.atktg)
e1:SetOperation(s.atkop)
c:RegisterEffect(e1)
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetDefense()>=400
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local a=Duel.GetAttacker()
if chkc then return chkc==a end
if chk==0 then return a~=nil and a:IsCanBeEffectTarget(e) and a:GetAttack()>0 end
Duel.SetTargetCard(a)
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.NegateAttack() and c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetAttack()*2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_BATTLE,RESET_SELF_TURN)
c:RegisterEffect(e1)
end
end
\ No newline at end of file
--pvz bt z 军团报僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
end
--pvz bt z 周刊僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
end
--pvz bt z 狂暴周刊僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddXyzProcedure(c,nil,12,2,s.ovfilter,aux.Stringid(id,0),3,nil)
c:EnableReviveLimit()
Zombie_Characteristics(c,500)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,id)
e1:SetCondition(s.atkcon)
e1:SetTarget(s.atktg)
e1:SetOperation(s.atkop)
c:RegisterEffect(e1)
end
function s.ovfilter(c)
return c:IsFaceup() and c:IsCode(57300434) and c:IsDefenseBelow(1200)
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonLocation(LOCATION_EXTRA)
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetAttack()*2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e1)
end
if c:IsRelateToEffect(e) then
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
end
\ No newline at end of file
--pvz bt z 狂暴军团僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddXyzProcedure(c,nil,6,2,s.ovfilter,aux.Stringid(id,0),3,nil)
c:EnableReviveLimit()
Zombie_Characteristics(c,500)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_PHASE+PHASE_BATTLE_START)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(s.ctcon)
e1:SetTarget(s.cttg)
e1:SetOperation(s.ctop)
c:RegisterEffect(e1)
end
function s.ovfilter(c)
return c:IsFaceup() and c:IsCode(57300433) and c:IsDefenseBelow(1000)
end
function s.ctcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp
end
function s.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function s.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
c:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE,0,1)
end
end
\ No newline at end of file
--pvz bt z 气球僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(s.condition)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsAbleToEnterBP() and not e:GetHandler():IsHasEffect(EFFECT_DIRECT_ATTACK)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DIRECT_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
\ No newline at end of file
--pvz bt z 橄榄球僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 先锋橄榄球僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
\ No newline at end of file
--pvz bt z 拳击手僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(s.condition)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsAbleToEnterBP() and not e:GetHandler():IsHasEffect(EFFECT_DIRECT_ATTACK)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_ATTACK)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_PHASE+PHASE_DRAW)
e3:SetCountLimit(1)
e3:SetOperation(s.sop)
e3:SetReset(RESET_PHASE+PHASE_END,2)
Duel.RegisterEffect(e3,tp)
end
function s.sop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetTurnPlayer()==tp and c:IsFaceup() and c:IsLocation(LOCATION_MZONE) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(c:GetBaseAttack()*3)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
c:RegisterEffect(e1)
end
end
\ No newline at end of file
--pvz bt z 大篷车僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_ONFIELD,0)
e2:SetTarget(s.indtg)
e2:SetValue(aux.indoval)
c:RegisterEffect(e2)
end
function s.indtg(e,c)
return c~=e:GetHandler()
end
\ No newline at end of file
--pvz bt z 普通巨尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddFusionProcFunRep(c,s.ffilter,3,true)
aux.AddContactFusionProcedure(c,Card.IsAbleToRemoveAsCost,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,Duel.Remove,POS_FACEUP,REASON_COST)
c:EnableReviveLimit()
Zombie_Characteristics_X(c)
end
function s.ffilter(c,fc,sub,mg,sg)
return c:IsFusionCode(57300402)
end
\ No newline at end of file
--pvz bt z 橄榄球巨尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddFusionProcCodeFun(c,57300439,s.ffilter,2,true,true)
aux.AddContactFusionProcedure(c,Card.IsAbleToRemoveAsCost,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,Duel.Remove,POS_FACEUP,REASON_COST)
c:EnableReviveLimit()
Zombie_Characteristics_X(c)
end
function s.ffilter(c,fc,sub,mg,sg)
return c:IsFusionCode(57300438)
end
\ No newline at end of file
--pvz bt z 狂暴橄榄球巨尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddXyzProcedure(c,nil,17,2,s.ovfilter,aux.Stringid(id,0),3,nil)
c:EnableReviveLimit()
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,id)
e1:SetCondition(s.atkcon)
e1:SetTarget(s.atktg)
e1:SetOperation(s.atkop)
c:RegisterEffect(e1)
end
function s.ovfilter(c)
return c:IsFaceup() and c:IsCode(57300443) and c:IsDefenseBelow(1450)
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonLocation(LOCATION_EXTRA)
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(1000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e1)
end
end
\ No newline at end of file
--pvz bt z 救生圈普通僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
--pvz bt z 救生圈塑料盆僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics(c,400)
end
--pvz bt z 电鱼僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_EX(c,400)
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_ATTACK_ANNOUNCE)
e3:SetCondition(s.defcon)
e3:SetOperation(s.defop)
c:RegisterEffect(e3)
end
function s.defcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(aux.AND(Card.IsFaceup,Card.IsCode),tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,57300456)
end
function s.deffilter(c,tp)
return c:GetColumnGroup():IsExists(aux.AND(Card.IsFaceup,Card.IsCode),1,nil,57300456)
and c:IsFaceup()
and c:GetFlagEffect(57300424)~=0
end
function s.defop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(s.deffilter,tp,0,LOCATION_MZONE,nil)
if g:GetCount()>0 then
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetCode(EFFECT_UPDATE_DEFENSE)
e1:SetValue(c:GetAttack()*-1)
tc:RegisterEffect(e1)
end
end
end
\ No newline at end of file
--pvz bt 法老王僵尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
end
function s.filter(c)
return c:IsFaceup()
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsOnField() and s.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,s.filter,tp,LOCATION_MZONE,0,1,1,nil)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2)
end
end
\ No newline at end of file
--pvz bt z 深海巨尸
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddFusionProcFunRep(c,s.ffilter,3,true)
aux.AddContactFusionProcedure(c,Card.IsAbleToRemoveAsCost,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,Duel.Remove,POS_FACEUP,REASON_COST)
c:EnableReviveLimit()
Zombie_Characteristics_X(c)
end
function s.ffilter(c,fc,sub,mg,sg)
return c:IsFusionCode(57300445)
end
\ No newline at end of file
--法老的诅咒
local s,id,o=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
e1:SetOperation(s.activate)
c:RegisterEffect(e1)
end
function s.filter(c)
return c:IsFaceup()
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsOnField() and s.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,s.filter,tp,LOCATION_MZONE,0,1,1,nil)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
tc:RegisterFlagEffect(57300424,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,2)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
e1:SetValue(aux.indoval)
tc:RegisterEffect(e1)
end
end
\ No newline at end of file
--僵尸传送装置
local s,id,o=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(s.condition1)
e1:SetTarget(s.target1)
e1:SetOperation(s.operation1)
c:RegisterEffect(e1)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummon(tp) and not Duel.IsPlayerAffectedByEffect(tp,63060238) and not Duel.IsPlayerAffectedByEffect(tp,97148796)
and Duel.IsExistingMatchingCard(Card.IsSummonableCard,tp,LOCATION_DECK,0,1,nil) and Duel.IsPlayerCanDiscardDeck(tp,1)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK)
end
function s.spfilter(c,e,tp)
return c:IsSetCard(0xc520) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerCanSpecialSummon(tp) or not Duel.IsPlayerCanDiscardDeck(tp,1) then return end
local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
local dcount=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)
local seq=-1
local tc=g:GetFirst()
local spcard=nil
while tc do
if tc:GetSequence()>seq then
seq=tc:GetSequence()
spcard=tc
end
tc=g:GetNext()
end
if seq==-1 then
Duel.ConfirmDecktop(tp,dcount)
Duel.ShuffleDeck(tp)
return
end
Duel.ConfirmDecktop(tp,dcount-seq)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and spcard:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.DisableShuffleCheck()
if dcount-seq==1 then Duel.SpecialSummon(spcard,0,tp,tp,false,false,POS_FACEUP)
else
Duel.SpecialSummonStep(spcard,0,tp,tp,false,false,POS_FACEUP)
Duel.ShuffleDeck(tp)
Duel.SpecialSummonComplete()
end
else
Duel.ShuffleDeck(tp)
end
end
function s.condition1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(aux.AND(Card.IsFaceup,Card.IsCode),tp,LOCATION_ONFIELD,0,1,nil,57300455)
end
function s.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummon(tp) and not Duel.IsPlayerAffectedByEffect(tp,63060238) and not Duel.IsPlayerAffectedByEffect(tp,97148796)
and Duel.IsExistingMatchingCard(Card.IsSummonableCard,tp,LOCATION_DECK,0,1,nil) and Duel.IsPlayerCanDiscardDeck(tp,1)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_DECK)
end
function s.operation1(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerCanSpecialSummon(tp) or not Duel.IsPlayerCanDiscardDeck(tp,1) then return end
local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
local dcount=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)
local seq=-1
local tc=g:GetFirst()
local spcard=nil
while tc do
if tc:GetSequence()>seq then
seq=tc:GetSequence()
spcard=tc
end
tc=g:GetNext()
end
if seq==-1 then
Duel.ConfirmDecktop(tp,dcount)
Duel.ShuffleDeck(tp)
return
end
Duel.ConfirmDecktop(tp,dcount-seq)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and spcard:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.DisableShuffleCheck()
if dcount-seq==1 then Duel.SpecialSummon(spcard,0,tp,tp,false,false,POS_FACEUP)
else
Duel.SpecialSummonStep(spcard,0,tp,tp,false,false,POS_FACEUP)
Duel.ShuffleDeck(tp)
Duel.SpecialSummonComplete()
end
else
Duel.ShuffleDeck(tp)
end
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummon(tp) and not Duel.IsPlayerAffectedByEffect(tp,63060238) and not Duel.IsPlayerAffectedByEffect(tp,97148796)
and Duel.IsExistingMatchingCard(Card.IsSummonableCard,tp,LOCATION_DECK,0,1,nil) and Duel.IsPlayerCanDiscardDeck(tp,1)
and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
Duel.BreakEffect()
local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
local dcount=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)
local seq=-1
local tc=g:GetFirst()
local spcard=nil
while tc do
if tc:GetSequence()>seq then
seq=tc:GetSequence()
spcard=tc
end
tc=g:GetNext()
end
if seq==-1 then
Duel.ConfirmDecktop(tp,dcount)
Duel.ShuffleDeck(tp)
return
end
Duel.ConfirmDecktop(tp,dcount-seq)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and spcard:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.DisableShuffleCheck()
if dcount-seq==1 then Duel.SpecialSummon(spcard,0,tp,tp,false,false,POS_FACEUP)
else
Duel.SpecialSummonStep(spcard,0,tp,tp,false,false,POS_FACEUP)
Duel.ShuffleDeck(tp)
Duel.SpecialSummonComplete()
end
else
Duel.ShuffleDeck(tp)
end
end
end
\ No newline at end of file
--碾压践踏
local s,id,o=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(s.condition1)
e1:SetTarget(s.target1)
e1:SetOperation(s.operation1)
c:RegisterEffect(e1)
end
function s.filter(c)
return not c:IsAttack(0) and c:IsFaceup()
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_MZONE)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.HintSelection(g)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_DEFENSE_FINAL)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
Duel.Destroy(g,REASON_EFFECT)
end
end
function s.condition1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(aux.AND(Card.IsFaceup,Card.IsCode),tp,LOCATION_ONFIELD,0,1,nil,57300455)
end
function s.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_MZONE,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_MZONE)
end
function s.operation1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,0,LOCATION_MZONE,1,3,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
for tc in aux.Next(g) do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_DEFENSE_FINAL)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
end
Duel.Destroy(g,REASON_EFFECT)
end
end
\ No newline at end of file
--碾压践踏
local s,id,o=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(s.condition1)
e1:SetTarget(s.target1)
e1:SetOperation(s.operation1)
c:RegisterEffect(e1)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_ONFIELD)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
function s.condition1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(aux.AND(Card.IsFaceup,Card.IsCode),tp,LOCATION_ONFIELD,0,1,nil,57300455)
end
function s.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_ONFIELD)
end
function s.operation1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,1,2,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
end
\ No newline at end of file
--追踪导弹
local s,id,o=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_DISABLE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_DISABLE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(s.condition1)
e1:SetTarget(s.target1)
e1:SetOperation(s.operation1)
c:RegisterEffect(e1)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.NegateMonsterFilter,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_MZONE)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
local g=Duel.SelectMatchingCard(tp,aux.NegateMonsterFilter,tp,0,LOCATION_MZONE,1,1,nil)
local tc=g:GetFirst()
if tc then
Duel.HintSelection(g)
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
end
end
function s.condition1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(aux.AND(Card.IsFaceup,Card.IsCode),tp,LOCATION_ONFIELD,0,1,nil,57300455)
end
function s.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.NegateMonsterFilter,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_MZONE)
end
function s.operation1(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.NegateMonsterFilter,tp,0,LOCATION_MZONE,nil)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
tc=g:GetNext()
end
end
\ No newline at end of file
--pvz bt z “根除者”僵尸机甲
Duel.LoadScript("c57300400.lua")
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddFusionProcFunRep(c,s.ffilter,8,true)
aux.AddContactFusionProcedure(c,Card.IsAbleToRemoveAsCost,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,Duel.Remove,POS_FACEUP,REASON_COST)
c:EnableReviveLimit()
Zombie_Characteristics_X(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0))
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,id)
e1:SetCondition(s.thcon)
e1:SetTarget(s.thtg)
e1:SetOperation(s.thop)
c:RegisterEffect(e1)
end
function s.ffilter(c,fc,sub,mg,sg)
return c:IsFusionSetCard(0x5521) and (not sg or not sg:IsExists(Card.IsFusionCode,1,c,c:GetFusionCode()))
end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonLocation(LOCATION_EXTRA)
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
local token=Duel.CreateToken(tp,id-1)
Duel.SendtoHand(token,nil,REASON_EFFECT)
local token=Duel.CreateToken(tp,id-2)
Duel.SendtoHand(token,nil,REASON_EFFECT)
local token=Duel.CreateToken(tp,id-3)
Duel.SendtoHand(token,nil,REASON_EFFECT)
local token=Duel.CreateToken(tp,id-4)
Duel.SendtoHand(token,nil,REASON_EFFECT)
end
\ No newline at end of file
--水路
local s,id,o=GetID()
function s.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(s.target)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetTarget(s.atktarget)
c:RegisterEffect(e2)
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(s.descon)
e1:SetOperation(s.desop)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
e:GetHandler():RegisterEffect(e1)
e:GetHandler():RegisterFlagEffect(id,RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,2)
s[e:GetHandler()]=e1
end
function s.descon(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function s.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetTurnCounter()
ct=ct+1
c:SetTurnCounter(ct)
if ct==2 then
Duel.Destroy(c,REASON_RULE)
c:ResetFlagEffect(1082946)
end
end
function s.atktarget(e,c)
return not (c:IsSetCard(0x6521) or c:IsAttribute(ATTRIBUTE_WATER)) and c:GetColumnGroup():IsContains(e:GetHandler())
end
\ No newline at end of file
......@@ -1241,7 +1241,6 @@
!setname 0x6520 毒兽
!setname 0x9520 编号武装
!setname 0xa520 制限
!setname 0xc520 pvz bt z
!setname 0x3521 绕行
!setname 0x5521 Z科技
!setname 0x6521 多栖
......
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