七日杀的 XML 配置系统是 MOD 开发的基础。通过修改 items.xml,你可以自定义物品属性、添加新物品、调整制作配方。这篇文章从零开始讲清楚 XML 配置的语法和实操。
XML 配置文件位置
七日杀的 XML 配置文件在游戏目录的 Data/Config/ 文件夹下:
| 文件名 | 作用 |
|---|---|
| items.xml | 物品定义(武器、工具、材料等) |
| buffs.xml | Buff/Debuff 效果定义 |
| gameevent.xml | 游戏事件触发配置 |
| progression.xml | 技能/Perk 配置 |
| recipes.xml | 制作配方 |
| spawning.xml | 丧尸刷新配置 |
MOD 开发时,在 Mods/你的MOD名/Config/ 下创建同名文件即可覆盖原版配置。
items.xml 基础结构
<?xml version="1.0" encoding="UTF-8"?>
<configs>
<items>
<!-- 物品定义 -->
<item name="myCustomItem">
<property name="CustomIcon" value="myIcon"/>
<property name="CustomIconTint" value="ffffff"/>
<property name="DisplayType" value="Melee"/>
<property name="Tags" value="weapon"/>
<property name="Stacknumber" value="1"/>
<property name="Material" value="Mmetal"/>
<property name="HoldType" value="45"/>
<property name="Meshfile" value="#@:other/Items/Meshes/sledgehammer.fbx"/>
<property name="DropMeshfile" value="#@:other/Items/Meshes/sledge_ground.fbx"/>
<property name="Weight" value="5"/>
<!-- 损伤属性 -->
<effect_group>
<passive_effect name="EntityDamage" operation="base_add" value="50"/>
<passive_effect name="BlockDamage" operation="base_add" value="30"/>
<passive_effect name="AttackDuration" operation="base_set" value="1.2"/>
<passive_effect name="EntityPower" operation="base_set" value="1"/>
</effect_group>
</item>
</items>
</configs>核心属性说明
物品基础属性
| 属性名 | 说明 | 示例值 |
|---|---|---|
| DisplayType | 显示类型 | Melee / Ranged |
| Tags | 物品标签 | weapon / resource / food |
| Stacknumber | 最大堆叠数 | 1(武器) / 6000(材料) |
| Material | 材质类型 | Mmetal / Mwood |
| Weight | 重量 | 1-50 |
| HoldType | 持握动画类型 | 45(双手) / 1(单手) |
| CustomIcon | 自定义图标 | 图标资源名 |
损伤属性(effect_group)
| 属性名 | 说明 |
|---|---|
| EntityDamage | 对实体(丧尸/动物)伤害 |
| BlockDamage | 对方块(建筑)伤害 |
| AttackDuration | 攻击持续时间(秒) |
| EntityPower | 实体硬直值 |
| BlockPower | 方块破坏力 |
操作类型(operation)
| 类型 | 说明 |
|---|---|
| base_set | 直接设置基础值 |
| base_add | 在基础值上叠加 |
| perc_add | 百分比叠加 |
| perc_set | 百分比设置 |
实操:添加一把自定义战锤
第一步:在 items.xml 中定义物品
<item name="myWarHammer">
<property name="DisplayType" value="Melee"/>
<property name="Tags" value="weapon"/>
<property name="Stacknumber" value="1"/>
<property name="Material" value="Mmetal"/>
<property name="Weight" value="8"/>
<property name="HoldType" value="45"/>
<property name="CustomIcon" value="sledgehammer"/>
<property name="Meshfile" value="#@:other/Items/Meshes/sledgehammer.fbx"/>
<property name="DropMeshfile" value="#@:other/Items/Meshes/sledge_ground.fbx"/>
<property name="DegradationBreaksAfterUse" value="false"/>
<effect_group>
<passive_effect name="EntityDamage" operation="base_add" value="80"/>
<passive_effect name="BlockDamage" operation="base_add" value="60"/>
<passive_effect name="AttackDuration" operation="base_set" value="1.5"/>
<passive_effect name="EntityPower" operation="base_set" value="2"/>
<passive_effect name="BlockPower" operation="base_set" value="3"/>
</effect_group>
</item>第二步:在 recipes.xml 中添加制作配方
<recipe name="myWarHammer" count="1" craft_time="60" craft_area="workbench">
<ingredient name="resourceForgedIron" count="20"/>
<ingredient name="resourceWood" count="10"/>
<ingredient name="resourceDuctTape" count="2"/>
</recipe>
第三步:放入 MOD 目录
Mods/my-mod/
├── ModInfo.xml
└── Config/
├── items.xml ← 包含 myWarHammer 定义
└── recipes.xml ← 包含制作配方
常见修改场景
修改武器伤害
找到原版武器的 name 属性,用 base_add 叠加伤害:
<item name="gunPistol">
<effect_group>
<passive_effect name="EntityDamage" operation="base_add" value="10"/>
</effect_group>
</item>
修改物品堆叠数
<item name="resourceWood">
<property name="Stacknumber" value="10000"/>
</item>
修改制作材料数量
<recipe name="gunPistol" count="1">
<ingredient name="resourceForgedIron" count="5"/>
<!-- 其他材料不变 -->
</recipe>
注意事项
- 文件编码:XML 文件必须使用 UTF-8 编码,否则中文会乱码
- 标签闭合:每个 XML 标签必须正确闭合
- 属性引号:属性值必须用双引号包裹
- 覆盖规则:MOD 的 XML 会覆盖原版同名标签,确保只修改需要的部分
参考来源
- 七日杀中文MOD网 items.xml 教程:https://www.7risha.com/73421.html
- 七日杀 buffs.xml 翻译解析:https://www.7risha.com/48428.html