imtoken2.0钱包下载安卓|dice

作者: imtoken2.0钱包下载安卓
2024-03-07 18:12:50

Dice系数(Dice coefficient)与mIoU与Dice Loss-CSDN博客

>

Dice系数(Dice coefficient)与mIoU与Dice Loss-CSDN博客

Dice系数(Dice coefficient)与mIoU与Dice Loss

最新推荐文章于 2024-01-21 08:56:50 发布

interesting233333

最新推荐文章于 2024-01-21 08:56:50 发布

阅读量4.6w

收藏

285

点赞数

53

文章标签:

Dice系数

mIoU

Dice Loss

Dice

语义分割

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/lipengfei0427/article/details/109556985

版权

Dice系数和mIoU是语义分割的评价指标,在这里进行了简单知识介绍。讲到了Dice顺便在最后提一下Dice Loss,以后有时间区分一下在语义分割中两个常用的损失函数,交叉熵和Dice Loss。

一、Dice系数

1.概念理解

Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值范围在[0,1]:

其中 |X∩Y| 是X和Y之间的交集,|X|和|Y|分表表示X和Y的元素的个数,其中,分子的系数为2,是因为分母存在重复计算X和Y之间的共同元素的原因。

对于语义分割问题而言,X-GT分割图像(Ground Truth),Y-Pred分割图像

看图一直观理解一下

图一 Dice系数示意图

公式就可以理解为

2.实际计算

首先将 |X∩Y| 近似为预测图pred和label GT 之间的点乘,并将点乘的元素的结果相加:

(1)预测分割图与 GT 分割图的点乘:

(2)逐元素相乘的结果元素的相加和:

对于二分类问题,GT分割图是只有0,1两个值的,因此 |X∩Y| 可以有效的将在 Pred 分割图中未在 GT 分割图中激活的所有像素清零. 对于激活的像素,主要是惩罚低置信度的预测,较高值会得到更好的 Dice 系数.

(3)计算|X|和|Y|,这里可以采用直接元素相加,也可以采用元素平方求和的方法:

3.PyTorch代码

def dice_coeff(pred, target):

    smooth = 1.

    num = pred.size(0)

    m1 = pred.view(num, -1)  # Flatten

    m2 = target.view(num, -1)  # Flatten

    intersection = (m1 * m2).sum()

    return (2. * intersection + smooth) / (m1.sum() + m2.sum() + smooth)

 

二、mIoU

1.语义分割元素分类的四种情况

true positive(TP):预测正确, 预测结果是正类, 真实是正类 

false positive(FP):预测错误, 预测结果是正类, 真实是负类

true negative(TN):预测正确, 预测结果是负类, 真实是负类

false negative(FN):预测错误, 预测结果是负类, 真实是正类

2.mIoU定义与单个IoU理解

计算真实值和预测值两个集合的交集和并集之比。这个比例可以变形为TP(交集)比上TP、FP、FN之和(并集)。即:mIoU=TP/(FP+FN+TP)。

这里还是直接上个图理解一下,详细解释看图二,我觉得讲的非常棒了。

对于pascal数据集来说, 对于21个类别, 分别求IoU: 对于某一个类别的IoU计算公式如下:

图二 mIoU理解

mIoU:计算两圆交集(橙色部分)与两圆并集(红色+橙色+黄色)之间的比例,理想情况下两圆重合,比例为1。

3.mIoU计算

(1)首先是计算混淆矩阵(误差矩阵)

(2)计算mIoU

这里代码比较多,以后有时间单独拿出来。也可以参考这个链接中的代码部分:https://blog.csdn.net/u012370185/article/details/94409933

以及这个github:https://github.com/dilligencer-zrj/code_zoo/blob/master/compute_mIOU

 

三、Dice Loss

Dice Loss的计算公式非常简单如下:

这种损失函数被称为 Soft Dice Loss,因为我们直接使用预测概率而不是使用阈值或将它们转换为二进制mask。

 Soft Dice Loss 将每个类别分开考虑,然后平均得到最后结果。比较直观如图三所示。

图三 soft dice loss

需要注意的是Dice Loss存在两个问题:

(1)训练误差曲线非常混乱,很难看出关于收敛的信息。尽管可以检查在验证集上的误差来避开此问题。

(2)Dice Loss比较适用于样本极度不均的情况,一般的情况下,使用 Dice Loss 会对反向传播造成不利的影响,容易使训练变得不稳定。

所以在一般情况下,还是使用交叉熵损失函数。

PyTorch参考代码

import torch.nn as nn

import torch.nn.functional as F

class SoftDiceLoss(nn.Module):

    def __init__(self, weight=None, size_average=True):

        super(SoftDiceLoss, self).__init__()

    def forward(self, logits, targets):

        num = targets.size(0)

        smooth = 1

        probs = F.sigmoid(logits)

        m1 = probs.view(num, -1)

        m2 = targets.view(num, -1)

        intersection = (m1 * m2)

        score = 2. * (intersection.sum(1) + smooth) / (m1.sum(1) + m2.sum(1) + smooth)

        score = 1 - score.sum() / num

        return score

 

参考链接:

https://zhuanlan.zhihu.com/p/86704421

https://blog.csdn.net/weixin_43346901/article/details/99880278?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-99880278.nonecase&utm_term=mi%E4%B8%8Edice&spm=1000.2123.3001.4430

https://blog.csdn.net/gjk0223/article/details/2314844

https://blog.csdn.net/Biyoner/article/details/84728417

https://www.aiuai.cn/aifarm1159.html

https://zhuanlan.zhihu.com/p/88805121

https://blog.csdn.net/u012370185/article/details/94409933

优惠劵

interesting233333

关注

关注

53

点赞

285

收藏

觉得还不错?

一键收藏

知道了

12

评论

Dice系数(Dice coefficient)与mIoU与Dice Loss

Dice系数和mIoU是语义分割的评价指标,在这里进行了简单知识介绍。讲到了Dice顺便在最后提一下Dice Loss,以后有时间区分一下两个语义分割中两个常用的损失函数,交叉熵和Dice Loss。一、Dice系数1.概念理解Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值范围在[0,1]:其中 |X∩Y| 是X和Y之间的交集,|X|和|Y|分表表示X和Y的元素的个数,其中,分子的系数为2,是因为分母存在重复计算X和Y之间的共同元素的原因。对于语义分割问题而

复制链接

扫一扫

语义分割常用指标(mIOU,Dice coefficient)

01-07

语义分割mIOU定义如下:

                                                    

其中p_ij表示真实值为i,被预测为j的像素数量,等价于

                                                                            

其中TP(t)表示以为阈值的情况下预测为正样本,实际上也为正样本的数量。

Dice coefficient定义如下:

                                                                   

数据分析MATLAB计算dice系数.zip

05-17

1.版本:matlab2019a,不会运行可私信

2.领域:基础教程

3.内容:【数据分析】MATLAB计算dice系数.zip

4.适合人群:本科,硕士等教研学习使用

12 条评论

您还未登录,请先

登录

后发表或查看评论

【机器学习】图像语义分割常用指标Dice系数 敏感性 特异性 IOU及python代码实现

Everyday try to become better -Kobe Bryant

09-13

7470

由于网上给的Dice系数的求解代码基本上都是batch_size=1的,当batch_size>1的时候,就没法用了,因此在这里对网上流行的代码和自己改的代码分别进行总结。这两个指标在医疗领域很常用,而在机器学习领域常用的是Recall和Precision。

基于DRIVE数据集的视网膜UNet分割

齐落山大勇的博客

01-21

431

test中存放的是测试图片,training中存放的是20张用于训练的图片。imges文件夹中存放的是20张原始图片,mask中存放的是掩码,用于获取感兴趣的区域。manual中存放的是人工标注的groundtruth。这是一个非常小的数据集,非常适合用于视觉分割任务练手。获取数据集中image和对应的mask。图1-3 groundtruth。4 编写损失函数和评价函数。3. 建立UNet模型。

Dice系数

qq_41322802的博客

07-24

3640

1.背景

Dice 系数是常用的分割的评价标准之一 后面还会介绍其他的评价标准。

而且我发现大家的东西都是互相抄来抄去没有意思

2.Dice系数

原理及定义

公式1

假设 X 是 Output【也就是我们输出结果】 维度为(3,3)

Y 为lable【标签】 维度为(3,3)

单一分类

首先我们需要明白Dice系数使用判断两个图片(这里我就指的是X Y)的相似度的,但是在我们的分割任务当中我们通常将

0 代表背景

1 代表预测分割

现在我们假设

a=[

[1,0,1],

[0,0,0],

[0,1

dice系数和iou的区别

qq_40424333的博客

04-10

1843

dice系数和iou的区别

图像分割——Dice系数

YYY_77的博客

06-25

1万+

文章目录图像分割——Dice系数Dice定义Dice系数的python实现

图像分割——Dice系数

在预测脑肿瘤或者皮肤病变的mask模型中,我们一般将mask图像中的像素分类成1或0,即如果像素中有mask,我们声明为1,如果像素中没有mask,我们声明为0,这种对图像进行逐像素二进制分类称为“语义分割”。

如果我们试图去识别图像中的许多对象,则称为“实例分割”,实例分割是一种多分类分割。例如,在自动驾驶汽车视野中,物体被分类为汽车、道路、树木、房屋、天空、行人等。

在语义(二进制)分割和实例(多类)分

图像分割 | Dice损失函数以及评估指标

qq_45023353的博客

05-10

2208

上面是举了个例子来解释Dice损失函数的计算公式的应用,当预测前景中的概率越小,则Dice的值越小,而DiceLoss的值越大,则Dice损失函数越大,两个集合的相似性越小。表示为每一类预测区域和实际区域交集除以预测区域和实际区域的并集的均值。:真阴性数, 在label中为阴性,在预测值中也为阴性的个数;: 假阳性数, 在label中为阴性,在预测值中为阳性的个数;: 假阴性数, 在label中为阳性,在预测值中为阴性的个数;:真阳性数,在label中为阳性,在预测值中也为阳性的个数;

图像分割必备知识点 | Dice损失 理论+代码

忽逢桃林的博客

11-25

1万+

本文包含代码案例和讲解,建议收藏,也顺便点个赞吧。欢迎各路朋友爱好者加我的微信讨论问题:cyx645016617.

在很多关于医学图像分割的竞赛、论文和项目中,发现 Dice 系数(Dice coefficient) 损失函数出现的频率较多,这里整理一下。使用图像分割,绕不开Dice损失,这个就好比在目标检测中绕不开IoU一样。

1 概述

Dice损失和Dice系数(Dice coefficient)是同一个东西,他们的关系是:

DiceLoss=1−DiceCoefficientDiceLoss = 1-

机器学习中的数学——距离定义(十五):Dice系数(Dice Coefficient)

热门推荐

冯·诺依曼

01-02

1万+

Dice系数(Dice Coefficient)用于度量两个集合的相似性,因为可以把字符串理解为一种集合,因此Dice系数也会用于度量字符串的相似性:

Dice(A,B)=2∣A∩B∣∣A∣+∣B∣\text{Dice}(A, B)=\frac{2|A\cap B|}{|A| + |B|}Dice(A,B)=∣A∣+∣B∣2∣A∩B∣​

其中,分子是AAA与BBB的交集数量的两倍,分母为AAA和BBB的长度之和,所以他的范围也在0到1之间。从公式看,Dice系数和杰卡德相似系数非常的类似。杰卡德相似系数是在

图像分割评价指标 - dice coefficient

temperamentalkj

02-19

5659

dice coefficient是用于评估两个样本的相似性的统计量,本质上是衡量两个样本的重叠部分。

公式:

表示集合X、Y之间的共同元素,|X| X元素个数,|Y| Y元素个数。

...

dice-coefficient:索伦森–骰子系数

05-01

骰子系数 。安装该软件包仅适用于ESM:需要使用Node 12+才能使用它,并且必须将其import而不是require d。 : npm install dice-coefficient原料药该软件包导出以下标识符: diceCoefficient 。 没有默认导出。 ...

基于Matlab的使用dice相似系数方法进行图像分割精度验证.txt

11-13

本资源包含基于Matlab的使用dice相似系数方法进行图像分割精度验证源码和图片素材。 包含 实例1:计算二值分割图像的dice相似系数 实例2:计算多区域分割图像的dice相似系数 本资源配套CSDN博客“Matlab图像分割---...

分类问题损失函数 – dice coefficient

01-07

https://en.wikipedia.org/wiki/Sørensen–Dice_coefficient ...dice coefficient是用于评估两个样本的相似性的统计量,本质上是衡量两个样本的重叠部分。 公式: |x|、|Y|分别表示每个集合中...dice loss比较适用于样本

蓝桥杯练习系统-基础题全解C++

最新发布

03-06

蓝桥杯练习系统-基础题全解C++

springboot145基于SpringBoot基于java的在线问卷调查系统的设计-毕业源码案例设计

03-06

如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于问卷调查信息管理方面的不规范,容错率低,管理人员处理数据费工费时,采用新开发的在线问卷调查系统可以从根源上规范整个数据处理流程的正规性和合法性。

在线问卷调查系统能够实现问卷管理,用户管理,题目管理,问卷调查管理,新闻资讯管理等功能。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。

在线问卷调查系统可以提高问卷调查信息管理问题的解决效率,优化问卷调查信息处理流程,并且能够保证存储数据的安全,它是一个非常可靠,非常安全的应用程序。

关键词:在线问卷调查系统;Mysql数据库;Java语言

Java毕设-基于springboot+vue的智慧图书管理系统设计与实现(附源码,数据库,教程).zip

03-06

Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。

包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。

该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

项目都经过严格调试,确保可以运行!

1. 技术组成

前端:html、javascript、Vue

后台框架:SpringBoot

开发环境:idea

数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑)

数据库工具:navicat

部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven

2. 部署

如果部署有疑问的话,可以找我咨询

后台路径地址:localhost:8080/项目名称/admin/dist/index.html

前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

Java毕设-基于springboot+Vue的人事管理系统(附源码,数据库,教程).zip

03-06

Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。

包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。

该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

项目都经过严格调试,确保可以运行!

1. 技术组成

前端:html、javascript、Vue

后台框架:SpringBoot

开发环境:idea

数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑)

数据库工具:navicat

部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven

2. 部署

如果部署有疑问的话,可以找我咨询

后台路径地址:localhost:8080/项目名称/admin/dist/index.html

前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

基于Java的家政服务平台的设计与实现(毕业论文)

03-06

Java基于springboot的家政服务平台的设计与实现

此家政服务平台利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。

家政服务平台有管理员,雇主,雇员三个角色。管理员功能有个人中心,雇主管理,雇员管理,资料认证管理,项目类型管理,服务项目管理,需求信息管理,服务预约管理,申请预约管理,签订合同管理,雇主评价管理,留言板管理,系统管理。雇主可以发布需求,雇员可以申请预约,雇主支付报酬,雇主和雇员可以签订合同,雇主可以对雇员进行评价。

Dice loss 与CE loss组合代码

05-24

以下是将Dice loss和CE loss组合的代码:

```python

import torch.nn.functional as F

class DiceCELoss(nn.Module):

def __init__(self, weight=None, size_average=True):

super(DiceCELoss, self).__init__()

def forward(self, inputs, targets, smooth=1):

# flatten label and prediction tensors

inputs = inputs.view(-1)

targets = targets.view(-1)

# calculate dice score

intersection = (inputs * targets).sum()

dice = (2. * intersection + smooth) / (inputs.sum() + targets.sum() + smooth)

# calculate cross entropy loss

ce_loss = F.cross_entropy(inputs, targets)

# combine dice score and cross entropy loss

loss = 1 - dice + ce_loss

return loss.mean()

```

在这个代码中,我们定义了一个新的损失函数`DiceCELoss`,它将Dice loss和CE loss结合在一起。在`forward`方法中,首先将输入和目标张量展平,然后计算Dice分数并计算交叉熵损失。最后,将Dice分数和交叉熵损失结合在一起,得到最终的损失值。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

interesting233333

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

134

原创

22万+

周排名

1万+

总排名

58万+

访问

等级

4349

积分

183

粉丝

520

获赞

153

评论

2306

收藏

私信

关注

热门文章

0xc0000001代码错误 Win10

84314

Dice系数(Dice coefficient)与mIoU与Dice Loss

46326

Python报错解决:local variable ‘xxx‘ referenced before assignment

30738

