百科目录
DayZ types.xml 字段详解
DayZ types.xml 每个字段的作用:nominal、min、lifetime、restock、数量、flags、类别、刷新地点和等级,附真实条目与常见修改。
types.xml 是 DayZ 中央经济系统作为战利品刷出的全部物品清单:每个物品类名一条记录,规定应存在多少件、在地上放多久、在哪里出现。服务器上“没有战利品”的问题,大多最终都要回到这个文件。
文件在哪里
每张地图在自己的任务文件夹里都有一份:切尔纳鲁斯是 mpmissions/dayzOffline.chernarusplus/db/types.xml,利沃尼亚是 dayzOffline.enoch,萨哈尔是 dayzOffline.sakhal。运行哪个任务由 serverDZ.cfg 中的 template 决定,所以要修改服务器实际启动的那个文件夹。
服务器只在启动时读取一次该文件,修改需重启后生效。
真实条目:切尔纳鲁斯的 M4-A1
当前游戏版本的原版条目,直接取自任务文件:
<type name="M4A1">
<nominal>1</nominal>
<lifetime>7200</lifetime>
<restock>3600</restock>
<min>1</min>
<quantmin>30</quantmin>
<quantmax>80</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="ContaminatedArea"/>
</type>物品数据库中每个物品页面都按地图给出这样的代码块,可一键复制。
全部字段
| 字段 | 作用 |
|---|---|
nominal | 经济系统希望同时保持在地图上的数量。 |
min | 数量低于此值时,经济系统重新开始刷新,直到回到 nominal。 |
lifetime | 无人触碰的物品在世界中保留的秒数,到期被清理。3600 为一小时,3888000 为 45 天(基地建造用)。 |
restock | 数量低于 min 后,经济系统再次刷新前等待的秒数。0 表示尽快。 |
quantmin, quantmax | 刷新时的填充百分比:弹匣里的子弹、瓶中的水。没有数量的物品为 -1。 |
cost | 刷新优先级,默认 100,几乎不需要改。 |
flags | 哪些副本计入 nominal:count_in_map(在世界中)、count_in_cargo(在其他物品里)、count_in_hoarder(在帐篷、木桶和藏匿处)、count_in_player(在玩家背包)。crafted="1":经济系统永不刷新;deloot="1":只由直升机坠毁等动态事件刷出。 |
category | 战利品类别:weapons、clothes、tools、food、containers、explosives,列表来自 cfglimitsdefinition.xml。 |
usage | 刷新地点类型:Military、Police、Medic、Town、Village、Farm、Industrial、Hunting、Coast 等,同样来自 cfglimitsdefinition.xml。 |
value | 地图等级,从海岸附近的 Tier1 到内陆深处的 Tier4。没有 value 的物品不受等级限制。 |
tag | 物品在建筑内的摆放位置:地板、货架或地面。 |
这些数值如何配合
假设某物品 nominal 为 10、min 为 5、restock 为 1800。只要地图上还有 5 件以上,就什么都不发生。玩家拿走后只剩 4 件时,经济系统等待 30 分钟,然后刷新到重新有 10 件为止。
什么算“在地图上”由 flags 决定。如果只有 count_in_map,背包和帐篷里的副本不计数,玩家可以囤积,而经济系统会继续刷出新的。count_in_cargo 和 count_in_hoarder 可以堵住这个漏洞。
lifetime 只对放在世界中的物品有效:物品出现或被丢下时开始计时。
常见修改
- 让某物品更多:同时提高 nominal 和 min,例如改为 10 和 6。min 很低时只提高 nominal 作用不大:只有低于 min 才会补充。
- 关闭某物品:把 nominal 和 min 设为 0。条目保留,物品不再刷新。
- 只在军事地点出现:只保留
<usage name="Military"/>。 - 只在远离海岸的地方出现:保留
<value name="Tier3"/>和<value name="Tier4"/>。 - 模组物品:放到单独的文件里,例如
db/types_mymod.xml,并在cfgeconomycore.xml中注册:<ce folder="db"><file name="types_mymod.xml" type="types"/></ce>。游戏更新不会覆盖它。
会让战利品失效的错误
- 一行写坏,比如少了引号或闭合标签,服务器可能整个文件都不读取,战利品就不再出现。修改后在重启后立刻查看服务器日志。
- min 大于 nominal。min 应不超过 nominal。
- 改错了任务文件夹:服务器只读取 serverDZ.cfg 中指定的那个。
- 不重启就期待修改生效。
- 一次给大量物品设置巨大的 nominal:经济系统要放置并追踪每一件,多出几万件物品的服务器会变慢。
每个物品的现成条目
物品数据库收录了每个物品在切尔纳鲁斯、利沃尼亚和萨哈尔的原版条目:武器、服装、食物、工具、载具等。物品带着什么一起刷新见 DayZ cfgspawnabletypes.xml:配件、货物与损坏,载具和坠机见 DayZ events.xml:载具、坠机与动物,类名本身汇总在 DayZ 物品类名(classname)大全。
