Skip to content

Map 地图

付费模块

Map 为付费模块,需要有效授权码激活。

功能定位

世界地图系统:锚点传送、玩家自定义路径点、小地图 HUD、世界解锁。

核心特性

  • 世界地图 UI:ArcartX UI 驱动的全屏世界地图界面
  • 多世界支持:每个世界独立配置地图,可列出所有已配置的世界
  • 锚点传送:管理员定义锚点,玩家在地图上点击锚点进行传送(可配合 Vault 收费)
  • 玩家路径点:玩家可在地图上自定义标记点
  • 小地图 HUD:常驻 HUD 显示小地图,可通过命令开关
  • 追踪系统:玩家可在地图上追踪目标点,HUD 显示导航方向

依赖

类型依赖作用缺少时表现
必需ArcartX世界地图 UI、小地图 HUD、路径点和点击回包模块无法显示地图界面
可选Vault锚点传送、地图解锁等金币费用收费项不可用或需要改为免费/命令扣费
可选PlayerPoints点券费用点券收费不可用
可选MythicMobs / NeigeItems地图奖励、条件或展示物品来自对应物品库时识别只影响对应配置项
可选QuestGPS 模块将任务目标推到地图临时目标/导航地图自身可用,任务导航联动不可用

启用步骤

yaml
modules:
  map:
    enabled: true

配置

