Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>BOO 可视化编辑器New to Visual Studio Code? Get it now.
BOO 可视化编辑器

BOO 可视化编辑器

boo-diy

|
23 installs
| (0) | Free
传奇引擎BOO脚本全功能开发工具 — 拖拽式可视化NPC界面设计、智能语法补全与诊断、M2Server后台自动重载、数据库/地图内置查看器、52项功能一站式脚本开发
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

BOO 可视化编辑器 v2.3.1

传奇引擎 BOO 脚本全功能开发工具 — 拖拽式可视化 NPC 界面设计 + 智能语法补全与实时诊断 + M2Server 后台自动重载 + 数据库/地图内置查看器

VSCode 引擎


目录

  • 活动栏与视图
  • 可视化编辑器
  • 语言智能服务
  • 代码工具
  • 数据库查看器
  • 地图查看器
  • 变量管理
  • M2 自动重载
  • 配置表格装饰
  • 参考速查手册
  • 配置项说明
  • 快捷键
  • 常见问题

活动栏与视图

扩展在 VS Code 左侧活动栏注册 4 个视图容器:

图标 名称 内容
UI BOO 可视化编辑器 使用教程页 + 打开编辑器入口
变 变量列表 树形展示全工作区已用变量,按类型分组
⚙ BOO脚本助手 9 个快捷工具入口 + 键盘快捷键速查 + 功能说明
库 数据库 物品详情侧边栏(点击数据库 Name 列显示)

可视化编辑器

核心能力

拖拽式 NPC 对话框设计器(media/editor.html,~4900 行单页应用),支持:

  • 10 种设计元素:IMG图片 文字 特效动画(PlayImg) 三态按钮 倒计时 文本框(@@InPutString) 数字框(@@InPutInteger) 关闭按钮 装备框 进度条(双图+偏移)
  • 画布操作:拖拽移动、边角缩放、滚轮缩放(25%-400%)、右键平移、方向键微调、Ctrl+C/V 复制粘贴
  • 素材管理:双模式(普通PNG文件夹 / PAK分包素材),最多20条历史记录,自动恢复上次
  • 快捷导入:关闭按钮/装备框/进度条 三个独立快捷导入槽,支持PAK和普通图片
  • 默认素材库:内置 默认素材/翎风引擎/ 预置素材,自动匹配当前引擎
  • 双引擎:编辑器内切换 NGOM(922G) / 翎风,代码生成自动适配
  • 代码生成:自动从画布元素生成BOO脚本,进度条支持B/P/X2/Y2参数

NPC 脚本联动

右键 .txt 文件 → 联动当前NPC脚本到可视化编辑器:

  • 画布修改自动回写脚本(300ms 延迟)
  • 脚本编辑自动还原画布布局(800ms 延迟)
  • 支持断开联动 boo.unlinkEditor

引擎自动识别

启动时检测工作区进程:

  • GameCenter.exe + Mir.dat → 翎风引擎
  • GameOfMir引擎控制器.exe 或 无 Mir.dat → NGOM(922G)

PAK 素材分包

读取 Mir200\Envir\EffectImageList.txt,按 WIL 序号匹配 PAK 子文件夹,标签页切换不同分包素材。


语言智能服务

所有语言功能注册在 src/assistant.ts,对 gomscript 和 plaintext 语言生效。

代码补全

上下文感知,300+ 命令 + 变量 + 标签 + 引擎函数全覆盖:

触发方式 内容 说明
#IF 块内 检测命令 (142条) CHECKLEVELEX, CHECKGAMEGOLD 等
#ACT 块内 执行命令 (275条) GIVE, TAKE, SENDMSG 等
<$ 系统变量 含作用域和说明
@ 或 /@ 当前文件标签 含 @main, @exit
#SAY 块 对话框模板 <&img>, <text/@label>, <&PlayImg> 等 9 种
任意位置 引擎函数 自动加载 functions.json(GOM/GEE)
MapInfo.txt 地图参数 (97条) CHECKQUEST, EXPRATE, SAFE 等
任意位置 代码块模板 #IF/#ACT/#CALL/#INCLUDE/[@main] 等

