Skip to content

Skript脚本语言入门指南: 准备工作

本文将指引您构建一个编写和调试Skript的环境.

介绍

关于Skript

Skript(简称sk):作为一种十分接近英语这一自然语言的脚本语言,一定程度上降低了服主们发挥创意的门槛。而总还是有的:首先你要对你的英语水平很有自信——能看懂文档的范例即可;其次就是在逻辑上能够理解之——作为脚本语言,并不是能用交际英语就可以解决一切问题;也不是Siri,和它描述需求它就能为你实现(Siri也不能)。所以,要想在Sk的世界随心徜徉,首先要记住,你如何与sk交流,Skript(的解释器)才能 “听懂” (实际上所有编程语言都是这样)。

与此同时,Minecraft的各个概念(实体、区块、规则之类)还有一些计算机基础知识与名词(string字符串、integer整数之类, 不过skript应该说是弱类型语言吧? 有最基本的区分: string对应text, player是玩家类型, number默认是long但是可以直接无感地变成double, 很多类型都可以通过parse as语法进行转换. )也是必不可少的,但是由于其容易通过搜索引擎了解,故不在此赘述。

安装

首先需要一个基于Bukkit的Minecraft服务端, 并且已经初始化. 然后前往SkriptLang Github Release下载最新版Skript插件构建, 将下载好的.jar文件放置在~<server_root>/plugins/下, 然后重新启动服务端. 在将插件放置在此位置并启动服务端后, Skript将在plugins目录下创建自己的工作目录skript.

使用服务端命令/sk info 来确认Skript是否已安装, 以及版本信息和附属插件版本信息.

Skript文件

Skript脚本的文件存放在它的工作目录 的子文件夹scripts 下, 内容是纯文本. 所有Skript脚本文件它的文件扩展名是.sk, 手动在文件名的最前方添加符号-将会使其内容不被加载(与命令/sk disable <script_name>.Skript是同样的效果)

在这个文件夹下新建文本文档并修改扩展名为.sk以创建你的第一个Skript脚本文件.

搭建调试环境

为了更好地编写和调试脚本, 建议自行搭建一个独立于运营服务端的环境.

在最开始, 请先自行寻找一个地方创建文件夹, 命名最好让自己看得懂. 以后我们称呼这个文件夹为「Skript 目录」

编辑器

我们推荐使用 Visual Studio Code 来编写Skript. 但是实际上, 可以用任意一个文本文件编辑器来编辑Skript脚本. 只是根据笔者经验, VSCode是最方便的.

前往VSCode 下载页面 选择适合自己电脑的版本下载并安装. 安装完成后打开VSCode, 在左侧找到一个「四个方块」组成的图标 (有点类似 ), 鼠标悬浮后若提示「扩展(Extension)」, 则点击它.

在它的搜索框内搜索「Skript + SkriptInsight」, 选择作者为「NickAc」的项目, 点击「安装(Install)」

按需重启VSCode.

找到先前创建的Skript目录, 右键点击它, 点击“在VSCode打开” (Windows11目前貌似要先点击「显示更多选项」), 现在你的VSCode就已经将 Skript 目录作为一个项目打开了.

点击VSC窗口右上角的「上白下黑」的按钮 (切换面板, 图标类似于), 以打开下方命令行面板. 这个面板中命令行的起始点即为Skript目录.

用于调试脚本的服务端

在Skript 目录中放置一个Bukkit/Spigot/Paper/… 服务端, 然后在上文中打开的命令行面板中操作控制台, 像正常开服一样将其初始化.

初始化后, 为其安装 兼容的 Skript.

在VSC左侧的竖列图标中, 确保选中了从上往下数的第一个图标 (资源管理器), 然后选择到scripts文件夹. 使用「新建文件…」按钮(图标类似  但是右下角有个+符号) 在当前选中的目录下创建新文件.

运行服务端命令 /sk help 来查看skript帮助.

其他

可以创建一个新的脚本然后粘贴以下内容来简化执行/sk reload scripts 命令.

skript
command /skr:
		trigger:
				if sender has permission "admin":
						broadcast "脚本将在3秒内开始重载, 可能带来卡顿" # 可选, 用于提示其他玩家. 如果在专用测试环境中调试, 则可删除此行.
						wait 3 second # 配合上一条.
						make sender execute command "/sk reload scripts"
						broadcast "完成重载"
						stop

这样就可以使用新注册的命令/skr来重载所有脚本了.

使用 MIT 协议发行,喜欢我们的工作的话就给我们点一个 star ⭐ 吧!