七日杀高阶实战:自定义商人、地图与世界编辑

发布于 2026-08-21 10:00 954 字 5 min read ... 访问量

KK avatar

KK

KK 的个人技术博客,记录服务器、网络、编程相关的折腾日常

这篇高阶教程讲解自定义商人配置、世界编辑器使用和自定义地图创建,适合有一定 MOD 开发基础的玩家。 自定义商人 商人配置文件 商人在 中配置: 自定义商人库存 创建自定义库存列表: 商人价格调整 通过 调整交易价格:

这篇高阶教程讲解自定义商人配置、世界编辑器使用和自定义地图创建,适合有一定 MOD 开发基础的玩家。

自定义商人

商人配置文件

商人在 traders.xml 中配置:

<traders>
    <trader type="traderJoel">
        <property name="NPCType" value="trader"/>
        <property name="Name" value="Joel"/>
        <property name="POI" value="traderJoel_01"/>
        
        <!-- 商人库存 -->
        <property name="ItemList" value="traderGeneral"/>
        
        <!-- 商人位置 -->
        <property name="Position" value="1234,56,789"/>
        <property name="Rotation" value="0,90,0"/>
    </tr>
</traders>

自定义商人库存

创建自定义库存列表:

<item_list name="myTraderStock">
    <!-- 武器 -->
    <item name="gunPistol" count="3"/>
    <item name="gunShotgunPump" count="2"/>
    
    <!-- 弹药 -->
    <item name="ammo9mmBullet" count="100"/>
    
    <!-- 材料 -->
    <item name="resourceForgedIron" count="50"/>
    
    <!-- 食物 -->
    <item name="foodMeatStew" count="5"/>
</item_list>

商人价格调整

通过 economy.xml 调整交易价格:

<economy>
    <!-- 全局价格倍率 -->
    <property name="TraderBuyMultiplier" value="1.5"/>
    <property name="TraderSellMultiplier" value="0.5"/>
    
    <!-- 特定物品价格 -->
    <item name="gunPistol">
        <property name="BuyPrice" value="3000"/>
        <property name="SellPrice" value="1500"/>
    </item>
</economy>

自定义商人位置

traders.xml 中指定商人在世界中的位置:

<trader type="myCustomTrader">
    <property name="POI" value="myTraderPOI"/>
    <property name="Position" value="x,y,z"/>
    <property name="Rotation" value="0,angle,0"/>
    
    <!-- 商人外观 -->
    <property name="EntityClass" value="traderJoel"/>
    
    <!-- 商人交互 -->
    <property name="InteractionType" value="trade"/>
</trader>

世界编辑器

启动世界编辑器

在七日杀中按 EscEditor 或使用控制台命令:

# 开启编辑模式
debugmenu on

# 启动世界编辑器
openeditor

编辑器基本操作

操作快捷键说明
选择左键选择方块/物体
放置右键放置方块/物体
删除Delete删除选中物体
移动拖拽移动物体位置
旋转R + 拖拽旋转物体朝向
复制Ctrl+C复制选中内容
粘贴Ctrl+V粘贴内容

预制件操作

预制件(Prefab)是预先制作好的建筑模板:

# 预制件目录
Data/Prefabs/

# 导入预制件
1. 打开预制件管理器
2. 选择预制件文件
3. 放置到世界中

建筑转移

将一个世界的建筑转移到另一个世界:

# 1. 导出建筑
# 在源世界中选择建筑,导出为预制件

# 2. 导入建筑
# 在目标世界中导入预制件

# 3. 调整位置
# 使用世界编辑器调整建筑位置和朝向

自定义地图创建

地图生成参数

worldgenerator.xml 中配置:

<world>
    <!-- 世界种子 -->
    <property name="Seed" value="myCustomSeed"/>
    
    <!-- 世界大小 -->
    <property name="WorldSize" value="8192"/>
    
    <!-- 生物群系配置 -->
    <biomes>
        <biome name="pine_forest" weight="0.3"/>
        <biome name="desert" weight="0.25"/>
        <biome name="snow" weight="0.25"/>
        <biome name="wasteland" weight="0.2"/>
    </biomes>
</world>

自定义 POI

创建自定义兴趣点(Point of Interest):

<prefabs>
    <prefab name="myCustomPOI">
        <!-- POI 基础属性 -->
        <property name="DifficultyTier" value="3"/>
        <property name="Size" value="50,30,50"/>
        
        <!-- POI 内容 -->
        <property name="QuestTag" value="clear"/>
        <property name="LootQuantity" value="10"/>
        <property name="EnemyCount" value="15"/>
        
        <!-- POI 位置 -->
        <property name="Position" value="1000,50,2000"/>
    </prefab>
</prefabs>

地图坐标定位

找到联机地图中建筑的位置:

# 查看存档中的建筑位置
# 存档目录:7DaysToDie/Saves/

# 使用工具读取地图数据
# 或在游戏内使用控制台
debbie  # 显示坐标

实操案例

案例1:创建自定义商人营地

  1. 在世界编辑器中创建一个小型营地
  2. 添加商人 NPC
  3. 配置商人库存和价格
  4. 测试交易功能

案例2:制作自定义任务地图

  1. 创建一个自定义 POI
  2. 设置任务目标(清除/搜刮/到达)
  3. 配置敌人刷新和战利品
  4. 在任务系统中关联 POI

案例3:设计血月防御工事

  1. 创建环形防御建筑
  2. 添加陷阱和炮塔位置
  3. 测试血月防守效果
  4. 优化防御布局

注意事项

  • 备份存档:编辑前务必备份
  • 版本兼容:确保编辑器版本与游戏版本一致
  • 性能测试:大型自定义地图需要测试性能
  • 发布规范:发布自定义地图时注明版本和依赖

参考来源