Language
Search Docs
Documentation
Document Info
Navigation
The English version was updated on December 24, 2025 at 9:21 AM, while this translation was last updated on November 4, 2025 at 12:55 AM. View English version
本指南介绍如何使用 XML 配置文件为 DBus World 创建自定义地图。地图包含公交车站、连接公交车站的线路、可选的车票定价以及不同时间段乘客数量的变化。
Patreons 现在可以使用DBus World Line Creator轻松创建自己的线路!
文件结构概述
一张完整的地图至少需要两个文件:
- stops.xml (必须的) - 定义所有的公交车站
- lines.xml (必须的) - 定义公交线路和路线
可选文件:
- city.xml - 定义基于城市的票价系统的车票类型和定价。
- times.xml - 根据一天中的不同时间段控制客流量(Patreon 功能)
所有文件必须按所示名称命名,并放置在同一目录下。
stops.xml - 公交车站的定义
此文件包含地图上显示的所有可用的公交车站。
基本结构
<code><busstops>
<busstop>
<id>1</id>
<name>Nordspitze Bauernhof</name>
<zone></zone>
<requestStop>false</requestStop>
<location>-359.743;8.24964;520.188;0.146129;-0.163294</location>
</busstop>
</busstops>
</code>参数说明
- id: 站点的唯一的数字标识。每个站点必须有不同的 ID。
- name: 在计划表和游戏界面中显示的显示名称。
- zone: 区域分类(目前未使用,可以留空)。
- requestStop: 乘客是否需要请求停车(目前未使用,设置为
false)。 - location: 以
X;Y;Z;RotX;RotZ格式表示的坐标,定义了每个站点在游戏世界中的位置。
创建多个站点
只需为每个站点重复使用 <busstop> 代码块,确保站点 ID 唯一:
<code><busstops>
<busstop>
<id>1</id>
<name>Central Station</name>
<zone></zone>
<requestStop>false</requestStop>
<location>-100.0;5.0;200.0;0.0;0.0</location>
</busstop>
<busstop>
<id>2</id>
<name>Market Square</name>
<zone></zone>
<requestStop>false</requestStop>
<location>150.0;5.0;300.0;0.0;0.0</location>
</busstop>
</busstops>
</code>lines.xml - 线路和路线的定义
此文件定义了公交线路及其途经站点的路线。
基本结构
<code><lines map_type="base">
<line uid="0" number="A2" adultCoef="75" reducedRate="15" city="true">
<route uid="1" name="B1" time="0">
<busstop uid="1" passengersMin="5" passengersMax="20"
coefOn="100" nextStopTime="1" nextStopPrice="1"/>
<busstop uid="5" passengersMin="0" passengersMax="0"
coefOn="0" nextStopTime="0" nextStopPrice="0"/>
</route>
</line>
</lines>
</code>地图类型属性
map_type 属性指定你要配置的游戏地图:
base- SCS Base Europe 及其 DLCpromods- ProMods 地图grundorf- DBus 的 Grundorf 地图tmp- TruckersMP (保留的)- 可自定义值,或留空以默认使用
base。
线路参数
- uid: 线路的唯一数字标识符。不能重复。
- number: 游戏中显示的线路编号(例如,“A2”、“15”、“North Route”)。
- adultCoef: 该线路上成年乘客的百分比(例如,
75= 75% 为成年人)。 - reducedRate: 折扣票的折扣百分比(例如,
15= 全价的 15%)。 - city: 设置为
true以使用城市票务系统(需要 city.xml),设置为false以按站点定价。
路线参数
每条线路可以有多条路线(不同的方向或变体)。
- uid: 该线路内每条线路的唯一数字标识符。
- name: 向玩家显示的路线名称/标识。
- time (可选): 参考 times.xml 中的客流变化时间曲线。
公交线路中的站点参数
路线上的每一站都定义了乘客的行为:
- uid: 引用 stops.xml 中的站点 ID。
- passengersMin/Max: 生成表示潜在乘客的随机数 (0-100)。
- coefOn: 上车与下车的阈值。低于此数值 = 上车乘客,高于此数值 = 下车乘客(通常
100表示全部上车,0表示全部下车)。 - nextStopTime: 到达下一站的行程时间(以游戏内分钟为单位)。
- nextStopPrice: 前往下一站的票价(如果设置了
city="true",则忽略)。
重要提示: 为了正常运行,每条路线的最后一站的所有值都必须设置为0(uid 除外)。
示例:包含两条路线的完整线路
<code><line uid="0" number="12" adultCoef="70" reducedRate="20" city="false">
<!-- Outbound route -->
<route uid="1" name="To Airport">
<busstop uid="1" passengersMin="10" passengersMax="25"
coefOn="100" nextStopTime="3" nextStopPrice="2"/>
<busstop uid="2" passengersMin="5" passengersMax="15"
coefOn="50" nextStopTime="5" nextStopPrice="2"/>
<busstop uid="3" passengersMin="0" passengersMax="0"
coefOn="0" nextStopTime="0" nextStopPrice="0"/>
</route>
<!-- Return route -->
<route uid="2" name="To Downtown">
<busstop uid="3" passengersMin="8" passengersMax="20"
coefOn="100" nextStopTime="5" nextStopPrice="2"/>
<busstop uid="2" passengersMin="5" passengersMax="15"
coefOn="50" nextStopTime="3" nextStopPrice="2"/>
<busstop uid="1" passengersMin="0" passengersMax="0"
coefOn="0" nextStopTime="0" nextStopPrice="0"/>
</route>
</line>
</code>city.xml - 车票系统(可选)
当某条线路设置了 city="true" 时,该文件定义了可用的车票类型。
结构
<code><city>
<ticket uid="0" name="20min" price="5" probability="35" upsell="25"/>
<ticket uid="1" name="60min" price="8" probability="55" upsell="8"/>
<ticket uid="2" name="24h" price="20" probability="5" upsell="2"/>
<ticket uid="3" name="7d" price="150" probability="1" upsell="0"/>
</city>
</code>车票参数
- uid: 每种车票都有一个唯一的数字标识符。
- name: 游戏内显示的车票名。
- price: 票价。
- probability: 乘客购买此类型车票的概率百分比。
- upsell: 乘客升级到下一级车票种类的概率。
重要规则
- 将车票按最便宜到最贵的顺序排列。
- 所有
probability值的总和必须小于100%。 - 每张票都必须有一个唯一的uid。
times.xml - 基于时间的客流量(可选,Patreon)
此功能允许乘客数量根据游戏中的时间而变化。
结构
<code><times>
<time uid="0">
<hour uid="0" percentage="70"/>
<hour uid="6" percentage="60"/>
<hour uid="8" percentage="100"/>
<hour uid="16" percentage="120"/>
<hour uid="22" percentage="60"/>
</time>
</times>
</code>参数
- time uid: 引用路线定义中的
time属性。 - hour uid: 一天中的小时数,以 24 小时制表示(0-23)。
- percentage: 客运量倍数(100% = 正常,50% = 一半,200% = 两倍)。
规则
- 每个时间段至少需要记录两小时。
- 未指定时间的,将插进根据最接近的已定义时间中。
- 百分比适用于上车和下车的乘客,并四舍五入到最接近的整数。
- 仅限 Patreon 支持者。
链接到路线
在 lines.xml 文件中,引用时间配置文件:
<code><route uid="1" name="Morning Rush" time="0">
<!-- This route uses time uid="0" from times.xml -->
</route>
</code>完整示例:小地图
以下是一个简单的两站之间单线地图的完整工作示例:
stops.xml:
<code><busstops>
<busstop>
<id>1</id>
<name>Town Center</name>
<zone></zone>
<requestStop>false</requestStop>
<location>0.0;0.0;0.0;0.0;0.0</location>
</busstop>
<busstop>
<id>2</id>
<name>Industrial Park</name>
<zone></zone>
<requestStop>false</requestStop>
<location>500.0;0.0;0.0;0.0;0.0</location>
</busstop>
</busstops>
</code>lines.xml:
<code><lines map_type="base">
<line uid="0" number="1" adultCoef="80" reducedRate="15" city="false">
<route uid="1" name="Outbound">
<busstop uid="1" passengersMin="10" passengersMax="20"
coefOn="100" nextStopTime="5" nextStopPrice="3"/>
<busstop uid="2" passengersMin="0" passengersMax="0"
coefOn="0" nextStopTime="0" nextStopPrice="0"/>
</route>
<route uid="2" name="Inbound">
<busstop uid="2" passengersMin="8" passengersMax="18"
coefOn="100" nextStopTime="5" nextStopPrice="3"/>
<busstop uid="1" passengersMin="0" passengersMax="0"
coefOn="0" nextStopTime="0" nextStopPrice="0"/>
</route>
</line>
</lines>
</code>技巧和最佳的实践
从简单的开始: 先从 2-3 个站点和一条线路开始,然后逐步扩展。
逐步测试: 添加每条线路后,请在游戏中进行测试后再继续。
客流平衡:
- 在起点站(全部上车)使用
coefOn="100" - 在中间站(上车/下车)使用
coefOn="50" - 在终点站(全部下车)使用
coefOn="0"
现实的时间: 设置 nextStopTime 时,请考虑各站点之间的实际行程时间。
城市定价与按停靠点定价: 对于换乘频繁的城市交通网络,请使用城市票;对于较长的路线,请使用按站计费的票价。
UID 管理: 随着地图的增大,请使用电子表格记录您的 UID,以避免重复。
位置坐标: 使用游戏内工具或地图编辑器确定准确的停靠点位置。
故障排除
票价错误: 如果使用城市票,请确保在该路线中设置 city="true"。
时间变化功能失效: 请确认您拥有 Patreon 会员资格,并且每个时间段至少需要记录两小时。