利用Matlab进行根轨迹分析法

30143

联想Win10安装Ubuntu双系统教程

25549

最新评论

[语义分割]SPP、空洞卷积与ASPP总结

interesting233333:

把这个模块包装成一个方法,计算好入参和出参的维度,放到主网络里面就行

[语义分割]SPP、空洞卷积与ASPP总结

weixin_45988655:

怎么加入骨干网络呢

Quartus II使用Testbench

澪81:

非常感谢很有用

Ubuntu登录报错/dev/sda1:clean的解决记录贴

a man with a fragrant soul:

解决了吗,好兄弟

STM32 One or more Device Family Pack Devices are not present解决方法

桯籽:

inport到哪里呀?

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

分布式事务-两阶段提交2PC

SPI机制

Gitlab CICD配置runner

2023年4篇

2022年1篇

2021年43篇

2020年21篇

2019年58篇

2018年7篇

目录

目录

最新文章

分布式事务-两阶段提交2PC

SPI机制

Gitlab CICD配置runner

2023年4篇

2022年1篇

2021年43篇

2020年21篇

2019年58篇

2018年7篇

目录

评论 12

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

Metric评价指标-Dice 与损失函数-Dice Loss - 知乎

Metric评价指标-Dice 与损失函数-Dice Loss - 知乎首发于MindSpore最全的metrics切换模式写文章登录/注册Metric评价指标-Dice 与损失函数-Dice Loss世界是我改变的​​中国人民大学 工学硕士1. Dice系数的介绍及实现Dice系数原理Dice是医学图像比赛中使用频率最高的度量指标,它是一种集合相似度度量指标,通常用于计算两个样本的相似度,值阈为[0, 1]。在医学图像中经常用于图像分割,分割的最好结果是1,最差时候结果为0.Dice系数计算公式如下:Dice = \frac{2 * (pred \bigcap true)}{pred \bigcup true}其中pred为预测值的集合,true为真实值的集合,分子为pred和true之间的交集,乘以2是因为分母存在重复计算pred和true之间的共同元素的原因。分母为pred和true的并集。将 (pred \bigcap true) 近似为预测图pred和真实图true之间的点乘,再将点乘的元素结果相加:(1)预测分割图与真实分割图的点乘:(pred \bigcap true) = \begin{bmatrix} 0.02 & 0.01 & 0.01 & 0.03 \\ 0.04 & 0.12 & 0.15 & 0.07 \\ 0.96 & 0.93 & 0.94 & 0.92 \\ 0.87 & 0.97 & 0.96 & 0.97 \\ \end{bmatrix} * \begin{bmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ \end{bmatrix}(2)点乘之后,所有元素相加:(pred \bigcap true) = \begin{bmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0.96 & 0.93 & 0.94 & 0.92 \\ 0.87 & 0.97 & 0.96 & 0.97 \\ \end{bmatrix} -> 0.96+0.93+0.94+0.92+0.87+0.97+0.96+0.97= 7.52对于二分类的问题,真实的分割图是one-hot编码的只有0,1两个值,所以可以有效的将在pred分割图中未在true分割图中激活的所有像素清零。对于激活的像素,主要是惩罚低置信度的预测,较高值会得到更高的Dice的系数。(3)计算分子并集,采用元素直接相加:pred = \begin{bmatrix} 0.02 & 0.01 & 0.01 & 0.03 \\ 0.04 & 0.12 & 0.15 & 0.07 \\ 0.96 & 0.93 & 0.94 & 0.92 \\ 0.87 & 0.97 & 0.96 & 0.97 \\ \end{bmatrix} -> 7.97true = \begin{bmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ \end{bmatrix} -> 8当然Dice也有另一个表达方式,是利用混淆矩阵重的TP,FP,FN来表达:\text{Dice} = \frac{2 * \text{TP}}{\text{FP} + 2 * \text{TP} + \text{FN}}该公式原理如下图:现MindSpore代码实现(同时简单介绍一下MindSpore,MindSpore,新一代AI开源计算框架。创新编程范式,AI科学家和工程师更易使用,便于开放式创新;该计算框架可满足终端、边缘计算、云全场景需求,能更好保护数据隐私;可开源,形成广阔应用生态。2020年3月28日,华为在开发者大会2020上宣布,全场景AI计算框架MindSpore在码云正式开源。MindSpore着重提升易用性并降低AI开发者的开发门槛,MindSpore原生适应每个场景包括端、边缘和云,并能够在按需协同的基础上,通过实现AI算法即代码,使开发态变得更加友好,显著减少模型开发时间,降低模型开发门槛。通过MindSpore自身的技术创新及MindSpore与华为昇腾AI处理器的协同优化,实现了运行态的高效,大大提高了计算性能;MindSpore也支持GPU、CPU等其它处理器。 )"""Dice"""

import numpy as np

from mindspore._checkparam import Validator as validator

from .metric import Metric

class Dice(Metric):

def __init__(self, smooth=1e-5):

super(Dice, self).__init__()

self.smooth = validator.check_positive_float(smooth, "smooth")

self._dice_coeff_sum = 0

self._samples_num = 0

self.clear()

def clear(self):

# 是来清除历史数据

self._dice_coeff_sum = 0

self._samples_num = 0

def update(self, *inputs):

# 更新输入数据,y_pred和y,数据输入类型可以是Tensor,lisy或numpy,维度必须相等

if len(inputs) != 2:

raise ValueError('Dice need 2 inputs (y_pred, y), but got {}'.format(len(inputs)))

# 将数据进行转换,统一转换为numpy

y_pred = self._convert_data(inputs[0])

y = self._convert_data(inputs[1])

self._samples_num += y.shape[0]

if y_pred.shape != y.shape:

raise RuntimeError('y_pred and y should have same the dimension, but the shape of y_pred is{}, '

'the shape of y is {}.'.format(y_pred.shape, y.shape))

# 先求交集,利用dot对应点相乘再相加

intersection = np.dot(y_pred.flatten(), y.flatten())

# 求并集,先将输入shape都拉到一维,然后分别进行点乘,再将两个输入进行相加

unionset = np.dot(y_pred.flatten(), y_pred.flatten()) + np.dot(y.flatten(), y.flatten())

# 利用公式进行计算,加smooth是为了防止分母为0,避免当pred和true都为0时,分子被0除的问题,同时减少过拟合

single_dice_coeff = 2 * float(intersection) / float(unionset + self.smooth)

# 对每一批次的系数进行累加

self._dice_coeff_sum += single_dice_coeff

def eval(self):

# 进行计算

if self._samples_num == 0:

raise RuntimeError('Total samples num must not be 0.')

return self._dice_coeff_sum / float(self._samples_num)使用方法如下:import numpy as np

from mindspore import Tensor

from mindspore.nn.metrics import Dice

metric = Dice(smooth=1e-5)

metric.clear()

x = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]))

y = Tensor(np.array([[0, 1], [1, 0], [0, 1]]))

metric.update(x, y)

dice = metric.eval()

print(dice)

0.20467791371802546每个batch(两组数据)进行计算的时候如下:import numpy as np

from mindspore import Tensor

from mindspore.nn.metrics Dice

metric = Dice(smooth=1e-5)

metric.clear()

x = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]))

y = Tensor(np.array([[0, 1], [1, 0], [0, 1]]))

metric.update(x, y)

x1= Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]))

y1 = Tensor(np.array([[1, 0], [1, 1], [1, 0]]))

metric.update(x1, y1)

avg_dice = metric.eval()

print(dice)2. Dice Loss介绍及实现Dice Loss原理Dice = 1 - \frac{2 * (pred \bigcap true)}{pred \bigcup true}该原理是在Dice系数的基础上进行计算,用1去减Dice系数。这种是在二分类一个批次只有一张图的情况,当一个批次有N张图片时,可以将图片压缩为一维向量,如下图:对应的label也会相应变化,最后一起计算N张图片的Dice系数和Dice Loss。MindSpore二分类DiceLoss代码实现class DiceLoss(_Loss):

def __init__(self, smooth=1e-5):

super(DiceLoss, self).__init__()

self.smooth = validator.check_positive_float(smooth, "smooth")

self.reshape = P.Reshape()

def construct(self, logits, label):

# 进行维度校验,维度必须相等。(输入必须是tensor)

_check_shape(logits.shape, label.shape)

# 求交集,和dice系数一样的方式

intersection = self.reduce_sum(self.mul(logits.view(-1), label.view(-1)))

# 求并集,和dice系数一样的方式

unionset = self.reduce_sum(self.mul(logits.view(-1), logits.view(-1))) + \

self.reduce_sum(self.mul(label.view(-1), label.view(-1)))

# 利用公式进行计算

single_dice_coeff = (2 * intersection) / (unionset + self.smooth)

dice_loss = 1 - single_dice_coeff / label.shape[0]

return dice_loss.mean()

@constexpr

def _check_shape(logits_shape, label_shape):

validator.check('logits_shape', logits_shape, 'label_shape', label_shape)使用方法如下:import numpy as np

import mindspore.common.dtype as mstype

import mindspore.nn as nn

from mindspore import Tensor

loss = nn.DiceLoss(smooth=1e-5)

y_pred = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]), mstype.float32)

y = Tensor(np.array([[0, 1], [1, 0], [0, 1]]), mstype.float32)

output = loss(y_pred, y)

print(output)

[0.7953220862819745]MindSpore多分类MultiClassDiceLoss代码实现在MindSpore中支持在语义分割中有多种损失函数可以选择,不过最常用的还是用交叉熵来做损失函数。class MultiClassDiceLoss(_Loss):

def __init__(self, weights=None, ignore_indiex=None, activation=A.Softmax(axis=1)):

super(MultiClassDiceLoss, self).__init__()

# 利用Dice系数

self.binarydiceloss = DiceLoss(smooth=1e-5)

# 权重是一个Tensor,应该和分类数的维度一样:Tensor of shape `[num_classes, dim]`。

self.weights = weights if weights is None else validator.check_value_type("weights", weights, [Tensor])

# 要忽略的类别序号

self.ignore_indiex = ignore_indiex if ignore_indiex is None else \

validator.check_value_type("ignore_indiex", ignore_indiex, [int])

# 使用激活函数

self.activation = A.get_activation(activation) if isinstance(activation, str) else activation

if activation is not None and not isinstance(self.activation, Cell):

raise TypeError("The activation must be str or Cell, but got {}.".format(activation))

self.activation_flag = self.activation is not None

self.reshape = P.Reshape()

def construct(self, logits, label):

# 进行维度校验,维度必须相等。(输入必须是tensor)

_check_shape(logits.shape, label.shape)

# 先定义一个loss,初始值为0

total_loss = 0

# 如果使用激活函数

if self.activation_flag:

logits = self.activation(logits)

# 按照标签的维度的第一个数进行遍历

for i in range(label.shape[1]):

if i != self.ignore_indiex:

dice_loss = self.binarydiceloss(logits[:, i], label[:, i])

if self.weights is not None:

_check_weights(self.weights, label)

dice_loss *= self.weights[i]

total_loss += dice_loss

return total_loss/label.shape[1]使用方法如下:import numpy as np

import mindspore.common.dtype as mstype

import mindspore.nn as nn

from mindspore import Tensor

loss = nn.MultiClassDiceLoss(weights=None, ignore_indiex=None, activation="softmax")

y_pred = Tensor(np.array([[0.2, 0.5], [0.3, 0.1], [0.9, 0.6]]), mstype.float32)

y = Tensor(np.array([[0, 1], [1, 0], [0, 1]]), mstype.float32)

output = loss(y_pred, y)

print(output)

[0.7761003]Dice Loss 存在的问题:训练误差曲线非常混乱,很难看出关于收敛的信息。尽管可以检查在验证集上的误差来避开此问题。更多MindSpore资料如下,感谢使用,欢迎Fork:编辑于 2021-02-22 14:30图像分割深度学习(Deep Learning)MindSpore​赞同 47​​9 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录MindSpore最全的metricsMindSpore最全的metrics介绍及

分割常用评价指标Dice、Hausdorff_95、IOU、PPV等(打马) - 知乎

分割常用评价指标Dice、Hausdorff_95、IOU、PPV等(打马) - 知乎首发于Deep Learning切换模式写文章登录/注册分割常用评价指标Dice、Hausdorff_95、IOU、PPV等(打马)玖零猴What is T_{0}、T_{1}、P_{0}、P_{1} 脑肿瘤为例T_{1} 蓝色部分表示真实脑肿瘤区域(GroundTruth), T_{0} 蓝色的其它部分为正常脑区域P_{1} 红色部分表示预测的脑肿瘤区域, P_{0} 红色的其它部分为预测的正常脑区域What is TP、TN、FP、FN 假设正样本为脑肿瘤,负样本为正常脑组织,则有如下:TP:True Positive,被判定为正样本,事实上也是正样本 ,即蓝色与红色的交集: T_{1} \wedge P_{1} TP(紫色部分)TN:True Negative,被判定为负样本,事实上也是负样本,即红色与蓝色以外区域TN(紫色部分)FP:False Positive,被判定为正样本,但事实上是负样本,即红色中除了蓝色部分FP(紫色部分)FN:False Negative,被判定为负样本,但事实上是正样本,即蓝色中除了红色部分FN(紫色部分)Dice对于分割过程中的评价标准主要采用Dice相似系数(Dice Similariy Coefficient,DSC),Dice系数是一种集合相似度度量指标,通常用于计算两个样本的相似度,值的范围 0 - 1 ,分割结果最好时值为 1 ,最差时值为 0 Dice(P,T) = \frac{\left| P_{1} \wedge T_{1} \right|}{(\left| P_{1} \right| + \left| T_{2} \right|)/2} \Leftrightarrow Dice = \frac{2TP}{FP+2TP+FN} P y t o r c h 代码示例def dice_coef(output, target):#output为预测结果 target为真实结果

smooth = 1e-5 #防止0除

if torch.is_tensor(output):

output = torch.sigmoid(output).data.cpu().numpy()

if torch.is_tensor(target):

target = target.data.cpu().numpy()

intersection = (output * target).sum()

return (2. * intersection + smooth) / \

(output.sum() + target.sum() + smooth)IOUIOU = \frac{TP}{FP+TP+FN} P y t o r c h 代码示例def iou_score(output, target):

smooth = 1e-5

if torch.is_tensor(output):

output = torch.sigmoid(output).data.cpu().numpy()

if torch.is_tensor(target):

target = target.data.cpu().numpy()

output_ = output > 0.5

target_ = target > 0.5

intersection = (output_ & target_).sum()

union = (output_ | target_).sum()

return (intersection + smooth) / (union + smooth)SensitivitySensitivity=\frac{TP}{TP+FN} P y t o r c h 代码示例def sensitivity(output, target):

smooth = 1e-5

if torch.is_tensor(output):

output = torch.sigmoid(output).data.cpu().numpy()

if torch.is_tensor(target):

target = target.data.cpu().numpy()

intersection = (output * target).sum()

return (intersection + smooth) / \

(target.sum() + smooth)PPVPPV = \frac{TP}{TP+FP} P y t o r c h 代码示例def ppv(output, target):

smooth = 1e-5

if torch.is_tensor(output):

output = torch.sigmoid(output).data.cpu().numpy()

if torch.is_tensor(target):

target = target.data.cpu().numpy()

intersection = (output * target).sum()

return (intersection + smooth) / \

(output.sum() + smooth)Hausdorff_95 (95% HD)Dice对mask的内部填充比较敏感,而hausdorff distance 对分割出的边界比较敏感。下面8张图能够很清晰讲解它的原理:95% HD is similar to maximum HD. However, it is based on the calculation of the 95th percentile of the distances between boundary points in X and Y. The purpose for using this metric is to eliminate the impact of a very small subset of the outliers.Hausdorff_95就是是最后的值乘以95%,目的是为了消除离群值的一个非常小的子集的影响。环境安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numba

pip install hausdorffnumpy 代码示例import numpy as np

from hausdorff import hausdorff_distance

# two random 2D arrays (second dimension must match)

np.random.seed(0)

X = np.random.random((1000,100))

Y = np.random.random((5000,100))

# Test computation of Hausdorff distance with different base distances

print("Hausdorff distance test: {0}".format( hausdorff_distance(X, Y, distance="manhattan") ))

print("Hausdorff distance test: {0}".format( hausdorff_distance(X, Y, distance="euclidean") ))

