一、脚本介绍
本引擎脚本是一种简单易懂的自然语言脚本系统,由4个特定关键字混合脚本命令组成,
除关键字打头的语句和命令语句,其它语句直接原样显示到客户端NPC对话框。
(注1:脚本系统不区分大小写,ABC、abc、aBc表示同一样东西)
(注2:脚本中的注释以
分号;开头,可以注释当前行,也可以注释行后面的东西)
(注3:脚本中的命令,都可以在底板中
搜索到,可以从底板中学习脚本的用法)
二、4个特定关键字 #
- #
号开头的语句,是一条服务端命令,执行一个特定的服务端功能,如: #
等等..
- ^
^号开头的语句,是一条客户端命令,执行一个特定的客户端功能,如:
^msgbox: 在客户端弹出一个文本框
^toast: 在客户端底部显示一个暂留文字
^openbag: 打开玩家包裹界面
^playsound: 播放一个声音
^useitem: 让客户端的角色使用一个指定的物品
等等.. - %
%号开头的是自定义脚本变量或传入参数,在脚本执行时,%后面的内容被替换,如:
set %val 1 #
以上语句将变量%val设为1,在%val出现的任何地方,会被替换成1
- $XX$ 或 <$XX>
用两个$号包起来的内容,是服务端变量,在脚本执行时,会替换$$包起来的内容,如:
$PLAYERNAME$ 此语句将变成前的玩家名
$SERVERTIME$ 此语句将变成当前服务器时间
三、3种语句执行流程 #
- 顺序流程
脚本的内容存在服务端的一个txt文件里,由服务端加载并执行,执行的顺序就按你写的每行命令的顺序。
如以下脚本内容:
[@main]
这是第1行
这是第2行
^msgbox:第3行弹框了
以上脚本运行结果为:
这是第1行
这是第2行
return #
(在客户端弹框显示”第3行弹框了”)
- 条件分支流程
(1) 可以使用#IF命令来判断某个条件,从而决定脚本语句的走向,如:
[@main]
IF #
checkgold >= 1000 #
THEN #
^msgbox:我的金币多于1000
ELSE #
^msgbox:我的金币不足1000
ENDIF #
return #
(2) 直接使用#goto指令跳转到指定的执行位置,如:
[@main]
第1条语句
第2条语句
goto #LABEL_跳转到这一行执行 #
第3条语句
LABEL_跳转到这一行执行 #
第4条语句
return #
以上脚本执行结果为:
第1条语句
第2条语句
第4条语句
可以看到,第3行语句被#goto命令跳过了,使用”#LABEL_”打头在脚本文件任意行定义一个标签,#goto命令就会识别
- 循环流程
通过#IF和#goto 可以实现循环执行流程,如:
[@main]
set %循环计数 1 #
LABEL_LOOP #
IF #
cmpi %循环计数 > 5 #
THEN #
return #
ENDIF #
当前循环计数:%循环计数
set %循环计数 $EVALUATE:%循环计数 + 1$ #
goto #LABEL_LOOP #
return #
执行以上脚本得到输出为:
当前循环计数:1
当前循环计数:2
当前循环计数:3
当前循环计数:4
当前循环计数:5
掌握以上4个关键符和3种语句流程,再通过查询命令手册,就可以做脚本了。
脚本命令手册按功能分为几个大块,可以根据想要的功能快速查询。
发表回复
要发表评论,您必须先登录。