OlivaDiceDocs
Search…
[Oliva]喧闹手册
For 2.5.2CHAOS4
世界是属于每一个人的。要创造一个充满逻辑并尊重每一个人的世界。 ——《Новый Элемент Расселения》A.D.1960 Москва
DIXE(OLIVADICE)

喧闹测试

欢迎参加喧闹测试,目前该项目正处于第一阶段。
你可以在通过在DiceXXXXXXXX/plugin/目录下创建.lua脚本文件来增加扩展指令,脚本基本结构如下。

文件格式范例

1
command = {}
2
3
function duel(Msg)
4
a1 = dice.rd("1d100")
5
a2 = dice.rd("1d100")
6
a3 = dice.rd("1d100")
7
a4 = dice.rd("1d100")
8
a5 = dice.rd("1d100")
9
b1 = dice.rd("1d100")
10
b2 = dice.rd("1d100")
11
b3 = dice.rd("1d100")
12
b4 = dice.rd("1d100")
13
b5 = dice.rd("1d100")
14
rv = ""
15
rv = rv .."决斗A:\n"
16
rv = rv .. dice.int2string(a1) .. " + "
17
rv = rv .. dice.int2string(a2) .. " + "
18
rv = rv .. dice.int2string(a3) .. " + "
19
rv = rv .. dice.int2string(a4) .. " + "
20
rv = rv .. dice.int2string(a5) .. "\n= "
21
A = a1 + a2 + a3 + a4 + a5
22
rv = rv .. dice.int2string(A)
23
rv = rv .."\n决斗B:\n"
24
rv = rv .. dice.int2string(b1) .. " + "
25
rv = rv .. dice.int2string(b2) .. " + "
26
rv = rv .. dice.int2string(b3) .. " + "
27
rv = rv .. dice.int2string(b4) .. " + "
28
rv = rv .. dice.int2string(b5) .. "\n= "
29
B = b1 + b2 + b3 + b4 + b5
30
rv = rv .. dice.int2string(B)
31
rv = rv .. "\n"
32
if(A > B)
33
then
34
rv = rv .. "A胜"
35
elseif(A < B)
36
then
37
rv = rv .. "B胜"
38
else
39
rv = rv .. "此乃平局"
40
end
41
return rv
42
end
43
44
command["(\\.|。)duel"] = "duel"
Copied!

脚本原型

对于如下脚本原型:
1
command = {}
2
3
function temFunc(Msg)
4
Reply = ""
5
return Reply
6
end
7
8
command[Regex] = Func
Copied!

指令映射

对于如下指令映射原型:
1
command[Regex] = Func
Copied!
变量名称
数据类型
说明
缺省
command
table
用于暴露指令的映射表
此为必须项
Regex
string
设置指令的正则表达式
此为必须项
Func
string
指令对应所映射的函数名称
此为必须项
可以实现对于Regex正则表达式匹配后的指令,运行Func函数。

传入参数

对于如下函数原型:
1
function temFunc(Msg)
Copied!
Msg将会传入一个结构体,你可以如此调用它的成员:
1
Msg.fromGroup
2
Msg.str[1]
Copied!
它将有以下成员:
成员名称
数据类型
说明
msg
string
所匹配的回复全文
str
table
正则表达式的子表达式,需使用下标调用,如Msg.str[1]
str_max
integer
子表达式数量+1
msgType
integer
消息类型,0为私聊,1为群聊
selfId
integer
本机QQ
fromQQ
integer
本条消息发送者QQ
fromGroup
integer
本条消息所在群号
tergetId
integer
如果为私聊则为本条消息发送者QQ,否则为本条消息所在群号
fromQQTrust
integer
本条消息发送者的信任度
fromQQInfo
integer
本条消息发送者的群内权限,0为私聊,1为群员,2为管理,3为群主

返回值

返回值名称
数据类型
说明
缺省
Reply
string
该字符串将原路返回并回复至触发者
此为必须项

导入模块

1
json = require("dkjson")
Copied!
在上述语句中,你只需要将实际的dkjson.lua文件放入Dicexxxxxxx/plugin/lib下,就可以自动导入。 你可以这样做到将dkjson导入到本脚本中,并以json为模块名进行调用。

内置模块

结合现有功能提供以下内置模块以便于扩展指令的程序设计直接对本体进行干预。

dice模块

draw

