本报告是代码来源与相似度的技术分析,不是法院、版权登记机关或平台作出的法律裁决。 报告不判断作者主观意图,只判断本次取得的文件是否显示直接派生或复制关系。
1. 执行结论
对本次取得的 MultiPalSummon 2.2.1文件进行逐行比对后,技术结论为:被比对项目当前 main.lua高度可信地直接派生自PalSquadAllOut-1.2.zip中的 Lua 核心,并进行了系统性改名及少量局部修改。该结果无法由功能相似、使用相同游戏 API 或独立实现合理解释。
结论置信度:极高。
- 被比对
main.lua共 3,542 行;识别出的六个对应核心段共 3,259 行。 - 未还原品牌改名时,有序行相似度为 98.20%。
- 仅还原三组系统性命名替换后,有序行相似度为 98.84%。
- 规范化匹配行占六个核心段的 98.40%,占整个
main.lua的 90.54%。 util、config、input三个模块规范化 SHA-256 完全相同。party模块存在连续 1,096 行完全相同的代码块。- 核心加载器 208 行中有 207 行相同。
2. 证据登记
| 编号 | 证据 | 大小 | SHA-256 |
|---|---|---|---|
| E-01 | PalSquadAllOut-1.2.zip | 1,112,154 bytes | 2B97FD6D82B9928AB57B2C15835D65B8A54475675134DC128D131C34B0FB8549 |
| E-02 | 3767475631/Scripts/main.lua | 122,112 bytes | A0EBAE154C0BF1F851AC48B64A39857F86B05F64F6BA5DD5A49A3463E541FB88 |
| E-03 | 3767475631/Info.json | 395 bytes | 430AB2A73738BC087FA944091B43A8912535CC12F1CA58F41A055362EEDD6E5B |
| E-04 | 3767475631/.workshop.json | 3,028 bytes | E983D3C73D7BBD3FC1680AE794F9786DA6A0ACDB664ACD7DC2D3155CF9A5923D |
3. 比对方法
- 从 E-01 ZIP 内直接读取
util.lua、config.lua、game.lua、party.lua、input.lua和main.lua。 - 从 E-02 提取相应的
package.preload内容;包装函数、占位模块和附加 Hook 不计入六个核心段。 - 先进行原始逐行比对,再进行严格受限的规范化比对。
规范化只包含:
multi_summon → pal_squad
MultiPalSummon → PalSquadAllOut
MPS_ → PSAO_
统一 UTF-8 / LF,移除尾随空白与首尾空行没有重排代码、忽略注释、更改变量名或进行语法树泛化。有序行相似度使用 difflib.SequenceMatcher(..., autojunk=False)。
4. 直接复制或派生的关键证据
4.1 三个完整模块在还原改名后逐字节一致
util、config 和input的规范化内容分别为 252、366、358 行,双方规范化 SHA-256 完全一致。被比对文件还保留参照项目特定字符串与迁移历史:
"; Pal Squad: All Out! user configuration"
-- Read the pre-rename v1.1 filename once without retaining it as an
-- active package identifier.
local filename = table.concat({"Party", "Pals", "AllOut", ".ini"})4.2 party 模块存在 1,096 行连续完全相同代码
最长原始匹配块从参照 party.lua 第 132 行开始,对应被比对 main.lua 第 1,441 行,共连续 1,096 行。内容覆盖命令冷却、队列、骑乘状态、召回、恢复、快照和状态机逻辑。
4.3 核心加载器只改了一行
还原命名空间后,参照加载器与被比对段共有 207/208 行相同:
- LoopInGameThreadWithDelay, 100
+ LoopInGameThreadWithDelay, 10004.4 多重版本与品牌残留
Info.json:2.2.1.workshop.json:last_published_version = 2.1.2- Lua 内部版本:1.2
- 运行日志仍输出:Pal Squad: All Out!
5. 独立公开时间线
| UTC+8 时间 | 项目 | 事件 |
|---|---|---|
| 2026-07-18 14:42:40 | 参照项目 | Steam 项目创建。 |
| 2026-07-19 06:53:41 | 参照项目 | 1.1 更新。 |
| 2026-07-19 11:02:13 | 被比对项目 | 初始发布;晚于参照 1.1 约 4:08:32。 |
| 2026-07-20 04:33:03 | 参照项目 | 无说明更新;结合本地资料推定为 1.2,明确属于推断。 |
| 2026-07-20 09:58:10 | 被比对项目 | 2.0 更新;约 5:25:07 后。 |
| 2026-07-22 02:28:26 | 参照项目 | 1.3 地形投射与上坡地下生成修复。 |
| 2026-07-22 06:38:30 | 参照项目 | 1.4 性能优化与陈旧场景对象恢复。 |
| 2026-07-22 13:06:30 | 被比对项目 | 2.2.1 宣称修复相关问题;约 6:28 后。 |
6. 更新说明与实际实现的差异
参照 1.3 的地形修复包含地形射线检测,参照 1.4 包含逐槽维护、上下文 epoch 和性能诊断;这些完整实现未出现在被比对文件中。
更准确的技术描述是:被比对文件直接复制了参照 1.2 核心,再以少量粗略修改追随参照 1.3/1.4 更新说明强调的结果;并未复制完整的 1.3/1.4 新算法。
7. 署名与归属检查
被比对本地包中未发现对参照项目作者的 credit、attribution、copyright 或 license 声明。本报告未取得双方存在私下授权的证据;若存在书面授权,应作为反证补充。
8. 范围边界与反向证据
- 被比对项目单独的 15 行快捷键配置与参照完整配置模块不同。
- 极小占位模块未计入复制行数。
- scheduler adapter 和后续新增按键/手柄 Hook 未计入六个核心复制段。
- 双方缩略图不同。
因此,本报告结论只针对 Lua 核心及更新来源关系,不主张被比对项目所有文件、图片或新增 Hook 都来自复制。
9. 最终技术意见
综合规范化后完全相同的三个模块、207/208 行相同的加载器、1,096 行连续相同的状态机代码、参照品牌和迁移历史残留、内部版本 1.2、缺少署名,以及公开时间线:本次检查的 MultiPalSummon 2.2.1 Lua 核心与 PalSquadAllOut 1.2 之间存在直接复制/派生关系,置信度极高。
10. 固证建议
- 保留完整目录、原始 ZIP、Git 历史、构建记录和上传记录,不重新打包覆盖。
- 保存双方项目页、更新记录与平台页面的截图或网页归档,并显示 URL 与系统时间。
- 对所有原始文件记录 SHA-256。
- 公开说明优先使用可复核哈希、连续匹配、身份残留与时间线,避免仅以功能相似作判断。