print("Hausdorff distance test: {0}".format( hausdorff_distance(X, Y, distance="chebyshev") ))

print("Hausdorff distance test: {0}".format( hausdorff_distance(X, Y, distance="cosine") ))

# For haversine, use 2D lat, lng coordinates

def rand_lat_lng(N):

lats = np.random.uniform(-90, 90, N)

lngs = np.random.uniform(-180, 180, N)

return np.stack([lats, lngs], axis=-1)

X = rand_lat_lng(100)

Y = rand_lat_lng(250)

print("Hausdorff haversine test: {0}".format( hausdorff_distance(X, Y, distance="haversine") ))发布于 2020-03-27 14:12深度学习(Deep Learning)图像分割​赞同 203​​19 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录Deep Learning只为简单而生,因为我

DICE中文(简体)翻译:剑桥词典

DICE中文(简体)翻译:剑桥词典

词典

翻译

语法

同义词词典

+Plus

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录

/

注册

中文 (简体)

查找

查找

英语-中文(简体)

dice 在英语-中文(简体)词典中的翻译

dicenoun [ C ] uk

Your browser doesn't support HTML5 audio

/daɪs/ us

Your browser doesn't support HTML5 audio

/daɪs/ plural dice

dice noun [C]

(GAME)

Add to word list

Add to word list

C2 (US also or old use die) a small cube (= object with six equal square sides) with a different number of spots on each side, used in games involving chance

骰子

We need two dice to play the game.

玩这个游戏我们需要两个骰子。

You roll/throw the dice and whoever gets the highest score goes first.

你们掷骰子吧,谁的点数最大谁就先开始。

[ U ] any game involving chance in which dice are thrown

掷骰子类游戏

Let's play dice.

我们来玩掷骰子吧。

更多范例减少例句She was prepared to risk everything on a last throw of the dice.Roman soldiers often passed the time playing board games, with dice and counters like these ones.

dice noun [C]

(PIECE)

a small square piece of something

小方块,丁

Cut the potatoes into small dice.

把土豆切成丁。

习语

no dice

diceverb uk

Your browser doesn't support HTML5 audio

/daɪs/ us

Your browser doesn't support HTML5 audio

/daɪs/

dice verb

(CUT)

C2 [ T ] to cut food into small squares

将…切成小方块,把…切成丁

Peel and dice the potatoes.

把土豆去皮并切成丁。

diced carrots

胡萝卜丁

dice verb

(GAME)

 dice with death mainly UK

to do something extremely dangerous and silly: You're dicing with death driving at that speed on icy roads.

路上结了冰你还开这么快,你是在玩儿命啊。

查看更多

(dice在剑桥英语-中文(简体)词典的翻译 © Cambridge University Press)

dice的例句

dice

The first die represents the tens digit, and the second die the ones digit.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

At 100 ft and 500 mph the only response can be a reflex response, and reflexes can be developed otherwise than by dicing with death.

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

There are three main types of dies used in this process: annular (or crosshead), spider, and spiral.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

The use of movable cores and slides greatly increases the cost of the dies.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

In every turn, each player rolls a die and progresses on the board, which usually has branching paths.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

Immediately the possessed die, the street people wander away, and the survivors are rescued.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

Talk about dicing with death.

来自 Hansard archive

该例句来自Hansard存档。包含以下议会许可信息开放议会许可v3.0

In the die struck manufacturing process there are five basic types of pins: cloisonn, soft enamel, photo etched, screen printed and 4-color printed.

来自 Wikipedia

该例句来自维基百科,在CC BY-SA许可下可重复使用。

示例中的观点不代表剑桥词典编辑、剑桥大学出版社和其许可证颁发者的观点。

C2,C2

dice的翻译

中文(繁体)

遊戲, 骰子, 擲骰子類遊戲…

查看更多内容

西班牙语

dado, dados, cortar en dados…

查看更多内容

葡萄牙语

dado, cortar em cubos, dado [masculine]…

查看更多内容

更多语言

in Marathi

日语

土耳其语

法语

加泰罗尼亚语

in Dutch

in Tamil

in Hindi

in Gujarati

丹麦语

in Swedish

马来语

德语

挪威语

in Urdu

in Ukrainian

俄语

in Telugu

阿拉伯语

in Bengali

捷克语

印尼语

泰语

越南语

波兰语

韩语

意大利语

फासे, द्युत, बारीक चौकोनी तुकडे करणे…

查看更多内容

さいころ…

查看更多内容

zar, küp şeklinde dilimlemek/kesmek, kuşbaşı kesmek/doğramak…

查看更多内容

dés [masculine, plural], dé…

查看更多内容

dau…

查看更多内容

dobbelsteen, in dobbelsteentjes snijden, dobbelen…

查看更多内容

ஒவ்வொரு பக்கத்திலும் வெவ்வேறு எண்ணிக்கையிலான புள்ளிகளைக் கொண்ட ஒரு சிறிய கியூப் (ஆறு சம சதுர பக்கங்களைக் கொண்ட பொருள்) தற்செயல் சம்பந்தப்பட்ட விளையாட்டுகளில் பயன்படுத்தப்படுகிறது, பகடை எறியப்படும் சந்தர்ப்பம் சம்பந்தப்பட்ட எந்தவொரு விளையாட்டும், உணவை சிறிய சதுரங்களாக வெட்ட…

查看更多内容

पासा, छह बराबर वर्ग की भुजाओं वाला एक छोटा घन जिसमे हर ओर एक से छह तक बिंदियाँ होती है, पासा खेलना…

查看更多内容

પાસો, પાસાની રમત, સમારેલું…

查看更多内容

terning, skære i terninger, spille terninger…

查看更多内容

tärning, tärna, spela tärning…

查看更多内容

dadu, berjudi dengan menggunakan dadu…

查看更多内容

der Würfel, in Würfel schneiden, würfeln…

查看更多内容

terninger [masculine, plural], terning…

查看更多内容

چوسر, مہرہ, کوئی بھی کھیل جن میں چوسر، مہرے استعمال ہوتے ہیں…

查看更多内容

гральна кість, нарізати кубиками, грати в кості…

查看更多内容

кубик для игры, нарезать кубиками…

查看更多内容

పాచికలు, పాచికలు విసిరిన అవకాశం ఉన్న ఏదైనా ఆట, ఆహారాన్ని చిన్న చతురస్రాల్లో కత్తిరించడం…

查看更多内容

الزَّهْر…

查看更多内容

ছক্কা, পাশা, ছোটো ছোটো টুকরো করে কাটা…

查看更多内容

kostka, nakrájet na kostky, hrát v kostky…

查看更多内容

dadu, memotong-motong, main dadu…

查看更多内容

ลูกเต๋า, ตัดเป็นสี่เหลี่ยมลูกเต๋า, เล่นพนันโดยใช้ลูกเต๋า…

查看更多内容

súc sắc, thái hạt lựu, đánh bạc bằng súc sắc…

查看更多内容

kostka (do gry ), kroić w kostkę, siekać…

查看更多内容

주사위…

查看更多内容

dado, dadi, tagliare a cubetti…

查看更多内容

需要一个翻译器吗?

获得快速、免费的翻译!

翻译器工具

dice的发音是什么?

在英语词典中查看 dice 的释义

浏览

diatribe

dibber

dibble

dibs

dice

dice with death phrase

dicey

dichotomous

dichotomy

dice更多的中文(简体)翻译

全部

dice, at die

no dice idiom

查看全部意思»

惯用语

no dice idiom

“每日一词”

veggie burger

UK

Your browser doesn't support HTML5 audio

/ˈvedʒ.i ˌbɜː.ɡər/

US

Your browser doesn't support HTML5 audio

/ˈvedʒ.i ˌbɝː.ɡɚ/

a type of food similar to a hamburger but made without meat, by pressing together small pieces of vegetables, seeds, etc. into a flat, round shape

关于这个

博客

Forget doing it or forget to do it? Avoiding common mistakes with verb patterns (2)

March 06, 2024

查看更多

新词

stochastic parrot

March 04, 2024

查看更多

已添加至 list

回到页面顶端

内容

英语-中文(简体)例句翻译

©剑桥大学出版社与评估2024

学习

学习

学习

新词

帮助

纸质书出版

Word of the Year 2021

Word of the Year 2022

Word of the Year 2023

开发

开发

开发

词典API

双击查看

搜索Widgets

执照数据

关于

关于

关于

无障碍阅读

剑桥英语教学

剑桥大学出版社与评估

授权管理

Cookies与隐私保护

语料库

使用条款

京ICP备14002226号-2

©剑桥大学出版社与评估2024

剑桥词典+Plus

我的主页

+Plus 帮助

退出

词典

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

翻译

语法

同义词词典

Pronunciation

剑桥词典+Plus

Shop

剑桥词典+Plus

我的主页

+Plus 帮助

退出

登录 /

注册

中文 (简体)  

Change

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

中文 (简体)

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

关注我们

选择一本词典

最近的词和建议

定义

清晰解释自然的书面和口头英语

英语

学习词典

基础英式英语

基础美式英语

语法与同义词词典

对自然书面和口头英语用法的解释

英语语法

同义词词典

Pronunciation

British and American pronunciations with audio

English Pronunciation

翻译

点击箭头改变翻译方向。

双语词典

英语-中文(简体)

Chinese (Simplified)–English

英语-中文(繁体)

Chinese (Traditional)–English

英语-荷兰语

荷兰语-英语

英语-法语

法语-英语

英语-德语

德语-英语

英语-印尼语

印尼语-英语

英语-意大利语

意大利语-英语

英语-日语

日语-英语

英语-挪威语

挪威语-英语

英语-波兰语

波兰语-英语

英语-葡萄牙语

葡萄牙语-英语

英语-西班牙语

西班牙语-英语

English–Swedish

Swedish–English

半双语词典

英语-阿拉伯语

英语-孟加拉语

英语-加泰罗尼亚语

英语-捷克语

英语-丹麦语

English–Gujarati

英语-印地语

英语-韩语

英语-马来语

英语-马拉地语

英语-俄语

English–Tamil

English–Telugu

英语-泰语

英语-土耳其语

英语-乌克兰语

English–Urdu

英语-越南语

词典+Plus

词汇表

选择语言

中文 (简体)  

English (UK)

English (US)

Español

Русский

Português

Deutsch

Français

Italiano

正體中文 (繁體)

Polski

한국어

Türkçe

日本語

Tiếng Việt

हिंदी

தமிழ்

తెలుగు

内容

英语-中文(简体) 

 

Noun 

dice (GAME)

dice (PIECE)

Verb 

dice (CUT)

dice (GAME)

dice with death

例句

Translations

语法

所有翻译

我的词汇表

把dice添加到下面的一个词汇表中,或者创建一个新词汇表。

更多词汇表

前往词汇表

对该例句有想法吗?

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

例句中的单词与输入词条不匹配。

该例句含有令人反感的内容。

取消

提交

DICE(美国艺电旗下游戏工作室)_百度百科

(美国艺电旗下游戏工作室)_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心DICE是一个多义词,请在下列义项上选择浏览(共6个义项)添加义项收藏查看我的收藏0有用+10DICE播报讨论上传视频美国艺电旗下游戏工作室DICE,全称EA Digital Illusions Creative Entertainment AB,又称EA DICE,是美国艺电旗下的一个游戏工作室,总部位于瑞典斯德哥尔摩。DICE最成功的游戏是其出品的战地系列游戏。中文名Electronic Arts(美国艺电)的子公司外文名EA Digital Illusions Creative Entertainment AB雇员人数200余人成立时间1988年总部地点瑞典·斯德哥尔摩涉及领域电子游戏营业收入2.2亿美元\年目录1重要信息2公司历史▪创建▪发展▪收购3总部变迁4现有项目5相关消息6产品列表7游戏引擎重要信息播报编辑美商艺电数位幻象创意娱乐(EA Digital Illusions Creative Entertainment AB),简称“艺电戴斯(EA DICE)”或“戴斯(DICE)”,是美国艺电旗下的一家游戏工作室。公司建立于1988年,早期以开发弹珠游戏为主。2006年成为美国艺电子公司。现以近年的战地系列游戏和《镜之边缘》而闻名。公司历史播报编辑创建1992年,四个来自瑞典阿尔维斯塔镇(Alvesta)的年轻人:Ulf Mandorff、Olof Gustafsson、Fredrik Liliegren以及Andreas Axelsson创立了DICE(Digital Illusions Creative Entertainment)公司。发展公司旧标起初,DICE主要针对阿米加电脑(Amiga)平台开发弹球游戏,比较有名的有《Pinball Dreams》、《Pinball Fantasies》、《Pinball Illusions》。1998年,DICE公司上市。2002年,DICE制作、微软发行的《越野挑战赛》上市,获得了不错的成绩。此后,DICE又为微软制作了《疯狂城市赛车3》、《越野挑战赛2》等赛车游戏。DICE更大的成就是2002年推出的《战地1942》(Battlefield 1942),DICE也因此一跃成为明星公司。2004年DICE的市值达到5500万美元,很大程度上是《战地1942》的功劳。2004年后,DICE开始专注于战地系列射击游戏的开发,并着手加盟发行战地系列游戏的美国艺电。2006年,新一代自主游戏引擎“寒霜引擎”框架完成,DICE随后开发了基于该引擎的《战地:叛逆连队》等电视游戏。2008年,DICE开发的第一人称动作游戏《镜之边缘》上市,建立了自战地系列后的又一新游戏系列。收购2000年,DICE收购了Refraction Games,并购下了Synergenix Interactive公司90%的股份。2001年,DICE又收购了加拿大公司Sandbox Studios。2004年底,美国艺电(Electronic Arts)宣布以每股61瑞典克朗的价格收购DICE,并最终于2006年10月2日以1亿6000万美元完成了全部股份的收购工作。此时,公司的正式名称前加上了代表美国艺电的“EA”,原CEO的职位也变成了“美国艺电分工作室的总经理”。DICE位于加拿大的分工作室则在收购完成后被关闭。总部变迁播报编辑DICE总部大楼在公司创立之初,由于当时的雇员多是维克舍大学的在校大学生,公司一直在大学的一间宿舍内办公。1994年,公司迁往哥德堡。2005年DICE被美国艺电收购后,DICE的总部迁到了斯德哥尔摩的一栋占地面积达5500平方米的全玻璃大楼。大楼没有巨幅招牌,仅是在边角处贴有公司的标志。楼内不仅有办公场地,也有健身房、台球场等大量的休闲娱乐设施,以及大型鱼缸等装饰物,为员工提供良好的工作环境。现有项目播报编辑游戏平台DICE主要开发PC、Xbox 360、PS3平台的游戏。尽管美国艺电暗示将重视Wii平台的游戏开发,但在近期的采访中,DICE工作人员表示他们没有任何研发Wii游戏的计划。DICE的招牌引擎寒霜2,虽然在Xbox 360以及PS3的应用过程中,因硬件性能达不到而只能开720P分辨率,降低特效设置,那是因为他们考虑到了XboxOne以及PS4。游戏引擎:寒霜2为战地系列量身定做的寒霜引擎已在两款发布的产品内得到应用,仍在不断完善中。加入了DirectX 11代码的寒霜引擎2,如今也已完成,相对于寒霜引擎来说将会有更宏大场面,更富含细节的贴图,更炫的光影效果以及更真实的破坏效果。其代表作战地3与极品飞车16都将DX11的寒霜引擎2的性能展现得淋漓尽致。尤其可叹的是其惊人的场景破坏效果(你甚至能看到爆炸发出的冲击波将树吹得摇摇晃晃),这是别的游戏引擎所无法比拟的。游戏引擎:寒霜3寒霜3引擎,是瑞典DICE游戏工作室为著名电子游戏产品《战地》(Battlefield)系列设计的一款3D游戏引擎。该引擎从2006年起开始研发,第一款使用寒霜引擎的游戏在2008年问世。寒霜引擎的特色是可以运作庞大而又有着丰富细节的游戏地图,同时可以利用较低的系统资源渲染地面、建筑、杂物的全破坏效果。使用寒霜引擎可以轻松地运行大规模的、所有物体都可被破坏的游戏,寒霜3引擎是最新版引擎。相关消息播报编辑《镜之边缘》《镜之边缘》方面,官方表示不会再发布下载包,更新工作基本结束。DICE组建了一个小规模的开发团队完成了《镜之边缘》续作的基本设计,并向美国艺电递交的项目展示。此外,DICE承担了2010年《荣誉勋章》现代战争新作的多人游戏部分的开发任务。该游戏的其它部分则由DICE前任首席执行官西恩·戴克(Sean Dyker)带领的EA LA工作室制作。产品列表播报编辑已发布游戏已经发行的游戏列表,包括资料片、扩展包。不包括游戏合集,以及EA DICE参与但不做主要开发的游戏。DICE的王牌游戏《战地风云3》· 《Pinball Dreams》(1992)Amiga· 《Pinball Dreams》(1993)Amiga· 《Pinball Illusions》(1993)Amiga· 《Benefactor》(1994)Amiga· 《Motorhead》(1998)PC· 《Volvo S40 Racing》(1998)PC·《Legacy of Rosemond Hill》(2000)PC· 《史瑞克》(Shrek)(2001)Xbox· 《Barbie Groovy Games》(2002)GBA· 《越野挑战赛》(Rallisport Challenge)(2002)Xbox / PC· 《战地1942》(Battlefield 1942)(2002)PC;(2004)Mac· 《战地1942:罗马之路》(2003)PC· 《战地1942:秘密武器》(2003)PC· 《疯狂城市赛车3》(Midtown Madness 3)(2003)Xbox· 《越野挑战赛2》(Rallisport Challenge 2)(2004)Xbox· 《战地:越南》(Battlefield Vietnam)(2004)PC· 《战地2》(Battlefield 2)(2005)PC· 《战地2:特种部队》(Battlefield 2: Special Forces)(2005)PC· 《战地2:欧洲力量》(Battlefield 2: Euro Force)(2006)PC· 《战地2:装甲狂暴》(Battlefield 2: Armored Fury)(2006)PC· 《战地2:现代战争》(Battlefield 2: Modern Combat)(2005)Xbox / PS2;(2006)Xbox 360· 《战地2142》(Battlefield 2142)(2006)PC / Mac· 《战地2142:极地风暴》(Battlefield 2142: Northern Strike)(2007)PC / Mac· 《战地:叛逆连队》(Battlefield: Bad Company)(2008)Xbox 360 / PS3· 《镜之边缘》(Mirror's Edge)(2008)Xbox 360 / PS3;(2009)PC· 《战地:英雄》(Battlefield Heroes)(2009)PC· 《战地1943》(Battlefield 1943)(2009)Xbox 360 / PS3· 《战地:叛逆连队2》(Battlefield: Bad Company 2)(2010)Xbox 360 / PS3 / PC· 《战地:叛逆连队2--越南》(Battlefield: Bad Company 2 Vietnam)(2010)Xbox 360 / PS3 / PC· 《荣誉勋章》(Medal of Honor)(2010)(多人联机游戏部分)· 《战地3》(Battlefield 3)(2011)Xbox 360 / PS3 / PC· 《战地3:重返卡肯》(Battlefield 3: Back to Karkand)(2011)Xbox 360 / PS3 / PC· 《战地3:正面交锋》(Battlefield 3: Close Quarters)(2012.6)Xbox 360 / PS3 / PC· 《战地3:装甲杀戮》(Battlefield 3: Armored Kill)(2012.9)Xbox 360 / PS3 / PC· 《战地3:余震》(Battlefield 3: Aftermath)(2012.12)Xbox 360 / PS3 / PC· 《战地3:游戏结束》(Battlefield 3: End Game)(2013.3)Xbox 360 / PS3 / PC· 《极品飞车:亡命狂飙》(Need For Speed : The Run ) (2011) Xbox 360 / PS3 / PC· 《镜之边缘:催化剂》(Mirror's Edge:Catalyst)(2016.6)Xbox one/PS4/pc· 《战地1》(Battlefield 1)(2016.10)Xbox one/PS4/pc· 《战地1:誓死坚守》(Battlefield 1:They Shall Not Pass)(2017.3)Xbox one/PS4/PC· 《战地1:以沙皇之名》(Battlefield 1:In The Name of The Tsar)(2017.9)Xbox one/PS4/PC [1]游戏引擎播报编辑· Refractor(由合并前的Refraction Games制作,应用于《飞鹰行动》)· Refractor 2(应用于《拉力挑战赛》、《拉力挑战赛2》、《战地1942》、《战地:越南》、《战地2》、《战地2142》、《战地:英雄》)·寒霜引擎(Frostbite Engine)(应用于《战地:叛逆连队》)· 寒霜引擎1.5(Frostbite Engine 1.5)(应用于《战地1943》、《战地:叛逆连队2》、《荣誉勋章》多人游戏部分)· 寒霜引擎2(Frostbite Engine 2)(应用于《荣誉勋章:战士》、《战地3》、《极品飞车16》、《战地双雄:魔鬼联盟》、《命令与征服:将军2》)· 寒霜引擎3(Frostbite Engine 3)(应用于《极品飞车:宿敌》、《镜之边缘2》、 《植物大战僵尸:花园战争》、《战地:硬仗》、《龙腾世纪:审判》《战地1》)新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

