LordStar命令和函数详情
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)替换信息
%right(,)
返回字符串右侧指定数量的字符。不进行任何中文字符判断,有可能截取到半个中文字。如需进行中文字符判断,应当使用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:";
向主窗中添加一条客户端提示信息。该信息不会向服务器端发送,也不会被触发器触发,仅仅是作为提示信息存在。与#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