LordStarPL 命令与函数参考手册

文档提取自 LordStarPL-230514 like@hj 2023-11-06

目录


函数列表

%a2u()

%ansitoutf8()函数的简写。

%abs()

返回绝对值。
参数一:(Int)数字

%addbuff(,)

使用参数一的文字来绘制一个新的Buff图标。如果已经有一个同样文字的图标,则刷新重绘它。返回值为该图标的ID。
参数一:(String)显示在新图标中的文字
参数二:▽(String)指定字体

【标记 ▽ 的参数表示可缺省的可选参数】

%additem(,,)

在集合型字符串中增加一个子项,处理结果作为返回值。当参数三不为空时,按照参数三指定的位置增加子项。
参数一:(String)要增加的子项
参数二:(String)集合型字符串
参数三:▽(Int)在指定的位置新增子项

%alias(,)

返回指定窗口的某个别名所指代的指令。不带参数二时,默认获取当前窗口的别名。
参数一:(String)指定的别名
参数二:▽(String)指定游戏窗口的名称标签

%aliaskeys(,)

以集合型变量方式,返回指定窗口的某个别名所包含的嵌套表元素列表。不带参数二时,默认获取当前窗口的别名。
参数一:(String)指定的别名
参数二:▽(String)指定游戏窗口的名称标签

%ansitoutf8()

把一个Ansi编码的字符串转换为UTF-8编码。
参数一:(String)Ansi编码的字符串

%arblist()

把字符串中的中文数字转换为阿拉伯数字。中文数字可以是不包含百、千、万分位的简化描述,比如:二四六七,同时兼容 %arbnum() 的数字格式。最大不能超过9223372036854775807。
参数一:(String)中文数字字符串

%arbnum()

把字符串中的中文数字转换为阿拉伯数字。中文数字应当是包含百、千、万分位的标准描述,比如:一亿零二十三万四千零六十七。最大不能超过9223372036854775807。
参数一:(String)中文数字字符串

%ascii()

返回一个字符或字符串的ASCII码。如果是字符串时,依次将各字符的ASCII码排列为集合型变量。
参数一:(String)字符串

%bar(,,,,,,,)

用模拟服务器MXP代码的方式,自定义画一个血条栏图形。函数执行结果为一串MXP代码,用在小窗和#echo/#echop时可被解析成为图形。图形的底层为背景色,可以叠加任意层的不同颜色。开启文字渲染时,图形具有更漂亮的3D效果。
参数一:(Int)边框类型(目前仅能为1,待扩展)
参数二:(Int)边框宽度(1-4)
参数三:(Int)图形宽度,相当于显示对应数量的空格所占用的宽度
参数四:▽(String)第一层颜色代码
参数五:▽(Int)第一层所占宽度的百分比
参数六:▽(String)第二层颜色代码
参数七:▽(Int)第二层所占宽度的百分比
参数八:类推

%begins(,)

检查参数一字符串是否以参数二字符串开头,是则返回1,否则返回0。
示例:参数一:abcdef,参数二:abc,返回值为1。
参数一:(String)字符串
参数二:(String)字符串

%capitalize(,)

将字符串中指定位置上的字母改为大写,作为返回值。参数二表示该字母在字符串中的位置。无参数二时,默认将首字母改为大写。参数二为0时,表示将最后一个字母改为大写。
参数一:(String)指定字符串
参数二:▽(Int)要改为大写的字母位置,默认值为1

%case(,,,)

对参数一进行数值计算,按照计算结果返回后续参数的值。为1返回参数二、为2返回参数三,以此类推。如果计算结果≤0或大于后续参数的个数,则返回空字符。
参数一:(Int)数值
参数二:(String)返回值一
参数三:(String)返回值二
参数四:类推

%char()

对参数进行数值计算,返回对应ASCII码的字符。
参数一:(Int)数值

%chnnum()

把阿拉伯数字转换为中文数字。最大不能超过9223372036854775807。
参数一:(Int)数值

%concat(,,)

返回所有参数字符串的串联值。
参数一:(String)字符串一
参数二:(String)字符串二
参数三:类推

%control(,,)

用于获取各种环境设置的值。支持的参数和返回值详见说明书。
参数一:(String)主键参数
参数二:(String)附属参数
参数三:▽(String/Int)扩展参数

%copy(,,)

从参数一中复制出指定位置和长度的字符,不进行任何中文字符判断,有可能截取到半个中文字。如需进行中文字符判断,应当使用ncopy或xcopy函数。
参数一:(String)源字符串
参数二:(Int)复制起始位置
参数三:(Int)复制长度

%counteract()

对集合型字符串中包含的行走路径进行正反方向抵消,返回抵消清理之后的路径。
示例:s=w|w|e,返回值为w;s=e|s|w|s|n|e,返回值为e|s
参数一:(String)包含方向的集合型字符串

%delete(,,)

从参数一中删除指定位置和长度的字符。没有进行额外的中文字符判断,所以有可能导致中文字被截断。
参数一:(String)源字符串
参数二:(Int)删除起始位置
参数三:(Int)删除长度

%delitem(,)

在集合型字符串中查找第一个指定值的子项,删除该值之后,剩下的部分作为返回值。
参数一:(String)查找并删除的指定值
参数二:(String)集合型字符串

%delnitem(,)

在集合型字符串中删除指定位置上的子项,剩下的部分作为返回值。
参数一:(Int)指定删除位置
参数二:(String)集合型字符串

%delxitem(,)

在集合型字符串中查找所有等于指定值的子项,删除该值之后,剩下的部分作为返回值。
参数一:(String)查找并删除的指定值
参数二:(String)集合型字符串

%diffcolor(,)

根据指定的起始行和总行数,对多行文字按照字体颜色的不同进行排类,把排类结果依据其字数从少到多的顺序排列,以集合型的方式作为返回值。无参数时表示对最后一行或触发行(在触发器中使用时)进行排类。
参数一:▽(Int)起始行位置,1表示最后一行,2表示倒数第2行,以此类推
参数二:▽(Int)排类总行数,大于0表示往下计数,小于0表示往上计数

%different(,)

依次比较两个字符串中的字符,返回两者之间不相同的子串。如果两个字符串的长度不一样,较长的那个将被截断成同样的长度之后才进行比较。
参数一:(String)对比字符串
参数二:(String)对比字符串

%diffpos(,)

依次比较两个字符串中的字符,返回两者之间不相同子串出现的位置。如果两个字符串的长度不一样,较长的那个将被截断成同样的长度之后才进行比较。
参数一:(String)对比字符串
参数二:(String)对比字符串

%dirfiles()

以集合型变量的方式返回指定目录下的所有文件名。可以用多个参数指定多个目录,返回各目录下的所有文件名。无参数时返回程序所在目录下的所有文件名。
参数一:▽(String)指定目录

%div(,)

获取参数一整除参数二的值。
参数一:(Int)数值
参数二:(Int)数值

%dups()

对集合型字符串的子项进行检查,删除所有重复的子项,返回清理之后的结果。
参数一:(String)集合型字符串

%encodefile()

对指定的文件进行Base64编码,返回值为编码结果。
参数一:(String)文件名

%ends(,)

检查参数一字符串是否以参数二字符串结尾,是则返回1,否则返回0。
参数一:(String)字符串
参数二:(String)字符串

%equal(,)

比较两个字符串和是否相同,相同返回1,不同返回0。
参数一:(String)字符串
参数二:(String)字符串

%eval()

对参数进行数值运算。
参数一:(String)运算式

%expdir()

把简写的行走方向扩展为完整的拼写,或者把完整的拼写缩写为简写。
示例:e返回east;s返回south,east返回e;south返回s
参数一:(String)方向简写
示例
%expdir(e) 返回east。
%expdir(east) 返回e。

%file()

检查是否已经打开一份ID为参数一的文件可供读写。存在返回1,不存在返回0。
参数一:(String)文件ID

%float()

对参数进行浮点运算。
参数一:(String)浮点运算式

%fullstr(,,,)

对源字符串进行填充,使之达到要求的长度。默认为使用空格填充,可以用参数三指定填充字符。默认在源字符串的左侧填充,可以用任意非零值的参数四,表示在源字符串的右侧填充。
参数一:(String)源字符串
参数二:(Int)字符串长度
参数三:▽(String)填充字符串,缺省时默认为空格
参数四:▽(Int)非零值表示在源字符串的右侧填充,缺省时默认为左侧填充
示例
%fullstr("abc",10) 在字符串abc的左边填充了7个空格
%fullstr("abc",10," ",1) 在字符串abc的右边填充了7个空格

%fuzzy(,,)

对两个字符串进行模糊匹配,以确定两者是否可以视为相等。匹配方法是以参数一的所有文字(含中英文)依次在参数二中进行包含比对,如果比对结果超过参数三的百分值,则认为匹配成功,返回值1,否则返回0。参数三的值只能介于1~99之间,数值越大越难以匹配成功。也可缺省,默认值为75,即超过75%的文字匹配成功。
参数一:(String)字符串
参数二:(String)字符串
参数三:▽(Int)匹配百分比

