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

BOO 可视化编辑器

boo-diy

|
33 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.2

传奇引擎 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 图片原图显示 + NNN/和/NNN/颜色代码渲染)
    • 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 触发重载

可配置重载项

引擎切换时自动切换默认配置:

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

NGOM(922G) 重载NPC用ID=16(QFunction),翎风用ID=20(所有NPC)

手动操作

命令 作用
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_GOM NGOM(922G) 启用的重载项 ID 列表
boo.reloadItems_GEE 翎风启用的重载项 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