攻略
Combo
考据
好物分享
卡图故事
支缓
盘点整理
Duel Links
--抹殺の指名者 function c65681983.initial_effect(c) --Activate local e1=Effect.CreateEffect(c) e1:SetCategory(CATEGORY_REMOVE) e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetCode(EVENT_FREE_CHAIN) e1:SetCountLimit(1,65681983+EFFECT_COUNT_CODE_OATH) e1:SetTarget(c65681983.target) e1:SetOperation(c65681983.activate) c:RegisterEffect(e1) end function c65681983.target(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,LOCATION_DECK,0,1,nil) end local g=Duel.GetFieldGroup(tp,LOCATION_DECK,0) local ag=Group.CreateGroup() local codes={} for c in aux.Next(g) do local code=c:GetCode() if not ag:IsExists(Card.IsCode,1,nil,code) then ag:AddCard(c) table.insert(codes,code) end end table.sort(codes) --c:IsCode(codes[1]) local afilter={codes[1],OPCODE_ISCODE} if #codes>1 then --or ... or c:IsCode(codes[i]) for i=2,#codes do table.insert(afilter,codes[i]) table.insert(afilter,OPCODE_ISCODE) table.insert(afilter,OPCODE_OR) end end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CODE) local ac=Duel.AnnounceCard(tp,table.unpack(afilter)) getmetatable(e:GetHandler()).announce_filter={TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT} Duel.SetTargetParam(ac) Duel.SetOperationInfo(0,CATEGORY_ANNOUNCE,nil,0,tp,0) Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_DECK) end function c65681983.filter(c,code) return c:IsAbleToRemove() and c:IsCode(code) end function c65681983.activate(e,tp,eg,ep,ev,re,r,rp) local ac=Duel.GetChainInfo(0,CHAININFO_TARGET_PARAM) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) local tc=Duel.SelectMatchingCard(tp,c65681983.filter,tp,LOCATION_DECK,0,1,1,nil,ac):GetFirst() if tc and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_REMOVED) then local c=e:GetHandler() local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD) e1:SetCode(EFFECT_DISABLE) e1:SetTargetRange(LOCATION_ONFIELD,LOCATION_ONFIELD) e1:SetTarget(c65681983.distg) e1:SetLabelObject(tc) e1:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e1,tp) local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e2:SetCode(EVENT_CHAIN_SOLVING) e2:SetCondition(c65681983.discon) e2:SetOperation(c65681983.disop) e2:SetLabelObject(tc) e2:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e2,tp) local e3=Effect.CreateEffect(c) e3:SetType(EFFECT_TYPE_FIELD) e3:SetCode(EFFECT_DISABLE_TRAPMONSTER) e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) e3:SetTarget(c65681983.distg) e3:SetLabelObject(tc) e3:SetReset(RESET_PHASE+PHASE_END) Duel.RegisterEffect(e3,tp) end end function c65681983.distg(e,c) local tc=e:GetLabelObject() return c:IsOriginalCodeRule(tc:GetOriginalCodeRule()) end function c65681983.discon(e,tp,eg,ep,ev,re,r,rp) local tc=e:GetLabelObject() return re:GetHandler():IsOriginalCodeRule(tc:GetOriginalCodeRule()) end function c65681983.disop(e,tp,eg,ep,ev,re,r,rp) Duel.NegateEffect(ev) end