%gamebytes()

返回当前游戏窗口迄今为止接收到服务器发来数据的总字节数。

%gamescount()

返回当前程序开启的游戏窗口总数。

%getglobal()

获取指定全局变量的值。全局变量是当前程序所有窗口都可以使用的公共变量。不带参数时,以客户端信息方式列出当前现有的所有全局变量。
参数一:▽(String)指定的全局变量名

%grep(,,,)

在已打开的指定ID的文件中进行从头到尾的全量搜索,查找同时包含各参数字符串的行,搜索结果存为集合型字符串作为返回值。
参数一:(String)打开文件ID
参数二:(String)查找字符串一
参数三:(String)查找字符串二
参数四:类推

%if(,,)

对参数一进行逻辑判断,为真则返回参数二的值,为假则返回参数三的值(如果没有参数三则返回空字符)。
参数一:(Bool)逻辑判断
参数二:(String)为真的返回值
参数三:▽(String)为假的返回值

%include(,)

将集合型字符串中各个子项依次与参数一进行比较,如果参数一中包含了所有子项字符(即所有子项都是参数一的一部分),则返回1,否则返回0。
参数一:(String)字符串
参数二:(String)集合型字符串

%insert(,,)

在参数一指定的位置上插入参数三指定的字符,返回最后结果。
参数一:(String)源字符串
参数二:(Int)插入位置
参数三:(String)插入的字符串

%int()

对参数进行整数运算,也可用于浮点数值的取整。
参数一:(String)运算式

%isconnect()

判断当前游戏是否已经连上服务器,是则返回1,否则返回0。

%isint()

判定参数是否为有效数字,是则返回1,否则返回0。
参数一:(String)数值

%ismember(,)

查找集合型字符串中是否存在指定的子项,如果存在则返回其位置,不存在返回0。与 %itemindex() 的功能类似,但参数的位置顺序不同。
参数一:(String)查找子项
参数二:(String)集合型字符串

%item()

%itemvalue()函数的简写。

%itemcommon(,,,)

比较各个参数中的集合型字符串,找出共有的部分子项,组成集合型字符串的方式作为返回值。
参数一:(String)集合型字符串
参数二:▽(String)集合型字符串
参数三:▽(String)集合型字符串
参数四:类推

%itemcount()

计算集合型字符串中含有多少个子项。
参数一:(String)集合型字符串

%itemdup(,)

计算集合型字符串中某个子项重复出现的次数。
参数一:(String)集合型字符串
参数二:(String)目标子项

%iteminclude(,)

比较两个集合型字符串,如果参数一中包含了参数二的所有子项,则返回1,否则返回0。与%include()函数的区别在于:%include()的参数一是一个单独的字符串,把该字符串与参数二的子项做对比;而本函数的参数一是一个集合型,把其子项与参数二的子项做一一对比。
参数一:(String)集合型字符串
参数二:(String)集合型字符串

%itemindex(,,)

从集合型字符串中,查找指定子项在集合中重复出现第n次(参数三)时的位置。参数三可以缺省,默认情况下为1,即返回指定子项第1次出现的位置。如果变量中没有包含指定子项,或是包含子项的个数小于参数三,则返回0。
参数一:(String)集合型字符串
参数二:(String)查找子项
参数三:▽(Int)指定出现次数

%itemvalue(,)

从集合型字符串中,返回指定位置上的子项值。
参数一:(String)集合型字符串
参数二:(Int)指定位置

%label()

返回从左侧起第n个游戏窗口的标签名称。参数缺省或为零时,返回当前游戏窗口的名称。
参数一:▽(Int)指定窗口位置

%left(,)

返回字符串左侧指定数量的字符。不进行任何中文字符判断,有可能截取到半个中文字。如需进行中文字符判断,应当使用nleft或xleft函数。
参数一:(String)字符串
参数二:(Int)指定数量

%leftback(,)

返回字符串去掉右侧指定数量字符之后,左侧剩下的部分字符。不进行任何中文字符判断,有可能截取到半个中文字。如需进行中文字符判断,应当使用nleftback或xleftback函数。
参数一:(String)字符串
参数二:(Int)指定数量

%len()

返回字符串的长度。
参数一:(String)字符串

%line(,)

获取指定名称的游戏窗口上指定行的文字信息。指定名称为空时表示获取当前游戏窗口的行信息。指定行为0表示获取当前焦点所在行;为1表示获取最后一行;为x表示获取倒数第x行。指定行可缺省,默认获取最后一行。但在触发器中使用时,表示获取触发行的文字。
参数一:▽(String)游戏窗口名称
参数二:▽(Int)指定行

%lineid()

获取指定行的行ID。在触发器中使用时,返回触发行的行ID;其他情况下使用时,返回最后一个行的行ID。

%linetoline(,,)

根据指定的行ID,返回从起始行到结束行之间所有行的文字信息。参数三不为空时,各个行的文字信息之间以参数三作为间隔信息。
参数一:(Int)起始行的行ID
参数二:(Int)结束行的行ID
参数三:▽(String)各行之间的间隔信息
示例
显示自第1行到第10行之间的所有信息,各行之间用换行符分隔:
#say %linetoline(1,10,%char(10))

%lower()

返回指定字符串的字母小写值。
参数一:(String)源字符串

%mapcomquery(,,,)

在地图中查询多个字段串联组合之后的值。参数一表示要查询匹配的值,从参数二到后续的参数N表示进行组合的字段名。在查询时,将指定各字段的值依照参数顺序进行串联之后,与参数一进行比较,二者相等的为匹配成功。如果成功匹配多个房间,则以集合型变量的方式返回各房间ID。
参数一:(String)查询匹配值
参数二:(String)字段一的名称
参数三:▽(String)字段二的名称
参数四:类推

%mapcount()

返回当前地图中房间的总个数。

%maplist()

以集合型变量的方式,返回当前地图中所有房间的ID。当地图房间数量很大时,返回值可能会是很长的字符串,应当慎用。

%maplocate()

查找所有房间出口中包含指定值的房间,返回房间ID。如果查找结果包含多个房间,则以集合型变量的格式返回所有ID。
参数一:(String)查找指定的值

%maplocateobj()

查找所有房间物品中包含指定值的房间,返回房间ID。如果查找结果包含多个房间,则以集合型变量的格式返回所有ID。
参数一:(String)查找指定的物品

%mapmove(,)

从参数一指定的房间出发,进行参数二所指定的行走方案之后,返回抵达的房间ID。行走方案中每一步之间应当用半角分号“;”分隔,可以使用#n来表示重复行走,比如“e;#5 w”。
参数一:(String)起始房间ID
参数二:(String)行走方案

%mapnear(,,)

从参数一指定的房间出发,寻找距离最近的一个房间,该房间拥有的参数二指定的属性,其值等于参数三。返回值为目标房间的ID。
参数一:(String)起始房间ID
参数二:(String)房间属性字段的名称
参数三:(String)房间属性字段的值

%mapnearpath(,,,)

从参数一指定的房间出发,寻找距离最近的一个房间,该房间拥有的参数二指定的属性,其值等于参数三。返回值为前往目标房间的路径,参数四可指定各步路径之间的分隔符,默认为分号“;”。
参数一:(String)起始房间ID
参数二:(String)房间属性字段的名称
参数三:(String)房间属性字段的值
参数四:▽(String)各步路径之间的分隔符,默认为分号“;”

%mappath(,,)

返回从参数一指定的房间出发,抵达参数二指定房间的最短路径。参数三可指定各步路径之间的分隔符,默认为分号“;”
参数一:(String)起始房间ID
参数二:(String)终点房间ID
参数三:▽(String)各步路径之间的分隔符,默认为分号“;”

%mappathcount(,)

返回从参数一指定的房间出发,抵达参数二指定房间的最短路径共需走过的房间数。
参数一:(String)起始房间ID
参数二:(String)终点房间ID

%mappathrooms(,)

返回从参数一指定的房间出发,抵达参数二指定房间的最短路径所经过的各房间ID。
参数一:(String)起始房间ID
参数二:(String)终点房间ID

%maproom(,,,,)

查找地图中符合指定条件的房间ID。如果符合条件的房间有多个,则返回查找到的第一个。查找条件包含房间名、描述、出口等,可以部分缺省,但不能全部为空。
参数一:▽(String)房间名称(name字段)
参数二:▽(String)房间描述(desc字段)
参数三:▽(String)房间出口(links字段)
参数四:▽(String)出口连接(relation字段)
参数五:▽(String)所属区域(area字段)

%maprooms(,,,,)

查找地图中符合指定条件的房间ID。如果符合条件的房间有多个,则以集合型变量的方式返回各房间ID。查找条件包含房间名、描述、出口等,可以部分缺省,但不能全部为空。
参数一:▽(String)房间名称(name字段)
参数二:▽(String)房间描述(desc字段)
参数三:▽(String)房间出口(links字段)
参数四:▽(String)出口连接(relation字段)
参数五:▽(String)所属区域(area字段)