1
rv = dice.draw(msg)
Copied!
形参名称
数据类型
说明
缺省
msg
string
你所需要进行转换的消息
-
返回值名称
数据类型
说明
缺省
rv
string
返回经过抽牌堆处理后的结果
-
msg经过抽牌堆处理后作为返回值传出。

send

1
dice.send(msg,tergetId,msgType)
Copied!
形参名称
数据类型
说明
缺省
msg
string
你所需要发送的消息
-
tergetId
integer
目标id,可以是QQ或群号,需结合msgType
-
msgType
integer
消息类型,0为私聊,1为群聊
-
本函数无返回值。
实现发送消息。

int2string

1
rv = dice.int2string(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
记录了某个整数的字符串
-
返回值名称
数据类型
说明
缺省
rv
integer
转换完成后的数值
0
将字符串转换为数字。

rd

1
rv = dice.rd(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
掷骰表达式
-
返回值名称
数据类型
说明
缺省
rv
integer
掷骰后的出目
0
处理掷骰表达式。

md5

1
rv = dice.md5(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
被处理字符串
-
返回值名称
数据类型
说明
缺省
rv
string
MD5计算结果
0
计算MD5。

DiceDir

1
rv = dice.DiceDir()
Copied!
本函数无入参。
返回值名称
数据类型
说明
缺省
rv
string
Dice存档绝对路径,UTF8编码
0
获取Dice存档绝对路径。

mkDir

1
rv = dice.mkDir(path)
Copied!
形参名称
数据类型
说明
缺省
path
string
需要创建的目录路径
-
返回值名称
数据类型
说明
缺省
rv
integer
创建结果,0为成功
-
创建目录。

TCNtoSCN

1
rv = dice.TCNtoSCN(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
需要转换的字符串,UTF8编码
-
返回值名称
数据类型
说明
缺省
rv
string
转换完成的字符串,UTF8编码
-
将繁体字转换为简体字。

SCNtoTCN

1
rv = dice.SCNtoTCN(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
需要转换的字符串,UTF8编码
-
返回值名称
数据类型
说明
缺省
rv
string
转换完成的字符串,UTF8编码
-
将简体字转换为繁体字。

GBKtoUTF8

1
rv = dice.GBKtoUTF8(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
需要转换的字符串,GBK编码
-
返回值名称
数据类型
说明
缺省
rv
string
转换完成的字符串,UTF8编码
-
将GBK编码转换为UTF8编码。

UTF8toGBK

1
rv = dice.UTF8toGBK(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
需要转换的字符串,UTF8编码
-
返回值名称
数据类型
说明
缺省
rv
string
转换完成的字符串,GBK编码
-
将UTF8编码转换为GBK编码。

UrlEncode

1
rv = dice.UrlEncode(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
需要转换的字符串
-
返回值名称
数据类型
说明
缺省
rv
string
完成编码转换的字符串
-
进行Url编码。

UrlDecode

1
rv = dice.UrlDecode(str)
Copied!
形参名称
数据类型
说明
缺省
str
string
需要转换的字符串
-
返回值名称
数据类型
说明
缺省
rv
string
完成解码转换的字符串
-
进行Url解码。

getPcSkill

1
Skill_Val = dice.getPcSkill(QQ,Group,Skill)
Copied!
形参名称
数据类型
说明
缺省
QQ
integer
其QQ号
-
Group
integer
所在群号
-
Skill
string
属性名称
-
返回值名称
数据类型
说明
缺省
Skill_Val
integer
所取属性值
-
读人物卡属性值。

setPcSkill

1
dice.setPcSkill(QQ,Group,Skill,Skill_Val)
Copied!
形参名称
数据类型
说明
缺省
QQ
integer
其QQ号
-
Group
integer
所在群号
-
Skill
string
属性名称
-
Skill_Val
integer
所写属性值
-
本函数无返回值。
写人物卡属性值。

getPcName

1
Name = dice.getPcName(QQ,Group)
Copied!
形参名称
数据类型
说明
缺省
QQ
integer
其QQ号
-
Group
integer
所在群号
-
返回值名称
数据类型
说明
缺省
Name
string
所取人物卡名称
-
读人物卡名称。

setPcName

1
dice.setPcName(QQ,Group,New_Name)
Copied!
形参名称
数据类型
说明
缺省
QQ
integer
其QQ号
-
Group
integer
所在群号
-
New_Name
string
所写人物卡名称
-
本函数无返回值。
写人物卡名称。

fReadJson

1
res = dice.fReadJson(file,json_obj,json_obj,...)
Copied!
形参名称
数据类型
说明
缺省
file
string
Json文件路径
-
json_obj
string, integer
Json键值
-
json_obj
string, integer
Json键值
-
...
string, integer
Json键值
-
本函数入参不定数量。
返回值名称
数据类型
说明
缺省
res
string
所取Json的dump结果
-
本函数可以读取任意路径Json的任意结构体内容,并返回对应内容的dump。 例如对于如下path路径下的文件:
1
{
2
"author":"仑质",
3
"key":{
4
"Key1":"测试文本1",
5
"Key2":"测试文本2",
6
"List":[
7
"列表文本1",
8
"列表文本2"
9
]
10
}
11
}
Copied!
有如下res
1
res = dice.fReadJson(path,"author")
Copied!
res 为 "仑质"
1
res = dice.fReadJson(path,"key")
Copied!
res 为 {"Key1":"测试文本1","Key2":"测试文本2","list":["列表文本1","列表文本2"]}
1
res = dice.fReadJson(path,"key","Key1")
Copied!
res 为 "测试文本1"
1
res = dice.fReadJson(path,"key","List",1)
Copied!
res 为 "列表文本2"

fGetJson

1
res = dice.fGetJson(file,default,json_obj,json_obj,...)
Copied!
形参名称
数据类型
说明
缺省
file
string
Json文件路径
-
default
string
缺省值
-
json_obj
string, integer
Json键值
-
json_obj
string, integer
Json键值
-
...
string, integer
Json键值
-
本函数入参不定数量。
返回值名称
数据类型
说明
缺省
res
string
所取Json的结果
-
本函数可以读取任意路径Json的任意结构体内容,并返回对应内容的精细化处理结果,并在访问失败时返回缺省值。 例如对于如下path路径下的文件:
1
{
2
"author":"仑质",
3
"key":{
4
"Key1":"测试文本1",
5
"Key2":"测试文本2",
6
"List":[
7
"列表文本1",
8
"列表文本2"
9
]
10
}
11
}
Copied!
有如下res
1
res = dice.fReadJson(path,"啥也没有","author")
Copied!
res 为 仑质
1
res = dice.fReadJson(path,"啥也没有","key")
Copied!
res 为 啥也没有
1
res = dice.fReadJson(path,"啥也没有","key","Key1")
Copied!
res 为 测试文本1
1
res = dice.fReadJson(path,"啥也没有","key","List",1)
Copied!
res 为 列表文本2
1
res = dice.fReadJson(path,"啥也没有","key","Fish")
Copied!
res 为 啥也没有

fSetJson

1
dice.fSetJson(file,new_value,json_obj,json_obj,...)
Copied!
形参名称
数据类型
说明
缺省
file
string
Json文件路径
-
new_value
string
需要写入的值
-
json_obj
string
Json键值
-
json_obj
string
Json键值
-
...
string
Json键值
-
本函数入参不定数量。
返回值名称
数据类型
说明
缺省
res
string
所取Json的结果
-
本函数可以在任意文件Json写入任意键值对结构体的内容。 例如对于path路径下的文件:
1
dice.fSetJson(path,"仑质","author")
2
dice.fSetJson(path,"有点问题","key","Key1","Key1_1")
3
dice.fSetJson(path,"测试文本1_2","key","Key1","Key1_2")
4
dice.fSetJson(path,"测试文本2","key","Key2")
5
dice.fSetJson(path,"测试文本1_1","key","Key1","Key1_1")
Copied!
即可实现写入与修改:
1
{
2
"author":"仑质",
3
"key":{
4
"Key1":{
5
"Key1_1":"测试文本1_1",
6
"Key1_2":"测试文本1_2"
7
},
8
"Key2":"测试文本2"
9
}
10
}
Copied!

fDownWebPage

1
rv = dice.fDownWebPage(url,file)
Copied!
形参名称
数据类型
说明
缺省
url
string
对应网址
-
file
string
所需保存的文件路径
-
返回值名称
数据类型
说明
缺省
rv
integer
下载保存结果,0为成功
0
获取对应网页源代码并保存到指定路径文件。
Last modified 9mo ago