Index: script/c0.lua ================================================================== --- script/c0.lua +++ script/c0.lua @@ -1,140 +1,91 @@ local str = {} - local math = math local string = string local table = table - _G.fun = {} - --------------------------------- - local cache_1 local cache_2 local cache_3 local cache_4 local cache_5 local cache_6 local cache_7 local cache_8 local cache_9 - local _ - str["效果卡的种类表"] = { - TYPE_SPELL , TYPE_TRAP , TYPE_EFFECT } - str["无效果灵摆怪兽表"] = { - 28363749 , 19474136 , 17390179 , 83980492 } - cache_1 = 0 - cache_1 = cache_1 + LOCATION_HAND + LOCATION_MZONE + LOCATION_SZONE + LOCATION_GRAVE + LOCATION_REMOVED - str["除卡组与额外卡组以外的区域"] = cache_1 - cache_1 = cache_1 + LOCATION_DECK + LOCATION_EXTRA - str["所有区域"] = cache_1 - --第一层------------------------------- - local cache_1 local cache_2 local cache_3 local cache_4 local cache_5 local cache_6 local cache_7 local cache_8 local cache_9 - local _ - fun["Debug.ReloadFieldBegin"] = Debug.ReloadFieldBegin - Debug.ReloadFieldBegin = function(str_1, str_2) --{ - str["不洗牌"] = str_1 & DUEL_PSEUDO_SHUFFLE - str["无BP"] = str_1 & DUEL_ATTACK_FIRST_TURN - str["无AI"] = str_1 & DUEL_SIMPLE_AI - str["规则表"] = { - [3] = "大师3 " , [4] = "新大师 " , [5] = "大师2020 " } - if str_2 then --{ - str["规则"] = str["规则表"][str_2] - --} - else --{ - str["规则"] = str["规则表"][5] - end --} - fun["Debug.ReloadFieldBegin"](str_1, str_2) - end --} - fun["一_随机抽卡"] = function(str_1) --{ - str["随机抽卡的数量"] = str_1 - str["效果"] = Effect.GlobalEffect() - str["效果"]:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS) - str["效果"]:SetCode(EVENT_ADJUST) - str["效果"]:SetCondition(aux.TRUE) - function cache_1(effect_event , player_who_activate_the_effect) --{ - Duel.ShuffleDeck(0) - Duel.Draw(0,str_1,REASON_RULE) - effect_event:Reset() - end --} - str["效果"]:SetOperation(cache_1) - Duel.RegisterEffect(str["效果"] , 0) - end --} - fun["一_失败得分"] = function() --{ - str["失败得分表"] = { - [0] = "神龙之圣刻印" , [100] = "调和支援士" , [200] = "深渊的暗杀者" , [300] = "救援猫" , [400] = "注射天使 莉莉" @@ -163,439 +114,258 @@ , [2700] = "暗黑界的龙神 格拉法" , [2800] = "魔导兽 刻耳柏洛斯尊主" , [2900] = "元素英雄 永生侠" , [3000] = "青眼白龙" } - str["对方玩家的初始生命值"] = Duel.GetLP(1) - str["效果"] = Effect.GlobalEffect() - str["效果"]:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS) - str["效果"]:SetCode(EVENT_PHASE_START+PHASE_END) - function cache_1(effect_event , player_who_activate_the_effect) --{ - - cache_1 = Duel.GetLP(1) - str["对方玩家的初始生命值"] - - if cache_1 > 0 then --{ - - return - - --} - - else --{ - - cache_1 = math.abs(cache_1) / (str["对方玩家的初始生命值"] - 100) - - cache_1 = math.tointeger(cache_1 * 3000 // 100 * 100) - - end --} - - if cache_1 > 3000 then --{ - - --} - - else --{ - + cache_1 = Duel.GetLP(1) - str["对方玩家的初始生命值"] + if cache_1 > 0 then --{ + return + --} + else --{ + cache_1 = math.abs(cache_1) / (str["对方玩家的初始生命值"] - 100) + cache_1 = math.tointeger(cache_1 * 3000 // 100 * 100) + end --} + if cache_1 > 3000 then --{ + --} + else --{ Debug.ShowHint("这局,您的得分是 " .. cache_1 .. " 分!\n处于「" .. str["失败得分表"][cache_1] .. "」级别!") - end --} - effect_event:Reset() - end --} - str["效果"]:SetOperation(cache_1) - Duel.RegisterEffect(str["效果"] , 0) - end --} - fun["一_该效果不能被连锁"] = function() --{ - Duel.SetChainLimit(aux.FALSE) - return true end --} - fun["一_通关邀请"] = function() --{ --备用:圣魔术师 str["原解邀请"] = "残局群181175613" str["二解邀请"] = "爆貘团:「你居然二解了,请加群告诉我怎么二解。」" - str["效果"] = Effect.GlobalEffect() - str["效果"]:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS) - - str["效果"]:SetCode(EVENT_DAMAGE) - - function cache_1() --{ - - cache_1 = Duel.GetLP(1) - - if cache_1 <= 0 then --{ - - if cache_1 == 0 then --{ - - --} - - else --{ - - Debug.ShowHint(str["二解邀请"]) - - end --} - - Debug.ShowHint(str["原解邀请"]) - - --} - - else --{ - - return false - - end --} - - end --} - - str["效果"]:SetCondition(cache_1) - - str["效果"]:SetOperation(aux.NULL) - + str["效果"]:SetCode(EVENT_DAMAGE) + function cache_1() --{ + cache_1 = Duel.GetLP(1) + if cache_1 <= 0 then --{ + if cache_1 == 0 then --{ + --} + else --{ + Debug.ShowHint(str["二解邀请"]) + end --} + Debug.ShowHint(str["原解邀请"]) + --} + else --{ + return false + end --} + end --} + str["效果"]:SetCondition(cache_1) + str["效果"]:SetOperation(aux.NULL) Duel.RegisterEffect(str["效果"] , 0) - - end --} - -fun["一_是否效果卡"] = function(card) --{ - - for i = 1, #str["效果卡的种类表"] do --{ - - if Card.IsType(card, str["效果卡的种类表"][i]) then --{ - - return true - end --} - - end --} - - if Card.IsType(card, TYPE_PENDULUM) then --{ - - for i = 1, #str["无效果灵摆怪兽表"] do --{ - - if Card.IsCode(card, str["无效果灵摆怪兽表"][i]) then --{ - - --} - - else --{ - - return true - - end --} - - end --} - - end --} - - return false - - end --} - -fun["一_开局添加手卡"] = function(str_1) --{ - - str["开局添加手卡"] = true - - str["开局添加手卡的数量"] = str_1 - - str["效果"] = Effect.GlobalEffect() - - str["效果"]:SetType(EFFECT_TYPE_FIELD - + EFFECT_TYPE_CONTINUOUS) - - str["效果"]:SetCode(EVENT_ADJUST) - - str["效果"]:SetCondition(aux.TRUE) - - function cache_1(effect_event - , player_who_activate_the_effect) --{ - + end --} +fun["一_是否效果卡"] = function(card) --{ + for i = 1, #str["效果卡的种类表"] do --{ + if Card.IsType(card, str["效果卡的种类表"][i]) then --{ + return true + end --} + end --} + if Card.IsType(card, TYPE_PENDULUM) then --{ + for i = 1, #str["无效果灵摆怪兽表"] do --{ + if Card.IsCode(card, str["无效果灵摆怪兽表"][i]) then --{ + --} + else --{ + return true + end --} + end --} + end --} + return false + end --} +fun["一_开局添加手卡"] = function(str_1) --{ + str["开局添加手卡"] = true + str["开局添加手卡的数量"] = str_1 + str["效果"] = Effect.GlobalEffect() + str["效果"]:SetType(EFFECT_TYPE_FIELD + + EFFECT_TYPE_CONTINUOUS) + str["效果"]:SetCode(EVENT_ADJUST) + str["效果"]:SetCondition(aux.TRUE) + 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) - effect_event:Reset() - end --} - str["效果"]:SetOperation(cache_1) - Duel.RegisterEffect(str["效果"] , 0) - end --} - fun["一_禁格"] = function(str_1) --{ - str["禁格"] = true - str["禁格的数量"] = str_1 - str["效果"] = Effect.GlobalEffect() - str["效果"]:SetCode(EFFECT_USE_EXTRA_MZONE) - str["效果"]:SetValue(str_1) - Duel.RegisterEffect(str["效果"],0) - end --} - --第二层------------------------------- - +local cache_1 +local cache_2 +local cache_3 +local cache_4 +local cache_5 +local cache_6 +local cache_7 +local cache_8 +local cache_9 +local _ +fun["Debug.ReloadFieldEnd"] = Debug.ReloadFieldEnd +Debug.ReloadFieldEnd = function(str_1) --{ + fun["Debug.ReloadFieldEnd"]() + if str_1 then --{ + fun["一_随机抽卡"](str_1) + end --} + end --} +fun["二_印卡"] = function(str_1, str_2, str_3) --{ + if str_3 then --{ + --} + else --{ + str_3 = str_2 + end --} + Debug.ShowHint("点击对方额外卡组可以进行印卡。\n手卡只能印 " + .. str_2 + .. " 张。\n最多可以印 " + .. str_3 + .. " 张") + str["效果"] = Effect.CreateEffect(str_1) + str["当前印卡数"] = 1 + str["效果"]:SetType(EFFECT_TYPE_IGNITION) + str["效果"]:SetProperty(EFFECT_FLAG_BOTH_SIDE + + EFFECT_FLAG_UNCOPYABLE + + EFFECT_FLAG_CANNOT_NEGATE + + EFFECT_FLAG_CANNOT_DISABLE) + str["效果"]:SetTarget(fun["一_该效果不能被连锁"]) + str["效果"]: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("印卡过多!") + effect_event:Reset() + end --} + end --} + end --} + str["效果"]:SetOperation(print_hand) + str_1:RegisterEffect(str["效果"]) + end --} +fun["二_开局说明"] = function() --{ + str["这个残局的效果卡数量"] = Duel.GetMatchingGroupCount(fun["是否效果卡"] + , 0 + , str["所有区域"] + , str["所有区域"] + , nil) + str["超量素材组"] = Duel.GetOverlayGroup(0 + , LOCATION_MZONE + , LOCATION_MZONE) + for k in aux.Next(str["超量素材组"]) do --{ + if fun["一_是否效果卡"](k) then --{ + str["这个残局的效果卡数量"] = str["这个残局的效果卡数量"] + 1 + end --} + end --} + str["开局说明"] = str["这个残局的效果卡数量"] + .. "卡 " + .. str["规则"] + if str["不洗牌"] == 0 then --{ + --} + else --{ + str["开局说明"] = str["开局说明"] .. "伪洗牌 " + end --} + if str["无BP"] == 0 then --{ + str["开局说明"] = str["开局说明"] .. "无BP " + end --} + if str["无AI"] == 0 then --{ + str["开局说明"] = str["开局说明"] .. "无AI " + end --} + if str["开局添加手卡"] then --{ + str["开局说明"] = str["开局说明"] + .. "选" + .. str["开局添加手卡的数量"] + .. "卡 " + end --} + if str["禁格"] then --{ + str["开局说明"] = str["开局说明"] + .. "禁" + .. str["禁格的数量"] + .. "格 " + end --} + if str["随机抽卡的数量"] then --{ + str["开局说明"] = str["开局说明"] + .. "抽" + .. str["随机抽卡的数量"] + .. "卡 " + end --} + Debug.ShowHint(str["开局说明"]) + end --} +--第三层------------------------------- local cache_1 local cache_2 local cache_3 local cache_4 local cache_5 local cache_6 local cache_7 local cache_8 local cache_9 - -local _ - -fun["Debug.ReloadFieldEnd"] = Debug.ReloadFieldEnd - -Debug.ReloadFieldEnd = function(str_1) --{ - - fun["Debug.ReloadFieldEnd"]() - - if str_1 then --{ - - fun["一_随机抽卡"](str_1) - - end --} - - end --} - -fun["二_印卡"] = function(str_1, str_2, str_3) --{ - - if str_3 then --{ - - --} - - else --{ - - str_3 = str_2 - - end --} - - Debug.ShowHint("点击对方额外卡组可以进行印卡。\n手卡只能印 " - .. str_2 - .. " 张。\n最多可以印 " - .. str_3 - .. " 张") - - str["效果"] = Effect.CreateEffect(str_1) - - str["当前印卡数"] = 1 - - str["效果"]:SetType(EFFECT_TYPE_IGNITION) - - str["效果"]:SetProperty(EFFECT_FLAG_BOTH_SIDE - + EFFECT_FLAG_UNCOPYABLE - + EFFECT_FLAG_CANNOT_NEGATE - + EFFECT_FLAG_CANNOT_DISABLE) - - str["效果"]:SetTarget(fun["一_该效果不能被连锁"]) - - str["效果"]: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("印卡过多!") - - effect_event:Reset() - - end --} - - end --} - - end --} - - str["效果"]:SetOperation(print_hand) - - str_1:RegisterEffect(str["效果"]) - - end --} - -fun["二_开局说明"] = function() --{ - - str["这个残局的效果卡数量"] = Duel.GetMatchingGroupCount(fun["是否效果卡"] - , 0 - , str["所有区域"] - , str["所有区域"] - , nil) - - str["超量素材组"] = Duel.GetOverlayGroup(0 - , LOCATION_MZONE - , LOCATION_MZONE) - - for k in aux.Next(str["超量素材组"]) do --{ - - if fun["一_是否效果卡"](k) then --{ - - str["这个残局的效果卡数量"] = str["这个残局的效果卡数量"] + 1 - - end --} - - end --} - - str["开局说明"] = str["这个残局的效果卡数量"] - .. "卡 " - .. str["规则"] - - if str["不洗牌"] == 0 then --{ - - --} - - else --{ - - str["开局说明"] = str["开局说明"] .. "伪洗牌 " - - end --} - - if str["无BP"] == 0 then --{ - - str["开局说明"] = str["开局说明"] .. "无BP " - - end --} - - if str["无AI"] == 0 then --{ - - str["开局说明"] = str["开局说明"] .. "无AI " - - end --} - - if str["开局添加手卡"] then --{ - - str["开局说明"] = str["开局说明"] - .. "选" - .. str["开局添加手卡的数量"] - .. "卡 " - - end --} - - if str["禁格"] then --{ - - str["开局说明"] = str["开局说明"] - .. "禁" - .. str["禁格的数量"] - .. "格 " - - end --} - - if str["随机抽卡的数量"] then --{ - - str["开局说明"] = str["开局说明"] - .. "抽" - .. str["随机抽卡的数量"] - .. "卡 " - end --} - - Debug.ShowHint(str["开局说明"]) - - end --} - ---第三层------------------------------- - -local cache_1 -local cache_2 -local cache_3 -local cache_4 -local cache_5 -local cache_6 -local cache_7 -local cache_8 -local cache_9 - -local _ - -fun["aux.BeginPuzzle"] = aux.BeginPuzzle - -aux.BeginPuzzle = function(str_1, str_2) --{ - - fun["aux.BeginPuzzle"]() - - if str_1 then --{ - - fun["一_开局添加手卡"](str_1) - - end --} - - if str_2 then --{ - - fun["一_禁格"](str_2) - - end --} - - fun["二_开局说明"]() - - fun["一_通关邀请"]() - - fun["一_失败得分"]() - - end --} - ---兼容层------------------------------- - - +local _ +fun["aux.BeginPuzzle"] = aux.BeginPuzzle +aux.BeginPuzzle = function(str_1, str_2) --{ + fun["aux.BeginPuzzle"]() + if str_1 then --{ + fun["一_开局添加手卡"](str_1) + end --} + if str_2 then --{ + fun["一_禁格"](str_2) + end --} + fun["二_开局说明"]() + fun["一_通关邀请"]() + fun["一_失败得分"]() + end --} +--兼容层------------------------------- fun["印卡"] = fun["二_印卡"] fun["开局添加手卡"] = fun["一_开局添加手卡"] fun["是否效果卡"] = fun["一_是否效果卡"] fun["禁格"] = fun["一_禁格"] fun["随机抽卡"] = fun["一_随机抽卡"] ADDED 残局文料/齐残局件.lua Index: 残局文料/齐残局件.lua ================================================================== --- /dev/null +++ 残局文料/齐残局件.lua @@ -0,0 +1,13 @@ +package.path = [[.\lib_lua\?.lua;]] .. package.path +package.cpath = [[.\lib_dll\?.dll;]] .. package.cpath +_G.常用库 = require("puco") +local 八位通用大字集码转本机码库 = require("u8_to_a") +local d_1 = {} +function d_1.齐月程语件(o1) + local k1_8 + k1_8 = 常用库.筛件径(o1, "%.lua$") + k1_8 = 常用库.筛排(k1_8, 常用库.加前缀, [[stylua "]]) + k1_8 = 常用库.筛排(k1_8, 常用库.加后缀, [["]]) + 常用库.筛排(k1_8, 常用库.办并说) + end +d_1.齐月程语件(八位通用大字集码转本机码库.u8_to_a([[D:\001_user\主题\游戏王\模拟器一代\游戏王残局简化版\single]]))