%mapthrough(,,,)

从参数一指定的房间出发,对参数二中包含的所有房间为中心进行遍历。参数二以集合型变量的方式包含所有要遍历的中心房间,参数三表示以这些房间为中心进行多大深度的遍历。参数四可指定各步路径之间的分隔符,默认为分号“;”。
参数一:(String)起始房间ID
参数二:(String)遍历各中心房间
参数三:(Int)遍历最大深度
参数四:▽(String)各步路径之间的分隔符,默认为分号“;”

%maptrav()

%maptraverse()函数的简写。

%maptraverse(,,,)

从参数一指定的房间出发,进行遍历并返回起始房间所走过的路径。参数二表示是否限制在本区域内遍历,参数三表示遍历最大深度房间数。参数四可指定各步路径之间的分隔符,默认为分号“;”。当参数二为假时,不限制区域遍历,只按照参数三指定的深度进行遍历;当参数二为真时,只在本区域内进行遍历。
参数一:(String)起始房间ID
参数二:(Bool)是否限制区域内遍历
参数三:(Int)遍历最大深度
参数四:▽(String)各步路径之间的分隔符,默认为分号“;”

%maptraverserooms(,,)

从参数一指定的房间出发,进行遍历并返回起始房间所走过的所有房间ID。参数二表示是否限制在本区域内遍历,参数三表示遍历最大深度房间数。当参数二为假时,不限制区域遍历,只按照参数三指定的深度进行遍历;当参数二为真时,只在本区域内进行遍历。
参数一:(String)起始房间ID
参数二:(Bool)是否限制区域内遍历
参数三:(Int)遍历最大深度

%maptravrooms()

%maptraverserooms()函数的简写。

%mapvalue(,)

获取当前地图中指定房间某个字段的值。当不含参数二(也就是不指定字段)时,以客户端信息方式列出指定房间的所有字段和值。
参数一:(String)房间ID
参数二:▽(String)指定字段

%match(,,)

用触发器语句对字符串进行触发检查,以判断其是否符合触发条件,返回值为1或0。相关规则与触发器相同。如果触发器语句中设置了抓取匹配值的功能,触发成功时匹配值将存放在变量三中。如果抓取了多个值,则保存为集合型变量。未指定参数三时不保存匹配值。
参数一:(String)检查字符串
参数二:(String)触发器语句
参数三:▽(String)保存抓取值的变量名

%max(,,)

返回多个数值中的最大值。
参数一:(Int)数值
参数二:(Int)数值
参数三:类推

%min(,,)

返回多个数值中的最小值。
参数一:(Int)数值
参数二:(Int)数值
参数三:类推

%mod(,)

获取参数一除以参数二的余值。
参数一:(Int)数值
参数二:(Int)数值

%null()

检查参数是否为空或0。为空或为零返回1,否则返回0。
参数一:(String)字符串

%numitems()

%itemcount()函数相同。

%numwords(,)

获取字符串中所包含单词的总数量,各单词之间以参数二作为分隔符分开。参数二缺省时默认为空格。
参数一:(String)字符串
参数二:▽(String)单词分隔符

%oppdir()

返回参数的反方向。
示例:e返回w;southup返回northdown。
参数一:(String)方向

%pos(,,)

返回参数一第n次在参数二字符串中出现时的位置。如果参数二中不包含参数一,则返回0。不指定参数三时,默认为第1次;参数三为0时,表示查找最后一次出现的位置。
参数一:(String)字符串
参数二:(String)字符串
参数三:▽(Int)出现次数

%random(,)

只有参数一时,返回一个大于等于0且小于参数一的随机整数。有两个参数时,返回一个大于等于参数一且小于等于参数二的随机整数。两个参数的值最大不能超过2147483647。
参数一:(Int)数值
参数二:▽(Int)数值

%rawline(,)

获取指定名称的游戏窗口上某一行的原始文字信息(即服务器上发来的带有各种控制码且未经解析的原始信息)。无参数二时表示获取当前游戏窗口的行信息。参数一为0时获取当前焦点所在行;为1时表示获取最后一行,为x时获取倒数第x行。参数一可缺省,默认获取最后一行,但在触发器中使用时,默认获取触发行的文字。
参数一:▽(Int)数值
参数二:▽(String)游戏窗口名称

%read(,)

从指定ID的文件中读取位于指定行上的数据。指定行缺省或为0时表示读取当前行,为-1表示读取最后一行。每个打开的文件都自带一个“光标”,用于指示当前位于哪一行。每执行一次%read()命令,“光标”就会自动跳转到下一行,重复执行%read()指令可以从文件的第一行一直读取至最后一行。
参数一:(String)文件ID
参数二:▽(Int)指定行

%regex(,,)

用正则表达式规则对字符串进行触发检查,以判断其是否符合触发条件。如果语句中设置了抓取匹配值,触发成功时匹配值将存放在参数三指定的变量中。无参数三则不保存。返回值为0时表示触发不成功,非0值表示触发成功。当返回值为大于0的n值时,表示有n个匹配值,保存在参数三指定的表变量中,名字分别为参数三.1~参数三.n(比如:value.1和value.2等);当返回值为-1时,表示触发成功但没有匹配值。
参数一:(String)检查字符串
参数二:(String)正则表达式语句
参数三:▽(String)保存抓取值的变量名

%remove(,)

返回从指定字符串中移除第一个指定子串之后剩余的字符串。
参数一:(String)待移除的子串
参数二:(String)源字符串

%repeat(,)

返回字符串重复指定次数之后的串连值。
参数一:(String)源字符串
参数二:(Int)重复次数

%replace(,,)

在源字符串中查找指定子串并替换为新值,如果指定的子串重复出现多次,只有第一个会被替换。
参数一:(String)源字符串
参数二:(String)查找子串
参数三:(String)替换新值

%replaceall(,,)

在源字符串中查找指定子串并替换为新值,如果指定的子串重复出现多次,所有子串会被替换。
参数一:(String)源字符串
参数二:(String)查找子串
参数三:(String)替换新值

%replaceitem(,,)

将集合型字符串中等于参数二的子项全部替换为参数三。
参数一:(String)集合型字符串
参数二:(String)目标子项信息
参数三:(String)替换信息

%replacenitem(,,)

将集合型字符串中指定位置上的子项替换为参数三。
参数一:(String)集合型字符串
参数二:(Int)目标子项的位置
参数三:(String)替换信息

返回字符串右侧指定数量的字符。不进行任何中文字符判断,有可能截取到半个中文字。如需进行中文字符判断,应当使用nright或xright函数。
参数一:(String)字符串
参数二:(Int)指定数量

%rightback(,)

返回字符串去掉左侧指定数量字符之后,右侧剩下的部分字符。不进行任何中文字符判断,有可能截取到半个中文字。如需进行中文字符判断,应当使用nrightback或xrightback函数。
参数一:(String)字符串
参数二:(Int)指定数量

%round()

对参数进行浮点运算之后,进行四舍五入转换为整型。
参数一:(String)浮点运算式

%run()

对参数模拟一次指令解析,返回值为最终会向服务器发送的信息。这些信息只是被收集起来作为返回值,并不会真地被发送往服务器。但如果参数中包含了客户端命令,这些命令会被真实地执行。
参数一:(String)待解析的指令

%setglobal(,)

修改指定全局变量的值。全局变量就是当前程序所有窗口都可以使用的公共变量。函数的返回值为该变量的新值。
参数一:(String)指定的全局变量名
参数二:(String)待赋予的新值

%slbof()

判断当前打开的SQLite数据库表单的当前纪录指针是否处于BOF状态。必须先用#sqlite命令打开一张SQLite数据表之后才能使用,否则将返回一条错误消息。

%sleof()

判断当前打开的SQLite数据库表单的当前纪录指针是否处于EOF状态。必须先用#sqlite命令打开一张SQLite数据表之后才能使用,否则将返回一条错误消息。

%slread(,)

从当前打开的SQLite数据库表单的当前纪录中读出指定字段名的数据。可选参数:当带有参数二且不为零时,表示对读取到的数据做一个编码转换,从UTF8转换为Ansi编码。必须先用#sqlite命令打开一张SQLite数据表之后才能使用,否则将返回一条错误消息。
参数一:(String)指定字段名称
参数二:▽ 1/0 可选参数

%sort(,)

对集合型字符串里的子项进行重新排序。当无参数二或参数二为零时,按照升序排序;为其他任意值时,按照降序排序。
参数一:(String)集合型字符串
参数二:▽(Int)指定升序或降序排序

%stackcount()

返回当前游戏窗口的临时栈中的节点数。参考:#push/#pop

%syspath()

返回LordStar程序的完整路径名。

%tick()