Dice! 论坛

Dice! 论坛

正在加载…

请使用更现代的浏览器并启用 JavaScript 以获得最佳浏览体验。

加载论坛时出错,请强制刷新页面重试。

全部主题

【框架指南】Dice!gocq版搭建说明

【更新说明】Dice!2.6.6版本介绍

溯洄的一封信

【框架指南】Mirai Dice 下载及搭建说明(最后更新20221118)

当你遇到问题的时候

Dice! 论坛发帖语法指南

欢迎来到Dice!论坛

【机器人分享】丑桔

【功能牌堆】DND功能牌堆

Dice!LLOneBot搭建指南

【更新手记】色子开发日志

【求助】骰子后台显示登录成功,但是没有webui以及登录成功时相对应的提示

【求助】chronocat自定义回复中包含{nick}时出现乱码

【指令脚本】COC对抗骰

【功能模块】好感基础框架DiceFavor1.0.7

【数据牌堆】东方曲目

【求助】如何在mod里引用牌堆?

mirai无法启动

[指令脚本] Pixiv涩图

【求助/求插件】请问LLQQNT是否有黑名单自动退群和自动清理不活跃群的插件

下一页 »

Copyright © 2020-2022 kokona.tech 友情链接: Mirai论坛

骰子的英文为什么是die? - 知乎

骰子的英文为什么是die? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册英语翻译词源骰子的英文为什么是die?如题,骰子的英文为什么是die呢?显示全部 ​关注者15被浏览96,854关注问题​写回答​邀请回答​好问题​添加评论​分享​5 个回答默认排序微言大义的翅扬其实就是懒得多说​ 关注From Middle English dee, from Old French de (Modern French dé), from Latin datum, from datus (“given”), the past participle of dō (“to give”), from Proto-Indo-European *deh₃- (“to lay out, to spread out”).维基词典可以解決你的一切英语词源问题。编辑于 2019-09-27 05:55​赞同 29​​添加评论​分享​收藏​喜欢收起​匿名用户补充那位大齐知友的回答。顺带吐槽另一位。他给的资料已经说到 die 来自法语 dé 的前身。话说英语历史上出现过的拼写有 dee, dye, dy 等(玄学家有得忙了,要把每种拼写都去解释一遍的话) 。换句话说就是来自法语“给”的过去分词。或许由“给出的(结果)”的含义派生。(补充下,这里说的 dé 是过去分词不确切,现代法语继承的只有源自拉 donare 的 donner, 过去分词 donné。与以下同源自拉 dare 的只有在合成词里看到,如拉 mandare > 法 mander, 过去分词 mandé)不管怎么派生的吧,有什么佐证呢?同为罗曼语的西班牙语里叫 dado,是 dar“给”的过去分词;意大利语叫 dado,dare“给”的过去分词;葡萄牙语等也一样,不一一说了。(玄学家又认为这些形式译自汉语的什么呢?)很难理解玄学家的想法。编辑于 2019-10-04 14:39​赞同 13​​7 条评论​分享​收藏​喜欢

Roll a Die

Roll a Die

smartphoneApps

Toggle navigation

Roll a Die

Roll a Die with Start Stop

smartphoneApps

Roll

Roll a single die

Roll 2 Dice

Roll 3 Dice

Roll 4 Dice

Roll a D10

Roll a D20

Roll a D100

2 or more

Roll 2 Dice

Roll 3 Dice

Roll 4 Dice

Roll 5 Dice

Roll 6 Dice

Roll 7 Dice

Roll 8 Dice

Roll 9 Dice

Roll 10 Dice

Roll 100 Dice

Roll 1000 Dice

Roll 2 D20s and more

Roll 2 D10s and more

D20 and more

Roll a D20

Roll a D2

Roll a D4

Roll a D5

Roll a D6

Roll a D7

Roll a D8

Roll a D10

Roll a D12

Roll a D20

Roll a D48

Roll a D100

Roll a D120

Custom

Dice Games

Ship Captain Crew

DnD Roller

Tools

Random Number Generator

Advance number generator with repeat, order and format options.

Combinations Generator

Combinations with advance options like repetition, order, download sets and more options.

Randomly Random

Random decision makers, quick picks, day randomizer and more.

Flip a Coin

A unique coin flipper app that allows side landing, multiple coins, and more options.

Lottery Number Generator

A great app to generate lucky lottery numbers. Tune your lucky numbers to your horoscope, numerology or lucky charm.

Lucky Ball Shuffler

Use a lucky touch to experience true luck with this lucky number picker.

Apps

Roll a Die App

A dice app with start and stop to give you way more options that you will need for your dice games. Multiple screens, totals, history and more.

Number Generator App

A simple number generator app with options for custom numbers, dice, pin codes, history and more

RNG App with timers and more

To use timers with loop speed, advance options, history, start and stop, dice screen, lucky touch screen and more.

Lottery Number Generator

To generate lucky numbers, lottery combinations, horoscopic numbers, numerology lucky numbers, shuffle balls, scramble and more.

Toss a Coin

RNG

Lucky Numbers

Roll a die

Roll a D20

Roll 2 dice

3 dice

D4

D6

D8

D10

D12

D20

D100

Dice Games

More Dice

Roll a die

D20

D100

D48

D12

D10

D8

D6

D4

D5

D7

More Dice

Mobile app

Advertisement

Roll

5

text_format

fullscreen

fullscreen_exit

settingsOptions

get_appDownload

content_copyCopy

add_to_home_screenGoClip

Settings

close

Show Totals Only

Show Stats

20

4

6

8

10

12

48

100

dice

sided

add_circle

Roll times   

Show Last Roll Only

settingsoptions

Go

Start

Stop

Stop

One

Zoom

Advertisement

Advertisement

Best Dice Roller online for all your dice games with tonnes of features:

Roll a D6 die (6 sided dice). Roll D20, D100, D8, D10, D12, D4, and more.

Roll two dice, three dice, or more. Even combine with other dice.

Throw dice for games like Dungeons and Dragons (DnD) and Ship-Captain-Crew.

Lets you add/remove dice (set numbers of dice to make a custom dice roller).

Combine with other types of dice to throw and make a custom dice roll.

Roll dice multiple times. You can choose to see only the last roll of dice.

Displays sum/total of the dice thrown. You can choose to see the sum only.

Magic Filters

×

Add magic filter add_circle_outline

Done

Display Font

×

Font size in pixels (e.g. 100, 200, 500)

Font color in hex (e.g. AC0, F00, CCC)

Find a random hex color here

OK

Odd / Even

×

Custom

Enter number of odd numbers

OK

Statistics

×

Add/Roll Dice

×

4

Add a d4

Roll a d4

6

Add a d6

Roll a d6

8

Add a d8

Roll a d8

10

Add a d10

Roll a d10

12

Add a d12

Roll a d12

20

Add a d20

Roll a d20

48

Add a d48

Roll a d48

100

Add a d100

Roll a d100

d

Add this

Roll this

Dice

Roll a Die

Roll 2 Dice

Roll a D20

Roll a D4

Roll a D8

Roll a D10

Roll a D12

Roll a D100

More Links

More Dice Rolls

Learn about fair dice

Privacy Policy

More Random Games

Decision Maker

Lottery Numbers

Toss a Coin

Random Apps

Lottery Numbers App

Roll a Die App

Number Generator App

RNG App

Dice Roll App with Start/Stop

© RollADie.net

...

dice是什么意思_dice的翻译_音标_读音_用法_例句_爱词霸在线词典

是什么意思_dice的翻译_音标_读音_用法_例句_爱词霸在线词典首页翻译背单词写作校对词霸下载用户反馈专栏平台登录dice是什么意思_dice用英语怎么说_dice的翻译_dice翻译成_dice的中文意思_dice怎么读,dice的读音,dice的用法,dice的例句翻译人工翻译试试人工翻译翻译全文简明柯林斯牛津dice英 [daɪs]美 [daɪs]释义n.骰子; 掷骰游戏v.将…切成丁大小写变形:DiceDICE点击 人工翻译,了解更多 人工释义词态变化第三人称单数: dices;过去式: diced;过去分词: diced;现在分词: dicing;实用场景例句全部骰子diced carrots胡萝卜丁牛津词典‘Did you get that job? ’ ‘No dice. ’“你得到那份工作了吗?”“没门儿啊。”牛津词典We played dice all night.我掷了一夜的色子。牛津词典to roll/throw/shake the dice滚 / 掷 / 摇骰子牛津词典a pair of dice一对骰子牛津词典Dice the onion...把洋葱切成丁。柯林斯高阶英语词典Add the crushed garlic and remaining diced vegetables.加入捣碎的大蒜和剩余的蔬菜丁。柯林斯高阶英语词典Rinse garlic and chop finely. Rinse red chili and dice finely.蒜头洗净,剁蓉;红辣椒洗净,切幼粒.期刊摘选Non capisco perch é quando uno dice Torino dovrebbe , secondo Lei , andarci in automobile.可是所有的人想提杜林的时候, 都可以说的.高可尊先生说道.期刊摘选The dice are hot tonight.今晚手气很好.期刊摘选Finely dice the water chestnuts black mushrooms, wash vegetable greens and silver fungus.马蹄、冬菇切成幼粒, 青菜和银耳洗净.期刊摘选He enticed his former employer into another dice game.他挑逗他原来的老板再赌一次掷骰子.辞典例句He cast the dice.他掷骰子.期刊摘选I asked my Dad if I could borrow his car, but he said no dice.我问我老爸能不能借他的车, 他说不行.期刊摘选Wash asparaguses and carrot. Dice asparaguses and shred carrot . Blanch . Then rinse in cold water.把芦笋和甘笋洗净,芦笋切粒,甘笋切丝,飞水过冷河,备用.期刊摘选To roll ( a particular combination ) with dice.用骰子掷 ( 某种特定组合 )期刊摘选A dice is a cube.骰子是立方体.《简明英汉词典》All her attempts to find a better job were unsuccessful; It'seemed that the dice were loaded against her.她想找个好点的工作,可一切的努力都没成功. 她总是不顺利.《简明英汉词典》Bill wanted to let Bob join the team, but I said that was no dice because Bob was too young.比尔想让鲍勃参加球队, 但我没同意,因为鲍勃年龄太小.《简明英汉词典》We tried phoning, but it was no dice.我们试着打过电话, 但是打不通.辞典例句Dice the shrimps and fish. Blanch about 2 minutes . Scoop them out and set aside.虾仁和鱼肉分别切成小细丁. 放入滚水中稍加汆烫2分钟捞起.期刊摘选He asked her for more money, but she said no dice to him.他要她多给些钱, 但她对他说不行.期刊摘选The king said,'shall we gamble on thethe dice? "国王说: “ 我们来赌骰子, 怎么样 ? ”期刊摘选I cannot believe the God would choose to play dice with the universe.他相信神不会用或然率来决定人的命运,所有的事都有意义.期刊摘选Kicked on that occasion for cheating at dice?是因为掷骰子做假么?英汉文学 - 双城记Fish - Prawn - Crab DiceFish - Prawn - Crab is a classics Chinese gambling game which should be plays with dice.鱼虾蟹,又称鱼虾蟹骰宝,是赌博游戏的一种.期刊摘选Sometimes the dice just don't fall for the players and your own are on a roll.有的时候色子并不喜欢玩家,这时你有个特别幸运的投色子.期刊摘选Death and dice level all distinction.死亡和骰子一视同仁.尽管截然不同,却一样铁面无私.期刊摘选收起实用场景例句英英释义Noun1. small cubes with 1 to 6 spots on the faces; used to generate random numbersVerb1. cut into cubes;"cube the cheese"2. play dice收起英英释义词组搭配dice with deathtake serious risks玩命,冒大风险no dice(informal, chiefly N. Amer.)used to refuse a request or indicate no chance of success(非正式,主北美)不行;没门(用于拒绝请求或表示不可能做到)收起词组搭配同义词n.骰子cubescutcube其他释义cubecut行业词典体育骰子   释义词态变化实用场景例句英英释义词组搭配同义词行

