里里 · 内部函数/ssu · 常用函数使用方法 (来自里里wiki http://soliton.sub.jp/satori/index.php?%B3%B0%C9%F4%B4%D8%BF%F4%2Fssu) 【注意事项】 本文档中所有函数均必须使用【英文半角逗号】或【中文全角顿号】 某些例子中的【tab】标识请按下键盘上的tab键来代替 笔者使用的里里中文核心版本为MC147-4,某些函数可能会不适用于过低的版本 这里并没有列出全部的函数,只是挑选了常用的。 本文档提供给有一定里里基础的人,因为不会在这里解释过于基本的里里语法 在看不懂的情况下请复制粘贴到人格辞书内部来查看结果,实在还是不知道怎么用可以联系笔者 【使用前的准备】 要使用ssu.dll的内部函数,必须在satori_conf.txt文档中声明(其它saori也是如此) 声明方法如下 @SAORI choice,saori/ssu.dll,choice join,saori/ssu.dll,join 【函数名】,【dll文件相对路径】,【函数名】 ----------------------------------------------------- 【计算】http://ukadoc.googlecode.com/svn/trunk/manual/descript_install.html#directory,ディレクトリ名 函数名:calc 表达式:(calc,計算式) 说明:能够无视小数点进行计算(小数点以及以后的数字会直接抹掉),也可以作为参数嵌套在if、switch之类函数中。 函数名:calc_float 使用方法:(calc_float,計算式) ------------------------------------------------------ 【条件分支】 函数名:if 表达式:(if,条件式,真值[,伪值]) 举例: * $章鱼【tab】(乱数0~3) :今天钓到了(章鱼)条章鱼。(if,(章鱼)>1,收获不小,没有收获)。 :(if,(章鱼)==0,就不能再努力一点了吗……) 说明:满足条件的话会显示[真值],不满足则会显示[伪值],如果没有不满足的情况或者不满足条件时什么都不显示的话就不写。 另外,关于if中嵌套set的使用,普通方式行不通的时候请任意选择以下两种中的一种来使用↓ ((if、(乱数0~1)、set,a,0、set,b,1)) (when,(乱数0~1),(set,a,0),(set,b,1)) 第二种可能不兼容Mc145之前的版本。 函数名:unless 表达式:(unless,条件,偽值[,真值]) 说明:和if的情况相反 函数名:iflist 表达式:(iflist,条件,情况1,結果1[,情况2,結果2[…,情况n,結果n]],伪值) 举例: * :现在是(iflist,(現在時)==,6,早上,12,中午,15,下午,17,傍晚) 说明:当对话或表达式很长的时候可以使用回车键进行排版 函数名:switch 表达式:(switch,条件,情况1,結果1[,情况2,結果2[…,情况n,結果n]],除了以上情况之外的结果) 举例: * :这个月(switch、 (現在月)、 1、是正月、 2、有情人节、 3、有植树节、 6、有儿童节、 8、放暑假、 12、是年末、 没什么事)。 说明:用半角逗号也是可以的。 函数名:nswitch 表达式:(nswitch,数値,結果1[,結果2[…,結果n]]) 举例: * :现在掷骰子。 掷出了(nswitch、(乱数1~6)、一、ニ、三、四、五、六)。 ------------------------------------------------------ 【截取】 函数名:substr 表达式:(substr,文字列,開始位置[,截取的长度]) 举例: (substr,截取这句话中的一部分,5,3) (substr,截取这句话中的一部分,5,-3)  截取后的结果↓ 的一部 这句话 说明:按字来算,从0开始(第一个字的编号是0)负数的情况是向左数。 ------------------------------------------------------ 【拆分】 函数名:split 表达式:(split,文字列[,用来区分文字列的符号(或者文字)[,最大分割数[,为空的情况下是否分割]]]) 举例: (split,你、、是、谁) (split,你、、是、谁,、) (split,你、、是、谁,、,0) (split,你、、是、谁,、,0,1) 说明:(对应上面例子的顺序) 待分割文字列之后的部分全部省略的情况下会把文字一个个地全部分开。 最大分割数写1以上的数字便会分割成你写的那些个,剩下的全都放在最后那个里,如果写0的话就会按照条件全部分割开。 最后一个参数为1的情况下可以识别两个分隔符之间的空白(即可以存放为空的结果),写0的话会无视这个空白。比如↓ (split,你、、是、谁,、,0,1) 結果(S0)=你(S1)=[空](S2)=是(S3)=谁 (split,你、、是、谁,、,0,0) 結果(S0)=你(S1)=是(S2)=谁 结果存放在(S*)里,使用的时候只要写(S*)就可以了 另外,如果是这样的情况↓ (split,你的名字是谁,的名字) 是不会出现预期结果的,也就是说分割符尽量使用单个的文字或者符号,实在不能的情况下可以使用replace函数来替换。 ------------------------------------------------------ 【替换】 函数名:replace 表达式:(replace,文字列,准备被替换的文字,用来替换的文字) 举例: (replace,这里有一个词要被替换掉,词,句子)  结果↓ 这里有一个句子要被替换掉 ------------------------------------------------------ 【删除】 函数名:erase 表达式:(erase,文字列,要删除的文字) 举例: (erase,这里有一个词在这里要被删除,这里)  ↓ 有一个词在要被删除 说明:将删除所有的“这里” 函数名:erase_first 表达式:(erase_first,文字列,要删除的文字) 举例: (erase,这里有一个词在这里要被删除,这里)  ↓ 有一个词在这里要被删除 说明:只删去第一个出现的“这里” ------------------------------------------------------ 【比较】 函数名:compare 表达式:(compare,文字列1,文字列2) 举例: (compare,ABC,ABC) (compare,ABC,ABC) (compare,ABC,abc) 说明:当两段文字列相同时返回1,不同时返回0.上面的例子结果都是1.(不区分大小写以及全、半角) ------------------------------------------------------ 【获取文字列长度】 函数名:length 表达式:(length,文字列) 说明:有几个字就返回几。 ------------------------------------------------------ 【参数判断】 函数名:is_empty 表达式:(is_empty,参数) 说明:判断某个参数是否为空 函数名:is_digit 表达式:(is_digit,参数) 举例:(is_digit,参数,整数)(is_digit,参数,integer) 说明:判断某个参数是否为整形数(纯数字),是的话返回1,不是的话返回0. ------------------------------------------------------ 【连接】 函数名:join 表达式:(join,用来连接的文字(或符号),対象1[,対象2[…,対象n]]) 举例: (join,と,グー,チョキ,パー) 结果→グーとチョキとパー (calc,(join,+,1,2,3,4,5)) →(calc,1+2+3+4+5) 结果→15 说明:文字的连接是直接的,数字若使用计算符号来连接会被计算为最终结果。 ------------------------------------------------------ 【选择】 函数名:choice 表达式:(choice,参数1[,参数2[…,参数n]]) 举例: * :想喝什么? :(choice,咖啡,牛奶,红茶,水)。 ------------------------------------------------------ 【反向输出】 函数名:reverse 表达式:(reverse,文字列) 说明:把文字列反向输出(不知道干什么用的【。) ------------------------------------------------------ 【新建文件夹】 (这个我没有测试过所以好不好用不明确,有兴趣的可以试试) (mkdir,绝对路径或基础文件夹相对路径) 写法↓ *fold制作 >成功【tab】(mkdir,ghost\satori\ghost\master\名称)==1 :好像失败了…… *成功 :做好了 ------------------------------------------------------ 【附表-saori名称对应列表】 @SAORI fill_desktop,saori/fill_desktop.dll fill_red,saori/fill_desktop.dll,255,0,0 calc,saori/ssu.dll,calc calc_float,saori/ssu.dll,calc_float if,saori/ssu.dll,if unless,saori/ssu.dll,unless nswitch,saori/ssu.dll,nswitch switch,saori/ssu.dll,switch substr,saori/ssu.dll,substr split,saori/ssu.dll,split replace,saori/ssu.dll,replace replace_first,saori/ssu.dll,replace_first erase,saori/ssu.dll,erase erase_first,saori/ssu.dll,erase_first count,saori/ssu.dll,count compare,saori/ssu.dll,compare compare_head,saori/ssu.dll,compare_head compare_tail,saori/ssu.dll,compare_tail length,saori/ssu.dll,length zen2han,saori/ssu.dll,zen2han han2zen,saori/ssu.dll,han2zen hira2kata,saori/ssu.dll,hira2kata kata2hira,saori/ssu.dll,kata2hira sprintf,saori/ssu.dll,sprintf iflist,saori/ssu.dll,iflist is_empty,saori/ssu.dll,is_empty is_digit,saori/ssu.dll,is_digit is_alpha,saori/ssu.dll,is_alpha choice,saori/ssu.dll,choice join,saori/ssu.dll,join reverse,saori/ssu.dll,reverse at,saori/ssu.dll,at lsimg,saori/ssu.dll,lsimg mkdir,saori/ssu.dll,mkdir 2014.9.19 七海 由杞 conieloury.weebly.com