Skip to content

主配置 config.yml

plugins/GTSkillView/config.yml 控制存储、UI 路由、HUD、MP、技能点、释放方式、客户端按键、目标选择和性能参数。

修改后执行:

text
/gtsv reload

涉及客户端 UI 插件加载、存储后端、外部技能插件加载顺序时,完整重启服务器。

debug 调试

yaml
debug: false

debug 用于开发和排错。正式环境保持 false

排查客户端按键、外部技能调用、资源同步时可以临时开启。测试结束后关闭,避免控制台输出过多。

storage 存储

yaml
storage:
  backend: auto
  autosave-seconds: 60
  save-on-quit: true
字段作用
backend存储后端,auto 优先走 GTCore storage
autosave-seconds自动保存间隔,单位秒
save-on-quit玩家退出时是否保存

auto 会优先使用 GTCore 存储能力,失败时使用本地 YAML。
后续 GTCore 补齐统一存储能力后,GTSkillView 会继续向统一入口收敛。

ui 界面入口

yaml
ui:
  default: auto
  prefer-client-ui: true
  fallback-to-vanilla: true
  open-hud-on-join: true
  join-delay-ticks: 40
字段作用
default默认 UI,auto 按 providers.yml 顺序选择
prefer-client-ui优先使用客户端 UI
fallback-to-vanilla客户端 UI 打不开时回退原版 GUI
open-hud-on-join玩家进服后自动打开 HUD
join-delay-ticks进服后延迟打开 HUD 的 tick 数

只使用原版 GUI:

yaml
ui:
  default: vanilla
  prefer-client-ui: false
  fallback-to-vanilla: true
  open-hud-on-join: false

优先使用客户端 UI:

yaml
ui:
  default: auto
  prefer-client-ui: true
  fallback-to-vanilla: true

ui.hud HUD 布局

yaml
ui:
  hud:
    layout: vertical-left
    left: 18
    center-y-offset: 0
    bottom: 104
    slot-size: 46
    slot-gap: 7
    show-mana: true
    show-slots: true
字段作用
layoutHUD 布局标识,默认左侧竖排
left距左侧距离
center-y-offset相对屏幕居中的 Y 偏移
bottom底部布局使用的底边距
slot-size技能槽尺寸
slot-gap技能槽间距
show-mana是否显示 MP
show-slots是否显示技能槽

当前默认 HUD 是左侧居中竖排,MP 条作为背景,技能槽叠在 MP 条上。客户端 UI 模板会读取这些变量,但不同 UI 引擎对坐标、缩放和交互的支持不同。

mana MP 系统

yaml
mana:
  enabled: true
  max-formula: "100 + {level} * 2"
  initial-ratio: 1.0
  regen-amount: "3 + {level} * 0.05"
  regen-interval-ticks: 20
  regen-while-casting: true
字段作用
enabled是否启用 MP
max-formula最大 MP 公式
initial-ratio首次初始化 MP 比例
regen-amount每次恢复量
regen-interval-ticks恢复间隔,20 tick = 1 秒
regen-while-casting释放中是否允许恢复

常用变量:

text
{level} 玩家等级或插件识别到的等级

示例:固定 120 MP:

yaml
mana:
  max-formula: "120"
  regen-amount: "4"

示例:等级越高 MP 越多:

yaml
mana:
  max-formula: "100 + {level} * 5"
  regen-amount: "2 + {level} * 0.1"

mana.actionbar 动作栏

yaml
mana:
  actionbar:
    enabled: false
    interval-ticks: 20
    format: "&3MP &b{mana}&7/&b{max_mana} &8| &6技能点 &e{points}"
字段作用
enabled是否用动作栏显示 MP
interval-ticks刷新间隔
format显示文本

可用变量:

text
{mana}
{max_mana}
{points}

使用客户端 HUD 时一般关闭动作栏,避免 HUD 和聊天/动作栏重复显示。

points 技能点

yaml
points:
  default: 0
  level-up-formula: "1"
  refund-on-reset: true
  reset-cost:
    money: 0
    items: []
  reset-actions:
    - "[message]&a技能点已重置。"
字段作用
default新玩家默认技能点
level-up-formula升级或外部等级变化时使用的技能点公式
refund-on-reset重置时是否返还技能点
reset-cost.money重置金币消耗
reset-cost.items重置物品消耗
reset-actions重置成功后执行的动作

重置收费:

yaml
points:
  reset-cost:
    money: 5000
    items:
      - "vanilla:diamond:3"

items 的物品写法后续会继续向 GTCore 统一物品入口收敛。当前配置保留本地兼容写法。

release 全局释放

