Commit 6ce8c52c authored by POLYMER's avatar POLYMER

fix

parent 3f354a23
...@@ -3,221 +3,221 @@ local cm, m, ofs = GetID() ...@@ -3,221 +3,221 @@ local cm, m, ofs = GetID()
local yr = 13020010 local yr = 13020010
-- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end) -- xpcall(function() dofile("expansions/script/c16670000.lua") end, function() dofile("script/c16670000.lua") end)
if not Duel.LoadScript and loadfile then if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str) function Duel.LoadScript(str)
require_list = require_list or {} require_list = require_list or {}
str = "expansions/script/" .. str str = "expansions/script/" .. str
if not require_list[str] then if not require_list[str] then
if string.find(str, "%.") then if string.find(str, "%.") then
require_list[str] = loadfile(str) require_list[str] = loadfile(str)
else else
require_list[str] = loadfile(str .. ".lua") require_list[str] = loadfile(str .. ".lua")
end end
pcall(require_list[str]) pcall(require_list[str])
end end
return require_list[str] return require_list[str]
end end
end end
Duel.LoadScript("c16670000.lua") Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
aux.AddCodeList(c, yr) aux.AddCodeList(c, yr)
--Activate --Activate
local e1 = Effect.CreateEffect(c) local e1 = Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND + CATEGORY_SEARCH) e1:SetCategory(CATEGORY_TOHAND + CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1, m) e1:SetCountLimit(1, m)
e1:SetTarget(cm.target) e1:SetTarget(cm.target)
e1:SetOperation(cm.activate) e1:SetOperation(cm.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e3 = Effect.CreateEffect(c) local e3 = Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m, 2)) e3:SetDescription(aux.Stringid(m, 2))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY + EFFECT_FLAG_CARD_TARGET) e3:SetProperty(EFFECT_FLAG_DELAY + EFFECT_FLAG_CARD_TARGET)
e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetRange(QY_mx) e3:SetRange(QY_mx)
e3:SetCountLimit(1, m + 1) e3:SetCountLimit(1, m + 1)
e3:SetCondition(cm.spcon2) e3:SetCondition(cm.spcon2)
--e3:SetCost(cm.spcost2) e3:SetCost(cm.spcost2)
e3:SetTarget(cm.sptg2) e3:SetTarget(cm.sptg2)
e3:SetOperation(cm.spop2) e3:SetOperation(cm.spop2)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function cm.filter(c) function cm.filter(c)
return aux.IsCodeListed(c, yr) and c:IsAbleToHand() return aux.IsCodeListed(c, yr) and c:IsAbleToHand()
end end
function cm.filter2(c, e, tp) function cm.filter2(c, e, tp)
return c:IsType(TYPE_EQUIP) and c:IsCanBeSpecialSummoned(e, 0, tp, true, false) return c:IsType(TYPE_EQUIP) and c:IsCanBeSpecialSummoned(e, 0, tp, true, false)
end end
function cm.target(e, tp, eg, ep, ev, re, r, rp, chk) function cm.target(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then return Duel.IsExistingMatchingCard(cm.filter, tp, LOCATION_DECK, 0, 1, nil) end if chk == 0 then return Duel.IsExistingMatchingCard(cm.filter, tp, LOCATION_DECK, 0, 1, nil) end
Duel.SetOperationInfo(0, CATEGORY_TOHAND, nil, 1, tp, LOCATION_DECK) Duel.SetOperationInfo(0, CATEGORY_TOHAND, nil, 1, tp, LOCATION_DECK)
end end
function cm.activate(e, tp, eg, ep, ev, re, r, rp) function cm.activate(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler() local c = e:GetHandler()
if not c:IsRelateToEffect(e) then return end if not c:IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_ATOHAND)
local g = Duel.SelectMatchingCard(tp, cm.filter, tp, LOCATION_DECK, 0, 1, 1, nil) local g = Duel.SelectMatchingCard(tp, cm.filter, tp, LOCATION_DECK, 0, 1, 1, nil)
if g:GetCount() > 0 then if g:GetCount() > 0 then
Duel.SendtoHand(g, nil, REASON_EFFECT) Duel.SendtoHand(g, nil, REASON_EFFECT)
Duel.ConfirmCards(1 - tp, g) Duel.ConfirmCards(1 - tp, g)
end end
end end
function cm.cfilter(c, tp) function cm.cfilter(c, tp)
return c:IsType(TYPE_NORMAL) return c:IsType(TYPE_NORMAL)
end end
function cm.spcon2(e, tp, eg, ep, ev, re, r, rp) function cm.spcon2(e, tp, eg, ep, ev, re, r, rp)
return eg:IsExists(cm.cfilter, 1, nil, tp) return eg:IsExists(cm.cfilter, 1, nil, tp)
end end
function cm.spcost2(e, tp, eg, ep, ev, re, r, rp, chk) function cm.spcost2(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable, tp, LOCATION_HAND, 0, 1, nil) end if chk == 0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable, tp, LOCATION_HAND, 0, 1, nil) end
Duel.DiscardHand(tp, Card.IsDiscardable, 1, 1, REASON_COST + REASON_DISCARD) Duel.DiscardHand(tp, Card.IsDiscardable, 1, 1, REASON_COST + REASON_DISCARD)
end end
function cm.sptg2(e, tp, eg, ep, ev, re, r, rp, chk, chkc) function cm.sptg2(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and chkc:IsType(TYPE_SPELL + TYPE_EQUIP) end if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and chkc:IsType(TYPE_SPELL + TYPE_EQUIP) end
local kx, zzx, sxx, zzjc, sxjc, zzl = it.sxbl() local kx, zzx, sxx, zzjc, sxjc, zzl = it.sxbl()
if chk == 0 then return Duel.IsExistingTarget(cm.filter2, tp, LOCATION_GRAVE, 0, 1, nil, e, tp) and zzx > 0 end if chk == 0 then return Duel.IsExistingTarget(cm.filter2, tp, LOCATION_GRAVE, 0, 1, nil, e, tp) and zzx > 0 end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
local g = Duel.SelectTarget(tp, cm.filter2, tp, LOCATION_GRAVE, 0, 1, 1, nil, e, tp) local g = Duel.SelectTarget(tp, cm.filter2, tp, LOCATION_GRAVE, 0, 1, 1, nil, e, tp)
local zz, sx, lv = it.sxblx(tp, kx, zzx, sxx, zzl) local zz, sx, lv = it.sxblx(tp, kx, zzx, sxx, zzl)
e:SetLabel(zz, sx, lv) e:SetLabel(zz, sx, lv)
Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, g, 1, 0, 0) Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, g, 1, 0, 0)
end end
function cm.spop2(e, tp, eg, ep, ev, re, r, rp) function cm.spop2(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler() local c = e:GetHandler()
local tc = Duel.GetFirstTarget() local tc = Duel.GetFirstTarget()
local zz, sx, lv = e:GetLabel() local zz, sx, lv = e:GetLabel()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
if not Duel.IsPlayerCanSpecialSummonMonster(tp, tc:GetCode(), 0, TYPE_NORMAL + TYPE_MONSTER, 0, 0, lv, zz, sx) then return end if not Duel.IsPlayerCanSpecialSummonMonster(tp, tc:GetCode(), 0, TYPE_NORMAL + TYPE_MONSTER, 0, 0, lv, zz, sx) then return end
it.AddMonsterate(tc, TYPE_NORMAL + TYPE_MONSTER, sx, zz, lv, 0, 0) it.AddMonsterate(tc, TYPE_NORMAL + TYPE_MONSTER, sx, zz, lv, 0, 0)
Duel.SpecialSummonStep(tc, 0, tp, tp, true, false, POS_FACEUP_DEFENSE) Duel.SpecialSummonStep(tc, 0, tp, tp, true, false, POS_FACEUP_DEFENSE)
local e3 = Effect.CreateEffect(c) local e3 = Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_LEAVE_FIELD_REDIRECT) e3:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetReset(RESET_EVENT + RESETS_REDIRECT) e3:SetReset(RESET_EVENT + RESETS_REDIRECT)
e3:SetValue(LOCATION_REMOVED) e3:SetValue(LOCATION_REMOVED)
tc:RegisterEffect(e3, true) tc:RegisterEffect(e3, true)
local e2 = Effect.CreateEffect(c) local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE) e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetReset(RESET_EVENT + RESETS_REDIRECT) e2:SetReset(RESET_EVENT + RESETS_REDIRECT)
e2:SetCode(EFFECT_UPDATE_ATTACK) e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetValue(cm.atkval) e2:SetValue(cm.atkval)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
local cl = Duel.GetMatchingGroup(function(c) local cl = Duel.GetMatchingGroup(function(c)
return c:IsXyzSummonable(nil) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_XYZ, tp, false, false) return c:IsXyzSummonable(nil) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_XYZ, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil) end, tp, LOCATION_EXTRA, 0, 1, nil)
local lj = Duel.GetMatchingGroup(function(c) local lj = Duel.GetMatchingGroup(function(c)
return c:IsLinkSummonable(nil) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_LINK, tp, false, false) return c:IsLinkSummonable(nil) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_LINK, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil) end, tp, LOCATION_EXTRA, 0, 1, nil)
local td = Duel.GetMatchingGroup(function(c) local td = Duel.GetMatchingGroup(function(c)
return c:IsSynchroSummonable(nil) and return c:IsSynchroSummonable(nil) and
c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_SYNCHRO, tp, false, false) c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_SYNCHRO, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil) end, tp, LOCATION_EXTRA, 0, 1, nil)
local mg1 = Duel.GetFusionMaterial(tp):Filter(function(c) local mg1 = Duel.GetFusionMaterial(tp):Filter(function(c)
return not c:IsImmuneToEffect(e) return not c:IsImmuneToEffect(e)
end, nil) end, nil)
local rh = Duel.GetMatchingGroup(function(c) local rh = Duel.GetMatchingGroup(function(c)
return c:CheckFusionMaterial(mg1, nil, tp) and return c:CheckFusionMaterial(mg1, nil, tp) and
c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false) c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false)
end, tp, LOCATION_EXTRA, 0, 1, nil) end, tp, LOCATION_EXTRA, 0, 1, nil)
if (cl:GetCount() > 0 or lj:GetCount() > 0 or td:GetCount() > 0 or rh:GetCount() > 0) and Duel.SelectYesNo(tp, aux.Stringid(id, 0)) then if (cl:GetCount() > 0 or lj:GetCount() > 0 or td:GetCount() > 0 or rh:GetCount() > 0) and Duel.SelectYesNo(tp, aux.Stringid(m, 0)) then
local off = 1 local off = 1
local ops = {} local ops = {}
local opval = {} local opval = {}
if td then if td then
ops[off] = aux.Stringid(m, 3) ops[off] = aux.Stringid(m, 3)
opval[off - 1] = 1 opval[off - 1] = 1
off = off + 1 off = off + 1
end end
if cl then if cl then
ops[off] = aux.Stringid(m, 1) ops[off] = aux.Stringid(m, 1)
opval[off - 1] = 2 opval[off - 1] = 2
off = off + 1 off = off + 1
end end
if lj then if lj then
ops[off] = aux.Stringid(m, 5) ops[off] = aux.Stringid(m, 5)
opval[off - 1] = 3 opval[off - 1] = 3
off = off + 1 off = off + 1
end end
if rh then if rh then
ops[off] = aux.Stringid(m, 6) ops[off] = aux.Stringid(m, 6)
opval[off - 1] = 3 opval[off - 1] = 3
off = off + 1 off = off + 1
end end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_EFFECT) Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_EFFECT)
local op = Duel.SelectOption(tp, table.unpack(ops)) local op = Duel.SelectOption(tp, table.unpack(ops))
if opval[op] == 1 then if opval[op] == 1 then
local tc = td:Select(tp, 1, 1, nil):GetFirst() local tc = td:Select(tp, 1, 1, nil):GetFirst()
if tc then if tc then
Duel.LinkSummon(tp, tc, nil) Duel.LinkSummon(tp, tc, nil)
end end
elseif opval[op] == 2 then elseif opval[op] == 2 then
local tc = cl:Select(tp, 1, 1, nil):GetFirst() local tc = cl:Select(tp, 1, 1, nil):GetFirst()
if tc then if tc then
Duel.XyzSummon(tp, tc, nil) Duel.XyzSummon(tp, tc, nil)
end end
elseif opval[op] == 3 then elseif opval[op] == 3 then
local tc = lj:Select(tp, 1, 1, nil):GetFirst() local tc = lj:Select(tp, 1, 1, nil):GetFirst()
if tc then if tc then
Duel.LinkSummon(tp, tc, nil) Duel.LinkSummon(tp, tc, nil)
end end
elseif opval[op] == 4 then elseif opval[op] == 4 then
local chkf = tp local chkf = tp
local mg2 = nil local mg2 = nil
local sg2 = nil local sg2 = nil
local ce = Duel.GetChainMaterial(tp) local ce = Duel.GetChainMaterial(tp)
if ce ~= nil then if ce ~= nil then
local fgroup = ce:GetTarget() local fgroup = ce:GetTarget()
mg2 = fgroup(ce, e, tp) mg2 = fgroup(ce, e, tp)
local mf = ce:GetValue() local mf = ce:GetValue()
sg2 = Duel.GetMatchingGroup(function(c, e, tp, m, f, chkf) sg2 = Duel.GetMatchingGroup(function(c, e, tp, m, f, chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c)) return c:IsType(TYPE_FUSION) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false) and and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false) and
c:CheckFusionMaterial(m, nil, chkf) c:CheckFusionMaterial(m, nil, chkf)
end, tp, LOCATION_EXTRA, 0, nil, e, tp, mg2, mf, chkf) end, tp, LOCATION_EXTRA, 0, nil, e, tp, mg2, mf, chkf)
end end
if rh:GetCount() > 0 or (sg2 ~= nil and sg2:GetCount() > 0) then if rh:GetCount() > 0 or (sg2 ~= nil and sg2:GetCount() > 0) then
local sg = rh:Clone() local sg = rh:Clone()
if sg2 then sg:Merge(sg2) end if sg2 then sg:Merge(sg2) end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
local tg = sg:Select(tp, 1, 1, nil) local tg = sg:Select(tp, 1, 1, nil)
local tc = tg:GetFirst() local tc = tg:GetFirst()
if rh:IsContains(tc) and (sg2 == nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp, ce:GetDescription())) then if rh:IsContains(tc) and (sg2 == nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp, ce:GetDescription())) then
local mat1 = Duel.SelectFusionMaterial(tp, tc, mg1, nil, chkf) local mat1 = Duel.SelectFusionMaterial(tp, tc, mg1, nil, chkf)
tc:SetMaterial(mat1) tc:SetMaterial(mat1)
Duel.SendtoGrave(mat1, REASON_EFFECT + REASON_MATERIAL + REASON_FUSION) Duel.SendtoGrave(mat1, REASON_EFFECT + REASON_MATERIAL + REASON_FUSION)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc, SUMMON_TYPE_FUSION, tp, tp, false, false, POS_FACEUP) Duel.SpecialSummon(tc, SUMMON_TYPE_FUSION, tp, tp, false, false, POS_FACEUP)
else else
local mat2 = Duel.SelectFusionMaterial(tp, tc, mg2, nil, chkf) local mat2 = Duel.SelectFusionMaterial(tp, tc, mg2, nil, chkf)
local fop = ce:GetOperation() local fop = ce:GetOperation()
fop(ce, e, tp, tc, mat2) fop(ce, e, tp, tc, mat2)
end end
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
end end
end end
end end
function cm.atkval(e, c) function cm.atkval(e, c)
return Duel.GetMatchingGroupCount(cm.atkfilter, e:GetHandlerPlayer(), LOCATION_GRAVE + LOCATION_REMOVED, 0, nil) * return Duel.GetMatchingGroupCount(cm.atkfilter, e:GetHandlerPlayer(), LOCATION_GRAVE + LOCATION_REMOVED, 0, nil) *
500 500
end end
function cm.atkfilter(c) function cm.atkfilter(c)
return aux.IsCodeListed(c, yr) and c:IsType(TYPE_EQUIP) return aux.IsCodeListed(c, yr) and c:IsType(TYPE_EQUIP)
end end
--精灵胶囊 --精灵胶囊
local cm, m, o = GetID() local cm, m, o = GetID()
if not Duel.LoadScript and loadfile then if not Duel.LoadScript and loadfile then
function Duel.LoadScript(str) function Duel.LoadScript(str)
require_list = require_list or {} require_list = require_list or {}
str = "expansions/script/" .. str str = "expansions/script/" .. str
if not require_list[str] then if not require_list[str] then
if string.find(str, "%.") then if string.find(str, "%.") then
require_list[str] = loadfile(str) require_list[str] = loadfile(str)
else else
require_list[str] = loadfile(str .. ".lua") require_list[str] = loadfile(str .. ".lua")
end end
pcall(require_list[str]) pcall(require_list[str])
end end
return require_list[str] return require_list[str]
end end
end end
Duel.LoadScript("c16670000.lua") Duel.LoadScript("c16670000.lua")
function cm.initial_effect(c) function cm.initial_effect(c)
local e1 = Effect.CreateEffect(c) local e1 = Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_EQUIP) e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_HAND + LOCATION_SZONE) e1:SetRange(LOCATION_HAND + LOCATION_SZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET + EFFECT_FLAG_CONTINUOUS_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET + EFFECT_FLAG_CONTINUOUS_TARGET + EFFECT_FLAG_SET_AVAILABLE)
e1:SetCondition(function(e, tp, eg, ep, ev, re, r, rp) e1:SetCondition(function(e, tp, eg, ep, ev, re, r, rp)
return not Duel.IsExistingMatchingCard(nil, tp, LOCATION_MZONE, 0, 1, nil) or local c = e:GetHandler()
Duel.IsExistingMatchingCard(function(c) return (c:IsLocation(LOCATION_HAND) and
return c:IsType(TYPE_EQUIP) and c:IsFaceup() (not Duel.IsExistingMatchingCard(nil, tp, LOCATION_MZONE, 0, 1, nil) or
end, tp, LOCATION_SZONE, 0, 1, nil) Duel.IsExistingMatchingCard(function(c)
end) return c:IsType(TYPE_EQUIP) and c:IsFaceup()
e1:SetTarget(function(e, tp, eg, ep, ev, re, r, rp, chk, chkc) end, tp, LOCATION_SZONE, 0, 1, nil))) or
local c = e:GetHandler() (not c:IsLocation(LOCATION_HAND) and Duel.IsMainPhase() and Duel.IsTurnPlayer(tp))
local func = function(c) end)
return (c:IsLocation(LOCATION_MZONE) or e1:SetTarget(function(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
c:IsLocation(LOCATION_SZONE)) and c:IsType(TYPE_SPELL + TYPE_TRAP) and c:IsFaceup() local c = e:GetHandler()
end local func = function(c)
if chkc then return (c:IsLocation(LOCATION_MZONE) or
return func(chkc) c:IsLocation(LOCATION_SZONE)) and c:IsType(TYPE_SPELL + TYPE_TRAP) and c:IsFaceup()
end end
if chk == 0 then if chkc then
return Duel.IsExistingTarget(func, tp, LOCATION_MZONE + LOCATION_SZONE, return func(chkc)
LOCATION_MZONE + LOCATION_SZONE, 1, nil) end
end if chk == 0 then
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_EQUIP) return Duel.IsExistingTarget(func, tp, LOCATION_MZONE + LOCATION_SZONE,
Duel.SelectTarget(tp, func, tp, LOCATION_MZONE + LOCATION_SZONE, LOCATION_MZONE + LOCATION_SZONE, 1, 1, c) --aux.ExceptThisCard(e) LOCATION_MZONE + LOCATION_SZONE, 1, nil)
Duel.SetOperationInfo(0, CATEGORY_EQUIP, e:GetHandler(), 1, 0, 0) end
end) Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_EQUIP)
e1:SetOperation(function(e, tp, eg, ep, ev, re, r, rp) Duel.SelectTarget(tp, func, tp, LOCATION_MZONE + LOCATION_SZONE, LOCATION_MZONE + LOCATION_SZONE, 1, 1, c) --aux.ExceptThisCard(e)
local c = e:GetHandler() Duel.SetOperationInfo(0, CATEGORY_EQUIP, e:GetHandler(), 1, 0, 0)
local tc = Duel.GetFirstTarget() end)
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then e1:SetOperation(function(e, tp, eg, ep, ev, re, r, rp)
it.CopyEquip(tp, c, tc) local c = e:GetHandler()
end local tc = Duel.GetFirstTarget()
end) if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then
c:RegisterEffect(e1) it.CopyEquip(tp, c, tc)
it.EmulateSZONE(c, e1) end
end)
c:RegisterEffect(e1)
it.EmulateSZONE(c, e1)
local e29 = Effect.CreateEffect(c) local e29 = Effect.CreateEffect(c)
e29:SetType(EFFECT_TYPE_EQUIP) e29:SetType(EFFECT_TYPE_EQUIP)
e29:SetCode(EFFECT_DISABLE) e29:SetCode(EFFECT_DISABLE)
c:RegisterEffect(e29) c:RegisterEffect(e29)
local e2 = Effect.CreateEffect(c) local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_EQUIP) e2:SetType(EFFECT_TYPE_EQUIP)
e2:SetCode(EFFECT_DISABLE_EFFECT) e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetValue(RESET_TURN_SET) -- e2:SetValue(RESET_TURN_SET)
c:RegisterEffect(e2) c:RegisterEffect(e2)
-- local e4 = Effect.CreateEffect(c)
-- e4:SetDescription(aux.Stringid(m, 1))
-- e4:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_CONTINUOUS)
-- e4:SetCode(EVENT_DESTROYED)
-- e4:SetCondition(cm.setcon)
-- e4:SetOperation(cm.setop)
-- c:RegisterEffect(e4)
local e11 = Effect.CreateEffect(c) local e11 = Effect.CreateEffect(c)
e11:SetDescription(aux.Stringid(m, 0)) e11:SetDescription(aux.Stringid(m, 0))
e11:SetCategory(CATEGORY_SPECIAL_SUMMON) e11:SetCategory(CATEGORY_SPECIAL_SUMMON)
e11:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F) e11:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F)
e11:SetProperty(EFFECT_FLAG_DELAY) e11:SetProperty(EFFECT_FLAG_DELAY)
e11:SetRange(0xfff) e11:SetRange(0xfff)
e11:SetCode(EVENT_EQUIP) e11:SetCode(EVENT_EQUIP)
e11:SetTarget(cm.sptg) e11:SetTarget(cm.sptg)
e11:SetOperation(cm.spop) e11:SetOperation(cm.spop)
c:RegisterEffect(e11) c:RegisterEffect(e11)
end end
function cm.setcon(e, tp, eg, ep, ev, re, r, rp)
return e:GetHandler():IsReason(REASON_LOST_TARGET)
and not e:GetHandler():GetPreviousEquipTarget():IsLocation(LOCATION_ONFIELD + LOCATION_OVERLAY)
end
function cm.setop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
-- 创立一个永续效果,下个回合的准备阶段将卡号为m的卡加入手卡
local e = Effect.CreateEffect(c)
e:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e:SetCode(EVENT_PHASE + PHASE_STANDBY)
e:SetCountLimit(1)
e:SetCondition(function(e, tp, eg, ep, ev, re, r, rp)
return Duel.GetTurnCount() ~= e:GetLabel()
end)
e:SetOperation(function(e, tp, eg, ep, ev, re, r, rp)
local g = Duel.GetMatchingGroup(Card.IsCode, tp, LOCATION_GRAVE + LOCATION_REMOVED, 0, nil, m)
if #g > 0 then
local tc = g:GetFirst()
Duel.SendtoHand(tc, tp, REASON_EFFECT)
Duel.ConfirmCards(1 - tp, tc)
Duel.ShuffleHand(tp)
end
e:Reset()
end)
e:SetLabel(Duel.GetTurnCount())
e:SetReset(RESET_PHASE + PHASE_STANDBY)
Duel.RegisterEffect(e, tp)
end
function cm.filter(c, ec) function cm.filter(c, ec)
return c == ec --c:GetEquipTarget() == ec and c:IsType(TYPE_SPELL + TYPE_TRAP) return c == ec --c:GetEquipTarget() == ec and c:IsType(TYPE_SPELL + TYPE_TRAP)
end end
function cm.sptg(e, tp, eg, ep, ev, re, r, rp, chk) function cm.sptg(e, tp, eg, ep, ev, re, r, rp, chk)
local c = e:GetHandler() local c = e:GetHandler()
local dg = eg:Filter(cm.filter, nil, e:GetHandler()) local dg = eg:Filter(cm.filter, nil, e:GetHandler())
local kx, zzx, sxx, zzjc, sxjc, zzl = it.sxbl() local kx, zzx, sxx, zzjc, sxjc, zzl = it.sxbl()
local tc2 = c:GetPreviousEquipTarget() local tc2 = c:GetPreviousEquipTarget()
if chk == 0 then return #dg > 0 and zzx > 0 and tc2 ~= nil and Duel.GetLocationCount(1 - tp, LOCATION_MZONE) > 0 end if chk == 0 then return #dg > 0 and zzx > 0 and tc2 ~= nil and Duel.GetLocationCount(1 - tp, LOCATION_MZONE) > 0 end
local zz, sx, lv = it.sxblx(tp, kx, zzx, sxx, zzl) local zz, sx, lv = it.sxblx(tp, kx, zzx, sxx, zzl)
e:SetLabel(zz, sx, lv) e:SetLabel(zz, sx, lv)
Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, tc2, 1, 0, 0) Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, tc2, 1, 0, 0)
end end
function cm.spop(e, tp, eg, ep, ev, re, r, rp) function cm.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler() local c = e:GetHandler()
local zz, sx, lv = e:GetLabel() local zz, sx, lv = e:GetLabel()
local tc = c:GetPreviousEquipTarget() local tc = c:GetPreviousEquipTarget()
if not Duel.IsPlayerCanSpecialSummonMonster(tp, tc:GetCode(), 0, TYPE_NORMAL + TYPE_MONSTER, 0, 0, lv, zz, sx) then return end if not Duel.IsPlayerCanSpecialSummonMonster(tp, tc:GetCode(), 0, TYPE_NORMAL + TYPE_MONSTER, 0, 0, lv, zz, sx) then return end
it.AddMonsterate(tc, TYPE_NORMAL + TYPE_MONSTER, sx, zz, lv, 0, 0) it.AddMonsterate(tc, TYPE_NORMAL + TYPE_MONSTER, sx, zz, lv, 0, 0)
Duel.SpecialSummonStep(tc, 0, tp, 1 - tp, true, false, POS_FACEUP_ATTACK) Duel.SpecialSummonStep(tc, 0, tp, 1 - tp, true, false, POS_FACEUP_ATTACK)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
\ No newline at end of file
--存在之间 --存在之间
--V1.0.0.1 --V1.0.1.2
local m = 16670000 local m = 16670000
it = it or {} it = it or {}
it.diyai = { "AI_Nf.ydk", "AI_TheDreamLand.ydk", "AI_best-friend.ydk", "AI_stars.ydk", "AI_Tianjuelong.ydk", it.diyai = { "AI_Nf.ydk", "AI_TheDreamLand.ydk", "AI_best-friend.ydk", "AI_stars.ydk", "AI_Tianjuelong.ydk",
......
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