主配置(ArcartXMap.yml

yaml
debug: false

client:
  packet-id: "AXS_MAP"           # 客户端 Packet.send / 服务端 packetHandler 通信标识
  menu-ui-id: "AXS:map_menu"     # 全屏地图 UI
  hud-ui-id: "AXS:map_hud"       # 小地图 HUD
  register-ui-on-enable: true
  overwrite-ui-files: false

keybinds:
  category: "AXS Map"
  open-menu:
    enabled: true
    display-name: "打开地图"
    default-key: "M"
  toggle-hud:
    enabled: true
    display-name: "切换小地图"
    default-key: "H"

join:
  show-hud-on-join: true          # 玩家进服时自动显示小地图 HUD
  show-hud-delay-ticks: 20        # 延迟多少 tick 后显示(20 tick = 1 秒)

storage:
  mode: "sqlite"                  # sqlite 或 mysql
  sqlite:
    file: "map.db"
  mysql:
    host: "127.0.0.1"
    port: 3306
    database: "arcartxsuite"
    username: "root"
    password: ""
  pool-size: 4

货币配置

yaml
currencies:
  money:
    enabled: true
    provider: "vault"             # vault 或 playerpoints
    display-name: "金币"
    scale: 2                      # 显示小数位数
  points:
    enabled: true
    provider: "playerpoints"
    display-name: "点券"
    scale: 0

世界配置

每个世界需要在 worlds 节单独配置,对应一张地图图片资源:

yaml
worlds:
  world:
    enabled: true
    display-name: "主世界"
    texture: "Map/world.png"      # ArcartX 资源包中的图片路径
    image-width: 2048             # 地图图片像素宽度
    image-height: 2048
    pixel-offset-x: 0            # 图片在坐标系中的像素偏移
    pixel-offset-z: 0
    default-zoom: 1.6            # 全屏地图默认缩放比
    hud-zoom: 0.18               # 小地图缩放比
    hud-size: 180                # 小地图 HUD 尺寸(像素)

  world_nether:
    enabled: true
    display-name: "下界"
    texture: "Map/world_nether.png"
    image-width: 1024
    image-height: 1024
    pixel-offset-x: 0
    pixel-offset-z: 0
    default-zoom: 1.4
    hud-zoom: 0.16
    hud-size: 180
字段说明
textureArcartX 资源包中的图片路径,对应 textures/ 目录下的文件
image-width/height地图图片分辨率(像素),用于坐标 → 像素换算
pixel-offset-x/z图片中心偏移量,用于对齐游戏坐标与图片
default-zoom全屏地图默认缩放倍率
hud-zoom小地图 HUD 缩放倍率
hud-size小地图显示尺寸(像素)

默认解锁配置

yaml
default-unlocks:
  - permission: "ArcartXSuite.map.use"
    anchors:              # 持有该权限时默认可见/可用的锚点 ID 列表
      - "spawn"

锚点字段详解

锚点文件位于 data/map/anchors/*.yml,同一文件可包含多个锚点,根键即为锚点 ID:

yaml
# data/map/anchors/default.yml
spawn:
  enabled: true
  display-name: "新手村"
  world: "world"
  x: 0
  y: 80
  z: 0
  description: "所有玩家默认可见的主城锚点。"
  permission: ""                # 可见权限,留空则所有人可见
  sort-order: 0                 # 在地图 UI 中的排序
  unlock-currencies: []         # 解锁所需货币,留空则默认解锁
  teleport-currencies:          # 每次传送所需货币
    - currency: "money"
      amount: 10
  unlock-items: []              # 解锁所需物品

mine:
  enabled: true
  display-name: "矿洞入口"
  world: "world"
  x: 128
  y: 64
  z: -42
  description: "演示货币 + 物品解锁。"
  permission: ""
  sort-order: 10
  unlock-currencies:
    - currency: "money"
      amount: 200
    - currency: "points"
      amount: 5
  teleport-currencies:
    - currency: "money"
      amount: 30
  unlock-items:
    - amount: 2
      matcher:
        material-ids:
          - "ender_pearl"
字段类型说明
enabledbooleanfalse 时该锚点不加载
display-namestring在 UI 中显示的名称,支持颜色代码
worldstring所在世界名
x/y/zint传送坐标
descriptionstring锚点描述文本
permissionstring可见权限,留空则无限制
sort-orderintUI 排序(升序)
unlock-currencieslist解锁所需货币,currency 对应 currencies 节键名,amount 为数量
teleport-currencieslist每次传送消耗的货币
unlock-itemslist解锁所需物品(amount + matcher.material-ids

路径点配置

yaml
waypoints:
  enabled: true
  default-style-id: "default"   # 路径点导航样式
  id-prefix: "AXS-map-wp-"     # 路径点 ID 前缀
  auto-name-prefix: "标记点"    # 自动命名前缀
  default-max-count: 5          # 玩家默认最多可创建的路径点数
  limits:                       # 按权限设置更高上限
    - permission: "ArcartXSuite.map.admin"
      max-count: 20

命令

管理命令(权限:arcartxsuite.admin

命令说明
/axs map status查看地图模块、世界、锚点和路径点状态
/axs map reload重载地图配置和 UI
/axs map open <玩家> [世界名]为在线玩家打开地图界面,可选指定世界
/axs map list列出所有已配置的地图世界
/axs map anchors [世界名]列出全部或指定世界的锚点

玩家命令(权限:arcartxsuite.map.use,别名 /axmap

命令说明
/map/map open [世界名]打开地图界面,不指定世界时显示当前所在世界
/map hud [on|off|toggle]控制小地图 HUD 显示,默认 toggle 切换
/map cleartrack清除地图上正在追踪的目标点

UI / Packet

功能UI ID说明
全屏地图AXS:map_menu服务端推送世界数据、锚点列表、玩家路径点和当前位置;客户端点击锚点/路径点回包
小地图 HUDAXS:map_hud服务端按玩家移动/传送事件推送坐标和追踪目标;packet-id: "AXS_MAP"

地图 Packet 主要字段

字段来源说明
world玩家当前世界当前显示的世界 ID
anchors锚点配置该世界所有对玩家可见的锚点列表
waypoints数据库玩家自己创建的路径点列表
player.x/y/z玩家坐标玩家当前位置,用于地图光标定位
tracking追踪状态当前追踪目标的坐标(来自 QuestGPS 或手动标记)

基于 GPL-3.0 许可发布