Dice! Master手册 — Dice! 2.6.6-rc 文档

Dice! Master手册 — Dice! 2.6.6-rc 文档

Dice!

latest

内容:

炼骰手册

骰主手册

前言

目录

更新说明(2.6.6)

2.6.5

2.6.4

2.6.3

2.6.2

2.6.1

2.6.0

QQ框架(Dice!2.5.0+)

QQ登录协议

选择一个框架

框架接口差异

框架目录结构

Mirai目录

2.5.0+版本升级

从低版本升级到2.5.0+

迁移骰娘存档到整合包

Mirai框架升级

WebUI配置面板(推荐)

WebUI 基础使用

WebUI 配置

WebUI 环境变量

配置远程访问

GUI管理面板(已停更)

骰主(Master)

控制台指令

状态查看

遥控开关

消息发送(.send)

消息转发(.link)

系统指令(.system)

一键清群(.master groupclr)

全局配置

通知窗口

全局开关(.admin DisabledGlobal=0/1)

定时点事件(.admin clock)

定时长事件

用户策略

用户记录(.user)

用户授信(.user trust)

过期数据自动清理(.admin InactiveUserLine/InactiveGroupLine=360)

监听好友申请(.admin ListenFriendRequest=1)

允许陌生好友邀请(.admin AllowStranger=0/1/2)

单群设置(.group)

授权许可(!authorize)

批量群处理(.groups)

监听群邀请(.admin ListenGroupRequest=1)

入群检测(.admin ListenGroupAdd=1)

私用模式(.admin Private=1)

审核模式(.admin CheckGroupLicense=0/1/2)

黑名单(.admin blackqq/blackgroup)

不良行为检测(.admin ListenGroupKick/ListenGroupBan/ListenSpam=1)

邀请人连带(.admin KickedBanInviter/BannedBanInviter=1)

云操作(.cloud)

查看更新(.cloud update)

同步不良记录(.cloud black)

不良记录

不良记录上传(.admin CloudBlackShare=1)

读取外源记录文件

云记录注销

用户自行解黑

其他机制

框架消息富文本转义(CQ码)

消息送间隔(.admin SendIntervalIdle=500)

回复引用原消息(.admin ReferMsgReply=1)

本系骰识别

个性化

文本转义标识

扩展模块mod

远程模块资源

个性化WebUI

自定义

扩展指令

自定义帮助词条(.helpdoc)

自定义回复(.reply)

自定义回执文本(.str)

自定义敏感词库(.admin censor)

外置牌堆

支持作者

常见问题

登录失败

账号风控(消息屏蔽)

网络连接失败

命令行窗口无动静,按回车有

Dice驱动器启动失败

[Fatal]: listen tcp 127.0.0.1:15800: bind: Only one usage of each socket address is normally permitted.

磁盘空间占用增多

忘记WebUI管理密码

Mirai红字报错

W/MiraiNative: 当前运行环境 64 可能不与 Mirai Native 兼容,推荐使用 32位 JRE 运行 Mirai Native

W/MCL Addon: iTXTech Soyuz 未安装,Soyuz MCL Handler 特性已禁用

附录

配置项目表

通知类型表

文件位置表

Mod文件示例

更新历史

更新说明(2.5.2)

更新说明(2.5.1)

更新说明(2.5.0)

更新说明(2.4.1)

更新说明(2.4.0)

更新说明(2.3.8exp)

后记

更新手记(2022.11.21)

更新手记(2021.2.20)

更新手记(2020.10.2)

更新手记(2020.7.29)

更新手记(2020.5.14)

Dice! 用户手册

使用实例

开发手册

Dice!

Docs »

Dice! Master手册

Edit on GitHub

Dice! Master手册¶

手册更新时间:20220607

这是Dice!于2022.12.15更新2.6.6rc(638)后对应的Master手册。

用户指令请参考用户手册。

更多内容可参看Dice!论坛。

本手册中[DiceData]一律指代Dice!存档目录,当前版本格式为[框架根目录]/Dice[DiceQQ]

前言¶

感谢您选择Dice!

此手册将帮助您了解Dice!的基本使用和配置

如果在使用中遇到任何问题或者有任何建议,请在阅读文档后访问Dice!论坛提出你的想法

如果你认为此文档中有任何错误或值得改进的地方,欢迎点击右上方 Edit on GitHub 按钮修改文档。或者你也可以在论坛提出你的想法

祝跑团顺利!

目录¶

更新说明

从2.5.0+版本升级

从低版本升级到2.5.0+

框架说明

管理面板

控制台指令

全局配置

用户策略

云操作

不良记录

个性化

扩展指令

自定义回复

自定义回执文本

支持作者

常见问题

登录失败

账号屏蔽

网络连接失败

附录

更新历史

后记

更新说明(2.6.6)¶

新增: 变量赋值转义标识var

新增: 转义send定向发送的消息

新增: toml读写

新增: webui远程获取模块资源

新增: webui可进行mod调序

优化: webui可定制化

修复: rc附带奖惩骰时无法调取属性

2.6.5¶

重写认主机制

恢复cloud update远程更新

reply与msg_order合并,新增限制项lock

优化消息转义,支持case、grade条件输出等,支持welcome有限转义

留档每日数据至/user/daily/

优化mod on/off热插拔,支持mod get安装/info信息/detail详细信息/delete卸载/reload重载/update更新/reinstall重装

WebUI新增模块管理页

mod新增image与audio子目录

支持TimeZoneLag项手动调整时差

新增各项lua交互特性,新增函数getSelfData,msg:format等

json等数据结构采用fifo特性

2.6.4¶

WebUI优化回执跨行编辑,同步reply的触发词多对一

新增.mod on/off/list指令

mod新增event子目录,支持循环cycle/定时clock/代理hook类型事件

更新log指令,允许自定义log名

更新ob指令

新增.link state/list

2.6.3¶

新增DisableStrangerChat禁用非好友私聊

lua允许向msg读写成员,支持msg:echo方法

扩展mod目录结构,支持reply/script/speech子文件夹

优化文本转义,支持花括号多层嵌套,支持{vary:uid?}对用户差分

优化关键词回复的解析,支持一个回复对应多个关键词,指令设置时以 | 为分隔符

http.post支持定义contentType

修复.sc使用给定理智值时,剩余理智存入角色卡的bug

