Use ← → or P/N keys
Author
Cola'
Document Author
Language
简体中文 Deutsch English Español Français 日本語 繁體中文
Bahasa Indonesia
Bahasa Melayu
Dansk
Hrvatski
Italiano
Magyar
Nederlands
Norsk
Polski
Português
Română
Slovenčina
Suomi
Svenska
Tagalog
Tiếng Việt
Türkçe
Čeština
Ελληνικά
Български
Русский
Српски
Українська
עברית
العربية
हिन्दी
ไทย
한국어
Search Docs
Document Info
Category: Lines
Updated: Nov 4, 2025
This article might be outdated

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 及其 DLC
  • promods - 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 会员资格,并且每个时间段至少需要记录两小时。