Index: script/c0.lua ================================================================== --- script/c0.lua +++ script/c0.lua @@ -1,249 +1,250 @@ str = {} fun = {} str["Debug.ReloadFieldBegin"] = Debug.ReloadFieldBegin -Debug.ReloadFieldBegin = function(str_1, str_2) +Debug.ReloadFieldBegin = function(str_1, str_2) --{ str["不洗牌"] = str_1 & DUEL_PSEUDO_SHUFFLE str["无BP"] = str_1 & DUEL_ATTACK_FIRST_TURN if str_2 then - if str_2 == 3 then - str["规则"] = "大师3 " - elseif str_2 == 4 then - str["规则"] = "新大师 " - elseif str_2 == 5 then - str["规则"] = "大师2020 " - end + if str_2 == 3 then + str["规则"] = "大师3 " + elseif str_2 == 4 then + str["规则"] = "新大师 " + elseif str_2 == 5 then + str["规则"] = "大师2020 " + end else - str["规则"] = "大师2020 " - end + str["规则"] = "大师2020 " + end str["Debug.ReloadFieldBegin"](str_1, str_2) - end + end --} fun["通关邀请"] = function() - effect_1 = Effect.GlobalEffect() - effect_1:SetType(EFFECT_TYPE_FIELD - + EFFECT_TYPE_CONTINUOUS) - effect_1:SetCode(EVENT_DAMAGE) - function cache_1() - cache_1 = Duel.GetLP(1) - if cache_1 <= 0 then - if cache_1 < 0 then - Debug.ShowHint("QB:「你居然二解了,请加群告诉我怎么二解。」") - end - cache_1 = true - else - cache_1 = false - end - return cache_1 - end - effect_1:SetCondition(cache_1) - function cache_1() - Debug.ShowHint("残局群181175613") - return - end - effect_1:SetOperation(cache_1) - Duel.RegisterEffect(effect_1 - , 0) - end +effect_1 = Effect.GlobalEffect() +effect_1:SetType(EFFECT_TYPE_FIELD ++ EFFECT_TYPE_CONTINUOUS) +effect_1:SetCode(EVENT_DAMAGE) +function cache_1() +cache_1 = Duel.GetLP(1) +if cache_1 <= 0 then +if cache_1 < 0 then +Debug.ShowHint("QB:「你居然二解了,请加群告诉我怎么二解。」") +end +cache_1 = true +else +cache_1 = false +end +return cache_1 +end +effect_1:SetCondition(cache_1) +function cache_1() +Debug.ShowHint("残局群181175613") +return +end +effect_1:SetOperation(cache_1) +Duel.RegisterEffect(effect_1 +, 0) +end fun["是否效果卡"] = function(card) - cache_1 = Card.IsType(card, TYPE_SPELL) - cache_2 = Card.IsType(card, TYPE_TRAP) - cache_3 = Card.IsType(card, TYPE_EFFECT) - if cache_1 - or cache_2 - or cache_3 then - return true - end - cache_1 = Card.IsType(card, TYPE_PENDULUM) - if cache_1 then - cache_1 = Card.IsCode(card, 28363749) - cache_2 = Card.IsCode(card, 19474136) - cache_3 = Card.IsCode(card, 17390179) - cache_4 = Card.IsCode(card, 83980492) - if cache_1 - or cache_2 - or cache_3 - or cache_4 then - else - return true - end - end - return false - end +cache_1 = Card.IsType(card, TYPE_SPELL) +cache_2 = Card.IsType(card, TYPE_TRAP) +cache_3 = Card.IsType(card, TYPE_EFFECT) +if cache_1 +or cache_2 +or cache_3 then +return true +end +cache_1 = Card.IsType(card, TYPE_PENDULUM) +if cache_1 then +cache_1 = Card.IsCode(card, 28363749) +cache_2 = Card.IsCode(card, 19474136) +cache_3 = Card.IsCode(card, 17390179) +cache_4 = Card.IsCode(card, 83980492) +if cache_1 +or cache_2 +or cache_3 +or cache_4 then +else +return true +end +end +return false +end fun["开局说明"] = function() - if str["开局说明吗"] == 1 then - return - else - str["开局说明吗"] = 1 - end - cache_1 = 0 - cache_1 = cache_1 + LOCATION_DECK - cache_1 = cache_1 + LOCATION_HAND - cache_1 = cache_1 + LOCATION_MZONE - cache_1 = cache_1 + LOCATION_SZONE - cache_1 = cache_1 + LOCATION_GRAVE - cache_1 = cache_1 + LOCATION_REMOVED - cache_1 = cache_1 + LOCATION_EXTRA - str["这个残局的效果卡数量"] = Duel.GetMatchingGroupCount(fun["是否效果卡"],0,cache_1,cache_1,nil) - cache_1 = Duel.GetOverlayGroup(0, LOCATION_MZONE, LOCATION_MZONE) - for k in aux.Next(cache_1) do - cache_1 = fun["是否效果卡"](k) - if cache_1 then - str["这个残局的效果卡数量"] = str["这个残局的效果卡数量"] + 1 - end - end - str["开局说明"] ="" - str["开局说明"] = str["开局说明"] .. str["这个残局的效果卡数量"] - str["开局说明"] = str["开局说明"] .. "卡 " - str["开局说明"] = str["开局说明"] .. str["规则"] - if str["不洗牌"] == 0 then - else - str["开局说明"] = str["开局说明"] .. "伪洗牌 " - end - if str["无BP"] == 0 then - str["开局说明"] = str["开局说明"] .. "无BP " - end - if str["开局添加手卡"] then - str["开局说明"] = str["开局说明"] .. "选" - str["开局说明"] = str["开局说明"] .. str["开局添加手卡"] - str["开局说明"] = str["开局说明"] .. "卡 " - end - if str["禁格"] then - str["开局说明"] = str["开局说明"] .. "禁" - str["开局说明"] = str["开局说明"] .. str["禁格"] - str["开局说明"] = str["开局说明"] .. "格 " - end - if str["印卡"] then - str["开局说明"] = str["开局说明"] .. "印卡 " - end - Debug.ShowHint(str["开局说明"]) - fun["通关邀请"]() - end +if str["开局说明吗"] == 1 then +return +else +str["开局说明吗"] = 1 +end +cache_1 = 0 +cache_1 = cache_1 + LOCATION_DECK +cache_1 = cache_1 + LOCATION_HAND +cache_1 = cache_1 + LOCATION_MZONE +cache_1 = cache_1 + LOCATION_SZONE +cache_1 = cache_1 + LOCATION_GRAVE +cache_1 = cache_1 + LOCATION_REMOVED +cache_1 = cache_1 + LOCATION_EXTRA +str["这个残局的效果卡数量"] = Duel.GetMatchingGroupCount(fun["是否效果卡"],0,cache_1,cache_1,nil) +cache_1 = Duel.GetOverlayGroup(0, LOCATION_MZONE, LOCATION_MZONE) +for k in aux.Next(cache_1) do +cache_1 = fun["是否效果卡"](k) +if cache_1 then +str["这个残局的效果卡数量"] = str["这个残局的效果卡数量"] + 1 +end +end +str["开局说明"] ="" +str["开局说明"] = str["开局说明"] .. str["这个残局的效果卡数量"] +str["开局说明"] = str["开局说明"] .. "卡 " +str["开局说明"] = str["开局说明"] .. str["规则"] +if str["不洗牌"] == 0 then +else +str["开局说明"] = str["开局说明"] .. "伪洗牌 " +end +if str["无BP"] == 0 then +str["开局说明"] = str["开局说明"] .. "无BP " +end +if str["开局添加手卡"] then +str["开局说明"] = str["开局说明"] .. "选" +str["开局说明"] = str["开局说明"] .. str["开局添加手卡"] +str["开局说明"] = str["开局说明"] .. "卡 " +end +if str["禁格"] then +str["开局说明"] = str["开局说明"] .. "禁" +str["开局说明"] = str["开局说明"] .. str["禁格"] +str["开局说明"] = str["开局说明"] .. "格 " +end +if str["印卡"] then +str["开局说明"] = str["开局说明"] .. "印卡 " +end +Debug.ShowHint(str["开局说明"]) +fun["通关邀请"]() +end fun["开局添加手卡"] = function(str_1) - str["开局添加手卡"] = str_1 - effect_1 = Effect.GlobalEffect() - effect_1:SetType(EFFECT_TYPE_FIELD - + EFFECT_TYPE_CONTINUOUS) - effect_1:SetCode(EVENT_ADJUST) - effect_1:SetCountLimit(1) - function cache_1() - if str["已添加手卡"] == 1 then - return false - else - str["已添加手卡"] = 1 - return true - end - end - effect_1:SetCondition(cache_1) - function cache_1(effect_event - , player_who_activate_the_effect) - str["玩家选定的卡"] = Duel.SelectMatchingCard(player_who_activate_the_effect - , Card.IsAbleToHand - , player_who_activate_the_effect - , LOCATION_DECK - , 0 - , str_1 - , str_1 - , nil) - Duel.SendtoHand(str["玩家选定的卡"] - , nil - , REASON_RULE) - end - effect_1:SetOperation(cache_1) - Duel.RegisterEffect(effect_1 - , 0) - fun["开局说明"]() - end +str["开局添加手卡"] = str_1 +effect_1 = Effect.GlobalEffect() +effect_1:SetType(EFFECT_TYPE_FIELD ++ EFFECT_TYPE_CONTINUOUS) +effect_1:SetCode(EVENT_ADJUST) +effect_1:SetCountLimit(1) +function cache_1() +if str["已添加手卡"] == 1 then +return false +else +str["已添加手卡"] = 1 +return true +end +end +effect_1:SetCondition(cache_1) +function cache_1(effect_event +, player_who_activate_the_effect) +str["玩家选定的卡"] = Duel.SelectMatchingCard(player_who_activate_the_effect +, Card.IsAbleToHand +, player_who_activate_the_effect +, LOCATION_DECK +, 0 +, str_1 +, str_1 +, nil) +Duel.SendtoHand(str["玩家选定的卡"] +, nil +, REASON_RULE) +end +effect_1:SetOperation(cache_1) +Duel.RegisterEffect(effect_1 +, 0) +fun["开局说明"]() +end fun["禁格"] = function(str_1) - str["禁格"] = str_1 - effect_1 = Effect.GlobalEffect() - effect_1:SetType(EFFECT_TYPE_FIELD) - effect_1:SetCode(EFFECT_USE_EXTRA_MZONE) - effect_1:SetValue(str_1) - Duel.RegisterEffect(effect_1,0) - end +str["禁格"] = str_1 +effect_1 = Effect.GlobalEffect() +effect_1:SetType(EFFECT_TYPE_FIELD) +effect_1:SetCode(EFFECT_USE_EXTRA_MZONE) +effect_1:SetValue(str_1) +Duel.RegisterEffect(effect_1,0) +end fun["印卡"] = function(str_1, str_2, str_3) - str["印卡"] = 1 - if str_3 then - else - str_3 = str_2 - end - str["当前印卡数"] = 1 - effect_1 = Effect.CreateEffect(str_1) - effect_1:SetType(EFFECT_TYPE_IGNITION) - effect_1:SetProperty(EFFECT_FLAG_BOTH_SIDE - + EFFECT_FLAG_UNCOPYABLE - + EFFECT_FLAG_CANNOT_NEGATE - + EFFECT_FLAG_CANNOT_DISABLE) - cache_1 = function() - Duel.SetChainLimit(aux.FALSE) - return true - end - effect_1:SetTarget(cache_1) - effect_1:SetRange(LOCATION_EXTRA) - function print_hand(effect_event - , player_who_activate_the_effect) - announce_card = Duel.AnnounceCard(player_who_activate_the_effect) - card = Duel.CreateToken(player_who_activate_the_effect - , announce_card) - if str["当前印卡数"] <= str_2 then - str["当前印卡数"] = str["当前印卡数"] + 1 - Duel.SendtoHand(card,nil,REASON_RULE) - else - if str["当前印卡数"] <= str_3 then - str["当前印卡数"] = str["当前印卡数"] + 1 - Duel.Remove(card,POS_FACEUP,REASON_RULE) - Duel.SendtoDeck(card,player_who_activate_the_effect,0,REASON_RULE) - else - Debug.ShowHint("印卡过多!") - end - end - end - effect_1:SetOperation(print_hand) - str_1:RegisterEffect(effect_1) - end - +str["印卡"] = 1 +if str_3 then +else +str_3 = str_2 +end +str["当前印卡数"] = 1 +effect_1 = Effect.CreateEffect(str_1) +effect_1:SetType(EFFECT_TYPE_IGNITION) +effect_1:SetProperty(EFFECT_FLAG_BOTH_SIDE ++ EFFECT_FLAG_UNCOPYABLE ++ EFFECT_FLAG_CANNOT_NEGATE ++ EFFECT_FLAG_CANNOT_DISABLE) +cache_1 = function() +Duel.SetChainLimit(aux.FALSE) +return true +end +effect_1:SetTarget(cache_1) +effect_1:SetRange(LOCATION_EXTRA) +function print_hand(effect_event +, player_who_activate_the_effect) +announce_card = Duel.AnnounceCard(player_who_activate_the_effect) +card = Duel.CreateToken(player_who_activate_the_effect +, announce_card) +if str["当前印卡数"] <= str_2 then +str["当前印卡数"] = str["当前印卡数"] + 1 +Duel.SendtoHand(card,nil,REASON_RULE) +else +if str["当前印卡数"] <= str_3 then +str["当前印卡数"] = str["当前印卡数"] + 1 +Duel.Remove(card,POS_FACEUP,REASON_RULE) +Duel.SendtoDeck(card,player_who_activate_the_effect,0,REASON_RULE) +else +Debug.ShowHint("印卡过多!") +end +end +end +effect_1:SetOperation(print_hand) +str_1:RegisterEffect(effect_1) +end + fun["全部回到卡组"] = function() - Debug.ShowHint("胜利条件:让对方的卡回到卡组。") - - effect_1 = Effect.GlobalEffect() - - effect_1:SetType(EFFECT_TYPE_FIELD - + EFFECT_TYPE_CONTINUOUS) - - effect_1:SetCode(EVENT_ADJUST) - - cache_1 = function() - cache_1 = 0 - cache_1 = cache_1 + LOCATION_HAND - cache_1 = cache_1 + LOCATION_MZONE - cache_1 = cache_1 + LOCATION_SZONE - cache_1 = cache_1 + LOCATION_GRAVE - cache_1 = cache_1 + LOCATION_REMOVED - - cache_1 = Duel.GetFieldGroupCount(1,cache_1,0) - - if cache_1 == 0 then - return true - else - return false - end - end - - effect_1:SetCondition(cache_1) - - cache_1 = function() - Debug.ShowHint("目标已达成!") - Duel.SetLP(1,0) - end - - effect_1:SetOperation(cache_1) - - Duel.RegisterEffect(effect_1,0) - end +Debug.ShowHint("胜利条件:让对方的卡回到卡组。") + +effect_1 = Effect.GlobalEffect() + +effect_1:SetType(EFFECT_TYPE_FIELD ++ EFFECT_TYPE_CONTINUOUS) + +effect_1:SetCode(EVENT_ADJUST) + +cache_1 = function() +cache_1 = 0 +cache_1 = cache_1 + LOCATION_HAND +cache_1 = cache_1 + LOCATION_MZONE +cache_1 = cache_1 + LOCATION_SZONE +cache_1 = cache_1 + LOCATION_GRAVE +cache_1 = cache_1 + LOCATION_REMOVED + +cache_1 = Duel.GetFieldGroupCount(1,cache_1,0) + +if cache_1 == 0 then +return true +else +return false +end +end + +effect_1:SetCondition(cache_1) + +cache_1 = function() +Debug.ShowHint("目标已达成!") +Duel.SetLP(1,0) +end + +effect_1:SetOperation(cache_1) + +Duel.RegisterEffect(effect_1,0) +end +