返回操作系统从启动到当前所经过的总毫秒数。

%time()

按照参数指定格式输出系统当前时间。默认格式为“yyyy-mm-dd hh:nn:ss”。
参数一:▽(String)时间输出格式

%trim()

清除指定字符串头尾的空格和控制字符。
参数一:(String)源字符串

%trunc()

对参数进行浮点运算之后,进行取整转换为整型。
参数一:(String)浮点运算式

%u2a()

%utf8toansi()函数的简写。

%upper()

返回指定字符串的字母大写值。
参数一:(String)源字符串

%utf8toansi()

把一个UTF-8编码的字符串转换为Ansi编码。
参数一:(String)UTF-8编码的字符串

%var(,)

返回指定窗口的某个变量的值。不带参数二时,默认获取当前窗口的变量。
参数一:(String)指定的变量名
参数二:▽(String)指定游戏窗口的名称标签

%varkeys(,)

以集合型变量方式,返回指定窗口的某个变量所包含的嵌套表元素列表。不带参数二时,默认获取当前窗口的变量。
参数一:(String)指定的变量名
参数二:▽(String)指定游戏窗口的名称标签

%word(,,)

从指定字符串中获取指定位置上的单词的值,各单词之间以参数三指定的分隔符分开。参数二缺省时默认为1,分隔符缺省时默认为空格。
参数一:(String)源字符串
参数二:▽(Int)指定单词位置
参数三:▽(String)分隔符

%xor(,)

对参数一和参数二进行异或运算,返回运算结果。
参数一:(Int)数值
参数二:(Int)数值


命令列表

#ab

#abort命令的简写。

#abort

取消同一串命令里的所有后续命令。包括很多种情况:在命令栏里输入的一串指令、一个别名指代的全部语句、一条触发器触发之后执行的所有语句……只要是“一起”发送给系统进行解析的命令,就视为“同一串”命令。
示例
east;#if (@a>0) {#ab};west;
当变量a大于0时,后面的west指令会被丢弃。

#add

对参数一变量值进行加法计算。如果参数一对应的变量不存在,则新建一个并赋值。
参数一:(String)进行计算的变量名
参数二:(Int)增加值
示例
变量加一:#add count 1;
变量减一:#add count -1;

#additem

为集合型变量增加一个子项。当参数三不为空时,按照参数三指定的位置增加子项。
参数一:(String)集合型变量的名字
参数二:(String)要增加的子项
参数三:▽(Int)在指定的位置新增子项
示例
增加一个子项:#add strlist "test";
在指定的位置增加子项:#add strlist "test" 3;

#al++

开启所有闹钟。

#al+

根据名称指定打开一个闹钟。
参数一:(String)闹钟名称
示例:打开名称为idle的闹钟:#al+ idle

#al–

关闭所有闹钟。

#al-

根据名称指定关闭一个闹钟。
参数一:(String)闹钟名称
示例:关闭名称为checkidle的闹钟:#al- checkidle

#al

#alias命令的简写。

#alarm

新建一个闹钟。
参数一:(String)闹钟运行的条件
参数二:(String)闹钟运行的指令
参数三:▽(String)闹钟ID
示例
定义闹钟在1秒后执行cmd指令:#alarm +1 {cmd};
定义一个id为sayhi的闹钟:#alarm +1 {cmd} sayhi;
定义闹钟在1小时1分5秒后执行cmd指令:#alarm +1:01:05 {cmd}

#alias

定义或修改一个别名。
参数一:(String)别名的名称
参数二:(String)别名所指代的内容
示例:定义一个别名sayhai,指令内容为hi:#alias sayhi {hi};

#all

向所有游戏窗口发送指令串进行解析。
参数一:(String)进行解析的信息或指令
示例:向所有游戏窗口发送指令hi:#all hi;

#beep

从机器的扬声器中发出一声蜂鸣声(播放由Windows系统默认定义的声音),作为提示音。

#break

终止正在进行中的所有循环命令计算,比如:#if、#while、#until。
示例
i=0;#while 1 {#add i 1;#if @i>2 {#break}}
当i的值累积超过2时,就会终止循环命令。

#btnlb

(没有该命令的功能说明)

#btnst

(没有该命令的功能说明)

#buff

新增或刷新一个Buff图标。当它的持续时间归零之后,执行一个指定的指令。
参数一:(Int)Buff图标的ID,可在“文件-Buff图标”菜单里查看
参数二:(Int)持续时间,以秒为单位
参数三:▽(String)持续时间归零之后执行的指令
示例
#buff 0 2 {perform}
新增或者刷新一个ID为0的图标,持续时间为2秒。当持续时间结束之后执行perform命令。

#buttonlabel

(没有该命令的功能说明)

#buttonstatus

(没有该命令的功能说明)

#ca

#case命令的简写。根据数值执行不同的指令。指令的总数量无限制,数值为1执行第1条指令,为n则执行第n条,以此类推。如果数值为0或超过了指令总数,则不执行任何指令。
参数一:(Int)数值
参数二:▽(String)第1条指令
参数三:▽(String)第2条指令
参数四:类推

#cap

#capture命令的简写。

#capture

把触发行整行复制到指定的窗口。只能在触发器中使用该命令。可选参数“/t”:使用该参数在复制的行前添加时间戳,允许自定义时间戳的颜色和格式。默认格式:#cap window /t 自定义示例:#cap window /t:$HIY$[hh:nn:ss]$NOR$
参数一:(String)目标窗口标签
参数二:▽ /t 可选参数
示例
将触发行内容复制到名字为log的窗口:#cap log /t
加上自定义颜色和格式的时间:#cap log /t:$HIY$[hh:nn:ss]$NOR$

#case

根据数值执行不同的指令。指令的总数量无限制,数值为1执行第1条指令,为n则执行第n条,以此类推。如果数值为0或超过了指令总数,则不执行任何指令。
参数一:(Int)数值
参数二:▽(String)第1条指令
参数三:▽(String)第2条指令
参数四:类推
示例
根据c的数值执行对应顺序的指令:#case @c {#say %i=1} {#say %i=2}

#casedo

根据参数一设置的初始参照值,依次判断后续各对比值,选择执行指令。对比值和指令的数量无限制,只要给定的对比值与参数一相同就执行指令。对比值可以是数值,也可以是字符。如果对比值为空,表示为默认值,当没有其他对比值符合要求时执行该指令(有则不执行)。
参数一:(String)参照值
参数二:▽(String)对比值:指令
参数三:▽(String)对比值:指令
参数四:类推
示例
#casedo @a {1:do1} {2:do2} {sth:do3} {:default}
假如a=1,则指令执行1后的指令,以此类推。如果变量a的内容不在列表中,则执行最后一句default指令。中间的指令集可以任意数量。

#charset

(没有该命令的功能说明)

#clearalias

清空指定资源包内的所有别名。参数一为空时,默认为主资源包。
参数一:▽(String)资源包的名字
示例:清空资源包pack中的所有别名:#clearalias pack

#clearscreen

清屏,清除当前窗口的所有文字。
示例#clearscreen

#clearstack

清空当前窗口所携带的栈中存放的所有数据。参考:#push/#pop

#cleartrigger

清空指定资源包内的所有触发器。参数一为空时,默认为主资源包。
参数一:▽(String)资源包的名字
示例:清空资源包pack中的所有触发器:#cleartrigger pack

#clearvar

清空指定资源包内的所有变量。参数一为空时,默认为主资源包。
参数一:▽(String)资源包的名字
示例:清空资源包pack中的所有变量:#clearvar pack

#close

关闭一个文件,同时把对该文件执行的写入操作保存至硬盘文件。相关命令与函数:#file/#write/%read() 一般与 #file 互为开关
参数一:(String)要关闭的文件ID
示例:关闭ID为 a 的文件:#close a

#cls

#clearscreen命令的简写。清屏,清除当前窗口的所有文字。

#color

修改当前触发行的颜色。只能在触发器中使用。可同时设置文字颜色和背景色,中间用逗号隔开。文字颜色:black黑/red红/green绿/yellow黄/blue蓝/fuchsia紫/teal青/white白背景颜色:bblack黑/bred红/bgreen绿/byellow黄/bblue蓝/bfuchsia紫/bteal青/bwhite白
参数一:(String)颜色代码
示例:修改触发行颜色为黑底白字:#color white,bblack

#conAA

#connect命令的简写。参数1、2缺省为断开现有连接,并重新连线服务器。
参数一:▽(String)服务器地址
参数二:▽(Int)服务器端口
示例:断开当前连接,并连接到另外一个地址:#connect 1.1.1.1 2222

#connect

断开现有连接,并重新连线服务器。
参数一:▽(String)服务器地址
参数二:▽(Int)服务器端口
示例:断开当前连接,并连接到另外一个地址:#connect 1.1.1.1 2222

#cq