补全大小写策略可通过 boo.completionCase 配置(lowercase/uppercase/capitalize)。

悬停文档 (Hover)

悬停目标 显示内容
检测/执行命令 Markdown 语法、参数说明、示例
系统变量 名称、作用域、说明
自定义变量 (N$/S$) 赋值位置追踪(MOV/INC/DEC/CALCVAR 等,最多5处)
引擎函数 函数详情和参数
MapInfo 参数 参数说明

定义跳转 (Ctrl+Click / F12)

引用类型 跳转目标
GOTO @标签 同文件 [@标签] 定义
<text/@标签> 同文件 [@标签] 定义
/@@InPutStringXX 同文件 [@InPutStringXX]
/@纯数字 (如 /@105) QFunction-0.txt 的 [@dlgbuttonclick105]
#CALL [路径] @标签 跨文件 [@标签](自动解析路径)
..\QuestDiary\xxx.txt 路径文件(GBK编码读取)
MerChant.txt 脚本路径列 Market_Def\目录\文件名-地图名.txt

引用查找 (Shift+F12)

在 [@标签] 或变量上查找所有引用位置(GOTO @、/@@ 输入框引用等)。

实时诊断

保存时 500ms 防抖自动检查:

检查项 级别
[@ 标签未闭合 Error
引用未定义标签 Warning
标签重复定义 Info
#IF 块缺少 #ACT/#SAY Warning
#CALL 文件不存在 Info
MerChant.txt NPC 脚本不存在 Warning
/@纯数字 引用(翎风dlgbuttonclick) 自动跳过,不报错

提供 Quick Fix 代码操作:一键创建未定义标签、补全 #ACT 执行块。

全工作区代码审查 (boo.diagnoseAll)

扫描所有 .txt 文件(排除 node_modules),进度条显示,汇总报告问题数。自动清理已删除文件的诊断。

语义着色

Legend: keyword + 修饰符 (cmd=金色, flow=橙色, label=红色, path=橙色), variable=绿色。

覆盖:[@标签] [~标签] /@引用 <$变量> N$/S$ 数字变量 路径 #CALL #INCLUDE 引擎命令。

其他语言特性

功能 说明 配置
代码折叠 #IF 块、[@标签] 区域、;region/;endregion boo.enableFolding
CodeLens 标签引用计数 + 行备注 boo.enableCodeLens
文档大纲 [@标签] 和 [~标签] 符号导航 -
fcolor 颜色方块 颜色值前显示 ■ 实际颜色(256色调色板) boo.enableFColor
自动语言切换 打开 .txt 自动识别脚本/配置文件特征,切到 gomscript -
TextMate 语法 syntaxes/gom.tmLanguage.json(15种Token类型) -
代码片段 snippets/gom-snippets.code-snippets(中文前缀→英文命令) -

代码工具

脚本编辑

命令 触发 说明
格式化脚本 命令面板 规范化缩进、[@标签]前加空行、合并连续空行
批量数值编辑 Alt+X 选中数字统一加减乘除,支持Alt多光标多选区
大小写智能转换 Alt+Shift+U 选中文本大小写互转(自动检测当前状态)
英文转大写 命令面板 选中英文强制转大写
快速颜色插入 Ctrl+F1 256色调色板面板,点击插入颜色编号

辅助功能

命令 说明
查找未使用标签 列出未被 /@ 或 GOTO @ 引用的 [@标签]
插入脚本模板 6 种模板:NPC对话框、条件检测、物品兑换、升级奖励、跨文件调用、变量操作
脚本统计 当前文件标签数、#IF/#ACT/#SAY/#CALL 块数、变量引用数
编码检测 GBK/UTF-8/UTF-16 BOM 识别,中文占比报告
ANIS 特殊符号 200+ Unicode 符号面板,9 大分类,点击复制+插入光标
引擎切换 NGOM(922G) ↔ 翎风 一键切换,刷新语义着色

数据库查看器

Ctrl+Shift+P → BOO: 数据库查看器 (物品/怪物/技能)

  • 自动扫描 MUD2\DB\ 目录,支持 SQLite (.DB) 和 Access (.MDB) 双格式
  • 标签页切换:StdItems(物品) / Monster(怪物) / Magic(技能)
  • 搜索过滤、列排序、Name 列冻结
  • 点击物品 Name 列 → 侧边栏显示详情:
    • ItemDescTopList.txt 顶部备注 + ItemDescList.txt 备注(支持 PAK 图片解析 + 颜色代码渲染)
    • 50+ 字段中英文映射(DC→攻击min、element1-26→元素属性等),大小写不敏感
    • 属性和图片可编辑保存
  • 数据库缓存补全:40+ 命令自动联动物品/怪物/技能名称补全

地图查看器

Ctrl+Shift+P → BOO: 地图查看器 (.map文件)

  • 左侧列出 Mir200\Map\ 所有 .map 文件
  • Canvas 渲染:绿色=可通行,黑色=阻挡
  • 滚轮缩放、拖拽平移、坐标悬停显示

变量管理

变量列表视图

左侧活动栏 变 图标,树形展示全工作区已用变量:

分类 变量类型
N$ 自定义数字变量
S$ 自定义字符变量
P 个人临时数字 (0-99)
D 个人永久数字 (0-99)
M/N 个人数字
S/I/G 全局数字
A 全局字符
U 全局长数字
T 全局文本
J 全局整数

显示变量数量和所在文件,点击跳转定义行。刷新策略:编辑器切换即时 + 文档变更 2 秒防抖。

变量统计 (boo.analyzeVariables)

全工作区 11 类变量分类统计 Webview 报告。


M2 自动重载

⚠️ 以管理员身份运行 VS Code

保存 .txt/.ini 文件时自动重载 M2Server。

工作原理

后台调用 M2Reloader.exe(.NET 7 Win32 应用):

  1. 优先查找独立 m2server.exe 进程窗口
  2. 备选嵌入 GameCenter.exe 子窗口
  3. 通过 Win32 API 枚举菜单结构,发送 WM_COMMAND 触发重载

可配置重载项(18项)

ID 功能 ID 功能
4 物品数据库 16 QFunction 功能脚本
5 技能数据库 17 QMission 任务脚本
6 怪物数据库 18 QChatbox 聊天框脚本
7 怪物说话 19 Robot 机器人脚本
8 怪物大血条 20 所有NPC(默认开启)
9 宝箱 22 地图事件触发
10 数据列表 25 怪物爆率
12 参数设置 13 物品掉落规则
15 QManage 11 地图安全区

手动操作

命令 作用
BOO: M2重载 手动触发重载
BOO: 扫描M2Server菜单 枚举 M2Server 全部菜单项及 ID

配置表格装饰

对 MerChant.txt 和 MonGen.txt 提供表格化显示:

  • 列间竖线 │:自动在空格/Tab分隔的列之间插入灰色分隔符
  • 冻结表头:文件首行上方显示列名说明(橙色加粗+深色背景)
文件 表头
MerChant.txt 脚本路径 │ 地图名 │ X │ Y │ NPC显示名 │ 0 │ 外观编号 │ 0 │ 0 │ 0
MonGen.txt 地图名 │ X │ Y │ 怪物名 │ 范围 │ 数量 │ 间隔 │ 0 │ 颜色

注释行(;开头)和空行不参与装饰。


参考速查手册

命令 内容
BOO: MapInfo 地图参数参考 97 个地图参数及详细说明
BOO: 显示颜色代码表 GOM 引擎 256 色调色板(8级RGB分解)
BOO: 显示装备位置代码表 29 个装备位 (0-28) 及对应 <$VAR>
BOO: 显示StdMode代码表 52 种 StdMode 物品类型说明

配置项说明

配置项 类型 默认值 说明
boo.engine enum GOM 引擎类型:GOM=NGOM(922G) / GEE=翎风
boo.completionCase enum uppercase 命令补全大小写
boo.enableCompletion boolean true 启用代码补全
boo.enableDiagnostics boolean true 启用实时诊断
boo.diagnosticSeverity enum normal strict / normal / relaxed
boo.enableCodeLens boolean true 标签引用计数
boo.enableFolding boolean true 代码块折叠
boo.enableFColor boolean true fcolor 颜色方块

工作区状态(workspaceState 持久化)

Key 说明
boo.autoReload M2 自动重载开关
boo.reloadItems 启用的重载项 ID 列表
boo.folderHistory 最近 20 个素材文件夹
boo.quickImports 快捷导入图片 (closeBtn/equipFrame/progressBar)
boo.lineNotes 行备注(按文件URI索引)
boo.varDescs 变量备注描述

快捷键

快捷键 命令 条件
Ctrl+F1 快速插入颜色代码 gomscript 编辑器中
Alt+Shift+U 大小写智能转换 有选中文本
Alt+X 批量数值编辑 有选中文本(支持多光标)
F12 / Ctrl+Click 定义跳转 gomscript/plaintext
Shift+F12 引用查找 gomscript/plaintext
Ctrl+/ 行注释切换 (;) gomscript 语言模式

数据文件

文件 内容
data/commands.json 417 条命令(142 检测 + 275 执行)
data/variables.json 系统变量及作用域
data/functions.json GOM(NGOM) 引擎函数
data/functions-gee.json 翎风引擎函数
data/const.json 常量定义
data/md-export/ Markdown 导出文档

项目架构

src/
├── extension.ts          # 入口:注册视图、命令、消息处理
├── assistant.ts          # 语言服务:补全/悬停/跳转/诊断/语义/命令
├── reload.ts             # M2 自动重载
├── types.ts              # 类型定义
├── data/loader.ts        # JSON 数据加载
├── providers/
│   ├── decorator.ts      # fcolor颜色方块 + 表格列分隔装饰
│   ├── folding.ts        # 代码折叠
│   ├── symbol.ts         # 文档大纲
│   └── codelens.ts       # 标签引用计数 + 行备注
└── utils/
    ├── regex.ts          # 正则工具
    ├── path.ts           # 脚本路径解析
    ├── text.ts           # GBK 文件读取
    ├── pak.ts            # PAK 素材分包
    ├── engine-detect.ts  # 引擎自动识别
    ├── db-cache.ts       # 数据库缓存
    └── sidebar-bridge.ts # 侧边栏通信桥接

media/
├── editor.html           # 可视化编辑器 (~4900行)
├── database-viewer.html  # 数据库查看器
├── map-viewer.html       # 地图查看器
├── sidebar-detail.html   # 物品详情侧边栏
└── anis-symbols.html     # 特殊符号面板

tools/
├── M2Reloader/           # .NET 7 M2重载工具
└── WindowDiag/           # .NET 7 窗口诊断工具

常见问题

Q: M2 重载无效? A: 以管理员身份运行 VS Code。先用"扫描M2Server菜单"确认能检测到窗口。

Q: .txt 文件没有语法高亮和 Ctrl+/ 注释? A: 检查右下角语言模式是否为"GOM脚本"。若非,确保文件在 Mir200 路径下或包含脚本关键字(#IF、[@ 等),扩展会自动切换。

Q: MerChant.txt 跳转/诊断报文件不存在? A: 确保 Mir200\Envir\Market_Def\ 下存在对应文件,命名规则为 脚本名-地图名.txt。支持多层嵌套目录(如 1大陆\主城\00充值使者)。

Q: 数据库打不开? A: 确保工作区根目录下有 MUD2\DB\ 且包含 .db 或 .mdb 文件。

Q: PAK 素材不显示? A: 确保 Mir200\Envir\EffectImageList.txt 存在且格式正确,PAK 文件夹命名匹配 will 序号。


技术 QQ: 1167746

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft