TECHNICAL CHANGELOG / V3.1 B13
七日杀 V3.1 b13
源码与 Config 更新清单
面向 XML、XUi、DLL 与 Harmony MOD 作者的版本差异索引
| 对比基线 V3.0.1 b4 |
当前版本 V3.1 b13 |
游戏构建号 24392370 |
发布作者 Nanami |
本次更新集中在五类关键变化:运行时堆叠上限、按具体格位判断物品移动、鸡舍与可持有实体链、统一 SandboxOption、TileEntity/CVar/常用方法签名。
01 / 更新规模
对比对象为两个冻结版本的 Assembly-CSharp 反编译源码与原版 Config。源码树使用相同反编译器版本和参数,并通过目录差异报告排除工具造成的假变更。
| 155 源码路径变化 |
17 Config 文件修改 |
+53 Localization Key |
0 NGUI 变化 |
| 范围 | 差异 |
|---|---|
| Assembly-CSharp | 新增 14 个 .cs;移除 1 个 Unity 自动生成文件;修改 140 个既有路径,其中 139 个 .cs、1 个工程文件。 |
| Config | 17 个文件修改;无新增、无删除。 |
| Localization.csv | 新增 53 个 Key;修改 110 个既有 Key;删除 0 个;表头不变。 |
| Managed / NGUI | Managed 仅 Assembly-CSharp.dll 变化;NGUI 源码与二进制均无变化。 |
IMPACT TREE / 影响树
V3.1 b13
├─ Assembly-CSharp:155 个路径
│ ├─ 物品、背包与堆叠规则
│ │ ├─ 动态最大堆叠数 MaxCount
│ │ ├─ 按目标格位判断物品移动
│ │ └─ ItemStackGrid / Slot / SlotGrid
│ ├─ 鸡舍与“手持实体”系统
│ │ ├─ ItemClassHeldEntity
│ │ ├─ 野鸡压力与满压力事件
│ │ └─ ChickenCoop Collector 与燃料/催化剂 UI
│ ├─ 沙盒选项与生态生成
│ ├─ 玩家、实体与战斗
│ ├─ XUi、主菜单与服务器浏览器
│ ├─ 网络、TileEntity、存档与世界状态
│ ├─ 任务、商人、配方与经济交互
│ └─ 平台、DLC、云存储、统计与生成代码
├─ Config:17 个文件
│ ├─ 核心玩法与系统数据:8
│ ├─ UI 与设置界面:4
│ ├─ 世界、掉落、任务与交易:4
│ └─ 本地化:1
└─ NGUI:无变化
口径说明:140 个修改路径不等于 140 个玩法类。差异同时包含业务逻辑、平台适配、分析统计、工程元数据与 Unity/Burst 自动生成代码。
02 / 高频兼容性变化
直接影响 DLL、Harmony、反射调用、仓储界面与 XML 扩展的变化。
| 变化项 | V3.1 b13 变化 | 直接影响 |
|---|---|---|
| ItemClass.MaxCount | 堆叠倍率进入运行时上限,最终值限制为 30000。 | 容量、排序、配方、商人、拾取逻辑不再只读 Stacknumber.Value。 |
| CanMoveTo / Slot | 物品移动判断细化到目标容器与具体格位。 | 背包、工具栏、拖放、整理、分页仓储与特殊槽位。 |
| SetCustomVar | 新增 forceSendToClients,可在值未变化时强制同步。 | 预编译 DLL、Harmony 参数列表、反射定位、CVar 网络同步。 |
| TileEntityLegacyUtils | 旧数据读取器显式接收 Chunk。 | 旧存档迁移、自定义 TileEntity、区块序列化。 |
| DamageSource | 新增并同步 bIgnorePartyShare。 | 自定义伤害包、战斗补丁与队伍共享击杀逻辑。 |
签名与调用细节
2.1 ItemClass:运行时堆叠上限与槽位准入
public static float MaxStackSizeModifier = 1f;
public int MaxCount { get; }
MaxCount 对“可堆叠且无品质”的物品应用全局倍率,结果上限为 30000。当前游戏规则下的最大堆叠数取 MaxCount;Stacknumber.Value 是静态 XML 基值。
CanMoveToLocation(StackLocationTypes locationType, int slotNumber)
CanMoveToSlot(StackLocationTypes locationType, int slot)
2.2 ItemStack / Inventory / XUiC_ItemStack
public bool CanMoveTo(StackLocationTypes locationType, int slotNumber = -1);
Inventory.AddItemAtSlot、堆叠、交换与拖放链开始执行格位准入检查。源码单参数调用可继续使用默认值,但 CLR 签名已经变化。
复核范围:预编译 DLL、Harmony 参数列表、AccessTools.Method、自定义背包与工具栏、容器、一键整理、分页存储。CollectorCatalysts 目标格位还会触发 OnPlacedAsCatalyst(…)。
2.3 EntityBuffs.SetCustomVar
SetCustomVar(string name, float value, bool netSync = true,
CVarOperation operation = CVarOperation.set, bool forceSendToClients = false)
forceSendToClients 用于数值未变化时仍向客户端同步 CVar。原版抓取可持有实体、同步压力值时使用该能力。
2.4 ConnectionManager.BeginHeartbeat
V3.0.1 b4:BeginHeartbeat();
V3.1 b13:BeginHeartbeat(float seconds);
心跳周期由分析服务配置传入。直接调用、Harmony 目标与反射签名均受影响。
2.5 TileEntityLegacyUtils
TryReadLegacyType(…, Chunk chunk, …, out TileEntity tileEntity)
ReadLegacyLootIntoComposite(…, Chunk chunk, …)
旧版 Loot、SecureLoot、LandClaim、Sign、SecureDoor 转换读取器同步增加 Chunk 参数。
2.6 BlockShapeNew.CreateMeshFromMeshFilter
CreateMeshFromMeshFilter(Transform transform, Vector3 modelOffset, bool snap = false);
碰撞网格路径传入 snap: true,将顶点吸附到 0.001 精度。普通源码调用可使用默认参数,Harmony 与反射按新签名定位。
事件、伤害与服务器筛选
2.7 新 MinEvent:实体抓取与放下
onSelfPickupOther
onSelfDroppedOther
onSelfPickedUpByOther
抓取流程分别向玩家与被抓实体发布事件,可供 Buff、任务、GameEvent 与 MOD 自定义行为接入。
2.8 伤害上下文
DamageSource、ItemActionAttack、NetPackageDamageEntity 新增并同步 bIgnorePartyShare。自定义伤害包需保留该字段。
2.9 服务器浏览器扩展点
protected virtual void setupOptions()
XUiC_ServerBrowserGamePrefSelectorCombo.setupOptions() 改为可覆写。新的 SandboxOption 筛选控制器复用基类 UI,并替换选项来源。
03 / 新增的 14 个类或源码文件
包含玩法基础类、独立物品格、Collector UI、服务器浏览器、分析统计、诊断与自动生成代码。
| 功能族 | 新增文件 | 职责 |
|---|---|---|
| 可持有实体 | IsHeldItem | MinEvent 条件;判断目标当前持有物是否与事件 ItemValue 一致,支持反向判断。 |
| 可持有实体 | ItemClassHeldEntity | 实体物品化通用基类;处理放下、压力、声音、Buff 与工具栏槽位限制。 |
| 鸡系统 | ItemClassWildChicken | 根据压力、游戏阶段和附近敌人选择满压力事件。 |
| 独立物品格 | ItemStackGrid | 轻量物品格模型;保存尺寸、物品数组、锁定位与 SlotChanged 事件。 |
| 独立物品格 | XUiC_ItemStackSlot | 通用格位控制器;处理图标、数量、耐久、锁定、拖放与选中状态。 |
| 独立物品格 | XUiC_ItemStackSlotGrid | 将 ItemStackGrid 映射至格位控件,并处理交换和移入玩家背包。 |
| Collector UI | XUiC_CollectorFuelWindow | 管理 Collector 燃料格并提供 fuel_row_count 绑定。 |
| 服务器浏览器 | XUiC_ServerBrowserGamePrefSelectorComboSandboxOption | 将 SandboxOptionManager 的布尔或数值选项转换为服务器筛选项。 |
| 控制台诊断 | ConsoleCmdLogEnvironment | 新增 logenv 命令,输出进程环境变量;公开日志前需清理敏感值。 |
| 分析统计 | Services.Analytics.EventTypes | 集中保存分析事件名与版本号。 |
| 分析统计 | PlayerJoinServerEventData | 玩家加入服务器统计载荷;包含服务器、存档、人数、MOD 与游戏阶段信息。 |
| 分析统计 | Services.Analytics.Helper | 提供服务器 ID、MOD 列表截断、登录事件与心跳启动辅助逻辑。 |
| 分析统计 | TruncateStringSerializerConverter | JSON 字符串截断转换器,默认最大长度 50。 |
| 自动生成 | __JobReflectionRegistrationOutput__889207834 | Unity Job 反射注册输出,属于构建基础设施,不是独立玩法 API。 |
被移除的 __JobReflectionRegistrationOutput__2570913512.cs 同属自动生成文件。准确口径为“生成注册文件换代”,不代表玩法系统删除。
04 / 140 个既有修改路径
按 16 个功能域归纳。代表类用于快速定位,不作为互斥计数。
A. 物品、鸡舍、沙盒与 AI
| 功能域 | 代表类 | 变化摘要 |
|---|---|---|
| 4.1 物品 / 背包 / 制作 / 交易 | ItemValue、Equipment、StackSortUtil、LootContainer、RecipeQueueItem、TraderData、XUiM_PlayerInventory、XUiM_Recipes | 容量、拾取、排序、商人、配方逐步改用 MaxCount;移动链加入目标格位;RecipeQueueItem.Clear() 统一清理配方、计时、修理项和来源实体状态。 |
| 4.2 鸡舍 / 手持实体 / Collector | BlockCollector、TileEntityCollector、EntityAlive、EntityAnimal、EntityItem、EntityClass、XUiC_CollectorFuelGrid | CollectorTypes 增加 ChickenCoop;实体接入拾取物、压力 CVar/Buff、受惊声音与持有状态;时间、投入、产出读取 SandboxOption 倍率。 |
| 4.3 沙盒选项 / 服务器设置 | EnumGamePrefs、GamePrefs、SandboxOptionManager、SandboxOptions、ConsoleCmdGetSandboxOptions、ServerState/SandboxSettings | 新增堆叠、感染、饥饿/口渴、鸡舍参数;昼夜敌人/动物密度与刷新进一步拆分;选项同步进入新游戏、浏览器、控制台与 Web API。 |
| 4.4 AI / 尸潮 / 等级限制 | AIDirectorBloodMoonParty、AIHordeSpawner、AIWanderingHordeSpawner、EntityGroups、EntityFactory | 尸潮与血月按 SandboxOption 最大实体等级筛选候选;无合法实体时取消生成并记录警告。 |
B. 生态、玩家、战斗与任务
| 功能域 | 代表类 | 变化摘要 |
|---|---|---|
| 4.5 生物群系 / 生态刷新 | BiomeSpawnEntityGroupData、BiomeSpawningFromXml、ChunkAreaBiomeSpawnData | 生成类型从 isanimal 布尔值扩展为 Normal / Animal / Rare;昼夜敌人、动物密度和刷新延迟使用更细的独立参数。 |
| 4.6 玩家状态 / 移动 / 重生 | EntityPlayerLocal、PlayerEntityStats、EntityStats、PlayerStealth、PlayerMoveController、RespawnProgress | 饥饿与口渴应用新倍率;手持动物压力影响潜行吸引半径;重生增加碰撞体等待与地形高度回退。 |
| 4.7 战斗 / 无人机 / 炮塔 / 载具 | ItemActionAttack、NetPackageDamageEntity、EntityDrone、EntityTurret、EntityVehicle、DamageSource | 伤害包同步 bIgnorePartyShare;EntityDrone.LoadMods 主要增加空值安全检查,签名未变;其余为局部兼容和状态调整。 |
| 4.8 任务 / 任务界面 | Quest、DialogActionAddQuest、XUiC_QuestOfferWindow | 扩展完整任务重置流程;重复任务和特殊任务的接受、关闭行为更明确;Config 同步调整起始任务与部分商人任务入口。 |
C. 存档、世界、网格与通用 XUi
| 功能域 | 代表类 | 变化摘要 |
|---|---|---|
| 4.9 TileEntity 网络 / 旧存档 | NetPackageTileEntity、TileEntity、TileEntityComposite、TileEntityLegacyUtils、TileEntityPowerSource、TileEntityWorkstation | 增加方块 ID 校验;载荷长度 ushort 扩大为 int;应用包前核对方块类型;旧 TileEntity 转换显式携带 Chunk。 |
| 4.10 Region / 世界状态 / 天气 | RegionFileV2、World、WorldState、WeatherManager | Region 优化写入增加同步保护;天气状态先形成内存快照,再由 WorldState 统一保存和读取。 |
| 4.11 世界生成 / 方块网格 | BlockShapeNew、ChunkProviderGenerateWorldFromRaw、PathingUtils、RawStamp、StampManager、WorldBuilder | 碰撞网格增加可选坐标吸附;世界生成差异混有 Burst 标识与生成代码,不能仅凭文本量判断算法重写。 |
| 4.12 通用 XUi / 列表 / 拖放 | XUiC_List、XUiController、XUiC_DragAndDropWindow、XUiC_ItemInfoWindow、XUiC_RequiredItemStack、XUiV_GamepadIcon | 修正短列表负索引;输入设备样式可强制刷新;拖放窗口保留前一个 ItemStack;图标和计数改用运行时堆叠规则。 |
D. 菜单、平台、统计与生成元数据
| 功能域 | 代表类 | 变化摘要 |
|---|---|---|
| 4.13 主菜单 / 新游戏 / 继续游戏 | MainMenuMono、XUiC_NewGame、XUiC_NewContinueBase、XUiC_PlayGameMenu、XUiC_OptionsController、XUiC_OptionsDialogBase | 记录新游戏创建状态并刷新 Play 列表;Controller Icon Style 改用更直接绑定;扩展 SandboxOption 页面和服务器筛选。 |
| 4.14 平台 / 联机 / Discord / DLC | ConnectionManager、InviteManager、DiscordManager、SessionsClient、RemoteFileStorage、DownloadableContentValidator | EOS 结果本地复核布尔、整数和字符串条件;Discord 增加临时账号关联/解绑状态及私信静音偏好;会话、邀请、DLC、云存储局部适配。 |
| 4.15 分析统计 / 诊断 | GameManager、BaseEventData、LoginEventData、HeartbeatEventData、ServerStartEventData、BacktraceUtils | 增加玩家加入事件、存档 ID、游戏平台分支、MOD/XML 修改信息;心跳由服务配置;MOD 列表与字符串字段增加数量或长度限制。 |
| 4.16 版本 / 工程 / 生成元数据 | Constants、AssemblyInfo、StockFileHashes、Assembly-CSharp.csproj、Burst 初始化器、MonoScript 类型表、Job 注册输出 | 更新版本、程序集信息与原版哈希;大面积生成代码差异主要来自重新生成,不能与手写玩法逻辑等量解读。 |
05 / Config 的 17 个修改文件
无新增、无删除。变化集中在核心系统数据、XUi、世界与交易、本地化。
CONFIG TREE / 文件树
| 核心玩法与系统数据 / 8 | blocks.xml · items.xml · buffs.xml · gameevents.xml · entityclasses.xml · progression.xml · recipes.xml · sounds.xml |
| UI 与设置界面 / 4 | XUi_InGame/templates.xml · XUi_InGame/windows.xml · XUi_Menu/templates.xml · XUi_Menu/windows.xml |
| 世界、掉落、任务与交易 / 4 | spawning.xml · loot.xml · quests.xml · traders.xml |
| 本地化 / 1 | Localization.csv |
5.1 Chicken Coop:跨系统功能链
鸡舍不是单独新增一个方块,而是一条横跨生产、抓鸡、压力事件、食物、技能解锁与 UI 的完整功能链。
| 文件 | 主要变化 |
|---|---|
| blocks.xml | 新增 cntChickenCoop;定义饲料、鸡只催化槽、蛋/羽毛/鸡产出、升级槽与动态输出格。 |
| items.xml | 新增鸡饲料、野鸡、家鸡、三个鸡舍升级件、四种鸡肉料理与 Big Beak 外观套装,共 14 个物品。 |
| buffs.xml | 新增 10 个鸡相关 Buff,覆盖持鸡压力、满压力事件与食物增益。 |
| gameevents.xml | 新增 5 个压力事件序列,可触发丢鸡、愤怒鸡、僵尸狂暴、尸群或杀人鸡。 |
| entityclasses.xml | animalChicken 接入拾取物、压力 CVar/Buff 与紧张声音。 |
| progression.xml | 鸡舍与升级件进入工作站技能;四种料理进入烹饪技能。 |
| recipes.xml | 新增鸡舍、鸡饲料、升级件与料理等 9 个配方。 |
| sounds.xml | 增加鸡攻击、挣扎与满压力音效。 |
| foodRoadrunnerChickenJerky | RunSpeed +20% |
| foodChickenNuggets | CarryCapacity +27 |
| foodChickenWings | 提高近战伤害,并提供感染抗性。 |
| wildChicken | 仅能在特定槽位与工具带之间移动;不能按普通物品方式丢弃;移动会累积压力。 |
5.2 – 5.6 其余 Config 变化
服务器浏览器转向 SandboxOption 数据
XUi_Menu/templates.xml 新增 browsergameoptionsandbox;XUi_Menu/windows.xml 将 26 个服务器浏览器控件由 browsergameoptioncombined 迁移至新模板。覆盖 XP、昼夜、血月、僵尸速度与感知、空投、生态区进度、风暴、方块伤害、掉落、死亡惩罚、敌人生成与每日任务限制。旧控件名 XPath 需重新核对目标数量和节点名称。
spawning.xml:生成属性规则变化
| 原属性 isanimal=”true” |
新属性 type=”animal” |
荒漠和雪地的部分昼夜僵尸项新增 type=”rare”,并调整刷新延迟。仍修改 isanimal 的 XPath 可能不再命中。
XUi 与设置界面
· Collector 催化剂窗口改用 CollectorFuelWindow,并按 fuel_row_count 动态计算高度。
· World Size 快捷值扩展为 2048 至 10240 的更细档位。
· SandboxOption 显示网格由每列 20 行扩大为 30 行。
· Prefab Editor Help、Discord Login 与若干选项窗口调整尺寸、按钮和绑定。
· Item 图标、工作站燃料格和按钮区域有少量透明度与 depth 修正。
掉落、商人、任务与进度
· loot.xml 新增 groupRareElectrical,当前包含 solarCell;电气设备与 Solar Cell 的掉落入口扩展。
· traders.xml 新增载具 MOD 和无人机 MOD 交易组并加入通用 MOD 池;部分商人出售鸡饲料。
· progression.xml 将鸡舍、升级件与四种料理插入既有技能阶梯;部分显示 tier 重新编号。
· quests.xml 删除起始任务自动追踪 craftlandclaim challenge 的动作;五名商人的埋藏物资介绍项改用 parser 默认结束行为。
Localization.csv
新增 53 / 删除 0 / 修改 110 / Header 不变
新增内容主要涉及 Chicken Coop、鸡饲料、压力事件、Big Beak 外观与 SandboxOption 文案。既有 Key 多为语言补齐、简繁中文润色、术语和描述澄清。仅有文案变化不能直接证明底层数值同步变化;数值仍以 progression、buff 或 C# 消费端为准。
06 / MOD 作者检查表
按 MOD 类型定位对应变化。方框用于发布后逐项记录。
| 状态 | MOD 类型 | 核对项 |
|---|---|---|
| □ | 仓储 / 背包 / 工具栏 / 整理 | ItemClass.MaxCount、CanMoveToSlot、实际目标槽位。 |
| □ | Harmony / DLL | CanMoveToLocation、CanMoveTo、SetCustomVar、BeginHeartbeat、CreateMeshFromMeshFilter、TileEntity 旧读取方法的完整签名。 |
| □ | Menu XUi | browsergameoptioncombined XPath 命中数量;迁移至 browsergameoptionsandbox。 |
| □ | 生成类 XML | isanimal → type=”animal”;新增 type=”rare”。 |
| □ | TileEntity / 存档 | 新增 Chunk 上下文;NetPackageTileEntity 方块类型校验与载荷长度。 |
| □ | 自定义伤害包 | 保留并同步 bIgnorePartyShare。 |
| □ | 鸡舍相关 XML | 方块、物品、Buff、GameEvent、实体、配方、进度、声音、XUi、本地化按完整链路核对。 |
结论
1. 堆叠上限由静态 XML 值扩展为运行时 MaxCount。
2. 物品移动由“目标容器类型”细化为“目标容器 + 具体格位”。
3. 鸡舍与可持有实体形成 C#、Config、XUi 联动链。
4. 更多游戏设置进入统一 SandboxOption 体系。
5. TileEntity、CVar 同步与常用方法出现二进制签名变化。
XML 内容 MOD 重点核对 XPath 与跨文件引用;DLL/Harmony MOD 重点核对重新编译、精确签名与运行时行为。静态编译通过不等同于 V3.1 实机兼容。
发布作者:Nanami / 7 Days to Die V3.1 b13 / 游戏构建号 24392370 / 基线 V3.0.1 b4










鄂公网安备42011202002543号