调整指令发送限速功能。不带参数时表示清空当前延迟队列里还未发送出去的所有指令。
参数一:▽(Int)调整限速指标(n条指令/秒),为0时关闭限速
示例
关闭限速功能:#cq 0;
设置每秒最多只发出20条指令:#cq 20;

#debug

(没有该命令的功能说明)

#delalarm

删除指定ID的闹钟。
参数一:(String)闹钟的ID
示例:删除ID名称为idle的闹钟:#delalarm idle

#delevent

删除指定资源包中指定类型的所有事件。事件类型ID可以查看事件编辑窗口中的英文ID,比如OnSend、OnLoad等,大小写敏感。不指定事件类型时,删除指定资源包里的所有事件。不指定资源包时,删除所有资源包里的类型事件。不带任何参数时,清空全部事件。
参数一:▽(String)事件类型ID
参数二:▽(String)指定资源包
示例:删除pack资源包中的OnSend事件:#delevent OnSend pack

#delitem

从集合型变量中删除第一个指定值的子项。
参数一:(String)集合型变量的名称
参数二:(String)要删除的子项
示例:删除变量a中保存的子项xx:#delitem a xx

#delnitem

从集合型变量中删除第n个位置上的子项。
参数一:(String)集合型变量的名称
参数二:(Int)要删除子项的位置
示例:删除变量a中保存的第一个子项:#delnitem a 1

#delpack

删除指定的资源包。主资源包不能被删除,但会清空所有内容。
参数一:(String)资源包的ID
示例:删除资源包test:#delpack test

#deltimer

删除指定ID的定时器。
参数一:(String)定时器的ID
示例:删除ID为t的定时器:#deltimer t

#deltrigger

删除指定ID的触发器。删除指定资源包内的触发器时,参数一可以使用“packname::ID”的格式。
参数一:(String)触发器的ID
示例:删除pack资源包里ID为tr的触发器:#deltrigger pack::tr

#deltriggerclass

删除指定类别的所有触发器。参数为空时,删除所有类别为空的触发器。删除指定资源包内的触发器时,参数一可以使用“packname::classname”的格式。
参数一:▽(String)触发器的类别
示例:删除a资源包里类别为b的所有触发器:#deltriggerclass a::b

#delxitem

从集合型变量中删除所有指定值的子项。
参数一:(String)集合型变量的名称
参数二:(String)要删除的子项
示例:删除变量a中所有子项xx:#delxitem a xx

#dis

#disconnect命令的简写。断开当前游戏连接。
示例#dis

#disconnect

断开当前游戏连接。
示例:断开当前游戏连接:#disconnect

#dtr

#deltrigger命令的简写。删除指定ID的触发器。删除指定资源包内的触发器时,参数一可以使用“packname::ID”的格式。
参数一:(String)触发器的ID
示例:删除pack资源包里ID为tr的触发器:#deltrigger pack::tr

#dtrc

(没有该命令的功能说明)

#dwin

添加一个可见状态的小窗。
参数一:(String)小窗的指令
参数二:▽(String)小窗的标题
参数三:▽(Int)小窗的左侧或右侧位置(根据左对齐或右对齐)
参数四:▽(Int)小窗的上侧位置
参数五:▽(Int)小窗的宽度
参数六:▽(Int)小窗的高度
参数七:▽(Bool)小窗是否为右对齐(0表示否,非0值表示是)
示例:添加尺寸为800*100的小窗,用于显示mxp图片:#dwin {::mxp} {mxp} 0 0

#dwinac

(没有该命令的功能说明)

#dwinactive

(没有该命令的功能说明)

#echo

向主窗中添加一条信息,模拟为服务器端信息。与服务器实际发来的信息同等处理,可以被Lua和触发器触发。相关命令:#say/#echo/#show
参数一:(String)添加的信息
示例:添加一行文字:#echo "这是一条模拟信息!可以被触发器触发"

#echop

#echoprompt命令的简写。向主窗中添加一条不加断行的信息,模拟为服务器端信息。与服务器实际发来的信息同等处理,可以被Lua和触发器触发。
参数一:(String)添加的信息
示例:添加一行未结尾的文字:#echo "这是一条后续模拟信息!"

#echoprompt

向主窗中添加一条不加断行的信息,模拟为服务器端信息。与服务器实际发来的信息同等处理,可以被Lua和触发器触发。
参数一:(String)添加的信息
示例:添加一行未结尾的文字:#echo "这是一条后续模拟信息!"

#endtr

#endtrigger命令的简写中止同一资源包内剩余其他触发器的本次检测。如果增加参数all,则中止所有资源包的触发器检测。
参数一:▽ all 可选参数
示例#endtrigger all当该指令被执行时,其他尚未生效的触发器都被跳过。

#endtrigger

中止同一资源包内剩余其他触发器的本次检测。如果增加参数all,则中止所有资源包的触发器检测。
参数一:▽ all 可选参数
示例#endtrigger all当该指令被执行时,其他尚未生效的触发器都被跳过。

#er

#erase命令的简写。删除一个文件。
参数一:(String)要删除的文件名,可使用相对路径或绝对路径
示例:删除文件:#erase "c:\abc.txt"

#erase

删除一个文件。
参数一:(String)要删除的文件名,可使用相对路径或绝对路径
示例:删除文件:#erase "c:\abc.txt"

#event

新建一个事件。当指定资源包时,将事件建立在此资源包里;不指定参数三(或指定的资源包不存在时),将事件建立在主资源包里。
参数一:(String)所响应的事件
参数二:(String)事件触发之后所运行的指令
参数三:▽(String)指定资源包
示例:添加一个事件:#event OnSend {do sth}

#exe

运行一个外部程序。
参数一:(String)要运行的可执行文件名
参数二:▽(String)运行时附带执行参数
示例:运行一个程序:#exe "c:\notepad.exe"

#file

打开一个纯文本文件,并为其标注ID。将文件内容读入内存,供后续读写操作使用。相关命令与函数:#write/#close/%read()
参数一:(String)为该文件标注的ID
参数二:(String)要打开的文本文件名
示例
打开一个txt文件:#file a "c:\abc.txt"
读取该文件的第3行,保存到变量va中:va=%read(a,3)

#forall

对集合型字符串中包含的所有子项依次执行指令。在指令中可以使用%i来获取当前子项的值。
参数一:(String)集合型字符串
参数二:(String)执行指令
示例:对每个参数都执行一次#say指令:#forall "aa|bb|cc" {#say %i}

#gag

隐藏触发行,不予显示。只能在触发器中使用该命令,且不能用于延时命令之后。注:该行信息依然存在,只是不显示而已,所以不影响触发器对其进行触发。
示例
隐藏当前触发行:#gag
隐藏所有空白行:触发器行 ^$ 命令行:#gag

#getdiffcolor

将触发行中的文字按照其字体颜色的不同进行排类,返回字数最少的那一类,将其文字存放在变量中。只能在触发器中使用该命令,无需使用颜色触发。
参数一:(String)保存结果的变量名称
参数二:▽(Int)默认1表示字数最少的一类,为2则保存字数第2少的类
示例
保存字数最少的一类到变量a:#getdiffcolor a
保存字数第二少的一类文字:#getdiffcolor a 2

#getdiffcolorset

将触发行中的文字按照其字体颜色的不同进行排类,把排类结果依据其字数从少到多的顺序排列,以集合型的方式存放在指定变量中。只能在触发器中使用该命令,无需使用颜色触发。
参数一:(String)保存结果的变量名称
示例:保存排类结果到变量a:#getdiffcolorset a

#grep

在已打开的指定ID的文件中进行从头到尾的全量搜索,查找同时包含各参数字符串的行,搜索结果以集合型字符串的方式,存入指定的变量。
参数一:(String)保持搜索结果的变量名
参数二:(String)打开文件ID
参数三:(String)查找字符串一
参数四:(String)查找字符串二
参数五:类推
示例
从文件id为1的文件中搜索包含内容为”测试”的行,结果存到变量a中:
#grep a 1 "测试"

#httpget

使用get方法向目标服务器发送http请求。由于网络延迟,该请求的响应结果可能会有一段时间的延迟。如果指定了参数二,在请求成功之后,返回值结果将保存在参数二指定的变量中。
参数一:(String)目标服务器的完整URL地址
参数二:▽(String)保存服务器响应结果的变量名

#httppost

使用post方法向目标服务器发送http请求,参数二为提交给服务器的数据。由于网络延迟,该请求的响应结果可能会有一段时间的延迟。如果指定了参数三,在请求成功之后,返回值结果将保存在参数三指定的变量中。
参数一:(String)目标服务器的完整URL地址
参数二:▽(String)向服务器提交的数据
参数三:▽(String)保存服务器响应结果的变量名

#if

根据逻辑判断的结果选择执行指令。
参数一:(String)逻辑判断语句
参数二:(String)判断结果为 True 时执行的指令
参数三:▽(String)判断结果为 False 时执行的指令
示例
#if 1=0 {#say 真的} {#say 假的};
#if 语句可以进行嵌套如:#if (@a=1) {#if (@b=1) {do something}} {#if (@b=1) {do something}}