yaml
release:
  global-cooldown-ms: 180
  cancel-vanilla-interact: false
字段作用
global-cooldown-ms全局释放间隔,毫秒
cancel-vanilla-interact原版交互释放后是否取消原事件

global-cooldown-ms 用于防止按键连点和客户端重复包。数值太低会增加外部技能调用频率,数值太高会让按键手感变钝。

常用范围:

text
120~250 ms

release.vanilla 原版鼠标组合

yaml
release:
  vanilla:
    enabled: true
    combo-window-ms: 420
    require-sneak-for-system: true
    combos:
      LEFT: 1
      RIGHT: 2
      LEFT_RIGHT: 3
      RIGHT_LEFT: 4
      SHIFT_RIGHT: 5
字段作用
enabled是否启用原版鼠标释放
combo-window-ms左右键组合判定窗口
require-sneak-for-system是否要求潜行才触发系统释放
combos鼠标组合到技能槽的映射

默认要求潜行触发,避免玩家正常左键攻击时误放技能。

如果服务器只使用原版 GUI,不使用客户端按键,可以保留:

yaml
require-sneak-for-system: true

如果要完全关闭原版鼠标释放:

yaml
release:
  vanilla:
    enabled: false

release.client 客户端释放

yaml
release:
  client:
    enabled: true
    action-channel: "gtskillview:action"
    allow-providers:
      - paiui
      - ax
      - kongcore
      - dragoncore
      - client
      - plugin
字段作用
enabled是否允许客户端 UI 按键释放
action-channel通用插件消息频道
allow-providers允许的客户端来源

客户端 UI 不直接写死技能槽。它们统一回传逻辑键,例如:

text
key SLOT_1

服务端再通过 release.client.bindings 决定这个逻辑键对应什么动作。

release.client.bindings 按键绑定

yaml
release:
  client:
    bindings:
      SLOT_1:
        display: "技能槽 1"
        slot: 1
        keys:
          global: ["SLOT_1"]
          paiui: ["R"]
          ax: ["R"]
          kongcore: ["R"]
          dragoncore: ["R"]
字段作用
SLOT_1绑定 ID,客户端回传时使用
display显示名
slot对应技能槽
keys.global全局逻辑别名
keys.paiuiPaiUI 物理按键
keys.axArcartX 物理按键
keys.kongcoreKongCore 物理按键
keys.dragoncoreDragonCore 物理按键

默认键位:

yaml
SLOT_1: R
SLOT_2: T
SLOT_3: Z
SLOT_4: X
SLOT_5: C

改成 Q/E/R/F/V

yaml
release:
  client:
    bindings:
      SLOT_1:
        slot: 1
        keys:
          global: ["SLOT_1"]
          paiui: ["Q"]
          ax: ["Q"]
          kongcore: ["Q"]
          dragoncore: ["Q"]
      SLOT_2:
        slot: 2
        keys:
          global: ["SLOT_2"]
          paiui: ["E"]
          ax: ["E"]
          kongcore: ["E"]
          dragoncore: ["E"]

每个 UI 引擎可以单独写不同按键。不要在 UI 模板里写死槽位和物理键,后续维护统一改这里。

targeting 目标选择

yaml
targeting:
  max-distance: 28
  cone: 0.72
  include-self: true
字段作用
max-distance搜索目标最大距离
cone前方扇形范围
include-self是否允许自身作为目标

这部分用于 GTSkillView 自身需要找目标的动作、条件和后续扩展。MythicMobs 技能本体的目标选择仍以 MythicMobs 技能配置为准。

performance 性能

yaml
performance:
  hud-sync-interval-ticks: 10
  gui-refresh-min-ms: 150
  cast-log-sample-rate: 0.0
  cache-player-snapshots: true
字段作用
hud-sync-interval-ticksHUD 数据同步间隔
gui-refresh-min-msGUI 最小刷新间隔
cast-log-sample-rate释放日志采样率
cache-player-snapshots是否缓存玩家快照

大型服推荐:

yaml
performance:
  hud-sync-interval-ticks: 10
  gui-refresh-min-ms: 150
  cast-log-sample-rate: 0.0
  cache-player-snapshots: true

HUD 刷新不要改成每 tick。客户端 UI、动态物品、冷却遮罩都不需要每帧请求服务端数据。

修改后验证

改主配置后按这个顺序测:

  1. /gtsv reload
  2. /gtsv open
  3. /gtsv hud
  4. /gtsv key SLOT_1 client
  5. 客户端 UI 按一次 1 号槽按键。
  6. 观察控制台是否有重复触发或未知动作。
  7. 观察 HUD 是否按照 hud-sync-interval-ticks 刷新。