加载中...

rAthena 的 NPC 脚本语法高亮设置指引


0x00 前言

rAthena 的 NPC 脚本是一种专门为 Ragnarok Online 游戏设计的脚本语言,虽然其语法类似于 C 语言,但由于缺乏合适的 IDE 环境,许多开发者只能在纯文本文件中编写脚本,体验不佳。

本文将介绍如何在 vscode 中设置 rAthena 的 NPC 脚本语法高亮,以提升编写效率和代码可读性。

0x10 安装 vscode

Visual Studio Code (VSCode) 是由微软开发的一款免费、开源的代码编辑器。与传统的文本编辑器(如 Notepad)相比,VSCode 提供了更为强大的功能,如代码高亮、智能感知、调试支持、插件扩展等,使其成为开发者的理想工具。

安装方法很简单,访问 Visual Studio Code 官网 下载安装即可。

安装完成后,我们随便打开一个 NPC 脚本,由于还没有语法解析,因此是看不到高亮的:

0x20 安装语法高亮插件

为了高亮 NPC 脚本语法,我们需要在 vscode 中安装一个插件 vsce-rathena-language-support

0x21 在线安装

点击 vscode 左侧的插件 Extensions,会打开插件市场 MarketPlace,输入 rathena 搜索插件安装即可:

但如果你是国内网络,很可能会搜索失败:

此时需要离线安装 vsce-rathena-language-support 插件。

0x22 离线安装

由于 vsce-rathena-language-support 的开发者并未发布安装包,这里我直接编译好了:

  • 下载 rathena-language-support-1.1.2.vsix 到本地
  • 点击 vscode 左侧的插件 Extensions,会打开插件市场 MarketPlace
  • 点击插件市场右上角的 ... ,在弹出的菜单中点击 Install From VSIX...

0x30 高亮设置

安装插件后,NPC 脚本依然没有高亮。

vsce-rathena-language-support 工程的使用说明是: 需要在 NPC 脚本的文件内容开头中、添加 //===== rAthena Script//!rathena 标识。

尝试添加 //!rathena 后,确实语法高亮了(如果依然没有高亮,需要重启 vscode):

但是每个 NPC 脚本都需要添加特定的头,当脚本太多时就太麻烦了。

由于 *.txt 一般只有 NPC 脚本开发在使用,我们可以在 vscode 中批量设置 *.txt 的语法解析引擎为 rathena

  • 点击左上角的文件 File -> 首选项 Preferences -> 设置 Settings
  • 在设置搜索框中输入 Associations,定位到 Files: Associations 配置项
  • 点击 Add Item,在 key 中输入 *.txt、在 value 中输入 rathena(大小写敏感)

保存设置后,所有 *.txt 文件默认都会使用 rathena 引擎做语法解析。

此后不需要再加 //===== rAthena Script//!rathena 标识头,甚至 API 文档 script_commands.txt 的语法都成功高亮标识了:

0x40 后记:高亮插件编译

如果有同学希望自己编译 rathena-language-support-1.1.2.vsix ,可以参考本节:

0x41 安装 Node.js 和 npm

  • 访问 Node.js 官网 下载并安装
  • 安装完成后,验证版本号,确认安装成功:
node -v
npm -v

0x42 安装 VSCE 工具

VSCE 是一个用于打包和发布 vscode 扩展的工具。

通过 npm 安装 VSCE:

npm install -g @vscode/vsce

0x43 打包插件

  • 克隆 rAthena 语法高亮插件的源码库:
git clone https://github.com/rathena/vsce-rathena-language-support.git
cd vsce-rathena-language-support
  • 在项目根目录中安装依赖: npm install
  • 使用 VSCE 打包项目,生成 .vsix 文件: vsce package
  • 打包完成后,rathena-language-support-1.1.2.vsix 会生成在项目根目录


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
 上一篇
「NPC 技巧」随机打乱数组 —— 如何数组传参? 「NPC 技巧」随机打乱数组 —— 如何数组传参?
在开发 rAthena 的 NPC 脚本的时候,我们有时希望随机打乱一个数组,在其他高级语言中,这是一件很容易的事情,但在 NPC 脚本中却一波三折 ...
2024-07-02
下一篇 
Windows 一键 注册/反注册/启动/停止 mysql 脚本 Windows 一键 注册/反注册/启动/停止 mysql 脚本
Mysql 一直都有着极为严格的登录权限校验、往往初始化时必须先处理各种弯弯绕绕的无关问题,极让人抓狂 ...
2024-06-25
  目录