本指南介绍如何编辑 types.xml 来自定义由 Legion Hosting 托管的 DayZ 服务器上的战利品经济。您将了解每个属性的作用,查看常见调整场景的示例,并了解如何验证您的更改。有关一般服务器配置,请参阅 DayZ 服务器设置指南。
types.xml 或任何其他任务文件之前,请始终从 GPanel 的 Console 选项卡中停止服务器。在服务器运行时写入的更改可能会在下次关闭时被覆盖或忽略。
查找 types.xml
DayZ 中的战利品经济由 types.xml 文件控制。此文件定义了地图上可以生成的每个物品及其出现频率。文件位于:
mpmissions/dayzOffline.chernarusplus/db/types.xml
如果您运行的是不同的地图(如 Livonia),请将 dayzOffline.chernarusplus 替换为您的任务文件夹名称。常见的任务文件夹名称:
| 地图 | 任务文件夹 |
|---|---|
| Chernarus | dayzOffline.chernarusplus |
| Livonia | dayzOffline.enoch |
在 GPanel 文件编辑器中打开 types.xml,或通过 SFTP 下载并在本地编辑后重新上传。
了解关键属性
types.xml 中的每个物品由一个 <type> 元素定义。控制战利品频率的最重要子元素包括:
| 元素 | 描述 |
|---|---|
nominal |
服务器在地图上始终尝试维持的该物品目标数量。增加此值可使物品更常见。设置为 0 可完全禁用生成。 |
min |
地图上该物品的最低数量,低于此值后补货系统将开始生成更多。必须小于或等于 nominal。 |
lifetime |
物品在地面上未被交互前消失的持续时间(以秒为单位)。增加此值可使物品在消失前持续更长时间。 |
restock |
生成尝试之间的时间(以秒为单位)。设置为 0 意味着当数量降至 min 以下时物品会立即重新生成。 |
quantmin / quantmax |
控制物品生成时的数量范围(例如弹匣中的弹药数量)。值为 -1 表示游戏使用其默认值。 |
cost |
中央经济系统使用的优先级权重。较高的值使物品在补货周期中更早生成。稀有物品通常具有较高的 cost 值。 |
标志位说明
每个 <type> 元素包含一个 <flags> 元素,用于控制经济系统如何计算该物品的现有实例:
| 标志 | 描述 |
|---|---|
count_in_map |
将地面上的物品计入 nominal 总数。 |
count_in_cargo |
将容器内(背包、储物箱)的物品计入总数。 |
count_in_hoarder |
将玩家藏匿处和掩埋容器中的物品计入总数。 |
count_in_player |
将在线玩家携带的物品计入总数。 |
crafted |
设置为 1 表示该物品仅限制作,不应自然生成。 |
deloot |
设置为 1 表示动态事件战利品(直升机坠毁等)。 |
示例:AKM 突击步枪条目
<type name="AKM">
<nominal>5</nominal>
<lifetime>14400</lifetime>
<restock>0</restock>
<min>2</min>
<quantmin>-1</quantmin>
<quantmax>-1</quantmax>
<cost>100</cost>
<flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
<category name="weapons"/>
<usage name="Military"/>
</type>
在此示例中,服务器尝试始终在地图上保持 5 把 AKM(nominal=5)。当数量降至 2 以下(min=2)时,新的 AKM 会立即生成(restock=0)。每把 AKM 如果未被触碰将在 4 小时后消失(lifetime=14400 秒)。仅计算地面生成的物品(count_in_map=1),因此玩家背包或掩埋藏匿处中的 AKM 不会从总数中扣除。
类别和用途标签
<category> 和 <usage> 标签控制物品在地图上的生成位置:
<category name="weapons"/>-- 对物品类型进行分类(weapons、clothes、tools、food 等)<usage name="Military"/>-- 将生成限制在军事区域。其他值包括Town、Village、Farm、Industrial、Hunting、School、Medic、Police、Firefighter和Coast。
您可以添加多个 <usage> 标签以允许物品在多种地点类型中生成。
常见战利品调整示例
| 目标 | 需要更改的内容 |
|---|---|
| 使物品更常见 | 增加 nominal 和 min |
| 禁止物品生成 | 将 nominal 设置为 0,min 设置为 0 |
| 使物品在消失前持续更长时间 | 增加 lifetime(值以秒为单位;3600 = 1 小时) |
| 加快拾取后的物品重新生成速度 | 减少 restock 或将其设置为 0 |
| 使稀有战利品即使被囤积也计入总数 | 设置 count_in_hoarder="1" 和 count_in_cargo="1" |
| 允许物品在城镇和军事区域生成 | 同时添加 <usage name="Town"/> 和 <usage name="Military"/> |
验证您的更改
types.xml 必须是有效的 XML。一个未关闭的标签、不匹配的括号或多余的字符都会导致服务器无法加载任务,并可能在启动时崩溃。在上传之前,请使用具有 XML 验证功能的文本编辑器(如 Notepad++ 或 VS Code)在本地编辑此文件。
需要注意的常见 XML 错误:
- 忘记使用
</type>关闭<type>元素 - 属性值中引号不匹配(例如
name="AKM缺少结束引号) - 多余的字符或额外的尖括号
- 意外删除文件顶部的 XML 声明
模组与 types.xml 的交互
如果您运行了添加新物品的模组,这些模组可能在模组的 db/ 文件夹中包含自己的 types.xml 条目。如果您对原版 types.xml 的更改对模组物品似乎没有生效,请检查模组是否覆盖了该条目。您可能需要编辑模组自身的 types.xml。
相关文章
- DayZ 服务器设置指南 -- serverDZ.cfg 配置以及玩家如何连接
- DayZ 模组安装 -- Steam Workshop 模组、加载顺序和密钥文件
- DayZ 故障排除 -- 常见错误、BattlEye 问题和 RCON 设置
- 如何通过 SFTP 上传文件