脚本函数
定时器脚本和触发器脚本主要是通过函数来实现期望功能的。
在Easymud
中可以被用户使用的函数分为三类:
Lua 5.4
虚拟机提供的函数。Easymud
提供给用户的内置函数。用户自定义函数。
Lua 5.4
基础函数
Lua
虚拟机提供了很多基础函数,为用户实现目标功能提供了极大的便利。
Lua 5.4
参考手册官网地址:Lua 5.4 Reference Manual - contents 。
官网可能访问速度很慢,本站提供了Lua
官网内容的副本 Lua 5.4 参考手册。
内置函数
Easymud
应用提供一些函数,可被触发器脚本和定时器脚本调用,这些函数是与游戏互动操作所必要的。
用户函数
用户自己编写的函数。通过定时器编辑器和触发器编辑器界面,用户可以编写自己的函数。当满足定时器时间条件或触发器的触发条件,应用就会执行用户脚本中的函数。
用户函数 = 用户代码 + [ 内置函数 ] + [ 基础函数 ]。
function my_func(total)
debug("执行函数my_func")
for i = 1, total do
debug(""..(math.max(i, 5)))
sleep(500)
end
end
my_func(10)
内置函数列表
应用内置的函数在逐渐增加中,下面列出已提供的内置函数。
函数名 | 功能 | 出现版本 | 作废版本 | 更新版本 |
---|---|---|---|---|
echo | 在本地窗口回显信息。 | 1.0.0 | 1.1.0 | |
cmd | 向Mud服务器发送命令或命令序列。 | 1.1.0 | 1.1.7 | |
sleep | 休眠/等待一段时间。 | 1.0.0 | ||
tm | 启用/禁用定时器组 、定时器 。 |
1.5.4 | ||
trg | 启用/禁用触发器集合 、触发器 。 |
1.5.4 | ||
set | 设置应用级变量。 | 1.1.0 | 1.1.4 | |
get | 获取应用级变量。 | 1.1.0 | ||
debug | 在本地窗口输出调试信息,带有时间戳前缀。 | 1.0.0 | 1.1.4 | |
clear_console | 清空编辑器界面的日志消息。 | 1.0.0 | ||
向Mud服务器发送消息。已作废,简化为cmd 。 |
1.0.0 | 1.1.0 | ||
启用/禁用定时器。已作废,简化为timer 。 |
1.0.0 | 1.1.0 | ||
启用/禁用定时器。已作废,优化为tm 。 |
1.1.0 | |||
启用/禁用定时器组。已作废,简化为timers 。 |
1.0.0 | 1.1.0 | ||
启用/禁用定时器组。已作废,优化为tm 。 |
1.1.0 | |||
启用/禁用触发器。已作废,简化为trigger 。 |
1.0.5 | 1.1.0 | ||
启用/禁用触发器。已作废,优化为trg 。 |
1.1.0 | |||
启用/禁用触发器集合。已作废,简化为triggers 。 |
1.0.5 | 1.1.0 | ||
启用/禁用触发器集合。已作废,优化为trg 。 |
1.1.0 |
版本说明:
出现版本,是指从某个版本开始加入的,之后的版本都有效。
作废版本,是指从某个版本开始作废的,之后的版本不再支持。
更新版本,是指某个版本之后函数的参数或功能有所调整。
内置函数详情
下面列出内置函数的详细说明:函数的形参类型,功能说明,形参说明,用法示例。
echo
echo(string|integer|number|boolean|table|function|error|userdata)
在本地窗口显示指定的字符串内容。
- 需要显示的信息,支持所有
lua
数据类型。
echo("hello world!")
echo(123.45)
cmd
cmd(string)
向服务端发送指定的命令。
string
需要发送的命令字符串。如果命令字符串以"#
"开头,则可通过";
"连接命令序列,命令序列中每个子命令若以整数n
开头则会重复发送n
次。
cmd("dazuo 100")
cmd('id here')
cmd("#n;2e;ne;nw;localmap")
注:在命令行直接以"#
"开头,即可输入命令序列。
sleep
sleep(integer)
休眠或等待一段时间,单位毫秒。
integer
休眠或等待时长,大于0的整数值。
cmd("nw")
sleep(2000)
cmd("e")
tm
tm(boolean, string [, string] )
启用或禁用定时器组
、定时器
。
boolean
true
启用,false
禁用。string
定时器组名。string
可选的,定时器项名。当未提供该参数时,对定时器组进行操作;当提供了该参数时,对组内的项目进行操作。如果是启用项目操作,则会自动启用所在的组。
-- 禁用名为“定时吃喝”的定时器组
tm(false, "定时吃喝")
-- 启用定时器组“定时吃喝”中的“喝水”项,同时自动启用该组,使得目标定时器可以运行。
tm(true, "定时吃喝", "喝水")
trg
trg(boolean, string [, string] )
启用或禁用触发器集合
、触发器
。
boolean
true
启用,false
禁用。string
触发器集合
名。string
可选的,触发器
名。当未提供该参数时,对触发器集合
进行操作;当提供了该参数时,对集合内的触发器
进行操作。如果是启用触发器
操作,则会自动启用所在的集合
。
-- 禁用集合
trg(false, "练功修炼")
-- 启用触发器
trg(true, "练功修炼", "打坐1")
set
set(string, string|integer|number|boolean|table|nil)
设置应用级变量,将会同步到应用内的所有虚拟机实例中。普通的lua
全局变量仅在当前虚拟机中可见,而应用级变量则是在应用内所有的虚拟机实例中都可见。
string
变量名。string|integer|number|boolean|table|nil
变量值。
set("sai", "say hi")
fruits = { "banana", "watermelon", "orange" }
set("fruits", fruits)
get
get(string)
获取应用级变量,目标变量由所有虚拟机共享。
string
变量名。
get("sai")
debug
debug(string|integer|number|boolean|table|function|error|userdata)
A
. 如果在定时器配置窗口,或触发器的配置窗口执行脚本试运行功能,则debug
会在日志栏输出字符串内容;
B
. 如果在后台运行的脚本服务中调用了debug
函数,则会在用户主窗口中输出字符串内容。
每次调用debug
都会先输出当前时间。
- 待显示的信息,支持所有
lua
数据类型。
a = 10
debug("变量 a = "..a)
clear_console
clear_console()
清空定时器或触发器配置界面的日志窗口内容。
clear_console()
timer
timer(string, string, boolean)
已弃用,将在2.0
版停用。请改用tm
函数。
启用或禁用定时器项。
string
定时器组名。string
定时器项名,是在第一个参数指定的组内的项名。boolean
值为true
启用,false
禁用。
timer("定时吃喝", "喝水", false)
timers
timers(string, boolean)
已弃用,将在2.0
版停用。请改用tm
函数。
启用或禁用定时器组。
string
定时器组名。
timers("定时吃喝", true)
trigger
trigger(string, string, boolean)
已弃用,将在2.0
版停用。请改用trg
函数。
启用或禁用触发器。
string
触发器集合名。string
触发器名,该触发器必须位于第一个参数指定的集合中。boolean
值为true
启用,false
禁用。
trigger("门派任务", "捡柴火", false)
triggers
triggers(string, boolean)
已弃用,将在2.0
版停用。请改用trg
函数。
启用或禁用触发器集合。当启用或禁用时,目标集合内的所有触发器都同时被启用或禁用。触发器下的表达式不受影响。
string
触发器集合名。boolean
值为true
启用,false
禁用。
triggers("练功修炼", true)