#ig

#ignore命令的简写。关闭当前游戏的触发器和闹钟功能。再执行一次则重新打开。

#ignore

关闭当前游戏的触发器和闹钟功能。再执行一次则重新打开。

#label

修改指定游戏窗口的名称标签。支持调用变量。
参数一:(String)新的名称
参数二:▽(Int)指定修改从左侧起第n个窗口的标签,缺省时为当前窗口
示例
修改当前窗口:#label nandi南帝运镖
调用变量:#label @id@name运镖
指定窗口:#lable @id@name运镖 1

#load

载入指定的系统配置文件。相当于“设置-载入”菜单的功能。
参数一:(String)系统配置文件的文件名
示例#load "fy3.lsu";前提条件是fy3.lsu这个文件必须放在save文件夹下

#loadmap

载入指定的地图文件。相当于“地图-加载”菜单的功能。
参数一:(String)地图文件的文件名
示例#loadmap "fy3.lsm";前提条件是fy3.lsm这个文件必须放在map文件夹下

#loadpack

从指定的存盘文件中加载一个资源包。
参数一:(String)资源包存盘文件的文件名
示例#loadpack "map.lsp";前提条件是map.lsp这个文件必须放在package文件夹下

#log

往日志文件中写入信息。写入信息中可以使用函数、变量,也可以用\n来表示断行,在写入之前会先进行解析。特殊应用:在触发器指令中使用不带参数的#log命令时,将往日志文件中写入引发该触发器的目标行原始文字。
参数一:▽(String)写入信息
示例
往日志文件log.txt当中写入”lordstar免费挖泥利器”:#log lordstar免费挖泥利器
匹配触发器写入:触发器:“你双手抱拳,作了个揖道:各位英雄请了!” 指令行:#log

#logcompile

(没有该命令的功能说明)

#logfile

持续往指定的纯文本文件中写入游戏文字信息,直到#logfile off停止记录或游戏窗口被关闭。当开启调试模式时,写入的是服务器发来的原始信息。注意:长时间持续不断地往文件中写入信息可能导致该文件十分庞大,从而拖累整个程序速度变慢。
参数一:▽(String)纯文本文件名或“off”关闭
示例
往log.txt文件中写入文字信息:#logfile "log.txt";
停止记录:#logfile off;

#longmess

弹出一个窗口,显示一段信息。信息中可以使用函数、变量,也可以用\n来表示断行,在显示之前会先进行解析。一般用作机器人运行前的说明
参数一:(String)显示信息
示例
#longmess 这是一个提示信息;
#longmess 本机器运行前请买好食物\n本机器人由@name制作

#loop

按照指定的次数,重复执行指令。在指令中可以使用%i来获取当前重复次数,也可使用#break命令结束循环(当次循环会继续执行完),或使用#abort直接终止后续所有指令。
参数一:(Int)重复次数
参数二:(String)执行指令
示例#loop 3 {#say 这是第%i次说hi;}

#mapdel

#mapdelete命令的简写。编辑当前地图中指定的房间,删除指定字段。可以用“<字段1>.<字段2>”套叠的方式指定下层字段,比如“exits.south”。当参数二为空(也就是不指定字段)时,删除整个房间。注意:删除房间时,并不会修改其他房间到此房间的出口链接,你需要自己编辑此类链接,以免导致地图出现断链。
参数一:(String)房间ID
参数二:▽(String)指定字段
示例
删除房间编号为1的房间:#mapdelete 1;
删除房间编号为1的房间中的指定字段:#mapdelete 1 exits.north;

#mapdelete

编辑当前地图中指定的房间,删除指定字段。可以用“<字段1>.<字段2>”套叠的方式指定下层字段,比如“exits.south”。当参数二为空(也就是不指定字段)时,删除整个房间。注意:删除房间时,并不会修改其他房间到此房间的出口链接,你需要自己编辑此类链接,以免导致地图出现断链。
参数一:(String)房间ID
参数二:▽(String)指定字段
示例
删除房间编号为1的房间:#mapdelete 1;
删除房间编号为1的房间中的指定字段:#mapdelete 1 exits.north;

#mapedit

编辑当前地图中指定房间的指定字段,修改为新值。可以用“<字段1>.<字段2>”套叠的方式指定下层字段,比如“exits.south”。
参数一:(String)房间ID
参数二:(String)指定字段
参数三:(String)值
示例:房间1的exits.north 设置为 2:#mapedit 1 exits.north 2

#mapsave

(没有该命令的功能说明)

#math

对运算式进行数学计算,结果保存在指定变量中。如果变量不存在,则新建一个并赋值。
参数一:(String)指定的变量
参数二:(String)运算式
示例#math test {1+1};

#mccp

显示当前MCCP的有关信息。MCCP(Mud Client Compression Protocol)是一种MUD压缩协议,用于压缩MUD和客户端之间的数据,有助于缩减带宽开支,减少网络延迟。
示例#mccp

#mes

#mess命令的简写。
参数一:(String)警示信息
示例#mes 这是一个自动关闭的提醒;

#mess

弹出一个警示窗口,显示警示信息。信息中可以使用函数、变量,在显示之前会先进行解析。警示窗口最多显示8秒,如果用户没有操作就自动关闭。
参数一:(String)警示信息
示例#mess 这是一个自动关闭的提醒;

#mxp

指定url下载一个图片。可以将图片存为指定的文件名,如不指定则使用网上的原始文件名。
参数一:(String)下载图片的完整url地址
参数二:▽(String)下载的图片重命名为指定文件名

#new

对当前游戏新建配置。相当于“设置-新建”菜单的功能。
示例#new

#newgame

新建一个游戏窗口,并连线服务器。如果不指定服务器和端口时,使用与调用此命令的窗口相同的配置。可以在参数三指定一个设置文件名,当新建窗口之后立即加载该文件中保存的设置。
参数一:▽(String)服务器地址
参数二:▽(Int)服务器端口
参数三:▽(String)在新窗口自动加载的设置文件名
示例
#newgame 42.194.194.5 8888
#newgame server.mudbest.com 1212

#noop

空操作,不执行任何操作。
示例#noop

#p++

启用所有资源包。
示例#p++;

#p+

启用指定名称的资源包。
参数一:(String)资源包名称
示例:启用名字为fight的资源包;#p+ fight;

#p–

停用所有资源包。
示例#p--;

#p-

停用指定名称的资源包。
参数一:(String)资源包名称
示例:停用名字为fight的资源包;#p- fight;

#pi

#pick命令的简写。显示一个窗口,带有一个选择列表框,提示用户在列表框中进行选择,并根据选择结果执行相应的指令。列表框默认允许选择多项,如果只允许单项选择,应设置第一个参数为“o:1”。
参数一:(String)列表框中的提示语与相应的指令,中间用:隔开
参数二:(String)列表框中的提示语与相应的指令,中间用:隔开
参数三:类推

#pick

显示一个窗口,带有一个选择列表框,提示用户在列表框中进行选择,并根据选择结果执行相应的指令。列表框默认允许选择多项,如果只允许单项选择,应设置第一个参数为“o:1”。
参数一:(String)列表框中的提示语与相应的指令,中间用:隔开
参数二:(String)列表框中的提示语与相应的指令,中间用:隔开
参数三:类推

#playmedia

播放一个外部的多媒体文件。
参数一:(String)要播放的多媒体文件名

#playsound

播放一个外部的声音文件。
参数一:(String)要播放的声音文件名

#pop

