宝可梦集换式卡牌游戏在线版 EPL API 扩展器
面向EnhancedPrefabLoader和PTCGO卡牌的JSON驱动经济与卡包框架
概览
一个共享的、一次安装的框架,在现有基础上添加完整的经济和卡包系统
增强预制件加载器(EPL) 卡组。一切都是数据驱动的,而且至关重要的是,
通过EPL API在运行时叠加在上面——它绝不会修改卡牌包或你的存档文件。你描述了套装的卡包、价格、盒子和许可证,详见
副车架 JSON 文件,放入它们,框架会在加载时应用它们。
你发货
仅边车 - 永远不要动 DLL。DLL 是玩家安装一次就固定的依赖项;你的套装的 JSON 文件会合并到它的文件夹中并自动被读取。
有两种文件类型:
- 扩展模块 - 每张卡牌扩展包一个(补充包、定价、包装盒、授权)。
- 物品捆绑附属包 - 每个配件包一件(牌盒、牌套、毛绒玩具等)。
安全设计 - 不会损坏你的存档
这是重头戏。所有价格、许可证、包装规格和箱规都会按此应用。
在EPL API之上的运行时覆盖 是它
不 写入卡牌包中。所以你可以在不接触实际集合文件或存档的情况下自由更改所有内容。
- 在这里编辑,不要在捆绑包中编辑。 直接在EPL捆绑包内更改价格、许可证、包装规格或箱规,会带来 极有可能损坏现有存档通过附属程序来做则不会——游戏包和存档完全不受影响。
- 完全可逆。 随时调整数值、切换配置,或停用某个套装。没有任何设置是永久固定的。
- 几乎变砖不了。 如果附属文件有误,直接忽略即可(拒绝或丢弃其中出错的部分)——它不会连带毁掉你的存档。
简而言之:它赋予你编辑套装经济系统的全部能力,同时完全避免了手动编辑捆绑包可能导致的存档损坏风险。
作者这些简单方法 - PTCGO EPL 管理器
你可以手动编写这些文件,但你完全没必要这么做。 该
PTCGO EPL 管理器 是一款免费的桌面伴侣应用,将边车创作变为点击操作:
- 读取每个套装的捆绑包 帮你填写卡牌、稀有度和物品类型选择器——无需手动查找枚举名称或卡牌索引。
- 在正确位置创建文件 以正确的结构,并通过友好的表单编辑每个字段。
- 追踪已设置的内容 每次发布都附带一份绿/红检查清单,让你随时清楚哪些已完成、哪些还没做。
- 管理配置文件和组,和 打包完成套装 到一个可直接分享的压缩包中。
以下记录的所有内容正是管理器为你读写的内容——因此本页也可作为底层运行机制的参考。边车如何加载
启动时(EPL完成资源包加载后),该框架:
- 扫描 它自己的文件夹 - BepInEx/plugins/PTCGO EPL API 扩展/ - 对每个递归地 .json.
- 将每个文件按以下方式分类 内容,而非路径或文件名: 一个 扩展包 钥匙使其成为扩展附属文件;一个 道具包 键会使其成为物品捆绑附属;其他任何内容都将被忽略。
- 拒绝任何没有“Group”的边车 (已记录并跳过)。
文件夹结构和文件名仅用于组织管理。 将文件绑定到集合的是
扩展包 枚举(或
物品类型在其内部——而不是它所在的位置。这就是为什么多个模组可以将它们的附属文件放入同一个共享文件夹,而所有内容就会自动合并。
群组与配置文件
- 队伍 (required) 是开关单位。每个组在模组的配置区域中变成一行下拉菜单 4. 配置所有共享同一组的文件会一起切换,该组可通过以下方式关闭 已禁用. 示例组: 精灵宝可梦 第一世代, 宝可梦第一世代饰品, Hololive, Hololive_配饰.
- 档案 (可选,默认为“默认”)是一种游戏模式。 每个文件一个配置文件。 一个扩展可以包含多个文件——每个配置文件一个——框架每次只加载每个扩展中当前激活的配置文件对应的文件, 回退到该扩展的默认文件 当活动配置文件未对其进行自定义时。
- 切换已启用且自动进行。 更改组的下拉菜单会重新加载其文件、重新绑定所有内容,并 为你重新随机该组所有价格 你确实如此 不 之后需要按下重置热键。你已购买的任何许可证 保持解锁 穿过交换区,所以没有什么需要重新购买的。
- 全新的群组或配置文件名仅在重启后才会出现在下拉菜单中(它们是在启动时被发现的)。
文件夹规范
虽然代码未强制要求,但请保持一致,以便合并安装后仍可浏览:
PTCGO EPL API 扩展程序/
边车/
资料片/<TCG>/<Bundle>/<Profile>.json 例如 宝可梦 第一世代/基础套装/Default.json
物品/<TCG>/<Bundle>.json 例如 Hololive/HololiveDeckBoxes.json
对于扩展文件,
文件名就是配置文件 (Default.json, "11 卡牌 - 平衡定价.json")。一个文件 = 一个卡牌扩展 + 一个配置文件。
扩展附属包 - 完整架构
每个方块都是
可选覆盖 - 只包含你想要更改的内容。一个文件可以只携带定价,定价加许可证,完整包生成,或者全部内容。包和盒子被命名为
上边这
背包 和
盒子 下方的方块是可选生成覆盖项。
{
“配置”: “默认”,
"Group": "MT_Pkmn_Gen1",
"资料片": "MT_BaseSet_MT",
"PackItemType": "MT_BaseSetBoosterPacks_MT", // 补充包标识(IsCardPack物品)
"BoxItemType": "MT_BaseSetBoosterBox_MT", // 盒子标识(IsCardBox 物品)
"定价": {
“卡牌”:{
"0": { "Min": 50, "Max": 120 },
3: 最小值 975,最大值 2100
}
}
授权:
"包": { "许可价格": 0, "许可等级": 1, "市场百分比最小值": 1.75, "市场百分比最大值": 1.75, "跟随物品": "BasicCardPack", "基础成本": 5000, "神包启用": false },
"盒子": { "许可证价格": 200, "许可证等级": 4, "市场最低百分比": 1, "市场最高百分比": 1, "自动盒装": "MT_BaseSetBoosterPacks_MT" }
}
"卡包": { // 可选 - 仅用于覆盖抽取概率
“尺寸”:7,
“CanHaveDuplicates”: false,
“槽位”:{
"槽位1": { "普通": 1 },
"槽位5": { "罕见": 1 },
“槽位7”:{
"稀有": 0.953961,
“HoloT1_Holo Rare”:0.027778,
"HoloT4_Holo Rare": 0.000875
}
}
},
“Box”:{ // 可选——仅用于覆盖包数量
"生成包": "MT_BaseSetBoosterPacks_MT",
"OpenCount": 8
}
}
身份- 队伍 - 必需;配置行/实时切换单元。
- 档案 - 该文件适用的游戏模式;缺失则表示默认模式。
- 扩展包 - 捆绑包的CardExpansion枚举。这是唯一将该文件与某个系列关联起来的东西。
- 物品类型 - 加速包物品(必须标记 卡包)。这就是礼包定价、授权以及任何抽卡概率覆盖所关联的对象。
- 物品箱类型 - 加速箱物品(必须标记 卡盒). 盒子定价、许可及任何开箱数量覆盖所附带的费用。
价格与许可,不涉及抽取概率
在上面为卡包和盒子命名,使用
道具包类型 /
盒子物品类型 是
设定价格或授权所需的一切. 该
背包 和
盒子 方块是可选的——它们的存在只是为了覆盖一个资源包的
已建造 (抽取概率)或一盒中有多少包
开启进入.
- 只是改个价格或授权? 把物品放在上面,填写 定价 / 授权,然后离开 包 和 箱子 完全排除在外。游戏保留自己的抽取概率和宝箱机制,不受影响。
- 也想要自定义抽取概率或盒子大小吗? 添加 背包 / 盒子 阻止——现在你连生成也一并覆盖了。
- 旧版边车依然可用。 将ItemType放在Pack/Box块内的文件读取方式与之前完全相同——无需转换任何内容。
卡包 - 抽取概率(可选)
添加一个
背包 仅当你想覆盖某个系列的补充包构建方式时才使用此块。它适用于
道具包类型 名列前茅。
- 尺寸 - 卡包会开出多少张卡, 1到20必须与槽位条目数量一致。
- 可以重复 - 同一张卡牌是否可以在一个卡包中出现多次。
- 槽位 - 槽位1 .. 槽位N连续排列,N等于Size。每个槽位都是一个加权表,其中 EPL稀有度名称每个槽位中,生成器按权重随机抽取一个稀有度,然后从该稀有度的卡牌集合中随机选取一张卡牌。
权重是相对的 - 它们不必加起来等于1。稀有度名称必须与捆绑包实际定义的稀有度相匹配(检查捆绑包的
稀有度 列表);任何无法解析为真实稀有度的权重都是
掉落.
次级稀有度: EPL支持将稀有度写为
前缀_显示名称 - 例如
全息稀有这些卡牌都显示为“全息稀有”,但实际上是不同的稀有度,拥有各自的抽中率和价格。要使用它们:在捆绑包中定义稀有度,给卡牌打上对应标签,并在槽位权重中引用确切的名称。
定价(每张卡)
覆盖单张卡牌数值:
"定价": { "卡牌": { "0": { "最低": 50, "最高": 120 } } }
- 按键 卡片的 索引. 索引 = 卡牌在卡包 Cards 数组中的位置(从 0 开始)——不是它的 CardNumber。 许多套牌的CardNumbers与数组顺序不匹配,因此请始终使用数组顺序。
- 最小 / 最大 = 卡牌市场价格波动的数值范围。
- 只有你列出的卡牌才会获得自定义价值;其他所有卡牌都会回退到EPL自身的定价。
- 闪卡/变体在捆绑包中是独立条目,因此有自己的索引——直接按该索引定价。
箱子 - 开启次数(可选)
添加一个
盒子 仅用于更改盒子拆分成多少包。它适用于
物品箱类型 名列前茅。
- 生成包 - 盒子开启后所属的卡包(若省略则默认为此扩展包的卡包)。
- 开启次数 - 盒子能开出多少包, 1到100.
授权
物品商店解锁与市场定价的可选覆盖设置 - 在此处设置它们,而不是将它们烘焙到捆绑包中。它们附加到
物品类型 /
道具箱类型 在上面,所以不行
背包 或
盒子 需要区块。只提供想要更改的字段;省略任何内容以保留捆绑包自身的值。
- 许可证价格 / 授权等级 解锁该物品所需的费用和商店等级。
- 市场占比最低 / 市场比例上限 该物品浮动所处的市场价格区间。
- 跟随物品 - 一个已有物品,其定价遵循此规则(通常适用于礼包)。
- 自动装箱 - 用于箱子;根据其所在包自动为箱子定价。
- 上帝包已启用 / 神包概率 - 启用神包抽取及其概率。
- 基础消耗 该物品的基础商店(单位)价格。当MarketPercent设为1/1时,商店售价等于该值。省略(或设为-1)则保持原样。
饰品挂件(配饰)
对于包含物品但没有卡牌扩充的捆绑包——牌盒、卡套、游戏垫、漫画、主题牌组、毛绒玩具、游戏。还有
需要组队.
{
"个人资料": "默认",
"Group": "Hololive_配饰",
"ItemBundle": "Hololive 牌盒"
“物品”:[
{ "ItemType": "ESItem_Hololive-卡盒1", "CostPrice": 12.0,
授权:{“授权价格”:200,“授权等级”:4,“市场占比下限”:1.5,“市场占比上限”:1.5,“关联物品”:“DeckBox1”}}
]
}
- 物品类型 - 配饰的物品枚举。
- 成本价 - 其基础商店价值。
- 授权 - 可选,字段同上。
配置选项(玩家可见)
- 启用模组 - 总开关。
- 调试模式 - 详细日志记录。
- 价格重置快捷键 - 默认 F11按要求重新生成所有已管理的价格。可重新绑定。 (档案切换已自动重新随机,因此你很少需要用到这个。)
- 4. 配置档案 - 每组一个下拉菜单(禁用/默认/你的配置)。
制作人员
创建者 嚼吐司
用以下材料打包扩展蓝图 CoPixel
基于 增强型预制体加载器.
感谢社区。