• 喧闹手册

For 2.5.2CHAOS4

世界是属于每一个人的。要创造一个充满逻辑并尊重每一个人的世界。 ——《Новый Элемент Расселения》A.D.1960 Москва

喧闹测试

欢迎参加喧闹测试,目前该项目正处于第一阶段。

你可以在通过在DiceXXXXXXXX/plugin/目录下创建.lua脚本文件来增加扩展指令,脚本基本结构如下。

文件格式范例

command = {}

function duel(Msg)
    a1 = dice.rd("1d100")
    a2 = dice.rd("1d100")
    a3 = dice.rd("1d100")
    a4 = dice.rd("1d100")
    a5 = dice.rd("1d100")
    b1 = dice.rd("1d100")
    b2 = dice.rd("1d100")
    b3 = dice.rd("1d100")
    b4 = dice.rd("1d100")
    b5 = dice.rd("1d100")
    rv = ""
    rv = rv .."决斗A:\n"
    rv = rv .. dice.int2string(a1) .. " + "
    rv = rv .. dice.int2string(a2) .. " + "
    rv = rv .. dice.int2string(a3) .. " + "
    rv = rv .. dice.int2string(a4) .. " + "
    rv = rv .. dice.int2string(a5) .. "\n= "
    A = a1 + a2 + a3 + a4 + a5
    rv = rv .. dice.int2string(A)
    rv = rv .."\n决斗B:\n"
    rv = rv .. dice.int2string(b1) .. " + "
    rv = rv .. dice.int2string(b2) .. " + "
    rv = rv .. dice.int2string(b3) .. " + "
    rv = rv .. dice.int2string(b4) .. " + "
    rv = rv .. dice.int2string(b5) .. "\n= "
    B = b1 + b2 + b3 + b4 + b5
    rv = rv .. dice.int2string(B)
    rv = rv .. "\n"
    if(A > B)
    then
        rv = rv .. "A胜"
    elseif(A < B)
    then
        rv = rv .. "B胜"
    else
        rv = rv .. "此乃平局"
    end
    return rv
end

command["(\\.|。)duel"] = "duel"

脚本原型

对于如下脚本原型:

command = {}

function temFunc(Msg)
    Reply = ""
    return Reply
end

command[Regex] = Func

指令映射

对于如下指令映射原型:

command[Regex] = Func

可以实现对于Regex正则表达式匹配后的指令,运行Func函数。

传入参数

对于如下函数原型:

function temFunc(Msg)

Msg将会传入一个结构体,你可以如此调用它的成员:

Msg.fromGroup
Msg.str[1]

它将有以下成员:

返回值

导入模块

json = require("dkjson")

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

内置模块

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

dice模块

draw

rv = dice.draw(msg)

msg经过抽牌堆处理后作为返回值传出。

send

dice.send(msg,tergetId,msgType)

本函数无返回值。

实现发送消息。

int2string

rv = dice.int2string(str)

将字符串转换为数字。

rd

rv = dice.rd(str)

处理掷骰表达式。

md5

rv = dice.md5(str)

计算MD5。

DiceDir

rv = dice.DiceDir()

本函数无入参。

获取Dice存档绝对路径。

mkDir

rv = dice.mkDir(path)

创建目录。

TCNtoSCN

rv = dice.TCNtoSCN(str)

将繁体字转换为简体字。

SCNtoTCN

rv = dice.SCNtoTCN(str)

将简体字转换为繁体字。

GBKtoUTF8

rv = dice.GBKtoUTF8(str)

将GBK编码转换为UTF8编码。

UTF8toGBK

rv = dice.UTF8toGBK(str)

将UTF8编码转换为GBK编码。

UrlEncode

rv = dice.UrlEncode(str)

进行Url编码。

UrlDecode

rv = dice.UrlDecode(str)

进行Url解码。

getPcSkill

Skill_Val = dice.getPcSkill(QQ,Group,Skill)

读人物卡属性值。

setPcSkill

dice.setPcSkill(QQ,Group,Skill,Skill_Val)

本函数无返回值。

写人物卡属性值。

getPcName

Name = dice.getPcName(QQ,Group)

读人物卡名称。

setPcName

dice.setPcName(QQ,Group,New_Name)

本函数无返回值。

写人物卡名称。

fReadJson

res = dice.fReadJson(file,json_obj,json_obj,...)

本函数入参不定数量。

本函数可以读取任意路径Json的任意结构体内容,并返回对应内容的dump。 例如对于如下path路径下的文件:

{
    "author":"仑质",
    "key":{
        "Key1":"测试文本1",
        "Key2":"测试文本2",
        "List":[
            "列表文本1",
            "列表文本2"
        ]
    }
}

有如下res

res = dice.fReadJson(path,"author")

res 为 "仑质"

res = dice.fReadJson(path,"key")

res 为 {"Key1":"测试文本1","Key2":"测试文本2","list":["列表文本1","列表文本2"]}

res = dice.fReadJson(path,"key","Key1")

res 为 "测试文本1"

res = dice.fReadJson(path,"key","List",1)

res 为 "列表文本2"

fGetJson

res = dice.fGetJson(file,default,json_obj,json_obj,...)

本函数入参不定数量。

本函数可以读取任意路径Json的任意结构体内容,并返回对应内容的精细化处理结果,并在访问失败时返回缺省值。 例如对于如下path路径下的文件:

{
    "author":"仑质",
    "key":{
        "Key1":"测试文本1",
        "Key2":"测试文本2",
        "List":[
            "列表文本1",
            "列表文本2"
        ]
    }
}

有如下res

res = dice.fReadJson(path,"啥也没有","author")

res 为 仑质

res = dice.fReadJson(path,"啥也没有","key")

res 为 啥也没有

res = dice.fReadJson(path,"啥也没有","key","Key1")

res 为 测试文本1

res = dice.fReadJson(path,"啥也没有","key","List",1)

res 为 列表文本2

res = dice.fReadJson(path,"啥也没有","key","Fish")

res 为 啥也没有

fSetJson

dice.fSetJson(file,new_value,json_obj,json_obj,...)

本函数入参不定数量。

本函数可以在任意文件Json写入任意键值对结构体的内容。 例如对于path路径下的文件:

dice.fSetJson(path,"仑质","author")
dice.fSetJson(path,"有点问题","key","Key1","Key1_1")
dice.fSetJson(path,"测试文本1_2","key","Key1","Key1_2")
dice.fSetJson(path,"测试文本2","key","Key2")
dice.fSetJson(path,"测试文本1_1","key","Key1","Key1_1")

即可实现写入与修改:

{
    "author":"仑质",
    "key":{
        "Key1":{
            "Key1_1":"测试文本1_1",
            "Key1_2":"测试文本1_2"
        },
        "Key2":"测试文本2"
    }
}

fDownWebPage

rv = dice.fDownWebPage(url,file)

获取对应网页源代码并保存到指定路径文件。

Last updated