依照先进后出的原则,用将当前窗口所携带的栈最顶端的节点弹出栈空间。节点中包含的子项信息根据入栈时的顺序,依次存放到指定的变量中。如果该节点入栈时的子项数量(也就是#push的参数数量)超过出栈时提供的变量数量(#pop的参数数量),多余的子项将被丢弃。
参数一:(String)用于保存出栈数据的变量名
参数二:(String)用于保存出栈数据的变量名
参数三:类推

#popx

依照先进后出的原则,用将当前窗口所携带的栈最顶端的节点弹出栈空间。节点中包含的子项信息根据入栈时的顺序,以集合型的方式存放到指定的变量中。
参数一:(String)用于保存出栈数据的变量名

#port

用于建立双向TCP连接。可用的功能选项包括:init/pass/uninit/call/zap/name/prefix/suffix/listen/who/send等。在客户端中输入#port指令可查看各项功能的更多信息。
参数一:(String)功能选项
参数二:(String)参数

#pr

#prompt命令的简写。
参数一:(String)保存输入值的变量名
参数二:▽(String)提示语,提示用户应该输入什么值
示例#pr id "请输入id:";

#print

向主窗中添加一条客户端提示信息。该信息不会向服务器端发送,也不会被触发器触发,仅仅是作为提示信息存在。与#say的功能相同。
参数一:(String)添加的信息

#printp

#printprompt命令的简写。

#printprompt

向主窗中添加一条不加断行的客户端提示信息。该信息不会向服务器端发送,也不会被触发器触发,仅仅是作为提示信息存在。与#sayprompt的功能相同。
参数一:(String)添加的信息

#prompt

弹出一个输入窗口,供用户输入一个值,把该值保存在指定变量中。
参数一:(String)保存输入值的变量名
参数二:▽(String)提示语,提示用户应该输入什么值
示例#pr id "请输入id:";

#push

将一个节点的数据压入当前窗口所携带的栈空间。每执行一次#push命令就在栈顶增加一个节点,每个节点可以包含任意个子项,子项数量由#push命令的参数数量决定。各个子项相对独立地存放,在出栈时也是独立的。#push的参数也可以为空,此时压入一个子项数量为0的空节点。每次用#push命令压入的子项数量可以各不相同,用户需要自己留意每次压入的数量,以便于出栈时接收数据。
参数一:(String)入栈数据
参数二:(String)入栈数据
参数三:类推

#rec

#record命令的简写。用于记录向服务器发送的指令。先用不带参数的#rec开启命令记录功能,此后所有向服务器发送的指令会被逐条记录下来。再次使用#rec <变量>停止记录,并将已记录的指令保存到指定的别名中。如果第二次输入的#rec不带参数,则丢弃已经记录的所有指令。注:记录的指令是向服务器端发送的最终指令,即经过解析之后的最终结果。空指令不会被记录下来。一般用作路径录制的功能
示例
比如手动录制扬州客栈到武庙的路径:
第一步输入 #rec
第二部手动走路到武庙:w;n;w
第三部再次输入 #rec path
到此就完成了路径的录制功能,别名 path 就可以直接从客栈到武庙了

#record

用于记录向服务器发送的指令。先用不带参数的#rec开启命令记录功能,此后所有向服务器发送的指令会被逐条记录下来。再次使用#rec <变量>停止记录,并将已记录的指令保存到指定的别名中。如果第二次输入的#rec不带参数,则丢弃已经记录的所有指令。注:记录的指令是向服务器端发送的最终指令,即经过解析之后的最终结果。空指令不会被记录下来。一般用作路径录制的功能
参数一:▽(String)保存记录的别名
示例
比如手动录制扬州客栈到武庙的路径:
第一步输入 #rec
第二部手动走路到武庙:w;n;w
第三部再次输入 #rec path
到此就完成了路径的录制功能,别名 path 就可以直接从客栈到武庙了

#reloadscript

重载当前游戏所有资源包里的脚本。

#run

对指令串进行解析处理。
参数一:(String)进行解析的信息或指令
示例#run "hi;kick";

#save

将当前游戏的设置保存到指定的存盘文件。不带参数时,保存到当前游戏的默认存盘文件。
参数一:▽(String)存盘文件名
示例
#save
或者
#save temp.lsu;

#say

向主窗中添加一条客户端提示信息。该信息不会向服务器端发送,也不会被触发器触发,仅仅是作为提示信息存在。
参数一:(String)添加的信息
示例#say 显示提示信息!;

#sayp

#sayprompt命令的简写。
参数一:(String)添加的信息
示例#say 显示提示信息!;

#sayprompt

向主窗中添加一条不加断行的客户端提示信息。该信息不会向服务器端发送,也不会被触发器触发,仅仅是作为提示信息存在。
参数一:(String)添加的信息
示例#say 显示提示信息!;

#send

跳过客户端解析,直接向服务器端发送指令串。
参数一:(String)发送的指令
示例#send "kick";

#sendto

向指定的游戏窗口发送指令串进行解析。可以和#show/#echo一起使用并可以调用变量、函数、颜色控制符作为记录游戏一些事项
参数一:(String)目标窗口的标签
参数二:(String)进行解析的信息或指令
示例#sendto 记录 #sh $HIW$[%time(MM-DD hh:nn:ss)]$HIM$%1升级一次

#ses

#session命令的简写。

#session

从现有游戏连接列表中,读取指定名字的游戏信息。然后新建一个游戏窗口,用读取的游戏信息连接游戏服务器。
参数一:(String)游戏连接的名字

#sh

#show命令的简写。
参数一:(String)添加的信息
示例#sh XX工作已经完成!

#show

向主窗中添加一条信息。该信息被视为服务器端信息,与服务器实际发来的信息同等处理,可以被Lua和触发器触发。为了避免打断服务器信息,添加的信息会等待当前行的信息完整之后,在下一个行才添加进来。
参数一:(String)添加的信息
示例#show XX工作已经完成!

#showp

#showprompt命令的简写。向主窗中添加一条不加断行的信息。该信息被视为服务器端信息,与服务器实际发来的信息同等处理,可以被Lua和触发器触发。为了避免打断服务器信息,添加的信息会等待当前行的信息完整之后,在下一个行才添加进来。
参数一:(String)添加的信息

#showprompt

向主窗中添加一条不加断行的信息。该信息被视为服务器端信息,与服务器实际发来的信息同等处理,可以被Lua和触发器触发。为了避免打断服务器信息,添加的信息会等待当前行的信息完整之后,在下一个行才添加进来。
参数一:(String)添加的信息

#slmove

移动数据库记录指针。参数<0时表示向后移动,参数>0时表示向前移动。必须先用#sqlite命令连接数据库并打开一张SQLite数据表之后才能使用,否则将返回一条错误消息。
参数一:(Int)记录指针移动n个位置

#sltable

在当前已连接的数据库中,使用SQL语句打开一张指定的数据表。如果此前已有打开的数据表,会先关闭该表。必须先用#sqlite命令连接数据库之后才能使用。不带任何参数时,表示关闭现有已打开的数据表(但不会关闭数据库连接)。
参数一:▽(String)数据表名
参数二:▽(String)SQL语句,可缺省,默认为‘SELECT * FROM 参数一’

#socks

修改当前游戏连接的Socks代理,
参数一:(String)代理服务器地址
参数二:(Int)代理服务器端口
参数三:▽(String)级别
参数四:▽(String)用户ID
参数五:▽(String)用户密码

#split

游戏主窗口分为上下两个子窗口并列显示,以便查看历史信息。再次执行则取消分窗显示。分窗显示时系统默认下窗显示10行文字,可通过参数一指定一个数字,用来表示分窗时下窗显示的行数。传统mud客户端的分屏操作
参数一:▽(Int)下窗保留文字行数
示例:可以在Ls的宏建里面新建一个快捷键,指令为 #split

#sql

在当前已连接的数据库中运行一条SQL语句。必须先用#sqlite命令连接数据库之后才能使用。
参数一:(String)SQL语句

#sqlite

连接一个SQLite数据库文件,并打开其中一张数据表。不带任何参数时断开现有的数据库连接。可以设定参数二为空字符串(但不能缺省)来表示只连接数据库文件而不打开任何数据表。可选参数“/m”:在参数三的位置上使用该参数时,会在内存中复制一份内存数据库,作为原数据库的副本,后续所有操作只针对该副本进行,所有变动不会保存到原数据库。这主要是为了保证原数据库的完整性,并在某些时候提高数据库访问速度。
参数一:▽(String)数据库文件的文件名
参数二:▽(String)数据表的名称,为空表示不打开任何数据表。
参数三:▽ /m 可选参数

#stat

#status命令的简写。

#status

修改当前游戏窗口的提示栏信息。可以调用变量
参数一:(String)在提示栏上显示的信息
示例#stat @name

#t++

打开所有触发器。默认情况下只打开本资源包内的触发器。如果需要控制其他资源包里的触发器,应当附带参数指定目标资源包。
参数一:▽(String)目标资源包名
示例#t++ pack

#t+

打开指定类别名的触发器。不带参数时,打开类别名为空的触发器。默认情况下只打开本资源包内的触发器。如果需要控制其他资源包里的触发器,应当在参数中用“资源包名::类别名”的方式指定目标资源包。
参数一:▽(String)触发器的类别名
示例#t+ 学习

#t+id

打开指定ID的触发器。如果需要控制指定资源包里的触发器,应当使用“资源包名::ID”的格式。
参数一:▽(String)触发器的ID

#t–

关闭所有触发器。默认情况下只关闭本资源包内的触发器。如果需要控制其他资源包里的触发器,应当附带参数指定目标资源包。
参数一:▽(String)目标资源包名
示例#t--

#t-

关闭指定类别名的触发器。不带参数时,关闭类别名为空的触发器。默认情况下只关闭本资源包内的触发器。如果需要控制其他资源包里的触发器,应当在参数中用“资源包名::类别名”的方式指定目标资源包。
参数一:▽(String)触发器的类别名
示例#t- 学习

#t-id

关闭指定ID的触发器。如果需要控制指定资源包里的触发器,应当使用“资源包名::ID”的格式。
参数一:▽(String)触发器的ID

#terminate

关闭 LordStar 程序。

#ti++

打开所有定时器。

#ti+

打开指定ID的定时器。不指定ID时,打开ID为空的所有定时器。
参数一:▽(String)定时器ID

#ti–

关闭所有定时器。

#ti-

关闭指定ID的定时器。不指定ID时,关闭ID为空的所有定时器。
参数一:▽(String)定时器ID

#ti

打开或关闭指定ID的定时器。不指定ID时,打开或关闭ID为空的所有定时器。
参数一:(Int)为0时关闭指定定时器,任意非0值时打开
参数二:▽(String)定时器ID

#timer

新建一条定时器。注:同一ID只能存在一条定时器,重复ID时新建的将覆盖原有的。ID为空的定时器不受数量限制。不指定ID(即ID为空)不影响定时器的使用,但无法用指令精确操作该条定时器。
参数一:(String)该定时器要执行的指令
参数二:▽(Int)定时间隔时间(以秒为单位,支持小数),默认60秒
参数三:▽(Int)执行次数,达到次数后删除该定时器,默认-1表示无限次
参数四:▽(String)指定定时器ID。
示例
新建一个 ID 为 test,执行两次后删除,每三秒输入一个 hi 的指令。
#timer hi 3 2 test

#tr

#trigger命令的简写。新建一条触发器。不支持新建颜色触发。注:同一ID只能存在一条触发器,重复ID时新建的将覆盖原有的。ID为空的触发器不受数量限制。不指定ID(即ID为空)不影响触发器的使用,但无法用指令精确操作该条触发器。
参数一:(String)触发器的触发语句
参数二:▽(String)触发器的触发指令,可使用{}囊括多条指令
参数三:▽(String)触发器的类别名称
参数四:▽(Int)触发器的冷却时间,缺省默认为0
参数五:▽(Int)触发器是否开启,非0值表示开启,缺省默认开启
参数六:▽(Int)标记位,1表示当前行触发、2表示使用正则、4表示载入时开启、8表示颜色触发器,默认为0
参数七:▽(String)指定触发器ID

#trigger

新建一条触发器。不支持新建颜色触发。注:同一ID只能存在一条触发器,重复ID时新建的将覆盖原有的。ID为空的触发器不受数量限制。不指定ID(即ID为空)不影响触发器的使用,但无法用指令精确操作该条触发器。
参数一:(String)触发器的触发语句
参数二:▽(String)触发器的触发指令,可使用{}囊括多条指令
参数三:▽(String)触发器的类别名称
参数四:▽(Int)触发器的冷却时间,缺省默认为0
参数五:▽(Int)触发器是否开启,非0值表示开启,缺省默认开启
参数六:▽(Int)标记位,1表示当前行触发、2表示使用正则、4表示载入时开启、8表示颜色触发器,默认为0
参数七:▽(String)指定触发器ID

#triggers

开启或关闭触发器和闹钟功能。不加任何参数时,将开关置为相反。等效命令:#ignore 相当一个不带任何参数的#trs,效果是把将开关置为相反。
参数一:▽ on/off 只有两个选项,分别表示开启或关闭

#trs

#triggers命令的简写。

#ts

修改指定ID的定时器的定时时间。ID为空时,修改所有ID为空的定时器的定时时间。
参数一:(Int)定时器的定时时间
参数二:▽(String)定时器ID
示例:修改定id为 dazuo 的定时器时间为50秒 #ts 50 dazuo

#tz

重置指定ID的定时器的定时时间。ID为空时,重置所有ID为空的定时器。
参数一:▽(String)定时器ID
示例:重置id为 dazuo 的定时器时间 #tz dazuo

#unal

#unalias命令的简写。
参数一:(String)别名的名称
示例:删除别名:xkx #unal xkx

#unalias

删除指定的别名。
参数一:(String)别名的名称
示例:删除别名:xkx #unal xkx

#until

重复执行指令,直到逻辑判断语句结果为真时停止。在必要时(比如陷入了死循环运算)也可使用#break命令强制终止。
参数一:(String)逻辑判断语句
参数二:(String)执行的指令
示例
a=0;#until @a>10 {#say a=@a;#add a 1}
重复执行参数二的指令串,当大于十次后停止

#unva

#unvar命令的简写。

#unvar

删除指定的变量。
参数一:(String)变量的名称
示例:删除变量 num #unvar num

#unwa

#unwait命令的简写。
参数一:▽ waitfor/wf 或 all/a 可选参数
示例
#unwait 清空#wait命令建立的延迟指令。
#unwait wf 清空#waitfor命令建立的延迟指令。
#unwait all 清空#wait命令和#waitfor命令建立的所有延迟指令。

#unwait

清空全部延迟执行指令。用#wait命令延迟执行的指令列表将被清空,所有尚未执行的延迟指令都被删除。可选参数“waitfor”:清空#waitfor命令建立的延迟指令。可选参数“all”:清空#wait命令和#waitfor命令建立的所有延迟指令。
参数一:▽ waitfor/wf 或 all/a 可选参数
示例
#unwait 清空#wait命令建立的延迟指令。
#unwait wf 清空#waitfor命令建立的延迟指令。
#unwait all 清空#wait命令和#waitfor命令建立的所有延迟指令。

#updatemxp

重新从服务器原始url地址下载当前MXP图片。
示例:字面意思

#va

#var命令的简写。为指定的变量赋值。如果该变量不存在,则新建一个并赋值。
参数一:(String)指定的变量名,可使用函数和运算式,动态生成变量名
参数二:(String)待赋于的新值
示例:赋值变量名 “num” 为 “1”,变量名不存在的时候自动新建。 #var num 1

#var

为指定的变量赋值。如果该变量不存在,则新建一个并赋值。
参数一:(String)指定的变量名,可使用函数和运算式,动态生成变量名
参数二:(String)待赋于的新值
示例:赋值变量名 “num” 为 “1”,变量名不存在的时候自动新建。 #var num 1

#varcopy

将参数一指定的源变量的值,复制到参数二指定的目标变量。如果源变量值包含嵌套表数据,连同所有嵌套表一并复制。目标变量名不存在的时候会自动新建。
参数一:(String)源变量名
参数二:(String)目标变量名
示例:将变量 a 的值赋值到变量 b: #varcopy a b

#wa

#wait命令的简写。
参数一:▽(Int)延迟时间,以毫秒为单位,缺省默认为1000
参数二:▽(String)逻辑判断语句,缺省默认为真

#wait

延迟指定时间之后,再对逻辑语句进行判断,判断结果为真,则执行后续指令,为假则丢弃后续指令。
参数一:▽(Int)延迟时间,以毫秒为单位,缺省默认为1000
参数二:▽(String)逻辑判断语句,缺省默认为真
示例:延迟一秒后执行后续指令: #wa 1000

#waitfor

延迟等待,在指定的触发语句被触发之后,再继续执行后续指令。如果直到超时还未被触发,则丢弃后续指令,改为执行指定的超时替换指令。触发语句中如有截取匹配值,可在参数五指定一个变量名,以集合型变量的方式保存在该变量。不指定参数五则不保存。
参数一:(String)触发语句,触发规则与触发器相同
参数二:▽(Int)超时时限,以毫秒计算,缺省默认1000毫秒
参数三:▽(Int)触发语句标记,1为当前行触发、2为正则,默认为0
参数四:▽(String)超时替换指令
参数五:▽(String)保存截取匹配值的变量名
示例
#waitfor {你点了点头。} 3000 0 {#say 我三秒内还没点头};#say 我在三秒内点过头
示例讲解:三秒(参数

#while

重复执行指令,直到逻辑判断语句结果为假时停止。在必要时(比如陷入了死循环运算)也可使用#break命令强制终止。
参数一:(String)逻辑判断语句
参数二:(String)执行的指令
示例:与 #until 指令相反

#window

#sendto命令的别名。

#write

对指定ID文件写入一行信息,写入位置位于指定行之后。写入的信息仅保存在内存,并没有实际保存至硬盘文件,只有用户调用#close关闭文件时才执行写入硬盘操作。相关命令与函数:#file/#close/%read()
参数一:(String)指定文件的ID
参数二:(String)写入的信息
参数三:▽(Int)写入位置行,为0时写入第一行,缺省默认写入最后一行
示例
对ID是 a 的文件写入”明楼kill南帝” :#write a "明楼kill南帝 "
写入到第一行:#write a "明楼kill南帝 " 0
写入到第nn行:#write a "明楼kill南帝 " 11

#yesno

打开一个确认框,供用户进行“是”与“否”的选择,并根据选择执行相应的命令。
参数一:(String)提醒用户进行选择确认的提示语
参数二:(String)“是”按钮的替换提示语与执行指令,中间用:隔开
参数三:(String)“否”按钮的替换提示语与执行指令,中间用:隔开
示例
#yesno 是否做胡一刀? 是:{#var do_hyd 1} 否:{#var do_hyd 0};
弹出一个“是/否”选择对话框选择“是”的时候 执行 #var do_hyd 1。选择“否”执行 #var do_hyd 0