修复[敏感词检测](#自定义敏感词库(.admin censor))时点(点号开头、指令、回复、被at时)

2.6.2¶

可使用.str reset指令重置过时的文本而无需重启了

reply新增触发限制条件,reply set时可加入Limit字段

优化.setcoc指令,可使用.setcoc show查看

getUserConf支持获取用户名称

getGroupConf支持获取群名片/群权限/最后发言

WebUI页面为Master配置项添加说明

角色卡、用户配置、群配置支持读写table

lua新增函数log,用于向框架或通知窗口输出日志

允许设置全局默认rc房规

允许lua修改5级以下信任

2.6.1¶

lua新增http.get/http.post等函数

对lua优化require路径,现在require可以读取Diceki/lua/文件夹下的lua或dll了

CustomMsg不再兼容远古版本的序号转义(形如{0}{1}),请手动调整

新增.bot信息抬头strBotHeader,请自定义(默认发布版写作"标准型",测试版写作"试作型")

自定义回复新增前缀匹配模式

新增.ak指令

WebUI提供reply跨行编辑按钮

2.6.0¶

ww指令机制优化

支持reply使用多种触发模式与回复模式

可使用WebUI进行远程图形化配置,原设置插件/综合管理重定向至WebUI

.pc stat角色卡掷骰统计

QQ框架(Dice!2.5.0+)¶

2.5.0版本,Dice!本体由酷Q插件改为了独立于框架的dll,由作为框架插件的DiceDriver加载,具体能实现的接口视框架条件而不同。先驱跑路后,Dice!驱动器目前支持Mirai、MyQQ、MyQQA、OnoQQAir、go-cqhttp框架,也在跟进OvQQ等更新。由于不同版本适配进度不同,你可能无法找到以下所有版本。Miria加载DiceDriver须使用MiraiNative插件。

QQ登录协议¶

同一QQ在同一类型设备(手Q/电脑/平板)登录时会将原先设备挤占下线,因此骰娘在框架登录所用设备应与人工登录所用设备错开。

选择一个框架¶

MiraiAndroid是当前不使用模拟器在手机挂载Dice的唯一选择,MiraiDice也支持在Linux、MacOS等系统挂载Dice,详见Dice! 论坛 Mirai版教程。

框架接口差异¶

Mirai2.*(MiraiNative转接):

支持手Q/平板登录

不能多开QQ,启动即登录

无法处理登录设备异常(但支持设备锁验证)

不能响应来自自己的消息

无法获取未加入群的群信息

支持Windows, Linux, MacOS, Android, iOS(停更中)

HiMyQQ:

由于程序不支持附加调试,存在未排除的异常风险

固定PC设备登录,协议可以选PC版QQ或者PC版TIM等

允许多开QQ,支持扫码登录

无法私聊发送语音文件

MyQQA(MQ安卓版):

由于程序不支持附加调试,存在未排除的异常风险

支持手Q/平板登录

允许多开QQ,但不支持启动自动登录

选择手表协议登录时支持扫码登录

接收好友申请时无法获取验证信息

因为程序缺陷,会出现连接服务器失败、“与服务器北京时间相差超过1秒”等问题

能接收频道消息,但发送频道消息疑似需要申请官方接口

go-cqhttp:

2. 支持手Q/平板/手表登录

3. 不能多开QQ,但DiceDriver支持一键启动多个go-cqhttp.exe

4. 支持扫码登录

框架目录结构¶

Mirai目录¶

非Windows系统可能目录稍微不一致,但文档中提到的应该适用于任何操作系统。Android版目录位置为内部存储空间/Android/data/io.github.mzdluo123.mirai.android/files/

2.5.0+版本升级¶

Mirai版本:执行Update.sh/更新.cmd

MiraiAndroid: 安装新版APK

其他版本: 需要将更新版的w4123.Dice.dll放入Diceki文件夹替换旧文件,并重载DiceDriver插件;如果DiceDriver同时有新版则必须同步更新

请关注论坛以获得具体版本的更新方法

从低版本升级到2.5.0+¶

迁移骰娘存档到整合包¶

将对应版本的存档目录[DiceData]复制到新框架根目录下。

原Dice2.4.0及以上版本:根目录下的Dice[DiceQQ]文件夹

原Dice2.3.8exp9及以上版本酷Q骰娘:根目录下的DiceData文件夹CQ根目录下的DiceData文件夹

如为原Dice2.3.8exp10(555)及以下版本:将data/app/com.w4123.dice复制到新目录[DiceData]/com.w4123.dice的位置。data/app/com.w4123.dice

Mirai框架升级¶

按照论坛中教程,使用新安装方法安装新版本Mirai

迁移Dice[DiceQQ]目录

将根目录下device.json复制到根目录下(让Mirai继续使用先前的登录信息)

WebUI配置面板(推荐)¶

WebUI是全平台可用的图形化配置页面,通过Dice!初始化时运行的监听端口访问。

WebUI 基础使用¶

在登录成功以后,Dice!会向Master(没有Master的情况下,自己) 发送WebUI运行的端口。如图中运行在8080端口。默认情况下,WebUI运行在一个随机的未使用的端口,但你可以通过WebUIPort属性更改。

启动初始化

在本地(运行Dice的同一个设备)浏览器中输入http://127.0.0.1:端口进入WebUI 请一定要输入http://否则某些浏览器会卡死 .system gui指令也会引导打开WebUI如果你在远程访问WebUI,请确定已配置好防火墙等,并使用对应的IP地址或域名访问(而不是127.0.0.1)

端口访问WebUI

提示登录时,默认用户名为admin,密码为password,进入WebUI后可在WebUI配置栏更改密码。WebUI默认只允许本地访问,所以如果设备只有你一个人能访问(不是共享的云服务器等)不更改密码也无所谓。

主界面

可以在上面执行管理操作,应该都符合直觉。需要注意的是你可以直接点击表格修改其中内容,表格中的修改无需点击保存等,会在编辑完成后自动生效。

WebUI 配置¶

WebUI有三个配置项,更改配置后重启才会生效

EnableWebUI - 启用WebUI, 0为禁用, 1为启用, 默认为1

WebUIPort - WebUI端口, 0为随机, 其他为固定端口

WebUIAllowInternetAccess - 允许从非本地地址访问WebUI, 0为不允许, 1为允许, 默认为0, 也就是WebUI默认只能从本地访问。如果你使用Docker网络等,你可能需要将此项设置为1才能在Docker宿主机上访问WebUI。

WebUI 环境变量¶

可以通过环境变量设置WebUI配置。环境变量具有较高优先级。

DICE_WEBUI_PORT 设置端口,0为随机端口

DICE_WEBUI_PORT_USE_VARIABLE 使用另一个环境变量的值作为端口,比DICE_WEBUI_PORT有更高优先级,可用于PaaS等平台

DICE_WEBUI_ALLOW_INTERNET_ACCESS 0为不允许, 1为允许

配置远程访问¶

WebUI 使用 HTTP Digest验证,密码保存为Digest,理论上比较安全。然而,如果需要暴露到公网,我们仍然推荐使用nginx或apache等配置好TLS然后反向代理到Dice WebUI以确保安全。

当然,允许远程访问前请务必更改密码,不然再安全也没用。

GUI管理面板(已停更)¶

任意Windows框架可对骰娘发送.system gui打开图形界面(确认进入GUI,取消进入WebUI)。请注意此页面仍可使用,但将不会继续更新并有可能在未来版本移除,推荐使用上方提到的WebUI进行设置修改。

(MiraiNative)右键托盘图标(流泪猫猫头)->(插件菜单)Dice!->综合管理Mirai面板入口

(OQ等)切换至插件列表页->Dice.Driver(右键)->设置插件。单框架多开时请使用指令,避免错乱

可在界面内设置Master、调整用户信任、修改CustomMsg文本、修改全局配置

图形界面2

骰主(Master)¶

Master是骰娘的控制者,每个骰娘同时至多只能有一个Master。Master可以控制骰娘的发言和行为,并进行大量个性化配置,也对骰娘行为负责。受信任用户也可以获得对骰娘的部分权限,但只有Master拥有发放和回收高级权限的权限。

新生骰娘默认为无主状态,你可以在WebUI/GUI管理面板完成认主(推荐,WebUI支持全平台)或在聊天栏输入口令认主。无主骰娘在启动时将向自身账号及框架日志窗口输出认主口令,在聊天栏中对骰娘发送对应口令将绑定发送者账号为Master。也可直接在管理面板设置Master。认主时将自动开启全类型通知窗口,建议将部分通知特别是通知窗口0转移到专门的小群。

.master delete 解除绑定,骰娘此时会重回无主状态,清空通知窗口,但先前设定的配置不会初始化。

.master reset [新masterQQ] 解除绑定,骰娘此时会认主[新masterQQ](原Master保留信任级别)

.master admin添加管理时自动将私聊添加为监视窗口,管理可以用.admin delete放弃权限,清除窗口可以私聊.admin notice - me

控制台指令¶

状态查看¶

.admin state 可以查看当前的全局设置和黑白名单情况

遥控开关¶

.admin boton/botoff [群号] //等效于所在群群管使用.bot on/off

.dismiss [群号] //可以遥控骰娘退出所在的群,即使骰娘不在,也能将该群移出白名单

消息发送(.send)¶

send用于用户与管理员间的远程交流

.send 待发送消息 (任何人可用)向Master发送消息

.send [窗口] [待发送消息] //向指定窗口发送消息(权限4限定;权限5用户发送的消息不会标明转发来源,等效于骰娘亲自说话)

窗口是指QQ收发消息的聊天窗口。窗口参数识别一下6种格式:

qq [QQ号]

group [群号]

discuss [讨论组号]

notice [通知类型](仅send可用)

this(发送指令的窗口)

me(发送者的私聊窗口)

消息转发(.link)¶

link用于管理员与特定窗口保持交流(尤其是新加入、待审核的群),或者操纵骰娘跑团

.link to/from/with [窗口] 当前窗口向目标窗口单向转发/单向接收/双向转发消息

.link close 关闭从当前聊天窗口发起的消息转发

.link start 开启上次建立的链接

对象窗口为群/讨论组时,可省略group/discuss,直接输入群号;对象为私聊时,qq可简写为q

转发自Master的消息不会标明转发来源,等效于骰娘亲自说话

无法确认目标聊天窗口是否存在,可能会导致没有反应

系统指令(.system)¶

.system save //立即存储所有数据(相当于执行所有停用应用时的操作)

.system load //立即读取外置文件(模块、牌堆和角色卡模板)。便于不重载应用的反复调试。save/load涉及的文件见附录。

.system state //显示插件运行时间及内存占用等硬件信息

.system rexplorer //杀死资源管理器后重启。当 Windows 服务器内存占用逐渐随时间而升高时,考虑由资源管理器逐渐占用内存导致,可能适用该指令。权限5可用。

一键清群(.master groupclr)¶

遍历群列表并退出符合条件的群,也可以在应用菜单中【一键清退】。部分框架群列表上限500,请避免群数超过500。单次清群上限受GroupClearLimit调节(默认一次至多退20个群)。

.master groupclr 可以实现一键退群,无参数时默认参数为unpower

.master groupclr [天数] 将退出当前所有骰娘在指定天数内未发言的群

.master groupclr unpower 将退出当前所有骰娘不是群管/群主的群

.master groupclr preserve 将退出当前所有无许可使用的群

.master groupclr black 将退出当前所有黑名单群和有危险的黑名单用户的群

全局配置¶

配置项目表见附录

.admin [关键词] //查看配置项状态,如.admin Private

.admin [关键词]=[数值] //修改配置项。一般的开关项1表示开启,0表示关闭

通知窗口¶

运行过程中产生的提醒、警告等通知消息会分类型发送给设置的通知窗口。所有通知被分为0-9共十个等级,其中0-5会被骰娘用于内置广播,6-9用于自定义(具体通知类型见附录)。当产生通知时,会向通知窗口中所有接收该类型通知的窗口发送消息。如果没有窗口能发送消息,骰娘会将通知发送给自己;无论如何所有通知会自动保存在"[DiceData]\audit"中,请定期整理该文件夹。 由于通知窗口0会产生较多日志型消息,建议将通知窗口0转移到专门的小群。

.admin notice [窗口] +/-[通知类型](...+/-[通知类型]) //增减通知窗口类型

.admin notice - [窗口] //直接移除指定窗口。

.send notice [通知类型] [通知文本] //向指定类型窗口广播通知

例:

.admin notice group 928626681 -0-1-2-3-4+5 变更通知类型的接收情况

.admin notice - this 直接移除当前通知窗口

全局开关(.admin DisabledGlobal=0/1)¶

DisabledGlobal=1等价于.admin off(全局关闭)。开启时一切如常,关闭则进入静默状态,所有群聊/讨论组会相当于.bot off状态而无视群内设置,私聊会回复关闭中的信息。也可以用.admin on/off 操作全局开启/关闭,也可以在应用菜单中点击"全局开关"自动切换。

定时点事件(.admin clock)¶

.admin clock +/- [任务名] [时]:[分] 添加/移除 定时任务

内置定时任务:on-全局开启;off-全局关闭;clear-黑名单清群

允许调用自定义任务,参考plugin手册

每日执行,如果当日错过不会补回。

定时开启和定时关闭时会向窗口4发送通知文本

清群为基于黑名单清群(=.master groupclr black)

定时长事件¶

以下事件会在Dice!每运行固定时间后执行一次

.admin AutoSaveInterval=5 //定时保存用户数据(min),默认每5分钟保存一次

.admin AutoRemake=0 //定时重启(h),默认关闭。

定时系统监测报警(.admin SystemAlarmRAM/SystemAlarmCPU/SystemAlarmDisk=90) :每半小时监测一次系统内存、CPU、硬盘占用(%),超过阈值即报警。报警状态下每5分钟监测一次,如果数值升高超过1个百分点则继续报警,低于阈值则会提醒解除报警。设置在1-99时生效。

用户策略¶

用户记录(.user)¶

用户在使用指令或被授予信任后会生成用户记录

.user state //查看自己用户记录

.user trust [用户qq] //查看用户信任级别(4以上限定,上级对下级屏蔽)

.user trust [用户qq] [信任级别] //调整用户信任级别(4以上限定,只能调整下级用户,最高为255)

.user diss [用户qq] //最轻的拉黑用户(type=local,danger=1)

用户授信(.user trust)¶

每名登记用户会标记信任级别,初始为0。级别越高享受的权限越多,上级包含下级的所有权限。

.admin whiteqq (-) [白名单QQ] 可以为用户授予信任1(带减号为收回信任)

信任级别权限

1(白名单)为群分发使用许可,允许使用某些指令

2黑名单豁免

3响应退群指令,接受不良记录共享(warning)

4(后台管理)查看、分发和收回低于4的用户权限,原管理权限

5(骰主级)查看、分发和收回低于自身的用户权限,系统操作指令

过期数据自动清理(.admin InactiveUserLine/InactiveGroupLine=360)¶

最后活跃天数超过InactiveUserLine的用户,其记录及角色卡会在清理用户时被清除;最后活跃天数超过InactiveGroupLine的群,其记录及开团信息会在清群时被清除。(配置项为0时不生效)

清理过期数据会在定时任务clear中自动执行,在执行清群时也会在退群的同时检测目标群是否会被清理。

监听好友申请(.admin ListenFriendRequest=1)¶

默认开启,仅好友验证方式为【需要验证信息】或【需要回答问题并由我确认】时有效,拦截消息并决定通过或拒绝。黑名单用户必定拒绝。同意好友邀请时将发送strAddFriend,特别地,通过受信任用户的好友时会发送strAddFriendWhiteQQ。当好友验证方式为【允许任何人】或【需要正确回答问题】时,通过开启ListenFriendAdd,也会向通过的好友发送strAddFriend,注意这种方式通过的好友可能仅为单向好友。

允许陌生好友邀请(.admin AllowStranger=0/1/2)¶

默认为1。决定是否接受陌生人的好友邀请:2-无条件接受;1-无用户记录不接受;0-无信任不接受。该项设定建议配合QQ自带的【允许陌生人邀请我加入群聊】选项。

单群设置(.group)¶

.group ([群号])+/-[词条] //修改单群设置,群内原地使用可省略群号

词条效果修改条件

许可使用私用模式/审核模式可正常邀请入群/群内使用信任1

未审核审核模式下标记新加入无【许可使用】的群,拒绝指令信任1

免清清群时和搜查黑名单时略过该群信任2

免黑发生在该群的不良记录无效;不搜查黑名单信任4

忽略不接受任何该群的事件信任4

协议无效不接受除云黑外的事件信任4

停用指令停止响应指令(.bot off)信任或群管

禁用回复停止响应回复(.reply off)信任或群管

拦截消息拦截消息,阻止低优先级插件响应信任或群管

禁用jrrp/禁用me/禁用ob/禁用draw/禁用help禁用对应指令信任或群管 |

原群白名单自动初始化为【许可使用】+【免清】

重要的大群(跑团交流群、骰娘群)请加【免清】+【免黑】或【忽略】,以免意料之外的自动退群

.admin whitegroup 查看当前【许可使用】或【免清】或【免黑】的群列表

授权许可(!authorize)¶

受信任用户可通过在群内发送!authorize或在任意窗口发送!authorize +[群号]来为目标群添加【许可使用】。非信任用户也可在群内使用!authorize [理由]向窗口2发送许可申请。

!authorize (+[群号]) //受信任用户为本群+许可使用

!authorize (+[群号]) [理由] //非信任用户申请本群许可

撤销许可使用需要使用.group [群号] -许可使用

批量群处理(.groups)¶

取群列表.groups list(管理限定)

.groups list idle //按闲置天数降序列出群

.groups list size //按群规模降序列出群

.groups list [群管词条] //列出带有词条的群

监听群邀请(.admin ListenGroupRequest=1)¶

默认开启。接收用户的群邀请(小群邀请将由QQ系统自动通过,因此骰娘无法处理或知晓邀请人),拒绝来自黑名单的邀请,邀请来自受信任用户时通过且自动为群添加【许可使用】,非信任用户时视私用模式开关状态处理。通过邀请的同时标记邀请人。如果回执为【已同意】却实际并未入群,考虑接口出错或腾讯屏蔽。

入群检测(.admin ListenGroupAdd=1)¶

默认开启。入群时反馈群信息(群名、群号、群人数、邀请人),遍历群员,获取群主信息(临时创建的群可能无法获取群管理信息)、检索黑名单,为私用模式二次确认【许可使用】,为审核模式检查【许可使用】;群内发现黑名单时会通知,有管理员是黑名单时会触发退群(群未设置【免清】或【免黑】时)。发送strAddGroup。

私用模式(.admin Private=1)¶

认主时私骰作成进入私用模式,仅在受信任用户或【许可使用】群邀请时接受邀请,在新加入管理员无信任用户(否则为群自动添加【许可使用】)且无【许可使用】的群时自动退出,退出时自动留言。也可以用.admin only/public 切换私用/公用状态。

审核模式(.admin CheckGroupLicense=0/1/2)¶

入群后,对于无【许可使用】的群,将自动标记【未审核】并发送strAddGroupNoLicense。该项生效时将拒绝提供除help之外的其他服务,其余指令仅authorize/dismiss/bot有效。该项为1时拒绝所有【未审核】的群(不溯及审核模式开启前已加入的群),该项为2时拒绝所有无【许可使用】的群(含开启前已加入的群)。

审核模式与私用模式的差别:

审核模式会在未许可群停留,增加潜在风险;

留在群内有更高向用户群引流的概率;

由于自动入群的小群无法正常给群加【许可使用】,骰娘在无法识别群管理的情况下会自动退群,需要受信任用户额外使用一次!authorize [群号],重复邀请;

黑名单(.admin blackqq/blackgroup)¶

任何情况下,来自黑名单的邀请不会被通过,指令除了dismiss都不会被响应

.admin blackgroup (-) ([黑名单理由]) [黑名单群号] 可以添加群黑名单(带减号是删除)

.admin blackqq (-) ([黑名单理由]) [黑名单QQ] 可以添加用户黑名单(带减号是删除),带理由时危险等级为2且通知对方,否则危险等级为1。

.admin blackfriend //查看好友列表内的黑名单用户

危险的黑名单用户包括群内权限更高的用户或非免清群内相同权限用户(可选),同时危险等级需要达到2。危险等级只有1的黑名单用户不通知、不会触发退群。

现在自己、Master、信任2以上用户都不会新加入黑名单。

不良行为检测(.admin ListenGroupKick/ListenGroupBan/ListenSpam=1)¶

默认开启。分别开启后,移出、禁言、刷屏会被加入黑名单。生成危险等级2的不良记录后,会自动向通知5窗口广播生成的!warning指令。warning指令:接收到信任3或记录可识别的骰娘warning时,骰娘将自动录入黑名单。骰娘通过这一机制实现不良记录的传递共享。

拉黑群时会自动移除【许可使用】。

刷屏在程序内定义为发送指令超过20/30s,实际解释权归Master所有

邀请人连带(.admin KickedBanInviter/BannedBanInviter=1)¶

默认开启。被移出/禁言时将入群邀请者同时加入黑名单。

邀请者责任源于协议中不得擅自拉群的规定,这里的擅自是双向的:一边无视骰娘协议,一边无视群内意愿

云操作(.cloud)¶

查看更新(.cloud update)¶

注意:此功能可能暂时不可用。对于Mirai请执行更新.cmd或Update.sh以进行更新。

远程获取Dice!正式版及开发版信息

.cloud update //检查版本更新

.cloud update release //下载最新发布版

.cloud update dev //下载最新开发版(使用测试版/开发版请保持与开发者的交流)

同步不良记录(.cloud black)¶

该指令会从后台获取经核验的不良记录,并更新本地黑名单库。骰娘不会自动同步云端记录。

不良记录¶

不良记录上传(.admin CloudBlackShare=1)¶

该选项默认开启

开启时,当骰娘原生生成Kick/Ban/Spam记录时,会同时向后台发送该记录。记录在后台收录后处于待核验状态,需要后台管理二次核验才会对其他骰娘生效。

所有云记录有唯一的wid。上传可能因连接后台失败而失败 对于生成记录过于频繁,或不良记录源于非Dice!原因与用户产生不良互动的,后台会拒绝收录该骰娘的记录。

“同步云不良记录同步失败”的处理方式:手动访问url指向的网页,本地另存为后,参考下文【读取外源记录文件】的方式手动读取。

该选项开启时,其他QQ发送云端已核验的记录也会对该骰娘生效。

读取外源记录文件¶

将其他来源的不良记录BlackList.json重命名为BlackListEx.json,放置于[DiceData]/conf目录下。Dice!加载时会自动读取并更新记录,之后该文件会被销毁。两种情况下已有记录不会在读取时更新:DiceMaid就是自己;危险等级与本地记录不同。

云记录注销¶

当前记录核销在群(928626681)内完成,入群后可使用以下指令:

isbanqq=[qq] 查询目标QQ的云记录

查询wid=[wid] 获取wid对应的记录

erase=[wid] 注销wid对应的记录,仅记录中的当事骰娘(DiceMaid)和骰主(masterQQ)可用

可私聊司令塔BotShiki(Pope)(530136753)(具体角色可能会有变动)进行上述操作。也可请求管理来完成注销,最通用证明材料为:当事人对当事骰娘发送.admin isban [本人QQ],连同骰娘回复将聊天记录转发给管理。

用户自行解黑¶

云记录核销之后,所有骰娘并不会自动同步。遇到尚未注销黑名单的骰娘,请用户自行解黑。方法为对已注销的骰娘发送.admin isban [QQ],将得到的warning指令保存,用于私聊未注销的骰娘。由于骰娘存在连接后台失败的可能,导致无法获取记录更新的信息,因此无法保证指令有效。这时请联系相应骰主。

其他机制¶

框架消息富文本转义(CQ码)¶

DiceDriver会将不同框架下接收的QQ富文本消息(图片、语音等)转换为统一的CQ码,发送时则会转义回框架格式

[CQ:image,file=xxx.abc] 将本地[框架根目录]/data/image/xxx.abc位置的图片上传并在消息中发送

[CQ:image,id=xxx]接收消息中的图片,id与服务器缓存图片对应,但区分群聊图片与私聊图片。群聊调用私聊消息的图片id将无法正常发送图片,反之同理。

[CQ:record,file=xxx.silk]将本地[框架根目录]/data/record/xxx.silk位置的语音上传并覆盖整条消息内容发送(Mirai不限制文件后缀)

[CQ:face,id=xxx] 发送对应id的QQ黄豆表情

[CQ:emoji,id=xxx] 发送对应十进制编码的Unicode字符

[CQ:reply,id=xxx](群聊且限定在开头适用)回复引用指定id的消息

消息送间隔(.admin SendIntervalIdle=500)¶

一般地,Dice!的待发送QQ消息不会立即发送,而是进入发送队列排队发送,并在每次发送后等待固定时间,即发送间隔(ms)。SendIntervalIdle控制闲时发送间隔,SendIntervalBusy控制忙时发送间隔。

特别地,Dice!识别一条待发送消息中的分页符('\f'),并沿分页符将消息拆成多条,依序送入消息发送队列。分页符无法在指令输入时直接录入,可以输入{FormFeed}作为消息分段,调用时会自动转义。

回复引用原消息(.admin ReferMsgReply=1)¶

(仅gocq及MQ系列可用)开启后所有公屏消息回复将引用原消息。

本系骰识别¶

Dice2.5.0+可以通过调用后台接口以识别目标QQ是否在Dice!云端有登记信息。新入群遍历群成员时将统计可识别本系骰数量。由于禁言反制和踢出反制是Dice!的默认协议,让Dice!骰去禁言/踢出另一只Dice!骰无疑是愚蠢的,因此在执行group ban/kick前会先查询目标是否为Dice!骰,是则不会进行实际操作。基于骰主所拥有的隐私权,云端不可见(CloudVisible=0)的Dice!骰不会被识别。

个性化¶

文本转义标识¶

回复文本中可以通过特定的{}标记转义文本,当前花括号支持嵌套。

指令回复中对用户(消息来源)的通用转义如下:

{nick}-取用户昵称,优先级为群内nn>全局nn>群名片>QQ昵称。

{pc}-取用户角色名,未录入角色卡则同{nick}。

部分转义方法:

{at:目标用户}-at用户,省略参数则at消息对象;

{help:条目名}-获取帮助文档指定条目;

{ran:最小值~最大值}-从范围中随机取值;

{sample:分项1|分项2(...|分项n)}-从所有分项中随机均匀抽取一项插入文本。例: {sample:效果拔群|干得漂亮};

{case:uid?账号1=1号专属文本&账号2=2号专属文本&else=通用文本}-根据消息语境中的变量分条件回复;

{grade:user.favor?0=用户&100=亲爱的&else=讨厌鬼}-根据消息语境中的变量分档位回复;

{wait:5000}-处理时延迟指定的毫秒数

{var:变量名?值}-赋值变量并打印

{var:变量1=值1&变量2=值2}-多变量赋值,不打印

其他转义标识:

{br}换行

{FormFeed}分条发送

扩展模块mod¶

扩展模块放入[DiceData]/mod/读取,可加载自定义回执、自定义回复与帮助词条,详见开发手册。mod按序读取,且从后向前覆盖。

.mod list 查看已加载mod列表

.mod on 模块名 启用指定模块

.mod off 模块名 停用指定模块

.mod info 模块名 指定模块简介信息

.mod detail 模块名 指定模块详细信息

.mod delete 模块名 卸载指定模块

远程模块资源¶

远程资源界面

可以在WebUI->模块管理->远程资源中查看远程mod库列表并远程安装。

个性化WebUI¶

Dice!2.6.6更新后将WebUI主页面写出到[DiceData]/webui/index.html,同时webui目录可通过WebUI端口访问。

自定义¶

扩展指令¶

扩展脚本可放入[DiceData]/plugin/读取。文件样例见附录,更多内容请参阅脚本手册。默认可使用.help扩展指令 查询载入的指令。

自定义帮助词条(.helpdoc)¶

.helpdoc [词条名] [词条内容] —— 自定义帮助词条

词条内容以&开头表示重定向,如.helpdoc 追仙子 &追仙后,.help追仙子 将重定向到追仙的词条

词条名不需要是源代码中已有的,请随意添加

特别地,部分词条会存在引用的情况,自定义时可以只自定义被引用的词条。

{

"设定":"Master:{master_ID}\n好友申请:需要使用记录\n入群邀请:黑名单制,非黑即入\n讨论组使用:允许\n移出反制:拉黑群和操作者\n禁言反制:默认拉黑群和群主\n刷屏反制:警告\n邀请人责任:有限连带\n窥屏可能:{窥屏可能}\n其他插件:{其他插件}{姐妹骰}\n骰娘用户群:{骰娘用户群}\n私骰分享群:192499947\n开发交流群:1029435374",

"骰娘用户群":"【未设置】",

"窥屏可能":"有",

"其他插件":"【未设置】"

}

自定义回复(.reply)¶

消息检测触发的顺序为特殊指令->自定义指令(Type=Order)>内建指令->自定义回复(Type=Reply),检测触发词的顺序为完全匹配->前缀匹配->模糊匹配->正则匹配。触发回复也会算入刷屏计数!(脚本中可通过写入msg.ignored = true无视计数)

.reply set (Type=[回复性质](Reply/Order))

[匹配模式](Match/Search/Prefix/Regex)=[触发词1|触发词2]

(Limit=[触发限制])

[回复模式](Deck/Text/Lua)=[回复词]

回复性质:决定该回复由停用指令(bot off)还是禁用回复(reply off)控制开关。该项可省略,默认由reply控制。

匹配模式:Match-完全匹配;Prefix-前缀匹配;Search-模糊匹配;Regex-正则匹配。

触发限制:可填入零至多项触发条件,多项条件以;分隔,在触发词匹配后检查是否会被触发(一项不满足就不触发)。不触发的消息不计入刷屏、不进入当日计数、不进入冷却计时。

回复模式:Deck-牌堆(回复词以分隔符'|'切割为牌堆)Text-直接返回回复词;Lua-将回复词作为Lua语句执行,将返回值回复。

.reply show [触发词] 查看回复注释

.reply get [触发词] 查看回复本文

.reply del [触发词] 清除触发词

.reply list 列出全部触发词

默认可使用.help回复列表 查询触发词,帮助文档对所有人可见,建议手动修饰。

触发条件¶

用户名单user_id:

正向名单user_id::只有所列ID中的用户才触发,ID以|分隔

user_id:触发用户1|触发用户2|...

反向名单user_id:!:只有所列ID中的用户不触发,ID以|分隔

user_id:!触发用户1|触发用户2|...

群聊名单grp_id:

所有私聊的id视为0,写入正向名单表示不限制私聊,写入反向名单表示私聊不触发

正向名单grp_id::只有所列ID中的群聊才触发,ID以|分隔,

grp_id:触发群号1|触发群号2|...

反向名单grp_id:!:只有所列ID中的群聊不触发,ID以|分隔

grp_id:!触发群号1|触发群号2|...

触发概率prob:百分比概率触发

prob:概率

冷却计时cd:计时器中有一个正在冷却状态则不触发,若触发则为每个计时器增加冷却时间。每个计时器以&分隔,计时器名称为空时默认取回复关键词。

计量单位:chat-以聊天窗口为单位;user-以用户为单位;global-全局共享

cd:[计时器名称]@[计量单位]=[冷却秒数]&...

[计时器名称]可省略,视为取本回复的关键词;@[计量单位]可省略,视为@chat。特别地,当两者均省略时,cd:秒数表示以聊天窗口为单位,为本回复独立计算特定秒数的冷却。

今日计数today:计数器中有一个达到上限则不触发,若触发则为每个计数器+1。每个计数器以&分隔,计时器名称为空时默认取回复关键词。

today:[计数器名称]@[计量单位]=[计数上限]&...

省略机制同cd。

用户阈值user_var:UserConf中变量为特定值或以上或以下触发,每项以&分隔,字段=值表示等于时触发,字段=值+表示大于等于时触发,字段=值-表示小于等于时触发。特别地,trust表示信任等级

user_var:[变量1]=[阈值1]&[变量2]=[阈值2]+&[变量3]=[阈值3]-

群聊阈值grp_var:群聊时取GroupConf,格式同user_var,使用时推荐搭配grp_id:!0排除私聊

自身阈值self_var:取DiceMaid自身UserConf,格式同user_var

骰娘识别dicemaid:根据对方是否识别为Dice!骰娘判别是否触发,消息来源为自己时不作判别

仅骰娘触发dicemaid:only

骰娘不触发dicemaid:off

自定义回执文本(.str)¶

将系统处理事件的回执替换为自定义文本

.[键值] [文本] ——自定义骰娘的某项回执.[键值] reset ——重置为原生文本

.[键值] NULL ——自定义文本为空白

.[键值] show ——查看自定义文本

如果没有设置,strSelfName和strSelfCall将预设为QQ昵称,并且{self}会自动替换为strSelfCall,前者用于自我展示,后者用于自称。强烈建议自定义strHlpMsg和strAddFriend、strAddGroup,向不熟悉的用户介绍私骰的特别之处(申请、使用须知)。

例:

.strSelfName 测试姬 //入群等自我介绍场合使用

.strSelfCall 本骰娘 //回执中用作自称,{self}的重定向

.strBotOn {self}开始工作了

.strAddGroup Shiki(Judgement), Servant Ruler, 四季映姫·ヤマザナドゥ。来,细数你的罪孽吧

.strRollFumble 大失败 就像是见了阎王一样

.strNameSet 以后就称呼{old_nick}的名称为{new_nick}了

自定义敏感词库(.admin censor)¶

敏感词设置.admin censor .admin censor +([触发等级])=\[敏感词0](|[敏感词1]...) //添加敏感词 .admin censor -\[敏感词0](|[敏感词1]...) //移除敏感词

例:.admin censor +=nmsl //将“nmsl”设置为Warning级 .admin censor +Danger=nn老公|nn主人 //将“nn老公”、“nn主人”设置为Danger级 .admin censor -手枪 //移除敏感词“手枪”

匹配机制¶

骰娘会模糊匹配指令标识符(.)开头的消息,并返回所含敏感词的最高触发等级

匹配过程自动跳过文本中的特殊符号和空格,且大小写不敏感

受信任用户会相应降低触发等级,信任4以上用户将不触发检测

触发等级¶

使用指令设置Ignore等级可以临时屏蔽词库中不该生效的词,对外置词库这一等级是无意义的

Ignore //无视

Notice //仅在0级窗口通知

Caution //提醒用户,并在1级窗口提醒

Warning //【默认等级】警告用户,并在1级窗口提醒

Danger //警告用户且拒绝指令,并在3级窗口警告

*请避免为纯字母/数字的敏感词设置较高触发等级,这些字符存在误匹配图片码的可能性

词库批量加载¶

load会读取存档目录中/conf/censor下所有文本文件

字符编码默认按GBK读取,若字符为UTF8,可在开头先起一行"#UTF8"

一词一行

触发等级默认为Warning,读取到"#[触发等级]"时,后续录入的词调整为响应等级,如"#Danger"

词库文件示例:

以下内容表示以utf-8编码,读取4个敏感词 "nmsl":Warning,"nn老公":Danger,"nn主人":Danger,"sb":Notice

#UTF8

nmsl

#Danger

nn老公

nn主人

#Notice

sb

外置牌堆¶

将牌堆文件放入[DiceData]/PublicDeck内并重启或load,即可使用牌堆内的条目。牌堆名以'_'开头时,无法直接使用draw命令抽取。

支持作者¶

溯洄正在为后续的开发计划众筹:https://afdian.net/@suhuiw4123

欢迎在爱发电支持Shiki:https://afdian.net/@dice_shiki

也可以微信赞赏Shiki:

常见问题¶

登录失败¶

当前版本过低[00020]:所有非本地原因的登录失败都会返回错误码00020,该错误码的官方说明即为“当前版本过低”,实际原因可能是账号登录被tx判定有风险等,可以选择更换登录协议等方法尝试。 00020

登录环境被判定风险:Mirai或gocq的登录设备信息在device.json中,设备信息可能被标记风险,可通过删除账号的原device.json重新尝试(Mirai删除bots文件夹下账号信息)。

骰娘账号手机登录时,在同一wifi下登录框架有更高成功率。若如此且框架为mirai或gocq,可在登录成功后将设备信息文件device.json迁移至用于稳定运行的网络环境(gocq可额外迁移登录会话文件session.token)。

gocq显示密码错误或账号被冻结但实际并没有:原理不明,常见于刚解除冻结后,可尝试删除config.yml中的密码改为扫码登录。

框架登录通过的成功率:同wifi下扫码登录>异地扫码登录>短信验证登录>无验证登录

账号风控(消息屏蔽)¶

账号被QQ屏蔽最常见的特征有:群聊消息无法成功发送,但私聊消息可以;长文本消息无法成功发送,但短文本可以。

验证是否被屏蔽最直接的方式为查看框架日志,如有发送消息的记录但实际并没有,则可以断定被屏蔽。除此之外的快捷检测方式为在群内发送暗骰指令.rh,如果私聊能正常收到结果但群聊无回执,则高概率为被屏蔽。

当账号被屏蔽时,建议暂停工作,避免带病上班,同时将账号作为正常QQ使用(养号)。

网络连接失败¶

心跳报告失败:心跳只是向后台发送骰娘当前状态,不影响骰娘运行

jrrp获取失败:访问境外jrrp服务器失败会向后台报错,但用户会正常收到回执,不影响使用

log上传失败:访问境外log服务器失败,需要手动从\user\log\文件夹提取txt

不良记录上传失败:无法生成云黑wid,可以在官群内发warning申请补录

命令行窗口无动静,按回车有¶

在窗口标题栏右键属性->选项->编辑选项页下,关闭快速编辑模式,确定。

Dice驱动器启动失败¶

[Fatal]: listen tcp 127.0.0.1:15800: bind: Only one usage of each socket address is normally permitted.¶

ws连接的端口被占用(极大可能是多个go-cqhttp程序使用相同默认的初始端口),需要修改config.yaml使每个go-cqhttp配置的端口各不相同:

# config.yml 底端部分

# 连接服务列表

servers:

# 正向WS设置

- ws:

# 正向WS服务器监听地址,修改此处以避免冲突

address: 127.0.0.1:15801

middlewares:

<<: *default # 引用默认中间件

磁盘空间占用增多¶

Mirai一键脚本使用.git更新文件,会造成.git文件夹堆积,如无回退需要可以直接删除;

Dice目录下user/log/所存储的.log记录文件不会在log结束后销毁,部分log可能存在长期记录而不被关闭的情况,需要手动清理;

忘记WebUI管理密码¶

删除conf/WebUIPassword.digest,密码将自动重置。

Mirai红字报错¶

W/MiraiNative: 当前运行环境 64 可能不与 Mirai Native 兼容,推荐使用 32位 JRE 运行 Mirai Native¶

Mirai启动时检测64位jre启动,而官方版本的MiraiNative只支持32位。请使用MiraiDiceWindows一键脚本部署后的更新.cmd,并确保根目录没有64位jre后以启动Mirai.cmd启动(该启动方式将强制使用根目录下的32位jre而非环境变量中的)。

W/MCL Addon: iTXTech Soyuz 未安装,Soyuz MCL Handler 特性已禁用¶

无影响。

附录¶

配置项目表¶

详见WebUIMaster设置页

注:Disabled是不可用的意思!

指令禁用对信任4以上用户无效

DisabledBlock仅在区分插件优先级的框架生效,高优先级插件将拦截事件而非传递给低优先级插件处理

对.me特别处理的理由是其在跑团中几乎零作用,却可以制造骰娘自己说话的假象,引发风险。

通知类型表¶

通知级别:事件

0(调试):启动初始化、自定义回执文本、接收响应的warning、非黑受邀入群、非黑好友申请、刷屏初次提醒

1(提醒):解除禁言提醒、增减黑名单、接收warning处理反馈、申请/入群检测到黑名单、黑名单触发退群、接收陌生warning、自定义全局设置、信任等级变动、遥控单群退群/群设置

2(敏感):撤销管理员、批量修改群设置、接收send信息、群聊清查

3(警告):刷屏二次提醒、原生不良记录、系统负载报警

4(用户通知):切换公用/私用、定时开关

5(骰娘广播):生成warning

文件位置表¶

文件路径 说明读写时机

[DiceData]/conf/BlackList.json黑名单记录修改时写入

[DiceData]/conf/Console.xmlMaster配置修改时写入

[DiceData]/conf/CustomCensor.json自定义敏感词库修改时写入

[DiceData]/conf/censor/敏感词库load时只读

[DiceData]/conf/CustomHelp.json自定义帮助文本修改时写入

[DiceData]/conf/CustomMsg.json自定义回执文本修改时写入

[DiceData]/conf/CustomMsgReply.json关键词回复文本修改时写入

[DiceData]/conf/LinkList.json链接索引修改时写入

[DiceData]/conf/ModList.json模块索引修改时写入

[DiceData]/conf/NoticeList.json通知窗口列表修改时写入

[DiceData]/conf/WebUIPassword.digestWebUI密码修改时写入

[DiceData]/user/ChatConf.dat群聊配置退出或save时写入

[DiceData]/user/DiceToday.json今日统计修改时写入

[DiceData]/user/HelpStatic.json帮助统计修改时写入

[DiceData]/user/PlayerCards.RDconf角色卡记录退出或save时写入

[DiceData]/user/UserConf.dat用户配置退出或save时写入

[DiceData]/user/session/团内记录(先攻、ob)修改时写入

[DiceData]/audit/消息通知日志更新时写入

[DiceData]/mod/模块文件load时只读

[DiceData]/plugin/脚本文件load及调用时只读

[DiceData]/PublicDeck/外置牌堆load时只读

[DiceData]/CardTemp/角色卡模板load时只读

Mod文件示例¶

{

"mod":"塔罗",

"author":"Shiki",

"dice_build":564,

"brief":"外置模块样例文档。未来版本指令时可见",

"comment":"模块信息,该内容只在源文件可见。未来版本dice_build会作为当前版本是否可用的参照",

"helpdoc":{

"塔罗":"塔罗牌,由“TAROT”一词音译而来,被称为“大自然的奥秘库”。它是西方古老的占卜工具,中世纪起流行于欧洲,地位相当于中国的《周易》",

"愚者正位":"憧憬自然的地方、毫无目的地前行、喜欢尝试挑战新鲜事物、四处流浪。美好的梦想。",

"愚者逆位":"冒险的行动,追求可能性,重视梦想,无视物质的损失,离开家园,过于信赖别人,为出外旅行而烦恼。心情空虚、轻率的恋情、无法长久持续的融洽感、不安的爱情的旅程、对婚姻感到束缚、彼此忽冷忽热、不顾众人反对坠入爱河、为恋人的负心所伤、感情不专一。",

"魔术师正位":"事情的开始,行动的改变,熟练的技术及技巧,贯彻我的意志,运用自然的力量来达到野心。",

"魔术师逆位":"意志力薄弱,起头难,走入错误的方向,知识不足,被骗和失败。",

"女祭司正位":"开发出内在的神秘潜力,前途将有所变化的预言,深刻地思考,敏锐的洞察力,准确的直觉。",

"女祭司逆位":"过于洁癖,无知,贪心,目光短浅,自尊心过高,偏差的判断,有勇无谋,自命不凡。",

"女皇正位":"幸福,成功,收获,无忧无虑,圆满的家庭生活,良好的环境,美貌,艺术,与大自然接触,愉快的旅行,休闲。",

"女皇逆位":"不活泼,缺乏上进心,散漫的生活习惯,无法解决的事情,不能看到成果,担于享乐,环境险恶,与家人发生纠纷。",

"皇帝正位":"光荣,权力,胜利,握有领导权,坚强的意志,达成目标,父亲的责任,精神上的孤单。",

"皇帝逆位":"幼稚,无力,独裁,撒娇任性,平凡,没有自信,行动力不足,意志薄弱,被支配。",

"教皇正位":"援助,同情,宽宏大量,可信任的人给予的劝告,良好的商量对象,得到精神上的满足,遵守规则,志愿者。",

"教皇逆位":"错误的讯息,恶意的规劝,上当,援助被中断,愿望无法达成,被人利用,被放弃。",

"恋人正位":"撮合,爱情,流行,兴趣,充满希望的未来,魅力,增加朋友。",

"恋人逆位":"禁不起诱惑,纵欲过度,反覆无常,友情变淡,厌倦,争吵,华丽的打扮,优柔寡断。",

"战车正位":"努力而获得成功,胜利,克服障碍,行动力,自立,尝试,自我主张,年轻男子,交通工具,旅行运大吉。",

"战车逆位":"争论失败,发生纠纷,阻滞,违返规则,诉诸暴力,顽固的男子,突然的失败,不良少年,挫折和自私自利。",

"力量正位":"大胆的行动,有勇气的决断,新发展,大转机,异动,以意志力战胜困难,健壮的女人。",

"力量逆位":"胆小,输给强者,经不起诱惑,屈服在权威与常识之下,没有实践便告放弃,虚荣,懦弱,没有耐性。",

"隐者正位":"隐藏的事实,个别的行动,倾听他人的意见,享受孤独,有益的警戒,年长者,避开危险,祖父,乡间生活。",

"隐者逆位":"憎恨孤独,自卑,担心,幼稚思想,过于慎重导致失败,偏差,不宜旅行。",

"命运之轮正位":"关键性的事件,有新的机会,因的潮流,环境的变化,幸运的开端,状况好转,问题解决,幸运之神降临。",

"命运之轮逆位":"挫折,计划泡汤,障碍,无法修正方向,往坏处发展,恶性循环,中断。",

"正义正位":"公正、中立、诚实、心胸坦荡、表里如一、身兼二职、追求合理化、协调者、与法律有关、光明正大的交往、感情和睦。",

"正义逆位":"失衡、偏见、纷扰、诉讼、独断专行、问心有愧、无法两全、表里不一、男女性格不合、情感波折、无视社会道德的恋情。",

"倒吊人正位":"接受考验、行动受限、牺牲、不畏艰辛、不受利诱、有失必有得、吸取经验教训、浴火重生、广泛学习、奉献的爱。",

"倒吊人逆位":"无谓的牺牲、骨折、厄运、不够努力、处于劣势、任性、利己主义者、缺乏耐心、受惩罚、逃避爱情、没有结果的恋情。",

"死神正位":"失败、接近毁灭、生病、失业、维持停滞状态、持续的损害、交易停止、枯燥的生活、别离、重新开始、双方有很深的鸿沟、恋情终止。",

"死神逆位":"抱有一线希望、起死回生、回心转意、摆脱低迷状态、挽回名誉、身体康复、突然改变计划、逃避现实、斩断情丝、与旧情人相逢。",

"节制正位":"单纯、调整、平顺、互惠互利、好感转为爱意、纯爱、深爱。",

"节制逆位":"消耗、下降、疲劳、损失、不安、不融洽、爱情的配合度不佳。",

"恶魔正位":"被束缚、堕落、生病、恶意、屈服、欲望的俘虏、不可抗拒的诱惑、颓废的生活、举债度日、不可告人的秘密、私密恋情。",

"恶魔逆位":"逃离拘束、解除困扰、治愈病痛、告别过去、暂停、别离、拒绝诱惑、舍弃私欲、别离时刻、爱恨交加的恋情。",

"塔正位":"破产、逆境、被开除、急病、致命的打击、巨大的变动、受牵连、信念崩溃、玩火自焚、纷扰不断、突然分离,破灭的爱。",

"塔逆位":"困境、内讧、紧迫的状态、状况不佳、趋于稳定、骄傲自大将付出代价、背水一战、分离的预感、爱情危机。",

"星星正位":"前途光明、充满希望、想象力、创造力、幻想、满足愿望、水准提高、理想的对象、美好的恋情。",

"星星逆位":"挫折、失望、好高骛远、异想天开、仓皇失措、事与愿违、工作不顺心、情况悲观、秘密恋情、缺少爱的生活。",

"月亮正位":"不安、迷惑、动摇、谎言、欺骗、鬼迷心窍、动荡的爱、三角关系。",

"月亮逆位":"逃脱骗局、解除误会、状况好转、预知危险、等待、正视爱情的裂缝。",

"太阳正位":"活跃、丰富的生命力、充满生机、精力充沛、工作顺利、贵人相助、幸福的婚姻、健康的交际。",

"太阳逆位":"消沉、体力不佳、缺乏连续性、意气消沉、生活不安、人际关系不好、感情波动、离婚。",

"审判正位":"复活的喜悦、康复、坦白、好消息、好运气、初露锋芒、复苏的爱、重逢、爱的奇迹。",

"审判逆位":"一蹶不振、幻灭、隐瞒、坏消息、无法决定、缺少目标、没有进展、消除、恋恋不舍。",

"世界正位":"完成、成功、完美无缺、连续不断、精神亢奋、拥有毕生奋斗的目标、完成使命、幸运降临、快乐的结束、模范情侣。",

"世界逆位":"未完成、失败、准备不足、盲目接受、一时不顺利、半途而废、精神颓废、饱和状态、合谋、态度不够融洽、感情受挫。"

}

}

更新历史¶

更新说明(2.5.2)¶

支持自定义文本使用sample转义多选一

[自动清理过期用户数据](#过期数据自动清理(.admin InactiveUserLine/InactiveGroupLine=360))(默认360天)

高频指令通知将显示最后一次指令的内容

增加入群后对同系Dice!的识别

降低jrrp失败向后台报错的频率

修复单次清群上限无作用的bug

修复st格式错误导致CPU100%的恶性bug

修复了一些其他bug

更新说明(2.5.1)¶

优化{pc}丢失、群昵称获取失败等问题

扩展通知窗口级别,允许.send notice

允许自定义定时任务

优化lua跨平台编码问题

lua预设函数新增到18个

更新说明(2.5.0)¶

允许安装lua脚本指令

本体独立于框架,必须由Dice驱动器装载

使用.admin ListenSelfEcho/ListenGroupEcho自定义是否接收自己的私聊/群聊消息

补充了对自身的指令频度监控,避免自我响应

使用.admin GroupInvalidSize自定义协议无效的群规模

开启对同系Dice的识别

缓存今日人品,允许lua调用

默认自动保存间隔调整为5分钟

更新说明(2.4.1)¶

更新适配先驱框架的更新和重载功能,及其他接口适配

新增.log日志记录功能

新增.help模糊查询建议

新增敏感词检测机制

新增.groups查群功能

优化.link功能

视入群邀请者拥有群权限

更新说明(2.4.0)¶

新增GUI,入口为酷Q【菜单】->【应用】->【Dice!】->【综合管理】

Dice!对Mirai适配

新增统计信息

系统新增硬盘占用检测。入群新增用户比例检测。新增每日用户、指令量统计。

新增定时任务

取消默认的每日保存,默认每十分钟保存一次。允许定时清理image/,默认关闭。

优化空参数指令的响应

当新人只知道指令不知道参数,在裸发".pc"时将难以得到有效反馈。为了提高交互效率,对于空参数无意义的指令,回执将重定向为对应的help文档。现在发送".pc"将收到与".help pc"相同的应答。与此同时一些原本用于空参数的回执条目被弃用,如:strStErr。

新增牌堆格式

在牌堆内可使用"::牌数::内容"的格式替换重复的项目。

优化不良记录同步系统

通过将其他来源的不良记录BlackList.json重命名为BlackListEx.json,放置于[DiceData]/conf目录下。Dice!加载时会自动读取并更新记录,之后该文件会被销毁。

通过指令.cloud black可以读取云端经二次确认的记录

新增.user diss 私黑指令

新增group 协议无效词条

类似于忽略,但允许!authorize和!warning以及来自admin的!dismiss。进入500人以上群时自动添加该词条,该规模的群聊不该认为自动建立用户协议。

新增分页发送机制

识别待发送消息中的'\f'后会将消息分段发送。

更新说明(2.3.8exp)¶

2.3.8Exp10:增设用户和群记录,将白名单转换为用户信任/群选项,自定义优化。如有自定义strNameGenerator请参照格式及时重定义,以免无法显示

2.3.8Exp9:拦截消息设置。多轮检定将调用一组额外的strSuccess文本以避免糟糕的排版,如有需要请额外设置

2.3.8Exp8:新增warning,完善黑名单,开放设置功能

2.3.8Exp7:新增Admin、monitor,所有admin指令对master而言都可以用.master代替。为.en/.sc未输入属性值时分别设定了独立回执

2.3.8.6i:拆分.send两个发送方向的回执,自定义化掷骰检定的回执

2.3.8.5i:增加.send功能

2.3.8.2i:允许定时开关,设定了非master使用专属指令时的回复文本,设置strDismiss后将会在被.dismiss时回复

2.3.8.1i:设定了默认入群介绍

后记¶

更新手记(2022.11.21)¶

维护一个跨平台项目还是有些为难一个半路出家的程序员了,七月份被非Android环境的编译失败卡得死死的,最后还是溯洄出手解决的。好在每次溯洄跑路都只是把我逼出舒适区一点点,出大问题还会回来托底,让我不至于夭折的前提下成长。

Dice!的适配框架又转了几轮,mirai与gocq这两个开源框架基本可以固定了,源码流出后的MyQQ如有余力也可一试,只要tx那边没有大动作,框架这部分应该可以稳定下来了。希望未来可以调整好重心,挽救一下自己不堪入目的项目管理水平。

更新手记(2021.2.20)¶

溯洄又跑路了,结果2.5.0还没发布就又回来了。原本这一次跑路的影响比以往任何一次都要大,因为溯洄为先驱写了CQXQ,为MiraiNative更新了1.8.6,为手机模拟器更新了ExaGear,而以上项目,我 全 不 会。所以感谢风荷帮我搞定了Dice驱动器先驱插件的部分。我和溯洄都是主见极强的人,但我想我们都还在成长。

在酷Q时代,把一个插件拆成两个文件看起来很蠢,因为大大降低了安装和更新的便利性,提高了新人门槛。但现在无所谓了——无论CQXQ+Dice!还是MiraiNative+Dice!,转换插件已然不可避免。因此我有了DiceDriver+Dice!的想法,也顺便解决一个问题——心跳报告和不良记录上传的源码对所有人暴露导致的安全风险,现在这部分内容已经转移到DiceDriver中了。但是很可惜Mirai用户将不能不使用MiraiNative+DiceDriver+Dice!的配置,DiceDriver在这里只能充当酷Q插件转接Dice!。因为当我有这想法的时候,我甚至得从写mirai插件要用什么IDE开始问溯洄。

Dice!的第四个框架,我最终还是倾向于小栗子——它有设置头衔的api(不是)。

更新手记(2020.10.2)¶

2.4.1的阶段并没有像之前一样想着憋大招,一边适配先驱插件,一边加了些小功能。顺便也是在给自己的瓶颈拖时间,但是并没有什么实质性进展。

大概描述一下遇到的一些瓶颈:

pc卡格式的优化,现在的卡和卡模板稍显繁琐,但还是不方便录入文本值。需要敲定不同类型属性的存储格式后,才能做与云端的上传下载。

为更丰富的参数安排保留字符,如检定时临时调用指定pc的属性(.rc [pc1]/[skill1]),连接符号最好跨越中英文全半角,而塔骰使用的减号在Dice!中已经用作属性减值了。

自定义函数的格式,预想是{?like?1605271653&10?}表示点赞10次QQ1605271653。但是还要设计字符转义来保证完备性就很烦。

模块(mod)的安装卸载和优先级调整,以及把每个牌堆文件视为单独模块。当然这个不算瓶颈,只是一直没下手。

更新手记(2020.7.29)¶

这里是Shiki。我也没想到,exp11没了~~,饼不算数了~~。再回归成为Dice!主支的开发者,确实是我不曾想到的。当然这对用户而言没多大区别。作为一个整合过渡用的版本,这一说可以说没有什么明显的改动,尤其是在用户体验上。

当然又有新坑埋下了,那就是新的定时任务系统。我对造轮子有种额外的热衷,相较而言,新功能更像是机制建立后的水到渠成。~~所以我的饼做的比画的慢太多。~~等定时系统完善后,大概就可以用来跑团杀鸽子了。

更新手记(2020.5.14)¶

这里是Shiki,在半年时间里,exp10经历了一个繁复拖沓的开发周期。虽然有部分现实因素,但更多受限于开发者的项目管理能力不足。为了一次性将所有存档文件从酷Q默认文件夹搬迁到[DiceData]/,开发者被迫将所有认为需要改进的涉及文件的机制更新了一遍。好在有众多用户的积极支持,Dice!exp终于迎来了新一版正式发布版。

exp10的更新体现了两极分化的开发思路:对用户的极简化和对深度用户的高度定制化。对于开包即用的用户(超过Shiki全部万千骰娘的半数),初始设定将更贴合用户体验。对于没有认主导致的接收信息量不足问题,无主骰娘现在会在初始化后向自己发送通知,此后所有通知都会发送给自己。如此或有助于非官方渠道接触骰娘的用户更容易接触到骰娘的常规用法。

可以看到,exp10对黑白名单的扩展大大增加了用户的学习成本。因此我全套向下兼容了旧有的黑白名单、管理、监视窗口指令,试图构建简洁功能-高级功能并存的模式。用户可以不理解信任等级,而像之前那样使用.admin whiteqq和.master admin,也可以不理解单群设置而简单实用.admin whitegroup。

经历了exp9挖坑牌堆exp10完善后,我体验到了在大版本更新前挖好坑的模式,即提前做好扩展的空间等着大版本填坑。鉴于整个开发过于耗时,又希望生态圈内的创作者能尽早熟悉文件格式进行开发,exp10先用一天的开发时间支持了mod文件的基本格式,等待后续填充helpdoc以外的类型。session、mod在exp10都是看起来没那么重要的更新,但它们的作用都可以期待一下。那么,尽情催更exp11的开发吧,说不定到那时候,log、随机回复、敏感词检测、模糊匹配回复……都实现了呢。

Next

Previous

© Copyright 2020-2023, Suhui & Shiki

Revision 7573209f.

Built with Sphinx using a theme provided by Read the Docs.

Read the Docs

v: latest

Versions

latest

stable

Downloads

html

On Read the Docs

Project Home

Builds

Free document hosting provided by Read the Docs.