Index: script/c0.lua ================================================================== --- script/c0.lua +++ script/c0.lua @@ -111,11 +111,10 @@ end end end do --~ “调该效果”的效果 - --~ 效果,其调该效果 --~ “调该效果”的玩家 function h2(u2, u3) local h3 --~ 玩家选定的牌 h3 = Duel.SelectMatchingCard(u3, Card.IsAbleToHand, u3, LOCATION_DECK, 0, u1, u1, nil) @@ -160,46 +159,79 @@ if u1 then s["开局洗牌抽牌"](u1) end end end -function s.["印牌"](u1, u2, u3) - local h1, h2, h3 - u3 = u3 or u2 - Debug.ShowHint("点击对方额外牌组可以进行印牌。\n手牌只能印 " .. u2 .. " 张。\n最多可以印 " .. u3 .. " 张") - h1 = Effect.CreateEffect(u1) +do + local h1, h2, h3, h4 + --~ 印牌过多之示 + h1 = "印牌过多" --~ 现之印牌数 h2 = 1 - h1:SetType(EFFECT_TYPE_IGNITION) - h1:SetProperty(EFFECT_FLAG_BOTH_SIDE + EFFECT_FLAG_UNCOPYABLE + EFFECT_FLAG_CANNOT_NEGATE + EFFECT_FLAG_CANNOT_DISABLE) - h1:SetTarget(s["不被连锁"]) - h1:SetRange(LOCATION_EXTRA) - -- 印牌 - --~ 调该效果的效果 - --~ 调该效果的玩家 - function h3(u4, u5) - local h4, h5 + --~ 印手牌之上限 + h3 = 0 + --~ 总印牌之上限 + h4 = 0 + --~ 「调该效果」的效果 + --~ 「调该效果」的玩家 + function s["_印牌"](u1, u2) + local h5, h6 --~ 印卡之卡编 - h4 = Duel.AnnounceCard(u5) - --~ 卡 - h5 = Duel.CreateToken(u5, h4) - if h2 <= u2 then - h2 = h2 + 1 - Duel.SendtoHand(h5, nil, REASON_RULE) - else - if h2 <= u3 then - h2 = h2 + 1 - Duel.Remove(h5, POS_FACEUP, REASON_RULE) - Duel.SendtoDeck(card, u5, 0, REASON_RULE) + h5 = Duel.AnnounceCard(u2) + --~ 卡 + h6 = Duel.CreateToken(u2, h5) + if h2 <= h3 then + h2 = h2 + 1 + Duel.SendtoHand(h6, nil, REASON_RULE) + else + if h2 <= h4 then + h2 = h2 + 1 + Duel.Remove(h6, POS_FACEUP, REASON_RULE) + Duel.SendtoDeck(card, u2, 0, REASON_RULE) else Debug.ShowHint("印牌过多") - u4:Reset() + 4:Reset() + end + end + end + function s.["印牌"](u1, u2, u3) + local h1, h2, h3 + u3 = u3 or u2 + Debug.ShowHint("点击对方额外牌组可以进行印牌。\n手牌只能印 " .. u2 .. " 张。\n最多可以印 " .. u3 .. " 张") + h1 = Effect.CreateEffect(u1) + --~ 现之印牌数 + h2 = 1 + h1:SetType(EFFECT_TYPE_IGNITION) + h1:SetProperty(EFFECT_FLAG_BOTH_SIDE + EFFECT_FLAG_UNCOPYABLE + EFFECT_FLAG_CANNOT_NEGATE + EFFECT_FLAG_CANNOT_DISABLE) + h1:SetTarget(s["不被连锁"]) + h1:SetRange(LOCATION_EXTRA) + -- 印牌 + --~ 调该效果的效果 + --~ 调该效果的玩家 + function h3(u4, u5) + local h4, h5 + --~ 印卡之卡编 + h4 = Duel.AnnounceCard(u5) + --~ 卡 + h5 = Duel.CreateToken(u5, h4) + if h2 <= u2 then + h2 = h2 + 1 + Duel.SendtoHand(h5, nil, REASON_RULE) + else + if h2 <= u3 then + h2 = h2 + 1 + Duel.Remove(h5, POS_FACEUP, REASON_RULE) + Duel.SendtoDeck(card, u5, 0, REASON_RULE) + else + Debug.ShowHint("印牌过多") + u4:Reset() + end end end + h1:SetOperation(h3) + u1:RegisterEffect(h1) end - h1:SetOperation(h3) - u1:RegisterEffect(h1) end function s.["开局之示"]() local h1, h2, h3 --~ 此局效牌之数 h2 = Duel.GetMatchingGroupCount(s["是否效牌"], 0, s["全区"], s["全区"], nil)