diff --git a/404.html b/404.html new file mode 100644 index 000000000..187f4ec20 --- /dev/null +++ b/404.html @@ -0,0 +1,23 @@ + + +
+ + +官网:海豹官网,新版本发布的正式地址,还提供试用,log 染色 等多项功能。
海豹开源组织 GitHub:海豹核心源码的托管地址。
请参见 官网—投喂,目前尚未更新蓝绿修改器(暂时顾不上)。
你的投喂将用于支付服务器费用,以及帮助社畜制作者们稍微抵抗来自现实的引力。
非常感谢。
海豹的源代码以 MIT 协议开源,托管在 GitHub 下。海豹核心的诞生离不开开源社区和其它开源软件的支持。
',15)]))}const u=e(n,[["render",l]]);export{f as __pageData,u as default}; diff --git a/assets/about_about.md.CV_qhwQQ.lean.js b/assets/about_about.md.CV_qhwQQ.lean.js new file mode 100644 index 000000000..3f69150df --- /dev/null +++ b/assets/about_about.md.CV_qhwQQ.lean.js @@ -0,0 +1 @@ +import{_ as e,c as r,a6 as t,o}from"./chunks/framework.B1keMFNq.js";const f=JSON.parse('{"title":"关于","description":"","frontmatter":{"lang":"zh-cn","title":"关于"},"headers":[],"relativePath":"about/about.md","filePath":"about/about.md","lastUpdated":1718529177000}'),n={name:"about/about.md"};function l(h,a,i,s,c,p){return o(),r("div",null,a[0]||(a[0]=[t('官网:海豹官网,新版本发布的正式地址,还提供试用,log 染色 等多项功能。
海豹开源组织 GitHub:海豹核心源码的托管地址。
请参见 官网—投喂,目前尚未更新蓝绿修改器(暂时顾不上)。
你的投喂将用于支付服务器费用,以及帮助社畜制作者们稍微抵抗来自现实的引力。
非常感谢。
海豹的源代码以 MIT 协议开源,托管在 GitHub 下。海豹核心的诞生离不开开源社区和其它开源软件的支持。
',15)]))}const u=e(n,[["render",l]]);export{f as __pageData,u as default}; diff --git a/assets/about_develop.md.av-vH3VY.js b/assets/about_develop.md.av-vH3VY.js new file mode 100644 index 000000000..373c69620 --- /dev/null +++ b/assets/about_develop.md.av-vH3VY.js @@ -0,0 +1 @@ +import{_ as a,c as t,a6 as l,o as r}from"./chunks/framework.B1keMFNq.js";const s="/sealdice-manual-next/assets/develop-fork-1.BZOKPa8J.png",o="/sealdice-manual-next/assets/develop-fork-2.X58VX0eS.png",i="/sealdice-manual-next/assets/develop-new-branch-1.BqKBsG0R.png",p="/sealdice-manual-next/assets/develop-new-branch-2.zhLwB2Rj.png",c="/sealdice-manual-next/assets/develop-new-branch-3.C0fRBlWq.png",n="/sealdice-manual-next/assets/develop-new-branch-4.ijy4i49c.png",d="/sealdice-manual-next/assets/develop-new-branch-5.CeOz2UDa.png",u="/sealdice-manual-next/assets/develop-new-branch-6.BBHexEzw.png",h="/sealdice-manual-next/assets/develop-new-branch-7.C2-9Q-ZS.png",m="/sealdice-manual-next/assets/develop-pr-1.BVBX_RTc.png",b="/sealdice-manual-next/assets/develop-pr-2.C-dKwDzw.png",f="/sealdice-manual-next/assets/develop-open-pr-1.DAADwrkm.png",k="/sealdice-manual-next/assets/develop-sync-fork.BZF0daO6.png",B=JSON.parse('{"title":"参与项目","description":"","frontmatter":{"lang":"zh-cn","title":"参与项目"},"headers":[],"relativePath":"about/develop.md","filePath":"about/develop.md","lastUpdated":1728702230000}'),g={name:"about/develop.md"};function _(x,e,v,q,P,w){return r(),t("div",null,e[0]||(e[0]=[l('无论是普通用户还是开发者,我们都非常欢迎你参与海豹的开发,一起努力让海豹变得更好。
海豹的所有源代码都托管在 海豹开源组织 GitHub 下,每个模块都存放在对应的仓库中,可阅读对应仓库的 Readme 获取更多信息。
几个比较重要的仓库:
所有的 Bug 和功能建议都可反馈在 核心 仓库的 issue 中,按照模板填写可方便开发组快速定位问题。
提示:无法访问 GitHub?
受限于各种原因,不是所有人都能顺利访问 GitHub,如有 Bug 可以加入官方群进行反馈。但如果有条件,我们还是建议在 GitHub 向开发组反馈问题。
欢迎各种类型的 pr 提交,可以帮助改进代码,增加功能,也可以是完善文档等等。向对应仓库发起 pr 即可。
贡献指南
下面将以提交对手册的改进为示例,为还不清楚怎么在 GitHub 上提 Pull Request 的准贡献者做个示范。
main
或 master
)切出一个新分支作为工作分支;首先 fork 对应想要修改的仓库,此处以手册仓库 sealdice-manual-next 为例:
点击 Create a new fork
按钮,如果此处已经有 fork 过仓库,可以直接进行后续步骤无需再次 fork。
点击按钮后进入如下页面:
可不做任何修改,直接点击 Create fork
按钮,等待 fork 进度条完成,此时你应当自动跳转到了 fork 出的新仓库。
提示:假如你熟悉 Git 操作
如果你熟悉 Git 操作,可以自行 clone 仓库到本地后进行修改。
切换到新仓库的分支页面,创建分支:
填写新分支名,建议为形如 feature/xxx
的有意义的英文。确认前请务必保证是从主分支切出的。
创建完毕后点击分支名切换到对应分支页面:
点击你想要修改的文件,进行在线编辑:
修改完成后点击右上角提交变更,填写变更内容信息:
你的修改完成后,在你 fork 的新仓库向主仓库发起 Pull Request:
提交时间很近的时候,GitHub 会提示快捷发起 PR 的操作按钮:
进入 PR 编辑页填写信息,请确认是从你的仓库的新分支,提向主仓库的主分支的:
主仓库 主分支 <- fork仓库 功能分支
填写完成后,等待开发组进行 review,有时会给你提出一些修改建议。在你的 PR review 通过并合并后,功能分支就可以被删除了。
如果之后还要提交新的 PR,建议先同步上游的主分支,再从同步后的主分支再新切分支进行操作。
如果你曾经修改了主分支,此处很可能会出现和上游分支有冲突的问题,需要你先手动解决冲突。
点击 Sync fork
进行同步。
无论是普通用户还是开发者,我们都非常欢迎你参与海豹的开发,一起努力让海豹变得更好。
海豹的所有源代码都托管在 海豹开源组织 GitHub 下,每个模块都存放在对应的仓库中,可阅读对应仓库的 Readme 获取更多信息。
几个比较重要的仓库:
所有的 Bug 和功能建议都可反馈在 核心 仓库的 issue 中,按照模板填写可方便开发组快速定位问题。
提示:无法访问 GitHub?
受限于各种原因,不是所有人都能顺利访问 GitHub,如有 Bug 可以加入官方群进行反馈。但如果有条件,我们还是建议在 GitHub 向开发组反馈问题。
欢迎各种类型的 pr 提交,可以帮助改进代码,增加功能,也可以是完善文档等等。向对应仓库发起 pr 即可。
贡献指南
下面将以提交对手册的改进为示例,为还不清楚怎么在 GitHub 上提 Pull Request 的准贡献者做个示范。
main
或 master
)切出一个新分支作为工作分支;首先 fork 对应想要修改的仓库,此处以手册仓库 sealdice-manual-next 为例:
点击 Create a new fork
按钮,如果此处已经有 fork 过仓库,可以直接进行后续步骤无需再次 fork。
点击按钮后进入如下页面:
可不做任何修改,直接点击 Create fork
按钮,等待 fork 进度条完成,此时你应当自动跳转到了 fork 出的新仓库。
提示:假如你熟悉 Git 操作
如果你熟悉 Git 操作,可以自行 clone 仓库到本地后进行修改。
切换到新仓库的分支页面,创建分支:
填写新分支名,建议为形如 feature/xxx
的有意义的英文。确认前请务必保证是从主分支切出的。
创建完毕后点击分支名切换到对应分支页面:
点击你想要修改的文件,进行在线编辑:
修改完成后点击右上角提交变更,填写变更内容信息:
你的修改完成后,在你 fork 的新仓库向主仓库发起 Pull Request:
提交时间很近的时候,GitHub 会提示快捷发起 PR 的操作按钮:
进入 PR 编辑页填写信息,请确认是从你的仓库的新分支,提向主仓库的主分支的:
主仓库 主分支 <- fork仓库 功能分支
填写完成后,等待开发组进行 review,有时会给你提出一些修改建议。在你的 PR review 通过并合并后,功能分支就可以被删除了。
如果之后还要提交新的 PR,建议先同步上游的主分支,再从同步后的主分支再新切分支进行操作。
如果你曾经修改了主分支,此处很可能会出现和上游分支有冲突的问题,需要你先手动解决冲突。
点击 Sync fork
进行同步。
进行使用即代表同意此声明:
尊敬的用户,欢迎您选择由木落等研发的海豹骰点核心(SealDice),在您使用海豹骰点核心前,请务必仔细阅读使用须知,使用即代表您已同意使用须知的内容,使用造成的任何后果与海豹开发组无关。
您需了解,海豹核心官方版只支持 TRPG 功能,娱乐功能定制化请自便,和海豹无关。
您清楚并明白您对通过骰子提供的全部内容负责,包括自定义回复、非自带的插件、牌堆。海豹骰不对非自身提供以外的内容合法性负责。您不得在使用海豹骰服务时,导入包括但不限于以下情形的内容:
(1) 反对中华人民共和国宪法所确定的基本原则的;
(2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
(3) 损害国家荣誉和利益的;
(4) 煽动民族仇恨、民族歧视、破坏民族团结的;
(5) 破坏国家宗教政策,宣扬邪教和封建迷信的;
(6) 散布谣言,扰乱社会秩序,破坏社会稳定的;
(7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
(8) 侮辱或者诽谤他人,侵害他人合法权益的;
(9) 宣扬、教唆使用外挂、私服、病毒、恶意代码、木马及其相关内容的;
(10) 侵犯他人知识产权或涉及第三方商业秘密及其他专有权利的;
(11) 散布任何贬损、诋毁、恶意攻击海豹骰及开发人员、海洋馆工作人员、mod 编写人员、关联合作者的;
(12) 含有中华人民共和国法律、行政法规、政策、上级主管部门下发通知中所禁止的其他内容的。
一旦您有以上禁止行为,请立即停用海豹骰。
',18)]))}const f=e(n,[["render",r]]);export{u as __pageData,f as default}; diff --git a/assets/about_license.md.DdpdFMxu.lean.js b/assets/about_license.md.DdpdFMxu.lean.js new file mode 100644 index 000000000..804a5bd22 --- /dev/null +++ b/assets/about_license.md.DdpdFMxu.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,a6 as a,o}from"./chunks/framework.B1keMFNq.js";const u=JSON.parse('{"title":"许可协议","description":"","frontmatter":{"lang":"zh-cn","title":"许可协议"},"headers":[],"relativePath":"about/license.md","filePath":"about/license.md","lastUpdated":1714442589000}'),n={name:"about/license.md"};function r(s,p,c,i,l,d){return o(),t("div",null,p[0]||(p[0]=[a('进行使用即代表同意此声明:
尊敬的用户,欢迎您选择由木落等研发的海豹骰点核心(SealDice),在您使用海豹骰点核心前,请务必仔细阅读使用须知,使用即代表您已同意使用须知的内容,使用造成的任何后果与海豹开发组无关。
您需了解,海豹核心官方版只支持 TRPG 功能,娱乐功能定制化请自便,和海豹无关。
您清楚并明白您对通过骰子提供的全部内容负责,包括自定义回复、非自带的插件、牌堆。海豹骰不对非自身提供以外的内容合法性负责。您不得在使用海豹骰服务时,导入包括但不限于以下情形的内容:
(1) 反对中华人民共和国宪法所确定的基本原则的;
(2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
(3) 损害国家荣誉和利益的;
(4) 煽动民族仇恨、民族歧视、破坏民族团结的;
(5) 破坏国家宗教政策,宣扬邪教和封建迷信的;
(6) 散布谣言,扰乱社会秩序,破坏社会稳定的;
(7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
(8) 侮辱或者诽谤他人,侵害他人合法权益的;
(9) 宣扬、教唆使用外挂、私服、病毒、恶意代码、木马及其相关内容的;
(10) 侵犯他人知识产权或涉及第三方商业秘密及其他专有权利的;
(11) 散布任何贬损、诋毁、恶意攻击海豹骰及开发人员、海洋馆工作人员、mod 编写人员、关联合作者的;
(12) 含有中华人民共和国法律、行政法规、政策、上级主管部门下发通知中所禁止的其他内容的。
一旦您有以上禁止行为,请立即停用海豹骰。
',18)]))}const f=e(n,[["render",r]]);export{u as __pageData,f as default}; diff --git a/assets/about_start-from-zero.md.BTAFBcyH.js b/assets/about_start-from-zero.md.BTAFBcyH.js new file mode 100644 index 000000000..147ade578 --- /dev/null +++ b/assets/about_start-from-zero.md.BTAFBcyH.js @@ -0,0 +1 @@ +import{_ as e,c as t,a6 as r,o as l}from"./chunks/framework.B1keMFNq.js";const f=JSON.parse('{"title":"从零开始","description":"","frontmatter":{"lang":"zh-cn","title":"从零开始"},"headers":[],"relativePath":"about/start-from-zero.md","filePath":"about/start-from-zero.md","lastUpdated":1723441920000}'),o={name:"about/start-from-zero.md"};function p(h,a,i,d,s,n){return l(),t("div",null,a[0]||(a[0]=[r('首先感谢你选用海豹核心。
我们将本手册的所有内容按照从零开始到深入定制的操作顺序重新排列成了本节的内容。我们推荐新用户按此顺序阅读手册。
在阅读本节时,我们建议你读完整段再点击链接跳转到对应内容。读完对应内容后,你可以立即付诸实践。然后,建议你回到本节,继续按此顺序阅读剩余内容。
如果你只需要详细了解某个特定话题,请你直接从导航栏查找对应分类。
首先,你需要让海豹核心在你的服务器或电脑上运行起来。
如果你是从零开始部署,请阅读 快速开始。
如果你之前部署过海豹核心,现在需要将旧部署转移到新的机器,请在阅读过新平台的部署方法后阅读 迁移。
海豹核心成功运行后,你需要将它接入你希望的即时通讯平台。这样它才能接收和发送消息。
海豹目前支持了许多平台,开列如下。如果你还希望海豹接入更多平台,请你提出 Issue,我们会尽可能满足你的需求。
海豹核心提供了许多指令,它们是所有功能的中坚。
请阅读 基础概念,了解指令的基本格式。
然后,你可以熟悉一下海豹核心提供的不同自定义功能。你可能暂时不会用到所有的功能。但是,首先熟悉海豹核心能做到、不能做到哪些事,会对你的使用大有帮助。
请阅读这一章下面的各节,你可以跳过一些细节问题: 配置。
我们推荐你简单浏览一遍各种指令。你不需要记住每个指令的所有细节,只要大概知道有什么指令,能够完成什么功能,就很足够了。
首先,请阅读 核心指令。这一节介绍了海豹核心最重要的一些指令。
然后,你可以阅读此章的剩余各节。它们按照扩展列出了每个指令的详细用法。
如果你希望自己动手,充分利用海豹核心提供的自定义能力,你需要对于海豹核心对不同功能的约定有所了解。
请你首先阅读 进阶介绍,然后阅读此章中你感兴趣的节。
',25)]))}const c=e(o,[["render",p]]);export{f as __pageData,c as default}; diff --git a/assets/about_start-from-zero.md.BTAFBcyH.lean.js b/assets/about_start-from-zero.md.BTAFBcyH.lean.js new file mode 100644 index 000000000..147ade578 --- /dev/null +++ b/assets/about_start-from-zero.md.BTAFBcyH.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,a6 as r,o as l}from"./chunks/framework.B1keMFNq.js";const f=JSON.parse('{"title":"从零开始","description":"","frontmatter":{"lang":"zh-cn","title":"从零开始"},"headers":[],"relativePath":"about/start-from-zero.md","filePath":"about/start-from-zero.md","lastUpdated":1723441920000}'),o={name:"about/start-from-zero.md"};function p(h,a,i,d,s,n){return l(),t("div",null,a[0]||(a[0]=[r('首先感谢你选用海豹核心。
我们将本手册的所有内容按照从零开始到深入定制的操作顺序重新排列成了本节的内容。我们推荐新用户按此顺序阅读手册。
在阅读本节时,我们建议你读完整段再点击链接跳转到对应内容。读完对应内容后,你可以立即付诸实践。然后,建议你回到本节,继续按此顺序阅读剩余内容。
如果你只需要详细了解某个特定话题,请你直接从导航栏查找对应分类。
首先,你需要让海豹核心在你的服务器或电脑上运行起来。
如果你是从零开始部署,请阅读 快速开始。
如果你之前部署过海豹核心,现在需要将旧部署转移到新的机器,请在阅读过新平台的部署方法后阅读 迁移。
海豹核心成功运行后,你需要将它接入你希望的即时通讯平台。这样它才能接收和发送消息。
海豹目前支持了许多平台,开列如下。如果你还希望海豹接入更多平台,请你提出 Issue,我们会尽可能满足你的需求。
海豹核心提供了许多指令,它们是所有功能的中坚。
请阅读 基础概念,了解指令的基本格式。
然后,你可以熟悉一下海豹核心提供的不同自定义功能。你可能暂时不会用到所有的功能。但是,首先熟悉海豹核心能做到、不能做到哪些事,会对你的使用大有帮助。
请阅读这一章下面的各节,你可以跳过一些细节问题: 配置。
我们推荐你简单浏览一遍各种指令。你不需要记住每个指令的所有细节,只要大概知道有什么指令,能够完成什么功能,就很足够了。
首先,请阅读 核心指令。这一节介绍了海豹核心最重要的一些指令。
然后,你可以阅读此章的剩余各节。它们按照扩展列出了每个指令的详细用法。
如果你希望自己动手,充分利用海豹核心提供的自定义能力,你需要对于海豹核心对不同功能的约定有所了解。
请你首先阅读 进阶介绍,然后阅读此章中你感兴趣的节。
',25)]))}const c=e(o,[["render",p]]);export{f as __pageData,c as default}; diff --git a/assets/advanced_README.md.CTnVKI7J.js b/assets/advanced_README.md.CTnVKI7J.js new file mode 100644 index 000000000..4c3368957 --- /dev/null +++ b/assets/advanced_README.md.CTnVKI7J.js @@ -0,0 +1 @@ +import{_ as l,c as a,a6 as t,o as i}from"./chunks/framework.B1keMFNq.js";const n=JSON.parse('{"title":"进阶","description":"","frontmatter":{"title":"进阶","index":false},"headers":[],"relativePath":"advanced/README.md","filePath":"advanced/README.md","lastUpdated":1728702230000}'),r={name:"advanced/README.md"};function s(d,e,h,m,c,o){return i(),a("div",null,e[0]||(e[0]=[t('',1)]))}const f=l(r,[["render",s]]);export{n as __pageData,f as default}; diff --git a/assets/advanced_README.md.CTnVKI7J.lean.js b/assets/advanced_README.md.CTnVKI7J.lean.js new file mode 100644 index 000000000..4c3368957 --- /dev/null +++ b/assets/advanced_README.md.CTnVKI7J.lean.js @@ -0,0 +1 @@ +import{_ as l,c as a,a6 as t,o as i}from"./chunks/framework.B1keMFNq.js";const n=JSON.parse('{"title":"进阶","description":"","frontmatter":{"title":"进阶","index":false},"headers":[],"relativePath":"advanced/README.md","filePath":"advanced/README.md","lastUpdated":1728702230000}'),r={name:"advanced/README.md"};function s(d,e,h,m,c,o){return i(),a("div",null,e[0]||(e[0]=[t('',1)]))}const f=l(r,[["render",s]]);export{n as __pageData,f as default}; diff --git a/assets/advanced_edit_complex_custom_text.md.38X_Lm4p.js b/assets/advanced_edit_complex_custom_text.md.38X_Lm4p.js new file mode 100644 index 000000000..8cc9104c4 --- /dev/null +++ b/assets/advanced_edit_complex_custom_text.md.38X_Lm4p.js @@ -0,0 +1,18 @@ +import{_ as o,c as p,a6 as n,j as a,G as e,B as c,o as i}from"./chunks/framework.B1keMFNq.js";const v=JSON.parse('{"title":"编写复杂文案","description":"","frontmatter":{"lang":"zh-cn","title":"编写复杂文案"},"headers":[],"relativePath":"advanced/edit_complex_custom_text.md","filePath":"advanced/edit_complex_custom_text.md","lastUpdated":1728702230000}'),l={name:"advanced/edit_complex_custom_text.md"},d={class:"info custom-block"},u={class:"info custom-block"};function r(h,t,m,q,b,g){const s=c("ChatBox");return i(),p("div",null,[t[2]||(t[2]=n(`本节内容
本节将展示复杂文案的编写技巧,请善用侧边栏和搜索,按需阅读文档。
在文案中通常会有结果变量,通过对结果变量的判断来实现展示不同文案。如修改 .r 骰点_单项结果文本
文案为例
{$t表达式文本}{$t计算过程}={$t计算结果}{%
+$t计算结果 == 100 ? " 乐!",
+$t计算结果 == 1 ? " 啧!"
+%}
正则匹配:mode switch(.*)
回复:
{%
+if $t1==""||$t1==" 默认" {$g文案模式 = 0; $t输出="默认模式启用"};
+if $t1==" 模式1" {$g文案模式 = 1; $t输出="模式1启用"};
+if $t1==" 模式2" {$g文案模式 = 2; $t输出="模式2启用"};
+if $t1!=""&&$t1!=" 默认"&&$t1!=" 模式1"&&$t1!=" 模式2" {$t输出=\`不存在指定模式{$t1}\`};
+$t输出
+%}
精确匹配:mode show
回复:
{%
+$g文案模式==0 ? "当前在默认模式",
+$g文案模式==1 ? "当前在模式1" ,
+$g文案模式==2 ? "当前在模式2"
+%}
按如下模式调整你的自定义文案项:
{
+if $g文案模式 == 0 {$t目标文案 = \`(这里填你个性化的默认模式文案)\`};
+if $g文案模式 == 1 {$t目标文案 = \`(这里填你个性化的模式1文案)\`};
+if $g文案模式 == 2 {$t目标文案 = \`(这里填你个性化的模式2文案)\`}
+}{$t目标文案}
以修改了 .jrrp
的文案为例:
本节内容
本节将展示复杂文案的编写技巧,请善用侧边栏和搜索,按需阅读文档。
在文案中通常会有结果变量,通过对结果变量的判断来实现展示不同文案。如修改 .r 骰点_单项结果文本
文案为例
{$t表达式文本}{$t计算过程}={$t计算结果}{%
+$t计算结果 == 100 ? " 乐!",
+$t计算结果 == 1 ? " 啧!"
+%}
正则匹配:mode switch(.*)
回复:
{%
+if $t1==""||$t1==" 默认" {$g文案模式 = 0; $t输出="默认模式启用"};
+if $t1==" 模式1" {$g文案模式 = 1; $t输出="模式1启用"};
+if $t1==" 模式2" {$g文案模式 = 2; $t输出="模式2启用"};
+if $t1!=""&&$t1!=" 默认"&&$t1!=" 模式1"&&$t1!=" 模式2" {$t输出=\`不存在指定模式{$t1}\`};
+$t输出
+%}
精确匹配:mode show
回复:
{%
+$g文案模式==0 ? "当前在默认模式",
+$g文案模式==1 ? "当前在模式1" ,
+$g文案模式==2 ? "当前在模式2"
+%}
按如下模式调整你的自定义文案项:
{
+if $g文案模式 == 0 {$t目标文案 = \`(这里填你个性化的默认模式文案)\`};
+if $g文案模式 == 1 {$t目标文案 = \`(这里填你个性化的模式1文案)\`};
+if $g文案模式 == 2 {$t目标文案 = \`(这里填你个性化的模式2文案)\`}
+}{$t目标文案}
以修改了 .jrrp
的文案为例:
本节内容
本节将介绍牌堆的编写,请善用侧边栏和搜索,按需阅读文档。
海豹核心目前支持 toml
、json
和 yaml
格式的牌堆。
如果对其中某种格式的语法有了解,建议选择熟悉的格式。如果都不了解,建议选择使用适用性最广的 json
格式。
当然,如果你的海豹版本较新,我们也非常推荐你尝试 toml
格式的牌堆编写。toml
格式诞生较晚,语法支持更多现代特性,海豹为这种格式的牌堆支持了更多功能。
注意:牌堆文件的编码
永远 使用「UTF-8 编码」来编写牌堆。
我们将简单介绍 toml
json
yaml
的语法,仅说明牌堆编写中会用到的部分,帮助你快速了解它们。
注意:务必注意使用半角符号!
下面的语法中涉及到的符号都是 半角符号,如果你出现了奇怪的问题,记得检查是否在输入法的中文输入状态,导致输入了错误的符号。
比如应该为 ,
却使用了 ,
,应该为 ""
却使用了 “”
。
使用专业的编辑器能帮助你检查这些问题。
海豹的抽取指令为 .draw <key>
,而牌堆就是可以提供一些 key 作为牌组的文件。
我们从编写一个最简单的牌堆开始,我们希望:
快端上来罢
和 数字论证
两个牌组; .draw 快端上来罢
可以抽取出 哼哼哼啊啊啊啊啊
你是一个一个一个牌堆结果
这两个结果;.draw 数字论证
可以抽取出 114514
1919810
这两个结果。这个牌堆编写如下,你可以选择以下任意一种格式来学习:
',5)),a(k,{sharedStateKey:"deck-format"},{default:n(()=>[a(t,{label:"TOML"},{default:n(()=>l[42]||(l[42]=[s("div",{class:"language-toml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"toml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 元信息表")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"meta"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"title = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"author = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"田所浩二"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 有多个作者时可以使用,两者仅需保留一行")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"authors = ["),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"田所浩二"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"version = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1.0"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"license = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"CC-BY-NC-SA 4.0"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"date = "),s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},"1919-08-10")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"update_date = "),s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},"1919-08-10")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"desc = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"这个示例牌堆怎么这么臭(恼)"')]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 牌组表")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"decks"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"快端上来罢" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"数字论证" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")])])])],-1),s("p",null,[i("一个 TOML 牌堆的最基本格式如上。其中 "),s("code",null,"meta"),i(" 表中的信息不是必须的,但我们非常建议你保留并填写这些项,它们能在分享时说明更多信息:")],-1),s("ul",null,[s("li",null,[s("code",null,"title"),i(":牌堆的标题;")]),s("li",null,[s("code",null,"author"),i("/"),s("code",null,"authors"),i(":牌堆作者;")]),s("li",null,[s("code",null,"date"),i(":牌堆创建日期;")]),s("li",null,[s("code",null,"updateDate"),i(":牌堆更新日期;")]),s("li",null,[s("code",null,"desc"),i(":牌堆简介;")]),s("li",null,[s("code",null,"version"),i(":牌堆版本;")]),s("li",null,[s("code",null,"license"),i(":牌堆协议。")])],-1),s("p",null,[i("可以将上述内容保存名为 "),s("code",null,"野兽牌堆.toml"),i("(名称任意,但必须是以 "),s("code",null,".toml"),i(" 为后缀扩展名)的文件进行测试。")],-1)])),_:1}),a(t,{label:"JSON"},{default:n(()=>l[43]||(l[43]=[s("div",{class:"language-json vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"json"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"{")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_title"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_author"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"田所浩二"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_date"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1919-08-10"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_updateDate"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1919-08-10"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_brief"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"这个示例牌堆怎么这么臭(恼)"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_version"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1.0"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_license"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"CC-BY-NC-SA 4.0"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "快端上来罢"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "数字论证"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")])])])],-1),s("p",null,[i("一个 JSON 牌堆的最基本格式如上。其中以 "),s("code",null,"_"),i(" 开头的项不是必须的,但是我们非常建议你保留并填写这些项,它们能在分享时说明更多信息:")],-1),s("ul",null,[s("li",null,[s("code",null,"_title"),i(":牌堆的标题;")]),s("li",null,[s("code",null,"_author"),i(":牌堆作者;")]),s("li",null,[s("code",null,"_date"),i(":牌堆创建日期;")]),s("li",null,[s("code",null,"_updateDate"),i(":牌堆更新日期;")]),s("li",null,[s("code",null,"_brief"),i(":牌堆简介;")]),s("li",null,[s("code",null,"_version"),i(":牌堆版本;")]),s("li",null,[s("code",null,"_license"),i(":牌堆协议。")])],-1),s("p",null,[i("可以将上述内容保存名为 "),s("code",null,"野兽牌堆.json"),i("(名称任意,但必须是以 "),s("code",null,".json"),i(" 为后缀扩展名)的文件进行测试。")],-1)])),_:1}),a(t,{label:"YAML"},{default:n(()=>l[44]||(l[44]=[s("div",{class:"language-yaml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"yaml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"name"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"野兽牌堆")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"author"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"田所浩二")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"version"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},"1")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"license"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"CC-BY-NC-SA 4.0")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"desc"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"这个示例牌堆怎么这么臭(恼)")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"command"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"快端上来罢"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"哼哼哼啊啊啊啊啊")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"你是一个一个一个牌堆结果")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"数字论证"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'114514'")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'1919810'")])])])],-1),s("p",null,"一个 YAML 牌堆的最基本格式如上。其中上半部分的一些项不是必须的,但是我们非常建议你保留并填写这些项,它们能在分享时说明更多信息:",-1),s("ul",null,[s("li",null,[s("code",null,"name"),i(":牌堆的标题;")]),s("li",null,[s("code",null,"author"),i(":牌堆作者;")]),s("li",null,[s("code",null,"version"),i(":牌堆版本,应是一个整数;")]),s("li",null,[s("code",null,"license"),i(":牌堆协议;")]),s("li",null,[s("code",null,"desc"),i(":牌堆简介。")])],-1),s("p",null,[i("可以将上述内容保存名为 "),s("code",null,"野兽牌堆.yaml"),i("(名称任意,但必须是以 "),s("code",null,".yaml"),i(" 或 "),s("code",null,".yml"),i(" 为后缀扩展名)的文件进行测试。")],-1)])),_:1})]),_:1}),l[65]||(l[65]=e('注意:牌堆文件扩展名正确吗?
保存文件时务必确认开启了操作系统的扩展名显示,避免出现看上去保存了 xxx.json
文件,但实际上的文件名是 xxx.json.txt
。
牌堆抽取结果字符串中,可以实现抽取其他项,将内容拼接进该结果。
{key}
表示不放回抽取;{%key}
表示放回抽取。放回抽取,指此次抽取后抽取的牌组保持原样,每次都相当于从全新牌组中抽取,你仍可能抽到相同结果。
不放回抽取,尺度是一次抽牌指令,在这一次指令的执行过程中不会再从该牌组中抽到相同结果。多次抽取指令 draw 3# 牌组
只被视为一次指令,不放回抽取生效。指令执行结束后,将重置所有牌组到初始状态。
需要提到,带有权重调整的项目不会被视为在牌组中有多个副本。在下文中有详细讨论。
示例:不放回抽取
[decks]
+"拷打木落" = [
+ "泡面偷走叉子调料包",
+ "捏碎所有薯片",
+ "用勺子把西瓜最中间的一块全挖走",
+]
+"拷打木落三次" = [ "{%拷打木落} {%拷打木落} {%拷打木落}" ]
+"不同方式拷打木落三次" = [ "{拷打木落} {拷打木落} {拷打木落}" ]
在此示例中,牌组「拷打木落三次」的项目采用了放回抽取,「不同方式拷打木落三次」采用了不放回抽取。
如果抽取 draw 拷打木落三次
,得到的三个结果可能有重复。
如果抽取 draw 不同方式拷打木落三次
,得到的三个结果将互不相同,但顺序是随机的。通过 draw 3# 拷打木落
也可达成类似的效果。
抽取结果字符串中的 [exp]
,会先执行其中的掷骰表达式 exp
,再组合到原字符串里。
如:抽取 企鹅早该爆金币辣!v我[1d10]个金币
的结果可能是 企鹅早该爆金币辣!v我1个金币
。
研究旧牌堆,可能会发现有牌堆通过下面这样的写法来实现这个功能,现在请不要这么做了。
{
+ "数字": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+ "爆金币": "企鹅早该爆金币辣!v我{%数字}个金币"
+}
抽取结果字符串中最前面的 ::value::
表示该项的权重。不含有该标记的项目被视为拥有默认权重 1。
示例:有 1/10 的几率出现闪光海豹
`,16)),a(k,{sharedStateKey:"deck-format"},{default:n(()=>[a(t,{label:"TOML"},{default:n(()=>l[48]||(l[48]=[s("div",{class:"language-toml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"toml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"decks"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"捕捉海豹" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "::9::海豹"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "✨闪光海豹✨"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")])])])],-1)])),_:1}),a(t,{label:"JSON"},{default:n(()=>l[49]||(l[49]=[s("div",{class:"language-json vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"json"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"{")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "捕捉海豹"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "::9::海豹"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "✨闪光海豹✨"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")])])])],-1)])),_:1}),a(t,{label:"YAML"},{default:n(()=>l[50]||(l[50]=[s("div",{class:"language-yaml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"yaml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"捕捉海豹"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"::9::海豹")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"✨闪光海豹✨")])])])],-1)])),_:1})]),_:1}),l[67]||(l[67]=e(`在使用不放回抽取的情况下,标记权重的项目不会被视为单个项目的多个副本。以上文的例子而言,牌组中仍被视为只有 2 个项目。
如果使用 draw 捕捉海豹 2#
进行抽取,一定会获得 1 个「海豹」和 1 个「✨闪光海豹✨」。
在这种情况下,权重影响的是抽出的顺序。你将以 9/10 的概率先抽出「海豹」,以 1/10 的概率先抽出「✨闪光海豹✨」。
研究旧牌堆,可能会发现有牌堆通过下面这样的写法来实现这个功能,现在请不要这么做了。
{
+ "捕捉海豹": [
+ "海豹", "海豹", "海豹", "海豹", "海豹", "海豹", "海豹", "海豹", "海豹",
+ "✨闪光海豹✨"
+ ]
+}
抽取结果字符串中可以插入 CQ 码和海豹码,比如 [图:data/images/sealdice.png]
。
发布带图牌堆最常见的选择是牌堆文件连同图片打包成一个压缩包,但是这样做有诸多不便之处。
如果你不想发布时在压缩包里添加一个教程,告诉你的用户如何解压、图片要放到那个文件夹下、什么是相对路径……那就把牌堆打包成可以在海豹 UI 直接上传的 *.deck
文件吧。
信息
deck
文件在本质上依然是 zip
文件,修改后缀只是便于海豹识别。
假如牌堆文件内容如下(使用相对路径 ./assets/...
):
{
+ "test":["[图:./assets/1.jpg]"]
+}
则牌堆文件所在文件夹结构应是:
.
+├─assets
+│ └─1.jpg
+└─ test.json
选中牌堆文件和 assets 文件夹压缩为 ZIP 文件,修改文件后缀为 deck。
图例中所使用的软件为 Bandizip,使用 Windows 右键菜单中的 压缩为 ZIP 文件
与之等价的。
注意:小心嵌套文件夹
以示例图中路径为例,不要回退到上一级目录然后选中 top 文件夹压缩。
.draw keys
指令会列出所有允许抽取的牌组,但在牌堆编写过程中,经常会需要用到辅助的牌组,这些辅助项是不希望暴露给用户的。我们可以通过一定方式来隐藏这些项。
提示:UI 中识别隐藏的牌组
你可以通过查看牌堆管理界面中的「牌堆列表」来识别牌组是否隐藏。
灰色的牌组是隐藏的,即不展示在列表中,但能够被 .draw <key>
抽取。
未导出(不展示也不能抽取)的牌组不展示在该列表中。
很多时候,牌堆内容不是一成不变的。而使用牌堆的用户需要手动去获取最新的牌堆,才能获得作者们提供的最新内容。
我们为牌堆提供了配置更新链接的机制,方便骰主快速获取牌堆更新。有能力的牌堆作者可以配置更新链接,便于分享最新的牌堆内容。
',4)),a(k,{sharedStateKey:"deck-format"},{default:n(()=>[a(t,{label:"TOML"},{default:n(()=>l[57]||(l[57]=[s("p",null,[i("配置牌堆文件的 "),s("code",null,"updateUrls"),i(" 以指定对应的更新链接:")],-1),s("div",{class:"language-toml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"toml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"meta"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"title = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"updateUrls = [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "https://updateurl.com"'),s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}}," # 此处填写你的更新链接")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 牌组表")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"decks"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"快端上来罢" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"数字论证" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")])])])],-1)])),_:1}),a(t,{label:"JSON"},{default:n(()=>l[58]||(l[58]=[s("p",null,[i("配置牌堆文件的 "),s("code",null,"_updateUrls"),i(" 以指定对应的更新链接:")],-1),s("div",{class:"language-json vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"json"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"{")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_title"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_updateUrls"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"https://updateurl.com"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "快端上来罢"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "数字论证"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")])])])],-1)])),_:1}),a(t,{label:"YAML"},{default:n(()=>l[59]||(l[59]=[s("p",null,[i("配置牌堆文件的 "),s("code",null,"update_urls"),i(" 以指定对应的更新链接:")],-1),s("div",{class:"language-yaml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"yaml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"name"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"野兽牌堆")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"update_urls"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'https://updateurl.com'")]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"快端上来罢"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"哼哼哼啊啊啊啊啊")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"你是一个一个一个牌堆结果")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"数字论证"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'114514'")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'1919810'")])])])],-1)])),_:1})]),_:1}),l[70]||(l[70]=e('有多个更新链接时,海豹将依次从上往下检查更新。
抽取结果字符串中可以插入 海豹语 。
提示:特殊的括号
与在文案和自定义回复中插入海豹语使用 {}
不同,在牌堆中 {}
有其他含义,需要用 []
代替 {}
。
TOML 牌堆中,你可以以表的形式来创建更复杂的牌组,这允许你更精细的控制每个牌组的选项。
复杂牌组和普通牌组在使用上没有什么区别,仅仅是提供了配置选项的能力。
[meta]
+title = "野兽牌堆"
+updateUrls = [
+ "https://updateurl.com" # 此处填写你的更新链接
+]
+
+# 简单牌组表
+[decks]
+"快端上来罢" = [
+ "哼哼哼啊啊啊啊啊",
+ "你是一个一个一个牌堆结果"
+]
+
+# 复杂牌组
+["数字论证"]
+export = true
+visible = true
+aliases = [ "恶臭论证" ]
+options = [
+ "114514",
+ "1919810",
+]
表名将作为这个牌组的名称,复杂牌组提供以下选项:
export
:是否导出该牌组;visible
:该牌组是否可见,不可见的将不展示在 .draw keys
列表中;aliases
:牌组的别名,可以使用别名抽取改牌组,如上述示例中可以使用 .draw 数字论证
或 .draw 恶臭论证
来抽取;options
:该牌组的项。注意:设置的选项未生效?
注意,对应的选项名需要完全一致,否则海豹将无法正确解析。
如 aliases
不要误写成 alias
,options
不要误写成 option
。
某些情况下,我们希望牌堆内容能够自动更新,骰主无需反复更新骰子中装载的牌堆,用户也能抽取到最新内容。例如,一个实时更新的公骰列表牌堆。
海豹支持为牌堆提供云端内容,这需要牌堆作者有能力提供一个 API 接口,每次 配置了接口的牌组被抽取的时候,都会调用该接口获取该牌组的最新数据。
注意:不受控的云端内容
海豹核心无法核查从接口处获取的数据,骰主需要自行确认数据源不会返回你不希望骰子发出的信息。
对于提供了云端内容的牌堆,在海豹 Web UI 的牌端管理界面,会强制增加相应标识,以显示该牌堆提供了云端内容。
海豹将以 HTTP GET 的方式请求对应接口,接口应当返回一个 JSON 字符串数组数据,其每个元素均是牌组的一个条目。
返回结果示例如下:
[
+ "3 = 11*-4+51-4",
+ "114 = 11*4+5*14",
+ "514 = (1-1)/4+514"
+]
目前仅有 TOML 牌堆支持云端内容,示例如下:
[meta]
+title = "野兽牌堆-云端内容示例"
+
+["114514种论证"]
+export = true
+visible = true
+options = [
+ "1 = 11/(45-1)*4",
+ "2 = -11+4-5+14",
+ "3 = 11*-4+51-4"
+]
+# 开启云内容
+cloud_extra = true
+# 云内容与本地内容去重
+dictinct = true
+# 云内容链接
+options_urls = [
+ "此处替换为对应的 API 链接,类似 http://example.com/xxx",
+]
假定上面填入了 API,它会返回上一节中的示例 JSON 字符串数组,即 ["3 = 11*-4+51-4", "114 = 11*4+5*14", "514 = (1-1)/4+514"]
。
正如上面示例中看到的那样,在 TOML 格式的复杂牌组中,有一些云端内容的相关配置项,每个牌组都可以单独控制云端相关设置。抽取牌组时,接口返回的数据将和牌组本身配置的 options
数组合并,最后的抽取是从合并的数组中进行。
cloud_extra
:为 true
时,抽取本牌组时将请求接口获取云端数据;options_urls
:配置云端内容的 API 链接,链接能够配置多个。每次抽取这个牌组时,会依次调用配置的 API,在任意一个接口成功返回数据后即停止;distinct
:为 true
时,云端数据与本地数据合并后会进行去重,确保最终抽取的牌组中不含重复条目。以上述牌组为例,当执行 .draw 114514种论证
的时候,将首先调用 API 获取云端内容,成功获取后进行合并并去重,最终抽取的牌组相当于直接配置了这样的牌组:
["114514种论证"]
+export = true
+visible = true
+options = [
+ "1 = 11/(45-1)*4",
+ "2 = -11+4-5+14",
+ "3 = 11*-4+51-4",
+ "114 = 11*4+5*14",
+ "514 = (1-1)/4+514"
+]
本节内容
本节将介绍牌堆的编写,请善用侧边栏和搜索,按需阅读文档。
海豹核心目前支持 toml
、json
和 yaml
格式的牌堆。
如果对其中某种格式的语法有了解,建议选择熟悉的格式。如果都不了解,建议选择使用适用性最广的 json
格式。
当然,如果你的海豹版本较新,我们也非常推荐你尝试 toml
格式的牌堆编写。toml
格式诞生较晚,语法支持更多现代特性,海豹为这种格式的牌堆支持了更多功能。
注意:牌堆文件的编码
永远 使用「UTF-8 编码」来编写牌堆。
我们将简单介绍 toml
json
yaml
的语法,仅说明牌堆编写中会用到的部分,帮助你快速了解它们。
注意:务必注意使用半角符号!
下面的语法中涉及到的符号都是 半角符号,如果你出现了奇怪的问题,记得检查是否在输入法的中文输入状态,导致输入了错误的符号。
比如应该为 ,
却使用了 ,
,应该为 ""
却使用了 “”
。
使用专业的编辑器能帮助你检查这些问题。
海豹的抽取指令为 .draw <key>
,而牌堆就是可以提供一些 key 作为牌组的文件。
我们从编写一个最简单的牌堆开始,我们希望:
快端上来罢
和 数字论证
两个牌组; .draw 快端上来罢
可以抽取出 哼哼哼啊啊啊啊啊
你是一个一个一个牌堆结果
这两个结果;.draw 数字论证
可以抽取出 114514
1919810
这两个结果。这个牌堆编写如下,你可以选择以下任意一种格式来学习:
',5)),a(k,{sharedStateKey:"deck-format"},{default:n(()=>[a(t,{label:"TOML"},{default:n(()=>l[42]||(l[42]=[s("div",{class:"language-toml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"toml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 元信息表")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"meta"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"title = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"author = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"田所浩二"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 有多个作者时可以使用,两者仅需保留一行")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"authors = ["),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"田所浩二"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"version = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1.0"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"license = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"CC-BY-NC-SA 4.0"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"date = "),s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},"1919-08-10")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"update_date = "),s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},"1919-08-10")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"desc = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"这个示例牌堆怎么这么臭(恼)"')]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 牌组表")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"decks"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"快端上来罢" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"数字论证" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")])])])],-1),s("p",null,[i("一个 TOML 牌堆的最基本格式如上。其中 "),s("code",null,"meta"),i(" 表中的信息不是必须的,但我们非常建议你保留并填写这些项,它们能在分享时说明更多信息:")],-1),s("ul",null,[s("li",null,[s("code",null,"title"),i(":牌堆的标题;")]),s("li",null,[s("code",null,"author"),i("/"),s("code",null,"authors"),i(":牌堆作者;")]),s("li",null,[s("code",null,"date"),i(":牌堆创建日期;")]),s("li",null,[s("code",null,"updateDate"),i(":牌堆更新日期;")]),s("li",null,[s("code",null,"desc"),i(":牌堆简介;")]),s("li",null,[s("code",null,"version"),i(":牌堆版本;")]),s("li",null,[s("code",null,"license"),i(":牌堆协议。")])],-1),s("p",null,[i("可以将上述内容保存名为 "),s("code",null,"野兽牌堆.toml"),i("(名称任意,但必须是以 "),s("code",null,".toml"),i(" 为后缀扩展名)的文件进行测试。")],-1)])),_:1}),a(t,{label:"JSON"},{default:n(()=>l[43]||(l[43]=[s("div",{class:"language-json vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"json"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"{")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_title"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_author"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"田所浩二"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_date"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1919-08-10"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_updateDate"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1919-08-10"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_brief"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"这个示例牌堆怎么这么臭(恼)"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_version"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"1.0"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_license"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"CC-BY-NC-SA 4.0"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "快端上来罢"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "数字论证"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")])])])],-1),s("p",null,[i("一个 JSON 牌堆的最基本格式如上。其中以 "),s("code",null,"_"),i(" 开头的项不是必须的,但是我们非常建议你保留并填写这些项,它们能在分享时说明更多信息:")],-1),s("ul",null,[s("li",null,[s("code",null,"_title"),i(":牌堆的标题;")]),s("li",null,[s("code",null,"_author"),i(":牌堆作者;")]),s("li",null,[s("code",null,"_date"),i(":牌堆创建日期;")]),s("li",null,[s("code",null,"_updateDate"),i(":牌堆更新日期;")]),s("li",null,[s("code",null,"_brief"),i(":牌堆简介;")]),s("li",null,[s("code",null,"_version"),i(":牌堆版本;")]),s("li",null,[s("code",null,"_license"),i(":牌堆协议。")])],-1),s("p",null,[i("可以将上述内容保存名为 "),s("code",null,"野兽牌堆.json"),i("(名称任意,但必须是以 "),s("code",null,".json"),i(" 为后缀扩展名)的文件进行测试。")],-1)])),_:1}),a(t,{label:"YAML"},{default:n(()=>l[44]||(l[44]=[s("div",{class:"language-yaml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"yaml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"name"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"野兽牌堆")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"author"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"田所浩二")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"version"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},"1")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"license"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"CC-BY-NC-SA 4.0")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"desc"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"这个示例牌堆怎么这么臭(恼)")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"command"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"快端上来罢"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"哼哼哼啊啊啊啊啊")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"你是一个一个一个牌堆结果")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"数字论证"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'114514'")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'1919810'")])])])],-1),s("p",null,"一个 YAML 牌堆的最基本格式如上。其中上半部分的一些项不是必须的,但是我们非常建议你保留并填写这些项,它们能在分享时说明更多信息:",-1),s("ul",null,[s("li",null,[s("code",null,"name"),i(":牌堆的标题;")]),s("li",null,[s("code",null,"author"),i(":牌堆作者;")]),s("li",null,[s("code",null,"version"),i(":牌堆版本,应是一个整数;")]),s("li",null,[s("code",null,"license"),i(":牌堆协议;")]),s("li",null,[s("code",null,"desc"),i(":牌堆简介。")])],-1),s("p",null,[i("可以将上述内容保存名为 "),s("code",null,"野兽牌堆.yaml"),i("(名称任意,但必须是以 "),s("code",null,".yaml"),i(" 或 "),s("code",null,".yml"),i(" 为后缀扩展名)的文件进行测试。")],-1)])),_:1})]),_:1}),l[65]||(l[65]=e('注意:牌堆文件扩展名正确吗?
保存文件时务必确认开启了操作系统的扩展名显示,避免出现看上去保存了 xxx.json
文件,但实际上的文件名是 xxx.json.txt
。
牌堆抽取结果字符串中,可以实现抽取其他项,将内容拼接进该结果。
{key}
表示不放回抽取;{%key}
表示放回抽取。放回抽取,指此次抽取后抽取的牌组保持原样,每次都相当于从全新牌组中抽取,你仍可能抽到相同结果。
不放回抽取,尺度是一次抽牌指令,在这一次指令的执行过程中不会再从该牌组中抽到相同结果。多次抽取指令 draw 3# 牌组
只被视为一次指令,不放回抽取生效。指令执行结束后,将重置所有牌组到初始状态。
需要提到,带有权重调整的项目不会被视为在牌组中有多个副本。在下文中有详细讨论。
示例:不放回抽取
[decks]
+"拷打木落" = [
+ "泡面偷走叉子调料包",
+ "捏碎所有薯片",
+ "用勺子把西瓜最中间的一块全挖走",
+]
+"拷打木落三次" = [ "{%拷打木落} {%拷打木落} {%拷打木落}" ]
+"不同方式拷打木落三次" = [ "{拷打木落} {拷打木落} {拷打木落}" ]
在此示例中,牌组「拷打木落三次」的项目采用了放回抽取,「不同方式拷打木落三次」采用了不放回抽取。
如果抽取 draw 拷打木落三次
,得到的三个结果可能有重复。
如果抽取 draw 不同方式拷打木落三次
,得到的三个结果将互不相同,但顺序是随机的。通过 draw 3# 拷打木落
也可达成类似的效果。
抽取结果字符串中的 [exp]
,会先执行其中的掷骰表达式 exp
,再组合到原字符串里。
如:抽取 企鹅早该爆金币辣!v我[1d10]个金币
的结果可能是 企鹅早该爆金币辣!v我1个金币
。
研究旧牌堆,可能会发现有牌堆通过下面这样的写法来实现这个功能,现在请不要这么做了。
{
+ "数字": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+ "爆金币": "企鹅早该爆金币辣!v我{%数字}个金币"
+}
抽取结果字符串中最前面的 ::value::
表示该项的权重。不含有该标记的项目被视为拥有默认权重 1。
示例:有 1/10 的几率出现闪光海豹
`,16)),a(k,{sharedStateKey:"deck-format"},{default:n(()=>[a(t,{label:"TOML"},{default:n(()=>l[48]||(l[48]=[s("div",{class:"language-toml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"toml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"decks"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"捕捉海豹" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "::9::海豹"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "✨闪光海豹✨"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")])])])],-1)])),_:1}),a(t,{label:"JSON"},{default:n(()=>l[49]||(l[49]=[s("div",{class:"language-json vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"json"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"{")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "捕捉海豹"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "::9::海豹"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "✨闪光海豹✨"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")])])])],-1)])),_:1}),a(t,{label:"YAML"},{default:n(()=>l[50]||(l[50]=[s("div",{class:"language-yaml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"yaml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"捕捉海豹"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"::9::海豹")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"✨闪光海豹✨")])])])],-1)])),_:1})]),_:1}),l[67]||(l[67]=e(`在使用不放回抽取的情况下,标记权重的项目不会被视为单个项目的多个副本。以上文的例子而言,牌组中仍被视为只有 2 个项目。
如果使用 draw 捕捉海豹 2#
进行抽取,一定会获得 1 个「海豹」和 1 个「✨闪光海豹✨」。
在这种情况下,权重影响的是抽出的顺序。你将以 9/10 的概率先抽出「海豹」,以 1/10 的概率先抽出「✨闪光海豹✨」。
研究旧牌堆,可能会发现有牌堆通过下面这样的写法来实现这个功能,现在请不要这么做了。
{
+ "捕捉海豹": [
+ "海豹", "海豹", "海豹", "海豹", "海豹", "海豹", "海豹", "海豹", "海豹",
+ "✨闪光海豹✨"
+ ]
+}
抽取结果字符串中可以插入 CQ 码和海豹码,比如 [图:data/images/sealdice.png]
。
发布带图牌堆最常见的选择是牌堆文件连同图片打包成一个压缩包,但是这样做有诸多不便之处。
如果你不想发布时在压缩包里添加一个教程,告诉你的用户如何解压、图片要放到那个文件夹下、什么是相对路径……那就把牌堆打包成可以在海豹 UI 直接上传的 *.deck
文件吧。
信息
deck
文件在本质上依然是 zip
文件,修改后缀只是便于海豹识别。
假如牌堆文件内容如下(使用相对路径 ./assets/...
):
{
+ "test":["[图:./assets/1.jpg]"]
+}
则牌堆文件所在文件夹结构应是:
.
+├─assets
+│ └─1.jpg
+└─ test.json
选中牌堆文件和 assets 文件夹压缩为 ZIP 文件,修改文件后缀为 deck。
图例中所使用的软件为 Bandizip,使用 Windows 右键菜单中的 压缩为 ZIP 文件
与之等价的。
注意:小心嵌套文件夹
以示例图中路径为例,不要回退到上一级目录然后选中 top 文件夹压缩。
.draw keys
指令会列出所有允许抽取的牌组,但在牌堆编写过程中,经常会需要用到辅助的牌组,这些辅助项是不希望暴露给用户的。我们可以通过一定方式来隐藏这些项。
提示:UI 中识别隐藏的牌组
你可以通过查看牌堆管理界面中的「牌堆列表」来识别牌组是否隐藏。
灰色的牌组是隐藏的,即不展示在列表中,但能够被 .draw <key>
抽取。
未导出(不展示也不能抽取)的牌组不展示在该列表中。
很多时候,牌堆内容不是一成不变的。而使用牌堆的用户需要手动去获取最新的牌堆,才能获得作者们提供的最新内容。
我们为牌堆提供了配置更新链接的机制,方便骰主快速获取牌堆更新。有能力的牌堆作者可以配置更新链接,便于分享最新的牌堆内容。
',4)),a(k,{sharedStateKey:"deck-format"},{default:n(()=>[a(t,{label:"TOML"},{default:n(()=>l[57]||(l[57]=[s("p",null,[i("配置牌堆文件的 "),s("code",null,"updateUrls"),i(" 以指定对应的更新链接:")],-1),s("div",{class:"language-toml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"toml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"meta"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"title = "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"updateUrls = [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "https://updateurl.com"'),s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}}," # 此处填写你的更新链接")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"}},"# 牌组表")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"["),s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"decks"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"快端上来罢" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},'"数字论证" = [')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"]")])])])],-1)])),_:1}),a(t,{label:"JSON"},{default:n(()=>l[58]||(l[58]=[s("p",null,[i("配置牌堆文件的 "),s("code",null,"_updateUrls"),i(" 以指定对应的更新链接:")],-1),s("div",{class:"language-json vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"json"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"{")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_title"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"野兽牌堆"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "_updateUrls"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [ "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},'"https://updateurl.com"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "快端上来罢"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "哼哼哼啊啊啊啊啊"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "你是一个一个一个牌堆结果"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ],")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"}},' "数字论证"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": [")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "114514"'),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},",")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},' "1919810"')]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," ]")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},"}")])])])],-1)])),_:1}),a(t,{label:"YAML"},{default:n(()=>l[59]||(l[59]=[s("p",null,[i("配置牌堆文件的 "),s("code",null,"update_urls"),i(" 以指定对应的更新链接:")],-1),s("div",{class:"language-yaml vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"yaml"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"name"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},": "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"野兽牌堆")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"update_urls"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'https://updateurl.com'")]),i(` +`),s("span",{class:"line"}),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"快端上来罢"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"哼哼哼啊啊啊啊啊")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"你是一个一个一个牌堆结果")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#22863A","--shiki-dark":"#85E89D"}},"数字论证"),s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},":")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'114514'")]),i(` +`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}}," - "),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}},"'1919810'")])])])],-1)])),_:1})]),_:1}),l[70]||(l[70]=e('有多个更新链接时,海豹将依次从上往下检查更新。
抽取结果字符串中可以插入 海豹语 。
提示:特殊的括号
与在文案和自定义回复中插入海豹语使用 {}
不同,在牌堆中 {}
有其他含义,需要用 []
代替 {}
。
TOML 牌堆中,你可以以表的形式来创建更复杂的牌组,这允许你更精细的控制每个牌组的选项。
复杂牌组和普通牌组在使用上没有什么区别,仅仅是提供了配置选项的能力。
[meta]
+title = "野兽牌堆"
+updateUrls = [
+ "https://updateurl.com" # 此处填写你的更新链接
+]
+
+# 简单牌组表
+[decks]
+"快端上来罢" = [
+ "哼哼哼啊啊啊啊啊",
+ "你是一个一个一个牌堆结果"
+]
+
+# 复杂牌组
+["数字论证"]
+export = true
+visible = true
+aliases = [ "恶臭论证" ]
+options = [
+ "114514",
+ "1919810",
+]
表名将作为这个牌组的名称,复杂牌组提供以下选项:
export
:是否导出该牌组;visible
:该牌组是否可见,不可见的将不展示在 .draw keys
列表中;aliases
:牌组的别名,可以使用别名抽取改牌组,如上述示例中可以使用 .draw 数字论证
或 .draw 恶臭论证
来抽取;options
:该牌组的项。注意:设置的选项未生效?
注意,对应的选项名需要完全一致,否则海豹将无法正确解析。
如 aliases
不要误写成 alias
,options
不要误写成 option
。
某些情况下,我们希望牌堆内容能够自动更新,骰主无需反复更新骰子中装载的牌堆,用户也能抽取到最新内容。例如,一个实时更新的公骰列表牌堆。
海豹支持为牌堆提供云端内容,这需要牌堆作者有能力提供一个 API 接口,每次 配置了接口的牌组被抽取的时候,都会调用该接口获取该牌组的最新数据。
注意:不受控的云端内容
海豹核心无法核查从接口处获取的数据,骰主需要自行确认数据源不会返回你不希望骰子发出的信息。
对于提供了云端内容的牌堆,在海豹 Web UI 的牌端管理界面,会强制增加相应标识,以显示该牌堆提供了云端内容。
海豹将以 HTTP GET 的方式请求对应接口,接口应当返回一个 JSON 字符串数组数据,其每个元素均是牌组的一个条目。
返回结果示例如下:
[
+ "3 = 11*-4+51-4",
+ "114 = 11*4+5*14",
+ "514 = (1-1)/4+514"
+]
目前仅有 TOML 牌堆支持云端内容,示例如下:
[meta]
+title = "野兽牌堆-云端内容示例"
+
+["114514种论证"]
+export = true
+visible = true
+options = [
+ "1 = 11/(45-1)*4",
+ "2 = -11+4-5+14",
+ "3 = 11*-4+51-4"
+]
+# 开启云内容
+cloud_extra = true
+# 云内容与本地内容去重
+dictinct = true
+# 云内容链接
+options_urls = [
+ "此处替换为对应的 API 链接,类似 http://example.com/xxx",
+]
假定上面填入了 API,它会返回上一节中的示例 JSON 字符串数组,即 ["3 = 11*-4+51-4", "114 = 11*4+5*14", "514 = (1-1)/4+514"]
。
正如上面示例中看到的那样,在 TOML 格式的复杂牌组中,有一些云端内容的相关配置项,每个牌组都可以单独控制云端相关设置。抽取牌组时,接口返回的数据将和牌组本身配置的 options
数组合并,最后的抽取是从合并的数组中进行。
cloud_extra
:为 true
时,抽取本牌组时将请求接口获取云端数据;options_urls
:配置云端内容的 API 链接,链接能够配置多个。每次抽取这个牌组时,会依次调用配置的 API,在任意一个接口成功返回数据后即停止;distinct
:为 true
时,云端数据与本地数据合并后会进行去重,确保最终抽取的牌组中不含重复条目。以上述牌组为例,当执行 .draw 114514种论证
的时候,将首先调用 API 获取云端内容,成功获取后进行合并并去重,最终抽取的牌组相当于直接配置了这样的牌组:
["114514种论证"]
+export = true
+visible = true
+options = [
+ "1 = 11/(45-1)*4",
+ "2 = -11+4-5+14",
+ "3 = 11*-4+51-4",
+ "114 = 11*4+5*14",
+ "514 = (1-1)/4+514"
+]
你可以直接按照以下格式书写 <helpdoc>.json
:
{
+ "mod": "名字",
+ "author": "作者",
+ "brief": "概述",
+ "comment": "备注",
+ "helpdoc": {
+ "词条A": "词条 A 的具体内容。",
+ "词条B": "词条 B 的具体内容。",
+ "词条C": "[图:data/images/sealdice.png] 词条 C 的图片与内容。"
+ }
+}
若你的文本需要换行,你可以使用 \\n
作为换行符,而不是在编写时直接换行,这会导致格式错误。你还可以使用 \\f
或 {FormFeed}
作为分页符。
注意:标准 JSON 而不是 JSON5
海豹支持的 JSON 帮助文档是「标准 JSON」格式,诸如注释,尾逗号等语法不属于 JSON 语法,而是 JSON5 这个扩展标准的语法,出错时请严格检查。
目前暂不考虑支持 JSON5 标准。
注意:文件编码
请永远使用 UTF-8 编码编写 helpdoc。
你可以在 JSON 格式的帮助文档中嵌套引用其它条目:
{
+ "helpdoc": {
+ "词条A": "词条 A 的具体内容。",
+ "词条B": "{词条A}词条 B 的具体内容。",
+ "词条C": "你还可以 {词条A}\\n{词条B}"
+ }
+}
如此一来当你发送 .help 词条 B
时,骰子将回复:「词条 A 的具体内容。词条 B 的具体内容。」。
{
+ "mod": "KIYTarot",
+ "author": "浣熊旅記",
+ "brief": "KIY 塔罗牌",
+ "comment": "释义来源网络。",
+ "helpdoc": {
+ "愚者逆位": "漂泊,冒险,鲁莽,冒失,疯狂,无视物质损失,灵魂堕落,内心空虚,感情轻浮。",
+ "魔术师逆位": "方向错误,被骗或失败,局面失控,二流角色,缺乏热忱和创造力,爱情难有进展。",
+ "女祭司逆位": "挑剔,贪心,目光短浅,洁癖,不适宜的激情,自尊心太强,锋芒外露,单相思。",
+ "女皇逆位": "冷淡,缺乏上进心,困难,享乐,环境险恶,贴近自然,自负,纠纷,感情挫折。",
+ "皇帝逆位": "幼稚,挫折,武断,滥用权利,冷酷,占有欲和控制力强烈,感情勉强。"
+ }
+}
你还可以按照以下格式书写 <helpdoc>.xlsx
:
Key | Synonym | Content | Description | Catalogue | Tag |
---|---|---|---|---|---|
词条 A | 词条同义词 | 词条内容 | 对词条的简述 | 所属目录 | 内容 TAG |
海豹骰 | 豹骰/海豹/sealdice | 一个简单易用的跑团骰子系统。\\n形象是海豹,可以被叫做海豹骰、豹骰,豹子骰之类。 |
Excel 格式的 helpdoc 分为 Key
、Synonym
、Content
、Description
、Catalogue
、Tag
六块,其中第二列、后三项为选填,一般情况下你都可以留空。
Synonym
列可以填写多个同义词,使用 /
分隔即可。\\n
来换行,但不支持其它换行符与分页符),因此它常用来快速编写有大段文字的帮助文档。测试
,则对应的词条会显示为 测试:词条 A
。由于海豹的 .find
指令会对词条进行模糊检索,所以你不必担心前缀对查询带来的影响。注意:必须保留首行!
不要删去第一行的 Key
、Synonym
等词。请从第二行开始编写词条。
提示:EXCEL 格式的帮助文档
<helpdoc>.xlsx
原本是梨骰用于 D&D 词条查询的格式,但海豹同样可以读取它。
你可以直接按照以下格式书写 <helpdoc>.json
:
{
+ "mod": "名字",
+ "author": "作者",
+ "brief": "概述",
+ "comment": "备注",
+ "helpdoc": {
+ "词条A": "词条 A 的具体内容。",
+ "词条B": "词条 B 的具体内容。",
+ "词条C": "[图:data/images/sealdice.png] 词条 C 的图片与内容。"
+ }
+}
若你的文本需要换行,你可以使用 \\n
作为换行符,而不是在编写时直接换行,这会导致格式错误。你还可以使用 \\f
或 {FormFeed}
作为分页符。
注意:标准 JSON 而不是 JSON5
海豹支持的 JSON 帮助文档是「标准 JSON」格式,诸如注释,尾逗号等语法不属于 JSON 语法,而是 JSON5 这个扩展标准的语法,出错时请严格检查。
目前暂不考虑支持 JSON5 标准。
注意:文件编码
请永远使用 UTF-8 编码编写 helpdoc。
你可以在 JSON 格式的帮助文档中嵌套引用其它条目:
{
+ "helpdoc": {
+ "词条A": "词条 A 的具体内容。",
+ "词条B": "{词条A}词条 B 的具体内容。",
+ "词条C": "你还可以 {词条A}\\n{词条B}"
+ }
+}
如此一来当你发送 .help 词条 B
时,骰子将回复:「词条 A 的具体内容。词条 B 的具体内容。」。
{
+ "mod": "KIYTarot",
+ "author": "浣熊旅記",
+ "brief": "KIY 塔罗牌",
+ "comment": "释义来源网络。",
+ "helpdoc": {
+ "愚者逆位": "漂泊,冒险,鲁莽,冒失,疯狂,无视物质损失,灵魂堕落,内心空虚,感情轻浮。",
+ "魔术师逆位": "方向错误,被骗或失败,局面失控,二流角色,缺乏热忱和创造力,爱情难有进展。",
+ "女祭司逆位": "挑剔,贪心,目光短浅,洁癖,不适宜的激情,自尊心太强,锋芒外露,单相思。",
+ "女皇逆位": "冷淡,缺乏上进心,困难,享乐,环境险恶,贴近自然,自负,纠纷,感情挫折。",
+ "皇帝逆位": "幼稚,挫折,武断,滥用权利,冷酷,占有欲和控制力强烈,感情勉强。"
+ }
+}
你还可以按照以下格式书写 <helpdoc>.xlsx
:
Key | Synonym | Content | Description | Catalogue | Tag |
---|---|---|---|---|---|
词条 A | 词条同义词 | 词条内容 | 对词条的简述 | 所属目录 | 内容 TAG |
海豹骰 | 豹骰/海豹/sealdice | 一个简单易用的跑团骰子系统。\\n形象是海豹,可以被叫做海豹骰、豹骰,豹子骰之类。 |
Excel 格式的 helpdoc 分为 Key
、Synonym
、Content
、Description
、Catalogue
、Tag
六块,其中第二列、后三项为选填,一般情况下你都可以留空。
Synonym
列可以填写多个同义词,使用 /
分隔即可。\\n
来换行,但不支持其它换行符与分页符),因此它常用来快速编写有大段文字的帮助文档。测试
,则对应的词条会显示为 测试:词条 A
。由于海豹的 .find
指令会对词条进行模糊检索,所以你不必担心前缀对查询带来的影响。注意:必须保留首行!
不要删去第一行的 Key
、Synonym
等词。请从第二行开始编写词条。
提示:EXCEL 格式的帮助文档
<helpdoc>.xlsx
原本是梨骰用于 D&D 词条查询的格式,但海豹同样可以读取它。
本节内容
本节将展示自定义回复编写的进阶部分,请善用侧边栏和搜索,按需阅读文档。
我们假定你已经阅读了自定义回复编写的 基础部分(「配置 - 自定义回复」节)。如果你还没有阅读该章节,请先阅读这一节。
在部分内容中,我们假定你了解海豹变量机制和正则表达式。如果你对正则表达式还很陌生,可以参考以下材料,或在互联网自行搜索学习。
海豹核心跟随 Go 语言,采用 RE2 规范。该规范与其他规范在个别扩展语法上存在细微差别,请注意辨析。
在使用 Regex 101 网站时,请注意在左侧的「FLAVOR」栏选中「Golang」,以确保正则表达式的表现一致。
首先我们打开「自定义回复」页,新建一项自定义回复。
提示:使用 .text 帮助测试
.text <文本>
将是你的一大助力,它会输出后面文本的执行结果,你可以将它看成不需要触发词的自定义回复。
当然,在采用 .text
指令进行 debug 时,可能出现因为测试的内容对变量造成影响,而不得不频繁复制黏贴清空指令的情况。此时建议专门开一个一两个字即可触发的自定义回复,用来测试。
提示:嵌入 CQ 码
返回内容可以嵌入 CQ 码。CQ 码文档见 CQ 码列表。
自定义回复中分「条件」和「结果」两个部分。在 配置 - 自定义回复 中,我们已经了解了一些简单的回复编写,下面将补充介绍进阶内容。
模糊匹配将比较收到的消息与指定文本,内容相似时触发。
比较定义在 dice/ext_reply_logic.go
中,内容 jaro 和 hamming 平均值高于阈值(0.7)被认为是相似:
func strCompare(a string, b string) float64 {
+ va := strsim.Compare(a, b, strsim.Jaro())
+ vb := strsim.Compare(a, b, strsim.Hamming())
+ return (va + vb) / 2
+}
提示:模糊匹配未命中
模糊匹配可能出现感觉能匹配上,但实际上没办法匹配上的情况。我们更建议你使用「包含文本」或「正则匹配」。
使用正则匹配时,直接在要匹配的文本一栏中写入正则表达式即可。当正则表达式获得匹配时,该条件得到满足。
对于正则表达式中的捕获组,海豹遵循命令行脚本的通行做法,将其按顺序存储于多个变量 $t1
$t2
等。
正则匹配:^购买(.+)
+输出文本:{$t玩家}购买了{$t1}
可以发现第 1 捕获组命中的字符串 猫粮
,被存储于变量 $t1
中。
此外,对于正则表达式匹配的完整内容将被存储于变量 $t0
。如果捕获组存在命名,如命名为 A
的捕获组 (?P<A>cc)
,命中的字符串也将额外存入变量 $tA
。
注意:不要使用某些前缀!
由于 .
。
/
!
等符号会作为海豹中指令的前缀,因此作为前缀时可能导致将其识别为指令而非自定义回复的情况,建议换成别的前缀。
提示:正则中匹配 CQ 码
海豹支持用正则匹配 CQ 码。但是,由于 [
]
符号在正则表达式中含有特殊含义,如果你这么做了,请对它们进行转义。
示例:^\\[CQ:xxx,xx=xxx\\]
在「表达式为真」匹配中,只需要直接在匹配文本中写出形如 变量名 == 需要的值
的形式即可,不需要使用任何 {}
。
在回复文本中,可以调用一些 变量,也可以嵌入 内置脚本语言。
提示:未赋值的变量
所有变量在未被赋值时被调用的值都为 0。
{% %}
被称为执行块。由 {% %}
括起来的部分会被作为代码执行,输出最后一个语句的结果。执行块中的两个语句之间要使用 ;
隔开。
如果想要输出字符串,则应该用 \`
/ "
/ '
括上。
{% \\$t1="114514" %}
的式子会输出 114514
。提示:结果中调用变量
若想在结果中调用变量,请用反引号。目前海豹只支持在反引号中调用变量。
下面是一个简单的示例,这里的第一句也是最后一句,所以它的结果会被输出。
.text {% $t测试=1 %}
if
{%
+$t测试=1;
+if $t测试==1 {$t输出="赞美木落"};
+if $t测试==2 {$t输出="快点更新"};
+if $t测试!=2&&$t测试!=1 {$t输出="群主女装"}
+%}
+{$t输出}
首先给 $t测试
赋值为 1,然后进入判断:
$t测试
等于 1,则变量 $t输出
等于 "赞美木落"
;$t测试
等于 2,则变量 $t输出
等于 "快点更新"
;$t测试
既不等于 2 也不等于 1,则变量 $t输出
等于 "群主女装"
;最后,输出变量 $t输出
。
提示:容易误解的 if 使用
目前海豹语并不支持 else if
/ elif
,if
和 else
是一对一匹配的。所以当形如:
if <条件 1> {<执行 1>};
+if <条件 2> {<执行 2>}
+else {<执行 3>}
的语句出现时,第二个 if
与 else
为一个整体,且不与第一个 if
构成 if elseif else
的关系!即使 <条件 1>
满足,其仍会对 <条件 2>
进行判断,并在 <执行 2>
与 <执行 3>
中择一执行!
{%
+$t0 = 1;
+$tRand = d6;
+if $t0 == 1 { $t0 = $t0 + $tRand }
+%}
+{$t0}
在这个例子里,我们先给 $t0
赋值为 1,然后判断 $t0
是否等于 1,若通过则 $t0
的值增加 1d6,最后输出结果。
以养猫功能中猫好感度为例:
{%
+$mCatFavor<=100 ? \`#{DRAW-第一档猫好感}\`,
+$mCatFavor<=250 ? \`#{DRAW-第二档猫好感}\`,
+$mCatFavor<=600 ? \`#{DRAW-第三档猫好感}\`,
+$mCatFavor<=1500 ? \`#{DRAW-第四档猫好感}\`,
+$mCatFavor<=2500 ? \`#{DRAW-第五档猫好感}\`,
+1 ? \`#{DRAW-第六档猫好感}\`
+%}
在这一脚本中,根据猫好感度 $mCatFavor
不同,需要输出不同回复的机制。
除了形如
{%
+判断1 ? \`#{DRAW-牌组1}\`,
+判断2 ? \`#{DRAW-牌组2}\`,
+判断3 ? \`#{DRAW-牌组3}\`,
+1 ? \`#{DRAW-牌组4}\`,
+%}
的写法外,还可以使用:
{%
+if 判断1 {
+ $tRand=d6;
+ $t输出=$tRand==1 ? \`内容1\`,
+ $t输出=$tRand==2 ? \`内容2\`,
+ $t输出=$tRand==3 ? \`内容3\`,
+ $t输出=$tRand==4 ? \`内容4\`,
+ $t输出=$tRand==5 ? \`内容5\`,
+ $t输出=$tRand==6 ? \`内容6\`
+};
+if 判断2 { $tRand=d10; $t输出 = $tRand==1 ? \`内容1\`, …… };
+if 判断3 { $tRand=d10; $t输出 = $tRand==1 ? \`内容1\`, …… };
+%}
实质上没有太大区别,可根据喜好选择。
自定义回复中的多行输出通常并不是:
{$t输出0}
+{$t输出1}
+{$t输出2}
+{$t输出3}
而是在为四个 $t输出
变量赋值时,于内部写入 \\n
,自定义回复中则采用 {$t输出0}{$t输出1}{$t输出2}{$t输出3}
的形式。
这是因为如果某一变量可能为空时,如果采用第一种分行的写法,会出现这样的效果:
`,28)),n("div",x,[s[2]||(s[2]=n("p",{class:"custom-block-title"},"示例",-1)),a(e,{messages:[{content:"踢海豹",send:!0},{content:`<木落>一脚踢向海豹,踢了3格。 +海豹现在离终点还有37格。 + +海豹的逃走骰:1d100=60,海豹没能逃脱凶猛恶汉们的掌控!`}]})]),s[8]||(s[8]=t(`可以看见,在中间会出现突兀的空行。这是因为虽然 $t输出2
变量为空,海豹仍会按照自定义回复中设置的格式输出。因此在对应 $t输出2
的一行中,海豹会首先输出空变量 {$t输出2}
,随后按自定义回复的格式进行换行,导致发生空行。
所以,如果想要在某个变量为空时,不让用户注意到突兀的空缺,就最好多做几次实验,好好规划一下换行符 \\n
的位置。
海豹提供了一系列时间变量来调用,以打卡指令为例,可以采用如下两种写法中的一种(示例为每人每天一次,如要每群自行将 $m
换成 $g
):
写法 1
文本匹配:你需要的文本
表达式为真:$m变量 != $tDate
回复:{if 1 {$m变量=$tDate}}你需要的回复文本
$m变量
作为标记变量,用 if
是防止它出现在回复文本中。文本匹配:你需要的文本
表达式为真:$m变量==$tDate
回复:在一天触发多次时的回复
写法 2
文本匹配:你需要的文本
回复:
{%
+if $m变量 != $tDate {
+ $t输出 = \`你需要的回复文本\`;
+ $m变量 = $tDate //对其赋值,作为标记
+} else {
+ $t输出 = \`在一天触发多次时的回复\`
+}
+%}
+{$t输出}
以上两种写法实现效果没有差别,具体使用哪种请自行决断。
以石头剪刀布为例,为了实现骰子随机出招的效果,令 $tRand=d3
,然后根据 $tRand
的情况赋值 $tDicePlay
。通过骰子出招和玩家出招两个变量判断,输出游戏结果,并记录场次。
为了防止直接使用 {%%}
进行赋值导致的变量显示,需要在最外面写 if 1
,则在生成 $tRand
之后再次判断的时候,可以使用 $tDicePlay=条件算符
,或是再新开一行用条件算符或者条件语句实现。
以下给出在同一个 if
内直接赋值的写法和新开一行使用条件语句的写法:
{% //在同一个if内直接赋值。可以在赋值时使用条件算符。
+if 1 {
+ $tRand=d3;
+ $tDicePlay = $tRand==1 ? "石头",
+ $tRand==2 ? "剪刀",
+ 1 ? "布"
+}
+%}
+
+{% //新开一行赋值
+if 1 {
+ $tRand=d3;
+};
+if $tRand==1 {$tDicePlay="石头"};
+if $tRand==2 {$tDicePlay="剪刀"};
+if $tRand==3 {$tDicePlay="布"}
+%}
两种写法实现效果相同,石头剪刀布内在这里采用了第一种,实际上没有差别。
生成骰子出招并获取玩家出招之后,就开始判断。这里除了平局可以使用 $tDicePlay==$t0
省事之外,其他的都需要在条件中用多个进行嵌套。
注意:条件判断
豹语语法中,判断时条件中的 ||
和 &&
是从左往右计算的,如果后面有需要优先计算与或的东西,请加好括号。
if $t0 == $tDicePlay {
+ $t输出 = \`那我出{$tDicePlay}!{$t玩家}出的是{$t0}啊,我们平局了。\`;
+ $mPlayerTime = $mPlayerTime + 1
+};
+if ($t0=="剪刀" && $tDicePlay=="石头") || ($t0=="石头" && $tDicePlay=="布") || ($t0=="布" && $tDicePlay=="剪刀") {
+ $t输出 = \`那我出{$tDicePlay}!{$t玩家}出的是{$t0}啊,我赢了。\`;
+ $mPlayerTime = $mPlayerTime + 1;
+ $mPlayerLose = $mPlayerLose + 1
+};
+if ($t0=="石头" && $tDicePlay=="剪刀") || ($t0=="布" && $tDicePlay=="石头") || ($t0=="剪刀" && $tDicePlay=="布") {
+ $t输出 = \`那我出{$tDicePlay}!{$t玩家}出的是{$t0}啊,你赢了。\`;
+ $mPlayerTime = $mPlayerTime + 1;
+ $mPlayerWin = $mPlayerWin + 1
+}
AxxxxxxxB
型文本 前缀匹配:A
后缀匹配:B
回复:怎么辉石呢
具体实现,第一段
第二段
这两段较为常规,第三段开始变形了:
{%
+ if $mStory == 4 { $mStory = 5 };
+ if $mStory == 3 { $mStory = 4 };
+ if $mStory == 2 { $mStory = 3 };
+
+ $mStory == 3 ? '这个村子有一户人家,门前有两棵树',
+ $mStory == 4 ? '一棵是函树,一棵是反函树',
+ $mStory == 5 ? '我讲完了。',
+ 1 ? '?'
+%}
+
+{% if $mStory == 5 { $mStory=0 } %}
本节内容
本节将展示自定义回复编写的进阶部分,请善用侧边栏和搜索,按需阅读文档。
我们假定你已经阅读了自定义回复编写的 基础部分(「配置 - 自定义回复」节)。如果你还没有阅读该章节,请先阅读这一节。
在部分内容中,我们假定你了解海豹变量机制和正则表达式。如果你对正则表达式还很陌生,可以参考以下材料,或在互联网自行搜索学习。
海豹核心跟随 Go 语言,采用 RE2 规范。该规范与其他规范在个别扩展语法上存在细微差别,请注意辨析。
在使用 Regex 101 网站时,请注意在左侧的「FLAVOR」栏选中「Golang」,以确保正则表达式的表现一致。
首先我们打开「自定义回复」页,新建一项自定义回复。
提示:使用 .text 帮助测试
.text <文本>
将是你的一大助力,它会输出后面文本的执行结果,你可以将它看成不需要触发词的自定义回复。
当然,在采用 .text
指令进行 debug 时,可能出现因为测试的内容对变量造成影响,而不得不频繁复制黏贴清空指令的情况。此时建议专门开一个一两个字即可触发的自定义回复,用来测试。
提示:嵌入 CQ 码
返回内容可以嵌入 CQ 码。CQ 码文档见 CQ 码列表。
自定义回复中分「条件」和「结果」两个部分。在 配置 - 自定义回复 中,我们已经了解了一些简单的回复编写,下面将补充介绍进阶内容。
模糊匹配将比较收到的消息与指定文本,内容相似时触发。
比较定义在 dice/ext_reply_logic.go
中,内容 jaro 和 hamming 平均值高于阈值(0.7)被认为是相似:
func strCompare(a string, b string) float64 {
+ va := strsim.Compare(a, b, strsim.Jaro())
+ vb := strsim.Compare(a, b, strsim.Hamming())
+ return (va + vb) / 2
+}
提示:模糊匹配未命中
模糊匹配可能出现感觉能匹配上,但实际上没办法匹配上的情况。我们更建议你使用「包含文本」或「正则匹配」。
使用正则匹配时,直接在要匹配的文本一栏中写入正则表达式即可。当正则表达式获得匹配时,该条件得到满足。
对于正则表达式中的捕获组,海豹遵循命令行脚本的通行做法,将其按顺序存储于多个变量 $t1
$t2
等。
正则匹配:^购买(.+)
+输出文本:{$t玩家}购买了{$t1}
可以发现第 1 捕获组命中的字符串 猫粮
,被存储于变量 $t1
中。
此外,对于正则表达式匹配的完整内容将被存储于变量 $t0
。如果捕获组存在命名,如命名为 A
的捕获组 (?P<A>cc)
,命中的字符串也将额外存入变量 $tA
。
注意:不要使用某些前缀!
由于 .
。
/
!
等符号会作为海豹中指令的前缀,因此作为前缀时可能导致将其识别为指令而非自定义回复的情况,建议换成别的前缀。
提示:正则中匹配 CQ 码
海豹支持用正则匹配 CQ 码。但是,由于 [
]
符号在正则表达式中含有特殊含义,如果你这么做了,请对它们进行转义。
示例:^\\[CQ:xxx,xx=xxx\\]
在「表达式为真」匹配中,只需要直接在匹配文本中写出形如 变量名 == 需要的值
的形式即可,不需要使用任何 {}
。
在回复文本中,可以调用一些 变量,也可以嵌入 内置脚本语言。
提示:未赋值的变量
所有变量在未被赋值时被调用的值都为 0。
{% %}
被称为执行块。由 {% %}
括起来的部分会被作为代码执行,输出最后一个语句的结果。执行块中的两个语句之间要使用 ;
隔开。
如果想要输出字符串,则应该用 \`
/ "
/ '
括上。
{% \\$t1="114514" %}
的式子会输出 114514
。提示:结果中调用变量
若想在结果中调用变量,请用反引号。目前海豹只支持在反引号中调用变量。
下面是一个简单的示例,这里的第一句也是最后一句,所以它的结果会被输出。
.text {% $t测试=1 %}
if
{%
+$t测试=1;
+if $t测试==1 {$t输出="赞美木落"};
+if $t测试==2 {$t输出="快点更新"};
+if $t测试!=2&&$t测试!=1 {$t输出="群主女装"}
+%}
+{$t输出}
首先给 $t测试
赋值为 1,然后进入判断:
$t测试
等于 1,则变量 $t输出
等于 "赞美木落"
;$t测试
等于 2,则变量 $t输出
等于 "快点更新"
;$t测试
既不等于 2 也不等于 1,则变量 $t输出
等于 "群主女装"
;最后,输出变量 $t输出
。
提示:容易误解的 if 使用
目前海豹语并不支持 else if
/ elif
,if
和 else
是一对一匹配的。所以当形如:
if <条件 1> {<执行 1>};
+if <条件 2> {<执行 2>}
+else {<执行 3>}
的语句出现时,第二个 if
与 else
为一个整体,且不与第一个 if
构成 if elseif else
的关系!即使 <条件 1>
满足,其仍会对 <条件 2>
进行判断,并在 <执行 2>
与 <执行 3>
中择一执行!
{%
+$t0 = 1;
+$tRand = d6;
+if $t0 == 1 { $t0 = $t0 + $tRand }
+%}
+{$t0}
在这个例子里,我们先给 $t0
赋值为 1,然后判断 $t0
是否等于 1,若通过则 $t0
的值增加 1d6,最后输出结果。
以养猫功能中猫好感度为例:
{%
+$mCatFavor<=100 ? \`#{DRAW-第一档猫好感}\`,
+$mCatFavor<=250 ? \`#{DRAW-第二档猫好感}\`,
+$mCatFavor<=600 ? \`#{DRAW-第三档猫好感}\`,
+$mCatFavor<=1500 ? \`#{DRAW-第四档猫好感}\`,
+$mCatFavor<=2500 ? \`#{DRAW-第五档猫好感}\`,
+1 ? \`#{DRAW-第六档猫好感}\`
+%}
在这一脚本中,根据猫好感度 $mCatFavor
不同,需要输出不同回复的机制。
除了形如
{%
+判断1 ? \`#{DRAW-牌组1}\`,
+判断2 ? \`#{DRAW-牌组2}\`,
+判断3 ? \`#{DRAW-牌组3}\`,
+1 ? \`#{DRAW-牌组4}\`,
+%}
的写法外,还可以使用:
{%
+if 判断1 {
+ $tRand=d6;
+ $t输出=$tRand==1 ? \`内容1\`,
+ $t输出=$tRand==2 ? \`内容2\`,
+ $t输出=$tRand==3 ? \`内容3\`,
+ $t输出=$tRand==4 ? \`内容4\`,
+ $t输出=$tRand==5 ? \`内容5\`,
+ $t输出=$tRand==6 ? \`内容6\`
+};
+if 判断2 { $tRand=d10; $t输出 = $tRand==1 ? \`内容1\`, …… };
+if 判断3 { $tRand=d10; $t输出 = $tRand==1 ? \`内容1\`, …… };
+%}
实质上没有太大区别,可根据喜好选择。
自定义回复中的多行输出通常并不是:
{$t输出0}
+{$t输出1}
+{$t输出2}
+{$t输出3}
而是在为四个 $t输出
变量赋值时,于内部写入 \\n
,自定义回复中则采用 {$t输出0}{$t输出1}{$t输出2}{$t输出3}
的形式。
这是因为如果某一变量可能为空时,如果采用第一种分行的写法,会出现这样的效果:
`,28)),n("div",x,[s[2]||(s[2]=n("p",{class:"custom-block-title"},"示例",-1)),a(e,{messages:[{content:"踢海豹",send:!0},{content:`<木落>一脚踢向海豹,踢了3格。 +海豹现在离终点还有37格。 + +海豹的逃走骰:1d100=60,海豹没能逃脱凶猛恶汉们的掌控!`}]})]),s[8]||(s[8]=t(`可以看见,在中间会出现突兀的空行。这是因为虽然 $t输出2
变量为空,海豹仍会按照自定义回复中设置的格式输出。因此在对应 $t输出2
的一行中,海豹会首先输出空变量 {$t输出2}
,随后按自定义回复的格式进行换行,导致发生空行。
所以,如果想要在某个变量为空时,不让用户注意到突兀的空缺,就最好多做几次实验,好好规划一下换行符 \\n
的位置。
海豹提供了一系列时间变量来调用,以打卡指令为例,可以采用如下两种写法中的一种(示例为每人每天一次,如要每群自行将 $m
换成 $g
):
写法 1
文本匹配:你需要的文本
表达式为真:$m变量 != $tDate
回复:{if 1 {$m变量=$tDate}}你需要的回复文本
$m变量
作为标记变量,用 if
是防止它出现在回复文本中。文本匹配:你需要的文本
表达式为真:$m变量==$tDate
回复:在一天触发多次时的回复
写法 2
文本匹配:你需要的文本
回复:
{%
+if $m变量 != $tDate {
+ $t输出 = \`你需要的回复文本\`;
+ $m变量 = $tDate //对其赋值,作为标记
+} else {
+ $t输出 = \`在一天触发多次时的回复\`
+}
+%}
+{$t输出}
以上两种写法实现效果没有差别,具体使用哪种请自行决断。
以石头剪刀布为例,为了实现骰子随机出招的效果,令 $tRand=d3
,然后根据 $tRand
的情况赋值 $tDicePlay
。通过骰子出招和玩家出招两个变量判断,输出游戏结果,并记录场次。
为了防止直接使用 {%%}
进行赋值导致的变量显示,需要在最外面写 if 1
,则在生成 $tRand
之后再次判断的时候,可以使用 $tDicePlay=条件算符
,或是再新开一行用条件算符或者条件语句实现。
以下给出在同一个 if
内直接赋值的写法和新开一行使用条件语句的写法:
{% //在同一个if内直接赋值。可以在赋值时使用条件算符。
+if 1 {
+ $tRand=d3;
+ $tDicePlay = $tRand==1 ? "石头",
+ $tRand==2 ? "剪刀",
+ 1 ? "布"
+}
+%}
+
+{% //新开一行赋值
+if 1 {
+ $tRand=d3;
+};
+if $tRand==1 {$tDicePlay="石头"};
+if $tRand==2 {$tDicePlay="剪刀"};
+if $tRand==3 {$tDicePlay="布"}
+%}
两种写法实现效果相同,石头剪刀布内在这里采用了第一种,实际上没有差别。
生成骰子出招并获取玩家出招之后,就开始判断。这里除了平局可以使用 $tDicePlay==$t0
省事之外,其他的都需要在条件中用多个进行嵌套。
注意:条件判断
豹语语法中,判断时条件中的 ||
和 &&
是从左往右计算的,如果后面有需要优先计算与或的东西,请加好括号。
if $t0 == $tDicePlay {
+ $t输出 = \`那我出{$tDicePlay}!{$t玩家}出的是{$t0}啊,我们平局了。\`;
+ $mPlayerTime = $mPlayerTime + 1
+};
+if ($t0=="剪刀" && $tDicePlay=="石头") || ($t0=="石头" && $tDicePlay=="布") || ($t0=="布" && $tDicePlay=="剪刀") {
+ $t输出 = \`那我出{$tDicePlay}!{$t玩家}出的是{$t0}啊,我赢了。\`;
+ $mPlayerTime = $mPlayerTime + 1;
+ $mPlayerLose = $mPlayerLose + 1
+};
+if ($t0=="石头" && $tDicePlay=="剪刀") || ($t0=="布" && $tDicePlay=="石头") || ($t0=="剪刀" && $tDicePlay=="布") {
+ $t输出 = \`那我出{$tDicePlay}!{$t玩家}出的是{$t0}啊,你赢了。\`;
+ $mPlayerTime = $mPlayerTime + 1;
+ $mPlayerWin = $mPlayerWin + 1
+}
AxxxxxxxB
型文本 前缀匹配:A
后缀匹配:B
回复:怎么辉石呢
具体实现,第一段
第二段
这两段较为常规,第三段开始变形了:
{%
+ if $mStory == 4 { $mStory = 5 };
+ if $mStory == 3 { $mStory = 4 };
+ if $mStory == 2 { $mStory = 3 };
+
+ $mStory == 3 ? '这个村子有一户人家,门前有两棵树',
+ $mStory == 4 ? '一棵是函树,一棵是反函树',
+ $mStory == 5 ? '我讲完了。',
+ 1 ? '?'
+%}
+
+{% if $mStory == 5 { $mStory=0 } %}
本节内容
本节将介绍敏感词库的编写,请善用侧边栏和搜索,按需阅读文档。
你可以直接按照以下格式书写 <words>.txt
:
#notice
+提醒级词汇 1
+提醒级词汇 2
+
+#caution
+注意级词汇 1
+注意级词汇 2
+
+#warning
+警告级词汇
+
+#danger
+危险级词汇
你可以直接按照以下格式书写 <words>.toml
:
# 元信息,用于填写一些额外的展示内容
+[meta]
+# 词库名称
+name = '测试词库'
+# 作者,和 authors 存在一个即可
+author = ''
+# 作者(多个),和 author 存在一个即可
+authors = [ '<匿名>' ]
+# 版本,建议使用语义化版本号
+version = '1.0'
+# 简介
+desc = '一个测试词库'
+# 协议
+license = 'CC-BY-NC-SA 4.0'
+# 创建日期,使用 RFC 3339 格式
+date = 2023-10-30
+# 更新日期,使用 RFC 3339 格式
+updateDate = 2023-10-30
+
+# 词表,出现相同词汇时按最高级别判断
+[words]
+# 忽略级词表,没有实际作用
+ignore = []
+# 提醒级词表
+notice = [
+ '提醒级词汇 1',
+ '提醒级词汇 2'
+]
+# 注意级词表
+caution = [
+ '注意级词汇 1',
+ '注意级词汇 2'
+]
+# 警告级词表
+warning = [
+ '警告级词汇 1',
+ '警告级词汇 2'
+]
+# 危险级词表
+danger = [
+ '危险级词汇 1',
+ '危险级词汇 2'
+]
本节内容
本节将介绍敏感词库的编写,请善用侧边栏和搜索,按需阅读文档。
你可以直接按照以下格式书写 <words>.txt
:
#notice
+提醒级词汇 1
+提醒级词汇 2
+
+#caution
+注意级词汇 1
+注意级词汇 2
+
+#warning
+警告级词汇
+
+#danger
+危险级词汇
你可以直接按照以下格式书写 <words>.toml
:
# 元信息,用于填写一些额外的展示内容
+[meta]
+# 词库名称
+name = '测试词库'
+# 作者,和 authors 存在一个即可
+author = ''
+# 作者(多个),和 author 存在一个即可
+authors = [ '<匿名>' ]
+# 版本,建议使用语义化版本号
+version = '1.0'
+# 简介
+desc = '一个测试词库'
+# 协议
+license = 'CC-BY-NC-SA 4.0'
+# 创建日期,使用 RFC 3339 格式
+date = 2023-10-30
+# 更新日期,使用 RFC 3339 格式
+updateDate = 2023-10-30
+
+# 词表,出现相同词汇时按最高级别判断
+[words]
+# 忽略级词表,没有实际作用
+ignore = []
+# 提醒级词表
+notice = [
+ '提醒级词汇 1',
+ '提醒级词汇 2'
+]
+# 注意级词表
+caution = [
+ '注意级词汇 1',
+ '注意级词汇 2'
+]
+# 警告级词表
+warning = [
+ '警告级词汇 1',
+ '警告级词汇 2'
+]
+# 危险级词表
+danger = [
+ '危险级词汇 1',
+ '危险级词汇 2'
+]
本节内容
本节将介绍海豹扩展功能的进阶内容,请善用侧边栏和搜索,按需阅读文档。
海豹核心提供了多种扩展功能,这些功能能让你实现更多的个性化功能,但通常也需要你具备一些知识。
我们建议,在尝试使用对应功能进行个性化前,先阅读本章的对应小节,帮助你快速掌握相关内容。
阅读完小节教程后,如果在使用中依然存在疑问,可以在官方群内寻求帮助。
在很多地方为了实现一些逻辑,都需要用到海豹所提供的一种简单的脚本语言,可以称为「海豹语」「豹语」等。
我们非常建议你在扩展功能的编写中,先了解海豹语。见 扩展 - 内置脚本语言。
在牌堆、JS 插件、敏感词库等的编写中,我们通常需要在对应格式的文件进行编写。
务必使用更专业的编辑器,如果你不知道选择什么,可以尝试使用 vscode、sublime text或 MT 管理器(Android)等,这些都是被广泛使用的优秀编辑器。
更专业的编辑器能更好地帮助你编写相关格式的文件。这些编辑器提供的语法高亮、自动补全、格式化、错误检查、编码转换等诸多功能,能为你带来更好的编写体验。
不建议使用 Windows 记事本、Notepad++ 编写。
提示:如何获取安装包?
官网应当是你下载软件的首选途径,请不要被搜索引擎等误导进各种下载站,它们很可能会提供二次封装后、捆绑大量流氓软件的安装包。
但由于各种原因,官网下载可能会十分缓慢,你还可以选择从海豹官方群的群文件中获取安装包。通常群文件的「工具&内置文件」中,请善用搜索。
本节内容
本节将介绍海豹扩展功能的进阶内容,请善用侧边栏和搜索,按需阅读文档。
海豹核心提供了多种扩展功能,这些功能能让你实现更多的个性化功能,但通常也需要你具备一些知识。
我们建议,在尝试使用对应功能进行个性化前,先阅读本章的对应小节,帮助你快速掌握相关内容。
阅读完小节教程后,如果在使用中依然存在疑问,可以在官方群内寻求帮助。
在很多地方为了实现一些逻辑,都需要用到海豹所提供的一种简单的脚本语言,可以称为「海豹语」「豹语」等。
我们非常建议你在扩展功能的编写中,先了解海豹语。见 扩展 - 内置脚本语言。
在牌堆、JS 插件、敏感词库等的编写中,我们通常需要在对应格式的文件进行编写。
务必使用更专业的编辑器,如果你不知道选择什么,可以尝试使用 vscode、sublime text或 MT 管理器(Android)等,这些都是被广泛使用的优秀编辑器。
更专业的编辑器能更好地帮助你编写相关格式的文件。这些编辑器提供的语法高亮、自动补全、格式化、错误检查、编码转换等诸多功能,能为你带来更好的编写体验。
不建议使用 Windows 记事本、Notepad++ 编写。
提示:如何获取安装包?
官网应当是你下载软件的首选途径,请不要被搜索引擎等误导进各种下载站,它们很可能会提供二次封装后、捆绑大量流氓软件的安装包。
但由于各种原因,官网下载可能会十分缓慢,你还可以选择从海豹官方群的群文件中获取安装包。通常群文件的「工具&内置文件」中,请善用搜索。
本节内容
本节为海豹提供的 JS API 列表。目前的内容是从上古文档中直接迁移过来的,难免存在错误和缺失,参考本节时请注意识别。
更好的方式是参考海豹提供的 seal.d.ts 文件。(但同样存在缺失)
如果你需要最准确的内容,当前只能查阅海豹源码。主要查看 dice_jsvm.go,还有一些 API 以结构体方法的形式存在。
其中 ctx 为信息的 MsgContext,msg 为信息的 Message,一般会在定义指令函数时就声明,如:
cmd.solve = (ctx, msg, cmdArgs) => {
+ someFunction;
+}
下面是 API 的说明(完全了吧………应该?):
//被注释掉的 API 是可以提供的,但是在源码中被注释。
+//seal.setVarInt(ctx, \`$XXX\`, valueToSet) //\`$XXX\`即 rollvm(初阶豹语)中的变量,其会将$XXX 的值设定为 int 类型的 valueToSet。
+//seal.setVarStr(ctx, \`$XXX\`, valueToSet) //同上,区别是设定的为 str 类型的 valueToSet。
+seal.replyGroup(ctx, msg, something) //向收到指令的群中发送 something。
+seal.replyPerson(ctx, msg, something) //顾名思义,类似暗骰,向指令触发者(若为好友)私信 something。
+seal.replyToSender(ctx, msg, something) //同上,区别是群内收到就群内发送,私聊收到就私聊发送。
+seal.memberBan(ctx, groupID, userID, dur) //将指定群的指定用户封禁指定时间 (似乎只实现了 walleq 协议?)
+seal.memberKick(ctx, groupID, userID) //将指定群的指定用户踢出 (似乎也只实现了 walleq 协议?)
+seal.format(ctx, something) //将 something 经过一层 rollvm 转译并返回,注意需要配合 replyToSender 才能发送给触发者!
+seal.formatTmpl(ctx, something) //调用自定义文案 something
+seal.getCtxProxyFirst(ctx, cmdArgs) //获取被 at 的第一个人,等价于 getCtxProxyAtPos(ctx, cmdArgs, 0)
+seal.vars.intGet(ctx, \`$XXX\`) //返回一个数组,其为 \`[int 类型的触发者的该变量的值,bool]\` 当 strGet 一个 int 或 intGet 一个 str 时 bool 为 false,若一切正常则为 true。(之所以会有这么奇怪的说法是因为 rollvm 的「个人变量」机制)。
+seal.vars.intSet(ctx, \`$XXX\`, valueToSet) //\`$XXX\` 即 rollvm(初阶豹语)中的变量,其会将 $XXX 的值设定为 int 类型的 valueToSet。
+seal.vars.strGet(ctx, \`$XXX\`) //返回一个数组,其为 \`[str 类型的触发者的该变量的值,bool]\`(之所以会有这么奇怪的说法是因为 rollvm 的「个人变量」机制),当 strGet 一个 int 或 intGet 一个 str 时 bool 为 false,如果一切正常则为 true。
+seal.vars.strSet(ctx, \`$XXX\`, valueToSet) //\`$XXX\` 即 rollvm(初阶豹语)中的变量,其会将 $XXX 的值设定为 str 类型的 valueToSet。
+//seal.vars.varSet(ctx, \`$XXX\`, valueToSet) //可能是根据数据类型自动推断 int 或 str?
+//seal.vars.varGet(ctx, \`$XXX\`) //同上
+seal.ext.newCmdItemInfo() //用来定义新的指令;没有参数,个人觉得可以视其为类(class)。
+seal.ext.newCmdExecuteResult(bool) //用于判断指令执行结果,true 为成功,false 为失败。
+seal.ext.new(extName, extAuthor, Version) //用于建立一个名为 extName,作者为 extAuthor,版本为 Version 的扩展。注意,extName,extAuthor 和 Version 均为字符串。
+seal.ext.find(extName) //用于查找名为 extname 的扩展,若存在则返回 true,否则返回 false。
+seal.ext.register(newExt) //将扩展 newExt 注册到系统中。注意 newExt 是 seal.ext.new 的返回值,将 register 视为 seal.ext.new() 是错误的。
+seal.coc.newRule() //用来创建自定义 coc 规则,github.com/sealdice/javascript/examples 中已有详细例子,不多赘述。
+seal.coc.newRuleCheckResult() //同上,不多赘述。
+seal.coc.registerRule(rule) //同上,不多赘述。
+seal.deck.draw(ctx, deckname, isShuffle) //他会返回一个抽取牌堆的结果。这里有些复杂:deckname 为需要抽取的牌堆名,而 isShuffle 则是一个布尔值,它决定是否放回抽取;false 为放回,true 为不放回。
+seal.deck.reload() //重新加载牌堆。
+//下面是 1.2 新增 api
+seal.newMessage() //返回一个空白的 Message 对象,结构与收到消息的 msg 相同
+seal.createTempCtx(endpoint, msg) // 制作一个 ctx, 需要 msg.MessageType 和 msg.Sender.UserId
+seal.applyPlayerGroupCardByTemplate(ctx, tmpl) // 设定当前 ctx 玩家的自动名片格式
+seal.gameSystem.newTemplate(string) //从 json 解析新的游戏规则。
+seal.gameSystem.newTemplateByYaml(string) //从 yaml 解析新的游戏规则。
+seal.getCtxProxyAtPos(ctx, cmdArgs, pos) //获取第 pos 个被 at 的人,pos 从 0 开始计数
+atob(base64String) //返回被解码的 base64 编码
+btoa(string) //将 string 编码为 base64 并返回
+
+//下面是 1.4.1 新增 api
+seal.ext.newConfigItem() //用于创建一个新的配置项,返回一个 ConfigItem 对象
+seal.ext.registerConfig(configItem) //用于注册一个配置项,参数为 ConfigItem 对象
+seal.ext.getConfig(ext, "key") //用于获取一个配置项的值,参数为扩展对象和配置项的 key
+seal.ext.registerStringConfig(ext, "key", "defaultValue") //用于注册一个 string 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerIntConfig(ext, "key", 123) //用于注册一个 int 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerFloatConfig(ext, "key", 123.456) //用于注册一个 float 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerBoolConfig(ext, "key", true) //用于注册一个 bool 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerTemplateConfig(ext, "key", ["1", "2", "3", "4"]) //用于注册一个 template 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerOptionConfig(ext, "key", "1", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]) //用于注册一个 option 类型的配置项,参数为扩展对象、配置项的 key、默认值和可选项
+seal.ext.getStringConfig(ext, "key") //用于获取一个 string 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getIntConfig(ext, "key") //用于获取一个 int 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getFloatConfig(ext, "key") //用于获取一个 float 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getBoolConfig(ext, "key") //用于获取一个 bool 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getTemplateConfig(ext, "key") //用于获取一个 template 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getOptionConfig(ext, "key") //用于获取一个 option 类型配置项的值,参数为扩展对象和配置项的 key
+
+//下面是 1.4.4 新增 api
+seal.setPlayerGroupCard(ctx, tmpl) //设置当前 ctx 玩家的名片
+seal.ban.addBan(ctx, id, place, reason)
+seal.ban.addTrust(ctx, id, place, reason)
+seal.ban.remove(ctx, id)
+seal.ban.getList()
+seal.ban.getUser(id)
以下为部分 API 使用示例。
提示
声明和注册扩展的代码部分已省略。
replyGroup
replyPerson
replyToSender
//在私聊触发 replyGroup 不会回复
+seal.replyGroup(ctx, msg, 'something'); //触发者会收到"something"的回复
+seal.replyPerson(ctx, msg, 'something'); //触发者会收到"something"的私聊回复
+seal.replyToSender(ctx, msg, 'something'); //触发者会收到"something"的回复
memberBan
memberKick
是否保留待议
//注意这些似乎只能在 WQ 协议上实现;
+seal.memberBan(ctx, groupID, userID, dur) //将群为 groupID,userid 为 userID 的人封禁 dur(单位未知)
+seal.memberKick(ctx, groupID, userID) //将群为 groupID,userid 为 userID 的人踢出那个群
format
formatTmpl
//注意 format 不会自动 reply,而是 return,所以请套一层 reply
+seal.replyToSender(ctx, msg, seal.format(ctx, \`{$t玩家}的人品为:{$t人品}\`))
+//{$t人品} 是一个 rollvm 变量,其值等于 .jrrp 出的数值
+//回复:
+//群主的人品为:87
+seal.replyToSender(ctx, msg, seal.formatTmpl(ctx, unknown))
+//这里等大佬来了再研究
getCtxProxyFirst
getCtxProxyAtPos
cmd.solve = (ctx, msg, cmdArgs) => {
+ let ctxFirst = seal.getCtxProxyFirst(ctx, cmdArgs)
+ seal.replyToSender(ctx, msg, ctxFirst.player.name)
+}
+ext.cmdMap['test'] = cmd
+//输入:.test @A @B
+//返回:A 的名称。这里其实获取的是 A 玩家的 ctx,具体见 ctx 数据结构。
+cmd.solve = (ctx, msg, cmdArgs) => {
+ let ctx2 = seal.getCtxProxyAtPos(ctx, 2)
+ seal.replyToSender(ctx, msg, ctx3.player.name)
+}
+ext.cmdMap['test'] = cmd
+//输入:.test @A @B @C
+//返回:C(第三个被@的人,从 0 开始计算)的名称。这里其实获取的是 C 玩家的 ctx,具体见 ctx 数据结构。
vars
// 要看懂这里你可能需要学习一下初阶豹语
+seal.vars.intSet(ctx, \`$m今日打卡次数\`, 8) //将触发者的该个人变量设置为 8
+seal.vars.intGet(ctx, \`$m今日打卡次数\`) //返回 [8,true]
+seal.vars.strSet(ctx, \`$g群友经典语录\`, \`我要 Git Blame 一下看看是谁写的\`) //将群内的该群组变量设置为“我要 Git Blame 一下看看是谁写的”
+seal.vars.strGet(ctx, \`$g群友经典语录\`) //返回 ["我要 Git Blame 一下看看是谁写的",true]
ext
//用于注册扩展和定义指令的 api,已有详细示例,不多赘述
coc
//用于创建 coc 村规的 api,已有详细示例,不多赘述
deck
seal.deck.draw(ctx, \`煤气灯\`, false) //返回 放回抽取牌堆“煤气灯”的结果
+seal.deck.draw(ctx, \`煤气灯\`, true) //返回 不放回抽取牌堆“煤气灯”的结果
+seal.deck.reload() //重新加载牌堆
//这里实在不知道如何举例了
+seal.gameSystem.newTemplate(string) //从 json 解析新的游戏规则。
+seal.gameSystem.newTemplateByYaml(string) //从 yaml 解析新的游戏规则。
+seal.applyPlayerGroupCardByTemplate(ctx, tmpl) // 设定当前 ctx 玩家的自动名片格式
+seal.setPlayerGroupCard(ctx, tmpl) // 立刻设定当前 ctx 玩家的名片格式
seal.newMessage() //返回一个空白的 Message 对象,结构与收到消息的 msg 相同
+seal.createTempCtx(endpoint, msg) // 制作一个 ctx, 需要 msg.MessageType 和 msg.Sender.UserId
+seal.getEndPoints() //返回骰子(应该?)的 EndPoints
+seal.getVersion() //返回一个 map,键值为 version 和 versionCode
ctx
的内容 //在 github.com/sealdice/javascript/examples_ts/seal.d.ts 中有完整内容
+// 成员
+ctx.group // 当前群信息 (对象)
+ctx.player // 当前玩家数据 (对象)
+ctx.endPoint // 接入点数据 (对象)
+// 以上三个对象内容暂略
+ctx.isCurGroupBotOn // bool
+ctx.isPrivate // bool 是否私聊
+ctx.privilegeLevel // int 权限等级:40 邀请者、50 管理、60 群主、70 信任、100 master
+ctx.delegateText // string 代骰附加文本
+// 方法 (太长,懒.)
+chBindCur
+chBindCurGet
+chBindGet
+chBindGetList
+chExists
+chGet
+chLoad
+chNew
+chUnbind
+chUnbindCur
+chVarsClear
+chVarsGet
+chVarsNumGet
+chVarsUpdateTime
+loadGroupVars
+loadPlayerGlobalVars
+loadPlayerGroupVars,notice
ctx.group
的内容 // 成员
+active
+groupId
+guildId
+groupName
+cocRuleIndex
+logCurName
+logOn
+recentDiceSendTime
+showGroupWelcome
+groupWelcomeMessage
+enteredTime
+inviteUserId
+// 方法
+extActive
+extClear
+extGetActive
+extInactive
+extInactiveByName
+getCharTemplate
+isActive
+playerGet
ctx.player
的内容 // 成员
+name
+userId
+lastCommandTime
+autoSetNameTemplate
+// 方法
+getValueNameByAlias
ctx.endPoint
的内容 // 成员
+baseInfo
+id
+nickname
+state
+userId
+groupNum
+cmdExecutedNum
+cmdExecutedLastTime
+onlineTotalTime
+platform
+enable
+// 方法
+adapterSetup
+refreshGroupNum
+setEnable
+unmarshalYAML
msg
的内容 // 成员
+msg.time // int64 发送时间
+msg.messageType // string group 群聊 private 私聊
+msg.groupId // string 如果是群聊,群号
+msg.guildId // string 服务器群组号,会在 discord,kook,dodo 等平台见到
+msg.sender // 发送者信息 (对象)
+ sender.nickname
+ sender.userId
+msg.message
+msg.rawId // 原始信息 ID, 用于撤回等
+msg.platform // 平台
+// 方法
+// (似乎目前没有?)
cmdArgs
的内容 // 成员
+.command // string
+.args // []string
+.kwargs // []Kwarg
+.at // []AtInfo
+.rawArgs // string
+.amIBeMentioned // bool (为何要加一个 Be?)
+.cleanArgs // string 一种格式化后的参数,也就是中间所有分隔符都用一个空格替代
+.specialExecuteTimes // 特殊的执行次数,对应 3# 这种
+// 方法
+.isArgEqual(n, ss...) // 返回 bool, 检查第 n 个参数是否在 ss 中
+.eatPrefixWith(ss...) // 似乎是从 cleanArgs 中去除 ss 中第一个匹配的前缀
+.chopPrefixToArgsWith(ss...) // 不懂
+.getArgN(n) // -> string
+.getKwarg(str) // -> Kwarg 如果有名为 str 的 flag,返回对象,否则返回 null/undefined(不确定)
+.getRestArgsFrom(n) // -> string 获取从第 n 个参数之后的所有参数,用空格拼接成一个字符串
本节内容
本节为海豹提供的 JS API 列表。目前的内容是从上古文档中直接迁移过来的,难免存在错误和缺失,参考本节时请注意识别。
更好的方式是参考海豹提供的 seal.d.ts 文件。(但同样存在缺失)
如果你需要最准确的内容,当前只能查阅海豹源码。主要查看 dice_jsvm.go,还有一些 API 以结构体方法的形式存在。
其中 ctx 为信息的 MsgContext,msg 为信息的 Message,一般会在定义指令函数时就声明,如:
cmd.solve = (ctx, msg, cmdArgs) => {
+ someFunction;
+}
下面是 API 的说明(完全了吧………应该?):
//被注释掉的 API 是可以提供的,但是在源码中被注释。
+//seal.setVarInt(ctx, \`$XXX\`, valueToSet) //\`$XXX\`即 rollvm(初阶豹语)中的变量,其会将$XXX 的值设定为 int 类型的 valueToSet。
+//seal.setVarStr(ctx, \`$XXX\`, valueToSet) //同上,区别是设定的为 str 类型的 valueToSet。
+seal.replyGroup(ctx, msg, something) //向收到指令的群中发送 something。
+seal.replyPerson(ctx, msg, something) //顾名思义,类似暗骰,向指令触发者(若为好友)私信 something。
+seal.replyToSender(ctx, msg, something) //同上,区别是群内收到就群内发送,私聊收到就私聊发送。
+seal.memberBan(ctx, groupID, userID, dur) //将指定群的指定用户封禁指定时间 (似乎只实现了 walleq 协议?)
+seal.memberKick(ctx, groupID, userID) //将指定群的指定用户踢出 (似乎也只实现了 walleq 协议?)
+seal.format(ctx, something) //将 something 经过一层 rollvm 转译并返回,注意需要配合 replyToSender 才能发送给触发者!
+seal.formatTmpl(ctx, something) //调用自定义文案 something
+seal.getCtxProxyFirst(ctx, cmdArgs) //获取被 at 的第一个人,等价于 getCtxProxyAtPos(ctx, cmdArgs, 0)
+seal.vars.intGet(ctx, \`$XXX\`) //返回一个数组,其为 \`[int 类型的触发者的该变量的值,bool]\` 当 strGet 一个 int 或 intGet 一个 str 时 bool 为 false,若一切正常则为 true。(之所以会有这么奇怪的说法是因为 rollvm 的「个人变量」机制)。
+seal.vars.intSet(ctx, \`$XXX\`, valueToSet) //\`$XXX\` 即 rollvm(初阶豹语)中的变量,其会将 $XXX 的值设定为 int 类型的 valueToSet。
+seal.vars.strGet(ctx, \`$XXX\`) //返回一个数组,其为 \`[str 类型的触发者的该变量的值,bool]\`(之所以会有这么奇怪的说法是因为 rollvm 的「个人变量」机制),当 strGet 一个 int 或 intGet 一个 str 时 bool 为 false,如果一切正常则为 true。
+seal.vars.strSet(ctx, \`$XXX\`, valueToSet) //\`$XXX\` 即 rollvm(初阶豹语)中的变量,其会将 $XXX 的值设定为 str 类型的 valueToSet。
+//seal.vars.varSet(ctx, \`$XXX\`, valueToSet) //可能是根据数据类型自动推断 int 或 str?
+//seal.vars.varGet(ctx, \`$XXX\`) //同上
+seal.ext.newCmdItemInfo() //用来定义新的指令;没有参数,个人觉得可以视其为类(class)。
+seal.ext.newCmdExecuteResult(bool) //用于判断指令执行结果,true 为成功,false 为失败。
+seal.ext.new(extName, extAuthor, Version) //用于建立一个名为 extName,作者为 extAuthor,版本为 Version 的扩展。注意,extName,extAuthor 和 Version 均为字符串。
+seal.ext.find(extName) //用于查找名为 extname 的扩展,若存在则返回 true,否则返回 false。
+seal.ext.register(newExt) //将扩展 newExt 注册到系统中。注意 newExt 是 seal.ext.new 的返回值,将 register 视为 seal.ext.new() 是错误的。
+seal.coc.newRule() //用来创建自定义 coc 规则,github.com/sealdice/javascript/examples 中已有详细例子,不多赘述。
+seal.coc.newRuleCheckResult() //同上,不多赘述。
+seal.coc.registerRule(rule) //同上,不多赘述。
+seal.deck.draw(ctx, deckname, isShuffle) //他会返回一个抽取牌堆的结果。这里有些复杂:deckname 为需要抽取的牌堆名,而 isShuffle 则是一个布尔值,它决定是否放回抽取;false 为放回,true 为不放回。
+seal.deck.reload() //重新加载牌堆。
+//下面是 1.2 新增 api
+seal.newMessage() //返回一个空白的 Message 对象,结构与收到消息的 msg 相同
+seal.createTempCtx(endpoint, msg) // 制作一个 ctx, 需要 msg.MessageType 和 msg.Sender.UserId
+seal.applyPlayerGroupCardByTemplate(ctx, tmpl) // 设定当前 ctx 玩家的自动名片格式
+seal.gameSystem.newTemplate(string) //从 json 解析新的游戏规则。
+seal.gameSystem.newTemplateByYaml(string) //从 yaml 解析新的游戏规则。
+seal.getCtxProxyAtPos(ctx, cmdArgs, pos) //获取第 pos 个被 at 的人,pos 从 0 开始计数
+atob(base64String) //返回被解码的 base64 编码
+btoa(string) //将 string 编码为 base64 并返回
+
+//下面是 1.4.1 新增 api
+seal.ext.newConfigItem() //用于创建一个新的配置项,返回一个 ConfigItem 对象
+seal.ext.registerConfig(configItem) //用于注册一个配置项,参数为 ConfigItem 对象
+seal.ext.getConfig(ext, "key") //用于获取一个配置项的值,参数为扩展对象和配置项的 key
+seal.ext.registerStringConfig(ext, "key", "defaultValue") //用于注册一个 string 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerIntConfig(ext, "key", 123) //用于注册一个 int 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerFloatConfig(ext, "key", 123.456) //用于注册一个 float 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerBoolConfig(ext, "key", true) //用于注册一个 bool 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerTemplateConfig(ext, "key", ["1", "2", "3", "4"]) //用于注册一个 template 类型的配置项,参数为扩展对象、配置项的 key 和默认值
+seal.ext.registerOptionConfig(ext, "key", "1", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]) //用于注册一个 option 类型的配置项,参数为扩展对象、配置项的 key、默认值和可选项
+seal.ext.getStringConfig(ext, "key") //用于获取一个 string 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getIntConfig(ext, "key") //用于获取一个 int 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getFloatConfig(ext, "key") //用于获取一个 float 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getBoolConfig(ext, "key") //用于获取一个 bool 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getTemplateConfig(ext, "key") //用于获取一个 template 类型配置项的值,参数为扩展对象和配置项的 key
+seal.ext.getOptionConfig(ext, "key") //用于获取一个 option 类型配置项的值,参数为扩展对象和配置项的 key
+
+//下面是 1.4.4 新增 api
+seal.setPlayerGroupCard(ctx, tmpl) //设置当前 ctx 玩家的名片
+seal.ban.addBan(ctx, id, place, reason)
+seal.ban.addTrust(ctx, id, place, reason)
+seal.ban.remove(ctx, id)
+seal.ban.getList()
+seal.ban.getUser(id)
以下为部分 API 使用示例。
提示
声明和注册扩展的代码部分已省略。
replyGroup
replyPerson
replyToSender
//在私聊触发 replyGroup 不会回复
+seal.replyGroup(ctx, msg, 'something'); //触发者会收到"something"的回复
+seal.replyPerson(ctx, msg, 'something'); //触发者会收到"something"的私聊回复
+seal.replyToSender(ctx, msg, 'something'); //触发者会收到"something"的回复
memberBan
memberKick
是否保留待议
//注意这些似乎只能在 WQ 协议上实现;
+seal.memberBan(ctx, groupID, userID, dur) //将群为 groupID,userid 为 userID 的人封禁 dur(单位未知)
+seal.memberKick(ctx, groupID, userID) //将群为 groupID,userid 为 userID 的人踢出那个群
format
formatTmpl
//注意 format 不会自动 reply,而是 return,所以请套一层 reply
+seal.replyToSender(ctx, msg, seal.format(ctx, \`{$t玩家}的人品为:{$t人品}\`))
+//{$t人品} 是一个 rollvm 变量,其值等于 .jrrp 出的数值
+//回复:
+//群主的人品为:87
+seal.replyToSender(ctx, msg, seal.formatTmpl(ctx, unknown))
+//这里等大佬来了再研究
getCtxProxyFirst
getCtxProxyAtPos
cmd.solve = (ctx, msg, cmdArgs) => {
+ let ctxFirst = seal.getCtxProxyFirst(ctx, cmdArgs)
+ seal.replyToSender(ctx, msg, ctxFirst.player.name)
+}
+ext.cmdMap['test'] = cmd
+//输入:.test @A @B
+//返回:A 的名称。这里其实获取的是 A 玩家的 ctx,具体见 ctx 数据结构。
+cmd.solve = (ctx, msg, cmdArgs) => {
+ let ctx2 = seal.getCtxProxyAtPos(ctx, 2)
+ seal.replyToSender(ctx, msg, ctx3.player.name)
+}
+ext.cmdMap['test'] = cmd
+//输入:.test @A @B @C
+//返回:C(第三个被@的人,从 0 开始计算)的名称。这里其实获取的是 C 玩家的 ctx,具体见 ctx 数据结构。
vars
// 要看懂这里你可能需要学习一下初阶豹语
+seal.vars.intSet(ctx, \`$m今日打卡次数\`, 8) //将触发者的该个人变量设置为 8
+seal.vars.intGet(ctx, \`$m今日打卡次数\`) //返回 [8,true]
+seal.vars.strSet(ctx, \`$g群友经典语录\`, \`我要 Git Blame 一下看看是谁写的\`) //将群内的该群组变量设置为“我要 Git Blame 一下看看是谁写的”
+seal.vars.strGet(ctx, \`$g群友经典语录\`) //返回 ["我要 Git Blame 一下看看是谁写的",true]
ext
//用于注册扩展和定义指令的 api,已有详细示例,不多赘述
coc
//用于创建 coc 村规的 api,已有详细示例,不多赘述
deck
seal.deck.draw(ctx, \`煤气灯\`, false) //返回 放回抽取牌堆“煤气灯”的结果
+seal.deck.draw(ctx, \`煤气灯\`, true) //返回 不放回抽取牌堆“煤气灯”的结果
+seal.deck.reload() //重新加载牌堆
//这里实在不知道如何举例了
+seal.gameSystem.newTemplate(string) //从 json 解析新的游戏规则。
+seal.gameSystem.newTemplateByYaml(string) //从 yaml 解析新的游戏规则。
+seal.applyPlayerGroupCardByTemplate(ctx, tmpl) // 设定当前 ctx 玩家的自动名片格式
+seal.setPlayerGroupCard(ctx, tmpl) // 立刻设定当前 ctx 玩家的名片格式
seal.newMessage() //返回一个空白的 Message 对象,结构与收到消息的 msg 相同
+seal.createTempCtx(endpoint, msg) // 制作一个 ctx, 需要 msg.MessageType 和 msg.Sender.UserId
+seal.getEndPoints() //返回骰子(应该?)的 EndPoints
+seal.getVersion() //返回一个 map,键值为 version 和 versionCode
ctx
的内容 //在 github.com/sealdice/javascript/examples_ts/seal.d.ts 中有完整内容
+// 成员
+ctx.group // 当前群信息 (对象)
+ctx.player // 当前玩家数据 (对象)
+ctx.endPoint // 接入点数据 (对象)
+// 以上三个对象内容暂略
+ctx.isCurGroupBotOn // bool
+ctx.isPrivate // bool 是否私聊
+ctx.privilegeLevel // int 权限等级:40 邀请者、50 管理、60 群主、70 信任、100 master
+ctx.delegateText // string 代骰附加文本
+// 方法 (太长,懒.)
+chBindCur
+chBindCurGet
+chBindGet
+chBindGetList
+chExists
+chGet
+chLoad
+chNew
+chUnbind
+chUnbindCur
+chVarsClear
+chVarsGet
+chVarsNumGet
+chVarsUpdateTime
+loadGroupVars
+loadPlayerGlobalVars
+loadPlayerGroupVars,notice
ctx.group
的内容 // 成员
+active
+groupId
+guildId
+groupName
+cocRuleIndex
+logCurName
+logOn
+recentDiceSendTime
+showGroupWelcome
+groupWelcomeMessage
+enteredTime
+inviteUserId
+// 方法
+extActive
+extClear
+extGetActive
+extInactive
+extInactiveByName
+getCharTemplate
+isActive
+playerGet
ctx.player
的内容 // 成员
+name
+userId
+lastCommandTime
+autoSetNameTemplate
+// 方法
+getValueNameByAlias
ctx.endPoint
的内容 // 成员
+baseInfo
+id
+nickname
+state
+userId
+groupNum
+cmdExecutedNum
+cmdExecutedLastTime
+onlineTotalTime
+platform
+enable
+// 方法
+adapterSetup
+refreshGroupNum
+setEnable
+unmarshalYAML
msg
的内容 // 成员
+msg.time // int64 发送时间
+msg.messageType // string group 群聊 private 私聊
+msg.groupId // string 如果是群聊,群号
+msg.guildId // string 服务器群组号,会在 discord,kook,dodo 等平台见到
+msg.sender // 发送者信息 (对象)
+ sender.nickname
+ sender.userId
+msg.message
+msg.rawId // 原始信息 ID, 用于撤回等
+msg.platform // 平台
+// 方法
+// (似乎目前没有?)
cmdArgs
的内容 // 成员
+.command // string
+.args // []string
+.kwargs // []Kwarg
+.at // []AtInfo
+.rawArgs // string
+.amIBeMentioned // bool (为何要加一个 Be?)
+.cleanArgs // string 一种格式化后的参数,也就是中间所有分隔符都用一个空格替代
+.specialExecuteTimes // 特殊的执行次数,对应 3# 这种
+// 方法
+.isArgEqual(n, ss...) // 返回 bool, 检查第 n 个参数是否在 ss 中
+.eatPrefixWith(ss...) // 似乎是从 cleanArgs 中去除 ss 中第一个匹配的前缀
+.chopPrefixToArgsWith(ss...) // 不懂
+.getArgN(n) // -> string
+.getKwarg(str) // -> Kwarg 如果有名为 str 的 flag,返回对象,否则返回 null/undefined(不确定)
+.getRestArgsFrom(n) // -> string 获取从第 n 个参数之后的所有参数,用空格拼接成一个字符串
在海豹中,所有指令必须归属于某个扩展,而一个扩展可以包含多条指令。
JS 脚本中创建扩展的方式如下,在创建扩展后,还需要注册扩展,才能让扩展起效,不要漏掉哦!
// 如何建立一个扩展
+
+// 首先检查是否已经存在
+if (!seal.ext.find('test')) {
+ // 不存在,那么建立扩展,名为 test,作者“木落”,版本 1.0.0
+ const ext = seal.ext.new('test', '木落', '1.0.0');
+ // 注册扩展
+ seal.ext.register(ext);
+}
注意:JS 脚本和扩展
在实现上,海豹允许你在一个 JS 脚本文件中注册多个扩展,但我们不建议这样做。一般来说,一个 JS 脚本文件只会注册一个扩展。
注意:修改内置功能?
出于对公平性的考虑,JS 脚本不能替换内置指令和内置扩展。
想要创建一条自定义指令,首先需要创建一个扩展(seal.ExtInfo
),写好自定义指令的实现逻辑之后,再注册到扩展中。
接上面的代码,假定目前已经注册好了一个名为 test
的扩展,现在要写一个名为 seal
的指令:
.seal ABC
,那么文案中将海豹命名为「ABC」;第一步,创建新的自定义指令,设置好名字和帮助信息。
const cmdSeal = seal.ext.newCmdItemInfo();
+cmdSeal.name = 'seal'; // 指令名字,可用中文
+cmdSeal.help = '召唤一只海豹,可用 .seal <名字> 命名';
注意:命令的帮助信息
命令的帮助信息是在使用 .help <命令>
时会返回的帮助内容。
帮助信息不要以 .
开头,防止查看帮助时骰子的回复触发其他骰子。
第二步,编写指令的具体处理代码。
你需要编写指令对象的 solve
函数,在使用该指令的时候,海豹核心会调用你写的这个函数。
cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 这里是你需要编写的内容
+};
参数 | 说明 |
---|---|
ctx | 主要是和当前环境以及用户相关的内容,如当前发指令用户,当前群组信息等 |
msg | 原始指令内容,如指令文本,发送平台,发送时间等 |
cmdArgs | 指令信息,会将用户发的信息进行分段,方便快速取用 |
这里仅说明需要用到的接口,详细可见 插件仓库 examp_ts
下的 seal.d.ts
文件,里面包含了目前开放的接口的定义及其注释说明。
假设用户发送过来的消息是 .seal A B C
,那么可以用 cmdArgs.getArgN(1)
获取到 A
,cmdArgs.getArgN(2)
获取到 B
,cmdArgs.getArgN(3)
获取到 C
。
通常会对参数值进行判断,随后作出响应。
以下代码处理的是 .seal help
的情形:
cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 获取第一个参数,例如 .seal A B C
+ // 这里 cmdArgs.getArgN(1) 的结果即是 A,传参为 2 的话结果是 B
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .seal help
+ // 创建一个结果对象,并将 showHelp 标记为 true,这会自动给用户发送帮助
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ // 没有传入参数时的代码
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+};
注意:返回执行结果
在执行完自己的代码之后,需要返回指令结果对象,其参数是是否执行成功。
给消息发送者回应,需要使用 seal.replyToSender()
函数,前两个参数和 solve()
函数接收的参数一致,第三个参数是你要发送的文本。
发送的文本中,可以包含 变量(例如{$t玩家}
),也可以包含 CQ 码,用来实现回复发送者、@发送者、发送图片、发送分享卡片等功能。
在这个例子中,我们需要获取作为海豹名字的参数,获取不到就使用默认值,随后向消息发送者发送回应。
在刚刚的位置填入核心代码,就可以完成了。
cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 获取第一个参数,例如 .seal A B C
+ // 这里 cmdArgs.getArgN(1) 的结果即是 A,传参为 2 的话结果是 B
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .seal help
+ // 创建一个结果对象,并将 showHelp 标记为 true,这会自动给用户发送帮助
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ // 命令为 .seal XXXX,取第一个参数为名字
+ if (!val) val = '氪豹';
+ // 进行回复,如果是群聊发送那么在群里回复,私聊发送则在私聊回复 (听起来是废话文学,但详细区别见暗骰例子)
+ seal.replyToSender(ctx, msg, \`你抓到一只海豹!取名为\${val}\\n它的逃跑意愿为\${Math.ceil(Math.random() * 100)}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+};
第三步,将命令注册到扩展中。
ext.cmdMap['seal'] = cmdSeal;
如果你想要给这个命令起一个别名,也就是增加一个触发词,可以这样写:
ext.cmdMap['seal'] = cmdSeal; // 注册 .seal 指令
+ext.cmdMap['海豹'] = cmdSeal; // 注册 .海豹 指令,等效于 .seal
完整的代码如下:
// ==UserScript==
+// @name 示例:编写一条自定义指令
+// @author 木落
+// @version 1.0.0
+// @description 召唤一只海豹,可用.seal <名字> 命名
+// @timestamp 1671368035
+// 2022-12-18
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 编写一条自定义指令
+// 先将扩展模块创建出来,如果已创建就直接使用
+let ext = seal.ext.find('test');
+if (!ext) {
+ ext = seal.ext.new('test', '木落', '1.0.0');
+
+ // 创建指令 .seal
+ // 这个命令的功能为,显示「抓到一只海豹」的文案;
+ // 如果命令写 .seal ABC,那么文案中将海豹命名为「ABC」;
+ // 如果命令中没写名字,那么命名为默认值「氪豹」。
+ const cmdSeal = seal.ext.newCmdItemInfo();
+ cmdSeal.name = 'seal'; // 指令名字,可用中文
+ cmdSeal.help = '召唤一只海豹,可用 .seal <名字> 命名';
+
+ // 主函数,指令解析器会将指令信息解析,并储存在几个参数中
+ // ctx 主要是和当前环境以及用户相关的内容,如当前发指令用户,当前群组信息等
+ // msg 为原生态的指令内容,如指令文本,发送平台,发送时间等
+ // cmdArgs 为指令信息,会将用户发的信息进行分段,方便快速取用
+ cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 获取第一个参数,例如 .seal A B C
+ // 这里 cmdArgs.getArgN(1) 的结果即是 A,传参为 2 的话结果是 B
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .seal help
+ // 创建一个结果对象,并将 showHelp 标记为 true,这会自动给用户发送帮助
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ // 命令为 .seal XXXX,取第一个参数为名字
+ if (!val) val = '氪豹';
+ // 进行回复,如果是群聊发送那么在群里回复,私聊发送则在私聊回复 (听起来是废话文学,但详细区别见暗骰例子)
+ seal.replyToSender(ctx, msg, \`你抓到一只海豹!取名为\${val}\\n它的逃跑意愿为\${Math.ceil(Math.random() * 100)}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ };
+
+ // 将命令注册到扩展中
+ ext.cmdMap['seal'] = cmdSeal;
+
+ // 无实际意义,用于消除编译报错
+ export {}
+
+ seal.ext.register(ext);
+}
这就是最基本的模板了。
抽取牌堆的函数是 seal.deck.draw(ctx, deckName, shufflePool)
ctx
:MsgContext
类型,指令上下文,solve()
函数传进来的第一个参数deckName
:牌堆名称,字符串类型,例如 GRE单词
shufflePool
:是否放回抽取,布尔类型,true
为放回抽取,false
为不放回抽取返回值是一个 map
,包含以下字段:
exists
:布尔类型,是否抽取成功result
:字符串类型,抽取结果err
:字符串类型,抽取失败的原因// ==UserScript==
+// @name 抽取牌堆示例
+// @author SzzRain
+// @version 1.0.0
+// @description 用于演示如何抽取牌堆
+// @timestamp 1699077659
+// @license MIT
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 本脚本用于演示如何抽取牌堆, 共有两种实现方式
+if (!seal.ext.find('draw-decks-example')) {
+ const ext = seal.ext.new('draw-decks-example', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdDrawDecks = seal.ext.newCmdItemInfo();
+ cmdDrawDecks.name = 'dr';
+ cmdDrawDecks.help = '使用 .dr <牌堆名> 来抽取牌堆';
+ cmdDrawDecks.solve = (ctx, msg, cmdArgs) => {
+ // 抽取牌堆
+ // 参数1:ctx 参数2:牌堆名称 参数3:是否放回抽取
+ // 返回值:{exists: true, result: '抽取结果', err: '错误原因'}
+ const decks = seal.deck.draw(ctx, cmdArgs.getArgN(1), true);
+ // 判断是否抽取成功
+ if (decks['exists']) {
+ seal.replyToSender(ctx, msg, decks['result']);
+ return seal.ext.newCmdExecuteResult(true);
+ } else {
+ seal.replyToSender(ctx, msg, '抽取牌堆失败,原因:' + decks['err']);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ };
+ // 注册命令
+ ext.cmdMap['dr'] = cmdDrawDecks;
+
+ // 创建一个命令
+ const cmdDrawDecks2 = seal.ext.newCmdItemInfo();
+ cmdDrawDecks2.name = 'dr2';
+ cmdDrawDecks2.help = '使用 .dr2 <牌堆名> 来抽取牌堆';
+ cmdDrawDecks2.solve = (ctx, msg, cmdArgs) => {
+ // 抽取牌堆的另一种写法,使用 format 函数,由于经过了 rollvm 的处理,所以代码的执行效率会更慢
+ // 不过这种写法的返回值固定为字符串,省去了判断是否抽取成功的步骤
+ // 参数1:ctx 参数2:海豹语表达式,其中 #{DRAW-牌堆名称} 会被替换为抽取结果
+ const decks = seal.format(ctx, \`#{DRAW-\${cmdArgs.getArgN(1)}}\`);
+ seal.replyToSender(ctx, msg, decks);
+ }
+ // 注册命令
+ ext.cmdMap['dr2'] = cmdDrawDecks2;
+
+ // 注册扩展
+ seal.ext.register(ext);
+}
海豹中的权限等级,由高到低分别是:骰主,群主,管理员,邀请者,普通用户 和 黑名单用户。 每一个身份都有一个对应的数字,可以通过 ctx.privilegeLevel
获取当前用户的权限等级。 每个身份所对应的数字如下表所示:
身份 | 权限值 |
---|---|
骰主 | 100 |
白名单 | 70 |
群主 | 60 |
管理员 | 50 |
邀请者 | 40 |
普通用户 | 0 |
黑名单用户 | -30 |
提示:关于白名单用户
白名单用户即通过骰主手动添加的信任名单用户,可以使用所有需要群管理权限的功能,但不具备 Master 权限。
信任名单可以通过 .ban trust <统一ID>
添加,通过 .ban list trust
查看。
提示:关于黑名单用户
通常情况下你不需要考虑黑名单用户的情况,因为黑名单用户的消息会被过滤掉,不会触发任何指令。
// ==UserScript==
+// @name 权限识别样例
+// @author SzzRain
+// @version 1.0.0
+// @description 使用命令 .myperm 查看自己的权限
+// @timestamp 1699086084
+// @license MIT
+// @homepageURL https://github.com/Szzrain
+// ==/UserScript==
+if (!seal.ext.find('myperm')) {
+ const ext = seal.ext.new('myperm', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdMyperm = seal.ext.newCmdItemInfo();
+ cmdMyperm.name = 'myperm';
+ cmdMyperm.help = '使用 .myperm 展示我的权限';
+ cmdMyperm.solve = (ctx, msg, cmdArgs) => {
+ let text = "普通用户";
+ console.log(ctx.privilegeLevel);
+ switch (ctx.privilegeLevel) {
+ case 100:
+ text = "master";
+ break;
+ case 60:
+ text = "owner";
+ break;
+ case 50:
+ text = "admin";
+ break;
+ case 40:
+ text = "inviter";
+ break;
+ case -30:
+ // 黑名单用户,但是由于黑名单会被过滤掉,所以实际上这里并不会执行,这里只是为了演示
+ return seal.ext.newCmdExecuteResult(false);
+ }
+ seal.replyToSender(ctx, msg, text);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ // 注册命令
+ ext.cmdMap['myperm'] = cmdMyperm;
+
+ // 注册扩展
+ seal.ext.register(ext);
+}
添加:seal.ban.addBan(ctx, uid, place, reason)
移除:seal.ban.remove(ctx, uid)
ctx
:MsgContext
类型,指令上下文,solve()
函数传进来的第一个参数uid
:用户 ID,字符串类型,例如 QQ:123456789
, TG:123456789
place
:拉黑的地方,字符串类型,随便写,一般来说在群内拉黑就写群 IDreason
:拉黑原因,字符串类型,随便写添加:seal.ban.addTrust(ctx, uid, place, reason)
参数说明同上
移除:seal.ban.remove(ctx, uid)
提示:相同的移除函数
黑名单和信任名单存储在同一个数据库中,因此移除时使用的是同一个函数。
你在进行移除操作时需要自己判断是否符合你的预期。
使用 seal.ban.getList()
返回值为一个数组,数组中的每一项都是一个 BanListInfoItem
对象,包含以下字段:
id
:用户 ID,字符串类型name
:用户昵称,字符串类型score
:怒气值,整数类型rank
:拉黑/信任等级 0=没事 -10=警告 -30=禁止 30=信任times
:事发时间,数组类型,内部元素为整数时间戳reasons
:拉黑/信任原因,数组类型,内部元素为字符串places
:拉黑/信任的发生地点,数组类型,内部元素为字符串banTime
:拉黑/信任的时间,整数时间戳使用 seal.ban.getUser(uid)
如果用户没有在黑名单 / 信任名单中,返回值为空值。
如果有则返回一个 BanListInfoItem
对象,字段同上。
// ==UserScript==
+// @name js-ban
+// @author SzzRain
+// @version 1.0.0
+// @description 演示 js 扩展操作黑名单
+// @timestamp 1706684850
+// @license MIT
+// @homepageURL https://github.com/Szzrain
+// ==/UserScript==
+
+if (!seal.ext.find('js-ban')) {
+ const ext = seal.ext.new('js-ban', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdcban = seal.ext.newCmdItemInfo();
+ cmdcban.name = 'cban';
+ cmdcban.help = '使用.cban <用户id> 来拉黑目标用户,仅master可用';
+ cmdcban.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ seal.ban.addBan(ctx, val, "JS扩展拉黑", "JS扩展拉黑测试");
+ seal.replyToSender(ctx, msg, "已拉黑用户" + val);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cban'] = cmdcban;
+
+ // 创建一个命令
+ const cmdcunban = seal.ext.newCmdItemInfo();
+ cmdcunban.name = 'cunban';
+ cmdcunban.help = '使用.cunban <用户id> 来解除拉黑/移除信任目标用户,仅master可用';
+ cmdcunban.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ // 信任用户和拉黑用户存在同一个列表中,remove 前请先判断是否符合预期
+ seal.ban.remove(ctx, val);
+ seal.replyToSender(ctx, msg, "已解除拉黑/信任用户" + val);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cunban'] = cmdcunban;
+
+ // 创建一个命令
+ const cmdctrust = seal.ext.newCmdItemInfo();
+ cmdctrust.name = 'ctrust';
+ cmdctrust.help = '使用.ctrust <用户id> 来信任目标用户,仅master可用';
+ cmdctrust.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ seal.ban.addTrust(ctx, val, "JS扩展信任", "JS扩展信任测试");
+ seal.replyToSender(ctx, msg, "已信任用户" + val);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['ctrust'] = cmdctrust;
+
+ // 创建一个命令
+ const cmdcbanlist = seal.ext.newCmdItemInfo();
+ cmdcbanlist.name = 'cbanlist';
+ cmdcbanlist.help = '使用.cbanlist 来查看黑名单和信任列表,仅master可用';
+ cmdcbanlist.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ let text = "黑名单/信任列表:\\n";
+ seal.ban.getList().forEach((v) => {
+ text += \`\${v.name}(\${v.id}) 当前等级:\${v.rank} 怒气值:\${v.score}\\n\`;
+ });
+ seal.replyToSender(ctx, msg, text);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cbanlist'] = cmdcbanlist;
+
+ // 创建一个命令
+ const cmdcget = seal.ext.newCmdItemInfo();
+ cmdcget.name = 'cget';
+ cmdcget.help = '使用.cget <用户id> 来查看目标用户的黑名单/信任信息,仅master可用';
+ cmdcget.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ let info = seal.ban.getUser(val);
+ if (!info) {
+ seal.replyToSender(ctx, msg, "用户不存在或未被拉黑/信任");
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ let level = info.rank;
+ // 不知道为什么,用 === 是 false
+ if (info.rank == 30) {
+ level = "信任"
+ } else if (info.rank == -30) {
+ level = "拉黑"
+ } else if (info.rank == -10) {
+ level = "警告"
+ }
+ let text = \`用户\${info.name}(\${info.id}) 当前等级:\${level} 怒气值:\${info.score}\`;
+ seal.replyToSender(ctx, msg, text);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cget'] = cmdcget;
+
+ // 注册扩展
+ seal.ext.register(ext);
+}
相关的 API 是两个函数,ExtInfo.storageSet(key, value)
函数和 ExtInfo.storageGet(key)
,一个存,一个取。
关于 key:
存储时需要指定 key,你可以设定为你的扩展的名字,也可以设定为其他的,注意不要和别的扩展的 key 重名就可以了。
就好比你在商场门口想要把随身物品存进暂存柜中,需要先找到个和别人不重复的柜子,避免放错地方或者取错东西。
关于 value:
存放的数据是字符串类型,且只能存一个,但如果想要存放更多的数据以及非字符串类型的数据怎么办?
答案是使用 JSON.stringify()
函数将存储了数据的 JS 对象转换为 JSON 字符串,存储起来,需要取出的时候,再使用 JSON.parse()
函数将数据再转换为 JS 对象。。
// ==UserScript==
+// @name 示例:存储数据
+// @author 木落
+// @version 1.0.0
+// @description 投喂,格式 .投喂 <物品>
+// @timestamp 1672423909
+// 2022-12-31
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 先将扩展模块创建出来,如果已创建就直接使用
+if (!seal.ext.find('test')) {
+ const ext = seal.ext.new('test', '木落', '1.0.0');
+
+ const cmdFeed = seal.ext.newCmdItemInfo();
+ cmdFeed.name = '投喂';
+ cmdFeed.help = '投喂,格式:.投喂 <物品>\\n.投喂 记录 // 查看记录';
+ cmdFeed.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help':
+ case '': {
+ // .投喂 help
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ case '列表':
+ case '记录':
+ case 'list': {
+ const data = JSON.parse(ext.storageGet('feedInfo') || '{}');
+ const lst = [];
+ for (let [k, v] of Object.entries(data)) {
+ lst.push(\`- \${k}: 数量 \${v}\`);
+ }
+ seal.replyToSender(ctx, msg, \`投喂记录:\\n\${lst.join('\\n')}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ default: {
+ const data = JSON.parse(ext.storageGet('feedInfo') || '{}');
+ const name = val || '空气';
+ if (data[name] === undefined) {
+ data[name] = 0;
+ }
+ data[name] += 1;
+ ext.storageSet('feedInfo', JSON.stringify(data));
+ seal.replyToSender(ctx, msg, \`你给海豹投喂了\${name},要爱护动物!\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ };
+
+ // 将命令注册到扩展中
+ ext.cmdMap['投喂'] = cmdFeed;
+ ext.cmdMap['feed'] = cmdFeed;
+
+ seal.ext.register(ext);
+}
这是关于数据的增加、删除、查询等操作的实现示例(修改的话就是删除之后增加)
// ==UserScript==
+// @name 群内安价收集
+// @author 憧憬少
+// @version 1.0.0
+// @description 在群内收集群友给出的安价选项,并掷骰得出结果
+// @timestamp 1676386517
+// 2023-02-14 22:55:17
+// @license MIT
+// @homepageURL https://github.com/ChangingSelf/sealdice-js-ext-anchor
+// ==/UserScript==
+
+(() => {
+ // src/index.ts
+ const HELP = \`群内安价收集 (ak 是アンカー罗马字缩写)
+注意 ak 后面有空格,“.ak”也可以换成“.安价”
+
+.ak help // 查看帮助
+.ak # 标题 // 新建一轮分歧并设标题
+.ak + 选项 // 需要添加的选项的内容
+.ak - 序号 // 需要移除的选项的序号
+.ak ? // 列出目前所有选项
+.ak = // 随机抽取 1 个选项并继续
+.ak = n // 随机抽取 n 个选项并继续
+\`;
+ const STORAGE_KEY = "anchor";
+ const OPTION_NUM_PER_PAGE = 15; // 列出所有选项时,每页放多少个选项
+ function akNew(ctx, msg, ext, title) {
+ const data = {
+ "title": title,
+ "options": []
+ };
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ seal.replyToSender(ctx, msg, \`已新建分歧:\${title}\`);
+ }
+ function akAdd(ctx, msg, ext, option) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ data.options.push(option);
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+已添加第\${data.options.length}个选项:\${option}\`);
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ }
+ function akDel(ctx, msg, ext, index) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ const removed = data.options.splice(index - 1, 1)[0];
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+已移除第\${index}个选项:\${removed}\`);
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ }
+ function akList(ctx, msg, ext) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ if (data.options.length === 0) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+还没有任何选项呢\`);
+ return;
+ }
+ let optStr = "";
+ let curPageRows = 0;
+ data.options.forEach((value, index) => {
+ optStr += \`\${index + 1}.\${value}
+\`;
+ ++curPageRows;
+ if (curPageRows >= OPTION_NUM_PER_PAGE) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+\${optStr}\`);
+ optStr = "";
+ curPageRows = 0;
+ }
+ });
+ if (curPageRows > 0) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+\${optStr}\`);
+ }
+ }
+ function randomInt(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ }
+ function akGet(ctx, msg, ext, num = 1) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ if (data.options.length === 0) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+还没有任何选项呢\`);
+ return;
+ }
+ akList(ctx, msg, ext);
+ let optStr = "";
+ for (let i = 0; i < num; ++i) {
+ const r = randomInt(1, data.options.length);
+ const result = data.options.splice(r - 1, 1);
+ optStr += \`\${i + 1}.\${result}
+\`;
+ }
+ seal.replyToSender(ctx, msg, \`结果是:
+\${optStr}\`);
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ }
+ function main() {
+ let ext = seal.ext.find("anchor");
+ if (!ext) {
+ ext = seal.ext.new("anchor", "憧憬少", "1.0.0");
+
+ const cmdSeal = seal.ext.newCmdItemInfo();
+ cmdSeal.name = "安价";
+ cmdSeal.help = HELP;
+ cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ try {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case "#": {
+ const title = cmdArgs.getArgN(2);
+ akNew(ctx, msg, ext, title);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "+": {
+ const option = cmdArgs.getArgN(2);
+ akAdd(ctx, msg, ext, option);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "-": {
+ const index = Number(cmdArgs.getArgN(2));
+ akDel(ctx, msg, ext, index);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "?":
+ case "?": {
+ akList(ctx, msg, ext);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "=": {
+ let num = 1;
+ if (cmdArgs.args.length >= 2) {
+ num = Number(cmdArgs.getArgN(2));
+ }
+ akGet(ctx, msg, ext, num);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "help":
+ default: {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ }
+ } catch (error) {
+ seal.replyToSender(ctx, msg, error.Message);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ };
+ ext.cmdMap["安价"] = cmdSeal;
+ ext.cmdMap["ak"] = cmdSeal;
+
+ seal.ext.register(ext);
+ }
+ }
+ main();
+})();
关于取出数据来修改的函数,可以参考如下代码:
const STORAGE_KEY = "anchor"; // 将你的 key 抽出来单独作为一个常量,方便开发阶段修改(使用了之后就不要修改了)
+//函数:添加选项
+function akAdd(ctx, msg, ext, option) {
+ //取出数据
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+
+ //处理数据
+ data.options.push(option);
+
+ //响应发送者
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}\\n已添加第\${data.options.length}个选项:\${option}\`);
+
+ //将处理完的数据写回去
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+}
可以查看下文的 API。
如下:
// ==UserScript==
+// @name 示例:编写暗骰指令
+// @author 流溪
+// @version 1.0.0
+// @description 暗骰,格式.hide 原因
+// @timestamp 1671540835
+// 2022-12-20
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+if (!seal.ext.find('hide')){
+ const ext = seal.ext.new('hide','流溪','0.0.1');
+
+ const cmdHide = seal.ext.newCmdItemInfo;
+ cmdHide.name = 'hide';
+ cmdHide.help = '暗骰,使用 .hide 面数 暗骰';
+ cmdHide.solve = (ctx, msg, cmdArgs) => {
+ if (msg.messageType !== 'group'){
+ seal.replyToSender(ctx, msg, '暗骰只能在群内触发');
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ function rd(x){
+ // 这里写的时候有点不清醒了,感觉是对的,如果不对请拷打我
+ return Math.round(Math.random() * (x - 1) + 1);
+ }
+ let x = cmdArgs.getArgN(1);
+ if (x === 'help'){
+ return seal.ext.newCmdExecuteResult(true).showhelp = true;
+ } else if (isNaN(Number(x))){
+ // 我知道这里有更好的判断是否为数字的方法但是我不会.jpg
+ seal.replyToSender(ctx, msg, \`骰子面数应是数字\`);
+ return seal.ext.newCmdExecuteResult(true);
+ } else {
+ // 这就是暗骰 api 哒!
+ seal.replyPerson(ctx, msg, \`你在群\${msg.groupId}的掷骰结果为:\${rd(x)}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ ext.cmdMap['hide'] = cmdHide;
+
+ seal.ext.register(ext);
+}
可以看到使用seal.replyPerson
做到暗骰的效果。
// ==UserScript==
+// @name 示例:编写代骰指令
+// @author 木落
+// @version 1.0.0
+// @description 捕捉某人,格式.catch <@名字>
+// @timestamp 1671540835
+// 2022-12-20
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 编写代骰指令
+// 先将扩展模块创建出来,如果已创建就直接使用
+if (!seal.ext.find('test')) {
+ const ext = seal.ext.new('test', '木落', '1.0.0');
+
+ // 创建指令 .catch
+ // 这个命令的功能为,显示“试图捕捉某人”,并给出成功率
+ // 如果命令写“.catch @张三”,那么就会试着捕捉张三
+ const cmdCatch = seal.ext.newCmdItemInfo();
+ cmdCatch.name = 'catch';
+ cmdCatch.help = '捕捉某人,格式.catch <@名字>';
+ // 对这个指令启用使用代骰功能,即@某人时,可获取对方的数据,以对方身份进行骰点
+ cmdCatch.allowDelegate = true;
+ cmdCatch.solve = (ctx, msg, cmdArgs) => {
+ // 获取对方数据,之后用 mctx 替代 ctx,mctx 下读出的数据即被代骰者的个人数据
+ const mctx = seal.getCtxProxyFirst(ctx, cmdArgs);
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .catch help
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ const text = \`正在试图捕捉\${mctx.player.name},成功率为\${Math.ceil(Math.random() * 100)}%\`;
+ seal.replyToSender(mctx, msg, text);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ };
+ // 将命令注册到扩展中
+ ext.cmdMap['catch'] = cmdCatch;
+
+ seal.ext.register(ext);
+}
主要使用 Fetch API 进行网络请求,详细文档见链接。fetch
函数返回一个 Promise,传统的写法是这样:
// 你可以使用 generator 来重写这段代码,欢迎 pr
+// 访问网址
+fetch('https://api-music.imsyy.top/cloudsearch?keywords=稻香').then((resp) => {
+ // 在返回对象的基础上,将文本流作为 json 解析
+ resp.json().then((data) => {
+ // 打印解析出的数据
+ console.log(JSON.stringify(data));
+ });
+});
你也可以使用异步编程(async/await)来简化代码:
const response = await fetch('https://api-music.imsyy.top/cloudsearch?keywords=稻香');
+if (!response.ok) {
+ // 处理不成功的请求...
+}
+const data = await response.json();
+console.log(JSON.stringify(data));
套用这个模板,你可以写出很多调用 API 的简单扩展。
比如核心代码只有一行的「随机猫猫图片」扩展:
seal.replyToSender(ctx, msg, \`[CQ:image,file=https://thiscatdoesnotexist.com/,cache=0]\`);
核心代码同样只有一行的「随机二次元图片」扩展:
seal.replyToSender(ctx, msg, \`[CQ:image,file=https://api.oick.cn/random/api.php?type=\${val},cache=0]\`);
当然,也有稍微复杂的,比如「AI 骰娘」扩展,但也没有太复杂,只是处理了一下发送者传过来的消息,再发送给网络 API,收到响应之后再回应发送者。
它的核心代码如下:
const BID = ''; // 填入你的骰娘的大脑的 id
+const KEY = ''; // 填入你的 key
+/**
+ * 给 AI 主脑发送消息并接收回复
+ * @param ctx 主要是和当前环境以及用户相关的内容,如当前发指令用户,当前群组信息等
+ * @param msg 为原生态的指令内容,如指令文本,发送平台,发送时间等
+ * @param message 要发送给骰娘的具体消息
+ */
+function chatWithBot(ctx,msg,message) {
+ fetch(\`http://api.brainshop.ai/get?bid=\${BID}&key=\${KEY}&uid=\${msg.sender.userId}&msg=\${message}\`).then(response => {
+ if (!response.ok) {
+ seal.replyToSender(ctx, msg, \`抱歉,我连接不上主脑了。它传递过来的信息是:\${response.status}\`);
+ return seal.ext.newCmdExecuteResult(false);
+ } else {
+ response.json().then(data => {
+ seal.replyToSender(ctx, msg, data["cnt"]);
+ return seal.ext.newCmdExecuteResult(true);
+ });
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ });
+}
// ==UserScript==
+// @name 示例:自定义 COC 规则
+// @author 木落
+// @version 1.0.0
+// @description 自设规则,出 1 大成功,出 100 大失败。困难极难等保持原样
+// @timestamp 1671886435
+// 2022-12-24
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+const rule = seal.coc.newRule();
+rule.index = 20; // 自定义序号必须大于等于 20,代表可用.setcoc 20 切换
+rule.key = '测试'; // 代表可用 .setcoc 测试 切换
+rule.name = '自设规则'; // 已切换至规则文本 name: desc
+rule.desc = '出 1 大成功\\n出 100 大失败';
+// d100 为出目,checkValue 为技能点数
+rule.check = (ctx, d100, checkValue) => {
+ let successRank = 0;
+ const criticalSuccessValue = 1;
+ const fumbleValue = 100;
+ if (d100 <= checkValue) {
+ successRank = 1;
+ } else {
+ successRank = -1;
+ }
+ // 成功判定
+ if (successRank == 1) {
+ // 区分大成功、困难成功、极难成功等
+ if (d100 <= checkValue / 2) {
+ //suffix = "成功(困难)"
+ successRank = 2;
+ }
+ if (d100 <= checkValue / 5) {
+ //suffix = "成功(极难)"
+ successRank = 3;
+ }
+ if (d100 <= criticalSuccessValue) {
+ //suffix = "大成功!"
+ successRank = 4;
+ }
+ } else {
+ if (d100 >= fumbleValue) {
+ //suffix = "大失败!"
+ successRank = -2;
+ }
+ }
+ let ret = seal.coc.newRuleCheckResult();
+ ret.successRank = successRank;
+ ret.criticalSuccessValue = criticalSuccessValue;
+ return ret;
+};
+// 注册规则
+seal.coc.registerRule(rule);
你是否因为自定义回复能实现的功能有限而烦恼?你是否因为自定义回复的匹配方式不全而愤怒?你是否因为自定义回复只能调用图片 API 而感到焦头烂额?
不要紧张,我的朋友,试试非指令关键词,这会非常有用。
通常情况下,我们使用 ext.onNotCommandReceived
作为非指令关键词的标志;这限定了只有在未收到命令且未达成自定义回复时,海豹才会触发此流程。
一个完整的非指令关键词模板如下:
// 必要流程,注册扩展,注意即使是非指令关键词也是依附于扩展的
+if (!seal.ext.find('xxx')){
+ const ext = seal.ext.new('xxx','xxx','x.x.x');
+ seal.ext.register(ext);
+ // 这里其实是编写处理函数
+ ext.onNotCommandReceived = (ctx, msg) => {
+ let message = msg.message;
+ // 这里请自己处理要如何达成 message 的匹配条件,js 那么多的匹配方法,足够你玩出花来。
+ if(xxx){
+ // 匹配到关键词了,要干什么?
+ xxx;
+ }
+ }
+}
插件若要在 UI 中注册可供用户修改的配置项,需要在插件注册后调用 seal.ext.registerXXXConfig()
函数注册配置项。
XXX
为配置项的类型,目前支持 string
、int
、float
、bool
、template
、option
六种类型。注意按照小驼峰命名法大写
同样的,插件也可以使用 seal.ext.getXXXConfig()
函数获取配置项的值。
你也可以直接使用 seal.ext.getConfig()
函数获取配置项的值,这个函数会返回一个 ConfigItem
对象, 包含了配置项的类型、值、默认值等信息。
ConfigItem
对象的类型定义如下,调用时请使用 jsbind
中的值作为 key
type ConfigItem struct {
+ Key string \`json:"key" jsbind:"key"\`
+ Type string \`json:"type" jsbind:"type"\`
+ DefaultValue interface{} \`json:"defaultValue" jsbind:"defaultValue"\`
+ Value interface{} \`json:"value,omitempty" jsbind:"value"\`
+ Option interface{} \`json:"option,omitempty" jsbind:"option"\`
+ Deprecated bool \`json:"deprecated,omitempty" jsbind:"deprecated"\`
+}
提示:更原始的 API
seal.ext.registerConfig()
函数也是可以使用的,你需要自己通过 seal.ext.newConfigItem()
来获取一个新的 ConfigItem
对象。
在对你的 ConfigItem
对象进行修改后,再调用 seal.ext.registerConfig()
函数进行注册。
// ==UserScript==
+// @name js-config-example
+// @author Szzrain
+// @version 1.0.0
+// @description 演示 js 配置项的用法
+// @timestamp 1698636875
+// @license MIT
+// ==/UserScript==
+
+if (!seal.ext.find('js-config-example')) {
+ const ext = seal.ext.new('js-config-example', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdgetConfig = seal.ext.newCmdItemInfo();
+ cmdgetConfig.name = 'getconfig';
+ cmdgetConfig.help = '使用.getconfig <key> 来获取配置项,仅 master 可用';
+ cmdgetConfig.allowDelegate = true;
+ cmdgetConfig.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel !== 100) {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ switch (val) {
+ case "1":
+ strVal = seal.ext.getStringConfig(ext, "testkey1");
+ seal.replyToSender(ctx, msg, strVal);
+ break;
+ case "2":
+ intVal = seal.ext.getIntConfig(ext, "testkey2");
+ seal.replyToSender(ctx, msg, intVal);
+ break;
+ case "3":
+ floatVal = seal.ext.getFloatConfig(ext, "testkey3");
+ seal.replyToSender(ctx, msg, floatVal);
+ break;
+ case "4":
+ boolVal = seal.ext.getBoolConfig(ext, "testkey4");
+ seal.replyToSender(ctx, msg, boolVal);
+ break;
+ case "5":
+ tmplVal = seal.ext.getTemplateConfig(ext, "testkey5");
+ seal.replyToSender(ctx, msg, tmplVal);
+ break;
+ case "6":
+ optVal = seal.ext.getOptionConfig(ext, "testkey6");
+ seal.replyToSender(ctx, msg, optVal);
+ break;
+ default:
+ let config = seal.ext.getConfig(ext, val);
+ if (config) {
+ seal.replyToSender(ctx, msg, config.value);
+ } else {
+ seal.replyToSender(ctx, msg, "配置项不存在");
+ }
+ break;
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['getconfig'] = cmdgetConfig;
+
+ // 注册扩展
+ seal.ext.register(ext);
+
+ // 注册配置项需在 ext 注册后进行
+ // 通常来说,register 函数的参数为 ext, key, defaultValue
+ seal.ext.registerStringConfig(ext, "testkey1", "testvalue");
+ seal.ext.registerIntConfig(ext, "testkey2", 123);
+ seal.ext.registerFloatConfig(ext, "testkey3", 123.456);
+ seal.ext.registerBoolConfig(ext, "testkey4", true);
+ seal.ext.registerTemplateConfig(ext, "testkey5", ["1", "2", "3", "4"]);
+ // 注册单选项函数的参数为 ext, key, defaultValue, options
+ seal.ext.registerOptionConfig(ext, "testkey6", "1", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]);
+}
注册后的配置项会在 UI 中显示,可以在 UI 中修改配置项的值
',11)),i("h2",F,[s[24]||(s[24]=a("注册定时任务 ")),k(n,{type:"tip",text:"v1.4.6"}),s[25]||(s[25]=a()),s[26]||(s[26]=i("a",{class:"header-anchor",href:"#注册定时任务","aria-label":'Permalink to "注册定时任务提示:Cron 表达式
如果你对 cron
或下文中提到的 Cron 表达式并不熟悉,可以参考 Linux crontab 命令 | 菜鸟教程 或 Cron 表达式 - 阿里云文档。
从 v1.4.6
版本开始,海豹核心新增了用于定时任务的 API。
seal.ext.registerTask(ext, taskType, value, func, key="", description="")
其各个参数的含义如下:
taskType: string
:registerTask
接受两种类型的定时任务表达式——使用 Cron 表达式或使用 hh:mm/h:mm
格式的「每日」任务。当使用前者时,taskType
应填入 "cron"
,而后者应填入 "daily"
。
value: string
:
taskType
填入 "cron"
时,value
应填入有效的 Cron 表达式,例如:"*/5 * * * *"
。registerTask
会根据 Cron 表达式定时执行 func
。taskType
填入 "daily"
时,value
应填入 hh:mm
或 h:mm
格式的时间,例如:"08:00"
、"3:00"
、"20:35"
。registerTask
会根据时间,每天定时执行 func
。func: (taskCtx: JsScriptTaskCtx) => void
:定时任务的实际执行函数。其中 taskCtx
的数据类型为:
type JsScriptTaskCtx {
+ now: number;
+ key: string;
+}
taskCtx.now
提供了 func
实际被唤起时的 Unix 时间戳;如果填写了可选参数 key
,taskCtx.key
则与之相同。
使用定时任务 API 的用户应该将实际业务逻辑放置在 func
内,定时任务 API 仅承担唤醒功能。
key: string
:可选参数。为此定时任务提供唯一索引。当填写了 key
时,此定时任务也会出现在 WebUI 的插件配置项中,可以通过 WebUI 修改定时任务表达式。
description: string
:可选参数。为此定时任务提供可读性更高的描述。当同时填写了 key
与 description
时,WebUI 的插件配置项中将会显示关于此定时任务的描述。
// 实现任意定时功能
+seal.ext.registerTask(ext, "cron", "* * * * *", (taskCtx) => {
+ // 检查当前时间点附近,尚未执行的所有任务
+ const tasks = getTasks(taskCtx.now, ext.StorageGet("tasks"));
+ for (const task of tasks) {
+ // 检查当前群聊中,插件功能是否开启
+ if (!checkGroupStatus(task.groupId, ext.storageGet("status"))) {
+ continue;
+ }
+ doTask(task);
+ }
+});
// 类似每日新闻
+seal.ext.registerTask(ext, "daily", "08:30", (taskCtx) => {
+ // 所有需要发送每日新闻的群聊
+ const groups = getGroups(ext.StorageGet("groups"));
+ for (const group of groups) {
+ sendDailyNews(group);
+ }
+}, "daily_news", "每天触发「每日新闻」的时间");
在海豹中,所有指令必须归属于某个扩展,而一个扩展可以包含多条指令。
JS 脚本中创建扩展的方式如下,在创建扩展后,还需要注册扩展,才能让扩展起效,不要漏掉哦!
// 如何建立一个扩展
+
+// 首先检查是否已经存在
+if (!seal.ext.find('test')) {
+ // 不存在,那么建立扩展,名为 test,作者“木落”,版本 1.0.0
+ const ext = seal.ext.new('test', '木落', '1.0.0');
+ // 注册扩展
+ seal.ext.register(ext);
+}
注意:JS 脚本和扩展
在实现上,海豹允许你在一个 JS 脚本文件中注册多个扩展,但我们不建议这样做。一般来说,一个 JS 脚本文件只会注册一个扩展。
注意:修改内置功能?
出于对公平性的考虑,JS 脚本不能替换内置指令和内置扩展。
想要创建一条自定义指令,首先需要创建一个扩展(seal.ExtInfo
),写好自定义指令的实现逻辑之后,再注册到扩展中。
接上面的代码,假定目前已经注册好了一个名为 test
的扩展,现在要写一个名为 seal
的指令:
.seal ABC
,那么文案中将海豹命名为「ABC」;第一步,创建新的自定义指令,设置好名字和帮助信息。
const cmdSeal = seal.ext.newCmdItemInfo();
+cmdSeal.name = 'seal'; // 指令名字,可用中文
+cmdSeal.help = '召唤一只海豹,可用 .seal <名字> 命名';
注意:命令的帮助信息
命令的帮助信息是在使用 .help <命令>
时会返回的帮助内容。
帮助信息不要以 .
开头,防止查看帮助时骰子的回复触发其他骰子。
第二步,编写指令的具体处理代码。
你需要编写指令对象的 solve
函数,在使用该指令的时候,海豹核心会调用你写的这个函数。
cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 这里是你需要编写的内容
+};
参数 | 说明 |
---|---|
ctx | 主要是和当前环境以及用户相关的内容,如当前发指令用户,当前群组信息等 |
msg | 原始指令内容,如指令文本,发送平台,发送时间等 |
cmdArgs | 指令信息,会将用户发的信息进行分段,方便快速取用 |
这里仅说明需要用到的接口,详细可见 插件仓库 examp_ts
下的 seal.d.ts
文件,里面包含了目前开放的接口的定义及其注释说明。
假设用户发送过来的消息是 .seal A B C
,那么可以用 cmdArgs.getArgN(1)
获取到 A
,cmdArgs.getArgN(2)
获取到 B
,cmdArgs.getArgN(3)
获取到 C
。
通常会对参数值进行判断,随后作出响应。
以下代码处理的是 .seal help
的情形:
cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 获取第一个参数,例如 .seal A B C
+ // 这里 cmdArgs.getArgN(1) 的结果即是 A,传参为 2 的话结果是 B
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .seal help
+ // 创建一个结果对象,并将 showHelp 标记为 true,这会自动给用户发送帮助
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ // 没有传入参数时的代码
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+};
注意:返回执行结果
在执行完自己的代码之后,需要返回指令结果对象,其参数是是否执行成功。
给消息发送者回应,需要使用 seal.replyToSender()
函数,前两个参数和 solve()
函数接收的参数一致,第三个参数是你要发送的文本。
发送的文本中,可以包含 变量(例如{$t玩家}
),也可以包含 CQ 码,用来实现回复发送者、@发送者、发送图片、发送分享卡片等功能。
在这个例子中,我们需要获取作为海豹名字的参数,获取不到就使用默认值,随后向消息发送者发送回应。
在刚刚的位置填入核心代码,就可以完成了。
cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 获取第一个参数,例如 .seal A B C
+ // 这里 cmdArgs.getArgN(1) 的结果即是 A,传参为 2 的话结果是 B
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .seal help
+ // 创建一个结果对象,并将 showHelp 标记为 true,这会自动给用户发送帮助
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ // 命令为 .seal XXXX,取第一个参数为名字
+ if (!val) val = '氪豹';
+ // 进行回复,如果是群聊发送那么在群里回复,私聊发送则在私聊回复 (听起来是废话文学,但详细区别见暗骰例子)
+ seal.replyToSender(ctx, msg, \`你抓到一只海豹!取名为\${val}\\n它的逃跑意愿为\${Math.ceil(Math.random() * 100)}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+};
第三步,将命令注册到扩展中。
ext.cmdMap['seal'] = cmdSeal;
如果你想要给这个命令起一个别名,也就是增加一个触发词,可以这样写:
ext.cmdMap['seal'] = cmdSeal; // 注册 .seal 指令
+ext.cmdMap['海豹'] = cmdSeal; // 注册 .海豹 指令,等效于 .seal
完整的代码如下:
// ==UserScript==
+// @name 示例:编写一条自定义指令
+// @author 木落
+// @version 1.0.0
+// @description 召唤一只海豹,可用.seal <名字> 命名
+// @timestamp 1671368035
+// 2022-12-18
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 编写一条自定义指令
+// 先将扩展模块创建出来,如果已创建就直接使用
+let ext = seal.ext.find('test');
+if (!ext) {
+ ext = seal.ext.new('test', '木落', '1.0.0');
+
+ // 创建指令 .seal
+ // 这个命令的功能为,显示「抓到一只海豹」的文案;
+ // 如果命令写 .seal ABC,那么文案中将海豹命名为「ABC」;
+ // 如果命令中没写名字,那么命名为默认值「氪豹」。
+ const cmdSeal = seal.ext.newCmdItemInfo();
+ cmdSeal.name = 'seal'; // 指令名字,可用中文
+ cmdSeal.help = '召唤一只海豹,可用 .seal <名字> 命名';
+
+ // 主函数,指令解析器会将指令信息解析,并储存在几个参数中
+ // ctx 主要是和当前环境以及用户相关的内容,如当前发指令用户,当前群组信息等
+ // msg 为原生态的指令内容,如指令文本,发送平台,发送时间等
+ // cmdArgs 为指令信息,会将用户发的信息进行分段,方便快速取用
+ cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ // 获取第一个参数,例如 .seal A B C
+ // 这里 cmdArgs.getArgN(1) 的结果即是 A,传参为 2 的话结果是 B
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .seal help
+ // 创建一个结果对象,并将 showHelp 标记为 true,这会自动给用户发送帮助
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ // 命令为 .seal XXXX,取第一个参数为名字
+ if (!val) val = '氪豹';
+ // 进行回复,如果是群聊发送那么在群里回复,私聊发送则在私聊回复 (听起来是废话文学,但详细区别见暗骰例子)
+ seal.replyToSender(ctx, msg, \`你抓到一只海豹!取名为\${val}\\n它的逃跑意愿为\${Math.ceil(Math.random() * 100)}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ };
+
+ // 将命令注册到扩展中
+ ext.cmdMap['seal'] = cmdSeal;
+
+ // 无实际意义,用于消除编译报错
+ export {}
+
+ seal.ext.register(ext);
+}
这就是最基本的模板了。
抽取牌堆的函数是 seal.deck.draw(ctx, deckName, shufflePool)
ctx
:MsgContext
类型,指令上下文,solve()
函数传进来的第一个参数deckName
:牌堆名称,字符串类型,例如 GRE单词
shufflePool
:是否放回抽取,布尔类型,true
为放回抽取,false
为不放回抽取返回值是一个 map
,包含以下字段:
exists
:布尔类型,是否抽取成功result
:字符串类型,抽取结果err
:字符串类型,抽取失败的原因// ==UserScript==
+// @name 抽取牌堆示例
+// @author SzzRain
+// @version 1.0.0
+// @description 用于演示如何抽取牌堆
+// @timestamp 1699077659
+// @license MIT
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 本脚本用于演示如何抽取牌堆, 共有两种实现方式
+if (!seal.ext.find('draw-decks-example')) {
+ const ext = seal.ext.new('draw-decks-example', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdDrawDecks = seal.ext.newCmdItemInfo();
+ cmdDrawDecks.name = 'dr';
+ cmdDrawDecks.help = '使用 .dr <牌堆名> 来抽取牌堆';
+ cmdDrawDecks.solve = (ctx, msg, cmdArgs) => {
+ // 抽取牌堆
+ // 参数1:ctx 参数2:牌堆名称 参数3:是否放回抽取
+ // 返回值:{exists: true, result: '抽取结果', err: '错误原因'}
+ const decks = seal.deck.draw(ctx, cmdArgs.getArgN(1), true);
+ // 判断是否抽取成功
+ if (decks['exists']) {
+ seal.replyToSender(ctx, msg, decks['result']);
+ return seal.ext.newCmdExecuteResult(true);
+ } else {
+ seal.replyToSender(ctx, msg, '抽取牌堆失败,原因:' + decks['err']);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ };
+ // 注册命令
+ ext.cmdMap['dr'] = cmdDrawDecks;
+
+ // 创建一个命令
+ const cmdDrawDecks2 = seal.ext.newCmdItemInfo();
+ cmdDrawDecks2.name = 'dr2';
+ cmdDrawDecks2.help = '使用 .dr2 <牌堆名> 来抽取牌堆';
+ cmdDrawDecks2.solve = (ctx, msg, cmdArgs) => {
+ // 抽取牌堆的另一种写法,使用 format 函数,由于经过了 rollvm 的处理,所以代码的执行效率会更慢
+ // 不过这种写法的返回值固定为字符串,省去了判断是否抽取成功的步骤
+ // 参数1:ctx 参数2:海豹语表达式,其中 #{DRAW-牌堆名称} 会被替换为抽取结果
+ const decks = seal.format(ctx, \`#{DRAW-\${cmdArgs.getArgN(1)}}\`);
+ seal.replyToSender(ctx, msg, decks);
+ }
+ // 注册命令
+ ext.cmdMap['dr2'] = cmdDrawDecks2;
+
+ // 注册扩展
+ seal.ext.register(ext);
+}
海豹中的权限等级,由高到低分别是:骰主,群主,管理员,邀请者,普通用户 和 黑名单用户。 每一个身份都有一个对应的数字,可以通过 ctx.privilegeLevel
获取当前用户的权限等级。 每个身份所对应的数字如下表所示:
身份 | 权限值 |
---|---|
骰主 | 100 |
白名单 | 70 |
群主 | 60 |
管理员 | 50 |
邀请者 | 40 |
普通用户 | 0 |
黑名单用户 | -30 |
提示:关于白名单用户
白名单用户即通过骰主手动添加的信任名单用户,可以使用所有需要群管理权限的功能,但不具备 Master 权限。
信任名单可以通过 .ban trust <统一ID>
添加,通过 .ban list trust
查看。
提示:关于黑名单用户
通常情况下你不需要考虑黑名单用户的情况,因为黑名单用户的消息会被过滤掉,不会触发任何指令。
// ==UserScript==
+// @name 权限识别样例
+// @author SzzRain
+// @version 1.0.0
+// @description 使用命令 .myperm 查看自己的权限
+// @timestamp 1699086084
+// @license MIT
+// @homepageURL https://github.com/Szzrain
+// ==/UserScript==
+if (!seal.ext.find('myperm')) {
+ const ext = seal.ext.new('myperm', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdMyperm = seal.ext.newCmdItemInfo();
+ cmdMyperm.name = 'myperm';
+ cmdMyperm.help = '使用 .myperm 展示我的权限';
+ cmdMyperm.solve = (ctx, msg, cmdArgs) => {
+ let text = "普通用户";
+ console.log(ctx.privilegeLevel);
+ switch (ctx.privilegeLevel) {
+ case 100:
+ text = "master";
+ break;
+ case 60:
+ text = "owner";
+ break;
+ case 50:
+ text = "admin";
+ break;
+ case 40:
+ text = "inviter";
+ break;
+ case -30:
+ // 黑名单用户,但是由于黑名单会被过滤掉,所以实际上这里并不会执行,这里只是为了演示
+ return seal.ext.newCmdExecuteResult(false);
+ }
+ seal.replyToSender(ctx, msg, text);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ // 注册命令
+ ext.cmdMap['myperm'] = cmdMyperm;
+
+ // 注册扩展
+ seal.ext.register(ext);
+}
添加:seal.ban.addBan(ctx, uid, place, reason)
移除:seal.ban.remove(ctx, uid)
ctx
:MsgContext
类型,指令上下文,solve()
函数传进来的第一个参数uid
:用户 ID,字符串类型,例如 QQ:123456789
, TG:123456789
place
:拉黑的地方,字符串类型,随便写,一般来说在群内拉黑就写群 IDreason
:拉黑原因,字符串类型,随便写添加:seal.ban.addTrust(ctx, uid, place, reason)
参数说明同上
移除:seal.ban.remove(ctx, uid)
提示:相同的移除函数
黑名单和信任名单存储在同一个数据库中,因此移除时使用的是同一个函数。
你在进行移除操作时需要自己判断是否符合你的预期。
使用 seal.ban.getList()
返回值为一个数组,数组中的每一项都是一个 BanListInfoItem
对象,包含以下字段:
id
:用户 ID,字符串类型name
:用户昵称,字符串类型score
:怒气值,整数类型rank
:拉黑/信任等级 0=没事 -10=警告 -30=禁止 30=信任times
:事发时间,数组类型,内部元素为整数时间戳reasons
:拉黑/信任原因,数组类型,内部元素为字符串places
:拉黑/信任的发生地点,数组类型,内部元素为字符串banTime
:拉黑/信任的时间,整数时间戳使用 seal.ban.getUser(uid)
如果用户没有在黑名单 / 信任名单中,返回值为空值。
如果有则返回一个 BanListInfoItem
对象,字段同上。
// ==UserScript==
+// @name js-ban
+// @author SzzRain
+// @version 1.0.0
+// @description 演示 js 扩展操作黑名单
+// @timestamp 1706684850
+// @license MIT
+// @homepageURL https://github.com/Szzrain
+// ==/UserScript==
+
+if (!seal.ext.find('js-ban')) {
+ const ext = seal.ext.new('js-ban', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdcban = seal.ext.newCmdItemInfo();
+ cmdcban.name = 'cban';
+ cmdcban.help = '使用.cban <用户id> 来拉黑目标用户,仅master可用';
+ cmdcban.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ seal.ban.addBan(ctx, val, "JS扩展拉黑", "JS扩展拉黑测试");
+ seal.replyToSender(ctx, msg, "已拉黑用户" + val);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cban'] = cmdcban;
+
+ // 创建一个命令
+ const cmdcunban = seal.ext.newCmdItemInfo();
+ cmdcunban.name = 'cunban';
+ cmdcunban.help = '使用.cunban <用户id> 来解除拉黑/移除信任目标用户,仅master可用';
+ cmdcunban.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ // 信任用户和拉黑用户存在同一个列表中,remove 前请先判断是否符合预期
+ seal.ban.remove(ctx, val);
+ seal.replyToSender(ctx, msg, "已解除拉黑/信任用户" + val);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cunban'] = cmdcunban;
+
+ // 创建一个命令
+ const cmdctrust = seal.ext.newCmdItemInfo();
+ cmdctrust.name = 'ctrust';
+ cmdctrust.help = '使用.ctrust <用户id> 来信任目标用户,仅master可用';
+ cmdctrust.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ seal.ban.addTrust(ctx, val, "JS扩展信任", "JS扩展信任测试");
+ seal.replyToSender(ctx, msg, "已信任用户" + val);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['ctrust'] = cmdctrust;
+
+ // 创建一个命令
+ const cmdcbanlist = seal.ext.newCmdItemInfo();
+ cmdcbanlist.name = 'cbanlist';
+ cmdcbanlist.help = '使用.cbanlist 来查看黑名单和信任列表,仅master可用';
+ cmdcbanlist.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ let text = "黑名单/信任列表:\\n";
+ seal.ban.getList().forEach((v) => {
+ text += \`\${v.name}(\${v.id}) 当前等级:\${v.rank} 怒气值:\${v.score}\\n\`;
+ });
+ seal.replyToSender(ctx, msg, text);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cbanlist'] = cmdcbanlist;
+
+ // 创建一个命令
+ const cmdcget = seal.ext.newCmdItemInfo();
+ cmdcget.name = 'cget';
+ cmdcget.help = '使用.cget <用户id> 来查看目标用户的黑名单/信任信息,仅master可用';
+ cmdcget.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel === 100) {
+ let info = seal.ban.getUser(val);
+ if (!info) {
+ seal.replyToSender(ctx, msg, "用户不存在或未被拉黑/信任");
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ let level = info.rank;
+ // 不知道为什么,用 === 是 false
+ if (info.rank == 30) {
+ level = "信任"
+ } else if (info.rank == -30) {
+ level = "拉黑"
+ } else if (info.rank == -10) {
+ level = "警告"
+ }
+ let text = \`用户\${info.name}(\${info.id}) 当前等级:\${level} 怒气值:\${info.score}\`;
+ seal.replyToSender(ctx, msg, text);
+ } else {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['cget'] = cmdcget;
+
+ // 注册扩展
+ seal.ext.register(ext);
+}
相关的 API 是两个函数,ExtInfo.storageSet(key, value)
函数和 ExtInfo.storageGet(key)
,一个存,一个取。
关于 key:
存储时需要指定 key,你可以设定为你的扩展的名字,也可以设定为其他的,注意不要和别的扩展的 key 重名就可以了。
就好比你在商场门口想要把随身物品存进暂存柜中,需要先找到个和别人不重复的柜子,避免放错地方或者取错东西。
关于 value:
存放的数据是字符串类型,且只能存一个,但如果想要存放更多的数据以及非字符串类型的数据怎么办?
答案是使用 JSON.stringify()
函数将存储了数据的 JS 对象转换为 JSON 字符串,存储起来,需要取出的时候,再使用 JSON.parse()
函数将数据再转换为 JS 对象。。
// ==UserScript==
+// @name 示例:存储数据
+// @author 木落
+// @version 1.0.0
+// @description 投喂,格式 .投喂 <物品>
+// @timestamp 1672423909
+// 2022-12-31
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 先将扩展模块创建出来,如果已创建就直接使用
+if (!seal.ext.find('test')) {
+ const ext = seal.ext.new('test', '木落', '1.0.0');
+
+ const cmdFeed = seal.ext.newCmdItemInfo();
+ cmdFeed.name = '投喂';
+ cmdFeed.help = '投喂,格式:.投喂 <物品>\\n.投喂 记录 // 查看记录';
+ cmdFeed.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help':
+ case '': {
+ // .投喂 help
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ case '列表':
+ case '记录':
+ case 'list': {
+ const data = JSON.parse(ext.storageGet('feedInfo') || '{}');
+ const lst = [];
+ for (let [k, v] of Object.entries(data)) {
+ lst.push(\`- \${k}: 数量 \${v}\`);
+ }
+ seal.replyToSender(ctx, msg, \`投喂记录:\\n\${lst.join('\\n')}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ default: {
+ const data = JSON.parse(ext.storageGet('feedInfo') || '{}');
+ const name = val || '空气';
+ if (data[name] === undefined) {
+ data[name] = 0;
+ }
+ data[name] += 1;
+ ext.storageSet('feedInfo', JSON.stringify(data));
+ seal.replyToSender(ctx, msg, \`你给海豹投喂了\${name},要爱护动物!\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ };
+
+ // 将命令注册到扩展中
+ ext.cmdMap['投喂'] = cmdFeed;
+ ext.cmdMap['feed'] = cmdFeed;
+
+ seal.ext.register(ext);
+}
这是关于数据的增加、删除、查询等操作的实现示例(修改的话就是删除之后增加)
// ==UserScript==
+// @name 群内安价收集
+// @author 憧憬少
+// @version 1.0.0
+// @description 在群内收集群友给出的安价选项,并掷骰得出结果
+// @timestamp 1676386517
+// 2023-02-14 22:55:17
+// @license MIT
+// @homepageURL https://github.com/ChangingSelf/sealdice-js-ext-anchor
+// ==/UserScript==
+
+(() => {
+ // src/index.ts
+ const HELP = \`群内安价收集 (ak 是アンカー罗马字缩写)
+注意 ak 后面有空格,“.ak”也可以换成“.安价”
+
+.ak help // 查看帮助
+.ak # 标题 // 新建一轮分歧并设标题
+.ak + 选项 // 需要添加的选项的内容
+.ak - 序号 // 需要移除的选项的序号
+.ak ? // 列出目前所有选项
+.ak = // 随机抽取 1 个选项并继续
+.ak = n // 随机抽取 n 个选项并继续
+\`;
+ const STORAGE_KEY = "anchor";
+ const OPTION_NUM_PER_PAGE = 15; // 列出所有选项时,每页放多少个选项
+ function akNew(ctx, msg, ext, title) {
+ const data = {
+ "title": title,
+ "options": []
+ };
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ seal.replyToSender(ctx, msg, \`已新建分歧:\${title}\`);
+ }
+ function akAdd(ctx, msg, ext, option) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ data.options.push(option);
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+已添加第\${data.options.length}个选项:\${option}\`);
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ }
+ function akDel(ctx, msg, ext, index) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ const removed = data.options.splice(index - 1, 1)[0];
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+已移除第\${index}个选项:\${removed}\`);
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ }
+ function akList(ctx, msg, ext) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ if (data.options.length === 0) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+还没有任何选项呢\`);
+ return;
+ }
+ let optStr = "";
+ let curPageRows = 0;
+ data.options.forEach((value, index) => {
+ optStr += \`\${index + 1}.\${value}
+\`;
+ ++curPageRows;
+ if (curPageRows >= OPTION_NUM_PER_PAGE) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+\${optStr}\`);
+ optStr = "";
+ curPageRows = 0;
+ }
+ });
+ if (curPageRows > 0) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+\${optStr}\`);
+ }
+ }
+ function randomInt(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ }
+ function akGet(ctx, msg, ext, num = 1) {
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+ if (data.options.length === 0) {
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}
+还没有任何选项呢\`);
+ return;
+ }
+ akList(ctx, msg, ext);
+ let optStr = "";
+ for (let i = 0; i < num; ++i) {
+ const r = randomInt(1, data.options.length);
+ const result = data.options.splice(r - 1, 1);
+ optStr += \`\${i + 1}.\${result}
+\`;
+ }
+ seal.replyToSender(ctx, msg, \`结果是:
+\${optStr}\`);
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+ }
+ function main() {
+ let ext = seal.ext.find("anchor");
+ if (!ext) {
+ ext = seal.ext.new("anchor", "憧憬少", "1.0.0");
+
+ const cmdSeal = seal.ext.newCmdItemInfo();
+ cmdSeal.name = "安价";
+ cmdSeal.help = HELP;
+ cmdSeal.solve = (ctx, msg, cmdArgs) => {
+ try {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case "#": {
+ const title = cmdArgs.getArgN(2);
+ akNew(ctx, msg, ext, title);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "+": {
+ const option = cmdArgs.getArgN(2);
+ akAdd(ctx, msg, ext, option);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "-": {
+ const index = Number(cmdArgs.getArgN(2));
+ akDel(ctx, msg, ext, index);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "?":
+ case "?": {
+ akList(ctx, msg, ext);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "=": {
+ let num = 1;
+ if (cmdArgs.args.length >= 2) {
+ num = Number(cmdArgs.getArgN(2));
+ }
+ akGet(ctx, msg, ext, num);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ case "help":
+ default: {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ }
+ } catch (error) {
+ seal.replyToSender(ctx, msg, error.Message);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ };
+ ext.cmdMap["安价"] = cmdSeal;
+ ext.cmdMap["ak"] = cmdSeal;
+
+ seal.ext.register(ext);
+ }
+ }
+ main();
+})();
关于取出数据来修改的函数,可以参考如下代码:
const STORAGE_KEY = "anchor"; // 将你的 key 抽出来单独作为一个常量,方便开发阶段修改(使用了之后就不要修改了)
+//函数:添加选项
+function akAdd(ctx, msg, ext, option) {
+ //取出数据
+ const data = JSON.parse(ext.storageGet(STORAGE_KEY) || '{"title":"","options":[]}');
+
+ //处理数据
+ data.options.push(option);
+
+ //响应发送者
+ seal.replyToSender(ctx, msg, \`当前分歧:\${data.title}\\n已添加第\${data.options.length}个选项:\${option}\`);
+
+ //将处理完的数据写回去
+ ext.storageSet(STORAGE_KEY, JSON.stringify(data));
+}
可以查看下文的 API。
如下:
// ==UserScript==
+// @name 示例:编写暗骰指令
+// @author 流溪
+// @version 1.0.0
+// @description 暗骰,格式.hide 原因
+// @timestamp 1671540835
+// 2022-12-20
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+if (!seal.ext.find('hide')){
+ const ext = seal.ext.new('hide','流溪','0.0.1');
+
+ const cmdHide = seal.ext.newCmdItemInfo;
+ cmdHide.name = 'hide';
+ cmdHide.help = '暗骰,使用 .hide 面数 暗骰';
+ cmdHide.solve = (ctx, msg, cmdArgs) => {
+ if (msg.messageType !== 'group'){
+ seal.replyToSender(ctx, msg, '暗骰只能在群内触发');
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ function rd(x){
+ // 这里写的时候有点不清醒了,感觉是对的,如果不对请拷打我
+ return Math.round(Math.random() * (x - 1) + 1);
+ }
+ let x = cmdArgs.getArgN(1);
+ if (x === 'help'){
+ return seal.ext.newCmdExecuteResult(true).showhelp = true;
+ } else if (isNaN(Number(x))){
+ // 我知道这里有更好的判断是否为数字的方法但是我不会.jpg
+ seal.replyToSender(ctx, msg, \`骰子面数应是数字\`);
+ return seal.ext.newCmdExecuteResult(true);
+ } else {
+ // 这就是暗骰 api 哒!
+ seal.replyPerson(ctx, msg, \`你在群\${msg.groupId}的掷骰结果为:\${rd(x)}\`);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ ext.cmdMap['hide'] = cmdHide;
+
+ seal.ext.register(ext);
+}
可以看到使用seal.replyPerson
做到暗骰的效果。
// ==UserScript==
+// @name 示例:编写代骰指令
+// @author 木落
+// @version 1.0.0
+// @description 捕捉某人,格式.catch <@名字>
+// @timestamp 1671540835
+// 2022-12-20
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+// 编写代骰指令
+// 先将扩展模块创建出来,如果已创建就直接使用
+if (!seal.ext.find('test')) {
+ const ext = seal.ext.new('test', '木落', '1.0.0');
+
+ // 创建指令 .catch
+ // 这个命令的功能为,显示“试图捕捉某人”,并给出成功率
+ // 如果命令写“.catch @张三”,那么就会试着捕捉张三
+ const cmdCatch = seal.ext.newCmdItemInfo();
+ cmdCatch.name = 'catch';
+ cmdCatch.help = '捕捉某人,格式.catch <@名字>';
+ // 对这个指令启用使用代骰功能,即@某人时,可获取对方的数据,以对方身份进行骰点
+ cmdCatch.allowDelegate = true;
+ cmdCatch.solve = (ctx, msg, cmdArgs) => {
+ // 获取对方数据,之后用 mctx 替代 ctx,mctx 下读出的数据即被代骰者的个人数据
+ const mctx = seal.getCtxProxyFirst(ctx, cmdArgs);
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ // 命令为 .catch help
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ const text = \`正在试图捕捉\${mctx.player.name},成功率为\${Math.ceil(Math.random() * 100)}%\`;
+ seal.replyToSender(mctx, msg, text);
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ };
+ // 将命令注册到扩展中
+ ext.cmdMap['catch'] = cmdCatch;
+
+ seal.ext.register(ext);
+}
主要使用 Fetch API 进行网络请求,详细文档见链接。fetch
函数返回一个 Promise,传统的写法是这样:
// 你可以使用 generator 来重写这段代码,欢迎 pr
+// 访问网址
+fetch('https://api-music.imsyy.top/cloudsearch?keywords=稻香').then((resp) => {
+ // 在返回对象的基础上,将文本流作为 json 解析
+ resp.json().then((data) => {
+ // 打印解析出的数据
+ console.log(JSON.stringify(data));
+ });
+});
你也可以使用异步编程(async/await)来简化代码:
const response = await fetch('https://api-music.imsyy.top/cloudsearch?keywords=稻香');
+if (!response.ok) {
+ // 处理不成功的请求...
+}
+const data = await response.json();
+console.log(JSON.stringify(data));
套用这个模板,你可以写出很多调用 API 的简单扩展。
比如核心代码只有一行的「随机猫猫图片」扩展:
seal.replyToSender(ctx, msg, \`[CQ:image,file=https://thiscatdoesnotexist.com/,cache=0]\`);
核心代码同样只有一行的「随机二次元图片」扩展:
seal.replyToSender(ctx, msg, \`[CQ:image,file=https://api.oick.cn/random/api.php?type=\${val},cache=0]\`);
当然,也有稍微复杂的,比如「AI 骰娘」扩展,但也没有太复杂,只是处理了一下发送者传过来的消息,再发送给网络 API,收到响应之后再回应发送者。
它的核心代码如下:
const BID = ''; // 填入你的骰娘的大脑的 id
+const KEY = ''; // 填入你的 key
+/**
+ * 给 AI 主脑发送消息并接收回复
+ * @param ctx 主要是和当前环境以及用户相关的内容,如当前发指令用户,当前群组信息等
+ * @param msg 为原生态的指令内容,如指令文本,发送平台,发送时间等
+ * @param message 要发送给骰娘的具体消息
+ */
+function chatWithBot(ctx,msg,message) {
+ fetch(\`http://api.brainshop.ai/get?bid=\${BID}&key=\${KEY}&uid=\${msg.sender.userId}&msg=\${message}\`).then(response => {
+ if (!response.ok) {
+ seal.replyToSender(ctx, msg, \`抱歉,我连接不上主脑了。它传递过来的信息是:\${response.status}\`);
+ return seal.ext.newCmdExecuteResult(false);
+ } else {
+ response.json().then(data => {
+ seal.replyToSender(ctx, msg, data["cnt"]);
+ return seal.ext.newCmdExecuteResult(true);
+ });
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ });
+}
// ==UserScript==
+// @name 示例:自定义 COC 规则
+// @author 木落
+// @version 1.0.0
+// @description 自设规则,出 1 大成功,出 100 大失败。困难极难等保持原样
+// @timestamp 1671886435
+// 2022-12-24
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+const rule = seal.coc.newRule();
+rule.index = 20; // 自定义序号必须大于等于 20,代表可用.setcoc 20 切换
+rule.key = '测试'; // 代表可用 .setcoc 测试 切换
+rule.name = '自设规则'; // 已切换至规则文本 name: desc
+rule.desc = '出 1 大成功\\n出 100 大失败';
+// d100 为出目,checkValue 为技能点数
+rule.check = (ctx, d100, checkValue) => {
+ let successRank = 0;
+ const criticalSuccessValue = 1;
+ const fumbleValue = 100;
+ if (d100 <= checkValue) {
+ successRank = 1;
+ } else {
+ successRank = -1;
+ }
+ // 成功判定
+ if (successRank == 1) {
+ // 区分大成功、困难成功、极难成功等
+ if (d100 <= checkValue / 2) {
+ //suffix = "成功(困难)"
+ successRank = 2;
+ }
+ if (d100 <= checkValue / 5) {
+ //suffix = "成功(极难)"
+ successRank = 3;
+ }
+ if (d100 <= criticalSuccessValue) {
+ //suffix = "大成功!"
+ successRank = 4;
+ }
+ } else {
+ if (d100 >= fumbleValue) {
+ //suffix = "大失败!"
+ successRank = -2;
+ }
+ }
+ let ret = seal.coc.newRuleCheckResult();
+ ret.successRank = successRank;
+ ret.criticalSuccessValue = criticalSuccessValue;
+ return ret;
+};
+// 注册规则
+seal.coc.registerRule(rule);
你是否因为自定义回复能实现的功能有限而烦恼?你是否因为自定义回复的匹配方式不全而愤怒?你是否因为自定义回复只能调用图片 API 而感到焦头烂额?
不要紧张,我的朋友,试试非指令关键词,这会非常有用。
通常情况下,我们使用 ext.onNotCommandReceived
作为非指令关键词的标志;这限定了只有在未收到命令且未达成自定义回复时,海豹才会触发此流程。
一个完整的非指令关键词模板如下:
// 必要流程,注册扩展,注意即使是非指令关键词也是依附于扩展的
+if (!seal.ext.find('xxx')){
+ const ext = seal.ext.new('xxx','xxx','x.x.x');
+ seal.ext.register(ext);
+ // 这里其实是编写处理函数
+ ext.onNotCommandReceived = (ctx, msg) => {
+ let message = msg.message;
+ // 这里请自己处理要如何达成 message 的匹配条件,js 那么多的匹配方法,足够你玩出花来。
+ if(xxx){
+ // 匹配到关键词了,要干什么?
+ xxx;
+ }
+ }
+}
插件若要在 UI 中注册可供用户修改的配置项,需要在插件注册后调用 seal.ext.registerXXXConfig()
函数注册配置项。
XXX
为配置项的类型,目前支持 string
、int
、float
、bool
、template
、option
六种类型。注意按照小驼峰命名法大写
同样的,插件也可以使用 seal.ext.getXXXConfig()
函数获取配置项的值。
你也可以直接使用 seal.ext.getConfig()
函数获取配置项的值,这个函数会返回一个 ConfigItem
对象, 包含了配置项的类型、值、默认值等信息。
ConfigItem
对象的类型定义如下,调用时请使用 jsbind
中的值作为 key
type ConfigItem struct {
+ Key string \`json:"key" jsbind:"key"\`
+ Type string \`json:"type" jsbind:"type"\`
+ DefaultValue interface{} \`json:"defaultValue" jsbind:"defaultValue"\`
+ Value interface{} \`json:"value,omitempty" jsbind:"value"\`
+ Option interface{} \`json:"option,omitempty" jsbind:"option"\`
+ Deprecated bool \`json:"deprecated,omitempty" jsbind:"deprecated"\`
+}
提示:更原始的 API
seal.ext.registerConfig()
函数也是可以使用的,你需要自己通过 seal.ext.newConfigItem()
来获取一个新的 ConfigItem
对象。
在对你的 ConfigItem
对象进行修改后,再调用 seal.ext.registerConfig()
函数进行注册。
// ==UserScript==
+// @name js-config-example
+// @author Szzrain
+// @version 1.0.0
+// @description 演示 js 配置项的用法
+// @timestamp 1698636875
+// @license MIT
+// ==/UserScript==
+
+if (!seal.ext.find('js-config-example')) {
+ const ext = seal.ext.new('js-config-example', 'SzzRain', '1.0.0');
+ // 创建一个命令
+ const cmdgetConfig = seal.ext.newCmdItemInfo();
+ cmdgetConfig.name = 'getconfig';
+ cmdgetConfig.help = '使用.getconfig <key> 来获取配置项,仅 master 可用';
+ cmdgetConfig.allowDelegate = true;
+ cmdgetConfig.solve = (ctx, msg, cmdArgs) => {
+ let val = cmdArgs.getArgN(1);
+ switch (val) {
+ case 'help': {
+ const ret = seal.ext.newCmdExecuteResult(true);
+ ret.showHelp = true;
+ return ret;
+ }
+ default: {
+ if (ctx.privilegeLevel !== 100) {
+ seal.replyToSender(ctx, msg, "你没有权限执行此命令");
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ switch (val) {
+ case "1":
+ strVal = seal.ext.getStringConfig(ext, "testkey1");
+ seal.replyToSender(ctx, msg, strVal);
+ break;
+ case "2":
+ intVal = seal.ext.getIntConfig(ext, "testkey2");
+ seal.replyToSender(ctx, msg, intVal);
+ break;
+ case "3":
+ floatVal = seal.ext.getFloatConfig(ext, "testkey3");
+ seal.replyToSender(ctx, msg, floatVal);
+ break;
+ case "4":
+ boolVal = seal.ext.getBoolConfig(ext, "testkey4");
+ seal.replyToSender(ctx, msg, boolVal);
+ break;
+ case "5":
+ tmplVal = seal.ext.getTemplateConfig(ext, "testkey5");
+ seal.replyToSender(ctx, msg, tmplVal);
+ break;
+ case "6":
+ optVal = seal.ext.getOptionConfig(ext, "testkey6");
+ seal.replyToSender(ctx, msg, optVal);
+ break;
+ default:
+ let config = seal.ext.getConfig(ext, val);
+ if (config) {
+ seal.replyToSender(ctx, msg, config.value);
+ } else {
+ seal.replyToSender(ctx, msg, "配置项不存在");
+ }
+ break;
+ }
+ return seal.ext.newCmdExecuteResult(true);
+ }
+ }
+ }
+ // 注册命令
+ ext.cmdMap['getconfig'] = cmdgetConfig;
+
+ // 注册扩展
+ seal.ext.register(ext);
+
+ // 注册配置项需在 ext 注册后进行
+ // 通常来说,register 函数的参数为 ext, key, defaultValue
+ seal.ext.registerStringConfig(ext, "testkey1", "testvalue");
+ seal.ext.registerIntConfig(ext, "testkey2", 123);
+ seal.ext.registerFloatConfig(ext, "testkey3", 123.456);
+ seal.ext.registerBoolConfig(ext, "testkey4", true);
+ seal.ext.registerTemplateConfig(ext, "testkey5", ["1", "2", "3", "4"]);
+ // 注册单选项函数的参数为 ext, key, defaultValue, options
+ seal.ext.registerOptionConfig(ext, "testkey6", "1", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]);
+}
注册后的配置项会在 UI 中显示,可以在 UI 中修改配置项的值
',11)),i("h2",F,[s[24]||(s[24]=a("注册定时任务 ")),k(n,{type:"tip",text:"v1.4.6"}),s[25]||(s[25]=a()),s[26]||(s[26]=i("a",{class:"header-anchor",href:"#注册定时任务","aria-label":'Permalink to "注册定时任务提示:Cron 表达式
如果你对 cron
或下文中提到的 Cron 表达式并不熟悉,可以参考 Linux crontab 命令 | 菜鸟教程 或 Cron 表达式 - 阿里云文档。
从 v1.4.6
版本开始,海豹核心新增了用于定时任务的 API。
seal.ext.registerTask(ext, taskType, value, func, key="", description="")
其各个参数的含义如下:
taskType: string
:registerTask
接受两种类型的定时任务表达式——使用 Cron 表达式或使用 hh:mm/h:mm
格式的「每日」任务。当使用前者时,taskType
应填入 "cron"
,而后者应填入 "daily"
。
value: string
:
taskType
填入 "cron"
时,value
应填入有效的 Cron 表达式,例如:"*/5 * * * *"
。registerTask
会根据 Cron 表达式定时执行 func
。taskType
填入 "daily"
时,value
应填入 hh:mm
或 h:mm
格式的时间,例如:"08:00"
、"3:00"
、"20:35"
。registerTask
会根据时间,每天定时执行 func
。func: (taskCtx: JsScriptTaskCtx) => void
:定时任务的实际执行函数。其中 taskCtx
的数据类型为:
type JsScriptTaskCtx {
+ now: number;
+ key: string;
+}
taskCtx.now
提供了 func
实际被唤起时的 Unix 时间戳;如果填写了可选参数 key
,taskCtx.key
则与之相同。
使用定时任务 API 的用户应该将实际业务逻辑放置在 func
内,定时任务 API 仅承担唤醒功能。
key: string
:可选参数。为此定时任务提供唯一索引。当填写了 key
时,此定时任务也会出现在 WebUI 的插件配置项中,可以通过 WebUI 修改定时任务表达式。
description: string
:可选参数。为此定时任务提供可读性更高的描述。当同时填写了 key
与 description
时,WebUI 的插件配置项中将会显示关于此定时任务的描述。
// 实现任意定时功能
+seal.ext.registerTask(ext, "cron", "* * * * *", (taskCtx) => {
+ // 检查当前时间点附近,尚未执行的所有任务
+ const tasks = getTasks(taskCtx.now, ext.StorageGet("tasks"));
+ for (const task of tasks) {
+ // 检查当前群聊中,插件功能是否开启
+ if (!checkGroupStatus(task.groupId, ext.storageGet("status"))) {
+ continue;
+ }
+ doTask(task);
+ }
+});
// 类似每日新闻
+seal.ext.registerTask(ext, "daily", "08:30", (taskCtx) => {
+ // 所有需要发送每日新闻的群聊
+ const groups = getGroups(ext.StorageGet("groups"));
+ for (const group of groups) {
+ sendDailyNews(group);
+ }
+}, "daily_news", "每天触发「每日新闻」的时间");
本节内容
本节将介绍如何为你的海豹核心编写和添加一个新的 TRPG 规则。包括编写规则模板和编写指令。
本文中将涉及使用 JavaScript 与 TypeScript 编写插件的内容。如果你尚未阅读 常见用法示例,请先阅读它。
在本节中,假设我们创建了一个叫做《摸鱼大赛》的 TRPG 规则,简称为 fish 规则。
每个角色有 2 个关键属性,即脸皮厚度和摸鱼技能等级。取值分别为 1 - 3,通过投掷 D3 来生成。
此外有生命值,生命值上限 = 脸皮厚度 * 2。
简单说:这是一个类 21 点游戏。
玩家的目标是尽可能使得自己的积分接近 21,但不能大于等于 22(因为摸到 22 就不存在了!)。
开始游戏时,每个玩家创建一个角色,可以互换交换一次属性点位置。
每一轮游戏中,每个玩家都要决定“摸鱼”和“不摸鱼”。如果选择摸鱼,获得 d6 + d(摸鱼等级) 的积分;如果选择不摸鱼,则跳过本回合。
如果选择摸鱼后累计积分超过 22,玩家自动消耗 1 点生命值、随机弃牌 1 张。如果累计积分仍大于 22,那么重复以上过程直到积分小于 22 或生命值归零。
如果生命值归零,此玩家就无法再摸鱼了。
当连续两轮所有玩家都选择不摸鱼时,游戏结束。积分最大的人取胜,如果积分相同,生命值更大的人取胜。
规则模板是海豹核心中几种功能的整合发展,包括角色卡、属性同义词、自动修改群名片等。
具体地说,规则模板能为 fish 规则提供以下功能:
在 set
指令 中注册这个游戏系统,可以直接使用 set fish
打开扩展并设定默认骰子为 D6;
在 st
指令中添加 fish 规则的角色卡,这包括:(对于以下内容,可以参考海豹核心内置的 CoC 7th 系统与 D&D 5e 系统角色卡的功能)
在 sn
指令 中添加 fish 规则的自动群名片格式,可以使用 sn fish
来开启。
你需要根据规则编写规则模板,并把规则中的动作编写成指令。
对于 fish 规则来说,指令应该实现以下动作:
另外,对于一个合适的指令,它也应提供帮助文本。
以上的规则模板和指令都可以在同一个 TypeScript 或 JavaScript 插件文件中完成。我们已经写了一个比较完善且有详细注释的示例,以供参考:
如果你希望直接尝试以上插件的效果,可以从以下链接获取经过编译的 JavaScript 文件:
',17)]))}const f=e(i,[["render",p]]);export{m as __pageData,f as default}; diff --git a/assets/advanced_js_gamesystem.md.ChCyDGWM.lean.js b/assets/advanced_js_gamesystem.md.ChCyDGWM.lean.js new file mode 100644 index 000000000..9f2992da4 --- /dev/null +++ b/assets/advanced_js_gamesystem.md.ChCyDGWM.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,a6 as s,o as l}from"./chunks/framework.B1keMFNq.js";const m=JSON.parse('{"title":"编写新的 TRPG 规则","description":"","frontmatter":{"lang":"zh-cn","title":"编写新的 TRPG 规则"},"headers":[],"relativePath":"advanced/js_gamesystem.md","filePath":"advanced/js_gamesystem.md","lastUpdated":1715601883000}'),i={name:"advanced/js_gamesystem.md"};function p(r,a,o,c,h,d){return l(),t("div",null,a[0]||(a[0]=[s('本节内容
本节将介绍如何为你的海豹核心编写和添加一个新的 TRPG 规则。包括编写规则模板和编写指令。
本文中将涉及使用 JavaScript 与 TypeScript 编写插件的内容。如果你尚未阅读 常见用法示例,请先阅读它。
在本节中,假设我们创建了一个叫做《摸鱼大赛》的 TRPG 规则,简称为 fish 规则。
每个角色有 2 个关键属性,即脸皮厚度和摸鱼技能等级。取值分别为 1 - 3,通过投掷 D3 来生成。
此外有生命值,生命值上限 = 脸皮厚度 * 2。
简单说:这是一个类 21 点游戏。
玩家的目标是尽可能使得自己的积分接近 21,但不能大于等于 22(因为摸到 22 就不存在了!)。
开始游戏时,每个玩家创建一个角色,可以互换交换一次属性点位置。
每一轮游戏中,每个玩家都要决定“摸鱼”和“不摸鱼”。如果选择摸鱼,获得 d6 + d(摸鱼等级) 的积分;如果选择不摸鱼,则跳过本回合。
如果选择摸鱼后累计积分超过 22,玩家自动消耗 1 点生命值、随机弃牌 1 张。如果累计积分仍大于 22,那么重复以上过程直到积分小于 22 或生命值归零。
如果生命值归零,此玩家就无法再摸鱼了。
当连续两轮所有玩家都选择不摸鱼时,游戏结束。积分最大的人取胜,如果积分相同,生命值更大的人取胜。
规则模板是海豹核心中几种功能的整合发展,包括角色卡、属性同义词、自动修改群名片等。
具体地说,规则模板能为 fish 规则提供以下功能:
在 set
指令 中注册这个游戏系统,可以直接使用 set fish
打开扩展并设定默认骰子为 D6;
在 st
指令中添加 fish 规则的角色卡,这包括:(对于以下内容,可以参考海豹核心内置的 CoC 7th 系统与 D&D 5e 系统角色卡的功能)
在 sn
指令 中添加 fish 规则的自动群名片格式,可以使用 sn fish
来开启。
你需要根据规则编写规则模板,并把规则中的动作编写成指令。
对于 fish 规则来说,指令应该实现以下动作:
另外,对于一个合适的指令,它也应提供帮助文本。
以上的规则模板和指令都可以在同一个 TypeScript 或 JavaScript 插件文件中完成。我们已经写了一个比较完善且有详细注释的示例,以供参考:
如果你希望直接尝试以上插件的效果,可以从以下链接获取经过编译的 JavaScript 文件:
',17)]))}const f=e(i,[["render",p]]);export{m as __pageData,f as default}; diff --git a/assets/advanced_js_project.md.DQF_PqQ6.js b/assets/advanced_js_project.md.DQF_PqQ6.js new file mode 100644 index 000000000..148b2083f --- /dev/null +++ b/assets/advanced_js_project.md.DQF_PqQ6.js @@ -0,0 +1,8 @@ +import{_ as o,c as p,a6 as n,G as a,w as i,j as s,B as d,o as h}from"./chunks/framework.B1keMFNq.js";const f=JSON.parse('{"title":"插件的工程化编写","description":"","frontmatter":{"lang":"zh-cn","title":"插件的工程化编写"},"headers":[],"relativePath":"advanced/js_project.md","filePath":"advanced/js_project.md","lastUpdated":1721283943000}'),c={name:"advanced/js_project.md"};function r(k,e,u,g,b,m){const l=d("PluginTabsTab"),t=d("PluginTabs");return h(),p("div",null,[e[4]||(e[4]=n('本节内容
本节将介绍如何使用 Node.js 项目编译出海豹可使用的插件,面向有前端经验的开发者。
我们假定你了解如何使用前端工具链,你应当具备诸如命令行、Node.js、npm/pnpm 等工具的使用知识。如果你对这些内容感到陌生,请自行了解或转至 使用单 JS 文件编写,手册不会介绍这些相关背景知识。
如果你打算使用 TypeScript,或者需要编写大型插件,希望更加工程化以方便维护,可以创建项目使用前端工具链来编译出插件。
海豹提供了相应的 模板项目。注册扩展和指令的代码已经写好,可以直接编译出一个可直接装载的 JS 扩展文件。
推荐的流程:
git clone
到本地,进行开发。如果不打算使用 GitHub 托管仓库,希望先在本地编写:
当插件开发完成后(或者开始开发时),你还需要修改几处地方:
header.txt
:这个文件是你插件的描述信息;tools/build-config.js
:最开头一行 var filename = 'sealdce-js-ext.js';
改成你中意的名字,注意不要与现有的重名。这决定了编译时输出的插件文件名。package.json
:修改其中 name
version
description
等项目描述信息,不过不修改也不会影响编译。在确认你所使用的包管理器后,在命令行使用如下命令安装依赖:
',14)),a(t,{sharedStateKey:"npm"},{default:i(()=>[a(l,{label:"npm"},{default:i(()=>e[0]||(e[0]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"npm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," install")])])])],-1)])),_:1}),a(l,{label:"pnpm"},{default:i(()=>e[1]||(e[1]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"pnpm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," install")])])])],-1)])),_:1})]),_:1}),e[5]||(e[5]=s("p",null,"当你写好了代码,需要工程编译为插件的单 js 文件以便上传到海豹骰时,在命令行使用如下命令:",-1)),a(t,{sharedStateKey:"npm"},{default:i(()=>[a(l,{label:"npm"},{default:i(()=>e[2]||(e[2]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"npm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," run"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," build")])])])],-1)])),_:1}),a(l,{label:"pnpm"},{default:i(()=>e[3]||(e[3]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"pnpm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," run"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," build")])])])],-1)])),_:1})]),_:1}),e[6]||(e[6]=n(`编译成功的 js 文件在 dist
目录下,默认的名字是 sealdce-js-ext.js
。
只列出其中主要的一些文件
src
index.ts
:你的扩展的代码就写在这个文件里。tools
build-config.js
:一些编译的配置,影响 index.ts
编译成 js 文件的方式;build.js
:在命令 npm run build
执行时所运行的脚本,用于读取 build-config
并按照配置进行编译。types
seal.d.ts
:类型文件,海豹核心提供的扩展 API。header.txt
:扩展头信息,会在编译时自动加到目标文件头部;package.json
:命令 npm install
时就在安装这个文件里面所指示的依赖包;tsconfig.json
:TypeScript 的配置文件。当然可以,像正常的前端项目一样,你可以在其中引用其他 npm 包,比如模板项目中就为你引入了常用的 lodash-es
。
一般来说纯 JS 编写的包都是可以引用的,一些强 native 相关的包可能存在兼容性问题,你需要自行尝试。
推荐你尽量使用 esm 格式的包,不过 commonjs 格式的包也是可以使用的,如 dayjs
。其他格式的支持和更多问题排查,请查阅模板项目所使用的构建工具 esbuild 的文档,tools/build-config.js
中即是 esbuild 的配置项。
types/seal.d.ts
文件中维护了海豹提供的 API,但目前来说维护的并不完全。如果你发现有一些存在的 API 未被提示,可以手动在 types/seal.d.ts
补上来解决报错。
有时 seal.d.ts
会有更新,可以去模板项目仓库看看有没有最新的,有的话可以替换到你的项目中。也非常欢迎你向模板仓库提 PR 来帮忙完善。
调整 tools/build-config.js
中的选项,关闭 minify:
module.exports = {
+ ...
+ build: {
+ ...
+ minify: false,
+ ...
+ }
+}
本节内容
本节将介绍如何使用 Node.js 项目编译出海豹可使用的插件,面向有前端经验的开发者。
我们假定你了解如何使用前端工具链,你应当具备诸如命令行、Node.js、npm/pnpm 等工具的使用知识。如果你对这些内容感到陌生,请自行了解或转至 使用单 JS 文件编写,手册不会介绍这些相关背景知识。
如果你打算使用 TypeScript,或者需要编写大型插件,希望更加工程化以方便维护,可以创建项目使用前端工具链来编译出插件。
海豹提供了相应的 模板项目。注册扩展和指令的代码已经写好,可以直接编译出一个可直接装载的 JS 扩展文件。
推荐的流程:
git clone
到本地,进行开发。如果不打算使用 GitHub 托管仓库,希望先在本地编写:
当插件开发完成后(或者开始开发时),你还需要修改几处地方:
header.txt
:这个文件是你插件的描述信息;tools/build-config.js
:最开头一行 var filename = 'sealdce-js-ext.js';
改成你中意的名字,注意不要与现有的重名。这决定了编译时输出的插件文件名。package.json
:修改其中 name
version
description
等项目描述信息,不过不修改也不会影响编译。在确认你所使用的包管理器后,在命令行使用如下命令安装依赖:
',14)),a(t,{sharedStateKey:"npm"},{default:i(()=>[a(l,{label:"npm"},{default:i(()=>e[0]||(e[0]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"npm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," install")])])])],-1)])),_:1}),a(l,{label:"pnpm"},{default:i(()=>e[1]||(e[1]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"pnpm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," install")])])])],-1)])),_:1})]),_:1}),e[5]||(e[5]=s("p",null,"当你写好了代码,需要工程编译为插件的单 js 文件以便上传到海豹骰时,在命令行使用如下命令:",-1)),a(t,{sharedStateKey:"npm"},{default:i(()=>[a(l,{label:"npm"},{default:i(()=>e[2]||(e[2]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"npm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," run"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," build")])])])],-1)])),_:1}),a(l,{label:"pnpm"},{default:i(()=>e[3]||(e[3]=[s("div",{class:"language-bash vp-adaptive-theme"},[s("button",{title:"Copy Code",class:"copy"}),s("span",{class:"lang"},"bash"),s("pre",{class:"shiki shiki-themes github-light github-dark vp-code",tabindex:"0"},[s("code",null,[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"}},"pnpm"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," run"),s("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"}}," build")])])])],-1)])),_:1})]),_:1}),e[6]||(e[6]=n(`编译成功的 js 文件在 dist
目录下,默认的名字是 sealdce-js-ext.js
。
只列出其中主要的一些文件
src
index.ts
:你的扩展的代码就写在这个文件里。tools
build-config.js
:一些编译的配置,影响 index.ts
编译成 js 文件的方式;build.js
:在命令 npm run build
执行时所运行的脚本,用于读取 build-config
并按照配置进行编译。types
seal.d.ts
:类型文件,海豹核心提供的扩展 API。header.txt
:扩展头信息,会在编译时自动加到目标文件头部;package.json
:命令 npm install
时就在安装这个文件里面所指示的依赖包;tsconfig.json
:TypeScript 的配置文件。当然可以,像正常的前端项目一样,你可以在其中引用其他 npm 包,比如模板项目中就为你引入了常用的 lodash-es
。
一般来说纯 JS 编写的包都是可以引用的,一些强 native 相关的包可能存在兼容性问题,你需要自行尝试。
推荐你尽量使用 esm 格式的包,不过 commonjs 格式的包也是可以使用的,如 dayjs
。其他格式的支持和更多问题排查,请查阅模板项目所使用的构建工具 esbuild 的文档,tools/build-config.js
中即是 esbuild 的配置项。
types/seal.d.ts
文件中维护了海豹提供的 API,但目前来说维护的并不完全。如果你发现有一些存在的 API 未被提示,可以手动在 types/seal.d.ts
补上来解决报错。
有时 seal.d.ts
会有更新,可以去模板项目仓库看看有没有最新的,有的话可以替换到你的项目中。也非常欢迎你向模板仓库提 PR 来帮忙完善。
调整 tools/build-config.js
中的选项,关闭 minify:
module.exports = {
+ ...
+ build: {
+ ...
+ minify: false,
+ ...
+ }
+}
本节内容
本节将介绍 JavaScript 脚本的编写的前置知识,更多内容请看 API 列表 和 常见用法示例,请善用侧边栏和搜索,按需阅读文档。
我们假定你熟悉 JavaScript / TypeScript,编程语言的教学超出了本文档的目的,如果你还不熟悉它们,可以从互联网上寻找到很多优秀的教程。如:
注意:你只需要学习 JavaScript 语言本身,不包括 WebAPI。
JavaScript(JS)虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多 非浏览器环境 中,例如 Node.js、Apache CouchDB、Adobe Acrobat 等。
—— 来自 MDN 文档
海豹的 JS 插件就是运行在一个非浏览器环境中—— goja 作为 JS 脚本引擎所提供的环境,该环境目前支持了 ES6 基本上全部的特性,包括 async/await
、promise
和 generator
等异步编程友好的特性。
除了 JS 语言规范所提供的 内置对象,海豹额外在环境中提供了如下全局对象:
seal
用于自定义扩展、增加指令、管理黑白名单……几乎所有与海豹本体有关的 API 都挂载在这个内置对象上。console
专门与海豹的日志模块进行交互。setTimeout/setInterval
等与事件循环相关的函数。fetch
用于网络请求。atob/btoa
用于 base64 编解码。警告
需要注意引擎的整型为 32 位,请小心溢出问题。
现在,让我们从最简单的扩展开始,这个扩展只会在日志中打印一条 Hello World!
。
新建一个 JS 文件,写入如下内容,然后通过海豹的 WebUI 上传并重载 JS 环境(或是直接复制到海豹 WebUI 的调试控制台中运行)。
// ==UserScript==
+// @name 示例:如何开始
+// @author 木落
+// @version 1.0.0
+// @description 这是一个演示脚本,并没有任何实际作用。
+// @timestamp 1671368035
+// 2022-12-18
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+console.log('Hello World!');
你应当能在控制台中观察到一条 Hello World 的日志。
提示:打印日志
console 打印出来的东西不仅会在控制台中出现,在日志中也会显示。
涉及网络请求或延迟执行的内容,有时候不会在控制台调试面板上显示出来,而在日志中能看到。
每个 JS 扩展需要在开头以固定格式注释的形式留下信息,以便使用和分享,这些信息通常被称为「插件元数据」:
// ==UserScript==
+// @name 脚本的名字
+// @author 木落
+// @version 1.0.0
+// @description 这是一个演示脚本,并没有任何实际作用。
+// @timestamp 1672066028
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// @depends SzzRain:demo:1.0.0
+// @sealVersion 1.4.5
+// ==/UserScript==
我们更推荐使用 TypeScript 来编写插件,编译到 ES6 后使用即可。不过先从 JavaScript 开始也是没有任何问题的。
编写插件时,可以下载海豹提供的 seal.d.ts 文件,将其保存在和你要编写的 JS 文件同级的目录下。
seal.d.ts
支持了在使用 vscode 等工具编写时,对海豹提供的 API 的代码补全。
提示
seal.d.ts
文件随时可能会有更新,如果你需要的 API 没有提示,可以检查一下是否是最新版本。
如果你打算使用 TypeScript,或者需要编写大型插件,希望更加工程化以方便维护,见 插件的工程化编写。
插件的工程化编写
插件的工程化编写是 为有一定经验的开发者准备的。相关文档默认你了解如何使用前端工具链,你应当具备诸如命令行、Node.js、npm/pnpm 等工具的使用知识。
如果你对上面的内容感到陌生,请自行了解或放弃使用,手册不会介绍相关内容。
使用单 JS 文件编写插件与使用模板工程编写本质上是没有区别的,并不会出现某些功能无法使用的差异。
指定依赖的格式为 作者:插件名[:SemVer版本约束,可选]
,其中 :
是分隔符,注意必须是半角符号。
例如,使用 @depends SzzRain:定时任务
,这意味着该插件需要同时安装一个名为 定时任务
,作者名为 SzzRain
的插件才可正常工作。
在上面的示例中,可以看见「SzzRain:每日新闻」通过 @depends
指明了其依赖 SzzRain:定时任务:>=2.0.0
。
版本限制是可选的,比如上面示例中的 >=2.0.0
,这表示 SzzRain:每日新闻
依赖于 SzzRain:定时任务
,且后者的版本必须大于等于 2.0.0
。这在你需要依赖高版本插件的情况下很有用。
插件名、作者、版本号
指定依赖插件涉及到对应的插件名、作者名和版本号,其为插件元数据中的 @name
、@author
和 @version
。
有更复杂的指定依赖版本需求?
除了上面提到的 >=2.0.0
之外,你还可以参阅海豹所使用的 go-semver 库的文档,来进行更复杂的限制。
比如 1.1.4-5.1.4
意味着指定的依赖版本需要在 1.1.4
和 5.1.4
之间。
但是,目标依赖的版本号需要符合 SemVer 才能更好的支持你进行版本限制。
依赖可以是多个,每一行指定一个 @depends
,这意味着这个插件需要同时满足所有的依赖才能工作。
例如我们给上面的「SzzRain:每日新闻」增加一个新的依赖:
// ==UserScript==
+// @name 每日新闻
+// @author SzzRain
+// @version 2.0.0
+// ...
+// @depends SzzRain:定时任务:>=2.0.0
+// @depends sealdice:强制依赖
此时,这个插件需要同时安装 SzzRain:定时任务
(且版本大于等于 2.0.0
)和 sealdice:强制依赖
这两个插件时,才能正常加载。
例如,当插件使用了在 1.4.6
新增的 API,可以指定目标海豹版本 @sealVersion 1.4.6
。而当加载该插件的海豹版本为 1.4.5
时,会向骰主提示海豹版本不兼容而拒绝加载。
兼容的海豹版本
插件作者只需要指定目标海豹版本即可,如 1.4.5
新增的 API 则指定 @sealVersion 1.4.5
。
海豹会尝试在兼容的情况下尽可能地加载插件,这是由海豹核心自动处理的。
VS Code 可以安装 SealDice Snippets 插件,提供了一些常见代码片段,帮助快速生成模板代码。
这个问题分为两个部分,如果你所说的其他编程语言为 Python、Lua 等与 JavaScript 无关的编程语言,那么目前是无法使用这些语言编写海豹插件的。如果你有一些其它骰系的插件(比如一些 Lua 插件),你只能通过按原逻辑重写为海豹 JavaScript 插件的方式来在海豹中使用。
但是有些编程语言是可以编译为 JavaScript 的,典型的像 TypeScript、CoffeeScript。这些语言在编写时使用它们自己,最后只要编译成 JavaScript 就可以在海豹中使用了。
',8))])}const j=d(u,[["render",v]]);export{x as __pageData,j as default}; diff --git a/assets/advanced_js_start.md.B95XU9oj.lean.js b/assets/advanced_js_start.md.B95XU9oj.lean.js new file mode 100644 index 000000000..169783cbb --- /dev/null +++ b/assets/advanced_js_start.md.B95XU9oj.lean.js @@ -0,0 +1,36 @@ +import{_ as d,c as h,a6 as l,j as a,a as e,G as i,w as n,B as p,o as k}from"./chunks/framework.B1keMFNq.js";const c="/sealdice-manual-next/assets/edit-jsscript-dts.j849kmdb.png",x=JSON.parse('{"title":"前言","description":"","frontmatter":{"lang":"zh-cn","title":"前言"},"headers":[],"relativePath":"advanced/js_start.md","filePath":"advanced/js_start.md","lastUpdated":1721287883000}'),u={name:"advanced/js_start.md"},g={tabindex:"0"},b={id:"依赖其他扩展",tabindex:"-1"},m={id:"目标海豹版本",tabindex:"-1"};function v(A,s,D,y,f,S){const t=p("Badge"),r=p("PluginTabsTab"),o=p("PluginTabs");return k(),h("div",null,[s[38]||(s[38]=l(`本节内容
本节将介绍 JavaScript 脚本的编写的前置知识,更多内容请看 API 列表 和 常见用法示例,请善用侧边栏和搜索,按需阅读文档。
我们假定你熟悉 JavaScript / TypeScript,编程语言的教学超出了本文档的目的,如果你还不熟悉它们,可以从互联网上寻找到很多优秀的教程。如:
注意:你只需要学习 JavaScript 语言本身,不包括 WebAPI。
JavaScript(JS)虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多 非浏览器环境 中,例如 Node.js、Apache CouchDB、Adobe Acrobat 等。
—— 来自 MDN 文档
海豹的 JS 插件就是运行在一个非浏览器环境中—— goja 作为 JS 脚本引擎所提供的环境,该环境目前支持了 ES6 基本上全部的特性,包括 async/await
、promise
和 generator
等异步编程友好的特性。
除了 JS 语言规范所提供的 内置对象,海豹额外在环境中提供了如下全局对象:
seal
用于自定义扩展、增加指令、管理黑白名单……几乎所有与海豹本体有关的 API 都挂载在这个内置对象上。console
专门与海豹的日志模块进行交互。setTimeout/setInterval
等与事件循环相关的函数。fetch
用于网络请求。atob/btoa
用于 base64 编解码。警告
需要注意引擎的整型为 32 位,请小心溢出问题。
现在,让我们从最简单的扩展开始,这个扩展只会在日志中打印一条 Hello World!
。
新建一个 JS 文件,写入如下内容,然后通过海豹的 WebUI 上传并重载 JS 环境(或是直接复制到海豹 WebUI 的调试控制台中运行)。
// ==UserScript==
+// @name 示例:如何开始
+// @author 木落
+// @version 1.0.0
+// @description 这是一个演示脚本,并没有任何实际作用。
+// @timestamp 1671368035
+// 2022-12-18
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// ==/UserScript==
+
+console.log('Hello World!');
你应当能在控制台中观察到一条 Hello World 的日志。
提示:打印日志
console 打印出来的东西不仅会在控制台中出现,在日志中也会显示。
涉及网络请求或延迟执行的内容,有时候不会在控制台调试面板上显示出来,而在日志中能看到。
每个 JS 扩展需要在开头以固定格式注释的形式留下信息,以便使用和分享,这些信息通常被称为「插件元数据」:
// ==UserScript==
+// @name 脚本的名字
+// @author 木落
+// @version 1.0.0
+// @description 这是一个演示脚本,并没有任何实际作用。
+// @timestamp 1672066028
+// @license Apache-2
+// @homepageURL https://github.com/sealdice/javascript
+// @depends SzzRain:demo:1.0.0
+// @sealVersion 1.4.5
+// ==/UserScript==
我们更推荐使用 TypeScript 来编写插件,编译到 ES6 后使用即可。不过先从 JavaScript 开始也是没有任何问题的。
编写插件时,可以下载海豹提供的 seal.d.ts 文件,将其保存在和你要编写的 JS 文件同级的目录下。
seal.d.ts
支持了在使用 vscode 等工具编写时,对海豹提供的 API 的代码补全。
提示
seal.d.ts
文件随时可能会有更新,如果你需要的 API 没有提示,可以检查一下是否是最新版本。
如果你打算使用 TypeScript,或者需要编写大型插件,希望更加工程化以方便维护,见 插件的工程化编写。
插件的工程化编写
插件的工程化编写是 为有一定经验的开发者准备的。相关文档默认你了解如何使用前端工具链,你应当具备诸如命令行、Node.js、npm/pnpm 等工具的使用知识。
如果你对上面的内容感到陌生,请自行了解或放弃使用,手册不会介绍相关内容。
使用单 JS 文件编写插件与使用模板工程编写本质上是没有区别的,并不会出现某些功能无法使用的差异。
指定依赖的格式为 作者:插件名[:SemVer版本约束,可选]
,其中 :
是分隔符,注意必须是半角符号。
例如,使用 @depends SzzRain:定时任务
,这意味着该插件需要同时安装一个名为 定时任务
,作者名为 SzzRain
的插件才可正常工作。
在上面的示例中,可以看见「SzzRain:每日新闻」通过 @depends
指明了其依赖 SzzRain:定时任务:>=2.0.0
。
版本限制是可选的,比如上面示例中的 >=2.0.0
,这表示 SzzRain:每日新闻
依赖于 SzzRain:定时任务
,且后者的版本必须大于等于 2.0.0
。这在你需要依赖高版本插件的情况下很有用。
插件名、作者、版本号
指定依赖插件涉及到对应的插件名、作者名和版本号,其为插件元数据中的 @name
、@author
和 @version
。
有更复杂的指定依赖版本需求?
除了上面提到的 >=2.0.0
之外,你还可以参阅海豹所使用的 go-semver 库的文档,来进行更复杂的限制。
比如 1.1.4-5.1.4
意味着指定的依赖版本需要在 1.1.4
和 5.1.4
之间。
但是,目标依赖的版本号需要符合 SemVer 才能更好的支持你进行版本限制。
依赖可以是多个,每一行指定一个 @depends
,这意味着这个插件需要同时满足所有的依赖才能工作。
例如我们给上面的「SzzRain:每日新闻」增加一个新的依赖:
// ==UserScript==
+// @name 每日新闻
+// @author SzzRain
+// @version 2.0.0
+// ...
+// @depends SzzRain:定时任务:>=2.0.0
+// @depends sealdice:强制依赖
此时,这个插件需要同时安装 SzzRain:定时任务
(且版本大于等于 2.0.0
)和 sealdice:强制依赖
这两个插件时,才能正常加载。
例如,当插件使用了在 1.4.6
新增的 API,可以指定目标海豹版本 @sealVersion 1.4.6
。而当加载该插件的海豹版本为 1.4.5
时,会向骰主提示海豹版本不兼容而拒绝加载。
兼容的海豹版本
插件作者只需要指定目标海豹版本即可,如 1.4.5
新增的 API 则指定 @sealVersion 1.4.5
。
海豹会尝试在兼容的情况下尽可能地加载插件,这是由海豹核心自动处理的。
VS Code 可以安装 SealDice Snippets 插件,提供了一些常见代码片段,帮助快速生成模板代码。
这个问题分为两个部分,如果你所说的其他编程语言为 Python、Lua 等与 JavaScript 无关的编程语言,那么目前是无法使用这些语言编写海豹插件的。如果你有一些其它骰系的插件(比如一些 Lua 插件),你只能通过按原逻辑重写为海豹 JavaScript 插件的方式来在海豹中使用。
但是有些编程语言是可以编译为 JavaScript 的,典型的像 TypeScript、CoffeeScript。这些语言在编写时使用它们自己,最后只要编译成 JavaScript 就可以在海豹中使用了。
',8))])}const j=d(u,[["render",v]]);export{x as __pageData,j as default}; diff --git a/assets/advanced_script.md.CSAoGEHA.js b/assets/advanced_script.md.CSAoGEHA.js new file mode 100644 index 000000000..6c63e1f37 --- /dev/null +++ b/assets/advanced_script.md.CSAoGEHA.js @@ -0,0 +1,44 @@ +import{_ as a,c as s,a6 as e,o as d}from"./chunks/framework.B1keMFNq.js";const g=JSON.parse('{"title":"内置脚本语言","description":"","frontmatter":{"lang":"zh-cn","title":"内置脚本语言"},"headers":[],"relativePath":"advanced/script.md","filePath":"advanced/script.md","lastUpdated":1718023895000}'),n={name:"advanced/script.md"};function p(c,t,o,l,i,r){return d(),s("div",null,t[0]||(t[0]=[e(`本节内容
本节将介绍海豹内置的脚本语言,请善用侧边栏和搜索,按需阅读文档。
为了在很多地方支持实现一些逻辑,但又不至于直接使用学习门槛较高的正式编程语言,海豹提供了一种简单易学的脚本语言,可以称为「海豹语」「豹语」等。
你可能注意到,在自定义文案等地方,出现了一些以 $t
开头的东西,这些是海豹中的变量。
变量的名称可以是汉字、字母和数字,$t
是一个特殊的变量前缀,还有其它的前缀。不同前缀代表不同的作用域:
变量名字 | 用途 | 举例 |
---|---|---|
普通名字 | 玩家的角色属性 | 理智、力量、智力 |
$t开头 | 个人临时变量,不存数据库 | $t随机点数 |
$m开头 | 个人变量,跨群存在 | $m今日人品 |
$g开头 | 群变量,群内所有人共享 | $g群主体重 |
所有变量均可以在 .rx
/ .rxh
/ .ra
/ .text
等指令以及「自定义文案」中使用。
注意:$t
是临时变量
$t
开头的临时变量的存活周期仅为单次指令执行,执行完毕后不应当认为该变量值还保留。
在下一次指令中使用上一次指令设置的 $t
变量属于未定义行为,可能会出现包括但不限于变量值不变,变量值丢失,变量值被覆盖,变量值变为随机数,变量值变成 114514
等任何情况。如果你需要这样的持久变量,请使用 $m
或 $g
代替。
内置的 $t
变量的值固定并不代表它们是持久变量,其值是在每次指令执行的初始阶段设置的。
提示:变量不生效?
如果一部分变量无效,请检查海豹是否为最新版本。
一些内置变量
变量名 | 内容 | 示例结果 |
---|---|---|
$t玩家 | 当前人物卡的名字,如果不存在则为群昵称或 QQ 昵称。 | <木落> |
$t玩家_RAW | 同上,但没有<> | 木落 |
$tQQ昵称 | QQ 昵称 | <木落> |
$t账号ID | 海豹格式的 ID | QQ:123456789 |
$t账号ID_RAW | 原始格式的 ID | 123456789 |
$tQQ | 海豹格式的 ID | QQ:123456789 |
$t群名 | 群名 | 海豹核心·SealDice 用户群 |
$t群号 | 海豹格式的 ID | QQ-Group:987654321 |
$t群号_RAW | 原始格式的 ID | 987654321 |
$t个人骰子面数 | 个人骰子面数 | 100 |
$tDate | 数字格式的现日期 | 20230109 |
$tYear | 数字格式的年份 | 2023 |
$tMonth | 数字格式的现月份 | 1 |
$tDay | 数字格式的现日期 | 9 |
$tWeekday | 数字格式的星期(1-7) | 1 |
$tHour | 数字格式的现时间(小时) | 15 |
$tMinute | 数字格式的现时间(分钟) | 41 |
$tSecond | 数字格式的现时间(秒) | 55 |
$tTimestamp | 数字格式的 10 位时间戳 | 1673250115 |
$t文本长度 | 触发消息的文本,汉字长度为 3,英文字母和数字长度为 1。 | 6 |
$t平台 | 触发的平台 | |
$t游戏模式 | 随 .set coc/dnd 改变 | coc7 |
$t消息类型 | 触发位置为群还是私聊(group/private) | group |
娱乐:今日人品 | 自定义文案 | <木落> 的今日人品为 0 |
常量:APPNAME | 软件名 | SealDice |
常量:VERSION | 版本号 | 1.4.0 |
$tMsgID | 消息 ID,仅自定义回复中可用。 | -123 |
所有自定义文案也均为可用变量。
// 注意,目前并不支持写注释,此为教程中便于展示
+// 文本类型
+$t0 = '文本'
+$t0 = "也是文本"
+$t0 = \`特殊文本类型,可以插入表达式,例如,玩家的力量数值: {力量}\`
+$t0 = \`另一种插入表达式的写法 {% 力量 %} \`
+
+// 数字类型
+$t0 = 1
+
+// 布尔类型:没有专门的布尔类型,0 或空字符串被视为 False,非零和非空字符串为 True
+$t0 > 1
+$t0 >= 1
+$t0 == 1
+$t0 != 1
+$t0 < 1
+$t0 <= 1
注意:务必区分 =
与 ==
混淆 =
与 ==
是小白常犯的错误之一。前者用于赋值而后者用于比较。当你试图在下文所述的条件算符或条件语句中,比较两个值时,需要使用 ==
。
多个语句可以用 ;
分隔,取分隔后的最后一项的值,为整个表达式的值,例如:
$t0 = 1;2;3
此时 $t0
的值为 3。
注意:分号的使用
不要在最后一条语句的后面再使用分号,会变得不幸。
// 正确写法
+if 1 {
+ $t0 = 1;
+ $t1 = 2
+}
+
+// 错误写法
+if 1 {
+ $t0 = 1;
+ $t1 = 2;
+}
加减乘除余 + - * / %
+乘方 ^ ** // 2 ** 3 或 2 ^ 3,即 2 的 3 次方
&& 逻辑与
+|| 逻辑或
+! 逻辑非
d
常规骰子算符,用法举例 d20
2d20k1
d20 优势
。
f
命运骰,随机骰 4 次,每骰结果可能是 -1 0 1,记为 - 0 +。
b
奖励骰 (CoC)。
p
惩罚骰 (CoC)。
c
双十字。
?
灵视 >= 40 ? '如果灵视达到40以上,你就能看到这句话'
可以用这个指令测试,下同:
.st 灵视 41
+.text {灵视 >= 40 ? '如果灵视达到 40 以上,你就能看到这句话'}
? ,
灵视 >= 80 ? '看得很清楚吗?',
+灵视 >= 50 ? '不错,再靠近一点……',
+灵视 >= 30 ? '仔细听……',
+灵视 >= 0 ? '呵,无知之人。'
应用举例,默认的 jrrp
{$t玩家} 今日人品为{$t人品},{%
+ $t人品 > 95 ? '人品爆表!',
+ $t人品 > 80 ? '运气还不错!',
+ $t人品 > 50 ? '人品还行吧',
+ $t人品 > 10 ? '今天不太行',
+ 1 ? '流年不利啊!'
+%}
? :
灵视 >= 40 ? '如果灵视达到 40 以上,你就能看到这句话' : '无知亦是幸运'
if $t0 > 10 {
+ $t1 = "aaa"
+} else {
+ $t1 = 'bbb'
+}
提示:出现格式化错误
如果上面的代码输出「格式化错误」,那是因为你的 $t0
不是数值。字符串当然不能和数值比较大小,所以会报错。
解决方法:.text {$t0=0}
实际测试:
.text {% if $t0 > 10 { $t1="aaa"} else { $t1 = 'bbb' }; $t1 %}
本节内容
本节将介绍海豹内置的脚本语言,请善用侧边栏和搜索,按需阅读文档。
为了在很多地方支持实现一些逻辑,但又不至于直接使用学习门槛较高的正式编程语言,海豹提供了一种简单易学的脚本语言,可以称为「海豹语」「豹语」等。
你可能注意到,在自定义文案等地方,出现了一些以 $t
开头的东西,这些是海豹中的变量。
变量的名称可以是汉字、字母和数字,$t
是一个特殊的变量前缀,还有其它的前缀。不同前缀代表不同的作用域:
变量名字 | 用途 | 举例 |
---|---|---|
普通名字 | 玩家的角色属性 | 理智、力量、智力 |
$t开头 | 个人临时变量,不存数据库 | $t随机点数 |
$m开头 | 个人变量,跨群存在 | $m今日人品 |
$g开头 | 群变量,群内所有人共享 | $g群主体重 |
所有变量均可以在 .rx
/ .rxh
/ .ra
/ .text
等指令以及「自定义文案」中使用。
注意:$t
是临时变量
$t
开头的临时变量的存活周期仅为单次指令执行,执行完毕后不应当认为该变量值还保留。
在下一次指令中使用上一次指令设置的 $t
变量属于未定义行为,可能会出现包括但不限于变量值不变,变量值丢失,变量值被覆盖,变量值变为随机数,变量值变成 114514
等任何情况。如果你需要这样的持久变量,请使用 $m
或 $g
代替。
内置的 $t
变量的值固定并不代表它们是持久变量,其值是在每次指令执行的初始阶段设置的。
提示:变量不生效?
如果一部分变量无效,请检查海豹是否为最新版本。
一些内置变量
变量名 | 内容 | 示例结果 |
---|---|---|
$t玩家 | 当前人物卡的名字,如果不存在则为群昵称或 QQ 昵称。 | <木落> |
$t玩家_RAW | 同上,但没有<> | 木落 |
$tQQ昵称 | QQ 昵称 | <木落> |
$t账号ID | 海豹格式的 ID | QQ:123456789 |
$t账号ID_RAW | 原始格式的 ID | 123456789 |
$tQQ | 海豹格式的 ID | QQ:123456789 |
$t群名 | 群名 | 海豹核心·SealDice 用户群 |
$t群号 | 海豹格式的 ID | QQ-Group:987654321 |
$t群号_RAW | 原始格式的 ID | 987654321 |
$t个人骰子面数 | 个人骰子面数 | 100 |
$tDate | 数字格式的现日期 | 20230109 |
$tYear | 数字格式的年份 | 2023 |
$tMonth | 数字格式的现月份 | 1 |
$tDay | 数字格式的现日期 | 9 |
$tWeekday | 数字格式的星期(1-7) | 1 |
$tHour | 数字格式的现时间(小时) | 15 |
$tMinute | 数字格式的现时间(分钟) | 41 |
$tSecond | 数字格式的现时间(秒) | 55 |
$tTimestamp | 数字格式的 10 位时间戳 | 1673250115 |
$t文本长度 | 触发消息的文本,汉字长度为 3,英文字母和数字长度为 1。 | 6 |
$t平台 | 触发的平台 | |
$t游戏模式 | 随 .set coc/dnd 改变 | coc7 |
$t消息类型 | 触发位置为群还是私聊(group/private) | group |
娱乐:今日人品 | 自定义文案 | <木落> 的今日人品为 0 |
常量:APPNAME | 软件名 | SealDice |
常量:VERSION | 版本号 | 1.4.0 |
$tMsgID | 消息 ID,仅自定义回复中可用。 | -123 |
所有自定义文案也均为可用变量。
// 注意,目前并不支持写注释,此为教程中便于展示
+// 文本类型
+$t0 = '文本'
+$t0 = "也是文本"
+$t0 = \`特殊文本类型,可以插入表达式,例如,玩家的力量数值: {力量}\`
+$t0 = \`另一种插入表达式的写法 {% 力量 %} \`
+
+// 数字类型
+$t0 = 1
+
+// 布尔类型:没有专门的布尔类型,0 或空字符串被视为 False,非零和非空字符串为 True
+$t0 > 1
+$t0 >= 1
+$t0 == 1
+$t0 != 1
+$t0 < 1
+$t0 <= 1
注意:务必区分 =
与 ==
混淆 =
与 ==
是小白常犯的错误之一。前者用于赋值而后者用于比较。当你试图在下文所述的条件算符或条件语句中,比较两个值时,需要使用 ==
。
多个语句可以用 ;
分隔,取分隔后的最后一项的值,为整个表达式的值,例如:
$t0 = 1;2;3
此时 $t0
的值为 3。
注意:分号的使用
不要在最后一条语句的后面再使用分号,会变得不幸。
// 正确写法
+if 1 {
+ $t0 = 1;
+ $t1 = 2
+}
+
+// 错误写法
+if 1 {
+ $t0 = 1;
+ $t1 = 2;
+}
加减乘除余 + - * / %
+乘方 ^ ** // 2 ** 3 或 2 ^ 3,即 2 的 3 次方
&& 逻辑与
+|| 逻辑或
+! 逻辑非
d
常规骰子算符,用法举例 d20
2d20k1
d20 优势
。
f
命运骰,随机骰 4 次,每骰结果可能是 -1 0 1,记为 - 0 +。
b
奖励骰 (CoC)。
p
惩罚骰 (CoC)。
c
双十字。
?
灵视 >= 40 ? '如果灵视达到40以上,你就能看到这句话'
可以用这个指令测试,下同:
.st 灵视 41
+.text {灵视 >= 40 ? '如果灵视达到 40 以上,你就能看到这句话'}
? ,
灵视 >= 80 ? '看得很清楚吗?',
+灵视 >= 50 ? '不错,再靠近一点……',
+灵视 >= 30 ? '仔细听……',
+灵视 >= 0 ? '呵,无知之人。'
应用举例,默认的 jrrp
{$t玩家} 今日人品为{$t人品},{%
+ $t人品 > 95 ? '人品爆表!',
+ $t人品 > 80 ? '运气还不错!',
+ $t人品 > 50 ? '人品还行吧',
+ $t人品 > 10 ? '今天不太行',
+ 1 ? '流年不利啊!'
+%}
? :
灵视 >= 40 ? '如果灵视达到 40 以上,你就能看到这句话' : '无知亦是幸运'
if $t0 > 10 {
+ $t1 = "aaa"
+} else {
+ $t1 = 'bbb'
+}
提示:出现格式化错误
如果上面的代码输出「格式化错误」,那是因为你的 $t0
不是数值。字符串当然不能和数值比较大小,所以会报错。
解决方法:.text {$t0=0}
实际测试:
.text {% if $t0 > 10 { $t1="aaa"} else { $t1 = 'bbb' }; $t1 %}
'+(i?a:Gt(a,!0))+`
+`:""+(i?a:Gt(a,!0))+`
+`}blockquote({tokens:t}){return`+${this.parser.parse(t)}+`}html({text:t}){return t}heading({tokens:t,depth:r}){return`
${this.parser.parseInline(t)}
+`}table(t){let r="",i="";for(let a=0;a${t}
`}br(t){return"An error occurred:
"+Gt(i.message+"",!0)+"";return r?Promise.resolve(n):n}if(r)return Promise.reject(i);throw i}};const ur=new yk;function ht(e,t){return ur.parse(e,t)}ht.options=ht.setOptions=function(e){return ur.setOptions(e),ht.defaults=ur.defaults,Dp(ht.defaults),ht};ht.getDefaults=Xo;ht.defaults=mr;ht.use=function(...e){return ur.use(...e),ht.defaults=ur.defaults,Dp(ht.defaults),ht};ht.walkTokens=function(e,t){return ur.walkTokens(e,t)};ht.parseInline=ur.parseInline;ht.Parser=ye;ht.parser=ye.parse;ht.Renderer=na;ht.TextRenderer=el;ht.Lexer=me;ht.lexer=me.lex;ht.Tokenizer=ra;ht.Hooks=Fi;ht.parse=ht;ht.options;ht.setOptions;ht.use;ht.walkTokens;ht.parseInline;ye.parse;me.lex;function Yp(e){for(var t=[],r=1;r
${(s=n.tokens)==null?void 0:s.map(i).join("")}
`:n.type==="space"?"":n.type==="html"?`${n.text}`:n.type==="escape"?n.text:`Unsupported markdown: ${n.type}`}return d(i,"output"),r.map(i).join("")}d(Xp,"markdownToHTML");function Zp(e){return Intl.Segmenter?[...new Intl.Segmenter().segment(e)].map(t=>t.segment):[...e]}d(Zp,"splitTextToChars");function Kp(e,t){const r=Zp(t.content);return rl(e,[],r,t.type)}d(Kp,"splitWordToFitWidth");function rl(e,t,r,i){if(r.length===0)return[{content:t.join(""),type:i},{content:"",type:i}];const[n,...a]=r,o=[...t,n];return e([{content:o.join(""),type:i}])?rl(e,o,a,i):(t.length===0&&n&&(t.push(n),r.shift()),[{content:t.join(""),type:i},{content:r.join(""),type:i}])}d(rl,"splitWordToFitWidthRecursion");function Qp(e,t){if(e.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return aa(e,t)}d(Qp,"splitLineToFitWidth");function aa(e,t,r=[],i=[]){if(e.length===0)return i.length>0&&r.push(i),r.length>0?r:[];let n="";e[0].content===" "&&(n=" ",e.shift());const a=e.shift()??{content:" ",type:"normal"},o=[...i];if(n!==""&&o.push({content:n,type:"normal"}),o.push(a),t(o))return aa(e,t,r,o);if(i.length>0)r.push(i),e.unshift(a);else if(a.content){const[s,l]=Kp(t,a);r.push([s]),l.content&&e.unshift(l)}return aa(e,t,r)}d(aa,"splitLineToFitWidthRecursion");function Zs(e,t){t&&e.attr("style",t)}d(Zs,"applyStyle");async function Jp(e,t,r,i,n=!1){const a=e.append("foreignObject");a.attr("width",`${10*r}px`),a.attr("height",`${10*r}px`);const o=a.append("xhtml:div");let s=t.label;t.label&&qr(t.label)&&(s=await fo(t.label.replace(Xr.lineBreakRegex,` +`),ct()));const l=t.isNode?"nodeLabel":"edgeLabel",c=o.append("span");c.html(s),Zs(c,t.labelStyle),c.attr("class",`${l} ${i}`),Zs(o,t.labelStyle),o.style("display","table-cell"),o.style("white-space","nowrap"),o.style("line-height","1.5"),o.style("max-width",r+"px"),o.style("text-align","center"),o.attr("xmlns","http://www.w3.org/1999/xhtml"),n&&o.attr("class","labelBkg");let h=o.node().getBoundingClientRect();return h.width===r&&(o.style("display","table"),o.style("white-space","break-spaces"),o.style("width",r+"px"),h=o.node().getBoundingClientRect()),a.node()}d(Jp,"addHtmlSpan");function Fa(e,t,r){return e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*r-.1+"em").attr("dy",r+"em")}d(Fa,"createTspan");function td(e,t,r){const i=e.append("text"),n=Fa(i,1,t);$a(n,r);const a=n.node().getComputedTextLength();return i.remove(),a}d(td,"computeWidthOfText");function xk(e,t,r){var o;const i=e.append("text"),n=Fa(i,1,t);$a(n,[{content:r,type:"normal"}]);const a=(o=n.node())==null?void 0:o.getBoundingClientRect();return a&&i.remove(),a}d(xk,"computeDimensionOfText");function ed(e,t,r,i=!1){const a=t.append("g"),o=a.insert("rect").attr("class","background").attr("style","stroke: none"),s=a.append("text").attr("y","-10.1");let l=0;for(const c of r){const h=d(f=>td(a,1.1,f)<=e,"checkWidth"),u=h(c)?[c]:Qp(c,h);for(const f of u){const p=Fa(s,l,1.1);$a(p,f),l++}}if(i){const c=s.node().getBBox(),h=2;return o.attr("x",c.x-h).attr("y",c.y-h).attr("width",c.width+2*h).attr("height",c.height+2*h),a.node()}else return s.node()}d(ed,"createFormattedText");function $a(e,t){e.text(""),t.forEach((r,i)=>{const n=e.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");i===0?n.text(r.content):n.text(" "+r.content)})}d($a,"updateTextContentAndStyles");function rd(e){return e.replace(/fa[bklrs]?:fa-[\w-]+/g,t=>``)}d(rd,"replaceIconSubstring");var Jr=d(async(e,t="",{style:r="",isTitle:i=!1,classes:n="",useHtmlLabels:a=!0,isNode:o=!0,width:s=200,addSvgBackground:l=!1}={},c)=>{if($.debug("XYZ createText",t,r,i,n,a,o,"addSvgBackground: ",l),a){const h=Xp(t,c),u=rd(Qr(h)),f=t.replace(/\\\\/g,"\\"),p={isNode:o,label:qr(t)?f:u,labelStyle:r.replace("fill:","color:")};return await Jp(e,p,s,n,l)}else{const h=t.replace(/本节内容
此处为海豹不再进行维护的文档索引,旧文档保留在此处。
本节内容
此处为海豹不再进行维护的文档索引,旧文档保留在此处。
本节内容
本节将针对先前未曾接触过计算机以及服务器,或者对计算机或服务器知之甚少的用户进行更易懂的科普,方便用户在提问的过程中表述得简单直接,减少因沟通产生的不必要的麻烦。
写在前面:为什么这个页面会诞生
如前篇「计算机相关科普」所说,用户群出现了预料之中但情理之外的问题。 如果说前篇的科普是知识层面的科普较多。那么,本篇的科普希望大家能知道如何方便自己也方便他人地提问、如何更快更便捷地自行排查问题等人文层面的科普。 当然,我们没有资格教屏幕前的你如何做人,这篇科普也一样,只是给你一个或许更好的建议,是否跟着这么做,取决于你。
开源,即 Open Source,简言之,就是把程序的源代码放在公共平台(如 GitHub 等),任何人都可以在开源许可协议允许的范围内下载、修改以及使用这份源代码。
开源程序,顾名思义就是开放了源代码在公共平台的程序。SealDice 就作为一个开源程序活动在大家的视线中。
所有 SealDice 用户群的群员、管理、甚至是开发者,都不具备未卜先知的能力,要求你发送截图也只是为了更好地了解你的问题究竟出在哪里。知道问题出在哪里之后,排查问题或复现 bug 就会更简单。这不仅方便了群员和管理回答你的问题,也有助于你更快地解决问题。
不提倡拍屏而是提倡截图的原因是,拍摄屏幕时会出现各种各样的问题:因拍摄角度而看不到部分信息、屏幕因反射光线而不能让摄像头拍到真正的图片(俗称反光),而截图能避免这些问题,给解决带来更高的效率。
注意:请做好截图保护!
如果需要发送截图,请在没有必须要展示的情况下隐藏好截图内可能存在的敏感信息,比如:IP 地址、端口号、文件夹内布局、密码/auth/key/salt 等。
最好的方式是通过在图片上加马赛克进行遮挡(俗称打码),不建议进行剪裁,除非敏感信息的范围过大。
群内「提问的智慧」文件已经说得足够清楚,但考虑到在看这个界面的你可能会对一些部分有所疑惑,所以,让我们用更易懂的方式解释它所想宣传的思想。
很多时候,SealDice 用户群里都在问几乎一样的问题,但是,这些问题的解决方法在很多地方写有,例如这个手册、群公告、群精华消息、乃至群内作为帮助骰的 @Dt.Dice Twenty 的自定义回复的触发词里也有许多你可能关心的问题在内。如果不知道方法的你通过这些途径知道了如何解决这个问题,并且自己解决了问题,一定会比在群里问群员快。如果真的按照了方法去做,仍然没有办法解决问题,这时再来询问,效率会更高。
自行排查问题的参考步骤
对于屏幕前或许没有编程经验的你,可以通过平日里学的「五要素」法则来思考遇到的程序错误问题。下面是一个可行的思考过程。
通过这样的思考过程,你即使猜测不出问题所在,也可以很好地通过复述这五个要素的思考过程向 SealDice 用户群的群员或管理员提问,让他们清晰地知道你的操作流程,更快地找到问题所在,为你解决问题。
时常,在 SealDice 用户群中会看到以下这样的问题
- 「呜呜我的骰子怎么不能用了」
- 「很急!我的骰子怎么突然不回复了急急急!」
- ……
我们非常能理解你以及问出这些问题的用户的心情,群员和管理也很希望能帮你解决问题,但是,无法通过第一眼就看到问题的来龙去脉,只会减慢排查问题和解决问题的速度,这不只是影响到群员、管理,更多的,其实是在耽误你个人的时间。
问题既然已经发生了,与其在用户群里发出主观情绪并且焦急地等待回答,不如先试试看自己解决(如上一条所说),实在是无法自己解决,就把这些问题完整地说出来,包括:你猜测的、问题发生的可能原因和你所尝试但是无法解决的措施,以及你使用的程序版本号,还有出现问题的完整截图发到用户群,或者带着这些去问其他有经验者,这样能比上面那些不能一眼看出问题的语句能让群员、管理更快速地知道问题所在,并且协助你排查问题、解决问题。
如果实在没有思路该如何说,下面是一个可以作为参考的问问题的方式,可以自行进行替换。
',21)),t("div",c,[e[2]||(e[2]=t("p",{class:"custom-block-title"},"一个便于理解的提问",-1)),t("p",null,[e[0]||(e[0]=s("我在使用 ")),r(o,{type:"tip",text:"x.y.z"}),e[1]||(e[1]=s(" 版本的海豹骰中,发现我的海豹骰的数据库文件的磁盘占用出现了无法通过重启解决的故障,它变得非常大,大概有 300 MB 这样的大小。但是我的骰子并没有如此大的数据量,它只是一个私骰。"))]),e[3]||(e[3]=t("p",null,"我试过对我的海豹骰进行重启,还有撤去一些自定义回复文件以及 JSON 牌堆文件,但是基本对数据库文件夹的异常磁盘占用问题没有效果。",-1)),e[4]||(e[4]=t("p",null,"我现在使用的是 Lagrange 分离部署,使用正向 WS 进行部署。",-1)),e[5]||(e[5]=t("p",null,"初步排查,我怀疑是海豹的数据库文件 data.db 出现了异常的问题,有知道这个解决办法的管理/群友来帮我看看吗?截图都在下面了",-1)),e[6]||(e[6]=t("p",null,"[相关截图]",-1))]),e[8]||(e[8]=a('群员、管理和开发者们都有自己的生活,SealDice 也只是兴趣的一部分。所以,在你的问题看起来没有获得回答的时候,保持耐心。当有群员或管理进一步地询问相关问题,也希望你能友善且相对客观地叙述问题,而不是对他们发泄自己的主观情绪,同时,配合他们进行操作,这样,问题才能更快速地解决。
如果你想要问的问题是新的、程序上的需求(例如希望加入一个新的接口),或者你的问题明确了是一个 bug,你希望 SealDice 开发组尽快满足这个需求或修复这个 bug,你可以通过在 GitHub 的 sealdice/sealdice-core 仓库中提交一个 issue,开发组的开发者们会通过讨论进行回复,并且,如果确定需要通过你的反馈对程序进行改动,也会更方便开发者们归档问题和修改程序。
以上就是提问的智慧中我们总结出的,要在 SealDice 用户社区里更快地解决问题,应该怎么做的办法。希望通过这样的办法,能让你更有效率地解决在部署 SealDice 的过程中遇到的问题。
GitHub 是多数开源程序发布代码的地方,SealDice 开发者们平时也通过 GitHub 查看用户的需求和 bug 反馈,同时对程序进行修改,并且在 GitHub 上同步发布更新。
所以,我们希望你如果真的非常需要加入功能、或者反馈 bug,可以自己试试看除了在 SealDice 用户群中向管理说明以外,额外地再提交一份 issue 到海豹的 GitHub 的代码仓库中,这会让开发者们可能记住这个问题,同时在程序中修复它。
对于如何提 issue、怎么样提 issue 不会被关闭,以及如何在 GitHub 上下载文件之类的问题,百度应该是你更好的选择。
希望你通过这两篇科普,能更清晰地知道如何提问 SealDice 相关的问题会更有效率。
',10))])}const v=i(p,[["render",d]]);export{q as __pageData,v as default}; diff --git a/assets/archive_archive-about-opensource.md.wJ2bE4SD.lean.js b/assets/archive_archive-about-opensource.md.wJ2bE4SD.lean.js new file mode 100644 index 000000000..9fc14501f --- /dev/null +++ b/assets/archive_archive-about-opensource.md.wJ2bE4SD.lean.js @@ -0,0 +1 @@ +import{_ as i,c as l,a6 as a,j as t,a as s,G as r,B as n,o as u}from"./chunks/framework.B1keMFNq.js";const q=JSON.parse('{"title":"开源程序相关","description":"","frontmatter":{"lang":"zh-cn","title":"开源程序相关"},"headers":[],"relativePath":"archive/archive-about-opensource.md","filePath":"archive/archive-about-opensource.md","lastUpdated":1728702230000}'),p={name:"archive/archive-about-opensource.md"},c={class:"info custom-block"};function d(g,e,b,h,m,k){const o=n("Badge");return u(),l("div",null,[e[7]||(e[7]=a('本节内容
本节将针对先前未曾接触过计算机以及服务器,或者对计算机或服务器知之甚少的用户进行更易懂的科普,方便用户在提问的过程中表述得简单直接,减少因沟通产生的不必要的麻烦。
写在前面:为什么这个页面会诞生
如前篇「计算机相关科普」所说,用户群出现了预料之中但情理之外的问题。 如果说前篇的科普是知识层面的科普较多。那么,本篇的科普希望大家能知道如何方便自己也方便他人地提问、如何更快更便捷地自行排查问题等人文层面的科普。 当然,我们没有资格教屏幕前的你如何做人,这篇科普也一样,只是给你一个或许更好的建议,是否跟着这么做,取决于你。
开源,即 Open Source,简言之,就是把程序的源代码放在公共平台(如 GitHub 等),任何人都可以在开源许可协议允许的范围内下载、修改以及使用这份源代码。
开源程序,顾名思义就是开放了源代码在公共平台的程序。SealDice 就作为一个开源程序活动在大家的视线中。
所有 SealDice 用户群的群员、管理、甚至是开发者,都不具备未卜先知的能力,要求你发送截图也只是为了更好地了解你的问题究竟出在哪里。知道问题出在哪里之后,排查问题或复现 bug 就会更简单。这不仅方便了群员和管理回答你的问题,也有助于你更快地解决问题。
不提倡拍屏而是提倡截图的原因是,拍摄屏幕时会出现各种各样的问题:因拍摄角度而看不到部分信息、屏幕因反射光线而不能让摄像头拍到真正的图片(俗称反光),而截图能避免这些问题,给解决带来更高的效率。
注意:请做好截图保护!
如果需要发送截图,请在没有必须要展示的情况下隐藏好截图内可能存在的敏感信息,比如:IP 地址、端口号、文件夹内布局、密码/auth/key/salt 等。
最好的方式是通过在图片上加马赛克进行遮挡(俗称打码),不建议进行剪裁,除非敏感信息的范围过大。
群内「提问的智慧」文件已经说得足够清楚,但考虑到在看这个界面的你可能会对一些部分有所疑惑,所以,让我们用更易懂的方式解释它所想宣传的思想。
很多时候,SealDice 用户群里都在问几乎一样的问题,但是,这些问题的解决方法在很多地方写有,例如这个手册、群公告、群精华消息、乃至群内作为帮助骰的 @Dt.Dice Twenty 的自定义回复的触发词里也有许多你可能关心的问题在内。如果不知道方法的你通过这些途径知道了如何解决这个问题,并且自己解决了问题,一定会比在群里问群员快。如果真的按照了方法去做,仍然没有办法解决问题,这时再来询问,效率会更高。
自行排查问题的参考步骤
对于屏幕前或许没有编程经验的你,可以通过平日里学的「五要素」法则来思考遇到的程序错误问题。下面是一个可行的思考过程。
通过这样的思考过程,你即使猜测不出问题所在,也可以很好地通过复述这五个要素的思考过程向 SealDice 用户群的群员或管理员提问,让他们清晰地知道你的操作流程,更快地找到问题所在,为你解决问题。
时常,在 SealDice 用户群中会看到以下这样的问题
- 「呜呜我的骰子怎么不能用了」
- 「很急!我的骰子怎么突然不回复了急急急!」
- ……
我们非常能理解你以及问出这些问题的用户的心情,群员和管理也很希望能帮你解决问题,但是,无法通过第一眼就看到问题的来龙去脉,只会减慢排查问题和解决问题的速度,这不只是影响到群员、管理,更多的,其实是在耽误你个人的时间。
问题既然已经发生了,与其在用户群里发出主观情绪并且焦急地等待回答,不如先试试看自己解决(如上一条所说),实在是无法自己解决,就把这些问题完整地说出来,包括:你猜测的、问题发生的可能原因和你所尝试但是无法解决的措施,以及你使用的程序版本号,还有出现问题的完整截图发到用户群,或者带着这些去问其他有经验者,这样能比上面那些不能一眼看出问题的语句能让群员、管理更快速地知道问题所在,并且协助你排查问题、解决问题。
如果实在没有思路该如何说,下面是一个可以作为参考的问问题的方式,可以自行进行替换。
',21)),t("div",c,[e[2]||(e[2]=t("p",{class:"custom-block-title"},"一个便于理解的提问",-1)),t("p",null,[e[0]||(e[0]=s("我在使用 ")),r(o,{type:"tip",text:"x.y.z"}),e[1]||(e[1]=s(" 版本的海豹骰中,发现我的海豹骰的数据库文件的磁盘占用出现了无法通过重启解决的故障,它变得非常大,大概有 300 MB 这样的大小。但是我的骰子并没有如此大的数据量,它只是一个私骰。"))]),e[3]||(e[3]=t("p",null,"我试过对我的海豹骰进行重启,还有撤去一些自定义回复文件以及 JSON 牌堆文件,但是基本对数据库文件夹的异常磁盘占用问题没有效果。",-1)),e[4]||(e[4]=t("p",null,"我现在使用的是 Lagrange 分离部署,使用正向 WS 进行部署。",-1)),e[5]||(e[5]=t("p",null,"初步排查,我怀疑是海豹的数据库文件 data.db 出现了异常的问题,有知道这个解决办法的管理/群友来帮我看看吗?截图都在下面了",-1)),e[6]||(e[6]=t("p",null,"[相关截图]",-1))]),e[8]||(e[8]=a('群员、管理和开发者们都有自己的生活,SealDice 也只是兴趣的一部分。所以,在你的问题看起来没有获得回答的时候,保持耐心。当有群员或管理进一步地询问相关问题,也希望你能友善且相对客观地叙述问题,而不是对他们发泄自己的主观情绪,同时,配合他们进行操作,这样,问题才能更快速地解决。
如果你想要问的问题是新的、程序上的需求(例如希望加入一个新的接口),或者你的问题明确了是一个 bug,你希望 SealDice 开发组尽快满足这个需求或修复这个 bug,你可以通过在 GitHub 的 sealdice/sealdice-core 仓库中提交一个 issue,开发组的开发者们会通过讨论进行回复,并且,如果确定需要通过你的反馈对程序进行改动,也会更方便开发者们归档问题和修改程序。
以上就是提问的智慧中我们总结出的,要在 SealDice 用户社区里更快地解决问题,应该怎么做的办法。希望通过这样的办法,能让你更有效率地解决在部署 SealDice 的过程中遇到的问题。
GitHub 是多数开源程序发布代码的地方,SealDice 开发者们平时也通过 GitHub 查看用户的需求和 bug 反馈,同时对程序进行修改,并且在 GitHub 上同步发布更新。
所以,我们希望你如果真的非常需要加入功能、或者反馈 bug,可以自己试试看除了在 SealDice 用户群中向管理说明以外,额外地再提交一份 issue 到海豹的 GitHub 的代码仓库中,这会让开发者们可能记住这个问题,同时在程序中修复它。
对于如何提 issue、怎么样提 issue 不会被关闭,以及如何在 GitHub 上下载文件之类的问题,百度应该是你更好的选择。
希望你通过这两篇科普,能更清晰地知道如何提问 SealDice 相关的问题会更有效率。
',10))])}const v=i(p,[["render",d]]);export{q as __pageData,v as default}; diff --git a/assets/archive_archive-guide.md.DJne-GJ-.js b/assets/archive_archive-guide.md.DJne-GJ-.js new file mode 100644 index 000000000..6e0d1f326 --- /dev/null +++ b/assets/archive_archive-guide.md.DJne-GJ-.js @@ -0,0 +1 @@ +import{_ as c,c as n,a6 as e,b as d,w as o,a7 as u,j as r,a as t,G as i,B as l,o as s}from"./chunks/framework.B1keMFNq.js";const x=JSON.parse('{"title":"计算机基础知识","description":"","frontmatter":{"lang":"zh-cn","title":"计算机基础知识"},"headers":[],"relativePath":"archive/archive-guide.md","filePath":"archive/archive-guide.md","lastUpdated":1728702230000}'),b={name:"archive/archive-guide.md"};function m(A,a,f,q,k,g){const h=l("Mermaid"),p=l("Badge");return s(),n("div",null,[a[3]||(a[3]=e('本节内容
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户快速查询一些常见问题以及对应的答案。本节不能代替权威解释或各项目的官方文档。
关于如何正确地提问,请看 如何正确提问;关于如何快速学习相关背景知识,请看 如何高效学习;关于特定的名词术语解释,请看 名词/术语速查表。
如果直接在解压缩应用(如 7zip
、WinRar
等)中双击运行压缩包内的 sealdice-core.exe
文件,意味着只有 sealdice-core.exe
这一个文件被解压出来了,而其他文件仍然在压缩包之中。海豹核心检测不到其他必要的文件,那么,就无法正常运行。因此,需要把压缩包解压之后再双击运行海豹核心。
解压压缩包需要解压缩的应用,上面已经陈述了一些应用,使用百度搜索一下,下载安装就可以了。
一般而言,用鼠标右击压缩包,再用鼠标左键单击弹出菜单中带有解压到
字样的选项就能解压这个压缩包。
一个建议
解压缩软件时常不会自动帮你创建文件夹,你可能需要自己新建文件夹。这个操作非常简单。
在希望解压的文件夹下单击鼠标右键,在弹出的菜单中找到新建文件夹
这个选项,左键单击它,然后输入你想要的文件夹名字,再按下键盘上的Enter
,就新建了一个文件夹。
而如果你想要指定这个压缩包解压到指定的文件夹,你可以右键单击压缩包后选择解压到…
,在弹出的界面上找到你希望压缩包解压到那里的文件夹,之后双击那个文件夹,最后点击确定,压缩包便解压到了你指定的文件夹。
对于内存不足的情况,需要具体问题具体分析。
翻译一下这里的报错:「在磁盘中没有足够的空间」。
很显然,这里的内存不足代指的是磁盘可存储的空间不足,这时候通常通过删除磁盘内部分不需要的文件,腾出空间就可以解决。
如果你在资源有限的小型计算机/服务器上部署海豹,并且你的海豹是公骰(存在大量用户)或加载了大量牌堆、自定义回复和/或插件,那么有可能出现海豹核心突然中断运行的情况。如果通过日志,排除了程序内部错误的可能性,那就有可能是由内存不足引起的。此处,内存指代的是「运行内存」。
可以在海豹运行时,通过 WebUI「日志」导航栏顶部的内存占用、Windows 平台下的任务管理器、Linux 平台下的 htop
等工具对海豹核心的内存使用量和占用比例进行监测,如果确实存在占用过高的情况,可以考虑减少用户群体、移除不常用的自定义回复/牌堆/插件、关闭其他未在使用的进程或更换资源更为充足的平台来解决问题。
注意:不要随意关闭你不认识的进程
只有在你完全确定某进程的用途与功能时,才能尝试关闭此进程。失误中断系统进程可能导致系统崩溃或其他隐患。
开源,即 Open Source,简言之,就是把程序的源代码放在公共平台(如 GitHub 等)并附加开源许可协议的行为,任何人都可以在开源许可协议允许的范围内下载、修改以及使用这份源代码。
开源程序,顾名思义就是开放了源代码在公共平台的程序。SealDice 就作为一个开源程序活动在大家的视线中。
所有 SealDice 用户群的群员、管理、甚至是开发者,都不具备未卜先知的能力,要求你发送截图也只是为了更好地了解你的问题究竟出在哪里。知道问题出在哪里之后,排查问题或复现 bug 就会更简单。这不仅方便了群员和管理回答你的问题,也有助于你更快地解决问题。
不提倡拍屏而是提倡截图的原因是,拍摄屏幕时会出现各种各样的问题:因拍摄角度而看不到部分信息、屏幕因反射光线而不能让摄像头拍到真正的图片(俗称反光),而截图能避免这些问题,给解决带来更高的效率。
注意:请做好截图保护!
如果需要发送截图,请在没有必须要展示的情况下隐藏好截图内可能存在的敏感信息,比如:IP 地址、端口号、文件夹内布局、密码/auth/key/salt 等。
最好的方式是通过在图片上加马赛克进行遮挡(俗称打码),不建议进行剪裁,除非敏感信息的范围过大。
GitHub 是多数开源程序发布代码的地方,SealDice 开发者们平时也通过 GitHub 查看用户的需求和 bug 反馈,同时对程序进行修改,并且在 GitHub 上同步发布更新。
所以,我们希望你如果真的非常需要加入功能、或者反馈 bug,可以自己试试看除了在 SealDice 用户群中向管理说明以外,额外地再提交一份 issue 到海豹的 GitHub 的代码仓库中,这会让开发者们可能记住这个问题,同时在程序中修复它。
对于如何提 issue、怎么样提 issue 不会被关闭,以及如何在 GitHub 上下载文件之类的问题,百度应该是你更好的选择。
注意:海豹手册已于 2024 年 8 月 7 日停止维护以下内容,以下内容归档于 2024 年 8 月 7 日。
归档原因:海豹开发组认为,这样的页面与 SealDice 完全没有关系。教授如何高效学习亦不是海豹手册应该去做的事。
本节内容
本节为计算机小白指南中的第二部分。
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户在遇到不理解的教程、名词或操作时,能够高效学习上手相关知识。
关于如何正确地提问,请看 如何正确提问;关于一些小白常见的问题,请看 计算机小白常见问题;关于特定的名词术语解释,请看 名词/术语速查表。
如果你从未接触过计算机以及服务器,那么不免会对本手册中的大量概念感到陌生。一些看起来详尽的指导细细读来却可能完全看不懂。我们不希望你就此放弃,以至于错失了一个全新的、有趣的世界;我们也不希望你放弃自己思考的权利,将一切不明了的问题诉诸他人的帮助。因此,我们撰写了本篇文档,希望能够帮助你掌握一些快速学习新知识的小技巧。
无论是帮助文档、程序日志还是网络资源,英语目前是,并且在未来很长一段时间里仍将是,主流的语言。因此,提高你的英文水平,不仅可以帮助你看懂程序日志上的故障原因(这样你就能自己解决问题),还可以让你看到更高效地获取那些有用的信息(比如下文里写到的那些)。
因此,如果你仍在上学,英语学习得再努力一点,终将有所回报。如果你不得不在短时间内理解特定的英文内容,那常备翻译器显然是一个好选择。
当遇到不理解的概念时,我们的第一反应往往是去搜索引擎寻求答案。但是,如果你正在解决特定项目中遇到的问题,不妨先看看此项目的帮助文档、常见问题(FAQ)和 GitHub 上的 Issue。
一个合理的开源项目,往往都具备相对详尽的帮助文档,描述了使用这个项目的过程中可能涉及的方方面面。例如,你正在阅读的就是海豹骰点核心的用户手册,亦即帮助文档。帮助文档通常包含了各个项目从部署到使用的一系列教程,在你具备相关背景的情况下,阅读帮助文档远比直接使用搜素引擎高效得多,因为帮助文档中提供的信息都是服务于特定项目的,而搜索引擎往往只能找到泛化的知识。
常见问题也是众多开源项目都拥有的页面,例如本手册中的 计算机小白常见问题 和 常见问题 两个页面。这些页面中,通常包含使用此项目的用户高频提出的问题,而你遇到的情况,很有可能在其中就有所描述。因此,如果在手册的一般教程中没能找到答案,访问常见问题页面或许可以解决你的问题。
如果你不知道 Issue 是什么,可以点击本部分第一段中的超链接查看。Issue 通常包含了此开源项目的用户所遇到的问题、发现的可能的 Bug 和提出的功能请求。Issue 页面就像一个讨论区,你很可能找到一些使用上的问题,大多数情况下都会有热心的网友在页面下方给出他们的解决方案。如果你发现你的问题在 Issue 列表中存在,并且存在 Bug 的字样,那么很有可能你遇到的是此项目的已知问题。安心等待开发者解决就好,或者你也可以学习编程,为修复此 Bug 做出贡献。如果你发现你的问题在 Issue 列表中存在,并且存在 Feature Request 或 Enahncement 的字样,那么说明你需要的功能目前尚未实现,并且已经有其他用户向开发者请求加入此功能。你可以给此 Issue 点赞或评论,或许可以增加此功能的优先级,但切忌评论轰炸。在 Issue 中反复刷屏同样的内容只会带来负面后果。同样地,或许你也可以学习编程,为提供此功能做出贡献。
另外,你可能已经注意到了,本手册特别提供了 名词/术语速查表。在求助搜索引擎或用户群之前,可以看看里面是否已经包含了你想了解的概念。在速查表中,我们尽力提供了深度恰到好处的知识,不至于过于专业,但又足够你解决问题。如果你想改进速查表的内容,你可以提出一个 PR。如果你不知道 PR 是什么,那么可以按照本页后续的内容,将这作为你的第一个新知识开始学习。
如果你知道如何访问 Google,那么请使用 Google 进行搜索。如果你英文足够熟练,那么请使用英文进行搜索。
百度(还有 CSDN)永远不会是你学习计算机领域知识的最佳选择。一个更高效、搜索结果偏见更少的搜索引擎能显著提高你的信息获取效率。当然,如果你无法访问 Google,那么必应(Bing)海外版或许是一个尚可接受的选择。
如果你无法访问上述资源,那么在国内众多的内容平台中,学会筛选更可靠的平台也将大大提高你的知识获取效率。通常来说,技术型的个人博客和知乎平台具有相对优质的内容。如果你发现某个页面包含你需要的信息,但排版混乱或内容过于老旧已经不再适用,你可以尝试在内容的开头和结尾去寻找原文链接。通常这类文章是搬运而来,而其出处往往具有更优质的排版,有时原作者也会对其进行更新。
另一方面,互联网上的英文内容数量是具有压倒性的优势的,如果你能用英文提出问题,那么就有更大的概率直接检索到问题的解决方案。从类似 Stack Overflow 的问答网站到个人博客,你在中文互联网上找到的技术性信息,许多都源于对这些外文内容的翻译和多次搬运。因此,与其拾人牙慧,不如直抵源头。
随着大语言模型的兴起,AI 也可以是你「搜索」的对象。它们往往能比传统搜索更快地获得信息。但是,你应该永远对 AI 生成的内容心存警惕。在「幻觉」问题尚未得到有效解决之前,AI 的每一个回复都有可能是真材实料的信息,也有可能是胡编乱造。因此,在严肃场合,你不应该不加校验地使用 AI 生成的内容。
在学习新概念的过程中,我们很可能遇到用于解释新概念的描述中,也包含着我们不理解的知识的情况。如图所示,深度优先的学习即是每遇到一个新概念,都重新去查找学习这个概念所包含的下属知识,直到对每一个细节再无疑惑的方式。
例如:
一个小例子
你可能想编写一个能够在用户发出符合某种规则的消息时,针对性地进行自定义回复的功能。通过搜素自定义回复,你找到了海豹手册的 自定义回复教程。
在触发条件部分,你发现你可能需要学习正则表达式,于是你访问了教程开头的链接,或者在搜索引擎中查找了正则表达式教程。
在正则表达式教程中,你发现 \\s
可以用于匹配 whitespace,于是你搜索引擎中开始查找 what does whitespace mean……
如果你只使用深度优先的方式学习知识,那么当你最终回到一开始的目的(比如写一个自定义回复)时,你应该已经掌握了隐藏在触发条件与回复结果背后的全部知识,从此只要是自定义回复能实现的功能,对你来说都不再有任何困难。
然而,可以预见的,随着学习的不断深入,你需要学习的内容会爆炸式增长。所以,皓首穷经地学习每一个细节真的值得么……?
与深度优先学习相反,广度优先的学习即是在遇到新概念时,大致了解其含义,便开始学习下一项内容。
例如:
又一个小例子
你遇到了一些故障,在用户群里有人和你说
你在运行海豹的终端把日志截图一下。
你不知道终端是什么意思,于是你在 名词/术语速查表 中翻阅了一下。虽然你对什么是 Shell、什么是命令行一知半解,但是你差不多知道他指的是那个在电脑上弹出来的黑框框。
于是你又看了一眼日志是什么意思。虽让你搞不懂什么 Warning 与 Error,但你知道黑框框里那堆文字就是日志。
最后,因为你从没在电脑上截屏过,你去搜索了一下,找到了 Snipaste 这一截图工具。把黑框框里的文字截图发了出去。
如果你只使用广度优先的方式学习知识,那么可能你很快就能达成一开始的目的。
然而,你对所有涉及的概念都一知半解。如果再遇到类似的问题,尽管可能只需要你做相似的操作,由于你并没有领会每一个细节,你依然不得不求助于人。所以,这样草草浏览知识真的正确么……?
在实际学习新知的过程中,两种方法往往是相辅相成的,另外,实践永远是学习的最佳方法。
你通常需要以深度优先的方式,了解一个概念背后的一些细节,直到这些细节足够你应对眼前的问题和未来可能遇到的相似的问题,然后转向下一个概念进行学习。执着于过于深入的细节只会拖慢你的学习速度,因此,在合适的位置停下是最为高效的方案。
同时,在脑海中思考千遍,不如把手放在键盘上,尝试敲出你理解的方案。程序实际运行时给出的反馈,会大大帮助你找到正确的方向,而闭门造车只会延长你设计方案到发现错误的时间
以上就是我们总结出的,要在使用 SealDice 时更快地学习新概念的办法。希望通过这样的办法,能让你更有效率地解决在部署 SealDice 的过程中遇到的问题。
也希望你通过本系列科普有所收获。
注意:海豹手册已于 2024 年 8 月 7 日停止维护以下内容,以下内容归档于 2024 年 8 月 7 日。
归档原因:海豹开发组认为,提问的智慧
一书中已经写明该如何提问,海豹手册不应该分走大部分篇幅去讲述应该如何提问。
本节内容
本节为计算机小白指南中的第一部分。
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户问出更加明晰高效的问题,减少因沟通产生的不必要的麻烦。
关于如何快速学习相关背景知识,请看 如何高效学习;关于一些小白常见的问题,请看 计算机小白常见问题;关于特定的名词术语解释,请看 名词/术语速查表。
自近期用户量剧增后,SealDice 用户群的社区氛围似乎又有些不尽如人意,预料之中而情理之外的事情又再次发生了,我们觉得,用户需要这样一个科普性质的界面。如果在不知道如何在用户群提问能尽量干脆利落,或者不清楚某些术语该怎么说的情况下,能想到这个系列就最好了。
当然,我们没有资格教屏幕前的你如何做人,这篇科普也一样,只是给你一个或许更好的建议,是否跟着这么做,取决于你。
在计算机技术领域内,《提问的智慧》一文广为流传。如果你想认真地学习如何问出一个好问题,强烈建议全文阅读此文章。在用户群的群文件中,也提供了此文章的文件。
当然,海豹用户群的群员们并不会如此严苛,如果你暂时没有时间完整地阅读上述文章,那么认真读完本节也足够你在海豹用户群中问出一个好问题。
对于屏幕前或许没有编程经验的你,可以通过平日里学的「五要素」法则来思考遇到的程序错误问题。下面是一个可行的思考过程。
通过这样的思考过程,你即使猜测不出问题所在,也可以很好地根据这五个要素的思考过程组织问题,让回答者清晰地知道你的操作流程,更快地找到问题所在,为你解决问题。
阅读本手册,尤其是 计算机小白常见问题 和 常见问题 两个页面。使用页面左上角的搜索按钮有助于提高你的信息效率。
用户群的群公告、群精华消息和历史聊天记录中,有可能找到你问题的答案。
关于如何高效地进行搜索可以参考 如何高效学习 一节中,高效搜索 小节。
你在解决问题时所做的努力——无论仅仅是搜索还是尝试了具体的操作、无论是有效的还是无效的,都将帮助回答者更有效地了解你的背景信息。因此,记住你所做的,并按照下文中的指导,附加在问题中。
本部分中将会为一些涉及的要素提供正例与反例,正例并不意味着一个好问题(它是一个好问题的一部分),但反例显然不应该出现在你的问题里。另一方面,如果你的问题并不涉及某个的要素,那就不要强行加入这个要素。
如果你想要让海豹实现某些功能,那么请尽可能清晰完整地描述你想实现的功能。如果你在实现某功能的过程中遇到了麻烦,或者一些你认为本该正常运行的功能表现得不正常,那么请尽可能详细地描述你遇到的困境。
以下是一些合适的措辞:
我希望写一个插件,在用户不使用指令前缀的情况下,也能正常响应用户的命令,并实现接入 ChatGPT API 的功能。
我的骰子突然不响应指令了,具体来说,在我的 xxx 群里可以正常使用,但是我私聊它就不行。
以下是一些典型的反例:
呜呜我的骰子怎么不能用了——
很急!来个大佬救救!
一个问题可能是也可能不是由用户错误的操作引起的,所以,为了帮助回答者分析定位问题,你应该描述在问题发生之前你做了什么。
以下是一些合适的措辞:
我在本地的 Windows 上通过 WinSCP 使用 SSH 协议连接到了我在腾讯云的服务器上,服务器运行的是 Ubuntu 系统。我直接把 data 文件夹拖到了 sealdice-core 同一个目录内,然而在服务器无法启动海豹。
我在群里 xx 写的 xx 牌堆的基础上修改了牌堆。原本的文件上传到海豹后,可以正确识别。但是我修改之后,上传到海豹,牌堆列表里并没有出现那个文件。我修改的部分是这样的:<屏幕截图>
反例:不提供此类信息。
注意:在提供代码相关的信息时,请使用屏幕截图
通常来说,代码都遵守着相应的格式规范。直接将代码复制到聊天窗口中会极大地破坏这种代码规范,严重影响代码的可读性。因此,不要将代码内容复制到聊天窗口中,请使用屏幕截图。
如果你不清楚什么是日志,请看 名词/术语速查表 中的 日志 部分。海豹的日志中包含了大量的有效信息,许多问题的直接原因本身就记录在日志中。即使你不能完全理解日志的内容,它也将极大地帮助回答者排查你所遇到的问题。因此,除非你非常确定你遇到的问题与海豹本身的运行无关,或未反映在日志中,请务必提供日志截图。
每行日志的开头都带有时间戳,请确保你发送的日志是问题发生那一刻前后一段时间内的日志。例如,你在 WebUI 查看日志,而你一遇到问题就立刻开始写求助消息,那么此时问题所对应的日志通常位于页面底端,你应该下拉页面,确保截图中呈现了对应的日志。
以下是一些合适的措辞:
我发出指令但是骰子在私聊中没有回复我,日志是这样的:<日志截图>
我修改过的牌堆上传到海豹之后,点击重载牌堆,日志是这样显示的:<日志截图>
反例:不提供日志。
注意:在提供日志时,请使用屏幕截图
通常来说,日志中每条记录都相对较长。在一些情况下,日志还会使用特定格式输出堆栈信息。直接将日志复制到聊天窗口中会严重影响日志的可读性。因此,不要将日志内容复制到聊天窗口中,请使用屏幕截图。
正如上文中提到的,无论是试图实现一个功能,还是在使用中遇到了不符合预期的事件,你都应该尝试根据参考信息自行解决问题。在提问时,即使你的尝试没有效果,也应该把你尝试过的方法描述出来。你尝试过的方法可能就是排查问题的手段之一,通过你提供的这些信息,回答者可以更加高效的帮助你定位问题。
以下是一些合适的措辞:
我试过对我的海豹骰进行重启,还有撤去一些自定义回复文件以及 JSON 牌堆文件,但是基本对数据库文件夹的异常磁盘占用问题没有效果。
我试过重启海豹(但是没有重启分离部署的 Lagrange),海豹依然不会在私聊中回复我。
反例:不提供此类信息。
海豹核心的版本号、连接的社交平台、连接 QQ 平台时使用的连接方式(内置客户端或分离部署)以及你的操作系统等,都有可能和你所遇到的问题有关。因此,与其提问后再被要求补充这些信息,不如一开始就将它们包含在你的问题之中。
以下是一些合适的措辞:
',70)),r("blockquote",null,[r("p",null,[a[1]||(a[1]=t("我使用的是 ")),i(p,{type:"tip",text:"vA.B.C"}),a[2]||(a[2]=t(" 版本的海豹骰,部署在 Windows 11 系统上。私聊不回复的问题是在 QQ 平台发生的。我是通过分离部署连接的 QQ,使用的 QQ 后端是 NapCat。"))])]),a[5]||(a[5]=e('反例:不提供此类信息。
如果回答者提供的解决方案解决了你的问题,你应该做出反馈。
首先,一个有效的问题解决方案可以扩充海豹社区对问题的经验。通过明确地告诉大家问题已经解决,你正在为建设海豹社区做出有力的贡献。
另外,对回答者表示感谢是最基本的礼貌,也是维护海豹社区良好氛围的行为。
问出下一个问题吧。别忘了回顾一遍本节内容,你的追问同样应该是一个良好的问题,这样才有助于问题的快速解决。
当然,那些已经描述过的且未发生改变的信息没有必要再重复一遍。如果你不确定某些信息是否应该重新描述,那就再说一遍,啰嗦总好过一个信息不完整的问题。
另一方面,你也应该额外补充一些信息,尤其是用你自己的话描述一遍你是如何执行回答者所给出的解决方案的。很多时候一个解决方案是有效的,但由于沟通上的歧义或误解,导致它没能被正确执行。因此,再和大家说说你是怎么做的吧。
群员、管理和开发者们都有自己的生活,SealDice 也只是兴趣的一部分。所以,在你的问题看起来没有获得回答的时候,保持耐心。当有群员或管理进一步地询问相关问题,也希望你能友善且相对客观地叙述问题,而不是对他们发泄自己的主观情绪,同时,配合他们进行操作,这样,问题才能更快速地解决。
如果你想要问的问题是新的、程序上的需求(例如希望加入一个新的接口),或者你的问题明确了是一个 bug,你希望 SealDice 开发组尽快满足这个需求或修复这个 bug,你可以通过在 GitHub 的 sealdice/sealdice-core 仓库中提交一个 issue,开发组的开发者们会通过讨论进行回复,并且,如果确定需要通过你的反馈对程序进行改动,也会更方便开发者们归档问题和修改程序。
以上就是提问的智慧中我们总结出的,要在 SealDice 用户社区里更快地解决问题,应该怎么做的办法。希望通过这样的办法,能让你更有效率地解决在部署 SealDice 的过程中遇到的问题。
也希望你通过本系列科普有所收获。
',18))])}const E=c(b,[["render",m]]);export{x as __pageData,E as default}; diff --git a/assets/archive_archive-guide.md.DJne-GJ-.lean.js b/assets/archive_archive-guide.md.DJne-GJ-.lean.js new file mode 100644 index 000000000..6e0d1f326 --- /dev/null +++ b/assets/archive_archive-guide.md.DJne-GJ-.lean.js @@ -0,0 +1 @@ +import{_ as c,c as n,a6 as e,b as d,w as o,a7 as u,j as r,a as t,G as i,B as l,o as s}from"./chunks/framework.B1keMFNq.js";const x=JSON.parse('{"title":"计算机基础知识","description":"","frontmatter":{"lang":"zh-cn","title":"计算机基础知识"},"headers":[],"relativePath":"archive/archive-guide.md","filePath":"archive/archive-guide.md","lastUpdated":1728702230000}'),b={name:"archive/archive-guide.md"};function m(A,a,f,q,k,g){const h=l("Mermaid"),p=l("Badge");return s(),n("div",null,[a[3]||(a[3]=e('本节内容
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户快速查询一些常见问题以及对应的答案。本节不能代替权威解释或各项目的官方文档。
关于如何正确地提问,请看 如何正确提问;关于如何快速学习相关背景知识,请看 如何高效学习;关于特定的名词术语解释,请看 名词/术语速查表。
如果直接在解压缩应用(如 7zip
、WinRar
等)中双击运行压缩包内的 sealdice-core.exe
文件,意味着只有 sealdice-core.exe
这一个文件被解压出来了,而其他文件仍然在压缩包之中。海豹核心检测不到其他必要的文件,那么,就无法正常运行。因此,需要把压缩包解压之后再双击运行海豹核心。
解压压缩包需要解压缩的应用,上面已经陈述了一些应用,使用百度搜索一下,下载安装就可以了。
一般而言,用鼠标右击压缩包,再用鼠标左键单击弹出菜单中带有解压到
字样的选项就能解压这个压缩包。
一个建议
解压缩软件时常不会自动帮你创建文件夹,你可能需要自己新建文件夹。这个操作非常简单。
在希望解压的文件夹下单击鼠标右键,在弹出的菜单中找到新建文件夹
这个选项,左键单击它,然后输入你想要的文件夹名字,再按下键盘上的Enter
,就新建了一个文件夹。
而如果你想要指定这个压缩包解压到指定的文件夹,你可以右键单击压缩包后选择解压到…
,在弹出的界面上找到你希望压缩包解压到那里的文件夹,之后双击那个文件夹,最后点击确定,压缩包便解压到了你指定的文件夹。
对于内存不足的情况,需要具体问题具体分析。
翻译一下这里的报错:「在磁盘中没有足够的空间」。
很显然,这里的内存不足代指的是磁盘可存储的空间不足,这时候通常通过删除磁盘内部分不需要的文件,腾出空间就可以解决。
如果你在资源有限的小型计算机/服务器上部署海豹,并且你的海豹是公骰(存在大量用户)或加载了大量牌堆、自定义回复和/或插件,那么有可能出现海豹核心突然中断运行的情况。如果通过日志,排除了程序内部错误的可能性,那就有可能是由内存不足引起的。此处,内存指代的是「运行内存」。
可以在海豹运行时,通过 WebUI「日志」导航栏顶部的内存占用、Windows 平台下的任务管理器、Linux 平台下的 htop
等工具对海豹核心的内存使用量和占用比例进行监测,如果确实存在占用过高的情况,可以考虑减少用户群体、移除不常用的自定义回复/牌堆/插件、关闭其他未在使用的进程或更换资源更为充足的平台来解决问题。
注意:不要随意关闭你不认识的进程
只有在你完全确定某进程的用途与功能时,才能尝试关闭此进程。失误中断系统进程可能导致系统崩溃或其他隐患。
开源,即 Open Source,简言之,就是把程序的源代码放在公共平台(如 GitHub 等)并附加开源许可协议的行为,任何人都可以在开源许可协议允许的范围内下载、修改以及使用这份源代码。
开源程序,顾名思义就是开放了源代码在公共平台的程序。SealDice 就作为一个开源程序活动在大家的视线中。
所有 SealDice 用户群的群员、管理、甚至是开发者,都不具备未卜先知的能力,要求你发送截图也只是为了更好地了解你的问题究竟出在哪里。知道问题出在哪里之后,排查问题或复现 bug 就会更简单。这不仅方便了群员和管理回答你的问题,也有助于你更快地解决问题。
不提倡拍屏而是提倡截图的原因是,拍摄屏幕时会出现各种各样的问题:因拍摄角度而看不到部分信息、屏幕因反射光线而不能让摄像头拍到真正的图片(俗称反光),而截图能避免这些问题,给解决带来更高的效率。
注意:请做好截图保护!
如果需要发送截图,请在没有必须要展示的情况下隐藏好截图内可能存在的敏感信息,比如:IP 地址、端口号、文件夹内布局、密码/auth/key/salt 等。
最好的方式是通过在图片上加马赛克进行遮挡(俗称打码),不建议进行剪裁,除非敏感信息的范围过大。
GitHub 是多数开源程序发布代码的地方,SealDice 开发者们平时也通过 GitHub 查看用户的需求和 bug 反馈,同时对程序进行修改,并且在 GitHub 上同步发布更新。
所以,我们希望你如果真的非常需要加入功能、或者反馈 bug,可以自己试试看除了在 SealDice 用户群中向管理说明以外,额外地再提交一份 issue 到海豹的 GitHub 的代码仓库中,这会让开发者们可能记住这个问题,同时在程序中修复它。
对于如何提 issue、怎么样提 issue 不会被关闭,以及如何在 GitHub 上下载文件之类的问题,百度应该是你更好的选择。
注意:海豹手册已于 2024 年 8 月 7 日停止维护以下内容,以下内容归档于 2024 年 8 月 7 日。
归档原因:海豹开发组认为,这样的页面与 SealDice 完全没有关系。教授如何高效学习亦不是海豹手册应该去做的事。
本节内容
本节为计算机小白指南中的第二部分。
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户在遇到不理解的教程、名词或操作时,能够高效学习上手相关知识。
关于如何正确地提问,请看 如何正确提问;关于一些小白常见的问题,请看 计算机小白常见问题;关于特定的名词术语解释,请看 名词/术语速查表。
如果你从未接触过计算机以及服务器,那么不免会对本手册中的大量概念感到陌生。一些看起来详尽的指导细细读来却可能完全看不懂。我们不希望你就此放弃,以至于错失了一个全新的、有趣的世界;我们也不希望你放弃自己思考的权利,将一切不明了的问题诉诸他人的帮助。因此,我们撰写了本篇文档,希望能够帮助你掌握一些快速学习新知识的小技巧。
无论是帮助文档、程序日志还是网络资源,英语目前是,并且在未来很长一段时间里仍将是,主流的语言。因此,提高你的英文水平,不仅可以帮助你看懂程序日志上的故障原因(这样你就能自己解决问题),还可以让你看到更高效地获取那些有用的信息(比如下文里写到的那些)。
因此,如果你仍在上学,英语学习得再努力一点,终将有所回报。如果你不得不在短时间内理解特定的英文内容,那常备翻译器显然是一个好选择。
当遇到不理解的概念时,我们的第一反应往往是去搜索引擎寻求答案。但是,如果你正在解决特定项目中遇到的问题,不妨先看看此项目的帮助文档、常见问题(FAQ)和 GitHub 上的 Issue。
一个合理的开源项目,往往都具备相对详尽的帮助文档,描述了使用这个项目的过程中可能涉及的方方面面。例如,你正在阅读的就是海豹骰点核心的用户手册,亦即帮助文档。帮助文档通常包含了各个项目从部署到使用的一系列教程,在你具备相关背景的情况下,阅读帮助文档远比直接使用搜素引擎高效得多,因为帮助文档中提供的信息都是服务于特定项目的,而搜索引擎往往只能找到泛化的知识。
常见问题也是众多开源项目都拥有的页面,例如本手册中的 计算机小白常见问题 和 常见问题 两个页面。这些页面中,通常包含使用此项目的用户高频提出的问题,而你遇到的情况,很有可能在其中就有所描述。因此,如果在手册的一般教程中没能找到答案,访问常见问题页面或许可以解决你的问题。
如果你不知道 Issue 是什么,可以点击本部分第一段中的超链接查看。Issue 通常包含了此开源项目的用户所遇到的问题、发现的可能的 Bug 和提出的功能请求。Issue 页面就像一个讨论区,你很可能找到一些使用上的问题,大多数情况下都会有热心的网友在页面下方给出他们的解决方案。如果你发现你的问题在 Issue 列表中存在,并且存在 Bug 的字样,那么很有可能你遇到的是此项目的已知问题。安心等待开发者解决就好,或者你也可以学习编程,为修复此 Bug 做出贡献。如果你发现你的问题在 Issue 列表中存在,并且存在 Feature Request 或 Enahncement 的字样,那么说明你需要的功能目前尚未实现,并且已经有其他用户向开发者请求加入此功能。你可以给此 Issue 点赞或评论,或许可以增加此功能的优先级,但切忌评论轰炸。在 Issue 中反复刷屏同样的内容只会带来负面后果。同样地,或许你也可以学习编程,为提供此功能做出贡献。
另外,你可能已经注意到了,本手册特别提供了 名词/术语速查表。在求助搜索引擎或用户群之前,可以看看里面是否已经包含了你想了解的概念。在速查表中,我们尽力提供了深度恰到好处的知识,不至于过于专业,但又足够你解决问题。如果你想改进速查表的内容,你可以提出一个 PR。如果你不知道 PR 是什么,那么可以按照本页后续的内容,将这作为你的第一个新知识开始学习。
如果你知道如何访问 Google,那么请使用 Google 进行搜索。如果你英文足够熟练,那么请使用英文进行搜索。
百度(还有 CSDN)永远不会是你学习计算机领域知识的最佳选择。一个更高效、搜索结果偏见更少的搜索引擎能显著提高你的信息获取效率。当然,如果你无法访问 Google,那么必应(Bing)海外版或许是一个尚可接受的选择。
如果你无法访问上述资源,那么在国内众多的内容平台中,学会筛选更可靠的平台也将大大提高你的知识获取效率。通常来说,技术型的个人博客和知乎平台具有相对优质的内容。如果你发现某个页面包含你需要的信息,但排版混乱或内容过于老旧已经不再适用,你可以尝试在内容的开头和结尾去寻找原文链接。通常这类文章是搬运而来,而其出处往往具有更优质的排版,有时原作者也会对其进行更新。
另一方面,互联网上的英文内容数量是具有压倒性的优势的,如果你能用英文提出问题,那么就有更大的概率直接检索到问题的解决方案。从类似 Stack Overflow 的问答网站到个人博客,你在中文互联网上找到的技术性信息,许多都源于对这些外文内容的翻译和多次搬运。因此,与其拾人牙慧,不如直抵源头。
随着大语言模型的兴起,AI 也可以是你「搜索」的对象。它们往往能比传统搜索更快地获得信息。但是,你应该永远对 AI 生成的内容心存警惕。在「幻觉」问题尚未得到有效解决之前,AI 的每一个回复都有可能是真材实料的信息,也有可能是胡编乱造。因此,在严肃场合,你不应该不加校验地使用 AI 生成的内容。
在学习新概念的过程中,我们很可能遇到用于解释新概念的描述中,也包含着我们不理解的知识的情况。如图所示,深度优先的学习即是每遇到一个新概念,都重新去查找学习这个概念所包含的下属知识,直到对每一个细节再无疑惑的方式。
例如:
一个小例子
你可能想编写一个能够在用户发出符合某种规则的消息时,针对性地进行自定义回复的功能。通过搜素自定义回复,你找到了海豹手册的 自定义回复教程。
在触发条件部分,你发现你可能需要学习正则表达式,于是你访问了教程开头的链接,或者在搜索引擎中查找了正则表达式教程。
在正则表达式教程中,你发现 \\s
可以用于匹配 whitespace,于是你搜索引擎中开始查找 what does whitespace mean……
如果你只使用深度优先的方式学习知识,那么当你最终回到一开始的目的(比如写一个自定义回复)时,你应该已经掌握了隐藏在触发条件与回复结果背后的全部知识,从此只要是自定义回复能实现的功能,对你来说都不再有任何困难。
然而,可以预见的,随着学习的不断深入,你需要学习的内容会爆炸式增长。所以,皓首穷经地学习每一个细节真的值得么……?
与深度优先学习相反,广度优先的学习即是在遇到新概念时,大致了解其含义,便开始学习下一项内容。
例如:
又一个小例子
你遇到了一些故障,在用户群里有人和你说
你在运行海豹的终端把日志截图一下。
你不知道终端是什么意思,于是你在 名词/术语速查表 中翻阅了一下。虽然你对什么是 Shell、什么是命令行一知半解,但是你差不多知道他指的是那个在电脑上弹出来的黑框框。
于是你又看了一眼日志是什么意思。虽让你搞不懂什么 Warning 与 Error,但你知道黑框框里那堆文字就是日志。
最后,因为你从没在电脑上截屏过,你去搜索了一下,找到了 Snipaste 这一截图工具。把黑框框里的文字截图发了出去。
如果你只使用广度优先的方式学习知识,那么可能你很快就能达成一开始的目的。
然而,你对所有涉及的概念都一知半解。如果再遇到类似的问题,尽管可能只需要你做相似的操作,由于你并没有领会每一个细节,你依然不得不求助于人。所以,这样草草浏览知识真的正确么……?
在实际学习新知的过程中,两种方法往往是相辅相成的,另外,实践永远是学习的最佳方法。
你通常需要以深度优先的方式,了解一个概念背后的一些细节,直到这些细节足够你应对眼前的问题和未来可能遇到的相似的问题,然后转向下一个概念进行学习。执着于过于深入的细节只会拖慢你的学习速度,因此,在合适的位置停下是最为高效的方案。
同时,在脑海中思考千遍,不如把手放在键盘上,尝试敲出你理解的方案。程序实际运行时给出的反馈,会大大帮助你找到正确的方向,而闭门造车只会延长你设计方案到发现错误的时间
以上就是我们总结出的,要在使用 SealDice 时更快地学习新概念的办法。希望通过这样的办法,能让你更有效率地解决在部署 SealDice 的过程中遇到的问题。
也希望你通过本系列科普有所收获。
注意:海豹手册已于 2024 年 8 月 7 日停止维护以下内容,以下内容归档于 2024 年 8 月 7 日。
归档原因:海豹开发组认为,提问的智慧
一书中已经写明该如何提问,海豹手册不应该分走大部分篇幅去讲述应该如何提问。
本节内容
本节为计算机小白指南中的第一部分。
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户问出更加明晰高效的问题,减少因沟通产生的不必要的麻烦。
关于如何快速学习相关背景知识,请看 如何高效学习;关于一些小白常见的问题,请看 计算机小白常见问题;关于特定的名词术语解释,请看 名词/术语速查表。
自近期用户量剧增后,SealDice 用户群的社区氛围似乎又有些不尽如人意,预料之中而情理之外的事情又再次发生了,我们觉得,用户需要这样一个科普性质的界面。如果在不知道如何在用户群提问能尽量干脆利落,或者不清楚某些术语该怎么说的情况下,能想到这个系列就最好了。
当然,我们没有资格教屏幕前的你如何做人,这篇科普也一样,只是给你一个或许更好的建议,是否跟着这么做,取决于你。
在计算机技术领域内,《提问的智慧》一文广为流传。如果你想认真地学习如何问出一个好问题,强烈建议全文阅读此文章。在用户群的群文件中,也提供了此文章的文件。
当然,海豹用户群的群员们并不会如此严苛,如果你暂时没有时间完整地阅读上述文章,那么认真读完本节也足够你在海豹用户群中问出一个好问题。
对于屏幕前或许没有编程经验的你,可以通过平日里学的「五要素」法则来思考遇到的程序错误问题。下面是一个可行的思考过程。
通过这样的思考过程,你即使猜测不出问题所在,也可以很好地根据这五个要素的思考过程组织问题,让回答者清晰地知道你的操作流程,更快地找到问题所在,为你解决问题。
阅读本手册,尤其是 计算机小白常见问题 和 常见问题 两个页面。使用页面左上角的搜索按钮有助于提高你的信息效率。
用户群的群公告、群精华消息和历史聊天记录中,有可能找到你问题的答案。
关于如何高效地进行搜索可以参考 如何高效学习 一节中,高效搜索 小节。
你在解决问题时所做的努力——无论仅仅是搜索还是尝试了具体的操作、无论是有效的还是无效的,都将帮助回答者更有效地了解你的背景信息。因此,记住你所做的,并按照下文中的指导,附加在问题中。
本部分中将会为一些涉及的要素提供正例与反例,正例并不意味着一个好问题(它是一个好问题的一部分),但反例显然不应该出现在你的问题里。另一方面,如果你的问题并不涉及某个的要素,那就不要强行加入这个要素。
如果你想要让海豹实现某些功能,那么请尽可能清晰完整地描述你想实现的功能。如果你在实现某功能的过程中遇到了麻烦,或者一些你认为本该正常运行的功能表现得不正常,那么请尽可能详细地描述你遇到的困境。
以下是一些合适的措辞:
我希望写一个插件,在用户不使用指令前缀的情况下,也能正常响应用户的命令,并实现接入 ChatGPT API 的功能。
我的骰子突然不响应指令了,具体来说,在我的 xxx 群里可以正常使用,但是我私聊它就不行。
以下是一些典型的反例:
呜呜我的骰子怎么不能用了——
很急!来个大佬救救!
一个问题可能是也可能不是由用户错误的操作引起的,所以,为了帮助回答者分析定位问题,你应该描述在问题发生之前你做了什么。
以下是一些合适的措辞:
我在本地的 Windows 上通过 WinSCP 使用 SSH 协议连接到了我在腾讯云的服务器上,服务器运行的是 Ubuntu 系统。我直接把 data 文件夹拖到了 sealdice-core 同一个目录内,然而在服务器无法启动海豹。
我在群里 xx 写的 xx 牌堆的基础上修改了牌堆。原本的文件上传到海豹后,可以正确识别。但是我修改之后,上传到海豹,牌堆列表里并没有出现那个文件。我修改的部分是这样的:<屏幕截图>
反例:不提供此类信息。
注意:在提供代码相关的信息时,请使用屏幕截图
通常来说,代码都遵守着相应的格式规范。直接将代码复制到聊天窗口中会极大地破坏这种代码规范,严重影响代码的可读性。因此,不要将代码内容复制到聊天窗口中,请使用屏幕截图。
如果你不清楚什么是日志,请看 名词/术语速查表 中的 日志 部分。海豹的日志中包含了大量的有效信息,许多问题的直接原因本身就记录在日志中。即使你不能完全理解日志的内容,它也将极大地帮助回答者排查你所遇到的问题。因此,除非你非常确定你遇到的问题与海豹本身的运行无关,或未反映在日志中,请务必提供日志截图。
每行日志的开头都带有时间戳,请确保你发送的日志是问题发生那一刻前后一段时间内的日志。例如,你在 WebUI 查看日志,而你一遇到问题就立刻开始写求助消息,那么此时问题所对应的日志通常位于页面底端,你应该下拉页面,确保截图中呈现了对应的日志。
以下是一些合适的措辞:
我发出指令但是骰子在私聊中没有回复我,日志是这样的:<日志截图>
我修改过的牌堆上传到海豹之后,点击重载牌堆,日志是这样显示的:<日志截图>
反例:不提供日志。
注意:在提供日志时,请使用屏幕截图
通常来说,日志中每条记录都相对较长。在一些情况下,日志还会使用特定格式输出堆栈信息。直接将日志复制到聊天窗口中会严重影响日志的可读性。因此,不要将日志内容复制到聊天窗口中,请使用屏幕截图。
正如上文中提到的,无论是试图实现一个功能,还是在使用中遇到了不符合预期的事件,你都应该尝试根据参考信息自行解决问题。在提问时,即使你的尝试没有效果,也应该把你尝试过的方法描述出来。你尝试过的方法可能就是排查问题的手段之一,通过你提供的这些信息,回答者可以更加高效的帮助你定位问题。
以下是一些合适的措辞:
我试过对我的海豹骰进行重启,还有撤去一些自定义回复文件以及 JSON 牌堆文件,但是基本对数据库文件夹的异常磁盘占用问题没有效果。
我试过重启海豹(但是没有重启分离部署的 Lagrange),海豹依然不会在私聊中回复我。
反例:不提供此类信息。
海豹核心的版本号、连接的社交平台、连接 QQ 平台时使用的连接方式(内置客户端或分离部署)以及你的操作系统等,都有可能和你所遇到的问题有关。因此,与其提问后再被要求补充这些信息,不如一开始就将它们包含在你的问题之中。
以下是一些合适的措辞:
',70)),r("blockquote",null,[r("p",null,[a[1]||(a[1]=t("我使用的是 ")),i(p,{type:"tip",text:"vA.B.C"}),a[2]||(a[2]=t(" 版本的海豹骰,部署在 Windows 11 系统上。私聊不回复的问题是在 QQ 平台发生的。我是通过分离部署连接的 QQ,使用的 QQ 后端是 NapCat。"))])]),a[5]||(a[5]=e('反例:不提供此类信息。
如果回答者提供的解决方案解决了你的问题,你应该做出反馈。
首先,一个有效的问题解决方案可以扩充海豹社区对问题的经验。通过明确地告诉大家问题已经解决,你正在为建设海豹社区做出有力的贡献。
另外,对回答者表示感谢是最基本的礼貌,也是维护海豹社区良好氛围的行为。
问出下一个问题吧。别忘了回顾一遍本节内容,你的追问同样应该是一个良好的问题,这样才有助于问题的快速解决。
当然,那些已经描述过的且未发生改变的信息没有必要再重复一遍。如果你不确定某些信息是否应该重新描述,那就再说一遍,啰嗦总好过一个信息不完整的问题。
另一方面,你也应该额外补充一些信息,尤其是用你自己的话描述一遍你是如何执行回答者所给出的解决方案的。很多时候一个解决方案是有效的,但由于沟通上的歧义或误解,导致它没能被正确执行。因此,再和大家说说你是怎么做的吧。
群员、管理和开发者们都有自己的生活,SealDice 也只是兴趣的一部分。所以,在你的问题看起来没有获得回答的时候,保持耐心。当有群员或管理进一步地询问相关问题,也希望你能友善且相对客观地叙述问题,而不是对他们发泄自己的主观情绪,同时,配合他们进行操作,这样,问题才能更快速地解决。
如果你想要问的问题是新的、程序上的需求(例如希望加入一个新的接口),或者你的问题明确了是一个 bug,你希望 SealDice 开发组尽快满足这个需求或修复这个 bug,你可以通过在 GitHub 的 sealdice/sealdice-core 仓库中提交一个 issue,开发组的开发者们会通过讨论进行回复,并且,如果确定需要通过你的反馈对程序进行改动,也会更方便开发者们归档问题和修改程序。
以上就是提问的智慧中我们总结出的,要在 SealDice 用户社区里更快地解决问题,应该怎么做的办法。希望通过这样的办法,能让你更有效率地解决在部署 SealDice 的过程中遇到的问题。
也希望你通过本系列科普有所收获。
',18))])}const E=c(b,[["render",m]]);export{x as __pageData,E as default}; diff --git a/assets/archive_archive-other.md.D8Q2HrYQ.js b/assets/archive_archive-other.md.D8Q2HrYQ.js new file mode 100644 index 000000000..9bd01b0b4 --- /dev/null +++ b/assets/archive_archive-other.md.D8Q2HrYQ.js @@ -0,0 +1 @@ +import{_ as p,c as d,j as a,a as t,G as e,a6 as i,w as s,B as c,o as h}from"./chunks/framework.B1keMFNq.js";const g="/sealdice-manual-next/assets/platform-qq-qsign-1.DewZ-7A7.png",u="/sealdice-manual-next/assets/platform-qq-qsign-2.Cv0YuS6C.png",m="/sealdice-manual-next/assets/select-account.BQuutaYp.png",k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA8CAIAAABD3l7RAAAACXBIWXMAAAsSAAALEgHS3X78AAAIgUlEQVR42u3df1CT9x0H8E93u6Mj64mXJwHaJeHsSdKBFC+cyg/ZWYq6FqtzYbG3nSzGK+ucU2uBQ3TADvDQabCW648ZItx2NYPa2toeJcPdIYHOI8pR0IS7VpMcC5KHlawL07/cHw88PCYEBw3jR96vv/Lj4XmSJ8/3/Xy/n++T8NiDBw8IACLed7ALAABZAADIAgBAFgAAsgAAkAUAgCwAAGQBACALAABZAADIAgBAFgAAsgAAkAUAMEffjZD36Rwjy5fU7aavvsaHDkvbqpWULqPcp0kRE87VPhYJv1/gHKPGXvrmPmmSwrz7ABbkeG4ZoCeiqCA1nMdzRGTBORs5WDq5BUcRLB9Fn5GSob1q1Atmo9tNmiQcPLCsaJKo2x3OFUZEFnz1NYYGsNwoYsJc/MI8AgAgCwAAWQAAyAIAQBYAALIAAEKZ9TXIVzu72tuvFL3+2seXP/EMDx86sD9gAS/LVtfU+nz/2rL5+V3a/OA1GM6cjY+Lm/YpIZYdtXZ12+0Ou2OQYcSMWKxSKbe/lDfPO8Rq0Df1cTeluRXHNYpHLrZmt+lgZvASTnNZRRsb9HCyzrg/m4jIbS6tah155IYAFmsWBLtgbv6s7a/83aioqAP7f/3MM6o7Tuec12l3DNaeOCXMBZYdtTsGO61dJUWHGUY8P3vDbS5t6pto225zaVVFKU3XSq0GPb8YddQV6uooOA4U2mqTVnDf1VJcaaHNO6aCIHa36fjkhuripw0UgKWUBUSUkpIc3EFIUCiudnY1mBqDl+/r6xfGB2ePrmBjVkZwEAR0FmpPnpqvOOj8sHWE2foq1yZl2ldzbZU3PndpFPKAE/6nfZSsm2y62Qd32/RNhs7MQ1kzpsxbFq80t0IrC7GhT82uTK0cByQs8SwIZWNWBte8hUMMLh34lh9MGARZmRncuMDucBgbGrk4MDacLyk+vFC7zOlhac0L2VMPyJ+Ukm3ITSR7RMqUT3QxnEPDJF27gW/58vVqqcXW7dbKZTgiYaH8X2uHXpZtb7+ikMuUiaut1i6/fzx4Ga7B8/R7Ci59dLn25CmGYbIyM/gRhN0xGP7Xl7Vjq5RtvWgVnMkFLXbmt+ZxzdQp+KSf1rzAn/adHpZi4xWzWAMsEwM3B0e8o6GevX3HffuOe6Fe21z6BU6X+ze/PcTdrqisSkhI6Ovr1+kLhcvwVQPhg3/683sqldIzPBwfF0dE12/0BncN7A4Hf5thxJc+utxp7Qp+DQ7HoEqZGO69IdMefye+rlCnbyIKWRRUxDPUdr2DMie7Bq5/jBDFzjz0oJQXUQ4ASlD84FpPr1fCJP0wcbqYYDf9KGMpZYFCLit6/TWRKJq7e8HcrExcfe/evZyc57i27WXZU6fPBPzV1c4u35jvlb36d88ZiSgnZ1N9/dsqVaKEYUJtiGVHP7z0MRHt2L6NEYuFMWG3O8I/pzBR3jtqOigjriiovz5Z9he8/fS1kjaLqc6aPVE7nJxQCKGjp5+kuTuz0BCARKLodWmp13p66SYJ4+BaT6/fP76AQRC2MULU41ErYlb02GyTDXXw8agouXyqe33rlv39ix9of6bhE0TCMDk5z9XXvz3tSEFIpUzc/lKeseE8y44KugxM2PdFx0WLV5q7TzsxaM8+uDuF+i+bg/pscs2J8lzJF006faFOX2hLO7pVOsNarbYvSJK6HlOGIIyDES87cHNw8QTBtx0jCKcP0tTq9vYrfv+4SBTdY7OpVEq+2XtZ9p0/Gn+68ycBQ4aNWRk9Ntu754zCOQhGLBa2ea7ZGxsaAwoESuXqedkfDw3j5U9Kqc/jmqYoKNecMGr41m4wkSQ1RF3B5fEQxT8lCxxl9HqcRMKAkMRjFiESewf+8fHFEARz7Bco5LI33zBs2fz8Q2dvVeK9+/ddLpeXZe/eHXk2ZQ0fBNU1tRvWr5t21uCVvXrfmM9w5iz/SGZmevBiwTOI89EvICK66wm4KCK4iTrNZTr92Y6pcsD1PmLU6bJQWeClZPXDAwTFU3E0cuNzvlbo+rttJPQaYPnGwW2ne5EEQXjGCFwtUMIwsbFS819ajMbzqc+mcF2AW7fsx373e4VCHuoqQ5Eoet++XzmdLj4OVEplQFGQYQJ7ClmZGfNQOKTsnbmSEUv95KCgo66qdSQ5TxvYRBXpayVTYwerwfTQHEFgcAwNkzRwymBiwuKtFifRxIRF6DXAMo6DvB/nLJIgmMsYYWhoaEXMCr7/7/eP+8Z8aWo1Ef3i5y9X19TGEG3Le5F7trXNolSuPnRgf8BFR/y1Rtx0Q9mRkuqa2gvm5l3afIYR6/f8sqjkCL8wVz4URoN+T8G87Ay55oQx3qCv0rVx95OnCoeuluLKG+ryaq2cqxdQceXEYpLNR018XggX47LAw063JZn2+FEqrarQW4iIpLkVuOgQFtrsfvvU7x8/+YfTKpVylzb/grnZMzycpla/f/GDsiMlEobhL0YO9U0Ezv/yfQTugqLgiwh2bN82h+mDTSZ6L5/ivo+PG5aP4X/Ty830N90C9QtcLteYz8fXAoiox2ZTKOTR34uuqKwiojffMIz/Z7y6ptZudwjnHWeLYcQlxYc7rV2jo//kBggMI87MSJ+3byIARLpZjxHiYmP5yULfmI+ItNr8smPlG9av4071IlF03emThjNny46Vc/2FgDUEf3MhFP5CQwBYXGOEJQpjBMAY4ZHwWyYAgCwAAGQBACALAABZAAARmwWrVpJzDJ81LCvOMVq1ElkwS+kyahnAwQPLSssAhffrbBFxfYFzjBp76Zv7pEnCP1yG5XA8twzQE1FUkBrO4zkisoDbfZYvqdsd5n9TDbAgY950GeU+HeYTW6RkAQCgXgAAyAIAQBYAALIAAJAFAIAsAABkAQAgCwDg2/kvh+Bdy6b8rFsAAAAASUVORK5CYII=",b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAT0AAAByCAIAAACugJHHAAAACXBIWXMAAAsSAAALEgHS3X78AAAK2ElEQVR42u3da1BTZx4G8D9VTGpmyE4NkExKsl9akw7S24xSiWw1hdLL7MWFDVO3dLPZbnoRFau4VltCBa1CCWxqK9PBs9LpTKms253thYJ0W4jsdoasFtgmdqYzTRgaJBlLkAQOiNkPB8IhAUVLZFOe36dwznveIbx58t5OQlwwGCQAiCm34E8AgNwCAHILAMgtAHILAMgtACC3AMgtACC3AIDcAiC3AIDcAgByC4DcAkDMWP4jeA4TE1cGh/yXhgMTE1fQorAUxMX6529Zdvx733AwGBQniOLjl6NFAf1tDPAHRoPBoCz5NrQlYH4bM0bZMXGCCA0JyG0sGRkdw/AYkFsAQG4BALkFAOQWALkFAOQWACItwR2U3oa9Zd89VlukmXGkaWDyhzT9XKdS9XWFmZH1uRqLS1tkvKvaqo1MN69AUpbpUK6Se2y16Jke7mFi9v4juhS8BOGm5tbj9ZYfPOzzDYWOpKWlFm0vNNdYZFJpvi6PO9hu7ei02Yq2FxKR3x+oqKxyunrnqlMsTtj34p5EiSR6T7ituqxpgNJmxriJskx1ucrJXBnNNBnCturpU23VRsZgofDo9ja82eIhkvGOuC/MkUmrRc/0TL4vuBqLS8uKCdGFKOT2stU6ce6cYOvWWc8KhULj0wa1WkVE5hpLZIF3G05+9nn7lify/f6ASLSSO/h7/VMbNOsjC9vtjhNvvxPNJ3vGbKjvCu8tv7ANSHJKpvpDTaG+08h82OjU5CpdjR90U5p+8lTmjgKbod5mpczp3picDcdCHXWoxu8GSCZPmaWf/7AnMXv/ZLesyH0++6zp3BdOXYoSL0NYqNyOnTw5cfZs/KOP3qJUsq+/Hrx0SbBtW5wo/I7CwMiIqbRMq90UWYO5xuJ0ug688nJU+8/rC21SlulZOlraMn1YkXukLpdfTimT0IXZTrnc7hn9KpGr8Wgz5eizbEzLzGKpj2sih9Nf2AYk9z8wnWelrpzR4RUIC5rbFXl5wQcfHDWbg5curdDplms011Uv1/1WV1VEnjrOnDjOnJhrnBy1Z5pRVJfBhe3qs99/n/NSsiyyD2w71eJJynpeM3OEvKZAp3DbeMWc/zrrIS9jMDJhk1uX20NSmWK6z8f8FqIyTr7i8cStWrVMrb7idl9vvdyEdlaLN06eB+v7TQOU9lgG/5izYZ+p2Us0PWaeKpmqP5QR9kbgdHuJJDkl5TrF5OTZtJdMh3Kpr5/IyxhIX1dbRJjfQnRyG/T7xz/+OP6RR25RKtljxya++mrZXXddvS52lDWVljldvV1dPZ80n+afejj7oXxdnki00lSyf67L1WrVqwcPLOYfw9VYzPTQmoKimWOLqQHtGbPBWNzHJe2MmelJ09dGLi9n7uAfTNE9m2UrbTllzd1MRCTJKZla1uLmt83vt+lmW6MGuLHcxolEwhdemFx/mnpwdQKh4E97dnHryXK5/K+n/hZaHG63dugNxvn/WlzOb3ZoS1s8awqYHRlzjbQ3Z3/EJY2q67vWFDDzmTooZDIidx+3hC6VKXhvB3IpUb/bRaTA6xAWbpw8T0KhULIq/GPrKtWdQqHQ6/Fyud2gWc+NjbmtIK1206xD5cXsaa8RWr4ztm4iqtcb6kOHPIxR33m1y5VyKV5t8P+S20BgZNDnizyeKJEkJyd92dXN7RKF/OfsuUGfT6W6MwZCa7Xomf6pmerU3DXpXiVlZNZlhF0+dd9Fb8PesqZkXlUut5sk9z+QQor70pgZ20jOvv6wHhgg6rlNlEhePXjAbncMDvoa3mvcvWtnaIeWk5OdVftW3d1pa/jR7evr8/mGivfsm6vauVatouaMea6eVvPLnA/Lmt5sTD80eUsG0z1zaWoWKbrHUpuYerM1o0gzXblOMTXMZixtmsJMIrJaTM3exOxnMLmFRehvv+zqXr36DiKqqKwKi65arUpftzYs0vm6vLkmrna7o/atusghd1Q5Gz7qIqLuGYPeqVsaU3SH9tPeMpOB256V5JTU6q7ZPWoKGbLoGaOe2wjivSModeWM3KKf2iKaeUMlwHX4Qd/n6PF6X6uqeerJLQqFoqKySvwTceg+R7lc3mmz/fEPhorKKiKK7I0jtVs7Wls/nU9Jvm++dStuT4pfvgxtCcjtvEJbfvDwrzf/ihvWerzeo0eP6X9XwPyl3unq5d9pzN2DEbaja7c7aixvsCwbOiIQCLYXPhc2H0ZuARYyt2GfH5g1zDcBcgvIbexBbmEJwufmAZBbAEBuAQC5BUBuF1sQDQjIbcyJI7pVuGJ8/DIaEpDbWCIQrPAN+dGQsKTg/1YDILeLYWLiim/IPzQcmJi4ghYF5BYAML8FAOQWALkFAOQWAJBbAEBuAZBbAEBuAQC5BUBuAQC5BQDkFgC5BQDkFgCQWwDkFgCQWwBAbgGQWwBAbgEg2n4MX1w6Nn55eHjEP8KOjY2jRWEpiPnvcxwbv+y9OBRHhO9PBvS3MWN4eCSOSJZ8G9oSML+NGf4RVpwgQkMCchtT4+SxcQyPAbkFAOQWAJBbAEBuAZBbAEBuASC6ubXbHc88t63d2oE/K0BULeTOp1qtWr36jtbWT++79x6RaCX/lN8fqKiscrp6Q0fE4oSND/7s/b//I6wSpSJl966dYZcDAN+N35/cbu04zpyYT0mxOGHfi3sSJRLuqtbWT+dKZru1o9NmK9peOP9f45tv3Yrbk+KXL0NbAvrbeQnrG9utHX19ffm6vLDB84m33wn92GmzqVSrQ5eYaywyqTR0SV9fn0wqRasARCu3GzTrVao7971Ukr5urbu/XyaVpqev7bTZTKVlu3ftDIwEyg8eTl+3Nl+X9+rBA9wlHq/3woWBnOwsfj1yuTw0lnY4zmu1m6LyRF2NxaUtHqLE7P1HdClE1FZtZLqJKFVfV5i5IAUAbpYftC7V2vpPItJqN3I//lSpLNpeqNVu2rqt6KWXXzE+bdBqN7acbuWXT05OUqtVoaD6Bn2hs4GRwCjLSlZF5ZM9badaPNx7R/OxBheRq/GDbu5MD1N9ZkEKAMRAf2u3Oz77vH3LE/ncxPX7wcEdO3f7fENiccKRw+Urb11ZUVmVLE0+f/7rnv9+VbS9kCvPsqzeYCSih7Mf0mo38oPqcHwtFAgUCgVaBSBauVWrVcfe+DO398OyLBfF0EzVbncM+ny63+QW/HZLRWXV6dbPrFYry7JcGXONhSs2Ojp6pNLMr3brtqJoLClnbs76oJsb5T6jUxBR7uNrWiZHuTsyFqQAwE3zQ9eTubVirnflb/MQUVpaamhl2G53NLzXOMqy99ydxuWWvxzF927DSYfj/Pxzi/VkQH87X35/4OLFi0xdbeiIqWT/1Tvn3bt2VlRWXbNmd3+/+Cdi7N8CLHxuRaKVv/j545Fhrqis0mo3bdCsv2YNo6OsqbQssotGkwBEcX5LRB6v97Wqmqee3BJaIp7/oFcoFMzaRYemvgAQldzegE+aT3/SfJqIZr2/wuP1Op2u9HVr0TAAUcxt5ILwceYE//5HpSKFfzZsPZljtztqLG9wi9JicUJoQxgAZhXd70++3sXhG4D1ZEBuYw9yC0sQPjcPgNwCAHILAMgtAHK72IJoQEBuY04c0YoV8ePjl9GQgNzGEtGtAt+QHw0JSwr+bzUAcrtI0R0eHvGPsGNj42hRQG4BAPNbAEBuAZBbAEBuAQC5BQDO/wApyt1rmZ2jAwAAAABJRU5ErkJggg==",A="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWkAAAA/CAIAAACtua5HAAAACXBIWXMAAAsSAAALEgHS3X78AAAOvUlEQVR42u2de1QTVx7Hf4g1ESyhZlCsS8I5uyXRYyM+1geCFuKjDx9trRUfu4DU4lGRqlW3Wq1ipSIKpaiLbdF6tr4FV9E99RFZBYK2Iko9ZkKPZwHLAjJYBiQmPur+cbPXcSY8RIKgv89fw2RmYO69873f3+93h7g8ePAAEARBHpNO2AQIgqB2IAiC2oEgCGoHgiCoHQiCIKgdCIKgdiAIgtqBIAhqB4IgqB0IgiCoHQiCoHYgCILagSAIageCIKgdCIIgqB0IgqB2IAiC2oEgCGoHgiCoHQiCIKgdCIKgdiAI0sZ0xiZoA+7du19767bltrWTS6fbVluH+/s5q+vf8no8b732bXD5s//8d3bt5i5XvuSB2tFOheNGNe/ayYV5yUMu79IRb8H91vPYcX/07fXM3+Pdu/dqauuLSyt8Vd6oHe0Ovs7SqVOnnl6e2BRIe+OFFzp7KRUAUP1b7eO6D8x3OB2r1ebp0RXbAWm3eHq436q3Pu5ZqB1Ox8Wlk1wmw3ZA2rP7uHfvPmpHu6MjJkcRBLUDQRCn4JRcaVJyCl/DL/l4kbu7W+M7hVRx3Lq4+GFDh4ROndK6f099vSVhY6LCU7EwJrqZp3Bcda4xj2XNrLmIYZSMUqnVaiZNHI8jBmnB4Kfs3XegvKKi+ePw+dIOk4k1m3+x2WzzFywkexQKj+DXRhUWXgEAulMmk8VEz+3TR0sf7y1bUj0Vignj32q8Y8h1AECt8okI/2tScgrP14oOU6t8hJ2XefRYReWNqe+/18xbYM1F8Rs2CXWE46pZc1FOrnHZksUMo3RGT5hMbHLKVputiQBHofBYsXyZF8OYTOzOf+xavCjGi2FIA6Zs3jpp4njapFQ0S0qvN3LBWRFhQYEBrXsvk/vCh4Mh4ypsu/BwT/gA+K4A0q8+PGyYDywfCS82ULauuwNxZwHA8TE/lUF/b+jiav8xuwRWnYbUCaBhGvvDyutgdRYUVbfane7dd+D4iVPS/XScC0c7AFy6XLh4UYzDvtbp+i2MiXb4kUwmGzZ0yJmz2cJeGzjAv8nOJdfsGNpRX2/Zt//ga6OChN6hiuM2JSYv/XihcFhLfQFpBVGjE8aNHU0vSLazc4wGw2mHo59IOxUOk4n995lsm822YWNScx4ekXCIzEh8wiYnyUefPtrUrV813y5dLvzZarWuXBUrHGfCe9Tp+n34QaRcLqctTzoi7C8zyI/k+q1+I35KmNwXurhC6KsQ+ioAgJkDAOjWBeYPhflDAQDu3IevL0BZHdyyQdxZOCcZ/8N8YMFQAIBz12HiLvBTwvKRkHcdRvnCV+fFx8eGPNwmIjK5L0zQ2KVndTCcKYZtFyBqMIzybeWbDZ06JXTqlCqO27Ildd68OUTHhfPB4SNHo+fPJaMxKTnlrTff8GIYL4bZlLBeqPVJySm9vL3pMCAX1OtDcnON9PTwsJl0BhWN3uwc44X8/IUx0cIuJg9Ch/EdX3+bBgB6ffD6+I2kXbJzjNt37Bw3djTZNhhOi+wcGcE1PL8hfp2o6engbtyMiOcWQXtVcdy2b9JsNpvI5gh/r1brJzxdKByBIwJInMKazWnbdxL5SNv+3bKli9vAE14suFTD8/PmzXEY3126XBg1O1Jo3Bz6jra3sjP7Q60NVmfB8pGQaYb0q/aH9ouzED7gkSd/mA90k8EXoxv0HS0gSA1ZEfbtbRP//4T/X8XK65x11zU8v3TZCul+tcqHTmm9vL2DAgP27jtw7vyPUR9+UMPztDf5Gn7mjGkt+L3bd+zcvmMn2Y6IjBJNITpdv46hHSYTW1l5g7joyMjw73ft+bWsbPee/dOnvZ+bm5edYyTTe8LGRCofxKF59+yxMCZapNzkI43mleaYLqFzIa6eJlDUatXCmOjsHOOGjUnUvxCrqVb5rFu7RihkRCAokbPC0rbvZM3myFnhgSMCcnKNxJiw5iKtxs+pT2AVx6VnHJr87jsiPbWbI7ZILpOpVCphECccNCRqAwCr1SoyXA35r9aKVlQKuFwBM/tD3FlYFAB1NhjuA+lX4cQ1qL0D4f5w0/IwamjSdwA8jETUngAAX4y2hzPSs+ZkOvAjq063hWJ6KhQklpT6DjI+WdZcUnqdjjrLbYvVauWqbwKAwZCl1Wpo7ElHMhGF+QsWimJwgru72+rPPhVF9IMHDWr1CLQttKNPH+36uLVkmzREesZhYpj9/fuvi4svKysLnTqF3hsxBTOmhwYFBlRxnK+v78pVscQdkEfCYSh+/MQpEmFSRXfYjqRLaOY1KDBAq/VbFxdPzpXJZA5jKNZsptsMozx85CjRCxFm52vH97v28HytwXB64AB/0aAhsuKpUAiDOKHvoEMWANo4Zkm/as9oxIbAogAoKIdPRgLAw2iF2AESWQA013f8VAY93O0xy8Gr8F5f6N8T1gQ/ku+IDYEgtYPrUBti7ztOLDFPjhfDSIcfeSLoGFv92adVHHfp0uUxo/UAYLltAYAL+flBgQHlFRWFhVeOnzhFwkwAeHvShIKCSyRmGTNGf/KkwZiXt3vPfnrlwYMGiaYNQmHhFWpDpPF+e8+VAgCJU9Qqn00J68m492KYdWvXJGxM/GjREirPXgzzZWICbf3wsJlyuYzMimqVz+avkhxmqqX5DqFtE866wiYTNTRJfzSeSeK46n8eziQdySiVQllhWbNTay579x3ga3ji14x5ecf+9YNwTjMYsmQyebtNv5MIhaYkabqUkjrBvkFyGbEh8KfuTaQwZZ2hiytUPRqB1dlgoxHOXW/QX7SN73D4DEtzamTq4vna3Xv263T9SIRiNv9iMrFkEBLXQI7/7bcauVzu5tbVYQWA5DukQ7cD+w4aaJDGSs84JM02Dxs6ZOmyFbRYIO0Dhx81zqiRQazZTCsONEW0es3nNAs9KyLMYVvTELEhedZq/CZNHB+/YRPHVQssCeO8LsnOMZ47/+OK5ctYtggAAoYP/0Pv3itXxZLwrb7eYrXaRutfy83NExkxUcxCNto4ZhGJCMkyiBKZomOIWaC5CWlZBAB0PcHMwZVKeK8vRA8Vp0LoNf2UsDoYer3o2Hc0FOk8OY3P7eRRNxiyrFYb9YAmEyuXyzUavx9OnCRWsbLyBk29nTmbPW7saJXKp6KycvOWVKHFFqoGicqFdUah73AY6bTffEdyylZaZGlI/8LDZu7dd4CGJ6KiFM/XSnNOjdcRe/fuVVxczLJFXoEMCSy1Wo00ihE5dofKzSiVQo0gMpG2fSdrLhLu1GhecZ5w7Nq9NyZ6rhfDsFAkLMEkJafMmbsgJnpueNjM7BwjvYXikhJftZoEIHp9SFBgAI1ZiDGmSei2qbM0FCAIqyHUgLzsAZ+cgnPXIXUC3KiHVachajAM6AVzMu0bxIxQ0Zl+8JFUiGPX9rMDs9PkWc4wIEJjSyoy9KPLhT/LZbI3Xx/3923f5F8syMw85t9f58UwJL1NB/yXiQnCCFSKXC4XpsylqZYOk+8QVRnJwyCsrdCqFYk7IiKj1Cqf2R9EHDiYQY2DNAnaeL5DLu+q1WpI6FhaWmq12fT64Ia6UzrrCoVpxIjhIpkgiQ/JHqf4DpKBXxu7yqHtIsX/bd+kRc2OFAril8mb1WrV62PHWG02MnHRMLu0tFQul7t1dYOnhIZ5JN2QXSKOXCbusm97yCDRCH5KGOULZ4obq56AoxJM6gQoKIes/zxSVWkkgeIkhGNJWiKl0+T0ae+TGU6tVr315hvEWQiLiaIwXOQ7aG6L8WKkvrKhszpAvkNU69Zq/dIzDl0suBQUGEBWf+j1IURHggIDSEObTOzj+kNhvgMA9PrgTYnJQv2WOgvpkj7SB4yyuyBC0Wg1fkL5YBixEwkcEeCMRGl2jpFlzaK6j1SdSYaI+g6SM0pKTiHpG5HocNU3ZXKZ81zrk/gOsp/ENWYOph+0S0Ctze4aens4DnakDsJPCR6yp+87pM88LZHabHdWr/m8hufJxJCdY6zheTLDXcjPB4AanrfcttCeEmqQ1EFYbltoffcZ8R10NOv1IVu2pBKv4cUwarWKmIKLBZcAYOAAf2f8Uof6LZrSSe3WYR9QpYicFb5k2XK6h6RLHz0gzBk9QZW0BaJDvFVh4ZWIyCgae9fXWwyG03p9yFPMmzbiO8ii0ls2iDoCRdX2pajnf32oET3c4UZ9s3xHdzfo4gqcBZ46DQXXMlkXGkHT6jsAfLRoCQkqDYaspctWkNWiTfoOrooDAMaLebo365Q6y8AB/gbD6cyjx8ggJlO9ycSmZxyKmh3Z4mmwiuNKSkppLlqEQ/0GwRIS6ZTOskVWq1XUBwyjTIiPS9v+nTR4eXvShHb1SsuBgxlnzmbrdP12pG0ThngkAfznwQPlcrlDpaYrqRUKD9HSOOf5DiIWWRFw5z6cvGYvsggTH59lAQAcmWFfgV5eB4nGBn3H5UoY0OthfbekBib3tZeBG4pZoNG1IU+OKH1Gqo2kkYXrvsjSAUbZfeWqWLJAgWRD+uteTU7ZWlxc4tB3+Pv3z83No8WHoKARNEvaSPK7obUhrYLLgwcPnJouagjhLTX5KgddeJuecYhUYUjMQt5nmfzuOxfy88kLSJlHjx0/cYocTxeACduO9miTWdicXGN19U0SsDCMckTA8JYtRb9WXN7R/3tdxS2YdgCeN0QLQ55tWjBKW9l3tPjFG09PRZO50rKysmFDh3BVHHmJQ6fr5+buRgyeTtePeMLQqVP0+uB1cfEkQSutnDU/NAgcEQAIgrSN70Ck/Lfi5sve3dF3oO94xnwH/u8fp/P7g9+t1jvYDki75e7de507uz7uWagdTqdrVxlfV4/tgLRbamrru7k/9lsOqB1OR9HN7f7vDyqqaqw2/MelSLtzHFXV/N2791rw9U74/SxOp3Nn1x5KBV9nqb5Z5+JS30G/Fw7gufteuGvFz8v3wr3s3ZICIuZKEQRpCRizIAiC2oEgCGoHgiCoHQiCoHYgCIKgdiAIgtqBIAhqB4IgqB0IgqB2IAiCoHYgCILagSBIW/I/E7gJk6HthWUAAAAASUVORK5CYII=",q="/sealdice-manual-next/assets/qsign-config.C7X6Y-jY.png",f="/sealdice-manual-next/assets/gocq-folder.BqYrXyGR.png",v="/sealdice-manual-next/assets/gocq-warn1.DnQT2Y8j.png",S="/sealdice-manual-next/assets/gocq-warn2.Be6mD1Aa.png",C="/sealdice-manual-next/assets/gocq-step1.pboT6Yxb.png",Q="/sealdice-manual-next/assets/gocq-step2.-UlYTUsA.png",B="/sealdice-manual-next/assets/gocq-success.DvcHSdvM.png",x="/sealdice-manual-next/assets/onebot11.hPU3-IW2.png",P="/sealdice-manual-next/assets/onebot11-success.B8KhG_3g.png",w="/sealdice-manual-next/assets/platform-qq-shamrock-1.DJ7tSnjn.png",L="/sealdice-manual-next/assets/platform-qq-shamrock-2.BojvCHzi.png",I="/sealdice-manual-next/assets/platform-qq-shamrock-3.BlEqBGNz.png",R="/sealdice-manual-next/assets/platform-qq-shamrock-4.FmFC-9a8.png",y="/sealdice-manual-next/assets/platform-qq-shamrock-5.BMm24yfS.png",E="/sealdice-manual-next/assets/platform-qq-shamrock-6.Bf1yZXSr.png",z="/sealdice-manual-next/assets/platform-qq-shamrock-7.DfAmZJ9X.png",W="/sealdice-manual-next/assets/platform-qq-shamrock-8.BJqlFaWq.png",Y="/sealdice-manual-next/assets/platform-qq-shamrock-9.CRgE7lL1.png",K="/sealdice-manual-next/assets/image-016.McE9_BqK.png",F="/sealdice-manual-next/assets/image-017.h2f0ACoz.png",O="/sealdice-manual-next/assets/image-018.DTqSvbQG.png",aa=JSON.parse('{"title":"其它归档内容","description":"","frontmatter":{"lang":"zh-cn","title":"其它归档内容"},"headers":[],"relativePath":"archive/archive-other.md","filePath":"archive/archive-other.md","lastUpdated":1728702230000}'),X={name:"archive/archive-other.md"},Z={class:"warning custom-block"},G={class:"custom-block-title"},U={class:"warning custom-block"},M={class:"custom-block-title"},T={id:"shamrock",tabindex:"-1"},N={id:"shamrock-lspatch",tabindex:"-1"};function D(H,o,V,J,j,_){const l=c("Badge"),r=c("PluginTabsTab"),n=c("PluginTabs");return h(),d("div",null,[o[16]||(o[16]=a("h1",{id:"其它归档内容",tabindex:"-1"},[t("其它归档内容 "),a("a",{class:"header-anchor",href:"#其它归档内容","aria-label":'Permalink to "其它归档内容"'},"")],-1)),o[17]||(o[17]=a("h2",{id:"go-cqhttp-mirai",tabindex:"-1"},[t("Go-cqhttp / Mirai "),a("a",{class:"header-anchor",href:"#go-cqhttp-mirai","aria-label":'Permalink to "Go-cqhttp / Mirai"'},"")],-1)),a("div",Z,[a("p",G,[o[0]||(o[0]=t("注意:海豹已于 ")),e(l,{type:"warning",text:"v1.4.5"}),o[1]||(o[1]=t(" 版本弃用此方案,以下内容归档于 2024 年 5 月 7 日。"))])]),o[18]||(o[18]=i('危险:此方案已经接近不可用
由于 QQ 官方的检测,使用 Go-cqhttp 方案成功连接的成功率已经越来越低。即使成功连接,也可能面临高达每月 2 次的频繁冻结等情况。
我们不推荐任何用户再使用此方案连接 QQ 平台。
危险:Go-cqhttp 已停止维护
Go-cqhttp 的开发者已无力维护项目(见 go-cqhttp/issue#2471)。在未来 qsign 签名服务彻底被官方封死之后,Go-cqhttp 将无法继续使用。
危险:qsign 已停止维护
原 qsign 作者已因「不可抗力」无法再维护此项目,对应原代码仓库也已删除,该方法会在未来逐渐失效,请做好预期准备。
部署签名服务,即使用开源签名服务 qsign,是目前用来绕过检测的最有效手段。
你可以自己在本地搭一个 qsign 服务,也可以使用别人搭好的。
注意:自行搭建签名服务
如果你的动手能力足够强或者有足够的电脑知识,强烈推荐 自己搭建本地签名服务器。
使用他人的签名服务可能会泄漏以下信息 (截取自 qsign 的说明):
- 登录账号
- 登录时间
- 登录后发送的消息内容
- 登录后发送消息的群号/好友 ID
不会泄露的信息:
- 账号密码
- 账号
session
- 群列表/好友列表
- 接收的消息
- 除发送消息外的任何历史记录
使用共享签名服务可能会提高账号被封禁的概率。
在登录账号的时候会看到这样一个界面:
点击下面的「签名服务」一栏的「简易配置」,可以看到如下配置项:
提示:默认的 qsign 配置
没有特殊设置的话,qsign 的 URL 通常默认为 http://localhost:13579
,key 通常默认为 114514
。
提示:有能力的用户可以自行搭建服务。
注意
由于项目的特殊性,下面的方法随时可能失效,我们不对信息的及时性做任何保证。可以加入海豹官方群寻求帮助。
目前,Gocq 的过验证码网站已经停止服务,你需要自行抓取 ticket 进行登录。
步骤如下:
启动海豹,打开海豹的管理 ui,账号设置,添加账号;
账号类型选 QQ 账号,设备选「Android Pad-可共存」(此协议登录手机可同时在线,qsign 仅 Android 协议和 Android Pad 协议可用):
版本选择 8.9.70(如果你的 qsign 是其它版本,请选择对应版本):
填写 QQ 账号密码:
选择简易配置:
服务 URL 填你的 qsign 服务地址。
服务 key 填你的 qsign 服务密码,没有可以不填。
服务鉴权不填写。
接着点击登录,然后退出海豹(结束进程)。
将 go-cqhttp\\go-cqhttp.exe
文件复制到 海豹目录/data/default/extra/gocqQQ号(你登录骰娘的qq号)
这个文件夹下。
双击运行 go-cqhttp.exe
,两次确认后出现 go-cqhttp.bat
文件。
双击运行 go-cqhttp.bat
,出现以下消息后输入 2
,回车,复制链接到浏览器(终端选中后右键即可复制粘贴,没有选项)。
提示:出现 open image cache db failed
出现该报错的原因很可能是因为 gocq 的缓存数据库损坏,可以尝试删除 gocq 的 data 目录后重新运行 gocq。(注意是 gocq 的 data 而不是海豹的!)
按照 手动抓取 ticket 教程 - 哔哩哔哩 视频教程操作,成功滑条后(需要抓 ticket,不只是滑条)复制 ticket 到终端后回车。
如果登录成功,你应当能看到一条类似于 2022-05-06 20:00:00 [INFO] 登录成功,欢迎使用:XXX
的日志。
同时你应当在下方看到一条类似于 2022-05-06 20:00:00 [INFO] CQ Websocket 服务器已启动:[::]:8080
的日志。
结尾的 8080
即为 gocq 的 ws 端口。你的端口号可能不同,总之请记住这个端口号。
打开海豹,删除之前添加的账号,然后重新添加账号,选择 QQ(OneBot11 分离部署)
在连接地址中填写 ws://localhost:8080
(请把8080
替换为你的 gocq 端口号)。填写完成后点击下一步。
你的账号应当已经成功连接。
""
或少复制了内容),重新登录;解压一个新的 qsign 文件,重新配置,端口需要输入不同于前面的端口。
登录 QQ 的程序,现各大骰系都用此程序,此外还有 mirai 等其他程序。
通常 SignServer 都不会出现用户可直接读出的报错信息。如果出现了崩溃或闪退的情况,可以同时按下键盘上 Ctrl
Alt
Delete
这三个按键,找到任务管理器,在右上角的内存
一栏,那里会出现数字,有些调过设置了的会出现占用的运行内存占可用运行内存的百分比。
很显然,这里的内存就是指电脑 CPU 的可用运行内存不足,这时候通过在任务管理器关闭部分没有在使用的进程就可以解决。
注意:进程不能轻易关闭
通常情况下,Windows 系统会运行一些进程以保证系统的正常运行。这些进程一旦关闭,系统可能会出现无法运行的问题。
在一般情况下,不推荐关闭这些进程。如果需要通过关闭进程来腾出运行内存,可以选择关闭其他应用程序运行的进程。
当然,关闭应用进程跟直接退出应用程序差别不大。对于在看这个界面的你来说,关闭应用程序是更好的选择。
危险:Shamrock 已停止更新
Shamrock 已于 2024 年 4 月 20 日归档,将不再进行更新。
危险:1.1.0
及以上版本的 Shamrock 不适用以下教程
2024 年 4 月 2 日,OpenShamrock 开发组于 Discussion#272 宣布,Shamrock 将会从 1.1.0
版本起弃用 OneBot V11 支持,迁移至新的 Kritor 协议。
这意味着 1.1.0
及之后版本的 Shamrock 将不再支持 OneBot V11,以下教程也不再适用。请仔细分辨,以免造成麻烦。
海豹开发组也正在着手对新的 Kritor 协议进行适配,请耐心等待。
注意:有难度的操作
此方式存在一定难度,你可能需要对 Root,使用命令行程序等有所了解。
Shamrock
Shamrock 是一个基于 LSPosed/Xposed 框架,实现劫持 QQ 以对外暴露 Onebot API 的软件。你可以在 Android 手机/模拟器中使用 Shamrock 代替已经停止开发的 gocq。
遗憾的是,Shamrock 的使用依赖于 Android 的 root 权限,而手机厂商对 root 管控愈加严格,实体手机获取 root 权限的门槛很高,而模拟器中使用 Shamrock 的效果也不是很可观。因此,这种解决方案适合个人与朋友使用骰子的场景。
此外,如果你想使用 Shamrock 代替 gocq,请确保你有良好的计算机使用能力。
本节主要讲解如何使用模拟器实现 Shamrock,如果你有一台已经 root 的手机,也可以参考本节内容,本教程不涉及说明如何 root 手机,海豹官方也不对 root 手机造成的后果负责,请自行斟酌。
提示:如何 Root 手机
Root 手机可以参阅 小米手机安装面具教程。也可以前往 酷安 寻找更详细的教程。
注意:低配置设备可能无法使用 Shamrock!
在尝试通过模拟器使用 Shamrock 的场景下,由于模拟器对性能要求较高,包括 轻量级服务器、旧电脑、小主机等配置较低的设备可能无法支持使用。
下面将使用 夜神模拟器 作为示例。
使用时,确保安卓版本在安卓 8 以上,而在安卓 11 以下,最好使用安卓 9。
Magisk
Magisk(面具)是一套开源的 Android 自定义工具,通常用于获取 root 权限。
Root 即 Android 的超级用户权限,如对 QQ 应用进行注入等的危险操作需要 root 权限。
在使用之前,请在模拟器设置中打开 root 选项,软件中获取的一切权限都给予 通过,包括 root 权限。
使用 面具安装工具,把它安装到模拟器。
然后启动软件,输入 m
回车,再输入 y
回车,会索取超级用户权限,给予,然后输入 1
回车,再输入 a
回车,输入 1
回车,此时面具就安装到你的模拟器上了。
打开面具模块,此时面具会索取超级用户权限,给予,此时你会发现你的超级用户权限那里是灰的,关闭你的超级用户权限,重新启动你的模拟器。
此时你会发现你的超级用户模块已经激活。在面具的设置里启动 zygisk
模块,随后你需要再次重启模拟器,使得 zygisk
模块生效。
提示:使用 xposed/edxposed
理论上,使用更为老旧的 xposed/edxposed 或在手机上运行虚拟机的 virtualXposed 的方案也是可行的,但我们不推荐也未尝试过使用它们。
任何不按教程的行动请自行处理疑难问题,海豹官方不对此提供帮助。
请于 LSPosed Releases 页下载模块。
注意:zygisk
务必选择以 zygisk
结尾的包。
下载完成后,把文件上传到模拟器中。一般情况下,直接把文件拖动到模拟器就可以传文件了,且文件一般在 picture
文件夹中,如果没有请参照你使用的模拟器说明。
在你传完文件之后,在最右侧切换到「模块」页后,你可以看到从本地安装的选项。单击你刚刚传到模拟器里的文件,等待安装完成即可,随后你可以在右下角看到重启按钮,点击等待重启。
安装完成后应该如下所示:
请于 Shamrock Releases 下载 Shamrock 的 apk 安装包,直接将 apk 文件拖动到模拟器即可进行安装。
如果模拟器中没有安装 QQ,此时你还需要将 QQ 安装到模拟器中。
安装完成后,首先启动 Shamrock。在通知上,你可以打开 LSPosed 的页面,在模块一栏中启用 Shamrock。
选中 Shamrock,进入勾选 QQ,并长按 QQ 选择 强行停止。
随后再打开 QQ,你可以看到「加载 Shamrock 库成功」的提示,这代表 Shamrock 已经成功注入了 QQ。
成功注入后,打开 Shamrock 启用 ws 服务,通常情况下无需修改 Shamrock 的任何内容,如有其它需求请阅读 Shamrock 文档。
首先下载 adb 工具,解压到电脑中任何可用的位置。
随后找到模拟器供 adb 连接的端口,夜神模拟器路径示例如下:
其中:
Nox
是模拟器根路径。Nox_4
是模拟器的编号,你可以在多开助手中看到你的编号。guestport
值为 5555
的 hostport
即为所需端口,如示例中就是 62028,记住这个端口号。
在你解压的 platform-tools
里打开终端,或者把 platform-tools
加入环境变量后再启用终端。也可以在 platform-tools
里新建一个 .bat
文件,把下面的命令写到文件里面。
在打开的终端中输入命令:
.\\adb connect 127.0.0.1:端口
如替换为上面示例中的 62828:
.\\adb connect 127.0.0.1:62028
随后再执行:
.\\adb forward tcp:5800 tcp:5800
此时你已经成功开启端口了。
在账号添加中,选择「QQ(onebot11正向WS)」,按照下面的格式进行填写:
成功连接后即可使用。
',56)),a("h2",N,[o[12]||(o[12]=t("Shamrock LSPatch ")),e(l,{type:"tip",text:"v1.4.2"}),o[13]||(o[13]=t()),o[14]||(o[14]=a("a",{class:"header-anchor",href:"#shamrock-lspatch","aria-label":'Permalink to "Shamrock LSPatch注意:已发现 QQ 客户端针对 Shamrock 增加了检测机制。在新版 QQ 客户端上,Shamrock 已无法使用。以下内容归档于 2024 年 7 月 17 日。
注意:有难度的操作
此方式存在一定难度,你可能需要对使用命令行程序有所了解。
注意:Andriod 版本要求
由于 LSPatch 要求安卓版本 9.0 以上,因此你的安卓手机版本必须超过安卓 9。
LSPatch
LSPatch 是在无 root 环境下使用 Shamrock 的一种途径,原理是利用 Shizuku 安装经 LSPatch 修补后的 QQ,再使用 Shamrock 劫持 QQ 并对外开放 API。
Shizuku
Shizuku 是一个帮助其他应用直接使用系统 API 的应用,而 Shizuku 本身则需要通过电脑使用 adb 工具赋予权限。
Adb 即 Android 调试桥,是安卓官方提供的帮助在电脑端调试 Android 设备的命令行工具。
首先需要在你的手机安装 Shizuku,安装后需要在电脑中使用 adb 命令为其赋予权限。
',7)),e(n,null,{default:s(()=>[e(r,{label:"Windows"},{default:s(()=>o[15]||(o[15]=[a("p",null,[a("strong",null,"在 Windows 中使用 cmd 执行 adb 命令:")],-1),a("ol",null,[a("li",null,[t("安装 adb,工具下载见 "),a("a",{href:"#开放模拟器端口供海豹对接"},"上文"),t(";")]),a("li",null,[t("打开 cmd 窗口; "),a("ul",null,[a("li",null,[t("如果你的电脑是 Window 11 操作系统,你可以直接右键 "),a("code",null,"platform-tools"),t(" 文件夹单击 "),a("strong",null,"在此处打开命令行"),t(";")]),a("li",null,"其它版本的打开方式请自行搜索。")])]),a("li",null,"你有多种方式使用 adb:")],-1),a("ul",null,[a("li",null,[t("将 adb 添加至系统环境变量,在系统开始一栏中可以直接搜索到该功能,随后将 "),a("strong",null,"解压好的"),t(),a("code",null,"platform-tools"),t(" 路径填入至系统变量中的 "),a("code",null,"path"),t(",例如,adb 在 "),a("code",null,"E:/shamrock achieve/platform-tools"),t(" 文件夹中,那么你只需要将该路径填入 "),a("code",null,"path"),t(" 即可。 "),a("img",{src:K,alt:"adb path"}),a("ul",null,[a("li",null,[t("如果你是旧版本 Window(如 Win 7),系统未提供对应的 GUI,你需要使用 "),a("strong",null,[a("code",null,";")]),t(" 隔开不同的路径。")])])]),a("li",null,[t("也可以选择使用 "),a("code",null,"cd"),t(" 命令切换至 adb 目录,使用此方法请将 adb 放在 C 盘;(由于 Windows 权限问题,使用运行开启的 cmd 实例无法访问 C 盘之外的路径。) "),a("ul",null,[a("li",null,[a("code",null,"win + R"),t(" 键启动「运行」;")]),a("li",null,[t("在运行中输入 "),a("code",null,"cmd"),t(" 并回车;")]),a("li",null,[t("在打开的黑框框中输入命令 "),a("code",null,"cd <替换为对应路径>"),t("。 "),a("img",{src:F,alt:"切换到 adb 文件夹"})])])]),a("li",null,[t("还可以选择在 "),a("code",null,"platform-tools"),t(" 文件夹中新建"),a("code",null,".bat"),t(" 文件。")])],-1)])),_:1})]),_:1}),o[25]||(o[25]=i('在手机中,你需要开启 USB 调试 ,在手机设置中,选择「更多设置—关于手机」,多次点击软件版本号,即可进入开发者模式。
随后在「更多设置—开发者选项」中打开 USB 调试,使用数据线连接电脑和手机,随后在你的手机中出现指纹调试弹框,给予通过。
在电脑中使用命令:
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
安装方式 上文 有提及,此处不予重复。
在 LSPatch 中,长按修补后的 QQ 出现模块作用域,允许 Shamrock 然后重启 LSPatch。
激活 Shamrock 模块有三个前提,即 QQ 进程,Shamrock 进程和 LSPatch 进程存活,请自行配置保活策略,例如允许自启动,允许后台存活和关闭后台高耗电等。
首先安装海豹安卓端。
注意:确认海豹版本
请使用版本为 1.4.2 以上的安卓端海豹。
建议使用 反向 ws 设置。在海豹中,账号添加中选择「QQ(onebot11反向WS)」,填入骰子 QQ 号和要开放的 ws 端口(例如 :6544
)。
随后在 Shamrock 中的被动 ws 连接地址中写 ws://localhost:6544/ws
。
危险:此方案已经接近不可用
由于 QQ 官方的检测,使用 Go-cqhttp 方案成功连接的成功率已经越来越低。即使成功连接,也可能面临高达每月 2 次的频繁冻结等情况。
我们不推荐任何用户再使用此方案连接 QQ 平台。
危险:Go-cqhttp 已停止维护
Go-cqhttp 的开发者已无力维护项目(见 go-cqhttp/issue#2471)。在未来 qsign 签名服务彻底被官方封死之后,Go-cqhttp 将无法继续使用。
危险:qsign 已停止维护
原 qsign 作者已因「不可抗力」无法再维护此项目,对应原代码仓库也已删除,该方法会在未来逐渐失效,请做好预期准备。
部署签名服务,即使用开源签名服务 qsign,是目前用来绕过检测的最有效手段。
你可以自己在本地搭一个 qsign 服务,也可以使用别人搭好的。
注意:自行搭建签名服务
如果你的动手能力足够强或者有足够的电脑知识,强烈推荐 自己搭建本地签名服务器。
使用他人的签名服务可能会泄漏以下信息 (截取自 qsign 的说明):
- 登录账号
- 登录时间
- 登录后发送的消息内容
- 登录后发送消息的群号/好友 ID
不会泄露的信息:
- 账号密码
- 账号
session
- 群列表/好友列表
- 接收的消息
- 除发送消息外的任何历史记录
使用共享签名服务可能会提高账号被封禁的概率。
在登录账号的时候会看到这样一个界面:
点击下面的「签名服务」一栏的「简易配置」,可以看到如下配置项:
提示:默认的 qsign 配置
没有特殊设置的话,qsign 的 URL 通常默认为 http://localhost:13579
,key 通常默认为 114514
。
提示:有能力的用户可以自行搭建服务。
注意
由于项目的特殊性,下面的方法随时可能失效,我们不对信息的及时性做任何保证。可以加入海豹官方群寻求帮助。
目前,Gocq 的过验证码网站已经停止服务,你需要自行抓取 ticket 进行登录。
步骤如下:
启动海豹,打开海豹的管理 ui,账号设置,添加账号;
账号类型选 QQ 账号,设备选「Android Pad-可共存」(此协议登录手机可同时在线,qsign 仅 Android 协议和 Android Pad 协议可用):
版本选择 8.9.70(如果你的 qsign 是其它版本,请选择对应版本):
填写 QQ 账号密码:
选择简易配置:
服务 URL 填你的 qsign 服务地址。
服务 key 填你的 qsign 服务密码,没有可以不填。
服务鉴权不填写。
接着点击登录,然后退出海豹(结束进程)。
将 go-cqhttp\\go-cqhttp.exe
文件复制到 海豹目录/data/default/extra/gocqQQ号(你登录骰娘的qq号)
这个文件夹下。
双击运行 go-cqhttp.exe
,两次确认后出现 go-cqhttp.bat
文件。
双击运行 go-cqhttp.bat
,出现以下消息后输入 2
,回车,复制链接到浏览器(终端选中后右键即可复制粘贴,没有选项)。
提示:出现 open image cache db failed
出现该报错的原因很可能是因为 gocq 的缓存数据库损坏,可以尝试删除 gocq 的 data 目录后重新运行 gocq。(注意是 gocq 的 data 而不是海豹的!)
按照 手动抓取 ticket 教程 - 哔哩哔哩 视频教程操作,成功滑条后(需要抓 ticket,不只是滑条)复制 ticket 到终端后回车。
如果登录成功,你应当能看到一条类似于 2022-05-06 20:00:00 [INFO] 登录成功,欢迎使用:XXX
的日志。
同时你应当在下方看到一条类似于 2022-05-06 20:00:00 [INFO] CQ Websocket 服务器已启动:[::]:8080
的日志。
结尾的 8080
即为 gocq 的 ws 端口。你的端口号可能不同,总之请记住这个端口号。
打开海豹,删除之前添加的账号,然后重新添加账号,选择 QQ(OneBot11 分离部署)
在连接地址中填写 ws://localhost:8080
(请把8080
替换为你的 gocq 端口号)。填写完成后点击下一步。
你的账号应当已经成功连接。
""
或少复制了内容),重新登录;解压一个新的 qsign 文件,重新配置,端口需要输入不同于前面的端口。
登录 QQ 的程序,现各大骰系都用此程序,此外还有 mirai 等其他程序。
通常 SignServer 都不会出现用户可直接读出的报错信息。如果出现了崩溃或闪退的情况,可以同时按下键盘上 Ctrl
Alt
Delete
这三个按键,找到任务管理器,在右上角的内存
一栏,那里会出现数字,有些调过设置了的会出现占用的运行内存占可用运行内存的百分比。
很显然,这里的内存就是指电脑 CPU 的可用运行内存不足,这时候通过在任务管理器关闭部分没有在使用的进程就可以解决。
注意:进程不能轻易关闭
通常情况下,Windows 系统会运行一些进程以保证系统的正常运行。这些进程一旦关闭,系统可能会出现无法运行的问题。
在一般情况下,不推荐关闭这些进程。如果需要通过关闭进程来腾出运行内存,可以选择关闭其他应用程序运行的进程。
当然,关闭应用进程跟直接退出应用程序差别不大。对于在看这个界面的你来说,关闭应用程序是更好的选择。
危险:Shamrock 已停止更新
Shamrock 已于 2024 年 4 月 20 日归档,将不再进行更新。
危险:1.1.0
及以上版本的 Shamrock 不适用以下教程
2024 年 4 月 2 日,OpenShamrock 开发组于 Discussion#272 宣布,Shamrock 将会从 1.1.0
版本起弃用 OneBot V11 支持,迁移至新的 Kritor 协议。
这意味着 1.1.0
及之后版本的 Shamrock 将不再支持 OneBot V11,以下教程也不再适用。请仔细分辨,以免造成麻烦。
海豹开发组也正在着手对新的 Kritor 协议进行适配,请耐心等待。
注意:有难度的操作
此方式存在一定难度,你可能需要对 Root,使用命令行程序等有所了解。
Shamrock
Shamrock 是一个基于 LSPosed/Xposed 框架,实现劫持 QQ 以对外暴露 Onebot API 的软件。你可以在 Android 手机/模拟器中使用 Shamrock 代替已经停止开发的 gocq。
遗憾的是,Shamrock 的使用依赖于 Android 的 root 权限,而手机厂商对 root 管控愈加严格,实体手机获取 root 权限的门槛很高,而模拟器中使用 Shamrock 的效果也不是很可观。因此,这种解决方案适合个人与朋友使用骰子的场景。
此外,如果你想使用 Shamrock 代替 gocq,请确保你有良好的计算机使用能力。
本节主要讲解如何使用模拟器实现 Shamrock,如果你有一台已经 root 的手机,也可以参考本节内容,本教程不涉及说明如何 root 手机,海豹官方也不对 root 手机造成的后果负责,请自行斟酌。
提示:如何 Root 手机
Root 手机可以参阅 小米手机安装面具教程。也可以前往 酷安 寻找更详细的教程。
注意:低配置设备可能无法使用 Shamrock!
在尝试通过模拟器使用 Shamrock 的场景下,由于模拟器对性能要求较高,包括 轻量级服务器、旧电脑、小主机等配置较低的设备可能无法支持使用。
下面将使用 夜神模拟器 作为示例。
使用时,确保安卓版本在安卓 8 以上,而在安卓 11 以下,最好使用安卓 9。
Magisk
Magisk(面具)是一套开源的 Android 自定义工具,通常用于获取 root 权限。
Root 即 Android 的超级用户权限,如对 QQ 应用进行注入等的危险操作需要 root 权限。
在使用之前,请在模拟器设置中打开 root 选项,软件中获取的一切权限都给予 通过,包括 root 权限。
使用 面具安装工具,把它安装到模拟器。
然后启动软件,输入 m
回车,再输入 y
回车,会索取超级用户权限,给予,然后输入 1
回车,再输入 a
回车,输入 1
回车,此时面具就安装到你的模拟器上了。
打开面具模块,此时面具会索取超级用户权限,给予,此时你会发现你的超级用户权限那里是灰的,关闭你的超级用户权限,重新启动你的模拟器。
此时你会发现你的超级用户模块已经激活。在面具的设置里启动 zygisk
模块,随后你需要再次重启模拟器,使得 zygisk
模块生效。
提示:使用 xposed/edxposed
理论上,使用更为老旧的 xposed/edxposed 或在手机上运行虚拟机的 virtualXposed 的方案也是可行的,但我们不推荐也未尝试过使用它们。
任何不按教程的行动请自行处理疑难问题,海豹官方不对此提供帮助。
请于 LSPosed Releases 页下载模块。
注意:zygisk
务必选择以 zygisk
结尾的包。
下载完成后,把文件上传到模拟器中。一般情况下,直接把文件拖动到模拟器就可以传文件了,且文件一般在 picture
文件夹中,如果没有请参照你使用的模拟器说明。
在你传完文件之后,在最右侧切换到「模块」页后,你可以看到从本地安装的选项。单击你刚刚传到模拟器里的文件,等待安装完成即可,随后你可以在右下角看到重启按钮,点击等待重启。
安装完成后应该如下所示:
请于 Shamrock Releases 下载 Shamrock 的 apk 安装包,直接将 apk 文件拖动到模拟器即可进行安装。
如果模拟器中没有安装 QQ,此时你还需要将 QQ 安装到模拟器中。
安装完成后,首先启动 Shamrock。在通知上,你可以打开 LSPosed 的页面,在模块一栏中启用 Shamrock。
选中 Shamrock,进入勾选 QQ,并长按 QQ 选择 强行停止。
随后再打开 QQ,你可以看到「加载 Shamrock 库成功」的提示,这代表 Shamrock 已经成功注入了 QQ。
成功注入后,打开 Shamrock 启用 ws 服务,通常情况下无需修改 Shamrock 的任何内容,如有其它需求请阅读 Shamrock 文档。
首先下载 adb 工具,解压到电脑中任何可用的位置。
随后找到模拟器供 adb 连接的端口,夜神模拟器路径示例如下:
其中:
Nox
是模拟器根路径。Nox_4
是模拟器的编号,你可以在多开助手中看到你的编号。guestport
值为 5555
的 hostport
即为所需端口,如示例中就是 62028,记住这个端口号。
在你解压的 platform-tools
里打开终端,或者把 platform-tools
加入环境变量后再启用终端。也可以在 platform-tools
里新建一个 .bat
文件,把下面的命令写到文件里面。
在打开的终端中输入命令:
.\\adb connect 127.0.0.1:端口
如替换为上面示例中的 62828:
.\\adb connect 127.0.0.1:62028
随后再执行:
.\\adb forward tcp:5800 tcp:5800
此时你已经成功开启端口了。
在账号添加中,选择「QQ(onebot11正向WS)」,按照下面的格式进行填写:
成功连接后即可使用。
',56)),a("h2",N,[o[12]||(o[12]=t("Shamrock LSPatch ")),e(l,{type:"tip",text:"v1.4.2"}),o[13]||(o[13]=t()),o[14]||(o[14]=a("a",{class:"header-anchor",href:"#shamrock-lspatch","aria-label":'Permalink to "Shamrock LSPatch注意:已发现 QQ 客户端针对 Shamrock 增加了检测机制。在新版 QQ 客户端上,Shamrock 已无法使用。以下内容归档于 2024 年 7 月 17 日。
注意:有难度的操作
此方式存在一定难度,你可能需要对使用命令行程序有所了解。
注意:Andriod 版本要求
由于 LSPatch 要求安卓版本 9.0 以上,因此你的安卓手机版本必须超过安卓 9。
LSPatch
LSPatch 是在无 root 环境下使用 Shamrock 的一种途径,原理是利用 Shizuku 安装经 LSPatch 修补后的 QQ,再使用 Shamrock 劫持 QQ 并对外开放 API。
Shizuku
Shizuku 是一个帮助其他应用直接使用系统 API 的应用,而 Shizuku 本身则需要通过电脑使用 adb 工具赋予权限。
Adb 即 Android 调试桥,是安卓官方提供的帮助在电脑端调试 Android 设备的命令行工具。
首先需要在你的手机安装 Shizuku,安装后需要在电脑中使用 adb 命令为其赋予权限。
',7)),e(n,null,{default:s(()=>[e(r,{label:"Windows"},{default:s(()=>o[15]||(o[15]=[a("p",null,[a("strong",null,"在 Windows 中使用 cmd 执行 adb 命令:")],-1),a("ol",null,[a("li",null,[t("安装 adb,工具下载见 "),a("a",{href:"#开放模拟器端口供海豹对接"},"上文"),t(";")]),a("li",null,[t("打开 cmd 窗口; "),a("ul",null,[a("li",null,[t("如果你的电脑是 Window 11 操作系统,你可以直接右键 "),a("code",null,"platform-tools"),t(" 文件夹单击 "),a("strong",null,"在此处打开命令行"),t(";")]),a("li",null,"其它版本的打开方式请自行搜索。")])]),a("li",null,"你有多种方式使用 adb:")],-1),a("ul",null,[a("li",null,[t("将 adb 添加至系统环境变量,在系统开始一栏中可以直接搜索到该功能,随后将 "),a("strong",null,"解压好的"),t(),a("code",null,"platform-tools"),t(" 路径填入至系统变量中的 "),a("code",null,"path"),t(",例如,adb 在 "),a("code",null,"E:/shamrock achieve/platform-tools"),t(" 文件夹中,那么你只需要将该路径填入 "),a("code",null,"path"),t(" 即可。 "),a("img",{src:K,alt:"adb path"}),a("ul",null,[a("li",null,[t("如果你是旧版本 Window(如 Win 7),系统未提供对应的 GUI,你需要使用 "),a("strong",null,[a("code",null,";")]),t(" 隔开不同的路径。")])])]),a("li",null,[t("也可以选择使用 "),a("code",null,"cd"),t(" 命令切换至 adb 目录,使用此方法请将 adb 放在 C 盘;(由于 Windows 权限问题,使用运行开启的 cmd 实例无法访问 C 盘之外的路径。) "),a("ul",null,[a("li",null,[a("code",null,"win + R"),t(" 键启动「运行」;")]),a("li",null,[t("在运行中输入 "),a("code",null,"cmd"),t(" 并回车;")]),a("li",null,[t("在打开的黑框框中输入命令 "),a("code",null,"cd <替换为对应路径>"),t("。 "),a("img",{src:F,alt:"切换到 adb 文件夹"})])])]),a("li",null,[t("还可以选择在 "),a("code",null,"platform-tools"),t(" 文件夹中新建"),a("code",null,".bat"),t(" 文件。")])],-1)])),_:1})]),_:1}),o[25]||(o[25]=i('在手机中,你需要开启 USB 调试 ,在手机设置中,选择「更多设置—关于手机」,多次点击软件版本号,即可进入开发者模式。
随后在「更多设置—开发者选项」中打开 USB 调试,使用数据线连接电脑和手机,随后在你的手机中出现指纹调试弹框,给予通过。
在电脑中使用命令:
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
安装方式 上文 有提及,此处不予重复。
在 LSPatch 中,长按修补后的 QQ 出现模块作用域,允许 Shamrock 然后重启 LSPatch。
激活 Shamrock 模块有三个前提,即 QQ 进程,Shamrock 进程和 LSPatch 进程存活,请自行配置保活策略,例如允许自启动,允许后台存活和关闭后台高耗电等。
首先安装海豹安卓端。
注意:确认海豹版本
请使用版本为 1.4.2 以上的安卓端海豹。
建议使用 反向 ws 设置。在海豹中,账号添加中选择「QQ(onebot11反向WS)」,填入骰子 QQ 号和要开放的 ws 端口(例如 :6544
)。
随后在 Shamrock 中的被动 ws 连接地址中写 ws://localhost:6544/ws
。
本节内容
本节为计算机小白指南中的第四部分。
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户快速查询特定名词/术语的含义。本节不能代替权威解释或各项目的官方文档。
关于如何正确地提问,请看 如何正确提问,关于如何快速学习相关背景知识,请看 如何高效学习;关于一些小白常见的问题,请看 计算机小白常见问题。
CQ 码是酷 Q(CoolQ)时代定义的一套接口语言,方便用户快速编写指定类型 QQ 消息。可以参考 这个页面 进行编写。
参见 IP 与端口。
服务器可以简单地理解为持续保持开机的电脑,即持续提供服务的机器。
我们知道,骰子本质是在电脑上运行的程序,如果希望骰子 24 小时都可以回应我们的指令,那么就需要电脑保持开启的状态。但这样做的不稳定性非常大,如果出现例如家里突然停电了这样的情况,骰子就不能 24 小时随时回复我们的指令了,并且,这样也很费电。而服务器正是这样一种尽可能稳定运行的、不会关机的电脑,他们可能以「云电脑」这样的名字出现,但从本质上来说,这就是服务器。
提示:服务器和个人计算机在使用上有明显差异
相比开机激活之后马上就可以投入使用的个人计算机,服务器从运行系统上就与其稍有不同。这里以 Windows 系统的服务器和个人电脑举例。
服务器使用的是微软特地为了服务器开发的 Windows Server 系统。顾名思义,这个系统就是专为服务器开发的,在部分设置的选项中也与个人计算机有所不同。
正因如此,服务器一开始并不容易熟练操作。不过,这篇速查表的目的就是让屏幕前不太明白计算机相关知识的用户可以快速入门。所以,你也不必对这些问题有太大的压力。
工作目录是用户在使用 命令行界面 时,当前「处于」的目录。在运行程序时,程序会以工作目录作为索引目录树的起始位置。
海豹核心要求的、和实际运行时的工作目录即为「包含 sealdice-core(.exe)
文件和 data
目录、通常还包含 lagrange
目录」的目录(文件夹)。
海豹工作目录内的文件结构可以参考 海豹的本地文件。
参见 无头。
在分离部署 QQ 后端和部署多只海豹时,你都需要正确处理 IP 与端口号。IP 与端口是互联网应用用于定位彼此的方式之一,IP 用于区分网络中的不同设备,而端口用于区分同一设备上的不同应用。打个比方,IP 就像是地址,可以定位到某个特定的房屋,而端口号是这个屋子里住户的编号,可以用于判断该联系这户人中的哪一位。在目前主流使用的 IPv4 标准下,IP 是形如 127.0.0.1
、192.168.0.1
的一串数字,端口号则是范围在 0-65535 的一个整数。两者组合时,通常使用 127.0.0.1:3456
的方式描述。
通常来说,服务端应用程序会「监听」一个端口,而客户端应用程序会试图连接到此端口。例如在分离部署 QQ 后端并采用正向 WS 连接时,QQ 后端会监听你在配置中指定的端口,而海豹会试图连接到这个端口;而海豹的 WebUI 作为服务端默认绑定到 3211 端口,你的浏览器则试图连接到 3211 端口。所以,在配置分离部署的 QQ 后端时,海豹中必须填入与你的 QQ 后端配置相同的端口号。
不同范围的 IP 地址都有与之相关的规定,而你在配置海豹的过程中最常见的是 127.0.0.1
或 localhost
。此地址一般用于指向本机,而非互联网上的其他设备。当你的海豹与 QQ 后端位于同一主机上,在海豹中需要通过此地址指向 QQ 后端。当你访问 WebUI 的设备与海豹所在的是同一主机,你也需要在浏览器地址栏填入此 IP。
同样的,端口号也不能随意指定。一般情况下,一个端口只能被一个服务端监听使用,这就是为什么当你部署多只海豹时需要切换端口,此时默认的 3211 端口已被第一只海豹占用。而低位端口(小数字)通常有其约定,例如 80 是 HTTP 端口,443 是 HTTPS 端口等。低位端口通常已经被占用,或系统安全策略不允许随意监听此类端口。所以,建议优先选择高位端口(大数字)部署 QQ 后端及海豹。
Issue 更常见的含义是偏向负面的「问题」,而在开源项目领域,issue 一词更多地被翻译为中性的「议题」。
在开源项目网站如 GitHub 的 Issues 标签页下,按默认设置,你可以看到一个开源项目的全部进行中的议题。这些议题主要包括了使用求助、Bug 反馈以及功能请求。在这里的讨论是所有人可见的,因此可以方便开发者与用户高效地共享信息。Issue 也是大部分开源项目正式的反馈渠道。
JSON 是一种 数据序列化语言。语法入门可以参考 编写牌堆。
你可能还想了解 控制台、命令行、Shell 与 命令提示符。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
Lagrange(拉格兰)是一个 NTQQ 协议相关的开源项目。其包括目前实现了 Linux NTQQ 协议的 Lagrange.Core,和提供 OneBot-V11 API 的 Lagrange.Onebot 两部分。
Lagrange 可以很方便的在多个平台(Windows、Linux、Mac)部署,海豹核心可以对接其提供的 OneBot-V11 API 来提供 QQ 骰子服务。
可以参考 连接平台 - QQ 中 有关的部分 和 Lagrange 的官方 GitHub 页面。
Linux 是一种基于 UNIX 操作系统设计的开源操作系统。Linux 广泛应用于服务器、嵌入式系统、超级计算机以及大多数互联网基础设施。它也可以用于桌面计算,尽管市场份额相对较小。
Linux 的主要优点包括稳定性、安全性、低成本(大部分 Linux 发行版都是免费的)和开源性(用户可以查看和修改源代码)。
LiteLoaderQQNT(LiteLoader)是 NTQQ 的插件加载器,允许通过插件注入 QQ 实现某些特定的功能。
可以参考 连接平台 - QQ 中 有关的部分 和 LiteLoader 的官方 GitHub 页面。
参见 日志。
命令行是 控制台 中,你实际输入命令的位置。通常,命令行行首会有 $
、#
或 >
等符号,它们是 Shell 生成的提示符 (Prompt),用于提示用户 Shell 正在等待用户输入命令。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
命令行界面即基于 命令行 的用户界面。在此界面下,用户通常使用输入指令的方式与操作系统或程序进行交互。
命令提示符(cmd.exe
)是 Windows 平台下,在上个世代常用,在如今(由于 Windows 过于完善的兼容性)也经常被使用到的一种 Shell。
命令提示符本身集成了 控制台,但由于其过于古老,具有诸多弊端。例如,当你用鼠标选中控制台内的文本时,正在运行的程序会被暂停。
因此,强烈建议你使用 Windows 终端 打开程序。在较新的 Windows 系统上,命令提示符默认使用 Windows 终端打开。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
NapCatQQ 是基于 PC NTQQ 本体实现一套 无头 Bot 框架。
可以参考 连接平台 - QQ 中 有关的部分 和 NapCatQQ 的官方 GitHub 页面。
NTQQ/QQNT 是腾讯公司基于 NT 内核,重新设计了用户界面的 QQ 客户端。腾讯官方称之为「QQ 9」。因此,如果发现自己使用的 QQ 不能正确加载 LiteLoader 等插件,请先检查 QQ 版本号是否大于 9。
参见 NTQQ。
在计算机领域中,日志通常指程序在运行时生成的一系列记录。这些记录通常反映了程序的运行状态,同时一般包含时间信息以方便定位对应的事件。在程序运行发生故障或不符合预期的行为时,日志中通常也会有所反映。日志通常分为信息(Info)、注意(Warning)和错误(Error)等不同的等级,而后两者就对应了上述的程序问题。
海豹的日志通常可以在三个地方找到:
程序运行中使用的数据,通常以特定的数据结构存储在内存之中。为了更方便地对数据进行存储、传输与重建,数据序列化语言被发明出来。这类语言通过特定的语法描述了数据之间的关系,并以文本的方式存储或传输。程序可以从这类语言中方便地恢复原有的数据结构。
我们日常使用的程序通常使用图形用户界面(GUI)与我们交互,即基于图形渲染和鼠标点击、拖拽的交互方式。而在编程领域和更古早的时期,命令行界面(CLI)则更为常用。在使用 CLI 时,我们第一个打开的程序通常就是 Shell。
Shell 是一个特殊的命令行界面程序,它给用户提供了通过输入命令与操作系统进行交互的交互方式。它会解析并执行用户输入的命令。
在类 Unix 系统中存在众多的 Shell,例如 Ubuntu 系统默认使用 Bash 而 macOS 默认使用 Zsh。Windows 系统推荐使用 PowerShell,而 命令提示符 也是一种 Shell。
许多时候,终端、控制台、命令行、Shell 与命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
TOML 是一种 数据序列化语言。语法入门可以参考 编写牌堆。
在计算机领域,无头(headless)通常指通过不生成图形化用户界面方式运行(原本有图形化用户界面的)程序。
UI 即「用户界面(User Interface)」,通常指用户与程序发生交互的位置。而 WebUI 顾名思义,就是通过网络生成、交互的用户界面。
在海豹的相关语境下,WebUI 指骰主能通过浏览器访问到的管理后台。海豹默认的 WebUI 监听 端口 为 3211,因此当你通过 3211 端口访问海豹的管理后台时,实质上就是在与海豹的 WebUI 交互。
参见 Windows 终端。
Windows 终端是一个为命令行用户准备的全新的、现代的、功能丰富的生产力 终端。它包含了 Windows 命令行社区经常希望加入的新功能,例如标签页、富文本、全球化、可配置性和主题与风格化等等。
如果你在 Windows「开始菜单」的搜素功能中,输入「终端」后并没有出现如上所示的图标。那么强烈建议你下载并安装 Windows 终端,而不是继续使用 命令提示符 集成的 控制台。
如果你发现你在启动海豹核心、Lagrange 或 NapCatQQ 等程序时,弹出窗口的字体与风格都不属于 Windows 终端,那么强烈建议你在 Windows 终端中手动启动这些程序。
YAML 是一种 数据序列化语言。语法入门可以参考 编写牌堆。
终端(Terminal)是一个特殊的程序,它提供了一种访问 Shell 的方式,也可以视为 Shell 的一层包装。现代的终端通常会生成一个窗口——即 控制台 用于交互。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
',112)]))}const q=e(t,[["render",i]]);export{u as __pageData,q as default}; diff --git a/assets/archive_archive-terms.md.dpYrRNEw.lean.js b/assets/archive_archive-terms.md.dpYrRNEw.lean.js new file mode 100644 index 000000000..47f28b33d --- /dev/null +++ b/assets/archive_archive-terms.md.dpYrRNEw.lean.js @@ -0,0 +1 @@ +import{_ as e,c as r,a6 as h,o as l}from"./chunks/framework.B1keMFNq.js";const o="/sealdice-manual-next/assets/newbie_terms_windows_terminal_icon.CtB6BvsL.svg",u=JSON.parse('{"title":"名词/术语速查表","description":"","frontmatter":{"lang":"zh-cn","title":"名词/术语速查表"},"headers":[],"relativePath":"archive/archive-terms.md","filePath":"archive/archive-terms.md","lastUpdated":1728702230000}'),t={name:"archive/archive-terms.md"};function i(n,a,d,s,c,p){return l(),r("div",null,a[0]||(a[0]=[h('本节内容
本节为计算机小白指南中的第四部分。
本节旨在帮助先前未曾接触过计算机以及服务器,或者对计算机及服务器知之甚少的用户快速查询特定名词/术语的含义。本节不能代替权威解释或各项目的官方文档。
关于如何正确地提问,请看 如何正确提问,关于如何快速学习相关背景知识,请看 如何高效学习;关于一些小白常见的问题,请看 计算机小白常见问题。
CQ 码是酷 Q(CoolQ)时代定义的一套接口语言,方便用户快速编写指定类型 QQ 消息。可以参考 这个页面 进行编写。
参见 IP 与端口。
服务器可以简单地理解为持续保持开机的电脑,即持续提供服务的机器。
我们知道,骰子本质是在电脑上运行的程序,如果希望骰子 24 小时都可以回应我们的指令,那么就需要电脑保持开启的状态。但这样做的不稳定性非常大,如果出现例如家里突然停电了这样的情况,骰子就不能 24 小时随时回复我们的指令了,并且,这样也很费电。而服务器正是这样一种尽可能稳定运行的、不会关机的电脑,他们可能以「云电脑」这样的名字出现,但从本质上来说,这就是服务器。
提示:服务器和个人计算机在使用上有明显差异
相比开机激活之后马上就可以投入使用的个人计算机,服务器从运行系统上就与其稍有不同。这里以 Windows 系统的服务器和个人电脑举例。
服务器使用的是微软特地为了服务器开发的 Windows Server 系统。顾名思义,这个系统就是专为服务器开发的,在部分设置的选项中也与个人计算机有所不同。
正因如此,服务器一开始并不容易熟练操作。不过,这篇速查表的目的就是让屏幕前不太明白计算机相关知识的用户可以快速入门。所以,你也不必对这些问题有太大的压力。
工作目录是用户在使用 命令行界面 时,当前「处于」的目录。在运行程序时,程序会以工作目录作为索引目录树的起始位置。
海豹核心要求的、和实际运行时的工作目录即为「包含 sealdice-core(.exe)
文件和 data
目录、通常还包含 lagrange
目录」的目录(文件夹)。
海豹工作目录内的文件结构可以参考 海豹的本地文件。
参见 无头。
在分离部署 QQ 后端和部署多只海豹时,你都需要正确处理 IP 与端口号。IP 与端口是互联网应用用于定位彼此的方式之一,IP 用于区分网络中的不同设备,而端口用于区分同一设备上的不同应用。打个比方,IP 就像是地址,可以定位到某个特定的房屋,而端口号是这个屋子里住户的编号,可以用于判断该联系这户人中的哪一位。在目前主流使用的 IPv4 标准下,IP 是形如 127.0.0.1
、192.168.0.1
的一串数字,端口号则是范围在 0-65535 的一个整数。两者组合时,通常使用 127.0.0.1:3456
的方式描述。
通常来说,服务端应用程序会「监听」一个端口,而客户端应用程序会试图连接到此端口。例如在分离部署 QQ 后端并采用正向 WS 连接时,QQ 后端会监听你在配置中指定的端口,而海豹会试图连接到这个端口;而海豹的 WebUI 作为服务端默认绑定到 3211 端口,你的浏览器则试图连接到 3211 端口。所以,在配置分离部署的 QQ 后端时,海豹中必须填入与你的 QQ 后端配置相同的端口号。
不同范围的 IP 地址都有与之相关的规定,而你在配置海豹的过程中最常见的是 127.0.0.1
或 localhost
。此地址一般用于指向本机,而非互联网上的其他设备。当你的海豹与 QQ 后端位于同一主机上,在海豹中需要通过此地址指向 QQ 后端。当你访问 WebUI 的设备与海豹所在的是同一主机,你也需要在浏览器地址栏填入此 IP。
同样的,端口号也不能随意指定。一般情况下,一个端口只能被一个服务端监听使用,这就是为什么当你部署多只海豹时需要切换端口,此时默认的 3211 端口已被第一只海豹占用。而低位端口(小数字)通常有其约定,例如 80 是 HTTP 端口,443 是 HTTPS 端口等。低位端口通常已经被占用,或系统安全策略不允许随意监听此类端口。所以,建议优先选择高位端口(大数字)部署 QQ 后端及海豹。
Issue 更常见的含义是偏向负面的「问题」,而在开源项目领域,issue 一词更多地被翻译为中性的「议题」。
在开源项目网站如 GitHub 的 Issues 标签页下,按默认设置,你可以看到一个开源项目的全部进行中的议题。这些议题主要包括了使用求助、Bug 反馈以及功能请求。在这里的讨论是所有人可见的,因此可以方便开发者与用户高效地共享信息。Issue 也是大部分开源项目正式的反馈渠道。
JSON 是一种 数据序列化语言。语法入门可以参考 编写牌堆。
你可能还想了解 控制台、命令行、Shell 与 命令提示符。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
Lagrange(拉格兰)是一个 NTQQ 协议相关的开源项目。其包括目前实现了 Linux NTQQ 协议的 Lagrange.Core,和提供 OneBot-V11 API 的 Lagrange.Onebot 两部分。
Lagrange 可以很方便的在多个平台(Windows、Linux、Mac)部署,海豹核心可以对接其提供的 OneBot-V11 API 来提供 QQ 骰子服务。
可以参考 连接平台 - QQ 中 有关的部分 和 Lagrange 的官方 GitHub 页面。
Linux 是一种基于 UNIX 操作系统设计的开源操作系统。Linux 广泛应用于服务器、嵌入式系统、超级计算机以及大多数互联网基础设施。它也可以用于桌面计算,尽管市场份额相对较小。
Linux 的主要优点包括稳定性、安全性、低成本(大部分 Linux 发行版都是免费的)和开源性(用户可以查看和修改源代码)。
LiteLoaderQQNT(LiteLoader)是 NTQQ 的插件加载器,允许通过插件注入 QQ 实现某些特定的功能。
可以参考 连接平台 - QQ 中 有关的部分 和 LiteLoader 的官方 GitHub 页面。
参见 日志。
命令行是 控制台 中,你实际输入命令的位置。通常,命令行行首会有 $
、#
或 >
等符号,它们是 Shell 生成的提示符 (Prompt),用于提示用户 Shell 正在等待用户输入命令。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
命令行界面即基于 命令行 的用户界面。在此界面下,用户通常使用输入指令的方式与操作系统或程序进行交互。
命令提示符(cmd.exe
)是 Windows 平台下,在上个世代常用,在如今(由于 Windows 过于完善的兼容性)也经常被使用到的一种 Shell。
命令提示符本身集成了 控制台,但由于其过于古老,具有诸多弊端。例如,当你用鼠标选中控制台内的文本时,正在运行的程序会被暂停。
因此,强烈建议你使用 Windows 终端 打开程序。在较新的 Windows 系统上,命令提示符默认使用 Windows 终端打开。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
NapCatQQ 是基于 PC NTQQ 本体实现一套 无头 Bot 框架。
可以参考 连接平台 - QQ 中 有关的部分 和 NapCatQQ 的官方 GitHub 页面。
NTQQ/QQNT 是腾讯公司基于 NT 内核,重新设计了用户界面的 QQ 客户端。腾讯官方称之为「QQ 9」。因此,如果发现自己使用的 QQ 不能正确加载 LiteLoader 等插件,请先检查 QQ 版本号是否大于 9。
参见 NTQQ。
在计算机领域中,日志通常指程序在运行时生成的一系列记录。这些记录通常反映了程序的运行状态,同时一般包含时间信息以方便定位对应的事件。在程序运行发生故障或不符合预期的行为时,日志中通常也会有所反映。日志通常分为信息(Info)、注意(Warning)和错误(Error)等不同的等级,而后两者就对应了上述的程序问题。
海豹的日志通常可以在三个地方找到:
程序运行中使用的数据,通常以特定的数据结构存储在内存之中。为了更方便地对数据进行存储、传输与重建,数据序列化语言被发明出来。这类语言通过特定的语法描述了数据之间的关系,并以文本的方式存储或传输。程序可以从这类语言中方便地恢复原有的数据结构。
我们日常使用的程序通常使用图形用户界面(GUI)与我们交互,即基于图形渲染和鼠标点击、拖拽的交互方式。而在编程领域和更古早的时期,命令行界面(CLI)则更为常用。在使用 CLI 时,我们第一个打开的程序通常就是 Shell。
Shell 是一个特殊的命令行界面程序,它给用户提供了通过输入命令与操作系统进行交互的交互方式。它会解析并执行用户输入的命令。
在类 Unix 系统中存在众多的 Shell,例如 Ubuntu 系统默认使用 Bash 而 macOS 默认使用 Zsh。Windows 系统推荐使用 PowerShell,而 命令提示符 也是一种 Shell。
许多时候,终端、控制台、命令行、Shell 与命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
TOML 是一种 数据序列化语言。语法入门可以参考 编写牌堆。
在计算机领域,无头(headless)通常指通过不生成图形化用户界面方式运行(原本有图形化用户界面的)程序。
UI 即「用户界面(User Interface)」,通常指用户与程序发生交互的位置。而 WebUI 顾名思义,就是通过网络生成、交互的用户界面。
在海豹的相关语境下,WebUI 指骰主能通过浏览器访问到的管理后台。海豹默认的 WebUI 监听 端口 为 3211,因此当你通过 3211 端口访问海豹的管理后台时,实质上就是在与海豹的 WebUI 交互。
参见 Windows 终端。
Windows 终端是一个为命令行用户准备的全新的、现代的、功能丰富的生产力 终端。它包含了 Windows 命令行社区经常希望加入的新功能,例如标签页、富文本、全球化、可配置性和主题与风格化等等。
如果你在 Windows「开始菜单」的搜素功能中,输入「终端」后并没有出现如上所示的图标。那么强烈建议你下载并安装 Windows 终端,而不是继续使用 命令提示符 集成的 控制台。
如果你发现你在启动海豹核心、Lagrange 或 NapCatQQ 等程序时,弹出窗口的字体与风格都不属于 Windows 终端,那么强烈建议你在 Windows 终端中手动启动这些程序。
YAML 是一种 数据序列化语言。语法入门可以参考 编写牌堆。
终端(Terminal)是一个特殊的程序,它提供了一种访问 Shell 的方式,也可以视为 Shell 的一层包装。现代的终端通常会生成一个窗口——即 控制台 用于交互。
许多时候,终端、控制台、命令行与 Shell 或命令提示符等名词会被混用,因为在实际交互中,他们所指代的东西往往是一体的。
',112)]))}const q=e(t,[["render",i]]);export{u as __pageData,q as default}; diff --git a/assets/ban-add-in-ui.DHyGW49r.png b/assets/ban-add-in-ui.DHyGW49r.png new file mode 100644 index 000000000..f373a72e6 Binary files /dev/null and b/assets/ban-add-in-ui.DHyGW49r.png differ diff --git a/assets/ban-config.SLkrj0Hg.png b/assets/ban-config.SLkrj0Hg.png new file mode 100644 index 000000000..20e58d65b Binary files /dev/null and b/assets/ban-config.SLkrj0Hg.png differ diff --git a/assets/ban-ui.Dhue1cR0.png b/assets/ban-ui.Dhue1cR0.png new file mode 100644 index 000000000..1f4e7cb29 Binary files /dev/null and b/assets/ban-ui.Dhue1cR0.png differ diff --git a/assets/censor-config1.Bip8x8md.png b/assets/censor-config1.Bip8x8md.png new file mode 100644 index 000000000..7d66bf967 Binary files /dev/null and b/assets/censor-config1.Bip8x8md.png differ diff --git a/assets/censor-config2.DGoTrdv-.png b/assets/censor-config2.DGoTrdv-.png new file mode 100644 index 000000000..2e5185b40 Binary files /dev/null and b/assets/censor-config2.DGoTrdv-.png differ diff --git a/assets/censor-log.BUJg4eNS.png b/assets/censor-log.BUJg4eNS.png new file mode 100644 index 000000000..a0d69cbe2 Binary files /dev/null and b/assets/censor-log.BUJg4eNS.png differ diff --git a/assets/censor-ui.DLNYMxtg.png b/assets/censor-ui.DLNYMxtg.png new file mode 100644 index 000000000..434bc8ede Binary files /dev/null and b/assets/censor-ui.DLNYMxtg.png differ diff --git a/assets/censor-words.Dn7Hjhhz.png b/assets/censor-words.Dn7Hjhhz.png new file mode 100644 index 000000000..6ff1cd214 Binary files /dev/null and b/assets/censor-words.Dn7Hjhhz.png differ diff --git a/assets/chunks/@localSearchIndexroot.BrUPPGVN.js b/assets/chunks/@localSearchIndexroot.BrUPPGVN.js new file mode 100644 index 000000000..c8eba3d6d --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.BrUPPGVN.js @@ -0,0 +1 @@ +const e='{"documentCount":766,"nextId":766,"documentIds":{"0":"/sealdice-manual-next/about/about.html#关于","1":"/sealdice-manual-next/about/about.html#官方站点","2":"/sealdice-manual-next/about/about.html#投喂","3":"/sealdice-manual-next/about/about.html#手册贡献者","4":"/sealdice-manual-next/about/about.html#开源","5":"/sealdice-manual-next/about/develop.html#参与项目","6":"/sealdice-manual-next/about/develop.html#如何参与项目","7":"/sealdice-manual-next/about/develop.html#bug-反馈、功能建议","8":"/sealdice-manual-next/about/develop.html#提交修改","9":"/sealdice-manual-next/about/develop.html#贡献指南","10":"/sealdice-manual-next/about/develop.html#整体流程","11":"/sealdice-manual-next/about/develop.html#对目标仓库进行-fork","12":"/sealdice-manual-next/about/develop.html#切出工作分支","13":"/sealdice-manual-next/about/develop.html#发起-pull-request-请求","14":"/sealdice-manual-next/about/develop.html#保持-fork-仓库与上游同步-可选","15":"/sealdice-manual-next/about/license.html#许可协议","16":"/sealdice-manual-next/about/start-from-zero.html#从零开始","17":"/sealdice-manual-next/about/start-from-zero.html#_1-部署海豹","18":"/sealdice-manual-next/about/start-from-zero.html#_2-连接平台","19":"/sealdice-manual-next/about/start-from-zero.html#_3-熟悉海豹核心的功能","20":"/sealdice-manual-next/about/start-from-zero.html#_4-熟悉指令","21":"/sealdice-manual-next/about/start-from-zero.html#_5-进阶自定义","22":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#编写复杂文案","23":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#示例","24":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#根据骰点结果展示不同文案","25":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#多套文案的实现","26":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#切换命令实现","27":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#文案调整","28":"/sealdice-manual-next/advanced/edit_complex_custom_text.html#展示","29":"/sealdice-manual-next/advanced/edit_deck.html#编写牌堆","30":"/sealdice-manual-next/advanced/edit_deck.html#概览","31":"/sealdice-manual-next/advanced/edit_deck.html#语法快速入门","32":"/sealdice-manual-next/advanced/edit_deck.html#toml-注释","33":"/sealdice-manual-next/advanced/edit_deck.html#toml-键值对","34":"/sealdice-manual-next/advanced/edit_deck.html#toml-键名","35":"/sealdice-manual-next/advanced/edit_deck.html#toml-字符串","36":"/sealdice-manual-next/advanced/edit_deck.html#toml-表","37":"/sealdice-manual-next/advanced/edit_deck.html#toml-数组","38":"/sealdice-manual-next/advanced/edit_deck.html#json-键值","39":"/sealdice-manual-next/advanced/edit_deck.html#json-数组","40":"/sealdice-manual-next/advanced/edit_deck.html#json-对象","41":"/sealdice-manual-next/advanced/edit_deck.html#注释","42":"/sealdice-manual-next/advanced/edit_deck.html#_1-行内注释","43":"/sealdice-manual-next/advanced/edit_deck.html#_2-注释块","44":"/sealdice-manual-next/advanced/edit_deck.html#yaml-注释","45":"/sealdice-manual-next/advanced/edit_deck.html#yaml-键值","46":"/sealdice-manual-next/advanced/edit_deck.html#yaml-对象","47":"/sealdice-manual-next/advanced/edit_deck.html#yaml-数组","48":"/sealdice-manual-next/advanced/edit_deck.html#基础牌堆编写","49":"/sealdice-manual-next/advanced/edit_deck.html#牌堆语法","50":"/sealdice-manual-next/advanced/edit_deck.html#一个项中抽取其他项","51":"/sealdice-manual-next/advanced/edit_deck.html#放回抽取与不放回抽取","52":"/sealdice-manual-next/advanced/edit_deck.html#插入掷骰表达式","53":"/sealdice-manual-next/advanced/edit_deck.html#权重","54":"/sealdice-manual-next/advanced/edit_deck.html#权重与不放回抽取","55":"/sealdice-manual-next/advanced/edit_deck.html#发送图片等","56":"/sealdice-manual-next/advanced/edit_deck.html#牌堆打包","57":"/sealdice-manual-next/advanced/edit_deck.html#牌组的隐藏和导出控制","58":"/sealdice-manual-next/advanced/edit_deck.html#配置牌堆更新","59":"/sealdice-manual-next/advanced/edit_deck.html#插入海豹内置脚本语言","60":"/sealdice-manual-next/advanced/edit_deck.html#toml-牌堆的更多功能","61":"/sealdice-manual-next/advanced/edit_deck.html#更多牌组设置","62":"/sealdice-manual-next/advanced/edit_deck.html#云端内容","63":"/sealdice-manual-next/advanced/edit_deck.html#api-接口要求","64":"/sealdice-manual-next/advanced/edit_deck.html#牌堆配置云端内容","65":"/sealdice-manual-next/advanced/edit_helpdoc.html#编写帮助文档","66":"/sealdice-manual-next/advanced/edit_helpdoc.html#创建-json-格式的帮助文档","67":"/sealdice-manual-next/advanced/edit_helpdoc.html#示例文档-塔罗牌-节选","68":"/sealdice-manual-next/advanced/edit_helpdoc.html#创建-excel-格式的帮助文档","69":"/sealdice-manual-next/advanced/edit_reply.html#编写自定义回复","70":"/sealdice-manual-next/advanced/edit_reply.html#第一个自定义回复","71":"/sealdice-manual-next/advanced/edit_reply.html#触发条件","72":"/sealdice-manual-next/advanced/edit_reply.html#文本匹配-模糊匹配","73":"/sealdice-manual-next/advanced/edit_reply.html#文本匹配-正则匹配","74":"/sealdice-manual-next/advanced/edit_reply.html#表达式为真","75":"/sealdice-manual-next/advanced/edit_reply.html#回复结果","76":"/sealdice-manual-next/advanced/edit_reply.html#嵌入脚本语言","77":"/sealdice-manual-next/advanced/edit_reply.html#执行块","78":"/sealdice-manual-next/advanced/edit_reply.html#示例-使用-if","79":"/sealdice-manual-next/advanced/edit_reply.html#示例-变量运算","80":"/sealdice-manual-next/advanced/edit_reply.html#更多示例片段","81":"/sealdice-manual-next/advanced/edit_reply.html#牌堆与自定义回复的结合","82":"/sealdice-manual-next/advanced/edit_reply.html#多行回复的错误使用","83":"/sealdice-manual-next/advanced/edit_reply.html#限定每人-每群每天一次","84":"/sealdice-manual-next/advanced/edit_reply.html#条件语句嵌套条件算符-多条件条件语句","85":"/sealdice-manual-next/advanced/edit_reply.html#同时使用前缀和后缀匹配-以匹配-axxxxxxxb-型文本","86":"/sealdice-manual-next/advanced/edit_reply.html#随机看图","87":"/sealdice-manual-next/advanced/edit_reply.html#单人模组","88":"/sealdice-manual-next/advanced/edit_sensitive_words.html#编写敏感词库","89":"/sealdice-manual-next/advanced/edit_sensitive_words.html#创建文本格式的敏感词库","90":"/sealdice-manual-next/advanced/edit_sensitive_words.html#创建-toml-格式的敏感词库","91":"/sealdice-manual-next/advanced/introduce.html#进阶介绍","92":"/sealdice-manual-next/advanced/introduce.html#了解海豹语","93":"/sealdice-manual-next/advanced/introduce.html#用什么编写","94":"/sealdice-manual-next/advanced/js_api_list.html#api-列表","95":"/sealdice-manual-next/advanced/js_api_list.html#replygroup-replyperson-replytosender","96":"/sealdice-manual-next/advanced/js_api_list.html#memberban-memberkick","97":"/sealdice-manual-next/advanced/js_api_list.html#format-formattmpl","98":"/sealdice-manual-next/advanced/js_api_list.html#getctxproxyfirst-getctxproxyatpos","99":"/sealdice-manual-next/advanced/js_api_list.html#vars","100":"/sealdice-manual-next/advanced/js_api_list.html#ext","101":"/sealdice-manual-next/advanced/js_api_list.html#coc","102":"/sealdice-manual-next/advanced/js_api_list.html#deck","103":"/sealdice-manual-next/advanced/js_api_list.html#自定义-trpg-规则相关","104":"/sealdice-manual-next/advanced/js_api_list.html#其他","105":"/sealdice-manual-next/advanced/js_api_list.html#ctx-的内容","106":"/sealdice-manual-next/advanced/js_api_list.html#ctx-group-的内容","107":"/sealdice-manual-next/advanced/js_api_list.html#ctx-player-的内容","108":"/sealdice-manual-next/advanced/js_api_list.html#ctx-endpoint-的内容","109":"/sealdice-manual-next/advanced/js_api_list.html#msg-的内容","110":"/sealdice-manual-next/advanced/js_api_list.html#cmdargs-的内容","111":"/sealdice-manual-next/advanced/js_example.html#常见用法示例","112":"/sealdice-manual-next/advanced/js_example.html#创建和注册扩展","113":"/sealdice-manual-next/advanced/js_example.html#自定义指令","114":"/sealdice-manual-next/advanced/js_example.html#创建指令","115":"/sealdice-manual-next/advanced/js_example.html#指令参数与返回值","116":"/sealdice-manual-next/advanced/js_example.html#指令核心执行流程","117":"/sealdice-manual-next/advanced/js_example.html#注册指令","118":"/sealdice-manual-next/advanced/js_example.html#抽取牌堆","119":"/sealdice-manual-next/advanced/js_example.html#示例代码-抽取牌堆","120":"/sealdice-manual-next/advanced/js_example.html#权限识别","121":"/sealdice-manual-next/advanced/js_example.html#示例代码-权限识别","122":"/sealdice-manual-next/advanced/js_example.html#黑名单-信任名单操作","123":"/sealdice-manual-next/advanced/js_example.html#黑名单操作的函数","124":"/sealdice-manual-next/advanced/js_example.html#信任用户名单","125":"/sealdice-manual-next/advanced/js_example.html#获取黑名单-信任名单列表","126":"/sealdice-manual-next/advanced/js_example.html#获取用户在黑名单-信任名单中的信息","127":"/sealdice-manual-next/advanced/js_example.html#示例代码-黑名单-信任名单操作","128":"/sealdice-manual-next/advanced/js_example.html#存取数据","129":"/sealdice-manual-next/advanced/js_example.html#示例代码-投喂插件","130":"/sealdice-manual-next/advanced/js_example.html#示例代码-群内安价收集","131":"/sealdice-manual-next/advanced/js_example.html#数据处理模板","132":"/sealdice-manual-next/advanced/js_example.html#读取玩家或群组数据","133":"/sealdice-manual-next/advanced/js_example.html#编写暗骰指令","134":"/sealdice-manual-next/advanced/js_example.html#编写代骰指令","135":"/sealdice-manual-next/advanced/js_example.html#网络请求","136":"/sealdice-manual-next/advanced/js_example.html#自定义-coc-规则","137":"/sealdice-manual-next/advanced/js_example.html#补充-使用非指令关键词","138":"/sealdice-manual-next/advanced/js_example.html#注册插件配置项","139":"/sealdice-manual-next/advanced/js_example.html#示例代码-注册配置项","140":"/sealdice-manual-next/advanced/js_example.html#注册定时任务","141":"/sealdice-manual-next/advanced/js_example.html#api-参数","142":"/sealdice-manual-next/advanced/js_example.html#使用示例","143":"/sealdice-manual-next/advanced/js_gamesystem.html#编写新的-trpg-规则","144":"/sealdice-manual-next/advanced/js_gamesystem.html#角色属性","145":"/sealdice-manual-next/advanced/js_gamesystem.html#游戏规则","146":"/sealdice-manual-next/advanced/js_gamesystem.html#规则模板是什么-有什么功能","147":"/sealdice-manual-next/advanced/js_gamesystem.html#那么-要怎么做","148":"/sealdice-manual-next/advanced/js_project.html#插件的工程化编写","149":"/sealdice-manual-next/advanced/js_project.html#clone-或下载模板项目","150":"/sealdice-manual-next/advanced/js_project.html#补全信息","151":"/sealdice-manual-next/advanced/js_project.html#使用和编译","152":"/sealdice-manual-next/advanced/js_project.html#目录结构","153":"/sealdice-manual-next/advanced/js_project.html#其他问题","154":"/sealdice-manual-next/advanced/js_project.html#我能在项目中引用-npm-包吗","155":"/sealdice-manual-next/advanced/js_project.html#我想使用的-api-没有被自动提示-直接使用被提示错误-如何解决","156":"/sealdice-manual-next/advanced/js_project.html#默认输出的插件代码是压缩过的-如何尽量保持产物的可读性","157":"/sealdice-manual-next/advanced/js_start.html#前言","158":"/sealdice-manual-next/advanced/js_start.html#快速开始","159":"/sealdice-manual-next/advanced/js_start.html#插件元数据","160":"/sealdice-manual-next/advanced/js_start.html#插件编写","161":"/sealdice-manual-next/advanced/js_start.html#单-js-文件编写插件","162":"/sealdice-manual-next/advanced/js_start.html#插件的工程化编写","163":"/sealdice-manual-next/advanced/js_start.html#扩展依赖","164":"/sealdice-manual-next/advanced/js_start.html#依赖其他扩展","165":"/sealdice-manual-next/advanced/js_start.html#指定依赖的格式","166":"/sealdice-manual-next/advanced/js_start.html#依赖多个扩展","167":"/sealdice-manual-next/advanced/js_start.html#目标海豹版本","168":"/sealdice-manual-next/advanced/js_start.html#一些有帮助的资源","169":"/sealdice-manual-next/advanced/js_start.html#其他问题","170":"/sealdice-manual-next/advanced/js_start.html#我不会-javascript-海豹支持其他编程语言编写插件吗","171":"/sealdice-manual-next/advanced/script.html#内置脚本语言","172":"/sealdice-manual-next/advanced/script.html#变量","173":"/sealdice-manual-next/advanced/script.html#数据类型和赋值","174":"/sealdice-manual-next/advanced/script.html#语句","175":"/sealdice-manual-next/advanced/script.html#运算符","176":"/sealdice-manual-next/advanced/script.html#数学运算","177":"/sealdice-manual-next/advanced/script.html#逻辑运算","178":"/sealdice-manual-next/advanced/script.html#骰子算符","179":"/sealdice-manual-next/advanced/script.html#条件算符","180":"/sealdice-manual-next/advanced/script.html#条件算符-1","181":"/sealdice-manual-next/advanced/script.html#多重条件算符","182":"/sealdice-manual-next/advanced/script.html#三目运算符","183":"/sealdice-manual-next/advanced/script.html#条件语句","184":"/sealdice-manual-next/archive/README.html#归档内容","185":"/sealdice-manual-next/archive/archive-about-opensource.html#开源程序相关","186":"/sealdice-manual-next/archive/archive-about-opensource.html#什么是开源-什么是开源程序","187":"/sealdice-manual-next/archive/archive-about-opensource.html#为什么我在-sealdice-用户群问问题会被要求发送截图-为什么不能拍屏","188":"/sealdice-manual-next/archive/archive-about-opensource.html#提问的智慧到底该怎么实现","189":"/sealdice-manual-next/archive/archive-about-opensource.html#遇到问题先查询资料-尝试自己思考问题所在-排除问题","190":"/sealdice-manual-next/archive/archive-about-opensource.html#问问题要有前因后果-相对客观地陈述问题会比只表示主观情绪有用","191":"/sealdice-manual-next/archive/archive-about-opensource.html#保持耐心-对回答问题者表现出友善和配合的态度","192":"/sealdice-manual-next/archive/archive-about-opensource.html#如果有需要-可以去-github-代码仓库上提交-issue","193":"/sealdice-manual-next/archive/archive-about-opensource.html#什么是-github-怎么提-issue","194":"/sealdice-manual-next/archive/archive-guide.html#计算机基础知识","195":"/sealdice-manual-next/archive/archive-guide.html#计算机小白常见问题","196":"/sealdice-manual-next/archive/archive-guide.html#部署海豹核心为什么要解压压缩包-怎么样解压压缩包","197":"/sealdice-manual-next/archive/archive-guide.html#内存不足到底指的是哪里的内存不足-如何解决内存不足","198":"/sealdice-manual-next/archive/archive-guide.html#对于海豹核心的日志界面中「there-is-not-enough-space-on-the-disk」的报错","199":"/sealdice-manual-next/archive/archive-guide.html#如果出现莫名其妙的程序中断","200":"/sealdice-manual-next/archive/archive-guide.html#什么是开源-什么是开源程序","201":"/sealdice-manual-next/archive/archive-guide.html#为什么我在-sealdice-用户群问问题会被要求发送截图-为什么不能拍屏","202":"/sealdice-manual-next/archive/archive-guide.html#什么是-github-怎么提-issue","203":"/sealdice-manual-next/archive/archive-guide.html#如何高效学习","204":"/sealdice-manual-next/archive/archive-guide.html#前言","205":"/sealdice-manual-next/archive/archive-guide.html#掌握语言","206":"/sealdice-manual-next/archive/archive-guide.html#寻求资源","207":"/sealdice-manual-next/archive/archive-guide.html#高效搜索","208":"/sealdice-manual-next/archive/archive-guide.html#实践学习","209":"/sealdice-manual-next/archive/archive-guide.html#深度优先学习","210":"/sealdice-manual-next/archive/archive-guide.html#广度优先学习","211":"/sealdice-manual-next/archive/archive-guide.html#所以","212":"/sealdice-manual-next/archive/archive-guide.html#结语","213":"/sealdice-manual-next/archive/archive-guide.html#如何正确提问","214":"/sealdice-manual-next/archive/archive-guide.html#前言-1","215":"/sealdice-manual-next/archive/archive-guide.html#提问的智慧","216":"/sealdice-manual-next/archive/archive-guide.html#提问前-你该这样做","217":"/sealdice-manual-next/archive/archive-guide.html#尝试自行排查问题","218":"/sealdice-manual-next/archive/archive-guide.html#尝试阅读本手册以找到答案","219":"/sealdice-manual-next/archive/archive-guide.html#尝试浏览用户群内的信息以找到答案","220":"/sealdice-manual-next/archive/archive-guide.html#尝试上网搜索以找到答案","221":"/sealdice-manual-next/archive/archive-guide.html#记住你做了什么","222":"/sealdice-manual-next/archive/archive-guide.html#提问时-你该这样做","223":"/sealdice-manual-next/archive/archive-guide.html#清晰说明你的意图和-或困难","224":"/sealdice-manual-next/archive/archive-guide.html#描述问题发生前-你做了什么","225":"/sealdice-manual-next/archive/archive-guide.html#提供问题发生时-程序的日志","226":"/sealdice-manual-next/archive/archive-guide.html#描述问题发生后-你尝试过的解决方案","227":"/sealdice-manual-next/archive/archive-guide.html#提供其他有价值的背景信息","228":"/sealdice-manual-next/archive/archive-guide.html#提问后-你该这样做","229":"/sealdice-manual-next/archive/archive-guide.html#如果问题解决了","230":"/sealdice-manual-next/archive/archive-guide.html#如果问题没能解决","231":"/sealdice-manual-next/archive/archive-guide.html#其他事项","232":"/sealdice-manual-next/archive/archive-guide.html#保持耐心-对回答问题者表现出友善和配合的态度","233":"/sealdice-manual-next/archive/archive-guide.html#如果有需要-可以去-github-代码仓库上提交-issue","234":"/sealdice-manual-next/archive/archive-guide.html#结语-1","235":"/sealdice-manual-next/archive/archive-other.html#其它归档内容","236":"/sealdice-manual-next/archive/archive-other.html#go-cqhttp-mirai","237":"/sealdice-manual-next/archive/archive-other.html#使用签名服务","238":"/sealdice-manual-next/archive/archive-other.html#怎么使用签名服务","239":"/sealdice-manual-next/archive/archive-other.html#如何搭建签名服务","240":"/sealdice-manual-next/archive/archive-other.html#手动抓取-ticket","241":"/sealdice-manual-next/archive/archive-other.html#前置工作","242":"/sealdice-manual-next/archive/archive-other.html#分离部署登录流程","243":"/sealdice-manual-next/archive/archive-other.html#gocqhttp-faq","244":"/sealdice-manual-next/archive/archive-other.html#_1-出现-code-1","245":"/sealdice-manual-next/archive/archive-other.html#_2-qsign-闪退","246":"/sealdice-manual-next/archive/archive-other.html#_3-出现-code-45","247":"/sealdice-manual-next/archive/archive-other.html#_4-出现-code-235","248":"/sealdice-manual-next/archive/archive-other.html#_5-出现-code-237","249":"/sealdice-manual-next/archive/archive-other.html#_5-如何启动多个-qsign-仅当需要备用签名或不同协议版本的时候有此需求","250":"/sealdice-manual-next/archive/archive-other.html#_6-什么是-go-cqhttp-通常简称-gocq","251":"/sealdice-manual-next/archive/archive-other.html#_7-什么是签名","252":"/sealdice-manual-next/archive/archive-other.html#_8-对于-signserver-即-start-qsign-bat-俗称签名服务器-崩溃闪退可能的一种情况","253":"/sealdice-manual-next/archive/archive-other.html#chronocat-red-协议","254":"/sealdice-manual-next/archive/archive-other.html#shamrock","255":"/sealdice-manual-next/archive/archive-other.html#准备模拟器","256":"/sealdice-manual-next/archive/archive-other.html#获取-root-权限","257":"/sealdice-manual-next/archive/archive-other.html#安装-lsposed-模块","258":"/sealdice-manual-next/archive/archive-other.html#安装-shamrock","259":"/sealdice-manual-next/archive/archive-other.html#开放模拟器端口供海豹对接","260":"/sealdice-manual-next/archive/archive-other.html#连接海豹","261":"/sealdice-manual-next/archive/archive-other.html#shamrock-lspatch","262":"/sealdice-manual-next/archive/archive-other.html#安装-shizuku","263":"/sealdice-manual-next/archive/archive-other.html#安装-lspatch","264":"/sealdice-manual-next/archive/archive-other.html#安装并激活-shamrock","265":"/sealdice-manual-next/archive/archive-other.html#对接海豹","266":"/sealdice-manual-next/archive/archive-terms.html#名词-术语速查表","267":"/sealdice-manual-next/archive/archive-terms.html#c","268":"/sealdice-manual-next/archive/archive-terms.html#cq-码","269":"/sealdice-manual-next/archive/archive-terms.html#d","270":"/sealdice-manual-next/archive/archive-terms.html#端口","271":"/sealdice-manual-next/archive/archive-terms.html#f","272":"/sealdice-manual-next/archive/archive-terms.html#服务器","273":"/sealdice-manual-next/archive/archive-terms.html#g","274":"/sealdice-manual-next/archive/archive-terms.html#工作目录","275":"/sealdice-manual-next/archive/archive-terms.html#h","276":"/sealdice-manual-next/archive/archive-terms.html#headless","277":"/sealdice-manual-next/archive/archive-terms.html#i","278":"/sealdice-manual-next/archive/archive-terms.html#ip-与端口","279":"/sealdice-manual-next/archive/archive-terms.html#issue","280":"/sealdice-manual-next/archive/archive-terms.html#j","281":"/sealdice-manual-next/archive/archive-terms.html#json","282":"/sealdice-manual-next/archive/archive-terms.html#k","283":"/sealdice-manual-next/archive/archive-terms.html#控制台","284":"/sealdice-manual-next/archive/archive-terms.html#l","285":"/sealdice-manual-next/archive/archive-terms.html#lagrange","286":"/sealdice-manual-next/archive/archive-terms.html#linux","287":"/sealdice-manual-next/archive/archive-terms.html#liteloader","288":"/sealdice-manual-next/archive/archive-terms.html#log","289":"/sealdice-manual-next/archive/archive-terms.html#m","290":"/sealdice-manual-next/archive/archive-terms.html#命令行","291":"/sealdice-manual-next/archive/archive-terms.html#命令行界面","292":"/sealdice-manual-next/archive/archive-terms.html#命令提示符","293":"/sealdice-manual-next/archive/archive-terms.html#n","294":"/sealdice-manual-next/archive/archive-terms.html#napcatqq","295":"/sealdice-manual-next/archive/archive-terms.html#ntqq","296":"/sealdice-manual-next/archive/archive-terms.html#q","297":"/sealdice-manual-next/archive/archive-terms.html#qqnt","298":"/sealdice-manual-next/archive/archive-terms.html#r","299":"/sealdice-manual-next/archive/archive-terms.html#日志","300":"/sealdice-manual-next/archive/archive-terms.html#s","301":"/sealdice-manual-next/archive/archive-terms.html#数据序列化语言","302":"/sealdice-manual-next/archive/archive-terms.html#shell","303":"/sealdice-manual-next/archive/archive-terms.html#t","304":"/sealdice-manual-next/archive/archive-terms.html#toml","305":"/sealdice-manual-next/archive/archive-terms.html#w","306":"/sealdice-manual-next/archive/archive-terms.html#无头","307":"/sealdice-manual-next/archive/archive-terms.html#webui","308":"/sealdice-manual-next/archive/archive-terms.html#windows-terminal","309":"/sealdice-manual-next/archive/archive-terms.html#windows-终端","310":"/sealdice-manual-next/archive/archive-terms.html#y","311":"/sealdice-manual-next/archive/archive-terms.html#yaml","312":"/sealdice-manual-next/archive/archive-terms.html#z","313":"/sealdice-manual-next/archive/archive-terms.html#终端","314":"/sealdice-manual-next/config/backup.html#备份","315":"/sealdice-manual-next/config/backup.html#关于备份","316":"/sealdice-manual-next/config/backup.html#手动备份","317":"/sealdice-manual-next/config/backup.html#自动备份","318":"/sealdice-manual-next/config/backup.html#自动清理","319":"/sealdice-manual-next/config/backup.html#配置清理范围","320":"/sealdice-manual-next/config/backup.html#配置清理时机","321":"/sealdice-manual-next/config/backup.html#备份列表","322":"/sealdice-manual-next/config/ban.html#黑白名单","323":"/sealdice-manual-next/config/ban.html#如何设置黑白名单","324":"/sealdice-manual-next/config/ban.html#添加黑白名单","325":"/sealdice-manual-next/config/ban.html#ui-手动添加","326":"/sealdice-manual-next/config/ban.html#指令添加","327":"/sealdice-manual-next/config/ban.html#自动添加","328":"/sealdice-manual-next/config/ban.html#黑白名单设置","329":"/sealdice-manual-next/config/basic.html#基础设置","330":"/sealdice-manual-next/config/basic.html#master-管理","331":"/sealdice-manual-next/config/basic.html#master-解锁码","332":"/sealdice-manual-next/config/basic.html#master-列表","333":"/sealdice-manual-next/config/basic.html#消息通知列表","334":"/sealdice-manual-next/config/basic.html#好友邀请","335":"/sealdice-manual-next/config/basic.html#邮箱通知","336":"/sealdice-manual-next/config/basic.html#发件邮箱","337":"/sealdice-manual-next/config/basic.html#邮箱密钥","338":"/sealdice-manual-next/config/basic.html#smtp-地址","339":"/sealdice-manual-next/config/basic.html#私骰模式","340":"/sealdice-manual-next/config/basic.html#允许自由开关","341":"/sealdice-manual-next/config/basic.html#启用戳一戳","342":"/sealdice-manual-next/config/basic.html#限制-text-指令","343":"/sealdice-manual-next/config/basic.html#忽略-bot-裸指令","344":"/sealdice-manual-next/config/basic.html#存活确认","345":"/sealdice-manual-next/config/basic.html#日志记录提示","346":"/sealdice-manual-next/config/basic.html#刷屏警告","347":"/sealdice-manual-next/config/basic.html#访问控制","348":"/sealdice-manual-next/config/basic.html#qq-频道设置","349":"/sealdice-manual-next/config/basic.html#加好友验证","350":"/sealdice-manual-next/config/basic.html#自动退出不活跃群组","351":"/sealdice-manual-next/config/censor.html#拦截","352":"/sealdice-manual-next/config/censor.html#什么是拦截功能","353":"/sealdice-manual-next/config/censor.html#配置拦截","354":"/sealdice-manual-next/config/censor.html#匹配选项","355":"/sealdice-manual-next/config/censor.html#响应设置","356":"/sealdice-manual-next/config/censor.html#敏感词管理","357":"/sealdice-manual-next/config/censor.html#查看拦截日志","358":"/sealdice-manual-next/config/censor.html#如何让用户-群豁免检查","359":"/sealdice-manual-next/config/censor.html#如何编写敏感词库","360":"/sealdice-manual-next/config/custom_text.html#自定义文案","361":"/sealdice-manual-next/config/custom_text.html#什么是自定义文案","362":"/sealdice-manual-next/config/custom_text.html#如何修改文案","363":"/sealdice-manual-next/config/custom_text.html#文案列表","364":"/sealdice-manual-next/config/custom_text.html#筛选文案","365":"/sealdice-manual-next/config/custom_text.html#文案的导入-导出","366":"/sealdice-manual-next/config/custom_text.html#自定义文案组合","367":"/sealdice-manual-next/config/custom_text.html#coc","368":"/sealdice-manual-next/config/custom_text.html#ra-rc-检定","369":"/sealdice-manual-next/config/custom_text.html#st-属性设置","370":"/sealdice-manual-next/config/custom_text.html#sc-理智检定","371":"/sealdice-manual-next/config/custom_text.html#en-技能成长","372":"/sealdice-manual-next/config/custom_text.html#核心","373":"/sealdice-manual-next/config/custom_text.html#r-骰点","374":"/sealdice-manual-next/config/custom_text.html#alias-快捷指令","375":"/sealdice-manual-next/config/custom_text.html#文案插入图片和-cq-码","376":"/sealdice-manual-next/config/custom_text.html#文案变量标签","377":"/sealdice-manual-next/config/custom_text.html#在一个文案中使用另一个文案","378":"/sealdice-manual-next/config/custom_text.html#自定义文案引用牌堆","379":"/sealdice-manual-next/config/custom_text.html#文案常见问题","380":"/sealdice-manual-next/config/custom_text.html#骰子进群和成为好友的问候语是哪个","381":"/sealdice-manual-next/config/custom_text.html#更复杂的文案设置","382":"/sealdice-manual-next/config/deck.html#牌堆","383":"/sealdice-manual-next/config/deck.html#牌堆是什么","384":"/sealdice-manual-next/config/deck.html#获取牌堆","385":"/sealdice-manual-next/config/deck.html#怎么上传牌堆到骰子-怎么管理牌堆","386":"/sealdice-manual-next/config/deck.html#怎么使用牌堆","387":"/sealdice-manual-next/config/deck.html#牌堆更新与云牌堆","388":"/sealdice-manual-next/config/deck.html#牌堆更新","389":"/sealdice-manual-next/config/deck.html#牌堆云端内容","390":"/sealdice-manual-next/config/deck.html#如何编写牌堆","391":"/sealdice-manual-next/config/helpdoc.html#帮助文档","392":"/sealdice-manual-next/config/helpdoc.html#什么是帮助文档","393":"/sealdice-manual-next/config/helpdoc.html#获取帮助文档","394":"/sealdice-manual-next/config/helpdoc.html#如何使用帮助文档","395":"/sealdice-manual-next/config/helpdoc.html#如何管理帮助文档","396":"/sealdice-manual-next/config/helpdoc.html#上传帮助文档","397":"/sealdice-manual-next/config/helpdoc.html#为分组添加别名","398":"/sealdice-manual-next/config/helpdoc.html#删除帮助文档","399":"/sealdice-manual-next/config/helpdoc.html#查看帮助文档词条","400":"/sealdice-manual-next/config/helpdoc.html#如何编写帮助文档","401":"/sealdice-manual-next/config/jsscript.html#javascript-插件","402":"/sealdice-manual-next/config/jsscript.html#javascript-插件是什么","403":"/sealdice-manual-next/config/jsscript.html#获取-js-插件","404":"/sealdice-manual-next/config/jsscript.html#如何安装和管理-js-插件","405":"/sealdice-manual-next/config/jsscript.html#插件列表","406":"/sealdice-manual-next/config/jsscript.html#插件的更新","407":"/sealdice-manual-next/config/jsscript.html#控制台","408":"/sealdice-manual-next/config/jsscript.html#插件设置","409":"/sealdice-manual-next/config/jsscript.html#如何使用-js-插件","410":"/sealdice-manual-next/config/jsscript.html#如何编写-js-插件","411":"/sealdice-manual-next/config/reply.html#自定义回复","412":"/sealdice-manual-next/config/reply.html#什么是自定义回复","413":"/sealdice-manual-next/config/reply.html#在哪编写自定义回复","414":"/sealdice-manual-next/config/reply.html#当前回复文件","415":"/sealdice-manual-next/config/reply.html#新建-导入自定义回复文件","416":"/sealdice-manual-next/config/reply.html#获取自定义回复文件","417":"/sealdice-manual-next/config/reply.html#公共条件","418":"/sealdice-manual-next/config/reply.html#设置回复项","419":"/sealdice-manual-next/config/reply.html#回复项的条件","420":"/sealdice-manual-next/config/reply.html#文本匹配","421":"/sealdice-manual-next/config/reply.html#文本长度","422":"/sealdice-manual-next/config/reply.html#回复项的结果","423":"/sealdice-manual-next/config/reply.html#回复结果延迟","424":"/sealdice-manual-next/config/reply.html#自定义回复引用牌堆","425":"/sealdice-manual-next/config/reply.html#更复杂的回复","426":"/sealdice-manual-next/config/utilities.html#辅助工具","427":"/sealdice-manual-next/config/utilities.html#指令测试","428":"/sealdice-manual-next/config/utilities.html#资源管理","429":"/sealdice-manual-next/deploy/about_file.html#海豹的本地文件","430":"/sealdice-manual-next/deploy/about_file.html#sealdice-文件目录树","431":"/sealdice-manual-next/deploy/about_file.html#常用文件","432":"/sealdice-manual-next/deploy/about_file.html#安卓端文件路径","433":"/sealdice-manual-next/deploy/about_file.html#数据库检查和修复","434":"/sealdice-manual-next/deploy/about_file.html#数据迁移","435":"/sealdice-manual-next/deploy/android.html#安卓海豹常见问题","436":"/sealdice-manual-next/deploy/android.html#安卓端登录","437":"/sealdice-manual-next/deploy/android.html#只有一个设备-但登录需要扫码","438":"/sealdice-manual-next/deploy/android.html#经常掉线","439":"/sealdice-manual-next/deploy/android.html#同时开启两个海豹实例","440":"/sealdice-manual-next/deploy/android.html#方法一-使用系统的双开功能","441":"/sealdice-manual-next/deploy/android.html#方法二-使用-np-管理器等软件","442":"/sealdice-manual-next/deploy/android.html#海豹文件路径","443":"/sealdice-manual-next/deploy/android.html#发送图片","444":"/sealdice-manual-next/deploy/android.html#如何更新","445":"/sealdice-manual-next/deploy/android.html#电脑海豹转安卓端海豹","446":"/sealdice-manual-next/deploy/android_keepalive.html#配置安卓端保活","447":"/sealdice-manual-next/deploy/android_keepalive.html#授予海豹核心必要权限","448":"/sealdice-manual-next/deploy/android_keepalive.html#hyperos-小米-红米","449":"/sealdice-manual-next/deploy/android_keepalive.html#miui-小米-红米","450":"/sealdice-manual-next/deploy/android_keepalive.html#鸿蒙系统-华为","451":"/sealdice-manual-next/deploy/android_keepalive.html#coloros-oppo-一加","452":"/sealdice-manual-next/deploy/android_keepalive.html#通用设置","453":"/sealdice-manual-next/deploy/android_keepalive.html#存储权限","454":"/sealdice-manual-next/deploy/android_keepalive.html#通知权限","455":"/sealdice-manual-next/deploy/android_keepalive.html#应用内设置","456":"/sealdice-manual-next/deploy/db-repair.html#数据库检查和修复","457":"/sealdice-manual-next/deploy/db-repair.html#确定问题","458":"/sealdice-manual-next/deploy/db-repair.html#无法使用命令行","459":"/sealdice-manual-next/deploy/db-repair.html#修复数据库-通过回滚备份","460":"/sealdice-manual-next/deploy/db-repair.html#修复数据库-通过数据库修复指令","461":"/sealdice-manual-next/deploy/platform-dingtalk.html#钉钉","462":"/sealdice-manual-next/deploy/platform-dingtalk.html#钉钉支持","463":"/sealdice-manual-next/deploy/platform-discord.html#discord","464":"/sealdice-manual-next/deploy/platform-discord.html#获取-token","465":"/sealdice-manual-next/deploy/platform-discord.html#连接海豹","466":"/sealdice-manual-next/deploy/platform-discord.html#邀请海豹","467":"/sealdice-manual-next/deploy/platform-dodo.html#dodo","468":"/sealdice-manual-next/deploy/platform-dodo.html#建立应用","469":"/sealdice-manual-next/deploy/platform-dodo.html#获取-client-id-和-bot-token","470":"/sealdice-manual-next/deploy/platform-dodo.html#连接海豹","471":"/sealdice-manual-next/deploy/platform-dodo.html#邀请海豹","472":"/sealdice-manual-next/deploy/platform-kook.html#kook","473":"/sealdice-manual-next/deploy/platform-kook.html#获取-token","474":"/sealdice-manual-next/deploy/platform-kook.html#连接海豹","475":"/sealdice-manual-next/deploy/platform-kook.html#邀请海豹","476":"/sealdice-manual-next/deploy/platform-minecraft.html#minecraft","477":"/sealdice-manual-next/deploy/platform-minecraft.html#minecraft-支持","478":"/sealdice-manual-next/deploy/platform-minecraft.html#架设-minecraft-服务端","479":"/sealdice-manual-next/deploy/platform-minecraft.html#获取服务端核心","480":"/sealdice-manual-next/deploy/platform-minecraft.html#启动服务端","481":"/sealdice-manual-next/deploy/platform-minecraft.html#放入-sealdice-minecraft-插件","482":"/sealdice-manual-next/deploy/platform-minecraft.html#海豹核心与-minecraft-服务端连接","483":"/sealdice-manual-next/deploy/platform-minecraft.html#sealdice-minecraft-插件的使用","484":"/sealdice-manual-next/deploy/platform-minecraft.html#指令","485":"/sealdice-manual-next/deploy/platform-minecraft.html#sealdice-文本","486":"/sealdice-manual-next/deploy/platform-minecraft.html#sealport-端口","487":"/sealdice-manual-next/deploy/platform-minecraft.html#权限","488":"/sealdice-manual-next/deploy/platform-minecraft.html#sealdice-admin","489":"/sealdice-manual-next/deploy/platform-qq-docker.html#qq-docker-中的海豹","490":"/sealdice-manual-next/deploy/platform-qq-docker.html#通过-docker-compose-同时部署海豹与-lagrange","491":"/sealdice-manual-next/deploy/platform-qq-docker.html#创建-docker-compose-yml","492":"/sealdice-manual-next/deploy/platform-qq-docker.html#首次启动容器","493":"/sealdice-manual-next/deploy/platform-qq-docker.html#lagrange-容器配置","494":"/sealdice-manual-next/deploy/platform-qq-docker.html#海豹连接-lagrange","495":"/sealdice-manual-next/deploy/platform-qq-docker.html#更新海豹容器或-lagrange-容器","496":"/sealdice-manual-next/deploy/platform-qq-docker.html#连接到宿主机上的-qq-后端","497":"/sealdice-manual-next/deploy/platform-qq-docker.html#保持容器与宿主机网络隔离","498":"/sealdice-manual-next/deploy/platform-qq-docker.html#配置容器使用宿主机网络","499":"/sealdice-manual-next/deploy/platform-qq-official.html#qq-官方机器人","500":"/sealdice-manual-next/deploy/platform-qq-official.html#尝试一下","501":"/sealdice-manual-next/deploy/platform-qq-official.html#获取连接所需信息","502":"/sealdice-manual-next/deploy/platform-qq-official.html#连接海豹","503":"/sealdice-manual-next/deploy/platform-qq-official.html#指令配置","504":"/sealdice-manual-next/deploy/platform-qq-official.html#机器人上线","505":"/sealdice-manual-next/deploy/platform-qq-official.html#使用海豹","506":"/sealdice-manual-next/deploy/platform-qq-official.html#注意事项","507":"/sealdice-manual-next/deploy/platform-qq-official.html#企业账号的开发者资质审核","508":"/sealdice-manual-next/deploy/platform-qq-official.html#机器人官方频道跳转","509":"/sealdice-manual-next/deploy/platform-qq-official.html#功能审核未通过","510":"/sealdice-manual-next/deploy/platform-qq.html#qq","511":"/sealdice-manual-next/deploy/platform-qq.html#前言","512":"/sealdice-manual-next/deploy/platform-qq.html#有关-qq-平台机器人的说明","513":"/sealdice-manual-next/deploy/platform-qq.html#对接引导","514":"/sealdice-manual-next/deploy/platform-qq.html#内置客户端","515":"/sealdice-manual-next/deploy/platform-qq.html#分离部署","516":"/sealdice-manual-next/deploy/platform-qq.html#lagrange","517":"/sealdice-manual-next/deploy/platform-qq.html#登录-lagrange","518":"/sealdice-manual-next/deploy/platform-qq.html#海豹连接-lagrange","519":"/sealdice-manual-next/deploy/platform-qq.html#llonebot","520":"/sealdice-manual-next/deploy/platform-qq.html#安装-llonebot","521":"/sealdice-manual-next/deploy/platform-qq.html#配置-llonebot","522":"/sealdice-manual-next/deploy/platform-qq.html#napcatqq","523":"/sealdice-manual-next/deploy/platform-qq.html#下载-napcatqq","524":"/sealdice-manual-next/deploy/platform-qq.html#海豹连接","525":"/sealdice-manual-next/deploy/platform-qq.html#chronocat","526":"/sealdice-manual-next/deploy/platform-qq.html#安装-chronocat","527":"/sealdice-manual-next/deploy/platform-qq.html#chronocat-satori-协议","528":"/sealdice-manual-next/deploy/platform-slack.html#slack","529":"/sealdice-manual-next/deploy/platform-slack.html#slack-支持","530":"/sealdice-manual-next/deploy/platform-slack.html#获取-token","531":"/sealdice-manual-next/deploy/platform-slack.html#app-token","532":"/sealdice-manual-next/deploy/platform-slack.html#bot-token","533":"/sealdice-manual-next/deploy/platform-slack.html#连接海豹","534":"/sealdice-manual-next/deploy/platform-telegram.html#telegram","535":"/sealdice-manual-next/deploy/platform-telegram.html#获取-token","536":"/sealdice-manual-next/deploy/platform-telegram.html#连接海豹","537":"/sealdice-manual-next/deploy/quick-start.html#快速开始","538":"/sealdice-manual-next/deploy/quick-start.html#获取海豹","539":"/sealdice-manual-next/deploy/quick-start.html#启动","540":"/sealdice-manual-next/deploy/quick-start.html#连接平台","541":"/sealdice-manual-next/deploy/quick-start.html#安装为系统服务-可选","542":"/sealdice-manual-next/deploy/quick-start.html#更新海豹","543":"/sealdice-manual-next/deploy/quick-start.html#自动更新","544":"/sealdice-manual-next/deploy/quick-start.html#手动更新","545":"/sealdice-manual-next/deploy/quick-start.html#上传固件","546":"/sealdice-manual-next/deploy/quick-start.html#安卓豹更新","547":"/sealdice-manual-next/deploy/special_feature.html#特色功能","548":"/sealdice-manual-next/deploy/special_feature.html#指令兼容性","549":"/sealdice-manual-next/deploy/special_feature.html#易于部署和使用","550":"/sealdice-manual-next/deploy/special_feature.html#极少的资源占用","551":"/sealdice-manual-next/deploy/special_feature.html#强自定义","552":"/sealdice-manual-next/deploy/special_feature.html#人工智能鸽子","553":"/sealdice-manual-next/deploy/special_feature.html#强大的查询功能","554":"/sealdice-manual-next/deploy/special_feature.html#通用特化支持","555":"/sealdice-manual-next/deploy/special_feature.html#代替他人检定-操作他人属性","556":"/sealdice-manual-next/deploy/special_feature.html#coc-特化支持","557":"/sealdice-manual-next/deploy/special_feature.html#属性同义词","558":"/sealdice-manual-next/deploy/special_feature.html#默认技能等级","559":"/sealdice-manual-next/deploy/special_feature.html#支持-scb-指令","560":"/sealdice-manual-next/deploy/special_feature.html#d-d-特化支持","561":"/sealdice-manual-next/deploy/special_feature.html#属性同义词-1","562":"/sealdice-manual-next/deploy/special_feature.html#优势骰劣势骰","563":"/sealdice-manual-next/deploy/special_feature.html#属性调整值和熟练自动计算","564":"/sealdice-manual-next/deploy/special_feature.html#临时属性","565":"/sealdice-manual-next/deploy/special_feature.html#法术位支持","566":"/sealdice-manual-next/deploy/special_feature.html#死亡豁免","567":"/sealdice-manual-next/deploy/special_feature.html#休息","568":"/sealdice-manual-next/deploy/special_feature.html#可以实时编辑的跑团日志","569":"/sealdice-manual-next/deploy/special_feature.html#是纯净骰-也是娱乐骰","570":"/sealdice-manual-next/deploy/special_feature.html#更强的指令支持","571":"/sealdice-manual-next/deploy/special_feature.html#跨平台","572":"/sealdice-manual-next/deploy/special_feature.html#trpg-规则支持列表","573":"/sealdice-manual-next/deploy/transfer.html#迁移","574":"/sealdice-manual-next/deploy/transfer.html#相同平台间迁移","575":"/sealdice-manual-next/deploy/transfer.html#跨平台迁移","576":"/sealdice-manual-next/deploy/transfer.html#linux-服务器间跨架构迁移-arm64-→-amd64","577":"/sealdice-manual-next/deploy/transfer.html#迁移数据到手机","578":"/sealdice-manual-next/#海豹核心","579":"/sealdice-manual-next/#开始使用","580":"/sealdice-manual-next/#更多","581":"/sealdice-manual-next/use/attribute_alias.html#属性同义词","582":"/sealdice-manual-next/use/attribute_alias.html#概念说明","583":"/sealdice-manual-next/use/attribute_alias.html#同义词表","584":"/sealdice-manual-next/use/coc7.html#克苏鲁的呼唤-7-版","585":"/sealdice-manual-next/use/coc7.html#st-操作人物卡","586":"/sealdice-manual-next/use/coc7.html#st-help-获取帮助信息","587":"/sealdice-manual-next/use/coc7.html#列出属性","588":"/sealdice-manual-next/use/coc7.html#删除属性","589":"/sealdice-manual-next/use/coc7.html#设定属性值","590":"/sealdice-manual-next/use/coc7.html#更新属性值","591":"/sealdice-manual-next/use/coc7.html#设定计算表达式","592":"/sealdice-manual-next/use/coc7.html#导出属性值","593":"/sealdice-manual-next/use/coc7.html#代骰","594":"/sealdice-manual-next/use/coc7.html#ra-rc-检定","595":"/sealdice-manual-next/use/coc7.html#进行检定","596":"/sealdice-manual-next/use/coc7.html#多轮检定","597":"/sealdice-manual-next/use/coc7.html#要求一定难度的检定","598":"/sealdice-manual-next/use/coc7.html#奖励骰和惩罚骰","599":"/sealdice-manual-next/use/coc7.html#代骰-1","600":"/sealdice-manual-next/use/coc7.html#以上功能可以组合使用","601":"/sealdice-manual-next/use/coc7.html#rah-rch-暗中检定","602":"/sealdice-manual-next/use/coc7.html#代骰-2","603":"/sealdice-manual-next/use/coc7.html#rav-rcv-对抗检定","604":"/sealdice-manual-next/use/coc7.html#使用相同技能对抗","605":"/sealdice-manual-next/use/coc7.html#使用不同技能对抗","606":"/sealdice-manual-next/use/coc7.html#指定两个其他人对抗","607":"/sealdice-manual-next/use/coc7.html#sc-理智检定","608":"/sealdice-manual-next/use/coc7.html#指定损失的理智","609":"/sealdice-manual-next/use/coc7.html#简略写法","610":"/sealdice-manual-next/use/coc7.html#奖励骰和惩罚骰-1","611":"/sealdice-manual-next/use/coc7.html#代骰-3","612":"/sealdice-manual-next/use/coc7.html#ti-li-疯狂发作症状","613":"/sealdice-manual-next/use/coc7.html#en-技能成长","614":"/sealdice-manual-next/use/coc7.html#进行技能成长","615":"/sealdice-manual-next/use/coc7.html#指定成长值","616":"/sealdice-manual-next/use/coc7.html#coc-生成随机属性-制卡","617":"/sealdice-manual-next/use/coc7.html#setcoc-设置房规","618":"/sealdice-manual-next/use/coc7.html#显示当前房规","619":"/sealdice-manual-next/use/coc7.html#列出可用房规","620":"/sealdice-manual-next/use/coc7.html#设定房规","621":"/sealdice-manual-next/use/core.html#核心指令","622":"/sealdice-manual-next/use/core.html#master-骰主指令","623":"/sealdice-manual-next/use/core.html#ban-黑白名单指令","624":"/sealdice-manual-next/use/core.html#bot-骰子管理","625":"/sealdice-manual-next/use/core.html#ext-扩展管理","626":"/sealdice-manual-next/use/core.html#set-骰子面数管理","627":"/sealdice-manual-next/use/core.html#r-骰点","628":"/sealdice-manual-next/use/core.html#常用示例","629":"/sealdice-manual-next/use/core.html#多轮骰点","630":"/sealdice-manual-next/use/core.html#在骰点中使用属性值","631":"/sealdice-manual-next/use/core.html#奖励骰与惩罚骰","632":"/sealdice-manual-next/use/core.html#优势骰与劣势骰","633":"/sealdice-manual-next/use/core.html#fvtt-骰点兼容","634":"/sealdice-manual-next/use/core.html#fate-命运骰","635":"/sealdice-manual-next/use/core.html#wod-骰点","636":"/sealdice-manual-next/use/core.html#双十字骰点","637":"/sealdice-manual-next/use/core.html#混合运算","638":"/sealdice-manual-next/use/core.html#rh-暗骰","639":"/sealdice-manual-next/use/core.html#rx-rxh-特殊骰点","640":"/sealdice-manual-next/use/core.html#nn-角色名设定","641":"/sealdice-manual-next/use/core.html#pc-角色卡管理","642":"/sealdice-manual-next/use/core.html#find-词条查询指令","643":"/sealdice-manual-next/use/core.html#指定默认查询分组","644":"/sealdice-manual-next/use/core.html#全文搜索","645":"/sealdice-manual-next/use/core.html#快速文档查找","646":"/sealdice-manual-next/use/core.html#致谢","647":"/sealdice-manual-next/use/core.html#help-帮助指令","648":"/sealdice-manual-next/use/core.html#set-设定默认骰子面数-设定游戏系统","649":"/sealdice-manual-next/use/core.html#botlist-机器人列表","650":"/sealdice-manual-next/use/deck_and_reply.html#牌堆-自定义回复","651":"/sealdice-manual-next/use/deck_and_reply.html#draw-抽牌-管理牌堆","652":"/sealdice-manual-next/use/deck_and_reply.html#信息查询","653":"/sealdice-manual-next/use/deck_and_reply.html#抽牌","654":"/sealdice-manual-next/use/deck_and_reply.html#自定义回复引用牌堆","655":"/sealdice-manual-next/use/deck_and_reply.html#牌堆管理","656":"/sealdice-manual-next/use/deck_and_reply.html#reply-管理自定义回复","657":"/sealdice-manual-next/use/dnd5e.html#龙与地下城-5e","658":"/sealdice-manual-next/use/dnd5e.html#dnd-dndx-生成随机属性-制卡","659":"/sealdice-manual-next/use/dnd5e.html#ri-先攻设置","660":"/sealdice-manual-next/use/dnd5e.html#init-先攻列表","661":"/sealdice-manual-next/use/dnd5e.html#st-操作角色卡","662":"/sealdice-manual-next/use/dnd5e.html#st-help-获取帮助信息","663":"/sealdice-manual-next/use/dnd5e.html#列出属性","664":"/sealdice-manual-next/use/dnd5e.html#删除属性","665":"/sealdice-manual-next/use/dnd5e.html#更新属性值","666":"/sealdice-manual-next/use/dnd5e.html#代骰","667":"/sealdice-manual-next/use/dnd5e.html#rc-检定","668":"/sealdice-manual-next/use/dnd5e.html#代骰-1","669":"/sealdice-manual-next/use/dnd5e.html#奇妙运用","670":"/sealdice-manual-next/use/dnd5e.html#buff-临时属性","671":"/sealdice-manual-next/use/dnd5e.html#代骰-2","672":"/sealdice-manual-next/use/dnd5e.html#ss-法术位-spell-slots","673":"/sealdice-manual-next/use/dnd5e.html#代骰-3","674":"/sealdice-manual-next/use/dnd5e.html#cast-使用法术位","675":"/sealdice-manual-next/use/dnd5e.html#代骰-4","676":"/sealdice-manual-next/use/dnd5e.html#longrest-长休","677":"/sealdice-manual-next/use/dnd5e.html#代骰-5","678":"/sealdice-manual-next/use/dnd5e.html#ds-死亡豁免","679":"/sealdice-manual-next/use/dnd5e.html#代骰-6","680":"/sealdice-manual-next/use/faq.html#常见问题","681":"/sealdice-manual-next/use/faq.html#为啥海豹不理我","682":"/sealdice-manual-next/use/faq.html#可以关闭暗骰吗","683":"/sealdice-manual-next/use/faq.html#退群指令","684":"/sealdice-manual-next/use/faq.html#登录服务器开浏览器使用好麻烦-能远程直接访问-webui-吗","685":"/sealdice-manual-next/use/faq.html#在服务器上登录时说「需要在同一-wifi-下扫码」怎么办","686":"/sealdice-manual-next/use/faq.html#_1-首选-让手机跟服务器真的处于同一个网络","687":"/sealdice-manual-next/use/faq.html#_2-本机上完成扫码登录-然后将登录过的配置文件覆盖到服务器上","688":"/sealdice-manual-next/use/faq.html#at-其他骰子做检定的时候-海豹也会回应-怎么办","689":"/sealdice-manual-next/use/faq.html#为啥好像反应慢一拍","690":"/sealdice-manual-next/use/faq.html#我希望在我的骰子进群或者被踢出时通知我","691":"/sealdice-manual-next/use/faq.html#支持-qq-频道吗","692":"/sealdice-manual-next/use/faq.html#怎么同时运行多个海豹","693":"/sealdice-manual-next/use/faq.html#windows-系统","694":"/sealdice-manual-next/use/faq.html#如果你想在-windows-系统指定端口-需要一点操作","695":"/sealdice-manual-next/use/faq.html#除-android-外的其他系统","696":"/sealdice-manual-next/use/faq.html#我机器上启动非常慢-而且托盘点不出来右键菜单","697":"/sealdice-manual-next/use/faq.html#能在手机上搭建吗","698":"/sealdice-manual-next/use/faq.html#我是-master-怎么帮人取出-log","699":"/sealdice-manual-next/use/faq.html#我忘了-webui-密码","700":"/sealdice-manual-next/use/fun.html#功能","701":"/sealdice-manual-next/use/fun.html#jrrp-今日人品","702":"/sealdice-manual-next/use/fun.html#gugu-人工智能鸽子","703":"/sealdice-manual-next/use/fun.html#jsr-不重复骰点","704":"/sealdice-manual-next/use/fun.html#drl-骰池抽取","705":"/sealdice-manual-next/use/fun.html#text-文本模板测试","706":"/sealdice-manual-next/use/fun.html#send-向骰主发送消息-回复消息","707":"/sealdice-manual-next/use/fun.html#welcome-新人入群欢迎","708":"/sealdice-manual-next/use/fun.html#ping-指令响应测试","709":"/sealdice-manual-next/use/fun.html#alias-定义快捷指令-使用快捷指令","710":"/sealdice-manual-next/use/fun.html#额外-trpg-规则支持","711":"/sealdice-manual-next/use/fun.html#ww-wod-规则骰点","712":"/sealdice-manual-next/use/fun.html#dx-双重十字规则骰点","713":"/sealdice-manual-next/use/fun.html#ek-共鸣性怪异规则骰点","714":"/sealdice-manual-next/use/fun.html#ekgen-共鸣性怪异规则属性生成","715":"/sealdice-manual-next/use/fun.html#rsr-暗影狂奔规则骰点","716":"/sealdice-manual-next/use/introduce.html#基础概念","717":"/sealdice-manual-next/use/introduce.html#什么是骰子","718":"/sealdice-manual-next/use/introduce.html#获取和使用","719":"/sealdice-manual-next/use/introduce.html#指令回复","720":"/sealdice-manual-next/use/introduce.html#指令前缀","721":"/sealdice-manual-next/use/introduce.html#指令名","722":"/sealdice-manual-next/use/introduce.html#指令参数","723":"/sealdice-manual-next/use/introduce.html#指令标志","724":"/sealdice-manual-next/use/introduce.html#自定义回复","725":"/sealdice-manual-next/use/log.html#日志","726":"/sealdice-manual-next/use/log.html#log-跑团日志","727":"/sealdice-manual-next/use/log.html#记录日志","728":"/sealdice-manual-next/use/log.html#数据统计","729":"/sealdice-manual-next/use/log.html#管理日志","730":"/sealdice-manual-next/use/log.html#骰主代取-log","731":"/sealdice-manual-next/use/log.html#ob-旁观","732":"/sealdice-manual-next/use/log.html#sn-自动群名片","733":"/sealdice-manual-next/use/log.html#预设模板","734":"/sealdice-manual-next/use/log.html#扩展规则","735":"/sealdice-manual-next/use/log.html#自定义模板","736":"/sealdice-manual-next/use/log.html#关闭自动修改","737":"/sealdice-manual-next/use/log.html#hiy-数据统计","738":"/sealdice-manual-next/use/other_rules.html#其它规则支持","739":"/sealdice-manual-next/use/other_rules.html#绿色三角洲-delta-green","740":"/sealdice-manual-next/use/other_rules.html#黑暗世界-world-of-darkness","741":"/sealdice-manual-next/use/other_rules.html#双重十字-double-cross","742":"/sealdice-manual-next/use/other_rules.html#暗影狂奔-shadowrun","743":"/sealdice-manual-next/use/other_rules.html#共鸣性怪异-emoklore","744":"/sealdice-manual-next/use/other_rules.html#更多规则","745":"/sealdice-manual-next/use/quick-start.html#快速上手","746":"/sealdice-manual-next/use/quick-start.html#常用指令速查","747":"/sealdice-manual-next/use/quick-start.html#通常流程","748":"/sealdice-manual-next/use/quick-start.html#秘密团","749":"/sealdice-manual-next/use/quick-start.html#进行-coc-游戏","750":"/sealdice-manual-next/use/quick-start.html#创作角色卡","751":"/sealdice-manual-next/use/quick-start.html#理智检定-san-check","752":"/sealdice-manual-next/use/quick-start.html#抽取疯狂症状","753":"/sealdice-manual-next/use/quick-start.html#技能成长","754":"/sealdice-manual-next/use/quick-start.html#进行-d-d-游戏","755":"/sealdice-manual-next/use/quick-start.html#创作角色卡-1","756":"/sealdice-manual-next/use/quick-start.html#设定先攻值","757":"/sealdice-manual-next/use/quick-start.html#设定临时属性","758":"/sealdice-manual-next/use/quick-start.html#法术位","759":"/sealdice-manual-next/use/quick-start.html#长休","760":"/sealdice-manual-next/use/quick-start.html#死亡豁免","761":"/sealdice-manual-next/use/story.html#故事","762":"/sealdice-manual-next/use/story.html#name-随机名字","763":"/sealdice-manual-next/use/story.html#namednd-随机-dnd-名字","764":"/sealdice-manual-next/use/story.html#who-随机排列顺序","765":"/sealdice-manual-next/use/story.html#modu-魔都模组查询"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,1],"1":[1,1,11],"2":[1,1,9],"3":[1,1,11],"4":[1,1,8],"5":[1,1,40],"6":[2,1,1],"7":[3,3,19],"8":[1,3,9],"9":[1,1,9],"10":[1,2,26],"11":[2,2,24],"12":[1,2,30],"13":[4,2,28],"14":[5,2,12],"15":[1,1,76],"16":[1,1,13],"17":[2,1,10],"18":[2,1,17],"19":[2,1,16],"20":[2,1,13],"21":[2,1,7],"22":[1,1,5],"23":[1,1,1],"24":[1,2,26],"25":[1,2,12],"26":[1,3,34],"27":[1,3,15],"28":[1,3,5],"29":[1,1,5],"30":[1,1,27],"31":[1,1,31],"32":[2,2,10],"33":[2,2,45],"34":[2,2,28],"35":[2,2,32],"36":[2,2,29],"37":[2,2,51],"38":[2,2,29],"39":[2,2,13],"40":[2,2,19],"41":[1,2,7],"42":[2,3,4],"43":[2,3,6],"44":[2,2,3],"45":[2,2,32],"46":[2,2,28],"47":[2,2,28],"48":[1,1,99],"49":[1,1,1],"50":[1,2,23],"51":[1,3,38],"52":[1,2,31],"53":[1,2,19],"54":[1,3,30],"55":[1,2,10],"56":[1,3,48],"57":[1,2,84],"58":[1,2,35],"59":[1,2,23],"60":[2,1,1],"61":[1,3,54],"62":[1,3,25],"63":[2,4,22],"64":[1,4,79],"65":[1,1,12],"66":[3,1,66],"67":[4,4,56],"68":[3,1,65],"69":[1,1,38],"70":[1,1,40],"71":[1,1,1],"72":[2,2,44],"73":[2,2,57],"74":[1,2,10],"75":[1,1,6],"76":[1,2,14],"77":[1,2,27],"78":[3,3,61],"79":[2,3,19],"80":[1,1,1],"81":[1,2,55],"82":[1,2,41],"83":[2,2,39],"84":[2,2,74],"85":[4,2,8],"86":[1,2,1],"87":[1,2,23],"88":[1,1,5],"89":[1,1,17],"90":[3,1,72],"91":[1,1,15],"92":[1,1,12],"93":[2,1,43],"94":[2,1,291],"95":[3,2,14],"96":[2,2,19],"97":[2,2,29],"98":[2,2,38],"99":[1,2,23],"100":[1,2,6],"101":[1,2,8],"102":[1,2,16],"103":[3,2,20],"104":[1,2,30],"105":[2,2,62],"106":[3,2,24],"107":[3,2,9],"108":[3,2,19],"109":[2,2,37],"110":[2,2,53],"111":[1,1,1],"112":[1,1,58],"113":[1,1,7],"114":[1,2,79],"115":[1,2,53],"116":[1,2,80],"117":[1,2,134],"118":[1,1,32],"119":[2,2,93],"120":[1,1,61],"121":[2,2,74],"122":[2,1,1],"123":[1,3,27],"124":[1,3,17],"125":[2,3,38],"126":[2,3,13],"127":[3,3,127],"128":[1,1,37],"129":[2,2,98],"130":[2,2,158],"131":[1,1,44],"132":[1,1,3],"133":[1,1,89],"134":[1,1,95],"135":[1,1,127],"136":[3,1,83],"137":[2,1,44],"138":[1,1,65],"139":[2,2,119],"140":[1,1,23],"141":[2,2,82],"142":[1,2,42],"143":[3,1,22],"144":[1,3,15],"145":[1,3,43],"146":[3,3,38],"147":[3,3,40],"148":[1,1,28],"149":[2,1,26],"150":[1,1,29],"151":[1,1,20],"152":[1,1,38],"153":[1,1,1],"154":[4,2,34],"155":[6,2,19],"156":[3,2,13],"157":[1,1,29],"158":[1,1,114],"159":[1,1,82],"160":[1,1,1],"161":[3,2,30],"162":[1,2,23],"163":[1,1,1],"164":[1,2,20],"165":[1,2,61],"166":[1,2,26],"167":[1,1,32],"168":[1,1,9],"169":[1,1,1],"170":[4,2,22],"171":[1,1,12],"172":[1,1,162],"173":[1,1,38],"174":[1,1,23],"175":[1,1,1],"176":[1,2,11],"177":[1,2,7],"178":[1,2,24],"179":[1,2,1],"180":[2,3,14],"181":[2,3,30],"182":[2,3,8],"183":[1,1,24],"184":[1,1,10],"185":[1,1,22],"186":[3,1,16],"187":[5,1,39],"188":[2,1,7],"189":[3,3,45],"190":[2,3,67],"191":[2,3,15],"192":[5,3,27],"193":[5,1,31],"194":[1,1,1],"195":[1,1,13],"196":[3,2,42],"197":[3,2,3],"198":[10,2,7],"199":[2,2,37],"200":[3,2,17],"201":[5,2,39],"202":[5,2,28],"203":[1,1,31],"204":[1,2,12],"205":[1,2,17],"206":[1,2,84],"207":[1,2,59],"208":[1,2,1],"209":[1,3,42],"210":[1,3,42],"211":[2,3,19],"212":[1,2,9],"213":[1,1,28],"214":[1,2,16],"215":[1,2,12],"216":[2,2,1],"217":[1,4,23],"218":[1,4,8],"219":[1,4,4],"220":[1,4,6],"221":[1,4,9],"222":[2,2,8],"223":[2,4,24],"224":[2,4,51],"225":[2,4,50],"226":[2,4,23],"227":[1,4,27],"228":[2,2,1],"229":[2,4,10],"230":[2,4,18],"231":[1,2,1],"232":[2,3,15],"233":[5,3,20],"234":[1,2,10],"235":[1,1,1],"236":[3,1,36],"237":[1,4,14],"238":[2,5,52],"239":[1,5,62],"240":[2,4,8],"241":[1,6,39],"242":[1,6,85],"243":[2,4,1],"244":[3,6,3],"245":[3,6,16],"246":[4,6,13],"247":[4,6,14],"248":[4,6,8],"249":[5,6,6],"250":[7,6,8],"251":[3,6,13],"252":[9,6,34],"253":[3,1,32],"254":[1,1,114],"255":[1,2,13],"256":[3,2,48],"257":[3,2,39],"258":[2,2,42],"259":[1,2,54],"260":[1,2,7],"261":[2,1,41],"262":[2,3,119],"263":[2,3,23],"264":[2,3,23],"265":[1,3,27],"266":[2,1,14],"267":[1,2,1],"268":[2,3,12],"269":[1,2,1],"270":[1,3,4],"271":[1,2,1],"272":[1,3,41],"273":[1,2,1],"274":[1,3,23],"275":[1,2,1],"276":[1,3,3],"277":[1,2,1],"278":[2,3,91],"279":[1,3,21],"280":[1,2,1],"281":[1,3,6],"282":[1,2,1],"283":[1,3,17],"284":[1,2,1],"285":[1,3,33],"286":[1,3,17],"287":[1,3,17],"288":[1,3,3],"289":[1,2,1],"290":[1,3,26],"291":[1,3,6],"292":[1,3,36],"293":[1,2,1],"294":[1,3,18],"295":[1,3,18],"296":[1,2,1],"297":[1,3,3],"298":[1,2,1],"299":[1,3,33],"300":[1,2,1],"301":[1,3,13],"302":[1,3,42],"303":[1,2,1],"304":[1,3,6],"305":[1,2,1],"306":[1,3,7],"307":[1,3,23],"308":[2,3,4],"309":[2,3,30],"310":[1,2,1],"311":[1,3,6],"312":[1,2,1],"313":[1,3,22],"314":[1,1,27],"315":[1,1,40],"316":[1,1,8],"317":[1,1,14],"318":[1,1,8],"319":[1,2,8],"320":[1,2,15],"321":[1,1,11],"322":[1,1,5],"323":[2,1,13],"324":[1,1,1],"325":[2,2,7],"326":[1,2,4],"327":[1,2,9],"328":[1,1,20],"329":[1,1,3],"330":[2,1,4],"331":[2,3,9],"332":[2,3,12],"333":[1,3,17],"334":[1,4,22],"335":[1,1,7],"336":[1,2,8],"337":[1,2,9],"338":[2,2,10],"339":[1,1,5],"340":[1,1,11],"341":[1,1,34],"342":[3,1,9],"343":[3,1,7],"344":[1,1,18],"345":[1,1,9],"346":[1,1,23],"347":[1,1,29],"348":[2,1,7],"349":[1,1,24],"350":[1,1,29],"351":[1,1,5],"352":[2,1,16],"353":[1,1,7],"354":[1,2,26],"355":[1,2,28],"356":[1,1,32],"357":[1,1,8],"358":[3,1,6],"359":[2,1,8],"360":[1,1,5],"361":[2,1,17],"362":[2,1,33],"363":[1,3,58],"364":[1,3,25],"365":[2,3,20],"366":[1,1,5],"367":[1,2,4],"368":[4,3,34],"369":[3,3,10],"370":[3,3,16],"371":[3,3,34],"372":[1,2,1],"373":[3,3,22],"374":[3,3,20],"375":[3,1,25],"376":[1,1,15],"377":[1,1,13],"378":[1,1,6],"379":[1,1,1],"380":[2,2,4],"381":[1,1,9],"382":[1,1,5],"383":[2,1,18],"384":[1,1,9],"385":[3,1,30],"386":[2,1,22],"387":[1,1,3],"388":[1,2,14],"389":[1,2,15],"390":[2,1,4],"391":[1,1,5],"392":[2,1,5],"393":[1,1,23],"394":[2,1,14],"395":[2,1,38],"396":[1,3,19],"397":[1,3,9],"398":[1,3,5],"399":[1,3,5],"400":[2,1,4],"401":[2,1,7],"402":[2,2,13],"403":[3,2,11],"404":[4,2,16],"405":[1,5,20],"406":[1,5,14],"407":[1,5,10],"408":[1,5,7],"409":[4,2,7],"410":[4,2,6],"411":[1,1,5],"412":[2,1,24],"413":[2,1,20],"414":[1,3,38],"415":[2,3,13],"416":[1,3,12],"417":[1,3,19],"418":[1,1,20],"419":[1,2,34],"420":[1,3,48],"421":[1,3,16],"422":[1,2,23],"423":[1,3,10],"424":[1,1,6],"425":[1,1,25],"426":[1,1,20],"427":[1,1,27],"428":[1,1,16],"429":[1,1,4],"430":[2,1,52],"431":[1,1,34],"432":[1,1,2],"433":[1,1,2],"434":[1,1,2],"435":[1,1,3],"436":[1,1,5],"437":[2,1,4],"438":[1,1,4],"439":[1,1,1],"440":[2,2,8],"441":[4,2,30],"442":[1,1,30],"443":[1,1,20],"444":[1,1,9],"445":[1,1,3],"446":[1,1,27],"447":[1,1,35],"448":[4,1,22],"449":[4,1,12],"450":[3,1,31],"451":[4,1,14],"452":[1,1,1],"453":[1,2,16],"454":[1,2,12],"455":[1,2,9],"456":[1,1,9],"457":[1,1,53],"458":[1,2,18],"459":[2,1,26],"460":[2,1,70],"461":[1,1,3],"462":[1,1,5],"463":[1,1,5],"464":[2,1,34],"465":[1,1,18],"466":[1,1,36],"467":[1,1,5],"468":[1,1,6],"469":[6,1,18],"470":[1,1,15],"471":[1,1,27],"472":[1,1,6],"473":[2,1,16],"474":[1,1,21],"475":[1,1,18],"476":[1,1,5],"477":[2,1,11],"478":[3,1,44],"479":[1,3,32],"480":[1,3,94],"481":[4,3,44],"482":[3,1,41],"483":[3,1,1],"484":[1,4,2],"485":[3,5,3],"486":[3,5,5],"487":[1,4,2],"488":[2,5,5],"489":[3,1,15],"490":[5,3,11],"491":[4,8,88],"492":[1,8,15],"493":[2,8,47],"494":[2,8,25],"495":[3,8,10],"496":[3,3,23],"497":[1,5,74],"498":[1,5,28],"499":[2,1,37],"500":[1,2,3],"501":[1,2,39],"502":[1,2,7],"503":[1,2,37],"504":[1,2,81],"505":[1,2,16],"506":[1,2,6],"507":[1,3,7],"508":[1,3,7],"509":[1,3,14],"510":[1,1,5],"511":[1,1,1],"512":[3,2,70],"513":[1,2,78],"514":[1,1,67],"515":[1,1,37],"516":[1,2,31],"517":[2,3,5],"518":[2,3,17],"519":[1,2,31],"520":[2,3,4],"521":[2,3,47],"522":[1,2,29],"523":[2,3,8],"524":[1,3,15],"525":[1,2,7],"526":[2,3,5],"527":[3,3,6],"528":[1,1,5],"529":[2,1,4],"530":[2,1,24],"531":[2,3,36],"532":[2,3,42],"533":[1,1,12],"534":[1,1,5],"535":[2,1,27],"536":[1,1,18],"537":[1,1,13],"538":[1,1,83],"539":[1,1,127],"540":[1,1,16],"541":[3,1,61],"542":[1,1,14],"543":[1,2,25],"544":[1,2,5],"545":[1,2,11],"546":[1,2,7],"547":[1,1,3],"548":[1,1,20],"549":[1,1,26],"550":[1,1,27],"551":[1,1,8],"552":[1,1,10],"553":[1,1,13],"554":[1,1,1],"555":[2,2,1],"556":[2,1,1],"557":[1,3,4],"558":[1,3,6],"559":[3,3,5],"560":[3,1,1],"561":[1,4,4],"562":[1,4,18],"563":[1,4,1],"564":[1,4,1],"565":[1,4,1],"566":[1,4,1],"567":[1,4,1],"568":[1,1,13],"569":[2,1,50],"570":[1,1,51],"571":[1,1,8],"572":[2,1,34],"573":[1,1,11],"574":[1,1,7],"575":[1,1,14],"576":[6,2,15],"577":[1,1,43],"578":[1,1,9],"579":[1,1,16],"580":[2,1,22],"581":[1,1,8],"582":[1,1,103],"583":[1,1,39],"584":[3,1,30],"585":[3,3,18],"586":[4,5,3],"587":[1,5,8],"588":[1,5,9],"589":[1,5,19],"590":[1,5,12],"591":[1,5,27],"592":[1,5,6],"593":[1,5,26],"594":[4,3,22],"595":[1,6,31],"596":[1,6,21],"597":[1,6,25],"598":[1,6,29],"599":[1,6,17],"600":[1,6,22],"601":[4,3,12],"602":[1,6,23],"603":[4,3,24],"604":[1,6,25],"605":[1,6,32],"606":[1,6,16],"607":[3,3,6],"608":[1,5,18],"609":[1,5,9],"610":[1,5,9],"611":[1,5,15],"612":[4,3,23],"613":[3,3,9],"614":[1,5,19],"615":[1,5,20],"616":[4,3,52],"617":[3,3,2],"618":[1,5,4],"619":[1,5,41],"620":[1,5,6],"621":[1,1,6],"622":[3,1,62],"623":[3,1,46],"624":[3,1,22],"625":[3,1,57],"626":[3,1,20],"627":[3,1,8],"628":[1,3,45],"629":[1,3,9],"630":[1,3,11],"631":[1,3,34],"632":[1,3,34],"633":[2,3,24],"634":[2,3,20],"635":[2,3,84],"636":[1,3,54],"637":[1,3,65],"638":[3,1,24],"639":[4,1,38],"640":[3,1,29],"641":[3,1,45],"642":[3,1,65],"643":[1,3,16],"644":[1,3,15],"645":[1,3,2],"646":[1,3,26],"647":[3,1,11],"648":[4,1,37],"649":[3,1,29],"650":[2,1,12],"651":[4,2,8],"652":[1,5,60],"653":[1,5,38],"654":[1,5,6],"655":[1,5,7],"656":[3,2,11],"657":[2,1,23],"658":[5,2,50],"659":[3,2,57],"660":[3,2,42],"661":[3,2,1],"662":[4,4,1],"663":[1,4,13],"664":[1,4,10],"665":[1,4,105],"666":[1,4,4],"667":[3,2,42],"668":[1,4,4],"669":[1,4,22],"670":[3,2,55],"671":[1,4,5],"672":[5,2,49],"673":[1,7,4],"674":[3,2,15],"675":[1,4,4],"676":[3,2,17],"677":[1,4,4],"678":[3,2,59],"679":[1,4,4],"680":[1,1,6],"681":[2,1,30],"682":[2,1,5],"683":[2,1,10],"684":[5,1,47],"685":[5,1,6],"686":[3,6,126],"687":[3,6,15],"688":[4,1,14],"689":[1,1,15],"690":[1,1,22],"691":[4,1,18],"692":[2,1,1],"693":[2,3,18],"694":[4,4,22],"695":[3,3,19],"696":[3,1,12],"697":[2,1,5],"698":[5,1,6],"699":[3,1,10],"700":[1,1,15],"701":[3,1,9],"702":[3,1,13],"703":[3,1,21],"704":[3,1,32],"705":[3,1,8],"706":[4,1,38],"707":[3,1,17],"708":[3,1,40],"709":[5,1,52],"710":[3,1,1],"711":[4,4,53],"712":[3,4,9],"713":[3,4,8],"714":[3,4,6],"715":[3,4,21],"716":[1,1,11],"717":[2,1,24],"718":[1,1,50],"719":[1,2,6],"720":[1,3,20],"721":[1,3,32],"722":[1,3,70],"723":[1,3,23],"724":[1,2,12],"725":[1,1,5],"726":[3,1,1],"727":[1,3,46],"728":[1,3,11],"729":[1,3,37],"730":[2,3,29],"731":[3,1,11],"732":[3,1,9],"733":[1,3,22],"734":[1,3,9],"735":[1,3,19],"736":[1,3,3],"737":[3,1,2],"738":[1,1,8],"739":[3,1,28],"740":[4,1,19],"741":[3,1,17],"742":[2,1,12],"743":[2,1,12],"744":[1,1,9],"745":[1,1,7],"746":[1,1,134],"747":[1,1,47],"748":[1,2,15],"749":[3,2,1],"750":[1,5,6],"751":[3,5,12],"752":[1,5,7],"753":[1,5,6],"754":[4,2,1],"755":[1,6,6],"756":[1,6,15],"757":[1,6,9],"758":[1,6,8],"759":[1,6,3],"760":[1,6,6],"761":[1,1,5],"762":[3,1,17],"763":[5,1,22],"764":[3,1,7],"765":[3,1,22]},"averageFieldLength":[1.7441253263707575,2.2415143603133165,23.665796344647514],"storedFields":{"0":{"title":"关于","titles":[]},"1":{"title":"官方站点","titles":["关于"]},"2":{"title":"投喂","titles":["关于"]},"3":{"title":"手册贡献者","titles":["关于"]},"4":{"title":"开源","titles":["关于"]},"5":{"title":"参与项目","titles":[]},"6":{"title":"如何参与项目?","titles":["参与项目"]},"7":{"title":"Bug 反馈、功能建议","titles":["参与项目","如何参与项目?"]},"8":{"title":"提交修改","titles":["参与项目","如何参与项目?"]},"9":{"title":"贡献指南","titles":["参与项目"]},"10":{"title":"整体流程","titles":["参与项目","贡献指南"]},"11":{"title":"对目标仓库进行 fork","titles":["参与项目","贡献指南"]},"12":{"title":"切出工作分支","titles":["参与项目","贡献指南"]},"13":{"title":"发起 Pull Request 请求","titles":["参与项目","贡献指南"]},"14":{"title":"保持 fork 仓库与上游同步(可选)","titles":["参与项目","贡献指南"]},"15":{"title":"许可协议","titles":[]},"16":{"title":"从零开始","titles":[]},"17":{"title":"1. 部署海豹","titles":["从零开始"]},"18":{"title":"2. 连接平台","titles":["从零开始"]},"19":{"title":"3. 熟悉海豹核心的功能","titles":["从零开始"]},"20":{"title":"4. 熟悉指令","titles":["从零开始"]},"21":{"title":"5. 进阶自定义","titles":["从零开始"]},"22":{"title":"编写复杂文案","titles":[]},"23":{"title":"示例","titles":["编写复杂文案"]},"24":{"title":"根据骰点结果展示不同文案","titles":["编写复杂文案","示例"]},"25":{"title":"多套文案的实现","titles":["编写复杂文案","示例"]},"26":{"title":"切换命令实现","titles":["编写复杂文案","示例","多套文案的实现"]},"27":{"title":"文案调整","titles":["编写复杂文案","示例","多套文案的实现"]},"28":{"title":"展示","titles":["编写复杂文案","示例","多套文案的实现"]},"29":{"title":"编写牌堆","titles":[]},"30":{"title":"概览","titles":["编写牌堆"]},"31":{"title":"语法快速入门","titles":["编写牌堆"]},"32":{"title":"TOML 注释","titles":["编写牌堆","语法快速入门"]},"33":{"title":"TOML 键值对","titles":["编写牌堆","语法快速入门"]},"34":{"title":"TOML 键名","titles":["编写牌堆","语法快速入门"]},"35":{"title":"TOML 字符串","titles":["编写牌堆","语法快速入门"]},"36":{"title":"TOML 表","titles":["编写牌堆","语法快速入门"]},"37":{"title":"TOML 数组","titles":["编写牌堆","语法快速入门"]},"38":{"title":"JSON 键值","titles":["编写牌堆","语法快速入门"]},"39":{"title":"JSON 数组","titles":["编写牌堆","语法快速入门"]},"40":{"title":"JSON 对象","titles":["编写牌堆","语法快速入门"]},"41":{"title":"注释","titles":["编写牌堆","语法快速入门"]},"42":{"title":"1. 行内注释","titles":["编写牌堆","语法快速入门","注释"]},"43":{"title":"2. 注释块","titles":["编写牌堆","语法快速入门","注释"]},"44":{"title":"YAML 注释","titles":["编写牌堆","语法快速入门"]},"45":{"title":"YAML 键值","titles":["编写牌堆","语法快速入门"]},"46":{"title":"YAML 对象","titles":["编写牌堆","语法快速入门"]},"47":{"title":"YAML 数组","titles":["编写牌堆","语法快速入门"]},"48":{"title":"基础牌堆编写","titles":["编写牌堆"]},"49":{"title":"牌堆语法","titles":["编写牌堆"]},"50":{"title":"一个项中抽取其他项","titles":["编写牌堆","牌堆语法"]},"51":{"title":"放回抽取与不放回抽取","titles":["编写牌堆","牌堆语法","一个项中抽取其他项"]},"52":{"title":"插入掷骰表达式","titles":["编写牌堆","牌堆语法"]},"53":{"title":"权重","titles":["编写牌堆","牌堆语法"]},"54":{"title":"权重与不放回抽取","titles":["编写牌堆","牌堆语法","权重"]},"55":{"title":"发送图片等","titles":["编写牌堆","牌堆语法"]},"56":{"title":"牌堆打包","titles":["编写牌堆","牌堆语法","发送图片等"]},"57":{"title":"牌组的隐藏和导出控制","titles":["编写牌堆","牌堆语法"]},"58":{"title":"配置牌堆更新","titles":["编写牌堆","牌堆语法"]},"59":{"title":"插入海豹内置脚本语言","titles":["编写牌堆","牌堆语法"]},"60":{"title":"TOML 牌堆的更多功能","titles":["编写牌堆"]},"61":{"title":"更多牌组设置","titles":["编写牌堆","TOML 牌堆的更多功能"]},"62":{"title":"云端内容","titles":["编写牌堆","TOML 牌堆的更多功能"]},"63":{"title":"API 接口要求","titles":["编写牌堆","TOML 牌堆的更多功能","云端内容"]},"64":{"title":"牌堆配置云端内容","titles":["编写牌堆","TOML 牌堆的更多功能","云端内容"]},"65":{"title":"编写帮助文档","titles":[]},"66":{"title":"创建 JSON 格式的帮助文档","titles":["编写帮助文档"]},"67":{"title":"示例文档:塔罗牌(节选)","titles":["编写帮助文档","创建 JSON 格式的帮助文档"]},"68":{"title":"创建 EXCEL 格式的帮助文档","titles":["编写帮助文档"]},"69":{"title":"编写自定义回复","titles":[]},"70":{"title":"第一个自定义回复","titles":["编写自定义回复"]},"71":{"title":"触发条件","titles":["编写自定义回复"]},"72":{"title":"文本匹配:模糊匹配","titles":["编写自定义回复","触发条件"]},"73":{"title":"文本匹配:正则匹配","titles":["编写自定义回复","触发条件"]},"74":{"title":"表达式为真","titles":["编写自定义回复","触发条件"]},"75":{"title":"回复结果","titles":["编写自定义回复"]},"76":{"title":"嵌入脚本语言","titles":["编写自定义回复","回复结果"]},"77":{"title":"执行块","titles":["编写自定义回复","回复结果"]},"78":{"title":"示例:使用 if","titles":["编写自定义回复","回复结果","执行块"]},"79":{"title":"示例:变量运算","titles":["编写自定义回复","回复结果","执行块"]},"80":{"title":"更多示例片段","titles":["编写自定义回复"]},"81":{"title":"牌堆与自定义回复的结合","titles":["编写自定义回复","更多示例片段"]},"82":{"title":"多行回复的错误使用","titles":["编写自定义回复","更多示例片段"]},"83":{"title":"限定每人/每群每天一次","titles":["编写自定义回复","更多示例片段"]},"84":{"title":"条件语句嵌套条件算符,多条件条件语句","titles":["编写自定义回复","更多示例片段"]},"85":{"title":"同时使用前缀和后缀匹配,以匹配 AxxxxxxxB 型文本","titles":["编写自定义回复","更多示例片段"]},"86":{"title":"随机看图","titles":["编写自定义回复","更多示例片段"]},"87":{"title":"单人模组","titles":["编写自定义回复","更多示例片段"]},"88":{"title":"编写敏感词库","titles":[]},"89":{"title":"创建文本格式的敏感词库","titles":["编写敏感词库"]},"90":{"title":"创建 TOML 格式的敏感词库","titles":["编写敏感词库"]},"91":{"title":"进阶介绍","titles":[]},"92":{"title":"了解海豹语","titles":["进阶介绍"]},"93":{"title":"用什么编写?","titles":["进阶介绍"]},"94":{"title":"API 列表","titles":[]},"95":{"title":"replyGroup replyPerson replyToSender","titles":["API 列表"]},"96":{"title":"memberBan memberKick","titles":["API 列表"]},"97":{"title":"format formatTmpl","titles":["API 列表"]},"98":{"title":"getCtxProxyFirst getCtxProxyAtPos","titles":["API 列表"]},"99":{"title":"vars","titles":["API 列表"]},"100":{"title":"ext","titles":["API 列表"]},"101":{"title":"coc","titles":["API 列表"]},"102":{"title":"deck","titles":["API 列表"]},"103":{"title":"自定义 TRPG 规则相关","titles":["API 列表"]},"104":{"title":"其他","titles":["API 列表"]},"105":{"title":"ctx 的内容","titles":["API 列表"]},"106":{"title":"ctx.group 的内容","titles":["API 列表"]},"107":{"title":"ctx.player 的内容","titles":["API 列表"]},"108":{"title":"ctx.endPoint 的内容","titles":["API 列表"]},"109":{"title":"msg 的内容","titles":["API 列表"]},"110":{"title":"cmdArgs 的内容","titles":["API 列表"]},"111":{"title":"常见用法示例","titles":[]},"112":{"title":"创建和注册扩展","titles":["常见用法示例"]},"113":{"title":"自定义指令","titles":["常见用法示例"]},"114":{"title":"创建指令","titles":["常见用法示例","自定义指令"]},"115":{"title":"指令参数与返回值","titles":["常见用法示例","自定义指令"]},"116":{"title":"指令核心执行流程","titles":["常见用法示例","自定义指令"]},"117":{"title":"注册指令","titles":["常见用法示例","自定义指令"]},"118":{"title":"抽取牌堆","titles":["常见用法示例"]},"119":{"title":"示例代码:抽取牌堆","titles":["常见用法示例","抽取牌堆"]},"120":{"title":"权限识别","titles":["常见用法示例"]},"121":{"title":"示例代码:权限识别","titles":["常见用法示例","权限识别"]},"122":{"title":"黑名单 / 信任名单操作","titles":["常见用法示例"]},"123":{"title":"黑名单操作的函数","titles":["常见用法示例","黑名单 / 信任名单操作"]},"124":{"title":"信任用户名单","titles":["常见用法示例","黑名单 / 信任名单操作"]},"125":{"title":"获取黑名单 / 信任名单列表","titles":["常见用法示例","黑名单 / 信任名单操作"]},"126":{"title":"获取用户在黑名单 / 信任名单中的信息","titles":["常见用法示例","黑名单 / 信任名单操作"]},"127":{"title":"示例代码:黑名单 / 信任名单操作","titles":["常见用法示例","黑名单 / 信任名单操作"]},"128":{"title":"存取数据","titles":["常见用法示例"]},"129":{"title":"示例代码:投喂插件","titles":["常见用法示例","存取数据"]},"130":{"title":"示例代码:群内安价收集","titles":["常见用法示例","存取数据"]},"131":{"title":"数据处理模板","titles":["常见用法示例"]},"132":{"title":"读取玩家或群组数据","titles":["常见用法示例"]},"133":{"title":"编写暗骰指令","titles":["常见用法示例"]},"134":{"title":"编写代骰指令","titles":["常见用法示例"]},"135":{"title":"网络请求","titles":["常见用法示例"]},"136":{"title":"自定义 COC 规则","titles":["常见用法示例"]},"137":{"title":"补充:使用非指令关键词","titles":["常见用法示例"]},"138":{"title":"注册插件配置项","titles":["常见用法示例"]},"139":{"title":"示例代码:注册配置项","titles":["常见用法示例","注册插件配置项"]},"140":{"title":"注册定时任务","titles":["常见用法示例"]},"141":{"title":"API 参数","titles":["常见用法示例","注册定时任务"]},"142":{"title":"使用示例","titles":["常见用法示例","注册定时任务"]},"143":{"title":"编写新的 TRPG 规则","titles":[]},"144":{"title":"角色属性","titles":["编写新的 TRPG 规则"]},"145":{"title":"游戏规则","titles":["编写新的 TRPG 规则"]},"146":{"title":"规则模板是什么?有什么功能?","titles":["编写新的 TRPG 规则"]},"147":{"title":"那么,要怎么做?","titles":["编写新的 TRPG 规则"]},"148":{"title":"插件的工程化编写","titles":[]},"149":{"title":"Clone 或下载模板项目","titles":["插件的工程化编写"]},"150":{"title":"补全信息","titles":["插件的工程化编写"]},"151":{"title":"使用和编译","titles":["插件的工程化编写"]},"152":{"title":"目录结构","titles":["插件的工程化编写"]},"153":{"title":"其他问题","titles":["插件的工程化编写"]},"154":{"title":"我能在项目中引用 npm 包吗?","titles":["插件的工程化编写","其他问题"]},"155":{"title":"我想使用的 API 没有被自动提示,直接使用被提示错误,如何解决?","titles":["插件的工程化编写","其他问题"]},"156":{"title":"默认输出的插件代码是压缩过的,如何尽量保持产物的可读性?","titles":["插件的工程化编写","其他问题"]},"157":{"title":"前言","titles":[]},"158":{"title":"快速开始","titles":["前言"]},"159":{"title":"插件元数据","titles":["前言"]},"160":{"title":"插件编写","titles":["前言"]},"161":{"title":"单 JS 文件编写插件","titles":["前言","插件编写"]},"162":{"title":"插件的工程化编写","titles":["前言","插件编写"]},"163":{"title":"扩展依赖","titles":["前言"]},"164":{"title":"依赖其他扩展","titles":["前言","扩展依赖"]},"165":{"title":"指定依赖的格式","titles":["前言","扩展依赖"]},"166":{"title":"依赖多个扩展","titles":["前言","扩展依赖"]},"167":{"title":"目标海豹版本","titles":["前言"]},"168":{"title":"一些有帮助的资源","titles":["前言"]},"169":{"title":"其他问题","titles":["前言"]},"170":{"title":"我不会 JavaScript,海豹支持其他编程语言编写插件吗?","titles":["前言","其他问题"]},"171":{"title":"内置脚本语言","titles":[]},"172":{"title":"变量","titles":["内置脚本语言"]},"173":{"title":"数据类型和赋值","titles":["内置脚本语言"]},"174":{"title":"语句","titles":["内置脚本语言"]},"175":{"title":"运算符","titles":["内置脚本语言"]},"176":{"title":"数学运算","titles":["内置脚本语言","运算符"]},"177":{"title":"逻辑运算","titles":["内置脚本语言","运算符"]},"178":{"title":"骰子算符","titles":["内置脚本语言","运算符"]},"179":{"title":"条件算符","titles":["内置脚本语言","运算符"]},"180":{"title":"条件算符 ?","titles":["内置脚本语言","运算符","条件算符"]},"181":{"title":"多重条件算符 ? ,","titles":["内置脚本语言","运算符","条件算符"]},"182":{"title":"三目运算符 ? :","titles":["内置脚本语言","运算符","条件算符"]},"183":{"title":"条件语句","titles":["内置脚本语言"]},"184":{"title":"归档内容","titles":[]},"185":{"title":"开源程序相关","titles":[]},"186":{"title":"什么是开源,什么是开源程序?","titles":["开源程序相关"]},"187":{"title":"为什么我在 SealDice 用户群问问题会被要求发送截图?为什么不能拍屏?","titles":["开源程序相关"]},"188":{"title":"提问的智慧到底该怎么实现?","titles":["开源程序相关"]},"189":{"title":"遇到问题先查询资料,尝试自己思考问题所在,排除问题","titles":["开源程序相关","提问的智慧到底该怎么实现?"]},"190":{"title":"问问题要有前因后果,相对客观地陈述问题会比只表示主观情绪有用","titles":["开源程序相关","提问的智慧到底该怎么实现?"]},"191":{"title":"保持耐心,对回答问题者表现出友善和配合的态度","titles":["开源程序相关","提问的智慧到底该怎么实现?"]},"192":{"title":"如果有需要,可以去 GitHub 代码仓库上提交 issue","titles":["开源程序相关","提问的智慧到底该怎么实现?"]},"193":{"title":"什么是 GitHub?怎么提 issue?","titles":["开源程序相关"]},"194":{"title":"计算机基础知识","titles":[]},"195":{"title":"计算机小白常见问题","titles":["计算机基础知识"]},"196":{"title":"部署海豹核心为什么要解压压缩包?怎么样解压压缩包?","titles":["计算机基础知识","计算机小白常见问题"]},"197":{"title":"内存不足到底指的是哪里的内存不足?如何解决内存不足?","titles":["计算机基础知识","计算机小白常见问题"]},"198":{"title":"对于海豹核心的日志界面中「There is not enough space on the disk」的报错","titles":["计算机基础知识","计算机小白常见问题"]},"199":{"title":"如果出现莫名其妙的程序中断……","titles":["计算机基础知识","计算机小白常见问题"]},"200":{"title":"什么是开源,什么是开源程序?","titles":["计算机基础知识","计算机小白常见问题"]},"201":{"title":"为什么我在 SealDice 用户群问问题会被要求发送截图?为什么不能拍屏?","titles":["计算机基础知识","计算机小白常见问题"]},"202":{"title":"什么是 GitHub?怎么提 issue?","titles":["计算机基础知识","计算机小白常见问题"]},"203":{"title":"如何高效学习","titles":["计算机基础知识"]},"204":{"title":"前言","titles":["计算机基础知识","如何高效学习"]},"205":{"title":"掌握语言","titles":["计算机基础知识","如何高效学习"]},"206":{"title":"寻求资源","titles":["计算机基础知识","如何高效学习"]},"207":{"title":"高效搜索","titles":["计算机基础知识","如何高效学习"]},"208":{"title":"实践学习","titles":["计算机基础知识","如何高效学习"]},"209":{"title":"深度优先学习","titles":["计算机基础知识","如何高效学习","实践学习"]},"210":{"title":"广度优先学习","titles":["计算机基础知识","如何高效学习","实践学习"]},"211":{"title":"所以……","titles":["计算机基础知识","如何高效学习","实践学习"]},"212":{"title":"结语","titles":["计算机基础知识","如何高效学习"]},"213":{"title":"如何正确提问","titles":["计算机基础知识"]},"214":{"title":"前言","titles":["计算机基础知识","如何正确提问"]},"215":{"title":"提问的智慧","titles":["计算机基础知识","如何正确提问"]},"216":{"title":"提问前,你该这样做","titles":["计算机基础知识","如何正确提问"]},"217":{"title":"尝试自行排查问题","titles":["计算机基础知识","如何正确提问","提问前,你该这样做"]},"218":{"title":"尝试阅读本手册以找到答案","titles":["计算机基础知识","如何正确提问","提问前,你该这样做"]},"219":{"title":"尝试浏览用户群内的信息以找到答案","titles":["计算机基础知识","如何正确提问","提问前,你该这样做"]},"220":{"title":"尝试上网搜索以找到答案","titles":["计算机基础知识","如何正确提问","提问前,你该这样做"]},"221":{"title":"记住你做了什么","titles":["计算机基础知识","如何正确提问","提问前,你该这样做"]},"222":{"title":"提问时,你该这样做","titles":["计算机基础知识","如何正确提问"]},"223":{"title":"清晰说明你的意图和/或困难","titles":["计算机基础知识","如何正确提问","提问时,你该这样做"]},"224":{"title":"描述问题发生前,你做了什么","titles":["计算机基础知识","如何正确提问","提问时,你该这样做"]},"225":{"title":"提供问题发生时,程序的日志","titles":["计算机基础知识","如何正确提问","提问时,你该这样做"]},"226":{"title":"描述问题发生后,你尝试过的解决方案","titles":["计算机基础知识","如何正确提问","提问时,你该这样做"]},"227":{"title":"提供其他有价值的背景信息","titles":["计算机基础知识","如何正确提问","提问时,你该这样做"]},"228":{"title":"提问后,你该这样做","titles":["计算机基础知识","如何正确提问"]},"229":{"title":"如果问题解决了……","titles":["计算机基础知识","如何正确提问","提问后,你该这样做"]},"230":{"title":"如果问题没能解决……","titles":["计算机基础知识","如何正确提问","提问后,你该这样做"]},"231":{"title":"其他事项","titles":["计算机基础知识","如何正确提问"]},"232":{"title":"保持耐心,对回答问题者表现出友善和配合的态度","titles":["计算机基础知识","如何正确提问","其他事项"]},"233":{"title":"如果有需要,可以去 GitHub 代码仓库上提交 issue","titles":["计算机基础知识","如何正确提问","其他事项"]},"234":{"title":"结语","titles":["计算机基础知识","如何正确提问"]},"235":{"title":"其它归档内容","titles":[]},"236":{"title":"Go-cqhttp / Mirai","titles":["其它归档内容"]},"237":{"title":"使用签名服务","titles":["其它归档内容","Go-cqhttp / Mirai"]},"238":{"title":"怎么使用签名服务?","titles":["其它归档内容","Go-cqhttp / Mirai","使用签名服务"]},"239":{"title":"如何搭建签名服务","titles":["其它归档内容","Go-cqhttp / Mirai","使用签名服务"]},"240":{"title":"手动抓取 ticket","titles":["其它归档内容","Go-cqhttp / Mirai"]},"241":{"title":"前置工作","titles":["其它归档内容","Go-cqhttp / Mirai","手动抓取 ticket"]},"242":{"title":"分离部署登录流程","titles":["其它归档内容","Go-cqhttp / Mirai","手动抓取 ticket"]},"243":{"title":"GoCqhttp FAQ","titles":["其它归档内容","Go-cqhttp / Mirai"]},"244":{"title":"1. 出现 Code 1","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"245":{"title":"2. QSign 闪退","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"246":{"title":"3. 出现 Code 45","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"247":{"title":"4. 出现 Code 235","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"248":{"title":"5. 出现 Code 237","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"249":{"title":"5. 如何启动多个 qsign?(仅当需要备用签名或不同协议版本的时候有此需求)","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"250":{"title":"6. 什么是 go-cqhttp?(通常简称 gocq)","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"251":{"title":"7. 什么是签名?","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"252":{"title":"8. 对于 SignServer(即 Start_Qsign.bat,俗称签名服务器)崩溃闪退可能的一种情况","titles":["其它归档内容","Go-cqhttp / Mirai","GoCqhttp FAQ"]},"253":{"title":"Chronocat Red 协议","titles":["其它归档内容"]},"254":{"title":"Shamrock","titles":["其它归档内容"]},"255":{"title":"准备模拟器","titles":["其它归档内容","Shamrock"]},"256":{"title":"获取 Root 权限","titles":["其它归档内容","Shamrock"]},"257":{"title":"安装 LSPosed 模块","titles":["其它归档内容","Shamrock"]},"258":{"title":"安装 Shamrock","titles":["其它归档内容","Shamrock"]},"259":{"title":"开放模拟器端口供海豹对接","titles":["其它归档内容","Shamrock"]},"260":{"title":"连接海豹","titles":["其它归档内容","Shamrock"]},"261":{"title":"Shamrock LSPatch","titles":["其它归档内容"]},"262":{"title":"安装 Shizuku","titles":["其它归档内容","Shamrock LSPatch"]},"263":{"title":"安装 LSPatch","titles":["其它归档内容","Shamrock LSPatch"]},"264":{"title":"安装并激活 Shamrock","titles":["其它归档内容","Shamrock LSPatch"]},"265":{"title":"对接海豹","titles":["其它归档内容","Shamrock LSPatch"]},"266":{"title":"名词/术语速查表","titles":[]},"267":{"title":"C","titles":["名词/术语速查表"]},"268":{"title":"CQ 码","titles":["名词/术语速查表","C"]},"269":{"title":"D","titles":["名词/术语速查表"]},"270":{"title":"端口","titles":["名词/术语速查表","D"]},"271":{"title":"F","titles":["名词/术语速查表"]},"272":{"title":"服务器","titles":["名词/术语速查表","F"]},"273":{"title":"G","titles":["名词/术语速查表"]},"274":{"title":"工作目录","titles":["名词/术语速查表","G"]},"275":{"title":"H","titles":["名词/术语速查表"]},"276":{"title":"Headless","titles":["名词/术语速查表","H"]},"277":{"title":"I","titles":["名词/术语速查表"]},"278":{"title":"IP 与端口","titles":["名词/术语速查表","I"]},"279":{"title":"Issue","titles":["名词/术语速查表","I"]},"280":{"title":"J","titles":["名词/术语速查表"]},"281":{"title":"JSON","titles":["名词/术语速查表","J"]},"282":{"title":"K","titles":["名词/术语速查表"]},"283":{"title":"控制台","titles":["名词/术语速查表","K"]},"284":{"title":"L","titles":["名词/术语速查表"]},"285":{"title":"Lagrange","titles":["名词/术语速查表","L"]},"286":{"title":"Linux","titles":["名词/术语速查表","L"]},"287":{"title":"LiteLoader","titles":["名词/术语速查表","L"]},"288":{"title":"Log","titles":["名词/术语速查表","L"]},"289":{"title":"M","titles":["名词/术语速查表"]},"290":{"title":"命令行","titles":["名词/术语速查表","M"]},"291":{"title":"命令行界面","titles":["名词/术语速查表","M"]},"292":{"title":"命令提示符","titles":["名词/术语速查表","M"]},"293":{"title":"N","titles":["名词/术语速查表"]},"294":{"title":"NapCatQQ","titles":["名词/术语速查表","N"]},"295":{"title":"NTQQ","titles":["名词/术语速查表","N"]},"296":{"title":"Q","titles":["名词/术语速查表"]},"297":{"title":"QQNT","titles":["名词/术语速查表","Q"]},"298":{"title":"R","titles":["名词/术语速查表"]},"299":{"title":"日志","titles":["名词/术语速查表","R"]},"300":{"title":"S","titles":["名词/术语速查表"]},"301":{"title":"数据序列化语言","titles":["名词/术语速查表","S"]},"302":{"title":"Shell","titles":["名词/术语速查表","S"]},"303":{"title":"T","titles":["名词/术语速查表"]},"304":{"title":"TOML","titles":["名词/术语速查表","T"]},"305":{"title":"W","titles":["名词/术语速查表"]},"306":{"title":"无头","titles":["名词/术语速查表","W"]},"307":{"title":"WebUI","titles":["名词/术语速查表","W"]},"308":{"title":"Windows Terminal","titles":["名词/术语速查表","W"]},"309":{"title":"Windows 终端","titles":["名词/术语速查表","W"]},"310":{"title":"Y","titles":["名词/术语速查表"]},"311":{"title":"YAML","titles":["名词/术语速查表","Y"]},"312":{"title":"Z","titles":["名词/术语速查表"]},"313":{"title":"终端","titles":["名词/术语速查表","Z"]},"314":{"title":"备份","titles":[]},"315":{"title":"关于备份","titles":["备份"]},"316":{"title":"手动备份","titles":["备份"]},"317":{"title":"自动备份","titles":["备份"]},"318":{"title":"自动清理","titles":["备份"]},"319":{"title":"配置清理范围","titles":["备份","自动清理"]},"320":{"title":"配置清理时机","titles":["备份","自动清理"]},"321":{"title":"备份列表","titles":["备份"]},"322":{"title":"黑白名单","titles":[]},"323":{"title":"如何设置黑白名单?","titles":["黑白名单"]},"324":{"title":"添加黑白名单","titles":["黑白名单"]},"325":{"title":"UI 手动添加","titles":["黑白名单","添加黑白名单"]},"326":{"title":"指令添加","titles":["黑白名单","添加黑白名单"]},"327":{"title":"自动添加","titles":["黑白名单","添加黑白名单"]},"328":{"title":"黑白名单设置","titles":["黑白名单"]},"329":{"title":"基础设置","titles":[]},"330":{"title":"Master 管理","titles":["基础设置"]},"331":{"title":"Master 解锁码","titles":["基础设置","Master 管理"]},"332":{"title":"Master 列表","titles":["基础设置","Master 管理"]},"333":{"title":"消息通知列表","titles":["基础设置","Master 管理"]},"334":{"title":"好友邀请","titles":["基础设置","Master 管理","消息通知列表"]},"335":{"title":"邮箱通知","titles":["基础设置"]},"336":{"title":"发件邮箱","titles":["基础设置","邮箱通知"]},"337":{"title":"邮箱密钥","titles":["基础设置","邮箱通知"]},"338":{"title":"SMTP 地址","titles":["基础设置","邮箱通知"]},"339":{"title":"私骰模式","titles":["基础设置"]},"340":{"title":"允许自由开关","titles":["基础设置"]},"341":{"title":"启用戳一戳","titles":["基础设置"]},"342":{"title":"限制 .text 指令","titles":["基础设置"]},"343":{"title":"忽略 .bot 裸指令","titles":["基础设置"]},"344":{"title":"存活确认","titles":["基础设置"]},"345":{"title":"日志记录提示","titles":["基础设置"]},"346":{"title":"刷屏警告","titles":["基础设置"]},"347":{"title":"访问控制","titles":["基础设置"]},"348":{"title":"QQ 频道设置","titles":["基础设置"]},"349":{"title":"加好友验证","titles":["基础设置"]},"350":{"title":"自动退出不活跃群组","titles":["基础设置"]},"351":{"title":"拦截","titles":[]},"352":{"title":"什么是拦截功能?","titles":["拦截"]},"353":{"title":"配置拦截","titles":["拦截"]},"354":{"title":"匹配选项","titles":["拦截","配置拦截"]},"355":{"title":"响应设置","titles":["拦截","配置拦截"]},"356":{"title":"敏感词管理","titles":["拦截"]},"357":{"title":"查看拦截日志","titles":["拦截"]},"358":{"title":"如何让用户/群豁免检查?","titles":["拦截"]},"359":{"title":"如何编写敏感词库?","titles":["拦截"]},"360":{"title":"自定义文案","titles":[]},"361":{"title":"什么是自定义文案?","titles":["自定义文案"]},"362":{"title":"如何修改文案?","titles":["自定义文案"]},"363":{"title":"文案列表","titles":["自定义文案","如何修改文案?"]},"364":{"title":"筛选文案","titles":["自定义文案","如何修改文案?"]},"365":{"title":"文案的导入/导出","titles":["自定义文案","如何修改文案?"]},"366":{"title":"自定义文案组合","titles":["自定义文案"]},"367":{"title":"COC","titles":["自定义文案","自定义文案组合"]},"368":{"title":".ra/rc 检定","titles":["自定义文案","自定义文案组合","COC"]},"369":{"title":".st 属性设置","titles":["自定义文案","自定义文案组合","COC"]},"370":{"title":".sc 理智检定","titles":["自定义文案","自定义文案组合","COC"]},"371":{"title":".en 技能成长","titles":["自定义文案","自定义文案组合","COC"]},"372":{"title":"核心","titles":["自定义文案","自定义文案组合"]},"373":{"title":".r 骰点","titles":["自定义文案","自定义文案组合","核心"]},"374":{"title":".alias 快捷指令","titles":["自定义文案","自定义文案组合","核心"]},"375":{"title":"文案插入图片和 CQ 码","titles":["自定义文案"]},"376":{"title":"文案变量标签","titles":["自定义文案"]},"377":{"title":"在一个文案中使用另一个文案","titles":["自定义文案"]},"378":{"title":"自定义文案引用牌堆","titles":["自定义文案"]},"379":{"title":"文案常见问题","titles":["自定义文案"]},"380":{"title":"骰子进群和成为好友的问候语是哪个?","titles":["自定义文案","文案常见问题"]},"381":{"title":"更复杂的文案设置","titles":["自定义文案"]},"382":{"title":"牌堆","titles":[]},"383":{"title":"牌堆是什么?","titles":["牌堆"]},"384":{"title":"获取牌堆","titles":["牌堆"]},"385":{"title":"怎么上传牌堆到骰子?怎么管理牌堆?","titles":["牌堆"]},"386":{"title":"怎么使用牌堆?","titles":["牌堆"]},"387":{"title":"牌堆更新与云牌堆","titles":["牌堆"]},"388":{"title":"牌堆更新","titles":["牌堆","牌堆更新与云牌堆"]},"389":{"title":"牌堆云端内容","titles":["牌堆","牌堆更新与云牌堆"]},"390":{"title":"如何编写牌堆?","titles":["牌堆"]},"391":{"title":"帮助文档","titles":[]},"392":{"title":"什么是帮助文档?","titles":["帮助文档"]},"393":{"title":"获取帮助文档","titles":["帮助文档"]},"394":{"title":"如何使用帮助文档?","titles":["帮助文档"]},"395":{"title":"如何管理帮助文档?","titles":["帮助文档"]},"396":{"title":"上传帮助文档","titles":["帮助文档","如何管理帮助文档?"]},"397":{"title":"为分组添加别名","titles":["帮助文档","如何管理帮助文档?"]},"398":{"title":"删除帮助文档","titles":["帮助文档","如何管理帮助文档?"]},"399":{"title":"查看帮助文档词条","titles":["帮助文档","如何管理帮助文档?"]},"400":{"title":"如何编写帮助文档?","titles":["帮助文档"]},"401":{"title":"JavaScript 插件","titles":[]},"402":{"title":"JavaScript 插件是什么","titles":["JavaScript 插件"]},"403":{"title":"获取 JS 插件","titles":["JavaScript 插件"]},"404":{"title":"如何安装和管理 JS 插件?","titles":["JavaScript 插件"]},"405":{"title":"插件列表","titles":["JavaScript 插件","如何安装和管理 JS 插件?"]},"406":{"title":"插件的更新","titles":["JavaScript 插件","如何安装和管理 JS 插件?"]},"407":{"title":"控制台","titles":["JavaScript 插件","如何安装和管理 JS 插件?"]},"408":{"title":"插件设置","titles":["JavaScript 插件","如何安装和管理 JS 插件?"]},"409":{"title":"如何使用 JS 插件?","titles":["JavaScript 插件"]},"410":{"title":"如何编写 JS 插件?","titles":["JavaScript 插件"]},"411":{"title":"自定义回复","titles":[]},"412":{"title":"什么是自定义回复?","titles":["自定义回复"]},"413":{"title":"在哪编写自定义回复?","titles":["自定义回复"]},"414":{"title":"当前回复文件","titles":["自定义回复","在哪编写自定义回复?"]},"415":{"title":"新建/导入自定义回复文件","titles":["自定义回复","在哪编写自定义回复?"]},"416":{"title":"获取自定义回复文件","titles":["自定义回复","在哪编写自定义回复?"]},"417":{"title":"公共条件","titles":["自定义回复","在哪编写自定义回复?"]},"418":{"title":"设置回复项","titles":["自定义回复"]},"419":{"title":"回复项的条件","titles":["自定义回复","设置回复项"]},"420":{"title":"文本匹配","titles":["自定义回复","设置回复项","回复项的条件"]},"421":{"title":"文本长度","titles":["自定义回复","设置回复项","回复项的条件"]},"422":{"title":"回复项的结果","titles":["自定义回复","设置回复项"]},"423":{"title":"回复结果延迟","titles":["自定义回复","设置回复项","回复项的结果"]},"424":{"title":"自定义回复引用牌堆","titles":["自定义回复"]},"425":{"title":"更复杂的回复","titles":["自定义回复"]},"426":{"title":"辅助工具","titles":[]},"427":{"title":"指令测试","titles":["辅助工具"]},"428":{"title":"资源管理","titles":["辅助工具"]},"429":{"title":"海豹的本地文件","titles":[]},"430":{"title":"SealDice 文件目录树","titles":["海豹的本地文件"]},"431":{"title":"常用文件","titles":["海豹的本地文件"]},"432":{"title":"安卓端文件路径","titles":["海豹的本地文件"]},"433":{"title":"数据库检查和修复","titles":["海豹的本地文件"]},"434":{"title":"数据迁移","titles":["海豹的本地文件"]},"435":{"title":"安卓海豹常见问题","titles":[]},"436":{"title":"安卓端登录","titles":["安卓海豹常见问题"]},"437":{"title":"只有一个设备,但登录需要扫码","titles":["安卓海豹常见问题"]},"438":{"title":"经常掉线","titles":["安卓海豹常见问题"]},"439":{"title":"同时开启两个海豹实例","titles":["安卓海豹常见问题"]},"440":{"title":"方法一:使用系统的双开功能","titles":["安卓海豹常见问题","同时开启两个海豹实例"]},"441":{"title":"方法二:使用 NP 管理器等软件","titles":["安卓海豹常见问题","同时开启两个海豹实例"]},"442":{"title":"海豹文件路径","titles":["安卓海豹常见问题"]},"443":{"title":"发送图片","titles":["安卓海豹常见问题"]},"444":{"title":"如何更新","titles":["安卓海豹常见问题"]},"445":{"title":"电脑海豹转安卓端海豹","titles":["安卓海豹常见问题"]},"446":{"title":"配置安卓端保活","titles":[]},"447":{"title":"授予海豹核心必要权限","titles":["配置安卓端保活"]},"448":{"title":"HyperOS(小米/红米)","titles":["配置安卓端保活"]},"449":{"title":"MIUI(小米/红米)","titles":["配置安卓端保活"]},"450":{"title":"鸿蒙系统(华为)","titles":["配置安卓端保活"]},"451":{"title":"ColorOS(OPPO/一加)","titles":["配置安卓端保活"]},"452":{"title":"通用设置","titles":["配置安卓端保活"]},"453":{"title":"存储权限","titles":["配置安卓端保活","通用设置"]},"454":{"title":"通知权限","titles":["配置安卓端保活","通用设置"]},"455":{"title":"应用内设置","titles":["配置安卓端保活","通用设置"]},"456":{"title":"数据库检查和修复","titles":[]},"457":{"title":"确定问题","titles":["数据库检查和修复"]},"458":{"title":"无法使用命令行","titles":["数据库检查和修复","确定问题"]},"459":{"title":"修复数据库 - 通过回滚备份","titles":["数据库检查和修复"]},"460":{"title":"修复数据库 - 通过数据库修复指令","titles":["数据库检查和修复"]},"461":{"title":"钉钉","titles":[]},"462":{"title":"钉钉支持","titles":["钉钉"]},"463":{"title":"Discord","titles":[]},"464":{"title":"获取 Token","titles":["Discord"]},"465":{"title":"连接海豹","titles":["Discord"]},"466":{"title":"邀请海豹","titles":["Discord"]},"467":{"title":"DoDo","titles":[]},"468":{"title":"建立应用","titles":["DoDo"]},"469":{"title":"获取 Client ID 和 Bot Token","titles":["DoDo"]},"470":{"title":"连接海豹","titles":["DoDo"]},"471":{"title":"邀请海豹","titles":["DoDo"]},"472":{"title":"KOOK","titles":[]},"473":{"title":"获取 Token","titles":["KOOK"]},"474":{"title":"连接海豹","titles":["KOOK"]},"475":{"title":"邀请海豹","titles":["KOOK"]},"476":{"title":"Minecraft","titles":[]},"477":{"title":"Minecraft 支持","titles":["Minecraft"]},"478":{"title":"架设 Minecraft 服务端","titles":["Minecraft"]},"479":{"title":"获取服务端核心","titles":["Minecraft","架设 Minecraft 服务端"]},"480":{"title":"启动服务端","titles":["Minecraft","架设 Minecraft 服务端"]},"481":{"title":"放入 sealdice-minecraft 插件","titles":["Minecraft","架设 Minecraft 服务端"]},"482":{"title":"海豹核心与 Minecraft 服务端连接","titles":["Minecraft"]},"483":{"title":"sealdice-minecraft 插件的使用","titles":["Minecraft"]},"484":{"title":"指令","titles":["Minecraft","sealdice-minecraft 插件的使用"]},"485":{"title":"sealdice [文本]","titles":["Minecraft","sealdice-minecraft 插件的使用","指令"]},"486":{"title":"sealport [端口]","titles":["Minecraft","sealdice-minecraft 插件的使用","指令"]},"487":{"title":"权限","titles":["Minecraft","sealdice-minecraft 插件的使用"]},"488":{"title":"sealdice.admin","titles":["Minecraft","sealdice-minecraft 插件的使用","权限"]},"489":{"title":"QQ - Docker 中的海豹","titles":[]},"490":{"title":"通过 docker compose 同时部署海豹与 Lagrange","titles":["QQ - Docker 中的海豹"]},"491":{"title":"创建 docker-compose.yml","titles":["QQ - Docker 中的海豹","通过 docker compose 同时部署海豹与 Lagrange"]},"492":{"title":"首次启动容器","titles":["QQ - Docker 中的海豹","通过 docker compose 同时部署海豹与 Lagrange"]},"493":{"title":"Lagrange 容器配置","titles":["QQ - Docker 中的海豹","通过 docker compose 同时部署海豹与 Lagrange"]},"494":{"title":"海豹连接 Lagrange","titles":["QQ - Docker 中的海豹","通过 docker compose 同时部署海豹与 Lagrange"]},"495":{"title":"更新海豹容器或 Lagrange 容器","titles":["QQ - Docker 中的海豹","通过 docker compose 同时部署海豹与 Lagrange"]},"496":{"title":"连接到宿主机上的 QQ 后端","titles":["QQ - Docker 中的海豹"]},"497":{"title":"保持容器与宿主机网络隔离","titles":["QQ - Docker 中的海豹","连接到宿主机上的 QQ 后端"]},"498":{"title":"配置容器使用宿主机网络","titles":["QQ - Docker 中的海豹","连接到宿主机上的 QQ 后端"]},"499":{"title":"QQ 官方机器人","titles":[]},"500":{"title":"尝试一下","titles":["QQ 官方机器人"]},"501":{"title":"获取连接所需信息","titles":["QQ 官方机器人"]},"502":{"title":"连接海豹","titles":["QQ 官方机器人"]},"503":{"title":"指令配置","titles":["QQ 官方机器人"]},"504":{"title":"机器人上线","titles":["QQ 官方机器人"]},"505":{"title":"使用海豹","titles":["QQ 官方机器人"]},"506":{"title":"注意事项","titles":["QQ 官方机器人"]},"507":{"title":"企业账号的开发者资质审核","titles":["QQ 官方机器人","注意事项"]},"508":{"title":"机器人官方频道跳转","titles":["QQ 官方机器人","注意事项"]},"509":{"title":"功能审核未通过","titles":["QQ 官方机器人","注意事项"]},"510":{"title":"QQ","titles":[]},"511":{"title":"前言","titles":["QQ"]},"512":{"title":"有关 QQ 平台机器人的说明","titles":["QQ","前言"]},"513":{"title":"对接引导","titles":["QQ","前言"]},"514":{"title":"内置客户端","titles":["QQ"]},"515":{"title":"分离部署","titles":["QQ"]},"516":{"title":"Lagrange","titles":["QQ","分离部署"]},"517":{"title":"登录 Lagrange","titles":["QQ","分离部署","Lagrange"]},"518":{"title":"海豹连接 Lagrange","titles":["QQ","分离部署","Lagrange"]},"519":{"title":"LLOneBot","titles":["QQ","分离部署"]},"520":{"title":"安装 LLOneBot","titles":["QQ","分离部署","LLOneBot"]},"521":{"title":"配置 LLOneBot","titles":["QQ","分离部署","LLOneBot"]},"522":{"title":"NapCatQQ","titles":["QQ","分离部署"]},"523":{"title":"下载 NapCatQQ","titles":["QQ","分离部署","NapCatQQ"]},"524":{"title":"海豹连接","titles":["QQ","分离部署","NapCatQQ"]},"525":{"title":"Chronocat","titles":["QQ","分离部署"]},"526":{"title":"安装 Chronocat","titles":["QQ","分离部署","Chronocat"]},"527":{"title":"Chronocat Satori 协议","titles":["QQ","分离部署","Chronocat"]},"528":{"title":"Slack","titles":[]},"529":{"title":"Slack 支持","titles":["Slack"]},"530":{"title":"获取 Token","titles":["Slack"]},"531":{"title":"APP Token","titles":["Slack","获取 Token"]},"532":{"title":"Bot Token","titles":["Slack","获取 Token"]},"533":{"title":"连接海豹","titles":["Slack"]},"534":{"title":"Telegram","titles":[]},"535":{"title":"获取 Token","titles":["Telegram"]},"536":{"title":"连接海豹","titles":["Telegram"]},"537":{"title":"快速开始","titles":[]},"538":{"title":"获取海豹","titles":["快速开始"]},"539":{"title":"启动","titles":["快速开始"]},"540":{"title":"连接平台","titles":["快速开始"]},"541":{"title":"安装为系统服务(可选)","titles":["快速开始"]},"542":{"title":"更新海豹","titles":["快速开始"]},"543":{"title":"自动更新","titles":["快速开始","更新海豹"]},"544":{"title":"手动更新","titles":["快速开始","更新海豹"]},"545":{"title":"上传固件","titles":["快速开始","更新海豹"]},"546":{"title":"安卓豹更新","titles":["快速开始","更新海豹"]},"547":{"title":"特色功能","titles":[]},"548":{"title":"指令兼容性","titles":["特色功能"]},"549":{"title":"易于部署和使用","titles":["特色功能"]},"550":{"title":"极少的资源占用","titles":["特色功能"]},"551":{"title":"强自定义","titles":["特色功能"]},"552":{"title":"人工智能鸽子","titles":["特色功能"]},"553":{"title":"强大的查询功能","titles":["特色功能"]},"554":{"title":"通用特化支持","titles":["特色功能"]},"555":{"title":"代替他人检定 / 操作他人属性","titles":["特色功能","通用特化支持"]},"556":{"title":"CoC 特化支持","titles":["特色功能"]},"557":{"title":"属性同义词","titles":["特色功能","CoC 特化支持"]},"558":{"title":"默认技能等级","titles":["特色功能","CoC 特化支持"]},"559":{"title":"支持 .scb 指令","titles":["特色功能","CoC 特化支持"]},"560":{"title":"D&D 特化支持","titles":["特色功能"]},"561":{"title":"属性同义词","titles":["特色功能","D&D 特化支持"]},"562":{"title":"优势骰劣势骰","titles":["特色功能","D&D 特化支持"]},"563":{"title":"属性调整值和熟练自动计算","titles":["特色功能","D&D 特化支持"]},"564":{"title":"临时属性","titles":["特色功能","D&D 特化支持"]},"565":{"title":"法术位支持","titles":["特色功能","D&D 特化支持"]},"566":{"title":"死亡豁免","titles":["特色功能","D&D 特化支持"]},"567":{"title":"休息","titles":["特色功能","D&D 特化支持"]},"568":{"title":"可以实时编辑的跑团日志","titles":["特色功能"]},"569":{"title":"是纯净骰,也是娱乐骰","titles":["特色功能"]},"570":{"title":"更强的指令支持","titles":["特色功能"]},"571":{"title":"跨平台","titles":["特色功能"]},"572":{"title":"TRPG 规则支持列表","titles":["特色功能"]},"573":{"title":"迁移","titles":[]},"574":{"title":"相同平台间迁移","titles":["迁移"]},"575":{"title":"跨平台迁移","titles":["迁移"]},"576":{"title":"Linux 服务器间跨架构迁移(arm64 → amd64)","titles":["迁移","跨平台迁移"]},"577":{"title":"迁移数据到手机","titles":["迁移"]},"578":{"title":"海豹核心","titles":[]},"579":{"title":"开始使用","titles":[]},"580":{"title":"更多……","titles":[]},"581":{"title":"属性同义词","titles":[]},"582":{"title":"概念说明","titles":["属性同义词"]},"583":{"title":"同义词表","titles":["属性同义词"]},"584":{"title":"克苏鲁的呼唤 7 版","titles":[]},"585":{"title":".st 操作人物卡","titles":["克苏鲁的呼唤 7 版"]},"586":{"title":".st help 获取帮助信息","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"587":{"title":"列出属性","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"588":{"title":"删除属性","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"589":{"title":"设定属性值","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"590":{"title":"更新属性值","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"591":{"title":"设定计算表达式","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"592":{"title":"导出属性值","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"593":{"title":"代骰","titles":["克苏鲁的呼唤 7 版",".st 操作人物卡"]},"594":{"title":".ra/.rc 检定","titles":["克苏鲁的呼唤 7 版"]},"595":{"title":"进行检定","titles":["克苏鲁的呼唤 7 版",".ra/.rc 检定"]},"596":{"title":"多轮检定","titles":["克苏鲁的呼唤 7 版",".ra/.rc 检定"]},"597":{"title":"要求一定难度的检定","titles":["克苏鲁的呼唤 7 版",".ra/.rc 检定"]},"598":{"title":"奖励骰和惩罚骰","titles":["克苏鲁的呼唤 7 版",".ra/.rc 检定"]},"599":{"title":"代骰","titles":["克苏鲁的呼唤 7 版",".ra/.rc 检定"]},"600":{"title":"以上功能可以组合使用","titles":["克苏鲁的呼唤 7 版",".ra/.rc 检定"]},"601":{"title":".rah/.rch 暗中检定","titles":["克苏鲁的呼唤 7 版"]},"602":{"title":"代骰","titles":["克苏鲁的呼唤 7 版",".rah/.rch 暗中检定"]},"603":{"title":".rav/.rcv 对抗检定","titles":["克苏鲁的呼唤 7 版"]},"604":{"title":"使用相同技能对抗","titles":["克苏鲁的呼唤 7 版",".rav/.rcv 对抗检定"]},"605":{"title":"使用不同技能对抗","titles":["克苏鲁的呼唤 7 版",".rav/.rcv 对抗检定"]},"606":{"title":"指定两个其他人对抗","titles":["克苏鲁的呼唤 7 版",".rav/.rcv 对抗检定"]},"607":{"title":".sc 理智检定","titles":["克苏鲁的呼唤 7 版"]},"608":{"title":"指定损失的理智","titles":["克苏鲁的呼唤 7 版",".sc 理智检定"]},"609":{"title":"简略写法","titles":["克苏鲁的呼唤 7 版",".sc 理智检定"]},"610":{"title":"奖励骰和惩罚骰","titles":["克苏鲁的呼唤 7 版",".sc 理智检定"]},"611":{"title":"代骰","titles":["克苏鲁的呼唤 7 版",".sc 理智检定"]},"612":{"title":".ti/.li 疯狂发作症状","titles":["克苏鲁的呼唤 7 版"]},"613":{"title":".en 技能成长","titles":["克苏鲁的呼唤 7 版"]},"614":{"title":"进行技能成长","titles":["克苏鲁的呼唤 7 版",".en 技能成长"]},"615":{"title":"指定成长值","titles":["克苏鲁的呼唤 7 版",".en 技能成长"]},"616":{"title":".coc 生成随机属性(制卡)","titles":["克苏鲁的呼唤 7 版"]},"617":{"title":".setcoc 设置房规","titles":["克苏鲁的呼唤 7 版"]},"618":{"title":"显示当前房规","titles":["克苏鲁的呼唤 7 版",".setcoc 设置房规"]},"619":{"title":"列出可用房规","titles":["克苏鲁的呼唤 7 版",".setcoc 设置房规"]},"620":{"title":"设定房规","titles":["克苏鲁的呼唤 7 版",".setcoc 设置房规"]},"621":{"title":"核心指令","titles":[]},"622":{"title":".master 骰主指令","titles":["核心指令"]},"623":{"title":".ban 黑白名单指令","titles":["核心指令"]},"624":{"title":".bot 骰子管理","titles":["核心指令"]},"625":{"title":".ext 扩展管理","titles":["核心指令"]},"626":{"title":".set 骰子面数管理","titles":["核心指令"]},"627":{"title":".r 骰点","titles":["核心指令"]},"628":{"title":"常用示例","titles":["核心指令",".r 骰点"]},"629":{"title":"多轮骰点","titles":["核心指令",".r 骰点"]},"630":{"title":"在骰点中使用属性值","titles":["核心指令",".r 骰点"]},"631":{"title":"奖励骰与惩罚骰","titles":["核心指令",".r 骰点"]},"632":{"title":"优势骰与劣势骰","titles":["核心指令",".r 骰点"]},"633":{"title":"fvtt 骰点兼容","titles":["核心指令",".r 骰点"]},"634":{"title":"fate 命运骰","titles":["核心指令",".r 骰点"]},"635":{"title":"WOD 骰点","titles":["核心指令",".r 骰点"]},"636":{"title":"双十字骰点","titles":["核心指令",".r 骰点"]},"637":{"title":"混合运算","titles":["核心指令",".r 骰点"]},"638":{"title":".rh 暗骰","titles":["核心指令"]},"639":{"title":".rx / .rxh 特殊骰点","titles":["核心指令"]},"640":{"title":".nn 角色名设定","titles":["核心指令"]},"641":{"title":".pc 角色卡管理","titles":["核心指令"]},"642":{"title":".find 词条查询指令","titles":["核心指令"]},"643":{"title":"指定默认查询分组","titles":["核心指令",".find 词条查询指令"]},"644":{"title":"全文搜索","titles":["核心指令",".find 词条查询指令"]},"645":{"title":"快速文档查找","titles":["核心指令",".find 词条查询指令"]},"646":{"title":"致谢","titles":["核心指令",".find 词条查询指令"]},"647":{"title":".help 帮助指令","titles":["核心指令"]},"648":{"title":".set 设定默认骰子面数 / 设定游戏系统","titles":["核心指令"]},"649":{"title":".botlist 机器人列表","titles":["核心指令"]},"650":{"title":"牌堆 自定义回复","titles":[]},"651":{"title":".draw 抽牌 / 管理牌堆","titles":["牌堆 自定义回复"]},"652":{"title":"信息查询","titles":["牌堆 自定义回复",".draw 抽牌 / 管理牌堆"]},"653":{"title":"抽牌","titles":["牌堆 自定义回复",".draw 抽牌 / 管理牌堆"]},"654":{"title":"自定义回复引用牌堆","titles":["牌堆 自定义回复",".draw 抽牌 / 管理牌堆"]},"655":{"title":"牌堆管理","titles":["牌堆 自定义回复",".draw 抽牌 / 管理牌堆"]},"656":{"title":".reply 管理自定义回复","titles":["牌堆 自定义回复"]},"657":{"title":"龙与地下城 5E","titles":[]},"658":{"title":".dnd / .dndx 生成随机属性(制卡)","titles":["龙与地下城 5E"]},"659":{"title":".ri 先攻设置","titles":["龙与地下城 5E"]},"660":{"title":".init 先攻列表","titles":["龙与地下城 5E"]},"661":{"title":".st 操作角色卡","titles":["龙与地下城 5E"]},"662":{"title":".st help 获取帮助信息","titles":["龙与地下城 5E",".st 操作角色卡"]},"663":{"title":"列出属性","titles":["龙与地下城 5E",".st 操作角色卡"]},"664":{"title":"删除属性","titles":["龙与地下城 5E",".st 操作角色卡"]},"665":{"title":"更新属性值","titles":["龙与地下城 5E",".st 操作角色卡"]},"666":{"title":"代骰","titles":["龙与地下城 5E",".st 操作角色卡"]},"667":{"title":".rc 检定","titles":["龙与地下城 5E"]},"668":{"title":"代骰","titles":["龙与地下城 5E",".rc 检定"]},"669":{"title":"奇妙运用","titles":["龙与地下城 5E",".rc 检定"]},"670":{"title":".buff 临时属性","titles":["龙与地下城 5E"]},"671":{"title":"代骰","titles":["龙与地下城 5E",".buff 临时属性"]},"672":{"title":".ss 法术位 (spell slots)","titles":["龙与地下城 5E"]},"673":{"title":"代骰","titles":["龙与地下城 5E",".ss 法术位 (spell slots)"]},"674":{"title":".cast 使用法术位","titles":["龙与地下城 5E"]},"675":{"title":"代骰","titles":["龙与地下城 5E",".cast 使用法术位"]},"676":{"title":".longrest / .长休","titles":["龙与地下城 5E"]},"677":{"title":"代骰","titles":["龙与地下城 5E",".longrest / .长休"]},"678":{"title":".ds / .死亡豁免","titles":["龙与地下城 5E"]},"679":{"title":"代骰","titles":["龙与地下城 5E",".ds / .死亡豁免"]},"680":{"title":"常见问题","titles":[]},"681":{"title":"为啥海豹不理我?","titles":["常见问题"]},"682":{"title":"可以关闭暗骰吗?","titles":["常见问题"]},"683":{"title":"退群指令?","titles":["常见问题"]},"684":{"title":"登录服务器开浏览器使用好麻烦!能远程直接访问 WebUI 吗?","titles":["常见问题"]},"685":{"title":"在服务器上登录时说「需要在同一 WIFI 下扫码」怎么办","titles":["常见问题"]},"686":{"title":"1. [首选] 让手机跟服务器真的处于同一个网络","titles":["常见问题","在服务器上登录时说「需要在同一 WIFI 下扫码」怎么办"]},"687":{"title":"2. 本机上完成扫码登录,然后将登录过的配置文件覆盖到服务器上","titles":["常见问题","在服务器上登录时说「需要在同一 WIFI 下扫码」怎么办"]},"688":{"title":"AT 其他骰子做检定的时候,海豹也会回应,怎么办","titles":["常见问题"]},"689":{"title":"为啥好像反应慢一拍","titles":["常见问题"]},"690":{"title":"我希望在我的骰子进群或者被踢出时通知我","titles":["常见问题"]},"691":{"title":"支持 QQ 频道吗?","titles":["常见问题"]},"692":{"title":"怎么同时运行多个海豹?","titles":["常见问题"]},"693":{"title":"Windows 系统","titles":["常见问题","怎么同时运行多个海豹?"]},"694":{"title":"如果你想在 Windows 系统指定端口,需要一点操作","titles":["常见问题","怎么同时运行多个海豹?","Windows 系统"]},"695":{"title":"除 Android 外的其他系统","titles":["常见问题","怎么同时运行多个海豹?"]},"696":{"title":"我机器上启动非常慢,而且托盘点不出来右键菜单?","titles":["常见问题"]},"697":{"title":"能在手机上搭建吗?","titles":["常见问题"]},"698":{"title":"我是 Master,怎么帮人取出 Log?","titles":["常见问题"]},"699":{"title":"我忘了 WebUI 密码","titles":["常见问题"]},"700":{"title":"功能","titles":[]},"701":{"title":".jrrp 今日人品","titles":["功能"]},"702":{"title":".gugu 人工智能鸽子","titles":["功能"]},"703":{"title":".jsr 不重复骰点","titles":["功能"]},"704":{"title":".drl 骰池抽取","titles":["功能"]},"705":{"title":".text 文本模板测试","titles":["功能"]},"706":{"title":".send 向骰主发送消息 / 回复消息","titles":["功能"]},"707":{"title":".welcome 新人入群欢迎","titles":["功能"]},"708":{"title":".ping 指令响应测试","titles":["功能"]},"709":{"title":".alias 定义快捷指令 & .& 使用快捷指令","titles":["功能"]},"710":{"title":"额外 TRPG 规则支持","titles":["功能"]},"711":{"title":".ww WOD 规则骰点","titles":["功能","额外 TRPG 规则支持"]},"712":{"title":".dx 双重十字规则骰点","titles":["功能","额外 TRPG 规则支持"]},"713":{"title":".ek 共鸣性怪异规则骰点","titles":["功能","额外 TRPG 规则支持"]},"714":{"title":".ekgen 共鸣性怪异规则属性生成","titles":["功能","额外 TRPG 规则支持"]},"715":{"title":".rsr 暗影狂奔规则骰点","titles":["功能","额外 TRPG 规则支持"]},"716":{"title":"基础概念","titles":[]},"717":{"title":"什么是骰子?","titles":["基础概念"]},"718":{"title":"获取和使用","titles":["基础概念"]},"719":{"title":"指令回复","titles":["基础概念","获取和使用"]},"720":{"title":"指令前缀","titles":["基础概念","获取和使用","指令回复"]},"721":{"title":"指令名","titles":["基础概念","获取和使用","指令回复"]},"722":{"title":"指令参数","titles":["基础概念","获取和使用","指令回复"]},"723":{"title":"指令标志","titles":["基础概念","获取和使用","指令回复"]},"724":{"title":"自定义回复","titles":["基础概念","获取和使用"]},"725":{"title":"日志","titles":[]},"726":{"title":".log 跑团日志","titles":["日志"]},"727":{"title":"记录日志","titles":["日志",".log 跑团日志"]},"728":{"title":"数据统计","titles":["日志",".log 跑团日志"]},"729":{"title":"管理日志","titles":["日志",".log 跑团日志"]},"730":{"title":"骰主代取 Log","titles":["日志",".log 跑团日志"]},"731":{"title":".ob 旁观","titles":["日志"]},"732":{"title":".sn 自动群名片","titles":["日志"]},"733":{"title":"预设模板","titles":["日志",".sn 自动群名片"]},"734":{"title":"扩展规则","titles":["日志",".sn 自动群名片"]},"735":{"title":"自定义模板","titles":["日志",".sn 自动群名片"]},"736":{"title":"关闭自动修改","titles":["日志",".sn 自动群名片"]},"737":{"title":".hiy 数据统计","titles":["日志"]},"738":{"title":"其它规则支持","titles":[]},"739":{"title":"绿色三角洲 Delta Green","titles":["其它规则支持"]},"740":{"title":"黑暗世界 World of Darkness","titles":["其它规则支持"]},"741":{"title":"双重十字 Double Cross","titles":["其它规则支持"]},"742":{"title":"暗影狂奔 Shadowrun","titles":["其它规则支持"]},"743":{"title":"共鸣性怪异 Emoklore","titles":["其它规则支持"]},"744":{"title":"更多规则","titles":["其它规则支持"]},"745":{"title":"快速上手","titles":[]},"746":{"title":"常用指令速查","titles":["快速上手"]},"747":{"title":"通常流程","titles":["快速上手"]},"748":{"title":"秘密团","titles":["快速上手","通常流程"]},"749":{"title":"进行 CoC 游戏","titles":["快速上手","通常流程"]},"750":{"title":"创作角色卡","titles":["快速上手","通常流程","进行 CoC 游戏"]},"751":{"title":"理智检定 San Check","titles":["快速上手","通常流程","进行 CoC 游戏"]},"752":{"title":"抽取疯狂症状","titles":["快速上手","通常流程","进行 CoC 游戏"]},"753":{"title":"技能成长","titles":["快速上手","通常流程","进行 CoC 游戏"]},"754":{"title":"进行 D&D 游戏","titles":["快速上手","通常流程"]},"755":{"title":"创作角色卡","titles":["快速上手","通常流程","进行 D&D 游戏"]},"756":{"title":"设定先攻值","titles":["快速上手","通常流程","进行 D&D 游戏"]},"757":{"title":"设定临时属性","titles":["快速上手","通常流程","进行 D&D 游戏"]},"758":{"title":"法术位","titles":["快速上手","通常流程","进行 D&D 游戏"]},"759":{"title":"长休","titles":["快速上手","通常流程","进行 D&D 游戏"]},"760":{"title":"死亡豁免","titles":["快速上手","通常流程","进行 D&D 游戏"]},"761":{"title":"故事","titles":[]},"762":{"title":".name 随机名字","titles":["故事"]},"763":{"title":".namednd 随机 DND 名字","titles":["故事"]},"764":{"title":".who 随机排列顺序","titles":["故事"]},"765":{"title":".modu 魔都模组查询","titles":["故事"]}},"dirtCount":0,"index":[["地精",{"2":{"763":1}}],["地址和服务器一样",{"2":{"686":1}}],["地址时",{"2":{"491":1}}],["地址都有与之相关的规定",{"2":{"278":1}}],["地址",{"0":{"338":1},"2":{"187":1,"201":1,"338":1,"482":1}}],["兽人",{"2":{"763":1}}],["矮人",{"2":{"763":1}}],["受国人",{"2":{"763":1}}],["受限于各种原因",{"2":{"7":1}}],["莱瑟曼人",{"2":{"763":1}}],["卡林珊人",{"2":{"763":1}}],["达马拉人",{"2":{"763":1}}],["达到暴击线",{"2":{"636":1}}],["达到成功线",{"2":{"635":1}}],["达到加骰线",{"2":{"635":1}}],["男|女",{"2":{"762":1}}],["创作角色卡",{"0":{"750":1,"755":1}}],["创建一张可以跨群聊使用的角色卡并绑定到当前群聊",{"2":{"748":1}}],["创建一个指定数量",{"2":{"704":1}}],["创建一个机器人应用",{"2":{"501":1}}],["创建一个新的自定义回复文件",{"2":{"415":1}}],["创建一个命令",{"2":{"119":2,"121":1,"127":5,"139":1}}],["创建一个结果对象",{"2":{"115":1,"116":1,"117":1}}],["创建按照要求创建一个机器人",{"2":{"535":1}}],["创建完成后",{"2":{"501":1}}],["创建完毕后点击分支名切换到对应分支页面",{"2":{"12":1}}],["创建应用",{"2":{"469":1,"473":1}}],["创建新的自定义指令",{"2":{"114":1}}],["创建指令",{"0":{"114":1},"2":{"117":1,"134":1}}],["创建和注册扩展",{"0":{"112":1}}],["创建日期",{"2":{"90":1}}],["创建文本格式的敏感词库",{"0":{"89":1}}],["创建",{"0":{"66":1,"68":1,"90":1,"491":1},"1":{"67":1}}],["创建分支",{"2":{"12":1}}],["秘密团",{"0":{"748":1}}],["尊重主持人与其他玩家",{"2":{"747":1}}],["尊敬的用户",{"2":{"15":1}}],["种族",{"2":{"746":1,"763":1}}],["绑定角色卡",{"2":{"746":1}}],["绑定的群聊中角色数据互相同步",{"2":{"641":1}}],["录入数据",{"2":{"746":1}}],["动作",{"2":{"746":6}}],["动态壁纸服务",{"2":{"448":1}}],["怪异",{"2":{"743":1}}],["怪物们",{"2":{"584":1}}],["怪物之锤",{"2":{"550":1,"642":1,"646":1}}],["超常的存在",{"2":{"743":1}}],["超级管理员权限",{"2":{"471":1}}],["超级群的邀请链接",{"2":{"471":1}}],["超级计算机以及大多数互联网基础设施",{"2":{"286":1}}],["背景设定在近未来的灵气复苏赛博朋克虚构世界中",{"2":{"742":1}}],["故事",{"0":{"761":1},"1":{"762":1,"763":1,"764":1,"765":1},"2":{"740":1}}],["故海豹官方不提供默认的敏感词库",{"2":{"356":1}}],["抗神组织",{"2":{"739":1}}],["绿色三角洲是保护人类免遭旧日支配者威胁的",{"2":{"739":1}}],["绿色三角洲",{"0":{"739":1},"2":{"739":1}}],["旁观",{"0":{"731":1}}],["旁显示审核通过",{"2":{"509":1}}],["继续记录",{"2":{"727":1}}],["继续按此顺序阅读剩余内容",{"2":{"16":1}}],["仍然存在于本群的日志记录中",{"2":{"727":1}}],["仍然没有办法解决问题",{"2":{"189":1}}],["暂停",{"2":{"746":1}}],["暂停记录当前日志",{"2":{"727":1}}],["暂时顾不上",{"2":{"2":1}}],["搭配竖线",{"2":{"722":2}}],["搭建",{"2":{"697":1,"718":1}}],["搭建机器人官方请参考",{"2":{"499":1}}],["火球术",{"2":{"722":2}}],["移出骰子",{"2":{"746":1}}],["移动版",{"2":{"722":1}}],["移除不常用的自定义回复",{"2":{"199":1}}],["移除信任目标用户",{"2":{"127":1}}],["移除",{"2":{"123":1,"124":1,"622":1}}],["哦",{"2":{"720":1}}],["跑团过程玩家使用海豹骰的常用指令和一般流程",{"2":{"745":1}}],["跑团",{"2":{"717":1}}],["跑团日志",{"0":{"726":1},"1":{"727":1,"728":1,"729":1,"730":1},"2":{"362":1,"457":1,"730":1}}],["跳过本节",{"2":{"716":1}}],["跳过此轮",{"2":{"147":1}}],["称为这次骰点",{"2":{"715":1}}],["称为",{"2":{"715":2}}],["事实上",{"2":{"708":1}}],["事发时间",{"2":{"125":1}}],["拥有",{"2":{"706":1}}],["拥有海豹核心的最终判定方式是可以接触到",{"2":{"622":1}}],["咕咕",{"2":{"702":1}}],["智能鸽子等娱乐相关指令",{"2":{"700":1}}],["智力",{"2":{"172":1,"582":2,"616":2,"658":5,"665":3}}],["章节",{"2":{"697":1}}],["性能过低导致的",{"2":{"696":1}}],["占用指定的端口号",{"2":{"695":1}}],["占有欲和控制力强烈",{"2":{"67":1}}],["像运行第一只海豹一样直接双击执行",{"2":{"693":1}}],["像正常的前端项目一样",{"2":{"154":1}}],["弹出的窗口都点击确定",{"2":{"686":1}}],["弹出窗口的字体与风格都不属于",{"2":{"309":1}}],["稍等片刻后",{"2":{"686":1}}],["稍作等待",{"2":{"457":1}}],["搞定",{"2":{"686":1}}],["防火墙",{"2":{"686":1}}],["防止改动内容丢失",{"2":{"418":1}}],["防止查看帮助时骰子的回复触发其他骰子",{"2":{"114":1}}],["吗",{"0":{"684":1}}],["医学奇迹",{"2":{"678":1}}],["医疗",{"2":{"665":2}}],["死亡",{"2":{"678":1}}],["死亡豁免的成功或失败数量增加或减少指定值",{"2":{"678":1}}],["死亡豁免失败+1",{"2":{"665":2,"678":2}}],["死亡豁免",{"0":{"566":1,"678":1,"760":1},"1":{"679":1}}],["昏迷后被攻击",{"2":{"678":1}}],["消耗",{"2":{"674":1}}],["消耗指定数量的指定法术位",{"2":{"674":1}}],["消耗数量",{"2":{"674":1}}],["消耗一个",{"2":{"672":1}}],["消息内容",{"2":{"706":2}}],["消息列表",{"2":{"503":1}}],["消息的随机延迟仍会被加入",{"2":{"423":1}}],["消息将在此延迟后发送",{"2":{"423":1}}],["消息以此内容为结尾时触发",{"2":{"420":1}}],["消息以内容为开头时触发",{"2":{"420":1}}],["消息匹配正则表达式时触发",{"2":{"420":1}}],["消息与内容相似时触发该回复项",{"2":{"420":1}}],["消息不包含此内容时触发",{"2":{"420":1}}],["消息包含此内容时触发",{"2":{"420":1}}],["消息通知列表",{"0":{"333":1},"1":{"334":1},"2":{"690":1}}],["消息",{"2":{"172":1,"268":1,"746":1}}],["恢复日志记录",{"2":{"746":1}}],["恢复生命值和法术位",{"2":{"676":1}}],["恢复所有法术位",{"2":{"672":1}}],["恢复数据到",{"2":{"460":1}}],["环数",{"2":{"674":1}}],["环法术位",{"2":{"672":2}}],["环的法术位上限",{"2":{"672":1}}],["环境使用",{"2":{"263":1}}],["环境下使用",{"2":{"261":1}}],["环境",{"2":{"158":1}}],["环境险恶",{"2":{"67":1}}],["装备或法术效果",{"2":{"670":1}}],["装甲",{"2":{"583":1}}],["长休",{"0":{"676":1,"759":1},"1":{"677":1},"2":{"676":1}}],["长剑=4",{"2":{"669":1}}],["长剑",{"2":{"669":2}}],["长按海豹核心的任务卡片",{"2":{"448":1,"449":1}}],["长按修补后的",{"2":{"264":1}}],["奇妙运用",{"0":{"669":1}}],["推一下试试",{"2":{"667":2}}],["推荐指令列表模版",{"2":{"503":1}}],["推荐你尽量使用",{"2":{"154":1}}],["推荐的流程",{"2":{"149":1}}],["推荐",{"2":{"46":1}}],["劣势掷骰",{"2":{"746":1}}],["劣势",{"2":{"667":1}}],["豁免",{"2":{"667":1}}],["豁免的用户",{"2":{"323":1}}],["退群指令",{"0":{"683":1}}],["退游小技巧",{"2":{"665":1}}],["退出的群聊",{"2":{"730":1}}],["退出并保存文件",{"2":{"480":1}}],["退出前",{"2":{"350":1}}],["退出事发群",{"2":{"328":1}}],["陷入了昏迷",{"2":{"665":1,"678":1}}],["剩余会扣减血量",{"2":{"665":1}}],["血量",{"2":{"665":1}}],["威吓",{"2":{"665":2}}],["欺诈",{"2":{"665":2}}],["说服",{"2":{"665":2}}],["说明如下",{"2":{"722":1}}],["说明该文件内容损坏",{"2":{"457":1}}],["说明",{"2":{"114":1}}],["驯养",{"2":{"665":2}}],["洞悉",{"2":{"665":2}}],["察觉",{"2":{"665":2}}],["宗教",{"2":{"665":2}}],["历史",{"2":{"665":2}}],["奥秘",{"2":{"665":2}}],["隐匿",{"2":{"665":2}}],["隐私协议",{"2":{"504":3}}],["隐私",{"2":{"450":1}}],["巧手",{"2":{"665":2}}],["熟练",{"2":{"665":6,"670":2}}],["熟悉指令",{"0":{"20":1}}],["熟悉海豹核心的功能",{"0":{"19":1}}],["戏份结束了",{"2":{"660":1}}],["狗头人3",{"2":{"659":2,"660":2}}],["狗头人2",{"2":{"659":4,"660":1}}],["狗头人1",{"2":{"659":8,"660":1}}],["形式自由",{"2":{"724":1}}],["形式",{"2":{"659":1}}],["形如",{"2":{"77":1}}],["固定值",{"2":{"659":1}}],["魅力",{"2":{"658":5,"665":3}}],["魅惑",{"2":{"582":1}}],["组织本身是非官方且非法的存在",{"2":{"739":1}}],["组",{"2":{"658":1}}],["组合键",{"2":{"457":1}}],["夜空下的某座高耸古堡",{"2":{"657":1}}],["夜神模拟器路径示例如下",{"2":{"259":1}}],["夜神模拟器",{"2":{"255":1}}],["依照惯例",{"2":{"722":1}}],["依靠的是玩家无穷的想象力",{"2":{"657":1}}],["依赖可以是多个",{"2":{"166":1}}],["依赖多个扩展",{"0":{"166":1}}],["依赖于",{"2":{"164":1,"165":1}}],["依赖其他扩展",{"0":{"164":1},"2":{"159":1}}],["龙与地下城常用格式",{"2":{"733":1}}],["龙与地下城",{"0":{"657":1},"1":{"658":1,"659":1,"660":1,"661":1,"662":1,"663":1,"664":1,"665":1,"666":1,"667":1,"668":1,"669":1,"670":1,"671":1,"672":1,"673":1,"674":1,"675":1,"676":1,"677":1,"678":1,"679":1},"2":{"657":2}}],["苦行",{"2":{"653":1}}],["朴素",{"2":{"653":1}}],["严重失误",{"2":{"715":1}}],["严重影响代码的可读性",{"2":{"224":1}}],["严厉",{"2":{"653":1}}],["钻塔",{"2":{"653":1}}],["钻探平台",{"2":{"653":1}}],["钻探设备",{"2":{"653":1}}],["货物",{"2":{"653":1}}],["谨慎使用",{"2":{"652":1}}],["谨慎删除",{"2":{"414":1}}],["去除",{"2":{"649":1}}],["去尝试加载使用了新",{"2":{"167":1}}],["甚为遗憾",{"2":{"646":1}}],["甚至一段话",{"2":{"720":1}}],["甚至永久冻结",{"2":{"718":1}}],["甚至安卓手机上搭建和部署海豹核心",{"2":{"537":1}}],["甚至是被打击的目标",{"2":{"512":1}}],["甚至是开发者",{"2":{"187":1,"201":1}}],["甚至强制使它们退出",{"2":{"446":1}}],["赵小安等",{"2":{"646":1}}],["赵骰核心和塔骰核心的绝大部分主流指令",{"2":{"548":1}}],["惠惠",{"2":{"646":1}}],["邪恶",{"2":{"646":1}}],["花作噫",{"2":{"646":1}}],["梨子",{"2":{"646":1}}],["致谢",{"0":{"646":1}}],["乘",{"2":{"637":1}}],["乘方等",{"2":{"637":1}}],["乘方",{"2":{"176":1}}],["减",{"2":{"637":1}}],["减少因沟通产生的不必要的麻烦",{"2":{"185":1,"213":1}}],["混合运算",{"0":{"637":1}}],["混淆",{"2":{"173":1}}],["统计当前日志",{"2":{"728":1}}],["统计指定日志中检定的成功失败数量",{"2":{"728":1}}],["统计暴击数",{"2":{"636":1}}],["统一",{"2":{"623":5}}],["统一id",{"2":{"120":1}}],["暴击轮数",{"2":{"636":1}}],["暴击",{"2":{"636":1}}],["暴击线",{"2":{"636":1}}],["暴力",{"2":{"15":1}}],["轮数",{"2":{"635":3,"636":1,"711":1}}],["国内多见于无限团",{"2":{"635":1}}],["额外",{"0":{"710":1},"1":{"711":1,"712":1,"713":1,"714":1,"715":1}}],["额外内存占用",{"2":{"644":1}}],["额外骰一次",{"2":{"632":1}}],["额外地再提交一份",{"2":{"193":1,"202":1}}],["掷骰5次",{"2":{"703":1}}],["掷骰",{"2":{"659":3,"746":3,"747":1}}],["掷骰2次",{"2":{"629":1}}],["掷出了",{"2":{"24":2,"562":2,"591":1,"628":6,"630":1,"631":3,"632":4,"633":4,"634":2,"635":3,"636":1,"637":5,"639":1,"640":1,"704":2,"709":1,"711":2}}],["停止的日志并不会丢失",{"2":{"727":1}}],["停止记录当前日志",{"2":{"727":1}}],["停止服务",{"2":{"624":1}}],["停止海豹核心",{"2":{"541":1}}],["停止海豹运行",{"2":{"457":1}}],["做一次备份",{"2":{"622":1}}],["做出判断",{"2":{"605":1}}],["做出灵活的回应",{"2":{"412":1}}],["做出贡献",{"2":{"206":1}}],["房规序号",{"2":{"620":1}}],["满",{"2":{"619":4}}],["满足",{"2":{"78":1}}],["幸运",{"2":{"616":2}}],["幸运转盘",{"2":{"59":2}}],["意志",{"2":{"616":2}}],["意味着只有",{"2":{"196":1}}],["意味着指定的依赖版本需要在",{"2":{"165":1}}],["总结性疯狂症状",{"2":{"746":1}}],["总值包括两个",{"2":{"616":1}}],["总之所有骰子发的内容",{"2":{"354":1}}],["总之请记住这个端口号",{"2":{"242":1}}],["聆听",{"2":{"614":1}}],["守秘人将考验调查员的心智",{"2":{"607":1}}],["守秘人会要求进行一个",{"2":{"594":1}}],["们进行对抗",{"2":{"606":1}}],["攻击对闪避",{"2":{"605":1}}],["攻击对反击",{"2":{"605":1}}],["外的其他系统",{"0":{"695":1}}],["外貌",{"2":{"616":2}}],["外",{"2":{"603":1}}],["外挂软件",{"2":{"512":1}}],["心理学",{"2":{"602":1}}],["惩罚",{"2":{"600":3,"631":1,"637":1}}],["惩罚骰",{"2":{"178":1,"631":1}}],["奖励",{"2":{"598":1,"605":1,"631":2}}],["奖励骰与惩罚骰",{"0":{"631":1},"2":{"746":1}}],["奖励骰和惩罚骰",{"0":{"598":1,"610":1}}],["奖励骰",{"2":{"178":1,"713":1}}],["难度",{"2":{"597":1}}],["难免存在错误和缺失",{"2":{"94":1}}],["扣除1=1点",{"2":{"608":1,"611":1}}],["扣除",{"2":{"593":1}}],["±",{"2":{"590":1,"665":1,"670":1,"678":1}}],["揭开邪恶的阴谋",{"2":{"584":1}}],["奔波在奇怪而危险的场所之间",{"2":{"584":1}}],["神秘和恐怖的游戏",{"2":{"584":1}}],["裝甲",{"2":{"583":1}}],["護甲",{"2":{"583":1}}],["護甲值",{"2":{"583":1}}],["護甲等級",{"2":{"583":1}}],["护甲",{"2":{"583":1}}],["护甲值",{"2":{"583":1}}],["护甲等级",{"2":{"583":1}}],["敬请理解",{"2":{"583":1}}],["克苏鲁的呼唤常用格式",{"2":{"733":1}}],["克苏鲁的呼唤",{"0":{"584":1},"1":{"585":1,"586":1,"587":1,"588":1,"589":1,"590":1,"591":1,"592":1,"593":1,"594":1,"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"601":1,"602":1,"603":1,"604":1,"605":1,"606":1,"607":1,"608":1,"609":1,"610":1,"611":1,"612":1,"613":1,"614":1,"615":1,"616":1,"617":1,"618":1,"619":1,"620":1},"2":{"584":2,"612":1,"739":1}}],["克苏鲁",{"2":{"582":1}}],["克苏鲁神话知识",{"2":{"582":1}}],["克苏鲁神话",{"2":{"582":1}}],["别名",{"2":{"627":1,"642":1,"709":8}}],["别称与其正式名称等价",{"2":{"582":1}}],["别忘了回顾一遍本节内容",{"2":{"230":1}}],["體質",{"2":{"582":1}}],["体质",{"2":{"582":1,"658":5,"665":3}}],["话术",{"2":{"582":1}}],["侦察",{"2":{"582":1}}],["侦查=80",{"2":{"639":1}}],["侦查=75",{"2":{"639":1}}],["侦查=53",{"2":{"630":1}}],["侦查+1d20",{"2":{"639":3}}],["侦查+10=53",{"2":{"630":1}}],["侦查+10",{"2":{"595":1,"603":1,"604":1}}],["侦查99",{"2":{"595":1}}],["侦查",{"2":{"582":1,"595":3,"596":1,"599":1,"603":1,"605":1,"614":1}}],["知识",{"2":{"582":1}}],["知道问题出在哪里之后",{"2":{"187":1,"201":1}}],["射击",{"2":{"582":1}}],["射击检定",{"2":{"368":1}}],["冲锋枪",{"2":{"582":2}}],["➯",{"2":{"582":1,"593":1,"608":1,"611":1,"665":4,"678":2}}],["场景举例",{"2":{"582":1}}],["互相可以替代使用",{"2":{"582":1}}],["互联网上的英文内容数量是具有压倒性的优势的",{"2":{"207":1}}],["五群",{"2":{"580":1}}],["五要素",{"2":{"189":1,"217":1}}],["四群",{"2":{"580":1}}],["四项权限",{"2":{"448":1}}],["三群",{"2":{"580":1}}],["三目运算符",{"0":{"182":1}}],["步骤与普通跨平台迁移一致",{"2":{"576":1}}],["步骤如下",{"2":{"240":1,"577":1}}],["→",{"0":{"576":1}}],["明日方舟跑团规则",{"2":{"572":1}}],["剑世界",{"2":{"572":1}}],["跨平台迁移时不能使用旧的可执行文件",{"2":{"575":1}}],["跨平台迁移",{"0":{"575":1},"1":{"576":1}}],["跨平台",{"0":{"571":1}}],["跨群存在",{"2":{"172":1}}],["彩蛋",{"2":{"570":1}}],["丢进指令虚拟机里执行",{"2":{"570":1}}],["丢失这段时间以来录入的角色卡",{"2":{"442":1,"577":1}}],["魔都模组查询",{"0":{"765":1}}],["魔都查询",{"2":{"569":1}}],["魔骨",{"2":{"646":1}}],["魔法大典的整理者为",{"2":{"646":1}}],["魔法大典",{"2":{"642":1}}],["魔术师逆位",{"2":{"67":1}}],["团为例",{"2":{"569":1}}],["休息",{"0":{"567":1}}],["休眠时始终保持网络连接",{"2":{"450":1}}],["攀爬检定",{"2":{"594":1}}],["攀爬",{"2":{"558":1}}],["园艺",{"2":{"558":1}}],["各种武器等等",{"2":{"558":1}}],["各种旧版翻译",{"2":{"557":1,"561":1}}],["各个模块的特化文件放在这里",{"2":{"430":1}}],["细节可参见",{"2":{"553":1}}],["法术位得到了恢复",{"2":{"676":1}}],["法术位",{"0":{"672":1,"758":1},"1":{"673":1}}],["法术位支持",{"0":{"565":1}}],["法术",{"2":{"553":1}}],["法则来思考遇到的程序错误问题",{"2":{"189":1,"217":1}}],["系列指令和",{"2":{"569":1}}],["系列资料的整理者主要为",{"2":{"646":1}}],["系列资料",{"2":{"550":1}}],["系统指定端口",{"0":{"694":1}}],["系统运行两个是很简单的",{"2":{"693":1}}],["系统的",{"2":{"543":1}}],["系统的服务器和个人电脑举例",{"2":{"272":1}}],["系统服务已删除",{"2":{"541":1}}],["系统为例",{"2":{"460":1}}],["系统中使用的格式",{"2":{"314":1}}],["系统中存在众多的",{"2":{"302":1}}],["系统推荐使用",{"2":{"302":1}}],["系统默认使用",{"2":{"302":1}}],["系统未提供对应的",{"2":{"262":1}}],["系统可能会出现无法运行的问题",{"2":{"252":1}}],["系统会运行一些进程以保证系统的正常运行",{"2":{"252":1}}],["系统上",{"2":{"227":1,"292":1,"457":1}}],["系统",{"0":{"693":1},"1":{"694":1},"2":{"224":1,"272":1}}],["系统角色卡的功能",{"2":{"146":1}}],["系统与",{"2":{"146":1}}],["极少的资源占用",{"0":{"550":1}}],["极难成功",{"2":{"604":1,"608":1}}],["极难成功等",{"2":{"136":1}}],["极难",{"2":{"136":1,"597":1}}],["易于部署和使用",{"0":{"549":1}}],["敏捷+2",{"2":{"590":1}}],["敏捷50",{"2":{"589":1}}],["敏捷",{"2":{"548":1,"616":2,"658":5,"665":3}}],["敏感词数据库文件",{"2":{"431":1}}],["敏感词库",{"2":{"457":1}}],["敏感词库文件",{"2":{"430":1}}],["敏感词库本身属于敏感信息",{"2":{"356":1}}],["敏感词库通常为",{"2":{"356":1}}],["敏感词库等的编写中",{"2":{"93":1}}],["敏感词列表",{"2":{"356":1}}],["敏感词管理",{"0":{"356":1},"2":{"356":1,"359":1}}],["隔离属性",{"2":{"539":1}}],["隔开不同的路径",{"2":{"262":1}}],["隔开",{"2":{"77":1}}],["考虑到后续升级",{"2":{"539":1}}],["镜像",{"2":{"538":1,"539":1}}],["芯片请下载",{"2":{"539":1}}],["芯片请使用",{"2":{"538":1}}],["芯片的",{"2":{"539":1}}],["芯片",{"2":{"538":1}}],["版的",{"2":{"582":3}}],["版",{"0":{"584":1},"1":{"585":1,"586":1,"587":1,"588":1,"589":1,"590":1,"591":1,"592":1,"593":1,"594":1,"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"601":1,"602":1,"603":1,"604":1,"605":1,"606":1,"607":1,"608":1,"609":1,"610":1,"611":1,"612":1,"613":1,"614":1,"615":1,"616":1,"617":1,"618":1,"619":1,"620":1},"2":{"538":3,"553":1,"722":1,"739":1}}],["版本1",{"2":{"625":1}}],["版本高于",{"2":{"539":1}}],["版本过低会导致程序无法正常启动",{"2":{"522":1}}],["版本是否匹配",{"2":{"478":1}}],["版本起",{"2":{"395":1,"397":1,"642":1,"643":1,"708":1,"709":1}}],["版本起弃用",{"2":{"254":1}}],["版本做了优化调整",{"2":{"350":1}}],["版本新增的功能",{"2":{"350":1}}],["版本要求",{"2":{"261":1}}],["版本选择",{"2":{"241":1}}],["版本弃用此方案",{"2":{"236":1,"253":1}}],["版本的海豹骰",{"2":{"227":1}}],["版本的海豹骰中",{"2":{"190":1}}],["版本限制是可选的",{"2":{"165":1}}],["版本号+发布日期",{"2":{"538":1}}],["版本号是否大于",{"2":{"295":1}}],["版本号",{"2":{"159":1,"165":1,"172":1}}],["版本开始支持通过",{"2":{"519":1}}],["版本开始支持尾逗号",{"2":{"39":1,"40":1}}],["版本开始",{"2":{"140":1,"417":1,"427":1,"428":1}}],["版本为",{"2":{"94":1,"253":1}}],["版本",{"2":{"90":1,"112":1,"239":1,"478":4,"652":1}}],["树莓派等",{"2":{"538":1}}],["树莓派等设备",{"2":{"538":1}}],["适合绝大多数用户使用",{"2":{"538":1}}],["适用于规则书中的关键连接自救规则",{"2":{"559":1}}],["适用于服务器",{"2":{"538":1}}],["适用于",{"2":{"538":1}}],["需以",{"2":{"535":1}}],["需要产生一个随机数的时候",{"2":{"747":1}}],["需要骰子账号有适当的权限",{"2":{"732":1}}],["需要骰主上号同意",{"2":{"691":1}}],["需要知道对应的群号",{"2":{"730":1}}],["需要知道的是",{"2":{"514":1}}],["需要更多结果",{"2":{"722":1}}],["需要一点操作",{"0":{"694":1}}],["需要关闭系统内置防火墙或设置端口放行",{"2":{"684":1}}],["需要说明",{"2":{"652":1}}],["需要二次确认",{"2":{"622":2}}],["需要自行下载安装",{"2":{"514":1}}],["需要自行开放",{"2":{"482":1}}],["需要比较简单的部署流程",{"2":{"513":2}}],["需要连接时",{"2":{"496":1}}],["需要将监听地址修改为",{"2":{"493":1}}],["需要特别注意的是",{"2":{"493":1}}],["需要权限",{"2":{"471":1}}],["需要调整一些系统设置来确保其能够在后台存活",{"2":{"446":1}}],["需要点击",{"2":{"395":1,"405":1}}],["需要回答问题并由我确认",{"2":{"334":1}}],["需要验证消息",{"2":{"334":1}}],["需要手动抓取",{"2":{"248":1}}],["需要端口不重复",{"2":{"245":1}}],["需要抓",{"2":{"242":1}}],["需要先介绍海豹核心管理你角色卡的方式",{"2":{"641":1}}],["需要先停止核心",{"2":{"442":1}}],["需要先运行",{"2":{"239":1}}],["需要先找到个和别人不重复的柜子",{"2":{"128":1}}],["需要具体问题具体分析",{"2":{"197":1}}],["需要把压缩包解压之后再双击运行海豹核心",{"2":{"196":1}}],["需要注意引擎的整型为",{"2":{"158":1}}],["需要工程编译为插件的单",{"2":{"151":1}}],["需要在同一",{"0":{"685":1},"1":{"686":1,"687":1}}],["需要在",{"2":{"504":1}}],["需要在插件注册后调用",{"2":{"138":1}}],["需要在最外面写",{"2":{"84":1}}],["需要移除的选项的序号",{"2":{"130":1}}],["需要添加的选项的内容",{"2":{"130":1}}],["需要取出的时候",{"2":{"128":1}}],["需要使用终端启动",{"2":{"538":2}}],["需要使用",{"2":{"116":1,"173":1,"478":2}}],["需要返回指令结果对象",{"2":{"115":1}}],["需要",{"2":{"94":1,"104":1,"491":1}}],["需要输出不同回复的机制",{"2":{"81":1}}],["需要的值",{"2":{"74":1}}],["需要用",{"2":{"59":1}}],["需要提到",{"2":{"51":1}}],["需要包裹在",{"2":{"38":1}}],["需要你先手动解决冲突",{"2":{"14":1}}],["二群",{"2":{"580":1}}],["二维码会在十秒左右出现",{"2":{"514":1}}],["二流角色",{"2":{"67":1}}],["倘若出现账号被封禁等情况",{"2":{"512":1}}],["临时的技能熟练",{"2":{"670":1}}],["临时属性",{"0":{"564":1,"670":1},"1":{"671":1}}],["临时甚至",{"2":{"512":1}}],["临时疯狂",{"2":{"370":1}}],["封禁",{"2":{"512":1,"718":1}}],["遇见这种情况请点击",{"2":{"509":1}}],["遇到问题时请先检查",{"2":{"501":1}}],["遇到问题先查询资料",{"0":{"189":1}}],["沙盒频道",{"2":{"508":1}}],["资源",{"2":{"550":1}}],["资源管理",{"0":{"428":1},"2":{"426":1}}],["资料卡",{"2":{"508":1}}],["期间的等待时间可能较久",{"2":{"507":1}}],["企业账号的开发者资质审核",{"0":{"507":1}}],["企鹅早该爆金币辣",{"2":{"52":3}}],["审核主要是测试机器人能否在所选支持的场景下",{"2":{"504":1}}],["审核",{"2":{"504":1}}],["审核通过后",{"2":{"504":1}}],["预设模板",{"0":{"733":1}}],["预设模式",{"2":{"658":1}}],["预期输出",{"2":{"504":1}}],["预料之中而情理之外的事情又再次发生了",{"2":{"214":1}}],["绝大多数使用",{"2":{"538":1}}],["绝大部分群聊中的",{"2":{"512":1}}],["绝大部分指令的文案都可以进行修改",{"2":{"361":1}}],["绝对不要原样上传",{"2":{"504":1}}],["扫码添加即可",{"2":{"505":1}}],["扫码确认修改",{"2":{"503":1}}],["扫码连接",{"2":{"493":1}}],["变化值",{"2":{"678":1}}],["变动",{"2":{"501":1}}],["变量机制等",{"2":{"425":1}}],["变量不生效",{"2":{"172":1}}],["变量的值固定并不代表它们是持久变量",{"2":{"172":1}}],["变量的名称可以是汉字",{"2":{"172":1}}],["变量值变成",{"2":{"172":1}}],["变量值变为随机数",{"2":{"172":1}}],["变量值被覆盖",{"2":{"172":1}}],["变量值丢失",{"2":{"172":1}}],["变量属于未定义行为",{"2":{"172":1}}],["变量为空",{"2":{"82":1}}],["变量赋值时",{"2":{"82":1}}],["变量运算",{"0":{"79":1}}],["变量",{"0":{"172":1},"2":{"75":1,"97":1,"116":1}}],["变量名字",{"2":{"172":1}}],["变量名",{"2":{"74":1,"172":1,"376":1}}],["家庭网络的",{"2":{"501":1}}],["公骰是免费的",{"2":{"718":1}}],["公骰",{"2":{"718":1}}],["公骰列表",{"2":{"718":1}}],["公网",{"2":{"501":1}}],["公共条件属于当前自定义回复文件",{"2":{"417":1}}],["公共条件",{"0":{"417":1},"2":{"417":1}}],["子网中的",{"2":{"497":2}}],["子元素由",{"2":{"37":1}}],["宿主机上的",{"2":{"496":1}}],["得以访问图片",{"2":{"491":1}}],["得到的三个结果将互不相同",{"2":{"51":1}}],["得到的三个结果可能有重复",{"2":{"51":1}}],["容器模式下功能受限",{"2":{"539":1}}],["容器中的海豹不能直接访问宿主机监听本地端口的",{"2":{"496":1}}],["容器默认接入此网络",{"2":{"496":1}}],["容器",{"0":{"495":1},"2":{"494":1}}],["容器配置",{"0":{"493":1}}],["容器完成下述配置文件修改及扫码登录过程",{"2":{"491":1}}],["容器以使",{"2":{"491":1}}],["容器的日志",{"2":{"493":1}}],["容器的",{"2":{"491":1}}],["容器共同构成一个服务栈",{"2":{"490":1}}],["容易成功",{"2":{"459":1}}],["容易误解的",{"2":{"78":1}}],["至此",{"2":{"481":1}}],["至少需要保留一个选项",{"2":{"363":1}}],["供",{"2":{"703":1}}],["供海豹使用",{"2":{"481":1}}],["供你查看大图",{"2":{"428":1}}],["证明海豹核心已和",{"2":{"482":1}}],["证明",{"2":{"481":1}}],["架设",{"0":{"478":1},"1":{"479":1,"480":1,"481":1},"2":{"478":1}}],["凭证和基础信息",{"2":{"469":1}}],["建立好应用后点击侧边导航栏",{"2":{"473":1}}],["建立好应用后上滑",{"2":{"464":1}}],["建立应用",{"0":{"468":1}}],["建议尽量将",{"2":{"539":1}}],["建议迁移到其它平台",{"2":{"512":1}}],["建议对数据库进行完整性检查",{"2":{"457":1}}],["建议放在",{"2":{"375":1}}],["建议优先选择高位端口",{"2":{"278":1}}],["建议使用",{"2":{"265":1}}],["建议使用语义化版本号",{"2":{"90":1}}],["建议换成别的前缀",{"2":{"73":1}}],["建议通过更系统的教程学习",{"2":{"47":1}}],["建议选择使用适用性最广的",{"2":{"30":1}}],["建议选择熟悉的格式",{"2":{"30":1}}],["建议你回到本节",{"2":{"16":1}}],["建议先同步上游的主分支",{"2":{"14":1}}],["建议为形如",{"2":{"12":1}}],["建议不要在主分支操作",{"2":{"12":1}}],["施工中",{"2":{"462":1}}],["找出",{"2":{"460":1}}],["找到以下牌组",{"2":{"652":1}}],["找到这项功能",{"2":{"545":1}}],["找到各个版本的镜像",{"2":{"539":1}}],["找到海豹核心",{"2":{"450":1}}],["找到海豹核心安装包",{"2":{"441":1}}],["找到",{"2":{"447":1,"460":1}}],["找到任务管理器",{"2":{"252":1}}],["找到了",{"2":{"210":1}}],["酌情进行使用",{"2":{"460":1}}],["人物昏迷",{"2":{"665":1}}],["人物属性设置如下",{"2":{"665":1}}],["人物卡和群内临时卡",{"2":{"457":1}}],["人工智能鸽子",{"0":{"552":1,"702":1}}],["人品还行吧",{"2":{"181":1}}],["人品爆表",{"2":{"181":1}}],["硬盘受到物理损坏",{"2":{"456":1}}],["首选",{"0":{"686":1}}],["首次启动容器后",{"2":{"492":1}}],["首次启动容器",{"0":{"492":1}}],["首次启动海豹核心时",{"2":{"454":1}}],["首次打开",{"2":{"480":1}}],["首先使用",{"2":{"730":1}}],["首先使用以下命令停止容器运行",{"2":{"493":1}}],["首先彻底关闭海豹",{"2":{"699":1}}],["首先确定是否为网络问题",{"2":{"689":1}}],["首先确认使用安卓协议",{"2":{"685":1}}],["首先修改",{"2":{"497":1}}],["首先按照",{"2":{"496":1}}],["首先安装海豹安卓端",{"2":{"265":1}}],["首先需要在你的手机安装",{"2":{"262":1}}],["首先需要创建一个扩展",{"2":{"113":1}}],["首先下载",{"2":{"259":1}}],["首先启动",{"2":{"258":1}}],["首先检查是否已经存在",{"2":{"112":1}}],["首先给",{"2":{"78":1}}],["首先我们打开",{"2":{"70":1}}],["首先熟悉海豹核心能做到",{"2":{"19":1}}],["首先感谢你选用海豹核心",{"2":{"16":1}}],["首先",{"2":{"10":1,"11":1,"17":1,"20":1,"229":1,"457":1,"460":1,"491":1}}],["锁定",{"2":{"451":1}}],["锁屏显示",{"2":{"448":1}}],["优先开启所有选项",{"2":{"451":1}}],["优势|劣势",{"2":{"667":1,"746":2}}],["优势+2",{"2":{"659":1}}],["优势骰与劣势骰也可使用通用的表达式表达",{"2":{"632":1}}],["优势骰与劣势骰",{"0":{"632":1}}],["优势骰劣势骰",{"0":{"562":1}}],["优势",{"2":{"178":1,"667":1,"746":1}}],["耗电管理",{"2":{"451":1}}],["电子邮箱作为接收者",{"2":{"690":1}}],["电池优化",{"2":{"450":1}}],["电池",{"2":{"450":1}}],["电脑海豹转安卓端海豹",{"0":{"445":1}}],["华为",{"0":{"450":1}}],["鸿蒙系统",{"0":{"450":1}}],["始终允许",{"2":{"449":1}}],["音乐和音频",{"2":{"448":1}}],["照片和视频",{"2":{"448":1}}],["澎湃系统",{"2":{"448":1}}],["红米",{"0":{"448":1,"449":1}}],["品牌手机",{"2":{"447":1}}],["授予海豹核心必要权限",{"0":{"447":1}}],["遵循下面介绍的步骤总是最保险的",{"2":{"446":1}}],["利用导入导出功能将图片放入海豹的导出文件夹",{"2":{"443":1}}],["利用海豹从上往下逐个匹配的机制达成相同效果",{"2":{"83":1}}],["涉及到的符号均是英文符号",{"2":{"443":1}}],["涉及网络请求或延迟执行的内容",{"2":{"158":1}}],["姓名文件",{"2":{"430":1}}],["├─",{"2":{"430":1}}],["├─images",{"2":{"430":1}}],["├─helpdoc",{"2":{"430":1}}],["├─log",{"2":{"430":1}}],["├─extra",{"2":{"430":1}}],["├─extensions",{"2":{"430":1}}],["├─coc7",{"2":{"430":1}}],["├─configs",{"2":{"430":1}}],["├─censor",{"2":{"430":1}}],["├─dnd5e",{"2":{"430":1}}],["├─default",{"2":{"430":1}}],["├─decks",{"2":{"430":1}}],["├─data",{"2":{"430":1}}],["├─assets",{"2":{"56":1}}],["共计0条",{"2":{"670":1}}],["共计",{"2":{"658":5}}],["共用属性表达式",{"2":{"606":1}}],["共鸣性怪异掷骰",{"2":{"746":1}}],["共鸣性怪异规则属性生成",{"0":{"714":1}}],["共鸣性怪异规则骰点",{"0":{"713":1},"2":{"743":1}}],["共鸣性怪异",{"0":{"743":1},"2":{"572":1,"743":1}}],["共存",{"2":{"441":1}}],["共同归于",{"2":{"426":1}}],["共有两种实现方式",{"2":{"119":1}}],["辅助工具",{"0":{"426":1},"1":{"427":1,"428":1},"2":{"426":1,"686":1}}],["听说可以用正则匹配解决",{"2":{"425":1}}],["听起来是废话文学",{"2":{"116":1,"117":1}}],["均可作为运算符使用",{"2":{"637":1}}],["均可触发",{"2":{"420":1}}],["均为字符串",{"2":{"94":1}}],["精灵",{"2":{"763":1}}],["精准匹配",{"2":{"420":2}}],["精确匹配",{"2":{"26":1}}],["收不到结果",{"2":{"638":1}}],["收缩",{"2":{"418":1}}],["收到好友邀请",{"2":{"690":1}}],["收到加群邀请",{"2":{"690":1}}],["收到指令",{"2":{"624":1}}],["收到符合任意一个内容的消息时",{"2":{"420":1}}],["收到的所有消息",{"2":{"354":1}}],["收到的指令",{"2":{"354":1}}],["收到响应之后再回应发送者",{"2":{"135":1}}],["右上角可以删除这一条回复项",{"2":{"418":1}}],["右键菜单中的",{"2":{"56":1}}],["才会触发该回复项",{"2":{"419":1}}],["才会依次判断每个回复项的条件",{"2":{"417":1}}],["才能使用",{"2":{"624":1}}],["才能将你的机器人邀请至服务器中",{"2":{"466":1}}],["才能尝试关闭此进程",{"2":{"199":1}}],["才能正常加载",{"2":{"166":1}}],["才能更好的支持你进行版本限制",{"2":{"165":1}}],["才能让扩展起效",{"2":{"112":1}}],["才能发送给触发者",{"2":{"94":1}}],["才能获得作者们提供的最新内容",{"2":{"58":1}}],["晚安",{"2":{"412":1}}],["晚上",{"2":{"50":3,"57":6}}],["午安",{"2":{"412":1}}],["机器人列表",{"0":{"649":1}}],["机器人采用",{"2":{"512":1}}],["机器人官方频道跳转",{"0":{"508":1},"2":{"508":1}}],["机器人官方频道",{"2":{"504":1}}],["机器人需要正常发出回应",{"2":{"504":1}}],["机器人自测报告",{"2":{"504":1}}],["机器人上线",{"0":{"504":1},"2":{"509":1}}],["机器人密钥",{"2":{"501":1}}],["机器人令牌",{"2":{"501":1}}],["机器人应用",{"2":{"501":1}}],["机器人文档",{"2":{"499":1,"506":1}}],["机器人",{"2":{"473":1,"475":1,"499":1,"501":1,"508":1}}],["机器人管理",{"2":{"471":1}}],["机器性能有关",{"2":{"395":1}}],["机制添加了自设规则",{"2":{"648":1}}],["机制",{"2":{"94":2}}],["折叠无变更",{"2":{"388":1,"406":1}}],["千万不要递归嵌套",{"2":{"377":1}}],["禁止玩家设置与海豹连接的端口",{"2":{"488":1}}],["禁止递归嵌套",{"2":{"377":1}}],["禁言骰子",{"2":{"327":1}}],["效果与",{"2":{"653":1}}],["效果如下",{"2":{"375":1}}],["效率会更高",{"2":{"189":1}}],["批量设定多个角色的先攻值",{"2":{"659":1}}],["批量",{"2":{"371":4}}],["技能加值会自动计算",{"2":{"665":1}}],["技能点数",{"2":{"614":1,"615":2}}],["技能应用不同调整值",{"2":{"605":1}}],["技能对抗对手的另一属性",{"2":{"605":1}}],["技能名称",{"2":{"614":2,"615":2}}],["技能名+指定数值",{"2":{"603":1}}],["技能名",{"2":{"603":1,"713":1}}],["技能",{"2":{"582":3,"585":1,"604":1,"605":1,"665":18,"670":3,"746":6,"753":1}}],["技能成长中",{"2":{"371":1}}],["技能成长",{"0":{"371":1,"613":1,"753":1},"1":{"614":1,"615":1},"2":{"371":11,"746":1}}],["技术型的个人博客和知乎平台具有相对优质的内容",{"2":{"207":1}}],["永久冻结",{"2":{"512":1}}],["永久疯狂",{"2":{"370":1}}],["永远不要直接运行压缩包中的海豹核心",{"2":{"539":1}}],["永远不会是你学习计算机领域知识的最佳选择",{"2":{"207":1}}],["永远",{"2":{"30":1}}],["角色卡",{"2":{"746":1}}],["角色卡管理",{"0":{"641":1}}],["角色序号",{"2":{"641":4}}],["角色名被用于在进行各种操作和记录",{"2":{"640":1}}],["角色名中不能带有空格",{"2":{"640":1}}],["角色名设定",{"0":{"640":1}}],["角色名",{"2":{"589":1,"640":1,"641":6,"659":2,"733":3,"746":5,"748":2}}],["角色疯狂",{"2":{"370":1}}],["角色属性",{"0":{"144":1}}],["附加语",{"2":{"370":1}}],["附加在问题中",{"2":{"221":1}}],["增减",{"2":{"369":3}}],["增加一个",{"2":{"672":1}}],["增加一个新的依赖",{"2":{"166":1}}],["增加10=10",{"2":{"582":1}}],["增加",{"2":{"419":1,"422":1}}],["增加怒气值",{"2":{"328":1,"355":1}}],["增加了检测机制",{"2":{"254":1,"261":1}}],["增加指令",{"2":{"158":1}}],["增加功能",{"2":{"8":1}}],["暗影狂奔掷骰",{"2":{"746":1}}],["暗影狂奔规则骰点",{"0":{"715":1},"2":{"742":1}}],["暗影狂奔",{"0":{"742":1},"2":{"572":1,"742":1}}],["暗中检定只在群聊中可用",{"2":{"601":1}}],["暗中检定",{"0":{"601":1},"1":{"602":1},"2":{"746":1}}],["暗中",{"2":{"368":2}}],["暗骰只能在群内触发",{"2":{"133":1}}],["暗骰",{"0":{"638":1},"2":{"133":3,"373":3,"499":1,"746":1}}],["失误的同时成功度为",{"2":{"715":1}}],["失误",{"2":{"715":1}}],["失误中断系统进程可能导致系统崩溃或其他隐患",{"2":{"199":1}}],["失败时失去理智",{"2":{"746":1,"751":1}}],["失败时理智损失",{"2":{"608":1,"609":2,"610":1}}],["失败0项",{"2":{"670":1}}],["失败成长值",{"2":{"615":1}}],["失败变更",{"2":{"371":2}}],["失败",{"2":{"368":1,"371":2,"582":3,"595":1,"596":1,"597":1,"600":2,"611":1}}],["检定时添加",{"2":{"678":1}}],["检定结果将不会发送到使用指令的群聊",{"2":{"601":1}}],["检定结果为",{"2":{"595":3,"597":1,"599":1,"602":1,"667":3}}],["检定一词要与恰当的技能或属性一起使用",{"2":{"594":1}}],["检定",{"0":{"368":1,"594":1,"667":1},"1":{"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"668":1,"669":1},"2":{"368":7,"669":1,"746":2,"747":1}}],["检查并进行远程更新",{"2":{"622":1}}],["检查",{"2":{"458":2}}],["检查当前群聊中",{"2":{"142":1}}],["检查当前时间点附近",{"2":{"142":1}}],["检查第",{"2":{"110":1}}],["粘贴文案内容时",{"2":{"365":1}}],["全文搜索",{"0":{"644":1}}],["全文搜索索引缓存",{"2":{"430":1}}],["全文粘贴到文本框里即可",{"2":{"568":1}}],["全文案为",{"2":{"375":1}}],["全部",{"2":{"364":1}}],["全球化",{"2":{"309":1}}],["刷子",{"2":{"363":1}}],["刷屏警告工作原理为令牌桶算法",{"2":{"346":1}}],["刷屏警告",{"0":{"346":1}}],["刷屏",{"2":{"327":1}}],["尽快扫码登录",{"2":{"514":1}}],["尽快使用手机",{"2":{"493":1}}],["尽早保存",{"2":{"363":1}}],["尽管不同方案之间的差异很大",{"2":{"512":1}}],["尽管市场份额相对较小",{"2":{"286":1}}],["尽管可能只需要你做相似的操作",{"2":{"210":1}}],["判定线",{"2":{"713":1}}],["判定人物死亡",{"2":{"665":1}}],["判定值",{"2":{"604":2,"605":2}}],["判定",{"2":{"363":1,"368":3}}],["判断进入下一轮或结束",{"2":{"636":1}}],["判断是否抽取成功",{"2":{"119":1}}],["判断时条件中的",{"2":{"84":1}}],["判断3",{"2":{"81":2}}],["判断2",{"2":{"81":2}}],["判断1",{"2":{"81":2}}],["筛选文案",{"0":{"364":1}}],["筛选",{"2":{"362":1,"364":1}}],["左上角的",{"2":{"479":1}}],["左侧是分类",{"2":{"362":1}}],["左键单击它",{"2":{"196":1}}],["符合人设呢",{"2":{"361":1}}],["符号在正则表达式中含有特殊含义",{"2":{"73":1}}],["哪个用户触发了什么等级的敏感词",{"2":{"357":1}}],["哪怕裸键是",{"2":{"34":1}}],["何地",{"2":{"357":1}}],["邀请入频道后",{"2":{"691":1}}],["邀请链接",{"2":{"475":1}}],["邀请海豹",{"0":{"466":1,"471":1,"475":1}}],["邀请人",{"2":{"355":1}}],["邀请者",{"2":{"105":1,"120":2}}],["程度依次升高",{"2":{"355":1}}],["程序",{"2":{"306":1,"460":1}}],["程序可以从这类语言中方便地恢复原有的数据结构",{"2":{"301":1}}],["程序运行中使用的数据",{"2":{"301":1}}],["程序会以工作目录作为索引目录树的起始位置",{"2":{"274":1}}],["程序的日志",{"0":{"225":1}}],["程序实际运行时给出的反馈",{"2":{"211":1}}],["程序日志还是网络资源",{"2":{"205":1}}],["程序上的需求",{"2":{"192":1,"233":1}}],["悬浮在问号上即可看见对应帮助",{"2":{"354":1}}],["响应设置",{"0":{"355":1},"2":{"353":1}}],["响应发送者",{"2":{"131":1}}],["拦截日志",{"2":{"357":1}}],["拦截骰子收到的所有消息进行检查",{"2":{"354":1}}],["拦截骰子收到的命令文本进行检查",{"2":{"354":1}}],["拦截骰子发出的消息文本",{"2":{"354":1}}],["拦截范围",{"2":{"354":1}}],["拦截设置主要分为两部分",{"2":{"353":1}}],["拦截管理",{"2":{"352":2}}],["拦截",{"0":{"351":1},"1":{"352":1,"353":1,"354":1,"355":1,"356":1,"357":1,"358":1,"359":1}}],["天气不错",{"2":{"628":1}}],["天需要重新登录",{"2":{"513":1}}],["天",{"2":{"350":1}}],["频道吗",{"0":{"691":1}}],["频道私信",{"2":{"503":1}}],["频道",{"2":{"348":1,"503":1,"718":1}}],["频道设置",{"0":{"348":1}}],["想认识更多骰主",{"2":{"580":1}}],["想开多个海豹必须修改端口号",{"2":{"347":1}}],["想要创建一条自定义指令",{"2":{"113":1}}],["界面中",{"2":{"625":1}}],["界面添加",{"2":{"515":2}}],["界面切换签名服务",{"2":{"514":1}}],["界面",{"2":{"447":2,"551":1,"730":1}}],["界面地址和启动参数",{"2":{"441":1}}],["界面地址由",{"2":{"347":1}}],["界面的",{"2":{"323":1,"352":1,"362":1,"385":1,"395":1,"404":1,"413":1}}],["速率设置支持以下格式",{"2":{"346":1}}],["条频道私聊消息而没有收到回复",{"2":{"708":1}}],["条",{"2":{"373":1,"642":1}}],["条文本后",{"2":{"345":1}}],["条件语句",{"0":{"183":1}}],["条件语句嵌套条件算符",{"0":{"84":1}}],["条件算符",{"0":{"179":1,"180":1},"1":{"180":1,"181":1,"182":1}}],["条件判断",{"2":{"84":1}}],["条件",{"2":{"70":1,"78":4,"418":1}}],["定义后该群内所有人都可以使用",{"2":{"709":1}}],["定义后用户可以在私聊",{"2":{"709":1}}],["定义为个人快捷指令",{"2":{"709":1}}],["定义为指定指令的快捷触发方式",{"2":{"709":1}}],["定义快捷指令",{"0":{"709":1},"2":{"709":1}}],["定制属于你的骰子",{"2":{"579":1}}],["定期向通知列表发送消息",{"2":{"344":1}}],["定时",{"2":{"320":2}}],["定时任务",{"2":{"141":1,"164":2,"165":6,"166":2}}],["定时任务的实际执行函数",{"2":{"141":1}}],["裸指令",{"0":{"343":1}}],["裸键名不支持中文",{"2":{"34":1}}],["裸键只能包含",{"2":{"34":1}}],["忽略",{"0":{"343":1},"2":{"649":2}}],["忽略级词表",{"2":{"90":1}}],["限制",{"0":{"342":1}}],["限定每人",{"0":{"83":1}}],["戳一戳",{"2":{"341":1,"513":1}}],["端",{"2":{"513":1}}],["端协议",{"2":{"513":2}}],["端协议的",{"2":{"341":1,"513":1}}],["端口已经被占用",{"2":{"693":1}}],["端口已被第一只海豹占用",{"2":{"278":1}}],["端口输入",{"2":{"686":1}}],["端口为默认的",{"2":{"693":1}}],["端口为",{"2":{"521":1}}],["端口映射到海豹容器的",{"2":{"491":1}}],["端口访问海豹的管理后台时",{"2":{"307":1}}],["端口等",{"2":{"278":1}}],["端口需要输入不同于前面的端口",{"2":{"249":1}}],["端口",{"0":{"270":1,"486":1},"2":{"242":1,"259":1,"265":1,"278":3,"307":1,"481":2,"482":2,"491":1,"493":1,"686":4}}],["端口和",{"2":{"239":1}}],["端口号>",{"2":{"694":1,"695":1}}],["端口号也不能随意指定",{"2":{"278":1}}],["端口号则是范围在",{"2":{"278":1}}],["端口号",{"2":{"187":1,"201":1,"242":1,"694":1}}],["密钥并不是登陆密码",{"2":{"337":1}}],["密码",{"0":{"699":1},"2":{"187":1,"201":1,"238":1,"347":1}}],["邮箱地址",{"2":{"729":1}}],["邮箱为",{"2":{"338":1}}],["邮箱的",{"2":{"337":1}}],["邮箱密钥",{"0":{"337":1}}],["邮箱通知",{"0":{"335":1},"1":{"336":1,"337":1,"338":1},"2":{"333":1}}],["特工",{"2":{"739":1}}],["特技",{"2":{"665":3}}],["特别的",{"2":{"686":1,"691":1}}],["特别地",{"2":{"637":1,"711":1}}],["特别提醒",{"2":{"336":1}}],["特化支持",{"0":{"556":1,"560":1},"1":{"557":1,"558":1,"559":1,"561":1,"562":1,"563":1,"564":1,"565":1,"566":1,"567":1}}],["特色功能",{"0":{"547":1},"1":{"548":1,"549":1,"550":1,"551":1,"552":1,"553":1,"554":1,"555":1,"556":1,"557":1,"558":1,"559":1,"560":1,"561":1,"562":1,"563":1,"564":1,"565":1,"566":1,"567":1,"568":1,"569":1,"570":1,"571":1,"572":1},"2":{"579":1}}],["特殊骰点",{"0":{"639":1}}],["特殊说明",{"2":{"504":1}}],["特殊访问权限",{"2":{"450":1}}],["特殊的执行次数",{"2":{"110":1}}],["特殊的括号",{"2":{"59":1}}],["号与群号",{"2":{"623":1}}],["号和",{"2":{"518":1,"524":1}}],["号和要开放的",{"2":{"265":1}}],["号",{"2":{"491":1,"499":1,"514":1}}],["号被冻结后对应账号的邮箱也无法使用",{"2":{"336":1}}],["号发送通知时会自动转换成对应邮箱",{"2":{"333":1}}],["连带责任",{"2":{"328":1}}],["连接服务和代理服务的默认配置皆是如此",{"2":{"539":1}}],["连接地址填",{"2":{"521":1}}],["连接地址",{"2":{"515":2,"518":1,"524":1}}],["连接地址中写",{"2":{"265":1}}],["连接到宿主机上的",{"0":{"496":1},"1":{"497":1,"498":1}}],["连接时",{"2":{"278":1}}],["连接海豹",{"0":{"260":1,"465":1,"470":1,"474":1,"502":1,"533":1,"536":1}}],["连接的端口",{"2":{"259":1}}],["连接的社交平台",{"2":{"227":1}}],["连接",{"2":{"227":1}}],["连接平台",{"0":{"18":1,"540":1},"2":{"285":1,"287":1,"294":1,"540":1}}],["拒绝邀请",{"2":{"328":1}}],["拒绝回复",{"2":{"328":1}}],["踢骰等",{"2":{"327":1}}],["踢了3格",{"2":{"82":1}}],["白",{"2":{"325":1}}],["白名单用户即通过骰主手动添加的信任名单用户",{"2":{"120":1}}],["白名单用户和黑名单用户",{"2":{"120":2}}],["白名单",{"2":{"120":1,"501":1}}],["黑暗世界",{"0":{"740":1},"2":{"740":1}}],["黑暗录卡",{"2":{"665":1}}],["黑白名单指令",{"0":{"623":1}}],["黑白名单设置",{"0":{"328":1}}],["黑白名单是骰子拉黑",{"2":{"323":1}}],["黑白名单",{"0":{"322":1},"1":{"323":1,"324":1,"325":1,"326":1,"327":1,"328":1},"2":{"323":1,"355":1,"358":1}}],["黑名单惩罚",{"2":{"328":1}}],["黑名单和信任名单存储在同一个数据库中",{"2":{"124":1}}],["黑名单操作的函数",{"0":{"123":1}}],["黑名单",{"0":{"122":1,"127":1},"1":{"123":1,"124":1,"125":1,"126":1,"127":1},"2":{"127":1}}],["黑名单用户",{"2":{"120":2,"121":1}}],["清除法术位设置",{"2":{"672":1}}],["清除",{"2":{"670":1}}],["清除先攻列表",{"2":{"660":1}}],["清除个人骰子面数设置",{"2":{"648":1}}],["清除当前群组的默认查询分组",{"2":{"643":1}}],["清除群内骰子面数设置",{"2":{"626":1,"648":1}}],["清空",{"2":{"622":1}}],["清理模式",{"2":{"318":1}}],["清晰说明你的意图和",{"0":{"223":1}}],["项基础属性的总值",{"2":{"616":1}}],["项基础属性与幸运",{"2":{"616":1}}],["项目组成员",{"2":{"646":1}}],["项目找到海豹核心",{"2":{"450":1}}],["项目",{"2":{"450":1}}],["项目编译出海豹可使用的插件",{"2":{"148":1}}],["项",{"2":{"317":1,"414":1}}],["项可以通过",{"2":{"317":1}}],["勾选对应文档前的选框后点击",{"2":{"398":1}}],["勾选",{"2":{"317":1,"320":1}}],["立即备份",{"2":{"316":1}}],["立刻设定当前",{"2":{"103":1}}],["综合设置",{"2":{"315":1,"323":1,"341":1,"513":1,"545":1,"622":1,"625":1,"690":1,"691":1,"729":1}}],["备份的时间可以直接查看文件创建时间",{"2":{"459":1}}],["备份文件也是通用的",{"2":{"575":1}}],["备份文件目录",{"2":{"430":1}}],["备份文件的命名遵循以下格式",{"2":{"315":1}}],["备份列表",{"0":{"321":1}}],["备份范围",{"2":{"317":1}}],["备份间隔",{"2":{"317":1}}],["备份",{"0":{"314":1},"1":{"315":1,"316":1,"317":1,"318":1,"319":1,"320":1,"321":1},"2":{"315":1}}],["备注",{"2":{"66":1}}],["集成的",{"2":{"309":1}}],["富文本",{"2":{"309":1}}],["交互",{"2":{"307":1}}],["交互的用户界面",{"2":{"307":1}}],["交互的界面",{"2":{"283":1}}],["拖拽的交互方式",{"2":{"302":1}}],["腾讯官方称之为",{"2":{"295":1}}],["腾出空间就可以解决",{"2":{"198":1}}],["具有诸多弊端",{"2":{"292":1}}],["具体目录是",{"2":{"687":1}}],["具体做法搜索关键字",{"2":{"686":1}}],["具体步骤",{"2":{"535":1}}],["具体占用会因人而异",{"2":{"522":1}}],["具体列表可以见",{"2":{"376":1}}],["具体的编写帮助见",{"2":{"359":1}}],["具体的内容是什么",{"2":{"357":1}}],["具体请看",{"2":{"346":1,"543":1}}],["具体来说",{"2":{"223":1}}],["具体地说",{"2":{"146":1}}],["具体见",{"2":{"98":2}}],["具体实现",{"2":{"87":1}}],["具体使用哪种请自行决断",{"2":{"83":1}}],["广泛应用于服务器",{"2":{"286":1}}],["广度优先的学习即是在遇到新概念时",{"2":{"210":1}}],["广度优先学习",{"0":{"210":1}}],["拉格兰",{"2":{"285":1,"516":2}}],["拉黑和怒气值机制",{"2":{"355":1}}],["拉黑用户",{"2":{"355":1}}],["拉黑",{"2":{"125":4,"127":1}}],["拉黑原因",{"2":{"123":1}}],["拉黑的地方",{"2":{"123":1}}],["控制台是",{"2":{"283":1}}],["控制台",{"0":{"283":1,"407":1},"2":{"283":2,"290":3,"292":3,"299":1,"302":2,"309":1,"313":2,"407":1}}],["议题",{"2":{"279":1}}],["监听",{"2":{"278":1,"307":1}}],["处粘贴你得到的",{"2":{"465":1,"474":1,"536":1}}],["处于",{"2":{"274":1}}],["处理不成功的请求",{"2":{"135":1}}],["处理数据",{"2":{"131":1}}],["工作目录是用户在使用",{"2":{"274":1}}],["工作目录",{"0":{"274":1},"2":{"299":1}}],["工具下载见",{"2":{"262":1}}],["工具赋予权限",{"2":{"262":1}}],["工具",{"2":{"93":1,"259":1,"686":1}}],["他们的敌人不仅是旧日支配者的眷族或崇拜者",{"2":{"739":1}}],["他们要如何导入进去",{"2":{"365":1}}],["他们所指代的东西往往是一体的",{"2":{"283":1,"290":1,"292":1,"302":1,"313":1}}],["他们可能以",{"2":{"272":1}}],["他会返回一个抽取牌堆的结果",{"2":{"94":1}}],["术语的含义",{"2":{"266":1}}],["术语速查表",{"0":{"266":1},"1":{"267":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1},"2":{"184":1,"195":1,"203":1,"206":1,"210":1,"213":1,"225":1}}],["激活",{"2":{"264":1}}],["替换成你希望指定的端口号",{"2":{"694":1}}],["替换成",{"2":{"635":1}}],["替换为",{"2":{"498":2}}],["替换为对应路径",{"2":{"262":1}}],["替换完成后",{"2":{"459":1}}],["替换掉你发现损坏的数据库",{"2":{"459":1}}],["替换安装",{"2":{"444":1}}],["替代",{"2":{"134":1,"686":1}}],["放入",{"0":{"481":1}}],["放入服务端核心",{"2":{"480":1}}],["放到空目录备用",{"2":{"460":1}}],["放置于迁入海豹的对应目录",{"2":{"575":1}}],["放置图片资源的文件夹",{"2":{"430":1}}],["放置你使用的qq客户端配置文件",{"2":{"430":1}}],["放在和",{"2":{"460":1}}],["放在",{"2":{"262":1}}],["放回抽取牌堆",{"2":{"102":1}}],["放回抽取",{"2":{"51":1,"386":2}}],["放回抽取与不放回抽取",{"0":{"51":1}}],["路径填入至系统变量中的",{"2":{"262":1}}],["窗口",{"2":{"262":1}}],["劫持",{"2":{"261":1}}],["修复数据库",{"0":{"459":1,"460":1}}],["修补后的",{"2":{"261":1}}],["修改你服务器的防火墙",{"2":{"684":1}}],["修改配置",{"2":{"684":1}}],["修改指定属性的",{"2":{"670":1}}],["修改角色名",{"2":{"640":1,"746":1}}],["修改签名时请勿随意修改签名版本",{"2":{"514":1}}],["修改为",{"2":{"497":1}}],["修改后再次提交审核",{"2":{"509":1}}],["修改后文件夹如下所示",{"2":{"480":1}}],["修改后缀只是便于海豹识别",{"2":{"56":1}}],["修改文件后缀",{"2":{"480":1}}],["修改文件后缀为",{"2":{"56":1}}],["修改完文件后需要点击",{"2":{"442":1}}],["修改完成后点击右上角提交变更",{"2":{"12":1}}],["修改海豹核心安装包",{"2":{"441":1}}],["修改帮助文档后",{"2":{"395":1}}],["修改过",{"2":{"364":1}}],["修改好之后",{"2":{"363":1}}],["修改的自定义文案等海豹内部的数据",{"2":{"442":1,"577":1}}],["修改的文案内容还支持插入图片和",{"2":{"361":1}}],["修改的话就是删除之后增加",{"2":{"130":1}}],["修改",{"2":{"245":1,"441":1,"539":1}}],["修改以及使用这份源代码",{"2":{"186":1,"200":1}}],["修改其中",{"2":{"150":1}}],["修改定时任务表达式",{"2":{"141":1}}],["修改内置功能",{"2":{"112":1}}],["里点击",{"2":{"521":1}}],["里面输入对应指令",{"2":{"503":1}}],["里面是备份的压缩包",{"2":{"430":1}}],["里面包含了目前开放的接口的定义及其注释说明",{"2":{"114":1}}],["里新建一个",{"2":{"259":1}}],["里打开终端",{"2":{"259":1}}],["启用上面的系统设置已经足够",{"2":{"455":1}}],["启用了的回复文件会显示",{"2":{"414":1}}],["启用戳一戳",{"0":{"341":1},"2":{"513":1}}],["启用自动清理",{"2":{"318":1}}],["启用自动备份",{"2":{"317":1}}],["启用",{"2":{"258":1}}],["启动一个不向互联网公开的新海豹核心",{"2":{"695":1}}],["启动或重启海豹核心",{"2":{"541":1}}],["启动时若出现",{"2":{"539":1}}],["启动脚本内容如下",{"2":{"480":1}}],["启动脚本",{"2":{"480":2}}],["启动服务端",{"0":{"480":1}}],["启动核心前请全部允许这些权限",{"2":{"448":1}}],["启动核心",{"2":{"441":1}}],["启动海豹核心",{"2":{"541":1}}],["启动海豹失败问题排查",{"2":{"539":1}}],["启动海豹",{"2":{"241":1}}],["启动",{"0":{"539":1},"2":{"239":1,"480":1,"694":2}}],["库成功",{"2":{"258":1}}],["库的文档",{"2":{"165":1}}],["加",{"2":{"637":1}}],["加骰数加",{"2":{"635":1}}],["加骰线",{"2":{"635":1,"711":2}}],["加在一起为结果",{"2":{"634":1}}],["加号",{"2":{"363":1}}],["加好友验证",{"0":{"349":1}}],["加我为好友时需要的验证方式",{"2":{"334":1}}],["加群邀请",{"2":{"333":1}}],["加载",{"2":{"258":1}}],["加入环境变量后再启用终端",{"2":{"259":1}}],["加入",{"2":{"159":2}}],["理由可不填",{"2":{"623":1}}],["理由",{"2":{"622":1}}],["理论上",{"2":{"257":1}}],["理智损失均可以是包含骰点的表达式",{"2":{"608":1}}],["理智值",{"2":{"582":1}}],["理智检定",{"0":{"370":1,"607":1,"751":1},"1":{"608":1,"609":1,"610":1,"611":1},"2":{"370":3,"746":1}}],["理智",{"2":{"172":1,"582":1}}],["使每一次的结果都不相同",{"2":{"703":1}}],["使目标进行指定的理智检定",{"2":{"611":1}}],["使你的骰子更加鲜活",{"2":{"551":1}}],["使容器和宿主机位于同一网络中",{"2":{"539":1}}],["使前缀",{"2":{"371":1}}],["使之生效",{"2":{"315":1}}],["使得",{"2":{"256":1}}],["使用关键字对编辑推荐模组进行搜索",{"2":{"765":1}}],["使用关键字进行搜索",{"2":{"765":1}}],["使用其模板",{"2":{"734":1}}],["使用骰子有许多约定俗成的规则",{"2":{"718":1}}],["使用前请使用",{"2":{"718":1}}],["使用快捷指令的方式如下",{"2":{"709":1}}],["使用快捷指令",{"0":{"709":1}}],["使用以下命令",{"2":{"695":1}}],["使用这个指令将其他骰子进行标记",{"2":{"688":1}}],["使用密码登录",{"2":{"687":1}}],["使用法术位",{"0":{"674":1},"1":{"675":1}}],["使用可带调整值的表达式进行检定",{"2":{"667":1}}],["使用指定角色卡的数据覆盖当前群聊的独立卡",{"2":{"641":1}}],["使用指定的房规",{"2":{"620":1}}],["使用指定的属性或技能进行检定",{"2":{"595":1}}],["使用统一",{"2":{"623":3}}],["使用自己的一个属性",{"2":{"605":1}}],["使用不同技能对抗",{"0":{"605":1}}],["使用相同技能对抗",{"0":{"604":1}}],["使用相对路径",{"2":{"56":1}}],["使用有问题",{"2":{"580":1}}],["使用此方案的用户请注意不要随意",{"2":{"522":1}}],["使用此方案的用户请注意不要随意更新",{"2":{"519":1}}],["使用此方案应当尽快更新到",{"2":{"514":1}}],["使用此方法你可能需要对",{"2":{"515":1}}],["使用此方法请将",{"2":{"262":1}}],["使用人员与范围",{"2":{"505":1}}],["使用海豹",{"0":{"505":1}}],["使用范围和人员页面",{"2":{"504":1}}],["使用场景",{"2":{"503":1}}],["使用云服务器时",{"2":{"501":1}}],["使用该指令以抽取疯狂发作的总结症状与消耗时间",{"2":{"612":1}}],["使用该指令以抽取疯狂发作的即时症状与发作时间",{"2":{"612":1}}],["使用该指令需要",{"2":{"486":1}}],["使用该指令的玩家视为向海豹私聊发送了一条消息",{"2":{"485":1}}],["使用该模板在自己的",{"2":{"149":1}}],["使用在控制台使用",{"2":{"481":1}}],["使用系统的双开功能",{"0":{"440":1}}],["使用于指定检定难度的情况",{"2":{"368":1}}],["使用教程",{"2":{"263":1}}],["使用数据线连接电脑和手机",{"2":{"262":1}}],["使用运行开启的",{"2":{"262":1}}],["使用更为老旧的",{"2":{"257":1}}],["使用时立即退出群",{"2":{"328":1}}],["使用时",{"2":{"255":1}}],["使用时会出现报错",{"2":{"253":1}}],["使用共享签名服务可能会提高账号被封禁的概率",{"2":{"238":1}}],["使用他人的签名服务可能会泄漏以下信息",{"2":{"238":1}}],["使用签名服务",{"0":{"237":1},"1":{"238":1,"239":1}}],["使用的",{"2":{"227":1}}],["使用页面左上角的搜索按钮有助于提高你的信息效率",{"2":{"218":1}}],["使用百度搜索一下",{"2":{"196":1}}],["使用正向",{"2":{"190":1}}],["使用正则匹配时",{"2":{"73":1}}],["使用和编译",{"0":{"151":1}}],["使用单",{"2":{"148":1,"162":1}}],["使用定时任务",{"2":{"141":1}}],["使用非指令关键词",{"0":{"137":1}}],["使用了之后就不要修改了",{"2":{"131":1}}],["使用命令行工具打开这个目录",{"2":{"460":1}}],["使用命令行程序进入海豹的目录",{"2":{"457":1}}],["使用命令行程序等有所了解",{"2":{"254":1}}],["使用命令",{"2":{"121":1}}],["使用示例",{"0":{"142":1},"2":{"94":1}}],["使用中文作为键名时",{"2":{"34":1}}],["使用专业的编辑器能帮助你检查这些问题",{"2":{"31":1}}],["使用",{"0":{"78":1,"441":1},"2":{"30":1,"35":1,"39":1,"40":1,"56":1,"68":1,"70":1,"78":1,"90":2,"119":3,"121":1,"125":1,"126":1,"127":5,"133":1,"139":1,"141":1,"165":1,"224":1,"236":1,"256":1,"257":1,"326":1,"386":1,"394":1,"395":1,"416":1,"437":1,"443":1,"582":1,"612":1,"623":1,"655":1,"684":1,"711":1,"730":1,"733":1,"739":1}}],["使用造成的任何后果与海豹开发组无关",{"2":{"15":1}}],["使用即代表您已同意使用须知的内容",{"2":{"15":1}}],["软件扫码登录",{"2":{"514":1}}],["软件中获取的一切权限都给予",{"2":{"256":1}}],["软件名",{"2":{"172":1}}],["准备模拟器",{"0":{"255":1}}],["轻量级服务器",{"2":{"254":1}}],["低版本",{"2":{"539":1}}],["低成本",{"2":{"286":1}}],["低位端口通常已经被占用",{"2":{"278":1}}],["低配置设备可能无法使用",{"2":{"254":1}}],["低于该版本",{"2":{"253":1}}],["寻求||审核和及",{"2":{"504":1}}],["寻求资源",{"0":{"206":1}}],["寻找最新的",{"2":{"479":1}}],["寻找更详细的教程",{"2":{"254":1}}],["酷安",{"2":{"254":1}}],["管控愈加严格",{"2":{"254":1}}],["管理所有群的所有日志",{"2":{"730":1}}],["管理日志",{"0":{"729":1}}],["管理自定义回复",{"0":{"656":1}}],["管理牌堆",{"0":{"651":1},"1":{"652":1,"653":1,"654":1,"655":1}}],["管理和开发者们都有自己的生活",{"2":{"191":1,"232":1}}],["管理更快速地知道问题所在",{"2":{"190":1}}],["管理黑白名单",{"2":{"158":1}}],["管理员和",{"2":{"340":1}}],["管理员",{"2":{"120":2,"466":1}}],["管理机制",{"2":{"112":1}}],["管理",{"0":{"330":1},"1":{"331":1,"332":1,"333":1,"334":1},"2":{"105":1,"187":1,"190":1,"201":1,"543":1}}],["管理器的",{"2":{"443":1}}],["管理器并安装",{"2":{"441":1}}],["管理器等软件",{"0":{"441":1}}],["管理器",{"2":{"93":1,"441":2}}],["遗憾的是",{"2":{"254":1,"446":1}}],["框架",{"2":{"254":1,"263":1,"294":1,"522":1}}],["宣布",{"2":{"254":1}}],["宣扬",{"2":{"15":1}}],["宣扬邪教和封建迷信的",{"2":{"15":1}}],["客户端后可能导致方案不可用",{"2":{"519":1,"522":1}}],["客户端检测机制的变化",{"2":{"519":1,"522":1}}],["客户端",{"2":{"295":1,"519":2,"522":2}}],["客户端上",{"2":{"254":1,"261":1}}],["客户端针对",{"2":{"254":1,"261":1}}],["缺失该功能",{"2":{"341":1,"513":1}}],["缺少必要接口",{"2":{"253":1}}],["缺乏上进心",{"2":{"67":1}}],["缺乏热忱和创造力",{"2":{"67":1}}],["崩溃闪退可能的一种情况",{"0":{"252":1}}],["把下面的命令写到文件里面",{"2":{"259":1}}],["把文件上传到模拟器中",{"2":{"257":1}}],["把它安装到模拟器",{"2":{"256":1}}],["把手机",{"2":{"251":1}}],["把黑框框里的文字截图发了出去",{"2":{"210":1}}],["抓取工具失效",{"2":{"248":1}}],["抓到一只海豹",{"2":{"114":1,"117":1}}],["过于完善的兼容性",{"2":{"292":1}}],["过段时间重新尝试登录",{"2":{"247":1}}],["过仓库",{"2":{"11":1}}],["换台电脑等",{"2":{"247":1}}],["换成",{"2":{"83":1}}],["升级版本",{"2":{"246":1}}],["没连上",{"2":{"246":1}}],["没有设置hpmax",{"2":{"676":1}}],["没有提供",{"2":{"549":1}}],["没有提示",{"2":{"161":1}}],["没有界面",{"2":{"522":1}}],["没有相关权限",{"2":{"453":1}}],["没有选项",{"2":{"242":1}}],["没有可以不填",{"2":{"241":1}}],["没有特殊设置的话",{"2":{"238":1}}],["没有专门的布尔类型",{"2":{"173":1}}],["没有则可以填海豹官方插件仓库",{"2":{"159":1}}],["没有被自动提示",{"0":{"155":1}}],["没有传入参数时的代码",{"2":{"115":1}}],["没有参数",{"2":{"94":1}}],["没有实际作用",{"2":{"90":1}}],["盘之外的路径",{"2":{"262":1}}],["盘",{"2":{"245":2,"262":1}}],["闪退",{"0":{"245":1}}],["视频教程操作",{"2":{"242":1}}],["视为",{"2":{"94":1}}],["哔哩哔哩",{"2":{"242":1}}],["终端中手动启动这些程序",{"2":{"309":1}}],["终端是一个为命令行用户准备的全新的",{"2":{"309":1}}],["终端打开",{"2":{"292":1}}],["终端",{"0":{"309":1,"313":1},"2":{"283":2,"290":2,"292":3,"302":2,"308":1,"309":4,"313":2,"695":1}}],["终端选中后右键即可复制粘贴",{"2":{"242":1}}],["终将有所回报",{"2":{"205":1}}],["复制到此处即可",{"2":{"706":1}}],["复制到浏览器打开",{"2":{"466":1,"471":1,"475":1}}],["复制电脑海豹的",{"2":{"577":1}}],["复制并保存",{"2":{"469":1,"532":1}}],["复制链接发给手机滑条",{"2":{"247":1}}],["复制链接到浏览器",{"2":{"242":1}}],["复制错误",{"2":{"247":1}}],["复制",{"2":{"242":1,"464":1}}],["复杂牌组提供以下选项",{"2":{"61":1}}],["复杂牌组",{"2":{"61":1}}],["复杂牌组和普通牌组在使用上没有什么区别",{"2":{"61":1}}],["复杂的",{"2":{"47":1}}],["手枪伤害=5",{"2":{"591":1}}],["手枪伤害=",{"2":{"591":1}}],["手枪伤害",{"2":{"591":1}}],["手动更新",{"0":{"544":1}}],["手动添加",{"0":{"325":1}}],["手动备份",{"0":{"316":1}}],["手动抓取",{"0":{"240":1},"1":{"241":1,"242":1},"2":{"242":1}}],["手机海豹已经公测啦",{"2":{"697":1}}],["手机海豹不会实时更新导出的文件",{"2":{"577":1}}],["手机上打开浏览器进入",{"2":{"686":1}}],["手机端连接",{"2":{"686":1}}],["手机版海豹核心也往往遭到误杀",{"2":{"446":1}}],["手机版不能通过指令或",{"2":{"444":1}}],["手机转电脑同理",{"2":{"445":1}}],["手机可以参阅",{"2":{"254":1}}],["手机造成的后果负责",{"2":{"254":1}}],["手机",{"2":{"251":1,"254":3,"347":1,"686":1}}],["手册自行部署",{"2":{"517":1}}],["手册不会介绍相关内容",{"2":{"162":1}}],["手册不会介绍这些相关背景知识",{"2":{"148":1}}],["手册",{"2":{"5":1}}],["手册贡献者",{"0":{"3":1}}],["看机器人哪方面没过审",{"2":{"509":1}}],["看",{"2":{"239":1}}],["看得很清楚吗",{"2":{"181":1}}],["及以上系统",{"2":{"686":2}}],["及以上的",{"2":{"478":1}}],["及以上",{"2":{"478":1}}],["及以上版本需要使用",{"2":{"478":1}}],["及以上版本的海豹",{"2":{"514":2}}],["及以上版本的",{"2":{"254":1}}],["及之后版本的",{"2":{"254":1}}],["及运行",{"2":{"239":1}}],["及",{"2":{"239":1,"491":1}}],["签名服务",{"2":{"238":1}}],["签名服务彻底被官方封死之后",{"2":{"236":1}}],["账号处随便填写",{"2":{"521":1}}],["账号用作机器人并被检测到时",{"2":{"512":1}}],["账号类型",{"2":{"482":1,"518":1,"524":1}}],["账号类型选",{"2":{"241":1}}],["账号使用新的",{"2":{"474":1}}],["账号协议配置文件",{"2":{"431":1}}],["账号选用",{"2":{"349":1}}],["账号添加中选择",{"2":{"265":1}}],["账号设置",{"2":{"241":1,"482":1,"514":2,"518":1,"524":1}}],["账号",{"2":{"238":1,"241":1,"474":1,"491":1,"640":2,"706":4}}],["账号密码错误",{"2":{"244":1}}],["账号密码",{"2":{"238":1,"241":1}}],["登录服务器开浏览器使用好麻烦",{"0":{"684":1}}],["登录框架主动连接海豹核心",{"2":{"515":1}}],["登录框架",{"2":{"515":2}}],["登录框架连接起来",{"2":{"515":1}}],["登录框架分别启动",{"2":{"515":1}}],["登录的账号由扫码的账号决定",{"2":{"514":1}}],["登录二维码",{"2":{"493":1}}],["登录多个",{"2":{"491":1}}],["登录海豹并添加账号",{"2":{"465":1,"470":1,"474":1,"502":1,"533":1,"536":1}}],["登录后会自动记住一段时间",{"2":{"347":1}}],["登录后发送消息的群号",{"2":{"238":1}}],["登录后发送的消息内容",{"2":{"238":1}}],["登录",{"0":{"517":1},"2":{"250":1,"464":1,"473":1,"530":1}}],["登录过于频繁",{"2":{"248":1}}],["登录频繁",{"2":{"247":1}}],["登录成功",{"2":{"242":1}}],["登录时间",{"2":{"238":1}}],["登录账号",{"2":{"238":1}}],["截取自",{"2":{"238":1}}],["截图都在下面了",{"2":{"190":1}}],["服务名称和服务的启动用户均可以通过提供命令行参数自定义",{"2":{"541":1}}],["服务项",{"2":{"541":1}}],["服务端所在服务器的",{"2":{"482":1}}],["服务端部署在不同的服务器",{"2":{"482":1}}],["服务端部署在同一台服务器",{"2":{"482":1}}],["服务端连接完毕",{"2":{"482":1}}],["服务端连接",{"0":{"482":1}}],["服务端的准备工作已经完毕",{"2":{"481":1}}],["服务端的架设",{"2":{"478":1}}],["服务端版本",{"2":{"478":4}}],["服务端",{"0":{"478":1},"1":{"479":1,"480":1,"481":1},"2":{"479":2}}],["服务端接入海豹核心需要了解的特定内容",{"2":{"476":1}}],["服务端应用程序会",{"2":{"278":1}}],["服务有困难",{"2":{"465":1,"536":1}}],["服务密码",{"2":{"241":1}}],["服务地址",{"2":{"241":1}}],["服务鉴权不填写",{"2":{"241":1}}],["服务鉴权",{"2":{"238":1}}],["服务",{"2":{"238":3,"241":2,"258":1,"686":1}}],["服务器等",{"2":{"747":1}}],["服务器等相关知识没有任何了解",{"2":{"537":1}}],["服务器端运行工具",{"2":{"686":1}}],["服务器ip地址",{"2":{"684":1}}],["服务器间跨架构迁移",{"0":{"576":1}}],["服务器部署",{"2":{"541":1}}],["服务器首次启动完毕",{"2":{"480":1}}],["服务器首先需要根据选定对应的",{"2":{"478":1}}],["服务器的邀请链接",{"2":{"466":1,"475":1}}],["服务器一开始并不容易熟练操作",{"2":{"272":1}}],["服务器使用的是微软特地为了服务器开发的",{"2":{"272":1}}],["服务器从运行系统上就与其稍有不同",{"2":{"272":1}}],["服务器和个人计算机在使用上有明显差异",{"2":{"272":1}}],["服务器可以简单地理解为持续保持开机的电脑",{"2":{"272":1}}],["服务器",{"0":{"272":1},"2":{"477":1,"537":1,"684":1,"686":1}}],["服务器已启动",{"2":{"242":1}}],["服务器运行的是",{"2":{"224":1}}],["服务器上部署海豹",{"2":{"199":1}}],["服务器群组号",{"2":{"109":1}}],["啰嗦总好过一个信息不完整的问题",{"2":{"230":1}}],["回到手机海豹的界面中点击",{"2":{"577":1}}],["回到",{"2":{"450":1}}],["回答问题并由我确认",{"2":{"349":1}}],["回答者可以更加高效的帮助你定位问题",{"2":{"226":1}}],["回车",{"2":{"242":1,"256":5}}],["回复消息",{"0":{"706":1}}],["回复语中看见新版本提示",{"2":{"542":1}}],["回复项有几个结果",{"2":{"422":1}}],["回复项的结果",{"0":{"422":1},"1":{"423":1}}],["回复项的条件支持多个",{"2":{"419":1}}],["回复项的条件",{"0":{"419":1},"1":{"420":1,"421":1}}],["回复可以是直接的回复",{"2":{"422":1}}],["回复结果延迟",{"0":{"423":1}}],["回复结果",{"0":{"75":1},"1":{"76":1,"77":1,"78":1,"79":1},"2":{"422":1}}],["回复",{"2":{"26":2,"83":3,"85":1,"97":1,"420":1}}],["屏幕截图",{"2":{"224":1}}],["屏幕因反射光线而不能让摄像头拍到真正的图片",{"2":{"187":1,"201":1}}],["尤其是用你自己的话描述一遍你是如何执行回答者所给出的解决方案的",{"2":{"230":1}}],["尤其是",{"2":{"218":1,"747":1}}],["强大的查询功能",{"0":{"553":1}}],["强自定义",{"0":{"551":1}}],["强行停止",{"2":{"258":1}}],["强烈建议你按自身情况进行修改",{"2":{"504":1}}],["强烈建议你使用",{"2":{"292":1}}],["强烈建议全文阅读此文章",{"2":{"215":1}}],["强烈推荐",{"2":{"238":1}}],["强制依赖",{"2":{"166":2}}],["尝试删除账号重新添加",{"2":{"514":1}}],["尝试一下",{"0":{"500":1}}],["尝试以下方案",{"2":{"460":1}}],["尝试上网搜索以找到答案",{"0":{"220":1}}],["尝试浏览用户群内的信息以找到答案",{"0":{"219":1}}],["尝试阅读本手册以找到答案",{"0":{"218":1}}],["尝试自行排查问题",{"0":{"217":1}}],["尝试自己思考问题所在",{"0":{"189":1}}],["尝试敲出你理解的方案",{"2":{"211":1}}],["执着于过于深入的细节只会拖慢你的学习速度",{"2":{"211":1}}],["执行下面的指令",{"2":{"460":1}}],["执行以下命令",{"2":{"457":1}}],["执行代码",{"2":{"407":1}}],["执行完毕后不应当认为该变量值还保留",{"2":{"172":1}}],["执行时所运行的脚本",{"2":{"152":1}}],["执行",{"2":{"78":5,"262":1,"458":1,"543":1}}],["执行块中的两个语句之间要使用",{"2":{"77":1}}],["执行块",{"0":{"77":1},"1":{"78":1,"79":1}}],["虽让你搞不懂什么",{"2":{"210":1}}],["虽然海豹在一定程度上可以兼容",{"2":{"722":1}}],["虽然海豹尽可能提高兼容性",{"2":{"548":1}}],["虽然你对什么是",{"2":{"210":1}}],["虽然作为",{"2":{"158":1}}],["又如",{"2":{"582":1}}],["又一个小例子",{"2":{"210":1}}],["又不会引入过多的非标准特性造成混乱",{"2":{"37":1}}],["便开始学习下一项内容",{"2":{"210":1}}],["便于分享最新的牌堆内容",{"2":{"58":1}}],["便于分享",{"2":{"48":1}}],["皓首穷经地学习每一个细节真的值得么",{"2":{"209":1}}],["然而在服务器无法启动海豹",{"2":{"224":1}}],["然而",{"2":{"209":1,"210":1}}],["然后拉入群组使用",{"2":{"718":1}}],["然后双击",{"2":{"694":1}}],["然后将登录过的配置文件覆盖到服务器上",{"0":{"687":1}}],["然后点击添加规则",{"2":{"686":1}}],["然后点击添加代理服务器",{"2":{"686":1}}],["然后想象奇幻世界中的冒险者们会如何迎接即将到来的挑战",{"2":{"657":1}}],["然后比较成功等级",{"2":{"604":1}}],["然后设定属性值",{"2":{"589":1}}],["然后启动海豹即可",{"2":{"544":1}}],["然后启动软件",{"2":{"256":1}}],["然后按照",{"2":{"523":1}}],["然后按照各个框架的连接协议将海豹核心和",{"2":{"515":1}}],["然后在你将要扫码的手机上启动它",{"2":{"686":1}}],["然后在海豹的新添账号选择",{"2":{"521":1}}],["然后在",{"2":{"501":1,"503":2}}],["然后在配置海豹时",{"2":{"497":1}}],["然后导入",{"2":{"443":1}}],["然后重启",{"2":{"264":1}}],["然后重新添加账号",{"2":{"242":1}}],["然后就可以安装了",{"2":{"263":1}}],["然后输入",{"2":{"256":1}}],["然后输入你想要的文件夹名字",{"2":{"196":1}}],["然后退出海豹",{"2":{"241":1}}],["然后运行里面的",{"2":{"239":1}}],["然后转向下一个概念进行学习",{"2":{"211":1}}],["然后通过海豹的",{"2":{"158":1}}],["然后根据",{"2":{"84":1}}],["然后判断",{"2":{"79":1}}],["然后进入判断",{"2":{"78":1}}],["然后阅读此章中你感兴趣的节",{"2":{"21":1}}],["然后",{"2":{"16":1,"19":1,"20":1,"730":1}}],["针对性地进行自定义回复的功能",{"2":{"209":1}}],["深渊也正在凝视着你",{"2":{"356":1}}],["深度优先的学习即是每遇到一个新概念",{"2":{"209":1}}],["深度优先学习",{"0":{"209":1}}],["深入学习",{"2":{"31":1}}],["幻觉",{"2":{"207":1}}],["搜索作者符合关键字的模组",{"2":{"765":1}}],["搜索词条",{"2":{"746":1}}],["搜索功能会暂时不可用",{"2":{"395":1}}],["搜索文案的小类和具体文案名",{"2":{"364":1}}],["搜索",{"2":{"207":1,"364":1}}],["搜索结果偏见更少的搜索引擎能显著提高你的信息获取效率",{"2":{"207":1}}],["许多时候",{"2":{"283":1,"290":1,"292":1,"302":1,"313":1}}],["许多问题的直接原因本身就记录在日志中",{"2":{"225":1}}],["许多都源于对这些外文内容的翻译和多次搬运",{"2":{"207":1}}],["许可协议",{"0":{"15":1}}],["另一种写法",{"2":{"672":1}}],["另一方面",{"2":{"207":1,"222":1,"230":1}}],["另外",{"2":{"147":1,"206":1,"211":1,"229":1,"595":1}}],["学会筛选更可靠的平台也将大大提高你的知识获取效率",{"2":{"207":1}}],["百度",{"2":{"207":1}}],["百度应该是你更好的选择",{"2":{"193":1,"202":1}}],["高效搜索",{"0":{"207":1},"2":{"220":1}}],["安全组",{"2":{"684":1}}],["安全性",{"2":{"286":1}}],["安卓豹更新",{"0":{"546":1}}],["安卓端尚在公测",{"2":{"444":1}}],["安卓端海豹核心无法使用以上方法进行更新",{"2":{"546":1}}],["安卓端海豹扫码",{"2":{"514":1}}],["安卓端海豹不会实时更新导出的文件",{"2":{"442":1}}],["安卓端海豹文件无法直接被读取",{"2":{"442":1}}],["安卓端登录",{"0":{"436":1}}],["安卓端文件路径",{"0":{"432":1}}],["安卓海豹常见问题",{"0":{"435":1},"1":{"436":1,"437":1,"438":1,"439":1,"440":1,"441":1,"442":1,"443":1,"444":1,"445":1}}],["安装完成",{"2":{"541":1}}],["安装完成后重新登录",{"2":{"521":1}}],["安装完成后",{"2":{"258":1,"541":2}}],["安装完成后应该如下所示",{"2":{"257":1}}],["安装为系统服务",{"0":{"541":1}}],["安装改过的安装包",{"2":{"441":1}}],["安装下载的",{"2":{"436":1}}],["安装方式",{"2":{"264":1}}],["安装并激活",{"0":{"264":1}}],["安装后需要在电脑中使用",{"2":{"262":1}}],["安装经",{"2":{"261":1}}],["安装到模拟器中",{"2":{"258":1}}],["安装包",{"2":{"258":1,"538":1}}],["安装",{"0":{"257":1,"258":1,"262":1,"263":1,"520":1,"526":1},"2":{"262":1,"526":1}}],["安心等待开发者解决就好",{"2":{"206":1}}],["安价",{"2":{"130":3}}],["访问海豹端口",{"2":{"684":1}}],["访问密码",{"2":{"684":1}}],["访问",{"2":{"493":1,"684":1}}],["访问存储空间",{"2":{"448":1,"453":1}}],["访问时请确认你的网络状况",{"2":{"384":1,"393":1,"403":1,"416":1}}],["访问控制",{"0":{"347":1}}],["访问常见问题页面或许可以解决你的问题",{"2":{"206":1}}],["访问网址",{"2":{"135":1}}],["阅读它们也能为编写自定义回复带来帮助",{"2":{"413":1}}],["阅读本手册",{"2":{"218":1}}],["阅读帮助文档远比直接使用搜素引擎高效得多",{"2":{"206":1}}],["阅读完小节教程后",{"2":{"91":1}}],["亦即帮助文档",{"2":{"206":1}}],["描述问题发生后",{"0":{"226":1}}],["描述问题发生前",{"0":{"224":1}}],["描述了使用这个项目的过程中可能涉及的方方面面",{"2":{"206":1}}],["描述修改内容并确认自动测试流程通过",{"2":{"10":1}}],["往往都具备相对详尽的帮助文档",{"2":{"206":1}}],["英文",{"2":{"314":1}}],["英文字母和数字长度为",{"2":{"172":1}}],["英语学习得再努力一点",{"2":{"205":1}}],["英语目前是",{"2":{"205":1}}],["掌握语言",{"0":{"205":1}}],["归档原因",{"2":{"203":1,"213":1}}],["归档内容",{"0":{"184":1},"2":{"184":1}}],["月",{"2":{"203":2,"213":2,"236":1,"253":1,"254":3,"261":1}}],["年月日",{"2":{"315":2}}],["年",{"2":{"203":2,"213":2,"236":1,"253":1,"254":3,"261":1}}],["日常用语中基本等价且易混淆的词汇等价",{"2":{"582":1}}],["日归档",{"2":{"254":1}}],["日",{"2":{"203":1,"213":1,"236":1,"253":1,"254":2,"261":1}}],["日停止维护以下内容",{"2":{"203":1,"213":1}}],["日志名",{"2":{"727":3,"728":2,"729":4,"730":1,"746":2}}],["日志记录是本群记录过的所有日志",{"2":{"727":1}}],["日志记录",{"2":{"717":1}}],["日志记录提示",{"0":{"345":1}}],["日志在线染色器",{"2":{"568":1}}],["日志通常分为信息",{"2":{"299":1}}],["日志通常指程序在运行时生成的一系列记录",{"2":{"299":1}}],["日志中通常也会有所反映",{"2":{"299":1}}],["日志中每条记录都相对较长",{"2":{"225":1}}],["日志还会使用特定格式输出堆栈信息",{"2":{"225":1}}],["日志是这样显示的",{"2":{"225":1}}],["日志是这样的",{"2":{"225":1}}],["日志截图",{"2":{"225":2}}],["日志",{"0":{"299":1,"725":1},"1":{"726":1,"727":1,"728":1,"729":1,"730":1,"731":1,"732":1,"733":1,"734":1,"735":1,"736":1,"737":1},"2":{"199":1,"225":1,"288":1,"299":1,"362":1,"431":1}}],["日期以及正则表达式等",{"2":{"402":1}}],["日期",{"2":{"45":1}}],["日期或时刻",{"2":{"33":1}}],["翻译一下这里的报错",{"2":{"198":1}}],["压缩包便解压到了你指定的文件夹",{"2":{"196":1}}],["压缩为",{"2":{"56":1}}],["到的指令和消息",{"2":{"531":1}}],["到终端后回车",{"2":{"242":1}}],["到海豹的",{"2":{"193":1,"202":1}}],["到本地",{"2":{"149":1}}],["到本地操作",{"2":{"12":1}}],["怎么帮人取出",{"0":{"698":1}}],["怎么同时运行多个海豹",{"0":{"692":1},"1":{"693":1,"694":1,"695":1}}],["怎么办",{"0":{"685":1,"688":1},"1":{"686":1,"687":1}}],["怎么使用牌堆",{"0":{"386":1}}],["怎么使用签名服务",{"0":{"238":1}}],["怎么管理牌堆",{"0":{"385":1}}],["怎么上传牌堆到骰子",{"0":{"385":1}}],["怎么修改那些固定的回复词",{"2":{"361":1}}],["怎么样解压压缩包",{"0":{"196":1}}],["怎么样提",{"2":{"193":1,"202":1}}],["怎么提",{"0":{"193":1,"202":1}}],["怎么辉石呢",{"2":{"85":1}}],["配合",{"2":{"443":1}}],["配合他们进行操作",{"2":{"191":1,"232":1}}],["配置你的服务器",{"2":{"686":1}}],["配置防火墙",{"2":{"686":1}}],["配置完成后",{"2":{"504":1}}],["配置容器使用宿主机网络",{"0":{"498":1}}],["配置文件选择",{"2":{"518":1}}],["配置文件",{"2":{"491":1}}],["配置安卓端保活",{"0":{"446":1},"1":{"447":1,"448":1,"449":1,"450":1,"451":1,"452":1,"453":1,"454":1,"455":1}}],["配置核心文件",{"2":{"431":1}}],["配置拦截",{"0":{"353":1},"1":{"354":1,"355":1}}],["配置清理时机",{"0":{"320":1}}],["配置清理范围",{"0":{"319":1}}],["配置项不存在",{"2":{"139":1}}],["配置项的用法",{"2":{"139":1}}],["配置项的",{"2":{"94":6}}],["配置云端内容的",{"2":{"64":1}}],["配置了接口的牌组被抽取的时候",{"2":{"62":1}}],["配置牌堆文件的",{"2":{"58":3}}],["配置牌堆更新",{"0":{"58":1}}],["配置",{"0":{"521":1},"2":{"19":1,"69":1,"70":1,"238":1,"651":1,"656":1,"744":1}}],["初次启动时提示是否运行",{"2":{"449":1}}],["初次启动会选择",{"2":{"239":1}}],["初步排查",{"2":{"190":1}}],["初阶豹语",{"2":{"94":3}}],["问出下一个问题吧",{"2":{"230":1}}],["问题",{"2":{"279":1,"349":2}}],["问题尚未得到有效解决之前",{"2":{"207":1}}],["问题才能更快速地解决",{"2":{"191":1,"232":1}}],["问题发生的可能原因和你所尝试但是无法解决的措施",{"2":{"190":1}}],["问题既然已经发生了",{"2":{"190":1}}],["问问题要有前因后果",{"0":{"190":1}}],["很有可能在其中就有所描述",{"2":{"206":1}}],["很显然",{"2":{"198":1,"252":1}}],["很急",{"2":{"190":1,"223":1}}],["很多时候一个解决方案是有效的",{"2":{"230":1}}],["很多时候",{"2":{"58":1,"189":1}}],["呜呜我的骰子怎么不能用了",{"2":{"190":1,"223":1}}],["让使用者成为观众",{"2":{"731":1}}],["让手机跟服务器真的处于同一个网络",{"0":{"686":1}}],["让海豹",{"2":{"684":1}}],["让你想咕就咕",{"2":{"552":1}}],["让",{"2":{"361":1}}],["让它识别是不是人",{"2":{"251":1}}],["让他人帮助你滑条",{"2":{"248":1}}],["让他们清晰地知道你的操作流程",{"2":{"189":1}}],["让回答者清晰地知道你的操作流程",{"2":{"217":1}}],["让我们用更易懂的方式解释它所想宣传的思想",{"2":{"188":1}}],["让我们从最简单的扩展开始",{"2":{"158":1}}],["乃至群内作为帮助骰的",{"2":{"189":1}}],["排列元素",{"2":{"764":1}}],["排序",{"2":{"569":1}}],["排除了程序内部错误的可能性",{"2":{"199":1}}],["排除问题",{"0":{"189":1}}],["排查问题或复现",{"2":{"187":1,"201":1}}],["除",{"0":{"695":1},"2":{"637":1}}],["除此之外",{"2":{"376":1}}],["除发送消息外的任何历史记录",{"2":{"238":1}}],["除非你知道自己在干什么",{"2":{"514":1}}],["除非你非常确定你遇到的问题与海豹本身的运行无关",{"2":{"225":1}}],["除非敏感信息的范围过大",{"2":{"187":1,"201":1}}],["除了上述由官方提供支持的规则之外",{"2":{"744":1}}],["除了上面提到的",{"2":{"165":1}}],["除了本节所述的",{"2":{"625":1}}],["除了使用",{"2":{"603":1}}],["除了海豹",{"2":{"568":1}}],["除了",{"2":{"158":1}}],["除了骰主",{"2":{"120":1}}],["除了形如",{"2":{"81":1}}],["除了这个牌组以外的牌组都被视为不导出",{"2":{"57":1}}],["俗称",{"2":{"557":1,"561":1}}],["俗称签名服务器",{"0":{"252":1}}],["俗称打码",{"2":{"187":1,"201":1}}],["俗称反光",{"2":{"187":1,"201":1}}],["拍摄屏幕时会出现各种各样的问题",{"2":{"187":1,"201":1}}],["计算机小白常见问题",{"0":{"195":1},"1":{"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1},"2":{"203":1,"206":1,"213":1,"218":1,"266":1}}],["计算机相关科普",{"2":{"185":1}}],["计算机基础知识",{"0":{"194":1},"1":{"195":1,"196":1,"197":1,"198":1,"199":1,"200":1,"201":1,"202":1,"203":1,"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1,"213":1,"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1},"2":{"184":1}}],["计算总积分",{"2":{"147":1}}],["流年不利啊",{"2":{"181":1}}],["流溪",{"2":{"3":1,"133":2}}],["今天不太行",{"2":{"181":1}}],["今日人品是一个每个用户独立",{"2":{"701":1}}],["今日人品为",{"2":{"181":1}}],["今日人品",{"0":{"701":1},"2":{"172":1}}],["运动=6",{"2":{"667":1}}],["运动",{"2":{"665":5,"667":1,"670":8}}],["运营商随时可能会更换你的",{"2":{"501":1}}],["运作了",{"2":{"465":1,"470":1,"474":1,"536":1}}],["运气不错",{"2":{"363":1}}],["运气还不错",{"2":{"181":1}}],["运行起来之后",{"2":{"686":1}}],["运行在公开端口而不是本地端口",{"2":{"684":1}}],["运行得到",{"2":{"541":1}}],["运行以下命令",{"2":{"495":1}}],["运行日志文件",{"2":{"431":1}}],["运行结果将显示在下方",{"2":{"407":1}}],["运行着海豹核心的",{"2":{"299":1}}],["运行",{"2":{"262":1,"539":2,"694":1}}],["运行内存",{"2":{"199":1}}],["运算符",{"0":{"175":1},"1":{"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1}}],["呵",{"2":{"181":1}}],["仔细听",{"2":{"181":1}}],["灵感",{"2":{"582":2}}],["灵视",{"2":{"180":2,"181":3}}],["灵魂堕落",{"2":{"67":1}}],["次左右",{"2":{"687":1}}],["次数",{"2":{"596":1,"703":1}}],["次的频繁冻结等情况",{"2":{"236":1}}],["次",{"2":{"178":1,"368":1,"371":1,"634":1,"704":1}}],["次方",{"2":{"176":1}}],["逻辑非",{"2":{"177":1}}],["逻辑或",{"2":{"177":1}}],["逻辑与",{"2":{"177":1}}],["逻辑运算",{"0":{"177":1}}],["常用指令速查",{"0":{"746":1}}],["常用示例",{"0":{"628":1}}],["常用",{"2":{"619":1}}],["常用文件",{"0":{"431":1}}],["常用方式",{"2":{"420":1}}],["常规抽取",{"2":{"386":3}}],["常规抽取与放回抽取示例",{"2":{"385":1,"386":1}}],["常规",{"2":{"363":1,"368":1}}],["常规骰子算符",{"2":{"178":1}}],["常见于软路由设备",{"2":{"696":1}}],["常见的数据序列化语言包括",{"2":{"301":1}}],["常见问题也是众多开源项目都拥有的页面",{"2":{"206":1}}],["常见问题",{"0":{"680":1},"1":{"681":1,"682":1,"683":1,"684":1,"685":1,"686":1,"687":1,"688":1,"689":1,"690":1,"691":1,"692":1,"693":1,"694":1,"695":1,"696":1,"697":1,"698":1,"699":1},"2":{"206":2,"218":1}}],["常见用法示例",{"0":{"111":1},"1":{"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1},"2":{"143":1,"157":1}}],["常量",{"2":{"172":2}}],["娱乐",{"2":{"172":1}}],["娱乐功能定制化请自便",{"2":{"15":1}}],["改为",{"2":{"480":1}}],["改成",{"2":{"441":1}}],["改成你中意的名字",{"2":{"150":1}}],["改变海豹核心判定大成功与大失败的方式",{"2":{"617":1}}],["改变",{"2":{"172":1}}],["汉字长度为",{"2":{"172":1}}],["秒后重新登录",{"2":{"622":1}}],["秒一个",{"2":{"346":1}}],["秒",{"2":{"172":1,"344":1,"350":1,"689":1}}],["小众规则指令暂时也放在本扩展中",{"2":{"700":1}}],["小米",{"0":{"448":1,"449":1}}],["小米手机安装面具教程",{"2":{"254":1}}],["小于等于",{"2":{"421":1}}],["小数字",{"2":{"278":1}}],["小主机等配置较低的设备可能无法支持使用",{"2":{"254":1}}],["小节",{"2":{"220":1}}],["小时进行一次备份",{"2":{"459":1}}],["小时一次的自动备份",{"2":{"315":1}}],["小时随时回复我们的指令了",{"2":{"272":1}}],["小时都可以回应我们的指令",{"2":{"272":1}}],["小时",{"2":{"172":1,"344":1}}],["小心嵌套文件夹",{"2":{"56":1}}],["昵称",{"2":{"172":2,"499":1}}],["力量=12",{"2":{"667":2}}],["力量+4",{"2":{"667":3}}],["力量+3",{"2":{"667":1}}],["力量检定",{"2":{"594":1}}],["力量3d6",{"2":{"589":1}}],["力量50str50",{"2":{"582":2}}],["力量",{"2":{"172":1,"173":2,"363":1,"582":10,"665":5,"670":6}}],["普通名字",{"2":{"172":1}}],["普通用户首选",{"2":{"538":1}}],["普通用户无需纠结什么叫相似",{"2":{"420":1}}],["普通用户",{"2":{"120":2,"121":1}}],["举例",{"2":{"172":1,"582":1}}],["典型的像",{"2":{"170":1}}],["兼容的海豹版本",{"2":{"167":1}}],["支持携带参数",{"2":{"709":1}}],["支持每次抽取一个",{"2":{"704":1}}],["支持个人",{"2":{"690":1}}],["支持各种文本匹配和简易脚本",{"2":{"625":1}}],["支持单进程多号",{"2":{"571":1}}],["支持多种架构",{"2":{"538":1}}],["支持多个设置文件",{"2":{"414":1}}],["支持两种方式与海豹对接",{"2":{"521":1}}],["支持通过指令在每个群组中设置默认搜索分组",{"2":{"395":1}}],["支持相关的文案",{"2":{"362":2}}],["支持",{"0":{"477":1,"529":1,"559":1,"691":1},"2":{"253":1,"254":1,"539":1,"568":1,"691":1,"739":1}}],["支持了在使用",{"2":{"161":1}}],["支持转义",{"2":{"34":1,"35":1}}],["详见",{"2":{"159":2,"395":1,"697":1,"698":1}}],["详细操作请查看对应平台的相关使用文档",{"2":{"718":1}}],["详细文档见链接",{"2":{"135":1}}],["详细可见",{"2":{"114":1}}],["允许外部访问",{"2":{"686":1}}],["允许自由开关",{"0":{"340":1}}],["允许任何人执行",{"2":{"340":1}}],["允许任何人",{"2":{"334":1}}],["允许任意使用和分发",{"2":{"159":1}}],["允许通过插件注入",{"2":{"287":1,"519":1}}],["允许后台存活和关闭后台高耗电等",{"2":{"264":1}}],["允许",{"2":{"264":1}}],["允许在文件中使用",{"2":{"37":1}}],["属性调整值会自动变更",{"2":{"665":1}}],["属性调整值和熟练自动计算",{"0":{"563":1}}],["属性修改后",{"2":{"665":1}}],["属性2",{"2":{"663":1,"664":1,"670":1}}],["属性1",{"2":{"663":1,"664":1,"670":1}}],["属性值",{"2":{"604":2,"605":2}}],["属性可以被包含在表达式中进行调整",{"2":{"595":1}}],["属性表达式",{"2":{"595":1,"596":1,"597":1,"598":1,"603":1,"604":1}}],["属性与技能",{"2":{"585":1}}],["属性的英文缩写法",{"2":{"582":1}}],["属性未录入",{"2":{"371":1}}],["属性设置",{"0":{"369":1},"2":{"369":3}}],["属性",{"2":{"159":1,"585":2,"587":1,"588":1,"589":3,"590":1,"591":1,"665":3,"667":2,"670":2,"746":2}}],["属性同义词是在录入和存储角色数据时",{"2":{"582":1}}],["属性同义词",{"0":{"557":1,"561":1,"581":1},"1":{"582":1,"583":1},"2":{"146":1}}],["位置上的名字是海豹核心选用的主要名字",{"2":{"583":1}}],["位版本",{"2":{"538":1}}],["位版本的情况下使用",{"2":{"538":1}}],["位于",{"2":{"341":1}}],["位时间戳",{"2":{"172":1}}],["位",{"2":{"158":1,"514":1,"538":2}}],["专门与海豹的日志模块进行交互",{"2":{"158":1}}],["几率性断连",{"2":{"474":1}}],["几乎所有与海豹本体有关的",{"2":{"158":1}}],["几个比较重要的仓库",{"2":{"5":1}}],["廖雪峰",{"2":{"157":1}}],["现为12",{"2":{"676":1}}],["现各大骰系都用此程序",{"2":{"250":1}}],["现代的终端通常会生成一个窗口",{"2":{"313":1}}],["现代的",{"2":{"309":1}}],["现代",{"2":{"157":1}}],["现在关闭",{"2":{"704":1}}],["现在可以进入海豹",{"2":{"686":1}}],["现在就配置完成了",{"2":{"686":1}}],["现在已经很不好用了",{"2":{"685":1}}],["现在",{"2":{"158":1,"693":1}}],["现在要写一个名为",{"2":{"114":1}}],["现在请不要这么做了",{"2":{"52":1,"54":1}}],["现在需要将旧部署转移到新的机器",{"2":{"17":1}}],["调查",{"2":{"665":2}}],["调试",{"2":{"262":2}}],["调试桥",{"2":{"262":1}}],["调整值",{"2":{"746":1}}],["调整端口暴露等",{"2":{"539":1}}],["调整",{"2":{"156":1}}],["调用时请使用",{"2":{"138":1}}],["调用自定义文案",{"2":{"94":1}}],["影响",{"2":{"152":1,"354":2}}],["补上来解决报错",{"2":{"155":1}}],["补全信息",{"0":{"150":1}}],["补充",{"0":{"137":1},"2":{"52":1,"54":1,"81":1,"143":1,"491":1,"686":1,"763":1}}],["解锁码的用法参见",{"2":{"331":1}}],["解锁码",{"0":{"331":1},"2":{"331":1,"622":1}}],["解释器",{"2":{"314":1}}],["解压后请勿运行",{"2":{"544":1}}],["解压后进行开发",{"2":{"149":1}}],["解压好的",{"2":{"262":1}}],["解压到电脑中任何可用的位置",{"2":{"259":1}}],["解压一个新的",{"2":{"249":1}}],["解压缩软件时常不会自动帮你创建文件夹",{"2":{"196":1}}],["解压压缩包需要解压缩的应用",{"2":{"196":1}}],["解决后再次提交",{"2":{"504":1}}],["解决问题",{"2":{"190":1}}],["解决方法",{"2":{"183":1}}],["解析",{"2":{"135":1}}],["解析新的游戏规则",{"2":{"94":2,"103":2}}],["希望资源占用低的",{"2":{"513":1}}],["希望能够帮助你掌握一些快速学习新知识的小技巧",{"2":{"204":1}}],["希望你通过这两篇科普",{"2":{"193":1}}],["希望通过这样的办法",{"2":{"192":1,"212":1,"234":1}}],["希望在缺失对应扩展时不进行这个插件的加载",{"2":{"164":1}}],["希望先在本地编写",{"2":{"149":1}}],["希望更加工程化以方便维护",{"2":{"148":1,"162":1}}],["托管仓库",{"2":{"149":1}}],["托管在",{"2":{"4":1}}],["面骰",{"2":{"635":2,"636":2}}],["面骰的一种补偿骰法",{"2":{"632":1}}],["面具安装工具",{"2":{"256":1}}],["面具",{"2":{"256":1}}],["面向有前端经验的开发者",{"2":{"148":1}}],["面数",{"2":{"133":1,"626":1,"648":2,"703":1,"704":1,"711":1,"746":1}}],["投掷指定面数的骰子指定次数",{"2":{"703":1}}],["投掷",{"2":{"147":2}}],["投喂插件",{"0":{"129":1}}],["投喂",{"0":{"2":1},"2":{"2":1,"129":8}}],["制卡",{"0":{"616":1,"658":1},"2":{"147":1}}],["制作一个",{"2":{"94":1,"104":1}}],["打个比方",{"2":{"278":1}}],["打开扩展",{"2":{"625":1}}],["打开扩展并设定默认骰子为",{"2":{"146":1}}],["打开开关后在",{"2":{"531":1}}],["打开在文件夹内新创建的",{"2":{"480":1}}],["打开记事本",{"2":{"458":1}}],["打开系统设置",{"2":{"447":1}}],["打开这一功能",{"2":{"413":1}}],["打开程序",{"2":{"292":1}}],["打开",{"2":{"258":1,"262":1,"441":1,"464":1,"521":1,"531":1}}],["打开面具模块",{"2":{"256":1}}],["打开海豹核心",{"2":{"441":1}}],["打开海豹",{"2":{"242":1}}],["打开海豹的管理",{"2":{"241":1}}],["打印出来的东西不仅会在控制台中出现",{"2":{"158":1}}],["打印日志",{"2":{"158":1}}],["打印解析出的数据",{"2":{"135":1}}],["积分最大的人取胜",{"2":{"145":1}}],["游戏主持人邀请你进入群聊",{"2":{"747":1}}],["游戏",{"0":{"749":1,"754":1},"1":{"750":1,"751":1,"752":1,"753":1,"755":1,"756":1,"757":1,"758":1,"759":1,"760":1},"2":{"740":1,"741":1,"742":1}}],["游戏结束",{"2":{"145":1}}],["游戏规则",{"0":{"145":1}}],["张",{"2":{"145":1,"653":1}}],["张三",{"2":{"134":1}}],["玩家视角",{"2":{"747":1}}],["玩家提供方便的机器人",{"2":{"717":1}}],["玩家应该勾上角色卡上该技能旁的方框",{"2":{"613":1}}],["玩家所需指令",{"2":{"584":1,"657":1}}],["玩家喜爱和使用",{"2":{"549":1}}],["玩家自动消耗",{"2":{"145":1}}],["玩家的当前昵称为",{"2":{"640":1}}],["玩家的力量数值",{"2":{"173":1}}],["玩家的角色属性",{"2":{"172":1}}],["玩家的目标是尽可能使得自己的积分接近",{"2":{"145":1}}],["玩家的",{"2":{"98":2}}],["玩家的名片格式",{"2":{"103":1}}],["玩家的名片",{"2":{"94":1}}],["玩家的自动名片格式",{"2":{"94":1,"103":1}}],["获得服务端核心文件",{"2":{"479":1}}],["获得",{"2":{"145":1}}],["获取指定日志记录的染色器链接",{"2":{"730":1}}],["获取指令帮助",{"2":{"722":1}}],["获取和使用",{"0":{"718":1},"1":{"719":1,"720":1,"721":1,"722":1,"723":1,"724":1}}],["获取角色卡录入模板",{"2":{"665":1}}],["获取帮助",{"2":{"746":1}}],["获取帮助信息",{"0":{"586":1,"662":1}}],["获取帮助文档",{"0":{"393":1}}],["获取最新的正式版海豹核心安装包",{"2":{"538":1}}],["获取海豹核心安装包",{"2":{"538":1}}],["获取海豹",{"0":{"538":1}}],["获取连接所需信息",{"0":{"501":1}}],["获取服务端核心",{"0":{"479":1}}],["获取自定义回复文件",{"0":{"416":1}}],["获取牌堆",{"0":{"384":1}}],["获取",{"0":{"256":1,"403":1,"464":1,"469":1,"473":1,"530":1,"535":1},"1":{"531":1,"532":1},"2":{"331":1,"622":1}}],["获取对方数据",{"2":{"134":1}}],["获取用户在黑名单",{"0":{"126":1}}],["获取黑名单",{"0":{"125":1}}],["获取当前用户的权限等级",{"2":{"120":1}}],["获取不到就使用默认值",{"2":{"116":1}}],["获取到",{"2":{"115":3}}],["获取从第",{"2":{"110":1}}],["获取第一个参数",{"2":{"115":1,"116":1,"117":1}}],["获取第",{"2":{"94":1}}],["获取被",{"2":{"94":1}}],["获取云端内容",{"2":{"64":1}}],["获取更多信息",{"2":{"5":1}}],["摸鱼等级",{"2":{"145":1,"147":1}}],["摸鱼",{"2":{"145":1,"147":1}}],["摸鱼大赛",{"2":{"143":1,"147":2}}],["点入",{"2":{"686":1}}],["点数",{"2":{"616":1}}],["点左侧",{"2":{"363":1}}],["点开",{"2":{"328":1,"503":1,"504":1}}],["点开以后删掉文件夹里的",{"2":{"239":1}}],["点赞或评论",{"2":{"206":1}}],["点生命值",{"2":{"145":1}}],["点游戏",{"2":{"145":1}}],["点击配置规则",{"2":{"686":1}}],["点击默认存在在的代理",{"2":{"686":1}}],["点击图中",{"2":{"686":1}}],["点击确定",{"2":{"686":1}}],["点击确定后",{"2":{"363":1}}],["点击手机海豹的",{"2":{"577":1}}],["点击即可打开后台",{"2":{"539":1}}],["点击侧边栏前往",{"2":{"532":1}}],["点击侧边导航栏",{"2":{"464":1}}],["点击右下角的",{"2":{"479":1}}],["点击右上角的",{"2":{"363":1,"504":1}}],["点击应用卡片可在",{"2":{"469":1}}],["点击连接",{"2":{"465":1,"470":1,"474":1,"533":1,"536":1}}],["点击可以向当前文件中添加一条回复项",{"2":{"418":1}}],["点击页面上的",{"2":{"397":1}}],["点击页面右上角的",{"2":{"316":1}}],["点击它选择本地的牌堆文件上传后即可读取牌堆",{"2":{"385":1}}],["点击左上角开关来启用拦截",{"2":{"352":1}}],["点击海豹",{"2":{"323":1,"352":1,"385":1,"395":1,"404":1,"413":1}}],["点击垃圾桶图标按钮以删除单个备份文件",{"2":{"321":1}}],["点击每一个备份文件右边的",{"2":{"321":1}}],["点击等待重启",{"2":{"257":1}}],["点击下面的",{"2":{"238":1}}],["点击重载牌堆",{"2":{"225":1}}],["点击你想要修改的文件",{"2":{"12":1}}],["点击按钮后进入如下页面",{"2":{"11":1}}],["点击",{"2":{"11":1,"14":1,"149":2,"325":1,"388":2,"396":2,"405":1,"406":2,"407":1,"414":1,"419":1,"422":1,"442":1,"464":2,"473":1,"503":2,"504":2,"505":1,"530":1,"686":1}}],["脸皮厚度",{"2":{"144":1}}],["生存",{"2":{"665":2}}],["生命+1d4",{"2":{"665":1}}],["生命值降至0",{"2":{"665":1,"678":1}}],["生命值更大的人取胜",{"2":{"145":1}}],["生命值上限",{"2":{"144":1}}],["生成指定数量的随机属性",{"2":{"750":1,"755":1}}],["生成指定数量的共鸣性怪异角色属性",{"2":{"714":1}}],["生成属性",{"2":{"746":1}}],["生成随机属性值",{"2":{"746":1}}],["生成随机属性数值",{"2":{"746":1}}],["生成随机属性",{"0":{"616":1,"658":1}}],["生成的属性包括",{"2":{"616":1}}],["生成的提示符",{"2":{"290":1}}],["生成的",{"2":{"283":1}}],["生成的内容",{"2":{"207":1}}],["生成的内容心存警惕",{"2":{"207":1}}],["生成角色的属性点",{"2":{"147":1}}],["生成骰子出招并获取玩家出招之后",{"2":{"84":1}}],["尚未执行的所有任务",{"2":{"142":1}}],["任意相符",{"2":{"419":1,"420":4}}],["任意一个都能触发同样的回复",{"2":{"419":1}}],["任务",{"2":{"141":1}}],["任何人都可以搭建一个",{"2":{"549":1}}],["任何人都可以在开源许可协议允许的范围内下载",{"2":{"186":1,"200":1}}],["任何不按教程的行动请自行处理疑难问题",{"2":{"257":1}}],["任何",{"2":{"35":1}}],["阿里云文档",{"2":{"140":1}}],["|",{"2":{"140":1,"157":1,"430":25,"562":2,"576":2,"628":1,"632":4,"633":4,"641":4,"659":1,"667":2,"722":2}}],["||",{"2":{"84":5,"129":3,"130":4,"131":1,"177":1}}],["||$t1==",{"2":{"26":1}}],["六个面分别为",{"2":{"634":1}}],["六种类型",{"2":{"138":1}}],["六块",{"2":{"68":1}}],["匹配拼音",{"2":{"356":1}}],["匹配选项中最重要的设置就是",{"2":{"354":1}}],["匹配选项",{"0":{"354":1},"2":{"353":1}}],["匹配到关键词了",{"2":{"137":1}}],["匹配中",{"2":{"74":1}}],["足够你玩出花来",{"2":{"137":1}}],["必填",{"2":{"159":3}}],["必要流程",{"2":{"137":1}}],["必须为",{"2":{"678":1}}],["必须在同一平台使用",{"2":{"622":1}}],["必须在同一行内",{"2":{"36":1}}],["必须同时满足所有条件",{"2":{"419":1}}],["必须",{"2":{"368":1}}],["必须保留首行",{"2":{"68":1}}],["必须用引号包裹",{"2":{"34":1}}],["试试非指令关键词",{"2":{"137":1}}],["试图捕捉某人",{"2":{"134":1}}],["区别在于允许额外",{"2":{"639":1}}],["区别在于发送骰点结果的方式",{"2":{"638":1}}],["区别主要在于对大成功",{"2":{"594":1}}],["区别是",{"2":{"601":1}}],["区别是群内收到就群内发送",{"2":{"94":1}}],["区别是设定的为",{"2":{"94":1}}],["区分大成功",{"2":{"136":1}}],["大多在政府部门工作",{"2":{"739":1}}],["大多数服务器不会默认开放所需要的端口",{"2":{"482":1}}],["大多数情况下都会有热心的网友在页面下方给出他们的解决方案",{"2":{"206":1}}],["大致来说",{"2":{"644":1}}],["大致了解",{"2":{"490":1}}],["大致了解其含义",{"2":{"210":1}}],["大于等于",{"2":{"421":1}}],["大部分事项",{"2":{"506":1}}],["大部分系统往往会限制应用程序在后台的活动",{"2":{"446":1}}],["大部分",{"2":{"286":1}}],["大数字",{"2":{"278":1}}],["大概有",{"2":{"190":1}}],["大失败时无视判定结果",{"2":{"619":1}}],["大失败的判定方式",{"2":{"594":1}}],["大失败",{"2":{"136":3,"370":1,"619":8}}],["大成功",{"2":{"136":3,"363":4,"596":1,"597":1,"598":1,"619":3}}],["给骰主发送消息",{"2":{"746":1}}],["给定的字数时触发对应回复项",{"2":{"421":1}}],["给用户",{"2":{"358":1}}],["给通知列表中的",{"2":{"333":1}}],["给予其足够的运行权限",{"2":{"539":1}}],["给予适当的权限并配置安卓端保活",{"2":{"436":1}}],["给予通过",{"2":{"262":1}}],["给予",{"2":{"256":2}}],["给解决带来更高的效率",{"2":{"187":1,"201":1}}],["给",{"2":{"135":1}}],["给消息发送者回应",{"2":{"116":1}}],["填你的",{"2":{"241":2}}],["填入宿主机在",{"2":{"497":1}}],["填入对应服务的名称",{"2":{"494":1}}],["填入骰子",{"2":{"265":1}}],["填入",{"2":{"141":2}}],["填入你的",{"2":{"135":1}}],["填入你的骰娘的大脑的",{"2":{"135":1}}],["填写对应的信息点击连接",{"2":{"502":1}}],["填写为",{"2":{"494":1}}],["填写你骰子所在电脑的",{"2":{"501":1}}],["填写你邮箱服务提供商的",{"2":{"338":1}}],["填写你希望的发件邮箱",{"2":{"336":1}}],["填写邮箱密钥",{"2":{"337":1}}],["填写相应信息进行连接",{"2":{"253":1,"527":1}}],["填写",{"2":{"241":1,"491":1,"514":1,"518":1,"524":1}}],["填写一些信息",{"2":{"48":1}}],["填写完成后点击下一步",{"2":{"242":1}}],["填写完成后",{"2":{"13":1}}],["填写变更内容信息",{"2":{"12":1}}],["填写新分支名",{"2":{"12":1}}],["套用这个模板",{"2":{"135":1}}],["传输与重建",{"2":{"301":1}}],["传统的写法是这样",{"2":{"135":1}}],["传参为",{"2":{"115":1,"116":1,"117":1}}],["网络请求",{"0":{"135":1}}],["网站时",{"2":{"69":1}}],["某人时",{"2":{"134":1}}],["某些情况下",{"2":{"62":1}}],["哒",{"2":{"133":1}}],["感谢魔都的章鱼站长给予的许可和支持",{"2":{"765":1}}],["感知",{"2":{"658":5,"665":2}}],["感觉是对的",{"2":{"133":1}}],["感情勉强",{"2":{"67":1}}],["感情挫折",{"2":{"67":1}}],["感情轻浮",{"2":{"67":1}}],["读取玩家或群组数据",{"0":{"132":1}}],["读完对应内容后",{"2":{"16":1}}],["抽出了",{"2":{"653":3}}],["抽出来单独作为一个常量",{"2":{"131":1}}],["抽牌",{"0":{"651":1,"653":1},"1":{"652":1,"653":1,"654":1,"655":1}}],["抽取指定种族的随机名字",{"2":{"763":1}}],["抽取随机名字",{"2":{"762":1}}],["抽取总结性疯狂症状",{"2":{"752":1}}],["抽取即时疯狂症状",{"2":{"752":1}}],["抽取即时症状",{"2":{"612":1}}],["抽取疯狂症状",{"0":{"752":1}}],["抽取失败的原因",{"2":{"118":1}}],["抽取结果",{"2":{"118":1,"119":1}}],["抽取结果字符串中可以插入",{"2":{"55":1,"59":1}}],["抽取结果字符串中最前面的",{"2":{"53":1}}],["抽取结果字符串中的",{"2":{"52":1}}],["抽取牌堆的另一种写法",{"2":{"119":1}}],["抽取牌堆的函数是",{"2":{"118":1}}],["抽取牌堆失败",{"2":{"119":1}}],["抽取牌堆示例",{"2":{"119":1}}],["抽取牌堆",{"0":{"118":1,"119":1},"1":{"119":1},"2":{"119":1}}],["抽取牌组时",{"2":{"64":1}}],["抽取本牌组时将请求接口获取云端数据",{"2":{"64":1}}],["抽取了",{"2":{"57":1}}],["抽取",{"2":{"52":1,"57":1}}],["序列号即为",{"2":{"623":1}}],["序列号",{"2":{"623":2}}],["序列为止的所有文本",{"2":{"43":1}}],["序号",{"2":{"130":1,"619":1,"746":1}}],["查找指定分组下的文档",{"2":{"722":1}}],["查找文档",{"2":{"722":1}}],["查阅详细说明",{"2":{"541":1}}],["查询功能在不同设备上的实现是不同的",{"2":{"642":1}}],["查询",{"2":{"642":1,"721":1,"722":1}}],["查询指定扩展的信息",{"2":{"625":1}}],["查询指令",{"2":{"553":1}}],["查询文档放置位置",{"2":{"430":1}}],["查询等操作的实现示例",{"2":{"130":1}}],["查看编辑推荐",{"2":{"765":1}}],["查看用法",{"2":{"758":2,"760":1}}],["查看用户的需求和",{"2":{"193":1,"202":1}}],["查看鸽子背后的故事",{"2":{"702":1}}],["查看先攻列表",{"2":{"660":1}}],["查看牌组所属牌堆的详细信息",{"2":{"652":1}}],["查看特定牌堆可抽取的牌组列表",{"2":{"652":1}}],["查看扩展列表和开启情况",{"2":{"625":1}}],["查看指定模组的详细内容",{"2":{"765":1}}],["查看指定用户黑白名单情况",{"2":{"623":1}}],["查看指令列表",{"2":{"375":1}}],["查看当前欢迎语",{"2":{"707":1}}],["查看当前死亡豁免情况",{"2":{"678":1}}],["查看当前法术位状况",{"2":{"672":1}}],["查看当前标记列表",{"2":{"649":1}}],["查看当前默认骰子面数",{"2":{"648":1}}],["查看当前群组的默认查询分组",{"2":{"643":1}}],["查看当前角色名",{"2":{"640":1}}],["查看当前面数设置",{"2":{"626":1}}],["查看当前",{"2":{"622":1}}],["查看运行状态",{"2":{"541":1}}],["查看你的机器人对应的邀请二维码",{"2":{"505":1}}],["查看原因",{"2":{"504":1}}],["查看迁移数据到手机",{"2":{"445":1}}],["查看拦截日志",{"0":{"357":1}}],["查看日志",{"2":{"225":1,"541":1,"681":1}}],["查看帮助文档词条",{"0":{"399":1}}],["查看帮助",{"2":{"130":1,"623":1,"678":1}}],["查看记录",{"2":{"129":1}}],["查看自己的权限",{"2":{"121":1}}],["查看",{"2":{"120":1,"572":1}}],["删除角色卡",{"2":{"746":1}}],["删除的日志在海豹核心中永远失去",{"2":{"729":1}}],["删除的文件将无法找回",{"2":{"414":1}}],["删除个人快捷指令",{"2":{"709":1}}],["删除快捷指令",{"2":{"709":1}}],["删除掉默认的规则",{"2":{"686":1}}],["删除和清空",{"2":{"670":1}}],["删除指定日志",{"2":{"729":1}}],["删除指定角色卡",{"2":{"641":1}}],["删除指定属性的",{"2":{"670":1}}],["删除指定属性",{"2":{"588":1,"664":1}}],["删除所有属性数值和法术位",{"2":{"664":1}}],["删除所有属性数值",{"2":{"588":1}}],["删除所选",{"2":{"398":1}}],["删除属性",{"0":{"588":1,"664":1}}],["删除结果",{"2":{"422":1}}],["删除帮助文档",{"0":{"398":1}}],["删除牌堆通常会自动重载",{"2":{"385":1}}],["删除或更改",{"2":{"332":1}}],["删除之前添加的账号",{"2":{"242":1}}],["删除",{"2":{"130":1,"363":1,"385":1,"405":1,"414":2,"699":1}}],["要注意家庭网络的",{"2":{"501":1}}],["要申请用于邀请海豹至",{"2":{"466":1,"471":1,"475":1}}],["要获取用于连接海豹的信息之前",{"2":{"501":1}}],["要获取用于连接海豹的",{"2":{"464":1,"473":1,"530":1,"535":1}}],["要如何设置",{"2":{"381":1}}],["要怎样使用呢",{"2":{"425":1}}],["要怎样设置",{"2":{"425":1}}],["要怎样让它简洁起来呢",{"2":{"361":1}}],["要怎样让它丰富起来呢",{"2":{"361":1}}],["要怎么实现",{"2":{"381":1}}],["要怎么做",{"0":{"147":1}}],["要求在骰子回应后才能再次发送",{"2":{"708":1}}],["要求使用心理学技能",{"2":{"602":1}}],["要求一定难度的检定",{"0":{"597":1}}],["要求安卓版本",{"2":{"261":1}}],["要求你发送截图也只是为了更好地了解你的问题究竟出在哪里",{"2":{"187":1,"201":1}}],["要在使用",{"2":{"212":1}}],["要在",{"2":{"192":1,"234":1,"468":1}}],["要干什么",{"2":{"137":1}}],["要发送给骰娘的具体消息",{"2":{"135":1}}],["要爱护动物",{"2":{"129":1}}],["要看懂这里你可能需要学习一下初阶豹语",{"2":{"99":1}}],["物品>",{"2":{"129":2}}],["答案是使用",{"2":{"128":1}}],["且≤",{"2":{"619":2}}],["且判定失败为大失败",{"2":{"619":1}}],["且判定成功为大成功",{"2":{"619":1}}],["且文件一般在",{"2":{"257":1}}],["且版本大于等于",{"2":{"166":1}}],["且后者的版本必须大于等于",{"2":{"165":1}}],["且只能存一个",{"2":{"128":1}}],["且不与第一个",{"2":{"78":1}}],["且不支持尾逗号",{"2":{"36":1}}],["避免他人访问",{"2":{"347":1}}],["避免忘记",{"2":{"345":1}}],["避免出现预期外情况",{"2":{"722":1}}],["避免出现",{"2":{"335":1}}],["避免出现看上去保存了",{"2":{"48":1}}],["避免放错地方或者取错东西",{"2":{"128":1}}],["重置默认值为",{"2":{"711":1}}],["重置角色名",{"2":{"640":1}}],["重试",{"2":{"687":1}}],["重复进行计算",{"2":{"635":1}}],["重复进行指定次数的相同检定",{"2":{"596":1}}],["重载",{"2":{"405":1}}],["重载过程需要一定时间",{"2":{"395":1}}],["重载帮助文档",{"2":{"395":2}}],["重载牌堆",{"2":{"385":2}}],["重载拦截",{"2":{"356":1}}],["重新获取日志",{"2":{"746":1}}],["重新获取指定日志的染色器链接",{"2":{"729":1}}],["重新进行登录流程了",{"2":{"686":1}}],["重新装载帮助文档",{"2":{"647":1}}],["重新启动海豹",{"2":{"699":1}}],["重新启动海豹核心",{"2":{"622":1}}],["重新启动容器",{"2":{"493":1}}],["重新启动你的模拟器",{"2":{"256":1}}],["重新添加",{"2":{"474":1}}],["重新计算",{"2":{"355":1}}],["重新设计了用户界面的",{"2":{"295":1}}],["重新配置",{"2":{"249":1,"503":1}}],["重新登录",{"2":{"246":1,"247":1}}],["重新加载牌堆",{"2":{"94":1,"102":1,"622":1,"655":1}}],["重启骰子后生效",{"2":{"347":1}}],["重启骰子后重新计时",{"2":{"344":1}}],["重启后生效",{"2":{"346":1}}],["重启",{"2":{"246":1}}],["重名就可以了",{"2":{"128":1}}],["相当于计算器",{"2":{"628":1}}],["相比之下分离部署有更强的稳定性",{"2":{"515":1}}],["相比开机激活之后马上就可以投入使用的个人计算机",{"2":{"272":1}}],["相对客观地陈述问题会比只表示主观情绪有用",{"0":{"190":1}}],["相关内容",{"2":{"491":1}}],["相关设置均位于",{"2":{"315":1}}],["相关截图",{"2":{"190":1}}],["相关文档默认你了解如何使用前端工具链",{"2":{"162":1}}],["相关的消息",{"2":{"649":1}}],["相关的问题会更有效率",{"2":{"193":1}}],["相关的包可能存在兼容性问题",{"2":{"154":1}}],["相关的",{"2":{"128":1}}],["相同技能不能被反复列出",{"2":{"614":1}}],["相同平台间迁移",{"0":{"574":1}}],["相同的移除函数",{"2":{"124":1}}],["相同",{"2":{"94":1,"104":1,"417":1}}],["存有拦截日志等信息",{"2":{"431":1}}],["存有",{"2":{"431":1}}],["存有人物卡",{"2":{"431":1}}],["存活消息间隔写法",{"2":{"344":1}}],["存活确认",{"0":{"344":1}}],["存在大量用户",{"2":{"199":1}}],["存在一个即可",{"2":{"90":2}}],["存储权限",{"0":{"453":1}}],["存储数据",{"2":{"129":1}}],["存储起来",{"2":{"128":1}}],["存储时需要指定",{"2":{"128":1}}],["存放的数据是字符串类型",{"2":{"128":1}}],["存取数据",{"0":{"128":1},"1":{"129":1,"130":1}}],["警告后继续使用指令会增加怒气值",{"2":{"346":1}}],["警告",{"2":{"127":1,"158":1,"355":1}}],["警告级词表",{"2":{"90":1}}],["警告级词汇",{"2":{"89":1,"90":2}}],["已设置",{"2":{"660":1}}],["已连接",{"2":{"514":1}}],["已知护眼模式可能会导致海豹核心意外关闭",{"2":{"451":1}}],["已启用",{"2":{"414":2,"624":1}}],["已经设置了先攻列表的情况",{"2":{"660":1}}],["已经基本不可用",{"2":{"512":1}}],["已经就绪",{"2":{"375":1}}],["已经成功注入了",{"2":{"258":1}}],["已修改过的文案",{"2":{"364":1}}],["已备份文件",{"2":{"321":1}}],["已于",{"2":{"254":1}}],["已停止更新",{"2":{"254":1}}],["已停止维护",{"2":{"236":1,"237":1}}],["已无法使用",{"2":{"254":1,"261":1}}],["已发现",{"2":{"254":1,"261":1}}],["已失效",{"2":{"246":1}}],["已切换至规则文本",{"2":{"136":1}}],["已移除第$",{"2":{"130":1}}],["已添加第$",{"2":{"130":1}}],["已信任用户",{"2":{"127":1}}],["已解除拉黑",{"2":{"127":1}}],["已拉黑用户",{"2":{"127":1}}],["已有详细示例",{"2":{"100":1,"101":1}}],["演示图片中为",{"2":{"686":1}}],["演示",{"2":{"127":1,"139":1}}],["怒气值超过拉黑阈值",{"2":{"327":1}}],["怒气值",{"2":{"125":1,"127":2}}],["添加规则",{"2":{"686":1}}],["添加海豹运作需要的权限",{"2":{"532":1}}],["添加本地储存",{"2":{"443":1}}],["添加图片的方法",{"2":{"443":1}}],["添加一项",{"2":{"418":1}}],["添加的好友为单向好友",{"2":{"334":1}}],["添加黑白名单",{"0":{"324":1},"1":{"325":1,"326":1,"327":1}}],["添加至系统环境变量",{"2":{"262":1}}],["添加账号",{"2":{"241":1}}],["添加选项",{"2":{"131":1}}],["添加",{"2":{"120":1,"123":1,"124":1,"325":1,"521":1,"622":1}}],["身份",{"2":{"120":1}}],["部署的海豹功能有所限制",{"2":{"539":1}}],["部署",{"2":{"278":1,"285":1,"491":1,"516":1,"716":1}}],["部署签名服务",{"2":{"237":1}}],["部署在",{"2":{"227":1}}],["部署海豹的",{"2":{"513":1}}],["部署海豹与通过",{"2":{"491":1}}],["部署海豹时",{"2":{"489":1}}],["部署海豹核心为什么要解压压缩包",{"0":{"196":1}}],["部署海豹",{"0":{"17":1}}],["部分过时系统不支持",{"2":{"514":1}}],["部分修改",{"2":{"493":1}}],["部分服务端会推荐对应",{"2":{"478":1}}],["部分",{"2":{"225":1,"490":1,"494":1}}],["部分权限等级仅在群聊中有效",{"2":{"120":1}}],["省略消耗数量时",{"2":{"674":1}}],["省去你一一发送日志文件的麻烦",{"2":{"568":1}}],["省去了判断是否抽取成功的步骤",{"2":{"119":1}}],["省事之外",{"2":{"84":1}}],["错误的用例",{"2":{"722":1}}],["错误的值",{"2":{"369":1}}],["错误写法",{"2":{"174":1}}],["错误原因",{"2":{"119":1}}],["错误检查",{"2":{"93":1}}],["本机上完成扫码登录",{"0":{"687":1}}],["本次录入了1条数据",{"2":{"591":1,"593":1,"669":1}}],["本次共记录了2条数据",{"2":{"582":1}}],["本例中为",{"2":{"497":1}}],["本文件所有回复项目上方新增了",{"2":{"417":1}}],["本文中将涉及使用",{"2":{"143":1}}],["本体实现一套",{"2":{"294":1}}],["本身则需要通过电脑使用",{"2":{"262":1}}],["本教程不涉及说明如何",{"2":{"254":1}}],["本部分中将会为一些涉及的要素提供正例与反例",{"2":{"222":1}}],["本手册特别提供了",{"2":{"206":1}}],["本篇的科普希望大家能知道如何方便自己也方便他人地提问",{"2":{"185":1}}],["本脚本用于演示如何抽取牌堆",{"2":{"119":1}}],["本节以群聊代称",{"2":{"747":1}}],["本节是海豹支持的其他",{"2":{"738":1}}],["本节只涉及如何使用海豹核心完成规则中指定的操作",{"2":{"584":1,"657":1}}],["本节提供了多种对接途径的引导",{"2":{"513":1}}],["本节假定你对",{"2":{"489":1}}],["本节包括两项内容",{"2":{"456":1}}],["本节包含在主流安卓操作系统上允许海豹核心在后台运行",{"2":{"446":1}}],["本节主要讲解如何使用模拟器实现",{"2":{"254":1}}],["本节为计算机小白指南中的第四部分",{"2":{"266":1}}],["本节为计算机小白指南中的第一部分",{"2":{"213":1}}],["本节为计算机小白指南中的第二部分",{"2":{"203":1}}],["本节为海豹提供的",{"2":{"94":1}}],["本节不能代替权威解释或各项目的官方文档",{"2":{"195":1,"266":1}}],["本节旨在帮助先前未曾接触过计算机以及服务器",{"2":{"195":1,"203":1,"213":1,"266":1}}],["本节将提供一些常见问题的解决方式",{"2":{"680":1}}],["本节将会指导你如何迁移现有的海豹核心",{"2":{"573":1}}],["本节将会指导你如何在你的",{"2":{"537":1}}],["本节将会介绍海豹的特色功能",{"2":{"547":1}}],["本节将包含通过",{"2":{"489":1}}],["本节将包含你在",{"2":{"463":1,"467":1,"472":1,"476":1,"499":1,"510":1,"528":1,"534":1}}],["本节将包含你在钉钉平台接入海豹核心需要了解的特定内容",{"2":{"461":1}}],["本节将针对先前未曾接触过计算机以及服务器",{"2":{"185":1}}],["本节将展示对故事发展有帮助的一些指令",{"2":{"761":1}}],["本节将展示记录跑团日志相关的指令",{"2":{"725":1}}],["本节将展示海豹的",{"2":{"700":1}}],["本节将展示牌堆和自定义回复相关的指令",{"2":{"650":1}}],["本节将展示",{"2":{"584":1,"657":1,"745":1}}],["本节将展示自定义回复编写的进阶部分",{"2":{"69":1}}],["本节将展示复杂文案的编写技巧",{"2":{"22":1}}],["本节将介绍安卓端海豹核心常见问题和解决方法",{"2":{"435":1}}],["本节将介绍自定义回复功能",{"2":{"411":1}}],["本节将介绍自定义文案的设置",{"2":{"360":1}}],["本节将介绍帮助文档功能",{"2":{"391":1}}],["本节将介绍帮助文档的编写",{"2":{"65":1}}],["本节将介绍牌堆功能",{"2":{"382":1}}],["本节将介绍牌堆的编写",{"2":{"29":1}}],["本节将介绍拦截功能和相关设置",{"2":{"351":1}}],["本节将介绍基础设置内的内容",{"2":{"329":1}}],["本节将介绍黑白名单的设置",{"2":{"322":1}}],["本节将介绍关于备份",{"2":{"314":1}}],["本节将介绍海豹核心的核心指令",{"2":{"621":1}}],["本节将介绍海豹核心主要的本地文件和它们的作用",{"2":{"429":1}}],["本节将介绍海豹在",{"2":{"581":1}}],["本节将介绍海豹内置的脚本语言",{"2":{"171":1}}],["本节将介绍海豹扩展功能的进阶内容",{"2":{"91":1}}],["本节将介绍",{"2":{"157":1,"401":1,"426":1}}],["本节将介绍如何使用",{"2":{"148":1}}],["本节将介绍如何为你的海豹核心编写和添加一个新的",{"2":{"143":1}}],["本节将介绍敏感词库的编写",{"2":{"88":1}}],["本节内容",{"2":{"22":1,"29":1,"65":1,"69":1,"88":1,"91":1,"94":1,"143":1,"148":1,"157":1,"171":1,"184":1,"185":1,"195":1,"203":1,"213":1,"266":1,"314":1,"322":1,"329":1,"351":1,"360":1,"382":1,"391":1,"401":1,"411":1,"426":1,"429":1,"435":1,"446":1,"456":1,"461":1,"463":1,"467":1,"472":1,"476":1,"489":1,"499":1,"510":1,"528":1,"534":1,"537":1,"547":1,"573":1,"581":1,"584":1,"621":1,"650":1,"657":1,"680":1,"700":1,"716":1,"725":1,"738":1,"745":1,"761":1}}],["完成",{"2":{"496":1}}],["完成后回到",{"2":{"532":1}}],["完成后复制下方生成的",{"2":{"466":1,"471":1,"475":1}}],["完成后点击",{"2":{"464":1}}],["完成后",{"2":{"464":1,"469":1,"535":1}}],["完全由骰主自行设定",{"2":{"724":1}}],["完全相同",{"2":{"638":1,"639":1}}],["完全等价于",{"2":{"609":1}}],["完全一致",{"2":{"420":1}}],["完全没有关系",{"2":{"203":1}}],["完全了吧",{"2":{"94":1}}],["完整的代码如下",{"2":{"117":1}}],["取较高或较低结果",{"2":{"632":1}}],["取悦",{"2":{"582":1}}],["取决于你",{"2":{"185":1,"214":1}}],["取分隔后的最后一项的值",{"2":{"174":1}}],["取值分别为",{"2":{"144":1}}],["取出数据",{"2":{"131":1}}],["取名为$",{"2":{"116":1,"117":1}}],["取第一个参数为名字",{"2":{"116":1,"117":1}}],["前一用法的特殊情况",{"2":{"665":1}}],["前往官网的",{"2":{"578":1}}],["前往",{"2":{"479":3,"481":1}}],["前往侧边导航栏",{"2":{"466":1,"471":1,"475":1}}],["前三个策略可能需要相应权限才能生效",{"2":{"455":1}}],["前缀",{"2":{"368":1,"373":2,"374":1,"425":1}}],["前缀匹配",{"2":{"85":1,"420":1}}],["前置工作",{"0":{"241":1}}],["前者用于赋值而后者用于比较",{"2":{"173":1}}],["前言部分的阅读",{"2":{"489":1}}],["前言",{"0":{"157":1,"204":1,"214":1,"511":1},"1":{"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1,"168":1,"169":1,"170":1,"512":1,"513":1}}],["前请先判断是否符合预期",{"2":{"127":1}}],["前两个参数和",{"2":{"116":1}}],["函数的参数为",{"2":{"139":1}}],["函数进行注册",{"2":{"138":1}}],["函数也是可以使用的",{"2":{"138":1}}],["函数获取配置项的值",{"2":{"138":2}}],["函数注册配置项",{"2":{"138":1}}],["函数返回一个",{"2":{"135":1}}],["函数将数据再转换为",{"2":{"128":1}}],["函数将存储了数据的",{"2":{"128":1}}],["函数和",{"2":{"128":1}}],["函数传进来的第一个参数",{"2":{"118":1,"123":1}}],["函数接收的参数一致",{"2":{"116":1}}],["函数",{"2":{"114":1,"116":1,"119":1,"131":1}}],["召唤一只海豹",{"2":{"114":1,"117":2}}],["氪豹",{"2":{"114":1,"116":1,"117":2}}],["显示目前可用的快捷指令",{"2":{"709":1}}],["显示一串这样的文本",{"2":{"686":1}}],["显示帮助",{"2":{"660":1,"670":1,"765":1}}],["显示帮助信息",{"2":{"651":1}}],["显示指定词条的帮助文档",{"2":{"647":1}}],["显示随机词条",{"2":{"642":1,"722":1}}],["显示该",{"2":{"642":1,"722":1}}],["显示第",{"2":{"642":1}}],["显示当前房规",{"0":{"618":1}}],["显示当前大类下未修改过的文案",{"2":{"364":1}}],["显示所有权限",{"2":{"453":1}}],["显示悬浮窗",{"2":{"448":1}}],["显示全部文案",{"2":{"364":1}}],["显示",{"2":{"114":1,"117":1,"134":1}}],["写骰点式",{"2":{"756":1}}],["写调整值",{"2":{"756":1}}],["写为类似",{"2":{"498":1}}],["写的",{"2":{"224":1}}],["写在前面",{"2":{"185":1}}],["写入如下内容",{"2":{"158":1}}],["写好自定义指令的实现逻辑之后",{"2":{"113":1}}],["写法",{"2":{"83":2}}],["脚本添加第三方扩展",{"2":{"625":1}}],["脚本的名字",{"2":{"159":1}}],["脚本的编写的前置知识",{"2":{"157":1}}],["脚本引擎所提供的环境",{"2":{"158":1}}],["脚本不能替换内置指令和内置扩展",{"2":{"112":1}}],["脚本文件只会注册一个扩展",{"2":{"112":1}}],["脚本文件中注册多个扩展",{"2":{"112":1}}],["脚本和扩展",{"2":{"112":1}}],["脚本中创建扩展的方式如下",{"2":{"112":1}}],["命中时进行相应处理的能力",{"2":{"352":1}}],["命中的字符串也将额外存入变量",{"2":{"73":1}}],["命运骰",{"0":{"634":1},"2":{"178":1}}],["命名角色卡",{"2":{"747":1}}],["命名的最新构建",{"2":{"538":1}}],["命名的正式版",{"2":{"538":1}}],["命名",{"2":{"114":1,"117":2}}],["命令中的",{"2":{"498":1}}],["命令来抽取它们",{"2":{"386":1}}],["命令来随机抽取其中的内容发送",{"2":{"383":1}}],["命令提示符默认使用",{"2":{"292":1}}],["命令提示符本身集成了",{"2":{"292":1}}],["命令提示符",{"0":{"292":1},"2":{"283":1,"290":1,"292":1,"302":1,"309":1,"313":1}}],["命令行社区经常希望加入的新功能",{"2":{"309":1}}],["命令行行首会有",{"2":{"290":1}}],["命令行是",{"2":{"290":1}}],["命令行与",{"2":{"283":1,"290":1,"292":1,"313":1}}],["命令行",{"0":{"290":1},"2":{"283":1,"291":1,"292":1,"302":2,"313":1}}],["命令行界面即基于",{"2":{"291":1}}],["命令行界面",{"0":{"291":1},"2":{"274":1,"302":1}}],["命令切换至",{"2":{"262":1}}],["命令为其赋予权限",{"2":{"262":1}}],["命令为",{"2":{"115":1,"116":2,"117":2,"134":1}}],["命令的帮助信息是在使用",{"2":{"114":1}}],["命令的帮助信息",{"2":{"114":1}}],["命令",{"2":{"112":1,"114":1,"140":1,"152":1,"262":1,"457":1,"624":1}}],["平时推荐关闭这个选项",{"2":{"577":1}}],["平台的昵称",{"2":{"640":1}}],["平台的机制使没有公开发布的应用无法加入被指定的单个工作区之外的地方",{"2":{"530":1}}],["平台上",{"2":{"638":1}}],["平台上搭建骰子",{"2":{"549":1}}],["平台运作了",{"2":{"533":1}}],["平台选择何种方式取决于你自己的选择",{"2":{"512":1}}],["平台搭建这样的非官方机器人取决于你的慎重考虑",{"2":{"512":1}}],["平台机器人的说明",{"0":{"512":1}}],["平台为例",{"2":{"478":1}}],["平台做出适当的修正",{"2":{"471":1}}],["平台本身的问题",{"2":{"471":1}}],["平台接入海豹核心需要了解的特定内容",{"2":{"463":1,"467":1,"472":1,"489":1,"510":1,"528":1,"534":1}}],["平台有效",{"2":{"346":1}}],["平台下",{"2":{"292":1}}],["平台下的",{"2":{"199":1}}],["平台下的任务管理器",{"2":{"199":1}}],["平台发生的",{"2":{"227":1}}],["平台时使用的连接方式",{"2":{"227":1}}],["平台",{"2":{"109":1,"236":1,"341":1,"530":1,"623":3,"681":1,"689":1}}],["平均值高于阈值",{"2":{"72":1}}],["群快捷指令",{"2":{"709":2}}],["群控",{"2":{"499":1}}],["群组",{"2":{"622":1}}],["群组状态等信息",{"2":{"431":1}}],["群组中最后一次发送消息的时间",{"2":{"350":1}}],["群的",{"2":{"427":1}}],["群的列表",{"2":{"323":1}}],["群配置白名单",{"2":{"358":1}}],["群豁免检查",{"0":{"358":1}}],["群",{"2":{"355":1,"374":1,"427":1,"503":1,"522":1,"580":2}}],["群列表",{"2":{"238":1,"580":1}}],["群里可以正常使用",{"2":{"223":1}}],["群员",{"2":{"191":1,"232":1}}],["群员和管理也很希望能帮你解决问题",{"2":{"190":1}}],["群友来帮我看看吗",{"2":{"190":1}}],["群精华消息和历史聊天记录中",{"2":{"219":1}}],["群精华消息",{"2":{"189":1}}],["群公告",{"2":{"189":1}}],["群名",{"2":{"172":1}}],["群内回复",{"2":{"422":1}}],["群内",{"2":{"188":1,"368":1,"373":1}}],["群内所有人共享",{"2":{"172":1}}],["群内安价收集",{"0":{"130":1},"2":{"130":1}}],["群变量",{"2":{"172":1}}],["群号",{"2":{"109":1,"602":1,"638":1,"706":2,"730":2}}],["群聊",{"2":{"109":1,"690":1}}],["群主",{"2":{"105":1,"120":2}}],["群主的人品为",{"2":{"97":1}}],["群主女装",{"2":{"78":2}}],["ob",{"0":{"731":1},"2":{"731":4}}],["object",{"2":{"129":1}}],["o",{"2":{"696":1}}],["oracle",{"2":{"684":1}}],["over",{"2":{"665":1}}],["overflow",{"2":{"207":1}}],["october",{"2":{"646":1}}],["oauth",{"2":{"532":4}}],["oauth2",{"2":{"466":1}}],["our",{"2":{"480":1}}],["output",{"2":{"460":1,"479":1}}],["op",{"2":{"486":1}}],["oppo",{"0":{"451":1}}],["openshamrock",{"2":{"254":1}}],["open",{"2":{"186":1,"200":1,"242":1}}],["optval",{"2":{"139":2}}],["optstr",{"2":{"130":8}}],["optional",{"2":{"479":1}}],["option",{"2":{"61":1,"94":2,"130":7,"131":3,"138":4}}],["options",{"2":{"61":3,"64":5,"130":13,"131":3,"139":1}}],["omitempty",{"2":{"138":3}}],["on|off",{"2":{"625":1,"656":2,"707":1}}],["onebot",{"2":{"254":3,"285":3,"491":3,"516":3,"519":1,"539":2}}],["onebot11反向ws",{"2":{"265":1,"515":2,"521":1}}],["onebot11正向ws",{"2":{"260":1,"515":2,"521":1}}],["onebot11",{"2":{"242":1,"515":2,"518":1,"524":1}}],["on",{"0":{"198":1},"2":{"340":2,"481":1,"569":1,"625":2,"681":1,"691":1,"727":2,"746":3}}],["onnotcommandreceived",{"2":{"137":2}}],["onlinetotaltime",{"2":{"108":1}}],["oick",{"2":{"135":1}}],["ok",{"2":{"135":2,"686":1}}],["off",{"2":{"340":2,"345":1,"354":2,"569":6,"624":1,"625":2,"727":2,"736":1,"746":3}}],["of",{"0":{"740":1},"2":{"129":1,"142":2,"584":1,"740":1}}],["owner",{"2":{"121":1}}],["懒",{"2":{"105":1}}],["太长",{"2":{"105":1}}],["代价是无法使用查询指令",{"2":{"696":1}}],["代价是损失从备份时间点到当前时间的数据",{"2":{"459":1}}],["代骰",{"0":{"593":1,"599":1,"602":1,"611":1,"666":1,"668":1,"671":1,"673":1,"675":1,"677":1,"679":1},"2":{"593":1,"599":1,"600":1,"602":1,"611":1,"639":1}}],["代骰附加文本",{"2":{"105":1}}],["代理组",{"2":{"686":1}}],["代理服务",{"2":{"686":1}}],["代理访问的途径",{"2":{"465":1,"536":1}}],["代理模式",{"2":{"465":1,"536":1}}],["代指你骰子的qq",{"2":{"430":1}}],["代表该对接方式为实验性的",{"2":{"515":1}}],["代表位于文档根目录的帮助文档位置",{"2":{"396":1}}],["代表可以在公网中用你的手机和电脑访问",{"2":{"347":1}}],["代表可用",{"2":{"136":2}}],["代码都遵守着相应的格式规范",{"2":{"224":1}}],["代码仓库上提交",{"0":{"192":1,"233":1}}],["代替目标",{"2":{"746":1}}],["代替检定",{"2":{"746":1}}],["代替他人检定",{"0":{"555":1}}],["代替已经停止开发的",{"2":{"254":1}}],["代替",{"2":{"59":1,"172":1,"254":1}}],["信任信息",{"2":{"127":1}}],["信任列表",{"2":{"127":1,"623":1}}],["信任用户",{"2":{"127":1,"623":1}}],["信任用户和拉黑用户存在同一个列表中",{"2":{"127":1}}],["信任用户名单",{"0":{"124":1}}],["信任的时间",{"2":{"125":1}}],["信任的发生地点",{"2":{"125":1}}],["信任原因",{"2":{"125":1}}],["信任等级",{"2":{"125":1}}],["信任名单中",{"2":{"126":1}}],["信任名单中的信息",{"0":{"126":1}}],["信任名单列表",{"0":{"125":1}}],["信任名单操作",{"0":{"122":1,"127":1},"1":{"123":1,"124":1,"125":1,"126":1,"127":1}}],["信任名单可以通过",{"2":{"120":1}}],["信任",{"2":{"105":1,"127":2}}],["信息查询",{"0":{"652":1}}],["信息",{"2":{"56":1,"120":1,"441":1,"462":1,"641":1}}],["权限授予若干位维护人员",{"2":{"622":1}}],["权限列表",{"2":{"622":2}}],["权限的交互平台做以下操作",{"2":{"730":1}}],["权限的用户将看到消息内容和发送者的",{"2":{"706":1}}],["权限的用户使用",{"2":{"622":1,"623":1}}],["权限的门槛很高",{"2":{"254":1}}],["权限不足",{"2":{"466":1,"471":1,"475":1}}],["权限管理",{"2":{"450":1,"453":1}}],["权限问题",{"2":{"262":1}}],["权限",{"0":{"256":1,"487":1},"1":{"488":1},"2":{"120":1,"254":1,"256":3,"332":1,"453":1,"466":1,"486":1,"491":1,"541":1,"543":1,"622":3}}],["权限值",{"2":{"120":1}}],["权限识别样例",{"2":{"121":1}}],["权限识别",{"0":{"120":1,"121":1},"1":{"121":1}}],["权限等级",{"2":{"105":1}}],["权重影响的是抽出的顺序",{"2":{"54":1}}],["权重与不放回抽取",{"0":{"54":1}}],["权重",{"0":{"53":1},"1":{"54":1}}],["接入",{"2":{"513":1}}],["接入点数据",{"2":{"105":1}}],["接下来请根据你所需要对接平台的接入手册",{"2":{"540":1}}],["接下来这个",{"2":{"460":1}}],["接下来将依次介绍它们",{"2":{"362":1}}],["接着点击登录",{"2":{"241":1}}],["接收的消息",{"2":{"238":1}}],["接受两种类型的定时任务表达式",{"2":{"141":1}}],["接上面的代码",{"2":{"114":1}}],["接口返回的数据将和牌组本身配置的",{"2":{"64":1}}],["接口应当返回一个",{"2":{"63":1}}],["接口要求",{"0":{"63":1}}],["接口",{"2":{"62":1}}],["成长值可以是负数",{"2":{"615":1}}],["成为开发者后你即可建立一个应用并获取",{"2":{"469":1}}],["成功时失去理智",{"2":{"746":1,"751":1}}],["成功时理智损失",{"2":{"608":1,"610":1}}],["成功度",{"2":{"715":1}}],["成功1",{"2":{"711":1}}],["成功11",{"2":{"635":1}}],["成功0",{"2":{"711":1}}],["成功和失败可分别简写为",{"2":{"678":1}}],["成功|失败",{"2":{"678":1}}],["成功4",{"2":{"635":1}}],["成功2",{"2":{"635":1}}],["成功数加",{"2":{"635":1}}],["成功线默认为",{"2":{"635":1}}],["成功线",{"2":{"635":1,"711":2}}],["成功率",{"2":{"619":3}}],["成功率为$",{"2":{"134":1}}],["成功成长值",{"2":{"615":2}}],["成功连接后即可使用",{"2":{"260":1,"518":1,"524":1}}],["成功注入后",{"2":{"258":1}}],["成功滑条后",{"2":{"242":1}}],["成功",{"2":{"136":2,"371":2,"596":1,"599":1,"600":1,"602":1}}],["成功判定",{"2":{"136":1}}],["成功获取后进行合并并去重",{"2":{"64":1}}],["成员",{"2":{"105":1,"106":1,"107":1,"108":1,"109":1,"110":1}}],["煤气灯",{"2":{"102":2}}],["村规的",{"2":{"101":1}}],["输入以下命令",{"2":{"539":2}}],["输入机器人的账号名",{"2":{"535":1}}],["输入机器人的显示名",{"2":{"535":1}}],["输入指令",{"2":{"535":1}}],["输入账号",{"2":{"521":1}}],["输入正确的账号密码",{"2":{"244":1}}],["输入",{"2":{"98":2,"256":2,"309":1,"521":1,"723":1}}],["输出游戏结果",{"2":{"84":1}}],["输出变量",{"2":{"78":1}}],["输出最后一个语句的结果",{"2":{"77":1}}],["输出文本",{"2":{"73":1}}],["触发快捷指令",{"2":{"709":1}}],["触发骰子的回应了",{"2":{"708":1}}],["触发该回复项",{"2":{"420":1}}],["触发机制多样",{"2":{"412":1,"724":1}}],["触发敏感词拦截",{"2":{"327":1}}],["触发某些自动规则时",{"2":{"327":1}}],["触发方式",{"2":{"320":1}}],["触发位置为群还是私聊",{"2":{"172":1}}],["触发的平台",{"2":{"172":1}}],["触发消息的文本",{"2":{"172":1}}],["触发者会收到",{"2":{"95":3}}],["触发条件",{"0":{"71":1},"1":{"72":1,"73":1,"74":1}}],["声明和注册扩展的代码部分已省略",{"2":{"94":1}}],["设备上",{"2":{"642":1}}],["设备请使用",{"2":{"538":1}}],["设备的命令行工具",{"2":{"262":1}}],["设备选",{"2":{"241":1}}],["设定临时属性",{"0":{"757":1},"2":{"757":1}}],["设定自己的先攻值",{"2":{"756":1}}],["设定先攻值",{"0":{"756":1}}],["设定默认值",{"2":{"711":1}}],["设定默认骰子面数",{"0":{"648":1},"2":{"746":1}}],["设定欢迎语",{"2":{"707":1}}],["设定个人专属默认骰子面数",{"2":{"648":1}}],["设定群内默认骰子面数",{"2":{"648":1}}],["设定游戏系统",{"0":{"648":1}}],["设定房规",{"0":{"620":1},"2":{"746":1}}],["设定计算表达式",{"0":{"591":1}}],["设定属性值",{"0":{"589":1}}],["设定",{"2":{"239":1,"513":1}}],["设定当前",{"2":{"94":1,"103":1}}],["设置自动名片",{"2":{"747":1}}],["设置和修改角色卡属性",{"2":{"747":1}}],["设置法术位",{"2":{"672":1}}],["设置指定属性",{"2":{"665":1}}],["设置群内骰子面数为",{"2":{"648":2}}],["设置群内骰子面数为100",{"2":{"626":1}}],["设置群内骰子面数为20",{"2":{"626":1}}],["设置群内骰子面数",{"2":{"626":1}}],["设置各个扩展及其指令的默认开启状态",{"2":{"625":1}}],["设置房规",{"0":{"617":1},"1":{"618":1,"619":1,"620":1},"2":{"739":1}}],["设置中",{"2":{"521":1}}],["设置回复项",{"0":{"418":1},"1":{"419":1,"420":1,"421":1,"422":1,"423":1}}],["设置白名单见",{"2":{"358":1}}],["设置为",{"2":{"334":1}}],["设置的比例",{"2":{"328":1}}],["设置的选项未生效",{"2":{"61":1}}],["设置选项",{"2":{"328":1}}],["设置",{"2":{"265":1,"397":1,"420":1,"450":2,"672":1}}],["设置好名字和帮助信息",{"2":{"114":1}}],["设置当前群组的默认查询分组",{"2":{"643":1}}],["设置当前",{"2":{"94":1}}],["结束并获取日志",{"2":{"746":1}}],["结束当前的回合",{"2":{"660":1}}],["结束进程",{"2":{"241":1}}],["结尾",{"2":{"535":1}}],["结尾的包",{"2":{"257":1}}],["结尾的",{"2":{"242":1}}],["结语",{"0":{"212":1,"234":1}}],["结构与收到消息的",{"2":{"94":1,"104":1}}],["结果为",{"2":{"596":1,"600":1,"669":1}}],["结果会在这些文本中",{"2":{"422":1}}],["结果有两行文案",{"2":{"363":1}}],["结果中调用变量",{"2":{"77":1}}],["结果",{"2":{"70":1,"371":6,"418":1}}],["规定的同义词等价",{"2":{"582":1}}],["规则骰点",{"0":{"711":1},"2":{"740":1}}],["规则支持",{"0":{"710":1},"1":{"711":1,"712":1,"713":1,"714":1,"715":1}}],["规则支持列表",{"0":{"572":1}}],["规则名",{"2":{"648":1,"734":1}}],["规则中对",{"2":{"632":1}}],["规则中",{"2":{"631":1}}],["规则中切换",{"2":{"626":1}}],["规则中默认使用的同义词",{"2":{"581":1}}],["规则书",{"2":{"619":1}}],["规则有适当了解",{"2":{"584":1,"657":1}}],["规则来说",{"2":{"147":1}}],["规则的索引",{"2":{"738":1}}],["规则的一系列资料",{"2":{"642":1}}],["规则的同义词可在骰子启动后",{"2":{"583":1}}],["规则的同义词",{"2":{"583":1}}],["规则的自动群名片格式",{"2":{"146":1}}],["规则的属性同义词",{"2":{"146":1}}],["规则的二级属性计算公式",{"2":{"146":1}}],["规则的角色卡属性展示顺序",{"2":{"146":1}}],["规则的角色卡",{"2":{"146":1}}],["规则自己的技能默认值",{"2":{"146":1}}],["规则提供以下功能",{"2":{"146":1}}],["规则模板",{"2":{"648":1}}],["规则模板能为",{"2":{"146":1}}],["规则模板是海豹核心中几种功能的整合发展",{"2":{"146":1}}],["规则模板是什么",{"0":{"146":1}}],["规则详细内容",{"2":{"143":1}}],["规则相关",{"0":{"103":1}}],["规则",{"0":{"136":1,"143":1},"1":{"144":1,"145":1,"146":1,"147":1},"2":{"94":1,"136":1,"143":3,"147":2,"619":1,"746":2}}],["规范",{"2":{"69":1}}],["否则计算最终骰点",{"2":{"636":1}}],["否则可能造成不可逆的数据损坏",{"2":{"573":1}}],["否则会发不出消息",{"2":{"521":1}}],["否则将导致挤占下线",{"2":{"513":1}}],["否则",{"2":{"417":1}}],["否则未保存的修改将丢失",{"2":{"363":1}}],["否则只有邀请者",{"2":{"340":1}}],["否则返回",{"2":{"94":1,"110":1}}],["否则海豹将无法正确解析",{"2":{"61":1}}],["之类的工具定时清理过高的内存占用",{"2":{"521":1}}],["之类的问题",{"2":{"514":1}}],["之前",{"2":{"464":1,"473":1,"530":1,"535":1}}],["之前的",{"2":{"341":3,"513":3}}],["之前的内置客户端",{"2":{"341":1,"513":1}}],["之间的",{"2":{"480":1}}],["之间",{"2":{"165":1}}],["之外",{"2":{"165":1,"625":1}}],["之后",{"2":{"718":1}}],["之后会自动填入代理",{"2":{"686":1}}],["之后同上",{"2":{"458":1}}],["之后双击那个文件夹",{"2":{"196":1}}],["之后用",{"2":{"134":1}}],["之后的仓库上执行",{"2":{"10":1}}],["之所以会有这么奇怪的说法是因为",{"2":{"94":2}}],["转译并返回",{"2":{"94":1}}],["经常掉线",{"0":{"438":1}}],["经常备份是避免数据损失的最佳手段",{"2":{"315":1}}],["经常会需要用到辅助的牌组",{"2":{"57":1}}],["经过一层",{"2":{"94":1}}],["似乎是从",{"2":{"110":1}}],["似乎目前没有",{"2":{"109":1}}],["似乎也只实现了",{"2":{"94":1}}],["似乎只实现了",{"2":{"94":1}}],["私骰",{"2":{"718":1}}],["私骰模式",{"0":{"339":1},"2":{"530":1}}],["私聊也被认为是一个特殊的群聊",{"2":{"641":1}}],["私聊回复",{"2":{"422":1}}],["私聊不回复的问题是在",{"2":{"227":1}}],["私聊中除了骰主",{"2":{"120":1}}],["私聊发送则在私聊回复",{"2":{"116":1,"117":1}}],["私聊",{"2":{"109":1,"368":1,"373":2,"427":1,"499":1}}],["私聊收到就私聊发送",{"2":{"94":1}}],["私信",{"2":{"94":1,"535":1}}],["私服",{"2":{"15":1}}],["顾名思义就是开放了源代码在公共平台的程序",{"2":{"186":1,"200":1}}],["顾名思义",{"2":{"94":1,"272":1,"307":1,"717":1}}],["类目下",{"2":{"426":1}}],["类型文件",{"2":{"152":1}}],["类型",{"2":{"118":1,"123":1}}],["类型配置项的值",{"2":{"94":6}}],["类型的配置项",{"2":{"94":6}}],["类型的触发者的该变量的值",{"2":{"94":2}}],["类型的",{"2":{"94":4}}],["类似前文删除代理",{"2":{"686":1}}],["类似地",{"2":{"582":1}}],["类似每日新闻",{"2":{"142":1}}],["类似暗骰",{"2":{"94":1}}],["类似",{"2":{"64":1,"516":1,"653":1}}],["参考说明",{"2":{"746":1}}],["参考",{"2":{"539":1,"747":1}}],["参考以下命令运行镜像",{"2":{"539":1}}],["参考下面图片中编辑使用范围与人员",{"2":{"504":1}}],["参考本节时请注意识别",{"2":{"94":1}}],["参见",{"2":{"270":1,"276":1,"288":1,"297":1,"308":1}}],["参阅",{"2":{"239":1,"739":1,"740":1,"741":1,"742":1,"743":1,"744":1}}],["参数的写法参考角色数据录入的",{"2":{"757":1}}],["参数与参数之间添加空格能保证海豹骰识别指令时准确无误",{"2":{"722":1}}],["参数提供指令所需要的信息",{"2":{"722":1}}],["参数说明同上",{"2":{"124":1}}],["参数3",{"2":{"119":1}}],["参数2",{"2":{"119":2}}],["参数1",{"2":{"119":2}}],["参数",{"0":{"141":1},"2":{"114":1,"239":1,"757":1}}],["参数为扩展对象",{"2":{"94":6}}],["参数为扩展对象和配置项的",{"2":{"94":7}}],["参数为",{"2":{"94":1}}],["参与项目",{"0":{"5":1},"1":{"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1}}],["捆绑大量流氓软件的安装包",{"2":{"93":1}}],["记得考虑这点",{"2":{"423":1}}],["记得随时保存自己的修改",{"2":{"418":1}}],["记得检查是否在输入法的中文输入状态",{"2":{"31":1}}],["记住这个端口号",{"2":{"259":1}}],["记住你所做的",{"2":{"221":1}}],["记住你做了什么",{"0":{"221":1}}],["记为",{"2":{"178":1}}],["记录日志",{"0":{"727":1}}],["记录",{"2":{"129":2}}],["记事本",{"2":{"93":1}}],["能在手机上搭建吗",{"0":{"697":1}}],["能远程直接访问",{"0":{"684":1}}],["能被任何",{"2":{"549":1}}],["能想到这个系列就最好了",{"2":{"214":1}}],["能够高效学习上手相关知识",{"2":{"203":1}}],["能够完成什么功能",{"2":{"20":1}}],["能更清晰地知道如何提问",{"2":{"193":1}}],["能让你更有效率地解决在部署",{"2":{"192":1,"212":1,"234":1}}],["能为你带来更好的编写体验",{"2":{"93":1}}],["扩展规则",{"0":{"734":1}}],["扩展提供的指令",{"2":{"700":1}}],["扩展关闭时",{"2":{"681":1}}],["扩展被关闭了",{"2":{"681":1}}],["扩展名",{"2":{"625":2}}],["扩展管理",{"0":{"625":1}}],["扩展指令可以被关闭",{"2":{"621":1}}],["扩展的文案介绍",{"2":{"367":1}}],["扩展的名称",{"2":{"159":1}}],["扩展功能",{"2":{"352":1,"385":1,"395":1,"404":1,"413":1,"642":1,"730":1}}],["扩展依赖",{"0":{"163":1},"1":{"164":1,"165":1,"166":1}}],["扩展需要在开头以固定格式注释的形式留下信息",{"2":{"159":1}}],["扩展头信息",{"2":{"152":1}}],["扩展文件",{"2":{"148":1}}],["扩展操作黑名单",{"2":{"127":1}}],["扩展机制可以看做是海豹的",{"2":{"112":1}}],["扩展机制",{"2":{"112":1}}],["扩展",{"2":{"92":1,"112":2,"135":3,"164":1,"386":1,"404":1,"625":1,"648":2,"706":1,"707":1,"708":1,"709":1,"721":1}}],["先攻",{"2":{"746":1}}],["先攻表达式",{"2":{"660":1}}],["先攻列表",{"0":{"660":1},"2":{"746":1}}],["先攻值支持以下三种写法",{"2":{"756":1}}],["先攻值部分支持以下四种写法",{"2":{"659":1}}],["先攻值",{"2":{"659":2,"756":1}}],["先攻设置",{"0":{"659":1}}],["先将扩展模块创建出来",{"2":{"117":1,"129":1,"134":1}}],["先了解海豹语",{"2":{"92":1}}],["先阅读本章的对应小节",{"2":{"91":1}}],["协议连接",{"2":{"519":1,"525":1}}],["协议连接到了我在腾讯云的服务器上",{"2":{"224":1}}],["协议发信",{"2":{"336":1}}],["协议的",{"2":{"285":1,"512":1,"516":1}}],["协议相关的开源项目",{"2":{"285":1,"516":1}}],["协议进行适配",{"2":{"254":1}}],["协议所适配的目标",{"2":{"253":1}}],["协议版本没对应",{"2":{"246":1}}],["协议版本和",{"2":{"246":1}}],["协议可用",{"2":{"241":1}}],["协议和",{"2":{"241":1}}],["协议上实现",{"2":{"96":1}}],["协议",{"0":{"253":1,"527":1},"2":{"90":1,"94":2,"253":1,"254":1,"686":2,"718":1,"720":1,"721":1,"722":2}}],["协议开源",{"2":{"4":1}}],["匿名>",{"2":{"90":1}}],["词库同时生效",{"2":{"356":1}}],["词库列表",{"2":{"356":1}}],["词库名称",{"2":{"90":1}}],["词表",{"2":{"90":1}}],["词条名",{"2":{"647":1}}],["词条查询指令",{"0":{"642":1},"1":{"643":1,"644":1,"645":1,"646":1}}],["词条查询的格式",{"2":{"68":1}}],["词条内容",{"2":{"68":1}}],["词条同义词",{"2":{"68":1}}],["词条c",{"2":{"66":2}}],["词条b",{"2":{"66":3}}],["词条",{"2":{"66":8,"68":2,"399":1}}],["词条a",{"2":{"66":4,"394":2}}],["元信息",{"2":{"90":1}}],["元信息表",{"2":{"48":1}}],["危险",{"2":{"236":2,"237":1,"253":1,"254":2,"355":1,"377":1,"414":1,"479":2,"512":1,"514":1,"718":1}}],["危险级词表",{"2":{"90":1}}],["危险级词汇",{"2":{"89":1,"90":2}}],["危害国家安全",{"2":{"15":1}}],["门前有两棵树",{"2":{"87":1}}],["随时保存修改",{"2":{"418":1}}],["随着终端关闭",{"2":{"541":1}}],["随着学习的不断深入",{"2":{"209":1}}],["随着大语言模型的兴起",{"2":{"207":1}}],["随",{"2":{"172":1}}],["随机打乱提供的元素",{"2":{"764":1}}],["随机排列顺序",{"0":{"764":1}}],["随机名字",{"0":{"762":1}}],["随机",{"0":{"763":1},"2":{"746":1}}],["随机延迟间隔",{"2":{"689":1}}],["随机生成带属性名的结果",{"2":{"658":1}}],["随机生成指定组数的待分配属性",{"2":{"658":1}}],["随机生成指定数量的调查员属性",{"2":{"616":1}}],["随机指令",{"2":{"569":1}}],["随机数",{"2":{"315":1,"701":1}}],["随机骰",{"2":{"178":1}}],["随机弃牌",{"2":{"145":1}}],["随机二次元图片",{"2":{"135":1}}],["随机猫猫图片",{"2":{"135":1}}],["随机抽取一个模组",{"2":{"765":1}}],["随机抽取",{"2":{"130":2,"363":1,"422":1}}],["随机看图",{"0":{"86":1}}],["随便写",{"2":{"123":2}}],["随后使用登录了目标账号的手机",{"2":{"514":1}}],["随后",{"2":{"457":1,"493":2,"539":2,"686":1}}],["随后弹出获取到的新数据与当前插件数据的对比",{"2":{"406":1}}],["随后弹出获取到的新牌堆与当前牌堆的对比",{"2":{"388":1}}],["随后会弹出确认框",{"2":{"363":1}}],["随后在你的手机中出现指纹调试弹框",{"2":{"262":1}}],["随后在",{"2":{"262":1,"265":1}}],["随后将",{"2":{"262":1}}],["随后再执行",{"2":{"259":1}}],["随后再打开",{"2":{"258":1}}],["随后找到模拟器供",{"2":{"259":1}}],["随后你可以在右下角看到重启按钮",{"2":{"257":1}}],["随后你需要再次重启模拟器",{"2":{"256":1}}],["随后向消息发送者发送回应",{"2":{"116":1}}],["随后作出响应",{"2":{"115":1}}],["随后按自定义回复的格式进行换行",{"2":{"82":1}}],["型文本",{"0":{"85":1}}],["同义词表",{"0":{"583":1}}],["同一概念的不同常用称呼等价",{"2":{"582":1}}],["同一个目录",{"2":{"460":1}}],["同一个目录内",{"2":{"224":1}}],["同一种形式在",{"2":{"47":1}}],["同样是迁移海豹的",{"2":{"577":1}}],["同样可以部署在",{"2":{"538":1}}],["同样地",{"2":{"206":1,"446":1}}],["同样的",{"2":{"138":1,"278":1}}],["同时还包括技能检定",{"2":{"717":1}}],["同时使用",{"2":{"709":1}}],["同时使用前缀和后缀匹配",{"0":{"85":1}}],["同时也包括操弄禁忌知识的人类势力",{"2":{"739":1}}],["同时也包括今日人品",{"2":{"700":1}}],["同时也是作为游戏核心的秘密组织的名字",{"2":{"739":1}}],["同时也做了很强的兼容性处理",{"2":{"570":1}}],["同时是牌堆名与牌组名",{"2":{"652":1}}],["同时会计算",{"2":{"616":1}}],["同时对于自定义回复功能进行了强化",{"2":{"551":1}}],["同时对程序进行修改",{"2":{"193":1,"202":1}}],["同时秉持",{"2":{"549":1}}],["同时更新前请做好备份",{"2":{"542":1}}],["同时强烈建议正在使用该方案的用户迁移",{"2":{"513":1}}],["同时在功能上非常受限",{"2":{"512":1}}],["同时在程序中修复它",{"2":{"193":1,"202":1}}],["同时部署海豹与",{"0":{"490":1},"1":{"491":1,"492":1,"493":1,"494":1,"495":1}}],["同时开启两个海豹实例",{"0":{"439":1},"1":{"440":1,"441":1}}],["同时注意",{"2":{"363":1}}],["同时清空用户该等级的计数",{"2":{"355":1}}],["同时一般包含时间信息以方便定位对应的事件",{"2":{"299":1}}],["同时你应当在下方看到一条类似于",{"2":{"242":1}}],["同时",{"2":{"191":1,"211":1,"232":1,"493":1,"499":1,"505":1,"512":1,"625":1}}],["同上",{"2":{"94":5,"172":1,"649":1,"672":1}}],["我收到了",{"2":{"706":1}}],["我机器上启动非常慢",{"0":{"696":1}}],["我该选择从哪里获取",{"2":{"538":1}}],["我该不会需要编写两条相同的回复项吧",{"2":{"419":1}}],["我希望在我的骰子进群或者被踢出时通知我",{"0":{"690":1}}],["我希望编写有一定逻辑的自定义回复",{"2":{"425":1}}],["我希望",{"2":{"419":1}}],["我希望让骰子能回复用户发送的早安",{"2":{"412":1}}],["我希望骰子能有多套回复词",{"2":{"381":1}}],["我希望能根据骰点结果显示不同的文案",{"2":{"381":1}}],["我希望写一个插件",{"2":{"223":1}}],["我想控制只有私聊才触发回复",{"2":{"425":1}}],["我想给我的小伙伴分享我的文案",{"2":{"365":1}}],["我想使用的",{"0":{"155":1}}],["我不想自己一条条修改文案",{"2":{"365":1}}],["我不希望我的骰子被用来跑粉红团",{"2":{"352":1}}],["我不会",{"0":{"170":1},"2":{"412":1}}],["我忘了",{"0":{"699":1},"2":{"347":1}}],["我是开发者",{"2":{"579":1}}],["我是骰主",{"2":{"579":1}}],["我是",{"0":{"698":1},"2":{"579":3}}],["我是一个示例",{"2":{"377":2}}],["我是通过分离部署连接的",{"2":{"227":1}}],["我是在哪里做了一些事情让我的骰子出现问题了",{"2":{"189":1,"217":1}}],["我使用的是",{"2":{"227":1}}],["我试过重启海豹",{"2":{"226":1}}],["我试过对我的海豹骰进行重启",{"2":{"190":1,"226":1}}],["我修改过的牌堆上传到海豹之后",{"2":{"225":1}}],["我修改的部分是这样的",{"2":{"224":1}}],["我发出指令但是骰子在私聊中没有回复我",{"2":{"225":1}}],["我直接把",{"2":{"224":1}}],["我怀疑是海豹的数据库文件",{"2":{"190":1}}],["我现在使用的是",{"2":{"190":1}}],["我在群里",{"2":{"224":1}}],["我在本地的",{"2":{"224":1}}],["我在使用",{"2":{"190":1}}],["我在什么时候做了这些事情让骰子出现问题了",{"2":{"189":1,"217":1}}],["我的骰子",{"2":{"720":1}}],["我的骰子有自己的人设",{"2":{"361":1}}],["我的骰子突然不响应指令了",{"2":{"223":1}}],["我的骰子怎么突然不回复了急急急",{"2":{"190":1}}],["我的朋友",{"2":{"137":1}}],["我怎么做才能去修复这个问题",{"2":{"189":1,"217":1}}],["我做了什么让我的骰子出现了问题",{"2":{"189":1,"217":1}}],["我能在项目中引用",{"0":{"154":1}}],["我连接不上主脑了",{"2":{"135":1}}],["我知道这里有更好的判断是否为数字的方法但是我不会",{"2":{"133":1}}],["我要怎么做",{"2":{"425":1}}],["我要",{"2":{"99":2}}],["我讲完了",{"2":{"87":1}}],["我赢了",{"2":{"84":1}}],["我们假设你的第一只海豹已经配置好了",{"2":{"693":1}}],["我们假定你熟悉",{"2":{"157":1}}],["我们假定你了解如何使用前端工具链",{"2":{"148":1}}],["我们假定你了解海豹变量机制和正则表达式",{"2":{"69":1}}],["我们假定你已对",{"2":{"584":1,"657":1}}],["我们假定你已经阅读了自定义回复编写的",{"2":{"69":1}}],["我们假定你已了解",{"2":{"65":1,"90":1}}],["我们认为",{"2":{"622":1}}],["我们认为这种扩展有益于减少编写者的负担",{"2":{"37":1}}],["我们决定不将列表放在手册中",{"2":{"583":1}}],["我们在选择同义词时遵循以下几条原则",{"2":{"582":1}}],["我们期待这样的指令实际只录入一条属性",{"2":{"582":1}}],["我们仍推荐适当使用空格",{"2":{"548":1}}],["我们无法得知具体的检测细节",{"2":{"512":1}}],["我们提供了通过",{"2":{"465":1,"536":1}}],["我们可以看到默认置入的",{"2":{"395":1}}],["我们可以看见有名为",{"2":{"386":1}}],["我们可以看见",{"2":{"364":1}}],["我们可以通过一定方式来隐藏这些项",{"2":{"57":1}}],["我们以",{"2":{"363":1}}],["我们第一个打开的程序通常就是",{"2":{"302":1}}],["我们日常使用的程序通常使用图形用户界面",{"2":{"302":1}}],["我们知道",{"2":{"272":1,"582":1}}],["我们不建议任何用户再使用此方式部署",{"2":{"513":1}}],["我们不对信息的及时性做任何保证",{"2":{"239":1}}],["我们不推荐任何用户再使用此方案连接",{"2":{"236":1}}],["我们不希望你就此放弃",{"2":{"204":1}}],["我们觉得",{"2":{"214":1}}],["我们很可能遇到用于解释新概念的描述中",{"2":{"209":1}}],["我们尽力提供了深度恰到好处的知识",{"2":{"206":1}}],["我们的第一反应往往是去搜索引擎寻求答案",{"2":{"206":1}}],["我们撰写了本篇文档",{"2":{"204":1}}],["我们也不希望你放弃自己思考的权利",{"2":{"204":1}}],["我们也非常建议你系统地学习它们",{"2":{"31":1}}],["我们也非常推荐你尝试",{"2":{"30":1}}],["我们非常建议你使用从官网获取的正式版海豹",{"2":{"538":1}}],["我们非常建议你先自行学习",{"2":{"537":1}}],["我们非常建议你在扩展功能的编写中",{"2":{"92":1}}],["我们非常能理解你以及问出这些问题的用户的心情",{"2":{"190":1}}],["我们没有资格教屏幕前的你如何做人",{"2":{"185":1,"214":1}}],["我们更推荐其他的分离部署方案",{"2":{"513":1}}],["我们更推荐使用",{"2":{"161":1}}],["我们更建议你使用",{"2":{"72":1}}],["我们已经写了一个比较完善且有详细注释的示例",{"2":{"147":1}}],["我们已经了解了一些简单的回复编写",{"2":{"70":1}}],["我们使用",{"2":{"137":1}}],["我们需要获取作为海豹名字的参数",{"2":{"116":1}}],["我们通常需要在对应格式的文件进行编写",{"2":{"93":1}}],["我们建议",{"2":{"91":1}}],["我们建议你读完整段再点击链接跳转到对应内容",{"2":{"16":1}}],["我们平局了",{"2":{"84":1}}],["我们先给",{"2":{"79":1}}],["我们为牌堆提供了配置更新链接的机制",{"2":{"58":1}}],["我们希望你如果真的非常需要加入功能",{"2":{"193":1,"202":1}}],["我们希望在骰主仅安装了",{"2":{"164":1}}],["我们希望牌堆内容能够自动更新",{"2":{"62":1}}],["我们希望",{"2":{"48":1}}],["我们从编写一个最简单的牌堆开始",{"2":{"48":1}}],["我们将",{"2":{"582":1}}],["我们将简单介绍",{"2":{"31":1}}],["我们将本手册的所有内容按照从零开始到深入定制的操作顺序重新排列成了本节的内容",{"2":{"16":1}}],["我们推荐你较为完整地了解海豹核心提供的各种指令",{"2":{"747":1}}],["我们推荐你简单浏览一遍各种指令",{"2":{"20":1}}],["我们推荐如下",{"2":{"513":1}}],["我们推荐使用",{"2":{"513":1}}],["我们推荐直接回滚到备份文件的状态",{"2":{"459":1}}],["我们推荐采用这种方式",{"2":{"37":1}}],["我们推荐新用户按此顺序阅读手册",{"2":{"16":1}}],["我们会尽可能满足你的需求",{"2":{"18":1}}],["我们还是建议在",{"2":{"7":1}}],["我们都非常欢迎你参与海豹的开发",{"2":{"5":1}}],["啊",{"2":{"84":3}}],["实名注册后",{"2":{"501":1}}],["实质上以",{"2":{"512":1}}],["实质上就是在与海豹的",{"2":{"307":1}}],["实质上没有太大区别",{"2":{"81":1}}],["实例无法访问",{"2":{"262":1}}],["实体手机获取",{"2":{"254":1}}],["实现的",{"2":{"522":1}}],["实现某些特定的功能",{"2":{"287":1,"519":1}}],["实现劫持",{"2":{"254":1}}],["实现任意定时功能",{"2":{"142":1}}],["实践永远是学习的最佳方法",{"2":{"211":1}}],["实践学习",{"0":{"208":1},"1":{"209":1,"210":1,"211":1}}],["实在是无法自己解决",{"2":{"190":1}}],["实际上只有一条属性",{"2":{"582":1}}],["实际上没有差别",{"2":{"84":1}}],["实际内容为",{"2":{"373":1}}],["实际发送内容为前缀",{"2":{"368":1}}],["实际测试",{"2":{"183":1}}],["实际被唤起时的",{"2":{"141":1}}],["布尔类型",{"2":{"118":2,"173":1}}],["布尔值",{"2":{"33":1,"38":1,"45":1}}],["布",{"2":{"84":6}}],["剪刀",{"2":{"84":6}}],["石头剪刀布内在这里采用了第一种",{"2":{"84":1}}],["石头",{"2":{"84":6}}],["令人理智崩溃",{"2":{"584":1}}],["令",{"2":{"84":1}}],["选3个最大的",{"2":{"628":2}}],["选中后会多出一个",{"2":{"364":1}}],["选中的文件就是要找的文件",{"2":{"259":1}}],["选中",{"2":{"258":1}}],["选中牌堆文件和",{"2":{"56":1}}],["选择组成的最好结果或最坏结果",{"2":{"631":1}}],["选择账号类型",{"2":{"514":1}}],["选择任一方式",{"2":{"493":1}}],["选择编译文件输出位置",{"2":{"479":1}}],["选择版本",{"2":{"479":1}}],["选择要构建的版本进行编译",{"2":{"479":1}}],["选择你希望海豹拥有的权限",{"2":{"475":1}}],["选择右上角的设置图标",{"2":{"455":1}}],["选择右上角小齿轮",{"2":{"441":1}}],["选择海豹核心任务卡片右上角的三个点",{"2":{"451":1}}],["选择获取的插件文件",{"2":{"405":1}}],["选择分组和相应文档后",{"2":{"396":1}}],["选择本地修补",{"2":{"263":1}}],["选择已经下载的",{"2":{"263":1}}],["选择",{"2":{"242":1,"253":1,"258":1,"260":1,"262":1,"441":1,"449":1,"450":3,"451":1,"465":1,"470":1,"474":1,"482":1,"502":1,"527":1,"533":1,"536":1}}],["选择简易配置",{"2":{"241":1}}],["选择放到相较于上一条的后面",{"2":{"83":1}}],["选项来指定目录挂载",{"2":{"539":1}}],["选项卡中的",{"2":{"466":1}}],["选项中选中",{"2":{"466":1}}],["选项中",{"2":{"362":1}}],["选项",{"2":{"130":1,"256":1,"323":1,"352":1,"385":1,"395":1,"404":1,"413":1,"417":1,"447":1}}],["好友越多占用越高",{"2":{"522":1}}],["好友邀请",{"0":{"334":1},"2":{"333":1,"334":1}}],["好友列表",{"2":{"238":1}}],["好友",{"2":{"238":1}}],["好好规划一下换行符",{"2":{"82":1}}],["好耶",{"2":{"35":1}}],["就称本轮暴击",{"2":{"636":1}}],["就只剩下",{"2":{"569":1}}],["就能快速分享相关设置了",{"2":{"365":1}}],["就是指令参数",{"2":{"722":1}}],["就是指令名",{"2":{"721":1}}],["就是",{"2":{"721":1}}],["就是不用担心被风控",{"2":{"499":1}}],["就是修好的数据库了",{"2":{"460":1}}],["就是通过网络生成",{"2":{"307":1}}],["就是把程序的源代码放在公共平台",{"2":{"186":1,"200":1}}],["就像是地址",{"2":{"278":1}}],["就填上吧",{"2":{"238":1}}],["就新建了一个文件夹",{"2":{"196":1}}],["就无法正常运行",{"2":{"196":1}}],["就把这些问题完整地说出来",{"2":{"190":1}}],["就会更简单",{"2":{"187":1,"201":1}}],["就作为一个开源程序活动在大家的视线中",{"2":{"186":1,"200":1}}],["就可以完成指令配置",{"2":{"503":1}}],["就可以完成了",{"2":{"116":1}}],["就可以在海豹中使用了",{"2":{"170":1}}],["就不存在了",{"2":{"145":1}}],["就好比你在商场门口想要把随身物品存进暂存柜中",{"2":{"128":1}}],["就开始判断",{"2":{"84":1}}],["就最好多做几次实验",{"2":{"82":1}}],["就很足够了",{"2":{"20":1}}],["于是你又看了一眼日志是什么意思",{"2":{"210":1}}],["于是你在",{"2":{"210":1}}],["于是你搜索引擎中开始查找",{"2":{"209":1}}],["于是你访问了教程开头的链接",{"2":{"209":1}}],["于内部写入",{"2":{"82":1}}],["于言诺",{"2":{"3":1,"652":1}}],["赋值为",{"2":{"79":1}}],["构成",{"2":{"78":1}}],["构建",{"2":{"5":1}}],["第",{"2":{"704":1}}],["第三方方案的可用性也可能会随时间推移而存在变化",{"2":{"512":1}}],["第三方机器人隐私保护指引",{"2":{"504":1}}],["第三步",{"2":{"117":1,"449":1}}],["第三个参数是你要发送的文本",{"2":{"116":1}}],["第三个被",{"2":{"98":1}}],["第三段开始变形了",{"2":{"87":1}}],["第三档猫好感",{"2":{"81":1}}],["第六档猫好感",{"2":{"81":1}}],["第五档猫好感",{"2":{"81":1}}],["第四档猫好感",{"2":{"81":1}}],["第二轮中",{"2":{"636":1}}],["第二步",{"2":{"114":1,"449":1}}],["第二段",{"2":{"87":1}}],["第二档猫好感",{"2":{"81":1}}],["第二个",{"2":{"78":1}}],["第一个参数为",{"2":{"722":1}}],["第一个自定义回复",{"0":{"70":1}}],["第一次接入",{"2":{"474":1}}],["第一步",{"2":{"114":1}}],["第一段",{"2":{"87":1}}],["第一档猫好感",{"2":{"81":1}}],["既不等于",{"2":{"78":1}}],["赞美木落",{"2":{"78":2}}],["若伤害小于血量上限",{"2":{"665":1}}],["若伤害大于等于血量上限",{"2":{"665":1}}],["若临时生命不足以抵挡伤害",{"2":{"665":1}}],["若使用了奖励骰则不能获得技能成长标记",{"2":{"613":1}}],["若有新版本",{"2":{"543":1}}],["若",{"2":{"522":1}}],["若你遇见这种情况",{"2":{"474":1}}],["若你不确定具体应该添加哪些权限",{"2":{"466":1,"471":1,"475":1}}],["若你的文本需要换行",{"2":{"66":1}}],["若没有快捷指令则调用",{"2":{"374":1}}],["若设置为",{"2":{"334":1}}],["若重复",{"2":{"245":1}}],["若存在则返回",{"2":{"94":1}}],["若一切正常则为",{"2":{"94":1}}],["若为好友",{"2":{"94":1}}],["若通过则",{"2":{"79":1}}],["若想在结果中调用变量",{"2":{"77":1}}],["例",{"2":{"77":1}}],["例如伤害值",{"2":{"747":1}}],["例如必须使用指令使骰子退群",{"2":{"718":1}}],["例如当",{"2":{"681":1}}],["例如虚假生命",{"2":{"670":1}}],["例如两位调查员相互对抗时",{"2":{"603":1}}],["例如将",{"2":{"497":1}}],["例如修改骰子进群的文案",{"2":{"375":1}}],["例如标签页",{"2":{"309":1}}],["例如在分离部署",{"2":{"278":1}}],["例如允许自启动",{"2":{"264":1}}],["例如本手册中的",{"2":{"206":1}}],["例如希望加入一个新的接口",{"2":{"192":1,"233":1}}],["例如这个手册",{"2":{"189":1}}],["例如我们给上面的",{"2":{"166":1}}],["例如",{"2":{"62":1,"115":1,"116":2,"117":1,"118":1,"123":1,"141":2,"158":1,"164":1,"165":1,"167":1,"173":1,"174":1,"206":1,"209":1,"210":1,"225":1,"262":1,"265":1,"278":1,"292":1,"302":1,"337":1,"338":1,"349":1,"363":1,"376":1,"377":1,"480":1,"497":1,"503":1,"591":1,"721":2,"722":1,"735":1,"751":1}}],["括上",{"2":{"77":1}}],["括起来的部分会被作为代码执行",{"2":{"77":1}}],["^",{"2":{"73":1,"176":2}}],["^购买",{"2":{"73":1}}],["猫粮",{"2":{"73":1}}],["捕捉某人",{"2":{"134":2}}],["捕捉海豹",{"2":{"53":2,"54":2}}],["捕获组命中的字符串",{"2":{"73":1}}],["购买了猫粮",{"2":{"73":1}}],["购买了",{"2":{"73":1}}],["\\treturn",{"2":{"72":1}}],["\\tvb",{"2":{"72":1}}],["\\tva",{"2":{"72":1}}],["比较两个值时",{"2":{"173":1}}],["比较定义在",{"2":{"72":1}}],["比如说",{"2":{"594":1}}],["比如基于",{"2":{"512":1}}],["比如你的自定义回复文件",{"2":{"430":1}}],["比如禁言骰子触发了黑名单事件",{"2":{"328":1}}],["比如写一个自定义回复",{"2":{"209":1}}],["比如下文里写到的那些",{"2":{"205":1}}],["比如一些",{"2":{"170":1}}],["比如上面示例中的",{"2":{"165":1}}],["比如模板项目中就为你引入了常用的",{"2":{"154":1}}],["比如核心代码只有一行的",{"2":{"135":1}}],["比如",{"2":{"55":1,"135":1,"165":1,"187":1,"201":1,"686":1}}],["比如应该为",{"2":{"31":1}}],["模糊搜索指定牌组",{"2":{"652":1}}],["模糊匹配可能出现感觉能匹配上",{"2":{"72":1}}],["模糊匹配未命中",{"2":{"72":1}}],["模糊匹配将比较收到的消息与指定文本",{"2":{"72":1}}],["模糊匹配",{"0":{"72":1},"2":{"420":1}}],["模版",{"2":{"504":1}}],["模板的等价写法是",{"2":{"735":1}}],["模板",{"2":{"504":1,"665":1,"735":1}}],["模板项目仓库",{"2":{"149":2}}],["模板项目",{"2":{"148":1}}],["模块有三个前提",{"2":{"264":1}}],["模块生效",{"2":{"256":1}}],["模块",{"0":{"257":1},"2":{"256":1,"257":1}}],["模拟器中使用",{"2":{"254":1}}],["模式",{"2":{"427":1}}],["模式下",{"2":{"319":2}}],["模式2启用",{"2":{"26":1}}],["模式2",{"2":{"26":2}}],["模式1启用",{"2":{"26":1}}],["模式1",{"2":{"26":2}}],["返回值为空值",{"2":{"126":1}}],["返回值为一个数组",{"2":{"125":1}}],["返回值",{"2":{"119":1}}],["返回值是一个",{"2":{"118":1}}],["返回执行结果",{"2":{"115":1}}],["返回对象",{"2":{"110":1}}],["返回骰子",{"2":{"104":1}}],["返回",{"2":{"98":2,"99":2,"102":2,"110":1}}],["返回被解码的",{"2":{"94":1}}],["返回一个",{"2":{"94":1,"104":1}}],["返回一个空白的",{"2":{"94":1,"104":1}}],["返回一个数组",{"2":{"94":2}}],["返回内容可以嵌入",{"2":{"70":1}}],["返回结果示例如下",{"2":{"63":1}}],["码是酷",{"2":{"268":1}}],["码列表",{"2":{"70":1}}],["码文档见",{"2":{"70":1}}],["码",{"0":{"268":1,"375":1},"2":{"70":2,"73":2,"116":1,"361":1}}],["码和海豹码",{"2":{"55":1}}],["嵌入式系统",{"2":{"286":1}}],["嵌入脚本语言",{"0":{"76":1}}],["嵌入",{"2":{"70":1}}],["页码",{"2":{"642":1,"765":4}}],["页大小",{"2":{"642":1}}],["页添加指令",{"2":{"503":1}}],["页后",{"2":{"257":1}}],["页下载模块",{"2":{"257":1}}],["页面左上角的开关",{"2":{"413":1}}],["页面中",{"2":{"509":1}}],["页面中资料卡设置一栏中",{"2":{"508":1}}],["页面中点击",{"2":{"504":1}}],["页面中也提供了相应的帮助信息",{"2":{"356":1}}],["页面中的脚本语言被人所熟知",{"2":{"158":1}}],["页面",{"2":{"285":1,"287":1,"294":1,"315":1,"501":1,"503":1,"504":1,"505":1,"532":2,"690":1}}],["页面就像一个讨论区",{"2":{"206":1}}],["页",{"2":{"70":1,"405":1,"482":1,"504":1,"642":1}}],["栏选中",{"2":{"69":1}}],["该链接仍然可以使用",{"2":{"729":1}}],["该骰发出的指令和消息",{"2":{"688":1}}],["该骰发指令",{"2":{"688":1}}],["该解锁码仅能通过",{"2":{"622":1}}],["该方案也是前言中提到的非官方机器人",{"2":{"514":1}}],["该方案可用性由",{"2":{"512":1}}],["该方法会在未来逐渐失效",{"2":{"237":1}}],["该",{"2":{"512":1}}],["该审核需要将对应企业的银行卡号上传至腾讯审核",{"2":{"507":1}}],["该权限允许",{"2":{"488":1}}],["该指令用于设置与海豹连接的端口",{"2":{"486":1}}],["该回复项就会发送几条消息",{"2":{"422":1}}],["该版本",{"2":{"246":1}}],["该环境目前支持了",{"2":{"158":1}}],["该条件得到满足",{"2":{"73":1}}],["该规范与其他规范在个别扩展语法上存在细微差别",{"2":{"69":1}}],["该牌组的项",{"2":{"61":1}}],["该牌组是否可见",{"2":{"61":1}}],["并有诸多扩展写法",{"2":{"746":1}}],["并有相关配置",{"2":{"648":1}}],["并未提供公开的机器人接口",{"2":{"718":1}}],["并开始下一回合",{"2":{"660":1}}],["并自动开启",{"2":{"648":2}}],["并自动开启对应扩展",{"2":{"626":2}}],["并支持使用此指令进行查询",{"2":{"642":1}}],["并绑定到当前群聊",{"2":{"641":1}}],["并可以单独开关",{"2":{"625":1}}],["并给自己重新添加",{"2":{"622":1}}],["并给予其足够的运行权限",{"2":{"539":1}}],["并给出成功率",{"2":{"134":1}}],["并不受到",{"2":{"514":1}}],["并不受到官方支持",{"2":{"512":1}}],["并不会出现某些功能无法使用的差异",{"2":{"162":1}}],["并通过端口映射将容器端口暴露在宿主机",{"2":{"496":1}}],["并填入以下内容",{"2":{"491":1}}],["并删除海豹",{"2":{"474":1}}],["并删除无效数据",{"2":{"460":1}}],["并复制保存",{"2":{"531":1}}],["并复制",{"2":{"473":1}}],["并改名回",{"2":{"460":1}}],["并选择你想要海豹被部署到的工作区后点击",{"2":{"530":1}}],["并选择开发应用",{"2":{"469":1}}],["并选择",{"2":{"451":1}}],["并进入",{"2":{"450":1}}],["并点击锁图标",{"2":{"448":1,"449":1}}],["并以文本的方式存储或传输",{"2":{"301":1}}],["并重启",{"2":{"263":1}}],["并回车",{"2":{"262":1}}],["并对外开放",{"2":{"261":1}}],["并长按",{"2":{"258":1}}],["并实现接入",{"2":{"223":1}}],["并按照手册和自己的需求填写配置文件",{"2":{"517":1}}],["并按照下文中的指导",{"2":{"221":1}}],["并按照配置进行编译",{"2":{"152":1}}],["并附加开源许可协议的行为",{"2":{"200":1}}],["并且需要数据互相同步",{"2":{"748":1}}],["并且不在这个群聊使用",{"2":{"747":1}}],["并且开始记录",{"2":{"727":1}}],["并且能配合海豹核心独特的变量系统使用",{"2":{"724":1}}],["并且能配合海豹核心的变量系统与牌堆功能使用",{"2":{"412":1}}],["并且输入密码登录",{"2":{"685":1}}],["并且使用指定个数",{"2":{"598":1}}],["并且支持同时连接不同平台",{"2":{"571":1}}],["并且更新后需要重新安装登录框架",{"2":{"519":1,"522":1}}],["并且插件将会开启一个端口",{"2":{"481":1}}],["并且确保你的硬盘有适当的空闲空间",{"2":{"459":1}}],["并且很难处理",{"2":{"365":1}}],["并且已经有其他用户向开发者请求加入此功能",{"2":{"206":1}}],["并且存在",{"2":{"206":2}}],["并且你的海豹是公骰",{"2":{"199":1}}],["并且在未来很长一段时间里仍将是",{"2":{"205":1}}],["并且在",{"2":{"193":1,"202":1}}],["并且",{"2":{"192":1,"233":1,"272":1}}],["并且协助你排查问题",{"2":{"190":1}}],["并且自己解决了问题",{"2":{"189":1}}],["并且为表达式中不同元素给出解释",{"2":{"69":1}}],["并没有任何实际作用",{"2":{"158":1,"159":1}}],["并设置为自己的扩展的名字",{"2":{"149":1}}],["并把规则中的动作编写成指令",{"2":{"147":1}}],["并掷骰得出结果",{"2":{"130":1}}],["并储存在几个参数中",{"2":{"117":1}}],["并将其安装到你的设备上",{"2":{"446":1}}],["并将",{"2":{"115":1,"116":1,"117":1,"491":1}}],["并返回一个获取链接",{"2":{"727":1}}],["并返回",{"2":{"94":1}}],["并记录场次",{"2":{"84":1}}],["并在下述海豹连接",{"2":{"491":1}}],["并在",{"2":{"78":1}}],["并允许自启动",{"2":{"450":1}}],["并允许",{"2":{"37":1,"453":1}}],["节俭",{"2":{"653":1}}],["节",{"2":{"69":1,"711":1,"712":1}}],["节选",{"0":{"67":1}}],["原则上不允许机器人账号",{"2":{"549":1}}],["原理是利用",{"2":{"261":1}}],["原",{"2":{"237":1}}],["原本有图形化用户界面的",{"2":{"306":1}}],["原本的文件上传到海豹后",{"2":{"224":1}}],["原本是梨骰用于",{"2":{"68":1}}],["原因",{"2":{"119":1,"133":1,"373":1,"623":1,"627":1,"703":1}}],["原因见",{"2":{"12":1}}],["原始格式的",{"2":{"172":2}}],["原始指令内容",{"2":{"114":1}}],["原始信息",{"2":{"109":1}}],["测试50",{"2":{"570":1}}],["测试你提交的自测报告中",{"2":{"504":1}}],["测试词库",{"2":{"90":1}}],["测试",{"2":{"68":2,"136":2,"570":1}}],["因",{"2":{"339":1}}],["因拍摄角度而看不到部分信息",{"2":{"187":1,"201":1}}],["因为",{"2":{"693":1}}],["因为多个文本匹配度相近",{"2":{"644":1}}],["因为在实际交互中",{"2":{"283":1,"290":1,"292":1,"302":1,"313":1}}],["因为你从没在电脑上截屏过",{"2":{"210":1}}],["因为帮助文档中提供的信息都是服务于特定项目的",{"2":{"206":1}}],["因为摸到",{"2":{"145":1}}],["因为黑名单用户的消息会被过滤掉",{"2":{"120":1}}],["因为第一行的空换行也直接读取了",{"2":{"35":1}}],["因此每个骰子使用自定义回复的方法可能完全不同",{"2":{"724":1}}],["因此机器人只能使用第三方软件作为假用户接入",{"2":{"718":1}}],["因此没有列出最佳匹配条目的正文内容",{"2":{"644":1}}],["因此在跑团时",{"2":{"569":1}}],["因此在开始前",{"2":{"522":1}}],["因此在对应",{"2":{"82":1}}],["因此可能无法正常发送图片",{"2":{"496":1}}],["因此可以方便开发者与用户高效地共享信息",{"2":{"279":1}}],["因此本节中介绍的手段并不总是万无一失",{"2":{"446":1}}],["因此当你通过",{"2":{"307":1}}],["因此你的安卓手机版本必须超过安卓",{"2":{"261":1}}],["因此",{"2":{"196":1,"204":1,"205":2,"206":1,"207":2,"211":1,"221":1,"224":1,"225":2,"227":1,"230":1,"254":1,"292":1,"295":1,"491":1,"496":1,"512":1,"573":1,"582":1,"622":1,"718":1,"720":1}}],["因此移除时使用的是同一个函数",{"2":{"124":1}}],["因此作为前缀时可能导致将其识别为指令而非自定义回复的情况",{"2":{"73":1}}],["因此它常用来快速编写有大段文字的帮助文档",{"2":{"68":1}}],["列出房规",{"2":{"746":1}}],["列出角色卡",{"2":{"746":1}}],["列出角色卡所有属性",{"2":{"663":1}}],["列出数据",{"2":{"746":1}}],["列出该群的所有日志记录",{"2":{"730":1}}],["列出本群的所有日志记录",{"2":{"729":1}}],["列出高于指定数值的属性",{"2":{"663":1}}],["列出指定的属性数值",{"2":{"663":1}}],["列出当前装载的牌堆列表",{"2":{"652":1}}],["列出你所保存的所有角色",{"2":{"641":1}}],["列出所有可抽取的牌组列表",{"2":{"652":1}}],["列出所有内置或通过扩展加入的房规",{"2":{"619":1}}],["列出所有选项时",{"2":{"130":1}}],["列出可用房规",{"0":{"619":1}}],["列出属性",{"0":{"587":1,"663":1}}],["列出几个常用功能供参考",{"2":{"586":1}}],["列出的是海豹核心使用的",{"2":{"457":1}}],["列出目前所有选项",{"2":{"130":1}}],["列表",{"0":{"94":1,"332":1},"1":{"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1},"2":{"94":1,"129":1,"157":1,"330":1,"374":4}}],["列表中存在",{"2":{"206":2}}],["列表中",{"2":{"61":1}}],["列可以填写多个同义词",{"2":{"68":1}}],["豹子骰",{"2":{"578":1}}],["豹子骰之类",{"2":{"68":1}}],["豹语",{"2":{"92":1,"171":1}}],["豹语语法中",{"2":{"84":1}}],["豹骰",{"2":{"68":2,"578":1}}],["所述的",{"2":{"603":1}}],["所在的目录启动终端",{"2":{"539":2}}],["所提供的正式版也适合绝大多数用户使用",{"2":{"538":1}}],["所提到的指令是否都能正常工作",{"2":{"504":1}}],["所说",{"2":{"185":1}}],["所以还请各位选择自己信任的骰主",{"2":{"698":1}}],["所以不必担心暗骰会影响帐号安全",{"2":{"682":1}}],["所以不建议用户随意更新",{"2":{"519":1,"522":1}}],["所以需要将海豹数据也挂载到",{"2":{"491":1}}],["所以建议在骰子使用的低峰期进行重载",{"2":{"395":1}}],["所以会报错",{"2":{"183":1}}],["所以实际上这里并不会执行",{"2":{"121":1}}],["所以代码的执行效率会更慢",{"2":{"119":1}}],["所以请套一层",{"2":{"97":1}}],["所以",{"0":{"211":1},"2":{"82":1,"188":1,"191":1,"193":1,"202":1,"209":1,"210":1,"224":1,"232":1,"272":1,"278":2}}],["所以当形如",{"2":{"78":1}}],["所以它的结果会被输出",{"2":{"77":1}}],["所以你不必担心前缀对查询带来的影响",{"2":{"68":1}}],["所有阴谋论都是真的",{"2":{"740":1}}],["所有支持的途径参见目录",{"2":{"513":1}}],["所有含有云端内容的牌堆",{"2":{"389":1}}],["所有",{"2":{"187":1,"201":1}}],["所有自定义文案也均为可用变量",{"2":{"172":1}}],["所有变量均可以在",{"2":{"172":1}}],["所有变量在未被赋值时被调用的值都为",{"2":{"76":1}}],["所有需要发送每日新闻的群聊",{"2":{"142":1}}],["所有指令必须归属于某个扩展",{"2":{"112":1}}],["所有的自定义文案都可以嵌套使用",{"2":{"377":1}}],["所有的",{"2":{"7":1}}],["所属目录",{"2":{"68":1}}],["冷酷",{"2":{"67":1}}],["冷淡",{"2":{"67":1}}],["滥用权利",{"2":{"67":1}}],["武断",{"2":{"67":1}}],["挫折",{"2":{"67":1}}],["幼稚",{"2":{"67":1}}],["皇帝逆位",{"2":{"67":1}}],["纠纷",{"2":{"67":1}}],["贴近自然",{"2":{"67":1}}],["享乐",{"2":{"67":1}}],["困难侦查",{"2":{"603":1}}],["困难侦查+10",{"2":{"597":1,"600":1}}],["困难侦察",{"2":{"368":1}}],["困难成功",{"2":{"136":1,"595":2,"604":1,"605":2}}],["困难极难等保持原样",{"2":{"136":1}}],["困难",{"2":{"67":1,"136":1,"368":1,"597":1}}],["女皇逆位",{"2":{"67":1}}],["女祭司逆位",{"2":{"67":1}}],["单独设置某一环的法术位上限",{"2":{"672":1}}],["单词",{"2":{"652":1}}],["单个回复项的条件",{"2":{"417":1}}],["单行",{"2":{"374":1}}],["单条",{"2":{"371":2}}],["单项",{"2":{"369":1,"659":2}}],["单项结果文本",{"2":{"24":1,"368":3,"370":1,"373":2}}],["单位名称",{"2":{"660":1}}],["单位2",{"2":{"660":1}}],["单位1",{"2":{"660":1}}],["单位是秒",{"2":{"423":1}}],["单位是",{"2":{"350":1}}],["单位未知",{"2":{"96":1}}],["单击加号",{"2":{"263":1}}],["单击你刚刚传到模拟器里的文件",{"2":{"257":1}}],["单",{"0":{"161":1}}],["单人模组",{"0":{"87":1}}],["单相思",{"2":{"67":1}}],["锋芒外露",{"2":{"67":1}}],["自身技能",{"2":{"746":1}}],["自然",{"2":{"665":2}}],["自由分配模式",{"2":{"658":1}}],["自己的属性表达式",{"2":{"605":1}}],["自己与对手均使用相同属性",{"2":{"604":1}}],["自己搭建本地签名服务器",{"2":{"238":1}}],["自用之外",{"2":{"568":1}}],["自带的",{"2":{"550":1}}],["自测报告",{"2":{"504":4}}],["自启动",{"2":{"448":1}}],["自行修改",{"2":{"521":1}}],["自行搭建签名服务",{"2":{"238":1}}],["自行排查问题的参考步骤",{"2":{"189":1}}],["自近期用户量剧增后",{"2":{"214":1}}],["自动名片",{"2":{"746":1}}],["自动群名片",{"0":{"732":1},"1":{"733":1,"734":1,"735":1,"736":1}}],["自动转换为短画线",{"2":{"723":1}}],["自动优先消耗",{"2":{"665":1}}],["自动更新用户的群名片",{"2":{"732":1}}],["自动更新",{"0":{"543":1}}],["自动为容器构建了一个子网",{"2":{"496":1}}],["自动管理",{"2":{"450":1}}],["自动退群将会按批次执行",{"2":{"350":1}}],["自动退出不活跃群组",{"0":{"350":1}}],["自动激活",{"2":{"333":1,"690":1}}],["自动添加",{"0":{"327":1}}],["自动清理时将保留创建时间在指定时间范围内的备份文件",{"2":{"319":1}}],["自动清理时将保留最新的指定数量的备份文件",{"2":{"319":1}}],["自动清理",{"0":{"318":1},"1":{"319":1,"320":1}}],["自动清理设置",{"2":{"315":1}}],["自动清理旧备份的相关设置",{"2":{"314":1}}],["自动备份后",{"2":{"320":2}}],["自动备份设置",{"2":{"315":1}}],["自动备份",{"0":{"317":1},"2":{"314":1}}],["自动修改群名片等",{"2":{"146":1}}],["自动补全",{"2":{"93":1}}],["自设规则",{"2":{"136":2}}],["自定义模板",{"0":{"735":1}}],["自定义骰点回执",{"2":{"430":1}}],["自定义工具",{"2":{"256":1}}],["自定义文案的本体",{"2":{"431":1}}],["自定义文案引用牌堆",{"0":{"378":1}}],["自定义文案组合",{"0":{"366":1},"1":{"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1,"374":1}}],["自定义文案",{"0":{"360":1},"1":{"361":1,"362":1,"363":1,"364":1,"365":1,"366":1,"367":1,"368":1,"369":1,"370":1,"371":1,"372":1,"373":1,"374":1,"375":1,"376":1,"377":1,"378":1,"379":1,"380":1,"381":1},"2":{"172":2,"362":1,"366":1,"701":1}}],["自定义序号必须大于等于",{"2":{"136":1}}],["自定义指令",{"0":{"113":1},"1":{"114":1,"115":1,"116":1,"117":1}}],["自定义",{"0":{"103":1,"136":1},"2":{"136":1}}],["自定义回复模块",{"2":{"625":1}}],["自定义回复要怎么抽取牌堆",{"2":{"425":1}}],["自定义回复引用牌堆",{"0":{"424":1,"654":1}}],["自定义回复仓库",{"2":{"416":1}}],["自定义回复功能是被关闭的",{"2":{"413":1}}],["自定义回复的形式自由",{"2":{"412":1}}],["自定义回复教程",{"2":{"209":1}}],["自定义回复和",{"2":{"199":1}}],["自定义回复中则采用",{"2":{"82":1}}],["自定义回复中的多行输出通常并不是",{"2":{"82":1}}],["自定义回复中分",{"2":{"70":1}}],["自定义回复",{"0":{"411":1,"650":1,"724":1},"1":{"412":1,"413":1,"414":1,"415":1,"416":1,"417":1,"418":1,"419":1,"420":1,"421":1,"422":1,"423":1,"424":1,"425":1,"651":1,"652":1,"653":1,"654":1,"655":1,"656":1},"2":{"25":1,"69":1,"70":2,"386":1,"412":2,"413":2,"414":1,"656":1,"718":1,"724":1}}],["自负",{"2":{"67":1}}],["自尊心太强",{"2":{"67":1}}],["洁癖",{"2":{"67":1}}],["目标",{"2":{"706":1}}],["目标依赖的版本号需要符合",{"2":{"165":1}}],["目标海豹版本",{"0":{"167":1},"2":{"159":1}}],["目录寻找日志的文件快照",{"2":{"729":1}}],["目录来提速",{"2":{"696":1}}],["目录替换这里面的",{"2":{"577":1}}],["目录发送到手机上",{"2":{"577":1}}],["目录以你习惯的任何方式打包",{"2":{"575":1}}],["目录中的内容",{"2":{"491":1,"575":1}}],["目录中复制出来",{"2":{"460":1}}],["目录分别挂载到",{"2":{"491":1}}],["目录分别挂载到海豹容器的",{"2":{"491":1}}],["目录",{"2":{"262":1,"274":2,"491":2,"492":1,"577":2}}],["目录后重新运行",{"2":{"242":1}}],["目录结构",{"0":{"152":1}}],["目录下的子目录名",{"2":{"642":1}}],["目录下的不同文件中被整理成词条",{"2":{"642":1}}],["目录下的图片资源",{"2":{"428":1}}],["目录下全部三个开关",{"2":{"464":1}}],["目录下找到所有的备份文件",{"2":{"459":1}}],["目录下",{"2":{"151":1,"315":1}}],["目光短浅",{"2":{"67":1}}],["目前有",{"2":{"569":1}}],["目前官方机器人只响应包含",{"2":{"505":1}}],["目前对接官方接口的骰子很多功能无法支持",{"2":{"499":1}}],["目前提供了三种匹配模式",{"2":{"419":1}}],["目前",{"2":{"240":1,"499":1,"504":1,"512":1,"625":1}}],["目前并不支持写注释",{"2":{"173":1}}],["目前支持",{"2":{"138":1}}],["目前的内容是从上古文档中直接迁移过来的",{"2":{"94":1}}],["目前海豹有三种更新方法",{"2":{"542":1}}],["目前海豹语并不支持",{"2":{"78":1}}],["目前海豹只支持在反引号中调用变量",{"2":{"77":1}}],["目前暂不考虑支持",{"2":{"66":1}}],["目前仅有",{"2":{"64":1}}],["目前尚未更新蓝绿修改器",{"2":{"2":1}}],["贪心",{"2":{"67":1}}],["挑剔",{"2":{"67":1}}],["爱情难有进展",{"2":{"67":1}}],["局面失控",{"2":{"67":1}}],["被",{"2":{"649":1}}],["被警告",{"2":{"623":1}}],["被官方予以警告",{"2":{"512":1}}],["被拆分为三个权限",{"2":{"448":1}}],["被禁言",{"2":{"333":1,"690":1}}],["被踢出群",{"2":{"333":1,"690":1}}],["被注释掉的",{"2":{"94":1}}],["被称为执行块",{"2":{"77":1}}],["被存储于变量",{"2":{"73":1}}],["被认为是相似",{"2":{"72":1}}],["被骗或失败",{"2":{"67":1}}],["被隐藏的项不会在",{"2":{"57":1}}],["方式",{"2":{"419":1,"512":1}}],["方式来实现",{"2":{"419":1}}],["方式时有效",{"2":{"349":1}}],["方案因可用性原因已被弃用",{"2":{"513":1}}],["方案",{"2":{"341":1,"513":1}}],["方案时",{"2":{"341":1,"513":1}}],["方案成功连接的成功率已经越来越低",{"2":{"236":1}}],["方便快速解决",{"2":{"680":1}}],["方便快速取用",{"2":{"114":1,"117":1}}],["方便管理的时候",{"2":{"415":1}}],["方便你管理和分享它们",{"2":{"414":1}}],["方便你快速获取最新的插件",{"2":{"406":1}}],["方便你快速获取最新的牌堆内容",{"2":{"388":1}}],["方便直接测试代码",{"2":{"407":1}}],["方便用户快速编写指定类型",{"2":{"268":1}}],["方便用户在提问的过程中表述得简单直接",{"2":{"185":1}}],["方便开发阶段修改",{"2":{"131":1}}],["方便骰主快速获取牌堆更新",{"2":{"58":1}}],["方法二",{"0":{"441":1}}],["方法一",{"0":{"440":1}}],["方法",{"2":{"105":1,"106":1,"107":1,"108":1,"109":1,"110":1}}],["方向错误",{"2":{"67":1}}],["内键入",{"2":{"480":1}}],["内核",{"2":{"295":1}}],["内存占用也不会超过数百",{"2":{"550":1}}],["内存占用会随着持续运行而稍稍增长并有所波动",{"2":{"550":1}}],["内存",{"2":{"550":2}}],["内存指代的是",{"2":{"199":1}}],["内存不足到底指的是哪里的内存不足",{"0":{"197":1}}],["内",{"2":{"141":1}}],["内部元素为字符串",{"2":{"125":2}}],["内部元素为整数时间戳",{"2":{"125":1}}],["内置部分人物卡上没有的默认技能等级",{"2":{"558":1}}],["内置脚本语法",{"2":{"425":1}}],["内置脚本语言",{"0":{"171":1},"1":{"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1,"181":1,"182":1,"183":1},"2":{"75":1,"92":1,"376":1}}],["内置",{"2":{"362":1}}],["内置客户端版本",{"2":{"514":1}}],["内置客户端暂不支持",{"2":{"514":1}}],["内置客户端的配置文件夹",{"2":{"431":1}}],["内置客户端的二进制文件",{"2":{"430":1}}],["内置客户端",{"0":{"514":1},"2":{"341":1,"513":3,"514":1}}],["内置客户端或分离部署",{"2":{"227":1}}],["内置的",{"2":{"172":1,"248":1,"362":2}}],["内置对象",{"2":{"158":1}}],["内置文件",{"2":{"93":1}}],["内直接赋值的写法和新开一行使用条件语句的写法",{"2":{"84":1}}],["内容为",{"2":{"694":1}}],["内容相似时触发",{"2":{"72":1}}],["内容",{"2":{"68":1,"72":1,"172":1}}],["内心空虚",{"2":{"67":1}}],["内联表",{"2":{"33":1}}],["疯狂症状",{"2":{"746":1}}],["疯狂状态的持续时间取决于失去的理智值的数量和比例",{"2":{"612":1}}],["疯狂发作症状",{"0":{"612":1}}],["疯狂",{"2":{"67":1}}],["鲁莽",{"2":{"67":1}}],["冒失",{"2":{"67":1}}],["冒险",{"2":{"67":1}}],["冒号后面要加一个空格",{"2":{"45":1}}],["漂泊",{"2":{"67":1}}],["愚者逆位",{"2":{"67":1}}],["释义来源网络",{"2":{"67":1}}],["塔罗牌",{"0":{"67":1},"2":{"67":1}}],["出场了",{"2":{"660":1}}],["出目互不相同的骰点",{"2":{"704":1}}],["出目32",{"2":{"636":1}}],["出目大于等于暴击线的骰子称为此骰子",{"2":{"636":1}}],["出现如下窗口",{"2":{"686":1}}],["出现的小数被立即舍弃",{"2":{"628":1}}],["出现误判",{"2":{"425":1}}],["出现模块作用域",{"2":{"264":1}}],["出现该报错的原因很可能是因为",{"2":{"242":1}}],["出现",{"0":{"244":1,"246":1,"247":1,"248":1},"2":{"242":1}}],["出现以下消息后输入",{"2":{"242":1}}],["出现了异常的问题",{"2":{"190":1}}],["出现了一些以",{"2":{"172":1}}],["出现格式化错误",{"2":{"183":1}}],["出现相同词汇时按最高级别判断",{"2":{"90":1}}],["出",{"2":{"136":3,"619":18}}],["出于对公平性的考虑",{"2":{"112":1}}],["出的数值",{"2":{"97":1}}],["出的是",{"2":{"84":3}}],["出的新仓库",{"2":{"11":1}}],["出错时请严格检查",{"2":{"66":1}}],["尾逗号等语法不属于",{"2":{"66":1}}],["诸如注释",{"2":{"66":1}}],["帮助说明中的的一些符号有特定含义",{"2":{"722":1}}],["帮助指令",{"0":{"647":1}}],["帮助文本会产生约",{"2":{"644":1}}],["帮助文档的文本量较大",{"2":{"395":1}}],["帮助文档列表以文件树的形式展示",{"2":{"395":1}}],["帮助文档仓库",{"2":{"393":1}}],["帮助文档",{"0":{"391":1},"1":{"392":1,"393":1,"394":1,"395":1,"396":1,"397":1,"398":1,"399":1,"400":1},"2":{"392":1,"395":1,"622":1,"642":1}}],["帮助文档通常包含了各个项目从部署到使用的一系列教程",{"2":{"206":1}}],["帮助文档所在工作表的名称会作为前缀加入词条",{"2":{"68":1}}],["帮助文档是",{"2":{"66":1}}],["帮助快速生成模板代码",{"2":{"168":1}}],["帮助信息不要以",{"2":{"114":1}}],["帮助你快速掌握相关内容",{"2":{"91":1}}],["帮助你快速了解它们",{"2":{"31":1}}],["帮助测试",{"2":{"70":1}}],["概念说明",{"0":{"582":1}}],["概述",{"2":{"66":1}}],["概览",{"0":{"30":1}}],["作为骰主",{"2":{"730":1}}],["作为它的同义词",{"2":{"582":1}}],["作为处理等级",{"2":{"355":1}}],["作为服务端默认绑定到",{"2":{"278":1}}],["作为示例",{"2":{"255":1}}],["作为",{"2":{"158":1}}],["作为非指令关键词的标志",{"2":{"137":1}}],["作为标记",{"2":{"83":1}}],["作为标记变量",{"2":{"83":1}}],["作为分页符",{"2":{"66":1}}],["作为换行符",{"2":{"66":1}}],["作为牌组的文件",{"2":{"48":1}}],["作者木落",{"2":{"625":1}}],["作者已因",{"2":{"237":1}}],["作者名和版本号",{"2":{"165":1}}],["作者名为",{"2":{"165":1}}],["作者名",{"2":{"159":1}}],["作者为",{"2":{"94":1}}],["作者",{"2":{"66":1,"90":2,"112":1,"165":2,"579":1,"706":2}}],["名单",{"2":{"325":1}}],["名词或操作时",{"2":{"203":1}}],["名词",{"0":{"266":1},"1":{"267":1,"268":1,"269":1,"270":1,"271":1,"272":1,"273":1,"274":1,"275":1,"276":1,"277":1,"278":1,"279":1,"280":1,"281":1,"282":1,"283":1,"284":1,"285":1,"286":1,"287":1,"288":1,"289":1,"290":1,"291":1,"292":1,"293":1,"294":1,"295":1,"296":1,"297":1,"298":1,"299":1,"300":1,"301":1,"302":1,"303":1,"304":1,"305":1,"306":1,"307":1,"308":1,"309":1,"310":1,"311":1,"312":1,"313":1},"2":{"184":1,"195":1,"203":1,"206":1,"210":1,"213":1,"225":1}}],["名为",{"2":{"112":1,"541":1}}],["名字前缀有",{"2":{"731":1}}],["名字>",{"2":{"114":1,"117":2,"134":2}}],["名字",{"0":{"763":1},"2":{"66":1,"746":1}}],["名称任意",{"2":{"48":3}}],["还会向海豹日志染色器上传日志",{"2":{"727":1}}],["还提供一系列的自定义和娱乐功能",{"2":{"717":1}}],["还提供试用",{"2":{"1":1}}],["还需要在服务器系统中放行端口",{"2":{"684":1}}],["还需要注册扩展",{"2":{"112":1}}],["还是",{"2":{"594":1,"612":1}}],["还是别追究他为什么不在了",{"2":{"552":1,"702":1}}],["还是需要复杂的判断和响应",{"2":{"412":1}}],["还是在使用中遇到了不符合预期的事件",{"2":{"226":1}}],["还可以选择在",{"2":{"262":1}}],["还可以让你看到更高效地获取那些有用的信息",{"2":{"205":1}}],["还可以使用",{"2":{"81":1}}],["还有疯魔的邪教徒们",{"2":{"584":1}}],["还有",{"2":{"207":1}}],["还有撤去一些自定义回复文件以及",{"2":{"190":1,"226":1}}],["还有出现问题的完整截图发到用户群",{"2":{"190":1}}],["还有其它的前缀",{"2":{"172":1}}],["还有一些",{"2":{"94":1}}],["还没有任何选项呢`",{"2":{"130":2}}],["还很陌生",{"2":{"65":1,"90":1}}],["最简单的方法就是自己",{"2":{"718":1}}],["最简单的方式就是使用",{"2":{"412":1}}],["最终的骰点结果为",{"2":{"636":1}}],["最终计算的是小于等于",{"2":{"635":1}}],["最终抽取的牌组相当于直接配置了这样的牌组",{"2":{"64":1}}],["最外层的",{"2":{"395":1}}],["最高等级",{"2":{"355":1}}],["最好使用安卓",{"2":{"255":1}}],["最好的方式是通过在图片上加马赛克进行遮挡",{"2":{"187":1,"201":1}}],["最开头一行",{"2":{"150":1}}],["最后一轮中最大点数",{"2":{"636":1}}],["最后计算总计成功数",{"2":{"635":1}}],["最后点击确定",{"2":{"196":1}}],["最后只要编译成",{"2":{"170":1}}],["最后更新时间",{"2":{"159":1}}],["最后输出结果",{"2":{"79":1}}],["最后",{"2":{"78":1,"210":1,"363":1}}],["最后的抽取是从合并的数组中进行",{"2":{"64":1}}],["确确实实地存在于人们身边的世界",{"2":{"743":1}}],["确定问题",{"0":{"457":1},"1":{"458":1}}],["确认配置完成后",{"2":{"503":1}}],["确认后点击下方",{"2":{"531":1}}],["确认后点击",{"2":{"464":1}}],["确认插件的更新内容之后",{"2":{"406":1}}],["确认更新",{"2":{"388":1,"406":1}}],["确认牌堆的更新内容之后",{"2":{"388":1}}],["确认内容完整再导入",{"2":{"365":1}}],["确认海豹版本",{"2":{"265":1}}],["确认端口没有重复",{"2":{"245":1}}],["确认没有启动多个",{"2":{"245":1}}],["确认前请务必保证是从主分支切出的",{"2":{"12":1}}],["确保你设置了合适的密码",{"2":{"622":1}}],["确保你下载的是",{"2":{"460":1}}],["确保只有你完全信任的人能够接触到你骰子的",{"2":{"622":1}}],["确保海豹核心能够在后台存活",{"2":{"438":1}}],["确保安卓版本在安卓",{"2":{"255":1}}],["确保截图中呈现了对应的日志",{"2":{"225":1}}],["确保最终抽取的牌组中不含重复条目",{"2":{"64":1}}],["正面应对克苏鲁神话中那些毛骨悚然之物的人",{"2":{"585":1}}],["正向连接",{"2":{"521":1}}],["正向服务地址",{"2":{"494":1}}],["正常的用例",{"2":{"722":1}}],["正常回应指令列表里的指令",{"2":{"504":1}}],["正常填写配置文件中设定的监听地址",{"2":{"494":1}}],["正在卸载系统服务",{"2":{"541":1}}],["正在启动服务",{"2":{"686":2}}],["正在启动",{"2":{"541":1}}],["正在安装系统服务",{"2":{"541":1}}],["正在运行的程序会被暂停",{"2":{"292":1}}],["正在等待用户输入命令",{"2":{"290":1}}],["正因如此",{"2":{"272":1}}],["正如上文中提到的",{"2":{"226":1}}],["正如上面示例中看到的那样",{"2":{"64":1}}],["正例并不意味着一个好问题",{"2":{"222":1}}],["正确写法",{"2":{"174":1}}],["正则中匹配",{"2":{"73":1}}],["正则表达式等",{"2":{"412":1,"724":1}}],["正则表达式",{"2":{"69":1}}],["正则匹配",{"0":{"73":1},"2":{"26":1,"72":1,"419":1,"420":2}}],["假用户",{"2":{"512":1}}],["假设角色的侦查技能是40",{"2":{"595":1,"597":1}}],["假设我们创建了一个叫做",{"2":{"143":1}}],["假设用户发送过来的消息是",{"2":{"115":1}}],["假定",{"2":{"599":1}}],["假定目前已经注册好了一个名为",{"2":{"114":1}}],["假定上面填入了",{"2":{"64":1}}],["假如牌堆文件内容如下",{"2":{"56":1}}],["假如你熟悉",{"2":{"12":1}}],["链接能够配置多个",{"2":{"64":1}}],["链接",{"2":{"64":2}}],["云服务器",{"2":{"538":1}}],["云电脑",{"2":{"272":1}}],["云端数据与本地数据合并后会进行去重",{"2":{"64":1}}],["云端内容示例",{"2":{"64":1}}],["云端内容",{"0":{"62":1},"1":{"63":1,"64":1},"2":{"389":1}}],["云内容链接",{"2":{"64":1}}],["云内容与本地内容去重",{"2":{"64":1}}],["其队员",{"2":{"739":1}}],["其形式为",{"2":{"623":2}}],["其二是前者与幸运的总值",{"2":{"616":1}}],["其一是",{"2":{"616":1}}],["其余内容无需修改",{"2":{"514":1}}],["其余选项可以参看对应的提示",{"2":{"354":1}}],["其包括目前实现了",{"2":{"285":1,"516":1}}],["其实是在耽误你个人的时间",{"2":{"190":1}}],["其它规则支持",{"0":{"738":1},"1":{"739":1,"740":1,"741":1,"742":1,"743":1,"744":1}}],["其它插件由海豹社区提供",{"2":{"572":1}}],["其它",{"2":{"362":1,"746":1}}],["其它版本的打开方式请自行搜索",{"2":{"262":1}}],["其它归档内容",{"0":{"235":1},"1":{"236":1,"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1,"253":1,"254":1,"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"261":1,"262":1,"263":1,"264":1,"265":1},"2":{"184":1}}],["其它写法",{"2":{"81":1}}],["其值是在每次指令执行的初始阶段设置的",{"2":{"172":1}}],["其值等于",{"2":{"97":1}}],["其各个参数的含义如下",{"2":{"141":1}}],["其参数是是否执行成功",{"2":{"115":1}}],["其他符号如",{"2":{"720":1}}],["其他骰子做检定的时候",{"0":{"688":1}}],["其他服务商大同小异",{"2":{"686":1}}],["其他人",{"2":{"593":1,"599":1,"602":1,"611":1,"639":1,"666":1,"668":1,"671":1,"673":1,"675":1,"677":1,"679":1}}],["其他信息也相应展示",{"2":{"385":1}}],["其他事项",{"0":{"231":1},"1":{"232":1,"233":1}}],["其他格式的支持和更多问题排查",{"2":{"154":1}}],["其他问题",{"0":{"153":1,"169":1},"1":{"154":1,"155":1,"156":1,"170":1}}],["其他用户的权限等级为普通用户",{"2":{"120":1}}],["其他用户被视为拥有与群管理员等同的权限",{"2":{"120":1}}],["其他",{"0":{"104":1}}],["其他的都需要在条件中用多个进行嵌套",{"2":{"84":1}}],["其会将",{"2":{"94":2}}],["其会将$xxx",{"2":{"94":1}}],["其为插件元数据中的",{"2":{"165":1}}],["其为",{"2":{"94":2}}],["其仍会对",{"2":{"78":1}}],["其每个元素均是牌组的一个条目",{"2":{"63":1}}],["其中含有的表达式和变量都将被求值",{"2":{"705":1}}],["其中的",{"2":{"694":1,"721":1}}],["其中的大写字母用相应参数替换",{"2":{"635":1,"636":1}}],["其中的一行文案来使用",{"2":{"363":1}}],["其中1条为同义词",{"2":{"582":1}}],["其中更多使用后者来编写资料查询文档",{"2":{"393":1}}],["其中重复的词取设置的最高等级",{"2":{"356":1}}],["其中第二列",{"2":{"68":1}}],["其中上半部分的一些项不是必须的",{"2":{"48":1}}],["其中以",{"2":{"48":1}}],["其中",{"2":{"48":1,"94":1,"119":1,"141":1,"165":1,"259":1,"497":1,"501":1,"583":1,"595":1,"608":1,"635":1,"636":1,"659":1,"722":1}}],["其中键名必须用",{"2":{"38":1}}],["骰指定数量的",{"2":{"715":1}}],["骰数",{"2":{"715":1}}],["骰池设定已恢复默认",{"2":{"711":1}}],["骰池是每个群组共用的",{"2":{"704":1}}],["骰池",{"2":{"704":1}}],["骰池抽取",{"0":{"704":1}}],["骰池数量",{"2":{"635":1,"636":1}}],["骰法",{"2":{"637":1}}],["骰上一轮中加骰数个",{"2":{"635":1}}],["骰",{"2":{"633":2,"635":1,"636":2}}],["骰4个6面骰",{"2":{"628":1}}],["骰5个24面骰",{"2":{"628":1}}],["骰子的使用注意项",{"2":{"718":1}}],["骰子的回复内容太过繁琐",{"2":{"361":1}}],["骰子的回复内容太过单调",{"2":{"361":1}}],["骰子提供各种基于各种跑团规则",{"2":{"717":1}}],["骰子这里特指在即时聊天软件",{"2":{"717":1}}],["骰子所在的所有群进行使用",{"2":{"709":1}}],["骰子会将模板内容解析后返回",{"2":{"705":1}}],["骰子会立即退群",{"2":{"328":1}}],["骰子不会自动同意频道邀请",{"2":{"691":1}}],["骰子不回复黑名单用户",{"2":{"328":1}}],["骰子b",{"2":{"688":1}}],["骰子a",{"2":{"688":1}}],["骰子面数默认为",{"2":{"635":1}}],["骰子面数",{"2":{"635":1,"636":2,"711":1}}],["骰子面数管理",{"0":{"626":1}}],["骰子账号遭到了风控",{"2":{"681":1}}],["骰子账号",{"2":{"624":1}}],["骰子管理",{"0":{"624":1}}],["骰子",{"2":{"549":1,"691":1}}],["骰子qq",{"2":{"431":1}}],["骰子进群",{"2":{"380":1}}],["骰子进群和成为好友的问候语是哪个",{"0":{"380":1}}],["骰子名字",{"2":{"375":1,"377":1}}],["骰子才会响应",{"2":{"343":1}}],["骰子成为好友",{"2":{"334":1,"380":1}}],["骰子自动拒绝黑名单用户的邀请",{"2":{"328":1}}],["骰子服务",{"2":{"285":1,"516":1}}],["骰子就不能",{"2":{"272":1}}],["骰子本质是在电脑上运行的程序",{"2":{"272":1}}],["骰子算符",{"0":{"178":1}}],["骰子将回复",{"2":{"66":1}}],["骰娘",{"2":{"135":1}}],["骰主代取",{"0":{"730":1}}],["骰主具有很大的权限",{"2":{"698":1}}],["骰主也可以",{"2":{"683":1}}],["骰主指令",{"0":{"622":1},"2":{"331":1}}],["骰主",{"2":{"120":2,"718":1}}],["骰主需要自行确认数据源不会返回你不希望骰子发出的信息",{"2":{"62":1}}],["骰主无需反复更新骰子中装载的牌堆",{"2":{"62":1}}],["骰点结果将由海豹核心私聊给指令发送者",{"2":{"638":1}}],["骰点需要设定以下参数",{"2":{"635":1}}],["骰点规则是一个多轮骰点规则",{"2":{"635":1}}],["骰点时投掷",{"2":{"634":1}}],["骰点兼容",{"0":{"633":1}}],["骰点",{"0":{"373":1,"627":1,"635":1},"1":{"628":1,"629":1,"630":1,"631":1,"632":1,"633":1,"634":1,"635":1,"636":1,"637":1},"2":{"24":1,"373":7,"711":1,"712":1,"715":1}}],["恶臭论证",{"2":{"61":2}}],["恶意攻击海豹骰及开发人员",{"2":{"15":1}}],["恶意代码",{"2":{"15":1}}],["简称",{"2":{"739":1,"740":1,"741":1,"742":1}}],["简称为",{"2":{"143":1}}],["简略写法",{"0":{"609":1}}],["简体与繁体字等价",{"2":{"582":1}}],["简繁汉字的属性被视为同一属性",{"2":{"557":1,"561":1}}],["简短",{"2":{"368":1}}],["简易配置",{"2":{"238":1}}],["简言之",{"2":{"186":1,"200":1}}],["简单介绍",{"2":{"478":1}}],["简单说",{"2":{"145":1}}],["简单牌组表",{"2":{"61":1}}],["简介",{"2":{"36":5,"40":4,"46":4,"90":1}}],["仅限",{"2":{"553":1,"655":1}}],["仅对企业用户和部分受邀个人用户开放",{"2":{"512":1}}],["仅有",{"2":{"512":1}}],["仅当",{"2":{"349":1}}],["仅当需要备用签名或不同协议版本的时候有此需求",{"0":{"249":1}}],["仅自定义回复中可用",{"2":{"172":1}}],["仅承担唤醒功能",{"2":{"141":1}}],["仅",{"2":{"139":1,"241":1,"341":1,"647":1}}],["仅master可用",{"2":{"127":5}}],["仅仅是提供了配置选项的能力",{"2":{"61":1}}],["仅说明牌堆编写中会用到的部分",{"2":{"31":1}}],["更改其他玩家的名片",{"2":{"732":1}}],["更改为文件夹内对应的服务端核心文件文件名",{"2":{"480":1}}],["更强的指令支持",{"0":{"570":1}}],["更复杂的自定义回复编写",{"2":{"425":1}}],["更复杂的回复",{"0":{"425":1},"2":{"419":1,"420":1}}],["更复杂的文案设置涉及到逻辑的编写",{"2":{"381":1}}],["更复杂的文案设置",{"0":{"381":1}}],["更建议使用",{"2":{"394":1}}],["更新属性值",{"0":{"590":1,"665":1}}],["更新前请",{"2":{"546":1}}],["更新海豹",{"0":{"542":1},"1":{"543":1,"544":1,"545":1,"546":1}}],["更新海豹容器或",{"0":{"495":1}}],["更新至最新稳定版本",{"2":{"539":1}}],["更新",{"2":{"388":1,"406":1,"519":1,"522":2}}],["更新日期",{"2":{"90":1}}],["更老的文件将被删除",{"2":{"319":2}}],["更常见的含义是偏向负面的",{"2":{"279":1}}],["更换网络进行滑条",{"2":{"247":1}}],["更快地找到问题所在",{"2":{"189":1,"217":1}}],["更原始的",{"2":{"138":1}}],["更好的方式是参考海豹提供的",{"2":{"94":1}}],["更专业的编辑器能更好地帮助你编写相关格式的文件",{"2":{"93":1}}],["更多规则",{"0":{"744":1}}],["更多规则请看其它规则支持",{"2":{"626":1}}],["更多邮箱地址",{"2":{"729":1}}],["更多技能名称",{"2":{"614":1}}],["更多",{"0":{"580":1}}],["更多电池设置",{"2":{"450":1}}],["更多牌堆命令",{"2":{"386":1}}],["更多牌组设置",{"0":{"61":1}}],["更多请参阅",{"2":{"344":1}}],["更多设置",{"2":{"262":2}}],["更多的内存占用和变慢的启动速度",{"2":{"644":1}}],["更多的",{"2":{"190":1}}],["更多内容请看",{"2":{"157":1}}],["更多示例片段",{"0":{"80":1},"1":{"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1}}],["更不会显示在列表中",{"2":{"57":3}}],["与我们所生活的现实颇为相似的另一个世界",{"2":{"743":1}}],["与我们交互",{"2":{"302":1}}],["与角色的属性数值变化",{"2":{"728":1}}],["与群关联",{"2":{"709":1}}],["与用户关联",{"2":{"709":1}}],["与前一用法相同",{"2":{"665":1}}],["与孩提时代的过家家扮演游戏相似",{"2":{"657":1}}],["与本地文件",{"2":{"622":1}}],["与之相对的概念是扩展指令",{"2":{"621":1}}],["与之等价的",{"2":{"56":1}}],["与克苏鲁神话相关的痛苦经历和可怖领悟都会诱发疯狂",{"2":{"612":1}}],["与官网一致",{"2":{"538":1}}],["与文档数量",{"2":{"395":1}}],["与上方的",{"2":{"362":1}}],["与命令提示符等名词会被混用",{"2":{"302":1}}],["与端口是互联网应用用于定位彼此的方式之一",{"2":{"278":1}}],["与端口号",{"2":{"278":1}}],["与端口",{"0":{"278":1},"2":{"270":1}}],["与深度优先学习相反",{"2":{"210":1}}],["与其提问后再被要求补充这些信息",{"2":{"227":1}}],["与其拾人牙慧",{"2":{"207":1}}],["与其在用户群里发出主观情绪并且焦急地等待回答",{"2":{"190":1}}],["与",{"2":{"78":2,"141":1,"143":1,"173":2,"210":1,"283":1,"290":1,"292":1,"302":1,"313":1,"395":1,"420":1,"426":1,"480":1,"489":1,"491":4,"504":3,"513":1,"516":1,"582":11,"601":1,"678":1}}],["与在文案和自定义回复中插入海豹语使用",{"2":{"59":1}}],["hyphen",{"2":{"723":1}}],["hyperos",{"0":{"448":1},"2":{"448":1}}],["halt",{"2":{"570":1,"727":1}}],["hamming",{"2":{"72":2}}],["hp10",{"2":{"733":1}}],["hp14",{"2":{"733":1}}],["hp回复1点",{"2":{"678":1}}],["hp得到了恢复",{"2":{"676":1}}],["hpmax",{"2":{"665":3,"678":1,"735":1}}],["hp+1d3",{"2":{"590":1}}],["hp",{"2":{"548":1,"593":2,"616":1,"665":7,"670":5,"672":1,"678":6,"735":2}}],["hiy",{"0":{"737":1}}],["history",{"2":{"532":4}}],["hide",{"2":{"133":6}}],["hkt",{"2":{"480":1}}],["htop",{"2":{"199":1}}],["http",{"2":{"63":1,"64":1,"238":1,"278":1,"465":1,"536":1,"684":1,"686":1}}],["https",{"2":{"58":3,"61":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"135":2,"136":1,"158":1,"159":1,"278":1,"480":1,"686":1}}],["hostport",{"2":{"259":1}}],["host",{"2":{"239":1,"347":2,"491":1,"493":1,"494":2,"497":1,"498":3,"515":2,"539":1}}],["how",{"2":{"189":1,"217":1}}],["homepageurl",{"2":{"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"158":1,"159":2}}],["heartbeatinterval",{"2":{"493":1}}],["headless",{"0":{"276":1},"2":{"306":1}}],["header",{"2":{"150":1,"152":1}}],["help协议",{"2":{"722":1}}],["helpdpc",{"2":{"642":1}}],["helpdoc",{"2":{"66":4,"67":1,"68":3,"393":1,"642":1,"696":1}}],["help",{"0":{"586":1,"647":1,"662":1},"2":{"66":1,"114":2,"115":3,"116":2,"117":3,"119":2,"121":1,"127":10,"129":3,"130":5,"133":2,"134":3,"139":2,"375":1,"394":1,"430":1,"480":2,"623":1,"647":2,"648":1,"651":1,"660":1,"670":1,"678":1,"718":1,"720":1,"721":2,"722":2,"746":1,"747":1,"758":2,"760":1,"765":1}}],["hello",{"2":{"45":1,"158":3}}],["h",{"0":{"275":1},"1":{"276":1},"2":{"141":2,"541":1}}],["hh",{"2":{"141":2}}],["未被单独作为扩展",{"2":{"738":1}}],["未被提示",{"2":{"155":1}}],["未启用",{"2":{"414":1}}],["未赋值的变量",{"2":{"76":1}}],["未导出",{"2":{"57":1}}],["未指定在列表中的牌组将无法使用",{"2":{"57":1}}],["未指定在列表中的牌组将不会暴露在",{"2":{"57":1}}],["灰色的牌组是隐藏的",{"2":{"57":1}}],["双重十字",{"0":{"741":1},"2":{"741":1}}],["双重十字规则骰点",{"0":{"712":1},"2":{"741":1}}],["双方可能都实现某种程度的成功",{"2":{"613":1}}],["双击",{"2":{"458":1}}],["双击运行",{"2":{"242":2,"539":1}}],["双十字掷骰",{"2":{"746":1}}],["双十字规则是一种多轮的骰点规则",{"2":{"636":1}}],["双十字骰点",{"0":{"636":1}}],["双十字",{"2":{"178":1,"572":1}}],["双下划线",{"2":{"57":1}}],["双引号不会对特殊字符转义",{"2":{"45":1}}],["那代价是什么呢",{"2":{"644":1}}],["那里会出现数字",{"2":{"252":1}}],["那样骰子也可以证明自己是正常人了",{"2":{"251":1}}],["那些已经描述过的且未发生改变的信息没有必要再重复一遍",{"2":{"230":1}}],["那常备翻译器显然是一个好选择",{"2":{"205":1}}],["那就再说一遍",{"2":{"230":1}}],["那就不要强行加入这个要素",{"2":{"222":1}}],["那就有可能是由内存不足引起的",{"2":{"199":1}}],["那就把牌堆打包成可以在海豹",{"2":{"56":1}}],["那是因为你的",{"2":{"183":1}}],["那么配置正确",{"2":{"686":1}}],["那么点击左侧",{"2":{"363":1}}],["那么你就需要修改自定义文案",{"2":{"361":1}}],["那么你只需要将该路径填入",{"2":{"262":1}}],["那么强烈建议你在",{"2":{"309":1}}],["那么强烈建议你下载并安装",{"2":{"309":1}}],["那么此时问题所对应的日志通常位于页面底端",{"2":{"225":1}}],["那么请尽可能详细地描述你遇到的困境",{"2":{"223":1}}],["那么请尽可能清晰完整地描述你想实现的功能",{"2":{"223":1}}],["那么请使用英文进行搜索",{"2":{"207":1}}],["那么请使用",{"2":{"207":1}}],["那么认真读完本节也足够你在海豹用户群中问出一个好问题",{"2":{"215":1}}],["那么可能你很快就能达成一开始的目的",{"2":{"210":1}}],["那么可以去插件仓库看一看",{"2":{"572":1}}],["那么可以按照本页后续的内容",{"2":{"206":1}}],["那么可以用",{"2":{"115":1}}],["那么当你最终回到一开始的目的",{"2":{"209":1}}],["那么就需要电脑保持开启的状态",{"2":{"272":1}}],["那么就有更大的概率直接检索到问题的解决方案",{"2":{"207":1}}],["那么就会试着捕捉张三",{"2":{"134":1}}],["那么在国内众多的内容平台中",{"2":{"207":1}}],["那么必应",{"2":{"207":1}}],["那么说明你需要的功能目前尚未实现",{"2":{"206":1}}],["那么很有可能你遇到的是此项目的已知问题",{"2":{"206":1}}],["那么不免会对本手册中的大量概念感到陌生",{"2":{"204":1}}],["那么有可能出现海豹核心突然中断运行的情况",{"2":{"199":1}}],["那么目前是无法使用这些语言编写海豹插件的",{"2":{"170":1}}],["那么",{"0":{"147":1},"2":{"185":1,"196":1,"541":1}}],["那么重复以上过程直到积分小于",{"2":{"145":1}}],["那么多的匹配方法",{"2":{"137":1}}],["那么命名为默认值",{"2":{"114":1,"117":1}}],["那么文案中将海豹命名为",{"2":{"114":1,"117":1}}],["那么建立扩展",{"2":{"112":1}}],["那么这个牌组将不导出",{"2":{"57":2}}],["那么这个牌组将不会暴露在",{"2":{"57":1}}],["└─names",{"2":{"430":1}}],["└─scripts",{"2":{"430":1}}],["└─lagrange",{"2":{"430":2}}],["└─reply",{"2":{"430":1}}],["└─",{"2":{"56":1}}],["└─1",{"2":{"56":1}}],["│",{"2":{"56":1,"430":3}}],["则开始记录指定的日志",{"2":{"727":1}}],["则开始记录本群的当前日志",{"2":{"727":1}}],["则不能创建",{"2":{"727":1}}],["则只在指定分组中进行查询",{"2":{"642":1}}],["则会失去相应的技能点数",{"2":{"615":1}}],["则守秘人可以快速推进行动",{"2":{"612":1}}],["则是",{"2":{"519":1}}],["则是一个布尔值",{"2":{"94":1}}],["则使用更早的一份备份重新替换",{"2":{"459":1}}],["则",{"2":{"420":1}}],["则调用",{"2":{"369":1}}],["则在",{"2":{"349":1}}],["则在生成",{"2":{"84":1}}],["则海豹核心将通过所有好友请求",{"2":{"349":1}}],["则更为常用",{"2":{"302":1}}],["则指定",{"2":{"167":1}}],["则跳过本回合",{"2":{"145":1}}],["则与之相同",{"2":{"141":1}}],["则变量",{"2":{"78":3}}],["则应该用",{"2":{"77":1}}],["则对应的词条会显示为",{"2":{"68":1}}],["则牌堆文件所在文件夹结构应是",{"2":{"56":1}}],["则可以在该项下面缩进一个空格",{"2":{"47":1}}],["告诉你的用户如何解压",{"2":{"56":1}}],["图书馆使用",{"2":{"614":1}}],["图标",{"2":{"363":1}}],["图例中所使用的软件为",{"2":{"56":1}}],["图片要放到那个文件夹下",{"2":{"56":1}}],["图",{"2":{"55":1,"56":1,"66":1,"375":2,"443":1}}],["发货单",{"2":{"653":1}}],["发帖询问",{"2":{"504":1}}],["发布设置",{"2":{"504":1}}],["发布配置",{"2":{"503":1,"504":1}}],["发布带图牌堆最常见的选择是牌堆文件连同图片打包成一个压缩包",{"2":{"56":1}}],["发出的消息",{"2":{"354":1,"649":1}}],["发生了超过普通人类认知的离谱事情",{"2":{"352":1}}],["发件邮箱",{"0":{"336":1}}],["发行版都是免费的",{"2":{"286":1}}],["发现的可能的",{"2":{"206":1}}],["发现我的海豹骰的数据库文件的磁盘占用出现了无法通过重启解决的故障",{"2":{"190":1}}],["发送消息会有随机延迟",{"2":{"689":1}}],["发送本地图片等大量功能目前不支持",{"2":{"499":1}}],["发送通知",{"2":{"449":1}}],["发送警告",{"2":{"355":1}}],["发送分享卡片等功能",{"2":{"116":1}}],["发送图片",{"0":{"443":1},"2":{"116":1}}],["发送图片等",{"0":{"55":1},"1":{"56":1}}],["发送者",{"2":{"116":1}}],["发送者信息",{"2":{"109":1}}],["发送的文本中",{"2":{"116":1}}],["发送平台",{"2":{"114":1,"117":1,"135":1}}],["发送时间等",{"2":{"114":1,"117":1,"135":1}}],["发送时间",{"2":{"109":1}}],["发起",{"0":{"13":1},"2":{"10":1}}],["个最高值",{"2":{"633":1}}],["个最低值",{"2":{"633":1}}],["个排除",{"2":{"633":2}}],["个数学运算",{"2":{"637":1}}],["个数",{"2":{"598":1,"704":1}}],["个数据库文件",{"2":{"457":1}}],["个内置扩展",{"2":{"569":1,"625":1}}],["个部分组成的格式",{"2":{"314":1}}],["个部分组成的",{"2":{"314":1}}],["个关键属性",{"2":{"144":1}}],["个选项",{"2":{"130":2,"131":1}}],["个选项并继续",{"2":{"130":2}}],["个参数之后的所有参数",{"2":{"110":1}}],["个参数是否在",{"2":{"110":1}}],["个被",{"2":{"94":1}}],["个人快捷指令",{"2":{"709":2}}],["个人",{"2":{"374":1}}],["个人骰子面数",{"2":{"172":1}}],["个人临时变量",{"2":{"172":1}}],["个人觉得可以视其为类",{"2":{"94":1}}],["个人变量",{"2":{"94":2,"172":1}}],["个",{"2":{"54":2,"147":1,"346":1,"598":1,"616":1,"635":1,"636":2,"674":1,"762":1,"763":1}}],["个项目",{"2":{"54":1}}],["个金币",{"2":{"52":2}}],["标志通过特定的关键字",{"2":{"723":1}}],["标志可以无序排列",{"2":{"723":1}}],["标志",{"2":{"723":1}}],["标签为",{"2":{"539":2}}],["标签页",{"2":{"357":1,"359":1}}],["标签页下",{"2":{"279":1}}],["标题",{"2":{"130":1}}],["标记",{"2":{"635":2,"636":1,"649":1}}],["标记为",{"2":{"115":1,"116":1,"117":1}}],["标记权重的项目不会被视为单个项目的多个副本",{"2":{"54":1}}],["标准的连接方式",{"2":{"515":1}}],["标准的连接方式之二",{"2":{"515":1}}],["标准的连接方式之一",{"2":{"515":1}}],["标准下",{"2":{"278":1}}],["标准",{"2":{"37":1,"66":3}}],["✨闪光海豹✨",{"2":{"53":3,"54":3}}],["爆金币",{"2":{"52":1}}],["研究旧牌堆",{"2":{"52":1,"54":1}}],["旧版文案",{"2":{"364":1}}],["旧协议本身不支持的原因",{"2":{"341":1,"513":1}}],["旧电脑",{"2":{"254":1}}],["旧文档保留在此处",{"2":{"184":1}}],["旧的实现",{"2":{"52":1,"54":1}}],["旧手册贡献者",{"2":{"3":1}}],["再阅读本节进行部署",{"2":{"537":1}}],["再点击卡片",{"2":{"686":1}}],["再点击",{"2":{"530":1}}],["再点击右上角的",{"2":{"503":1}}],["再次运行脚本",{"2":{"481":1}}],["再次启动脚本",{"2":{"480":1}}],["再进行一次完整性检查",{"2":{"459":1}}],["再按照相应图片的路径插入这样一段文本即可",{"2":{"375":1}}],["再按下键盘上的enter",{"2":{"196":1}}],["再输入",{"2":{"256":2}}],["再和大家说说你是怎么做的吧",{"2":{"230":1}}],["再用鼠标左键单击弹出菜单中带有解压到字样的选项就能解压这个压缩包",{"2":{"196":1}}],["再靠近一点",{"2":{"181":1}}],["再调用",{"2":{"138":1}}],["再发送给网络",{"2":{"135":1}}],["再使用",{"2":{"128":1,"261":1}}],["再注册到扩展中",{"2":{"113":1}}],["再组合到原字符串里",{"2":{"52":1}}],["再从同步后的主分支再新切分支进行操作",{"2":{"14":1}}],["ekgen",{"0":{"714":1},"2":{"572":1,"714":1,"746":1}}],["ek",{"0":{"713":1},"2":{"572":1,"713":1,"746":1}}],["emoklore",{"0":{"743":1},"2":{"572":1}}],["embed",{"2":{"532":1}}],["emulated",{"2":{"262":1,"442":1}}],["events",{"2":{"531":2}}],["every",{"2":{"344":1,"346":1}}],["ether",{"2":{"497":1}}],["edge",{"2":{"491":5,"539":2}}],["edxposed",{"2":{"257":2}}],["eula=true",{"2":{"480":2}}],["eula=false",{"2":{"480":1}}],["eula",{"2":{"480":2}}],["echo",{"2":{"480":1}}],["e",{"2":{"262":1}}],["es6",{"2":{"158":1,"161":1}}],["esbuild",{"2":{"154":2}}],["esm",{"2":{"154":1}}],["es",{"2":{"154":1}}],["error",{"2":{"130":2,"210":1,"299":1}}],["err",{"2":{"118":1,"119":2}}],["eatprefixwith",{"2":{"110":1}}],["end===",{"2":{"570":1}}],["end",{"2":{"430":1,"660":2,"727":2,"746":1}}],["endpoints",{"2":{"104":1}}],["endpoint",{"0":{"108":1},"2":{"94":1,"104":1,"105":1}}],["en",{"0":{"371":1,"613":1},"1":{"614":1,"615":1},"2":{"503":1,"504":1,"614":3,"615":2,"723":1,"746":1,"753":1}}],["enabling",{"2":{"481":1}}],["enable",{"2":{"108":1,"531":2}}],["enahncement",{"2":{"206":1}}],["enough",{"0":{"198":1}}],["entered",{"2":{"482":1}}],["enteredtime",{"2":{"106":1}}],["enter",{"2":{"239":1}}],["entries",{"2":{"129":1}}],["elif",{"2":{"78":1}}],["elseif",{"2":{"78":1}}],["else",{"2":{"78":5,"83":1,"119":1,"127":7,"133":2,"135":1,"136":2,"139":1,"183":2}}],["elementplus",{"2":{"5":1}}],["exit",{"2":{"460":2,"683":1,"731":1}}],["exists",{"2":{"118":1,"119":2}}],["executable",{"2":{"539":1}}],["exe",{"2":{"196":2,"239":1,"242":2,"274":1,"292":1,"460":4,"539":1}}],["examp",{"2":{"114":1}}],["examples",{"2":{"94":1,"105":1}}],["example",{"2":{"64":1,"119":2,"139":3}}],["extensions",{"2":{"583":1}}],["extinfo",{"2":{"113":1,"128":2}}],["extinactivebyname",{"2":{"106":1}}],["extinactive",{"2":{"106":1}}],["extgetactive",{"2":{"106":1}}],["extclear",{"2":{"106":1}}],["extactive",{"2":{"106":1}}],["extauthor",{"2":{"94":3}}],["extname",{"2":{"94":5}}],["ext",{"0":{"100":1,"625":1},"2":{"72":1,"94":35,"98":2,"112":6,"114":1,"115":2,"116":2,"117":12,"119":11,"121":9,"127":26,"129":14,"130":37,"131":3,"133":11,"134":9,"135":3,"137":7,"138":6,"139":39,"141":2,"142":7,"150":1,"151":1,"340":1,"569":7,"625":7,"656":1,"681":1,"721":1}}],["extra",{"2":{"64":2,"242":1,"431":1,"687":1}}],["excel",{"0":{"68":1},"2":{"68":3}}],["expr",{"2":{"735":2}}],["exports",{"2":{"57":2,"156":1,"430":1,"729":1}}],["export",{"2":{"57":1,"61":2,"64":2,"117":1,"592":1,"663":1,"729":2}}],["exp",{"2":{"52":2}}],["插件已经正确安装",{"2":{"481":1}}],["插件不兼容",{"2":{"479":2}}],["插件需要",{"2":{"478":1}}],["插件脚本",{"2":{"430":1}}],["插件设置",{"0":{"408":1}}],["插件列表并进行管理",{"2":{"405":1}}],["插件列表",{"0":{"405":1},"2":{"405":1}}],["插件是什么",{"0":{"402":1}}],["插件功能",{"2":{"401":1}}],["插件功能是否开启",{"2":{"142":1}}],["插件的使用",{"0":{"483":1},"1":{"484":1,"485":1,"486":1,"487":1,"488":1}}],["插件的使用方法不同",{"2":{"409":1}}],["插件的",{"2":{"477":1}}],["插件的更新",{"0":{"406":1}}],["插件的支持",{"2":{"404":1}}],["插件的管理页面",{"2":{"404":1}}],["插件的方式来在海豹中使用",{"2":{"170":1}}],["插件的工程化编写是",{"2":{"162":1}}],["插件的工程化编写",{"0":{"148":1,"162":1},"1":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1},"2":{"162":2}}],["插件作者只需要指定目标海豹版本即可",{"2":{"167":1}}],["插件名",{"2":{"165":2}}],["插件编写",{"0":{"160":1},"1":{"161":1,"162":1}}],["插件元数据",{"0":{"159":1},"2":{"159":1,"164":1,"167":1}}],["插件就是运行在一个非浏览器环境中",{"2":{"158":1}}],["插件文件中完成",{"2":{"147":1}}],["插件也可以使用",{"2":{"138":1}}],["插件若要在",{"2":{"138":1}}],["插件仓库",{"2":{"114":1,"403":1,"572":1}}],["插件",{"0":{"401":1,"403":1,"404":1,"409":1,"410":1,"481":1},"1":{"402":1,"403":1,"404":1,"405":2,"406":2,"407":2,"408":2,"409":1,"410":1},"2":{"93":1,"168":1,"170":1,"199":1,"403":1,"408":1,"410":1,"572":2,"744":1}}],["插件实现也是可以的",{"2":{"25":1}}],["插入文本为",{"2":{"375":1}}],["插入海豹内置脚本语言",{"0":{"59":1}}],["插入掷骰表达式",{"0":{"52":1}}],["捏碎所有薯片",{"2":{"51":1}}],["泡面偷走叉子调料包",{"2":{"51":1}}],["拷打木落三次",{"2":{"51":3}}],["拷打木落",{"2":{"51":8}}],["带有权重调整的项目不会被视为在牌组中有多个副本",{"2":{"51":1}}],["指骰主能通过浏览器访问到的管理后台",{"2":{"307":1}}],["指明了其依赖",{"2":{"165":1}}],["指定面数的骰池",{"2":{"704":1}}],["指定默认查询分组",{"0":{"643":1}}],["指定值前面的加号",{"2":{"615":1}}],["指定的成长值",{"2":{"615":1}}],["指定当成长检定成功与失败时的技能成长点数",{"2":{"615":1}}],["指定成长值",{"0":{"615":1}}],["指定损失的理智",{"0":{"608":1}}],["指定两个其他人对抗",{"0":{"606":1}}],["指定字数",{"2":{"421":1}}],["指定分组",{"2":{"364":1}}],["指定类别",{"2":{"364":1}}],["指定依赖插件涉及到对应的插件名",{"2":{"165":1}}],["指定依赖的格式为",{"2":{"165":1}}],["指定依赖的格式",{"0":{"165":1}}],["指定你的扩展的目标海豹版本",{"2":{"159":1}}],["指定你的扩展依赖的其他扩展",{"2":{"159":1}}],["指定所有显示的牌组",{"2":{"57":1}}],["指令使角色进行长休",{"2":{"759":1}}],["指令使用法术",{"2":{"758":1}}],["指令使用",{"2":{"703":1}}],["指令设定角色的法术位",{"2":{"758":1}}],["指令设置角色名",{"2":{"589":1}}],["指令相冲突的部分",{"2":{"747":1}}],["指令与",{"2":{"747":1}}],["指令标志",{"0":{"723":1}}],["指令标志组成",{"2":{"719":1}}],["指令返回的帮助信息",{"2":{"722":1}}],["指令可以有别名",{"2":{"721":1}}],["指令前面都带有前缀",{"2":{"720":1}}],["指令前缀一般是便于输入的中英文句号",{"2":{"720":1}}],["指令前缀",{"0":{"720":1}}],["指令参数",{"0":{"722":1},"2":{"719":1}}],["指令参数与返回值",{"0":{"115":1}}],["指令是和骰子互动的基本方式",{"2":{"719":1}}],["指令回复",{"0":{"719":1},"1":{"720":1,"721":1,"722":1,"723":1},"2":{"718":1}}],["指令时允许省略加骰线",{"2":{"711":1}}],["指令响应测试",{"0":{"708":1}}],["指令对",{"2":{"678":1}}],["指令的行为与预期不符",{"2":{"721":1}}],["指令的作用是管理上述第二种群聊无关角色卡",{"2":{"641":1}}],["指令的表达式在不包含骰子算符时",{"2":{"628":1}}],["指令的特殊说明",{"2":{"504":1}}],["指令查看自己和所在群聊的统一",{"2":{"623":1}}],["指令查看你的账号",{"2":{"332":1}}],["指令格式列出",{"2":{"592":1}}],["指令快速上手",{"2":{"579":1}}],["指令了解你需要注意哪些事项",{"2":{"718":1}}],["指令了",{"2":{"569":1}}],["指令兼容性",{"0":{"548":1}}],["指令下有两个步骤",{"2":{"535":1}}],["指令简介",{"2":{"504":1}}],["指令列表",{"2":{"504":1}}],["指令介绍",{"2":{"503":1}}],["指令名称",{"2":{"746":1}}],["指令名只要求在同一扩展内不重复",{"2":{"721":1}}],["指令名",{"0":{"721":1},"2":{"503":1,"719":1}}],["指令名字",{"2":{"114":1,"117":1}}],["指令配置",{"0":{"503":1},"2":{"503":1}}],["指令无法使用可以看看",{"2":{"430":1}}],["指令测试界面的右上角提供一个切换开关",{"2":{"427":1}}],["指令测试",{"0":{"427":1},"2":{"426":2}}],["指令式编程和函数式编程",{"2":{"402":1}}],["指令退群",{"2":{"333":1,"690":1}}],["指令添加",{"0":{"326":1}}],["指令应该实现以下动作",{"2":{"147":1}}],["指令中添加",{"2":{"146":1}}],["指令上下文",{"2":{"118":1,"123":1}}],["指令解析器会将指令信息解析",{"2":{"117":1}}],["指令",{"0":{"342":1,"484":1,"559":1},"1":{"485":1,"486":1},"2":{"117":2,"146":2,"342":1,"343":1,"503":1,"708":3,"709":2,"746":6,"757":1}}],["指令核心执行流程",{"0":{"116":1}}],["指令信息",{"2":{"114":1}}],["指令进行死亡豁免",{"2":{"760":1}}],["指令进行",{"2":{"70":1}}],["指令会对词条进行模糊检索",{"2":{"68":1}}],["指令会列出所有允许抽取的牌组",{"2":{"57":1}}],["指令执行结束后",{"2":{"51":1}}],["指此次抽取后抽取的牌组保持原样",{"2":{"51":1}}],["尺度是一次抽牌指令",{"2":{"51":1}}],["每有一个骰子骰出",{"2":{"715":1}}],["每有一个大于等于加骰线",{"2":{"635":1}}],["每有一个大于等于成功线",{"2":{"635":1}}],["每位玩家都需要创造一位调查员",{"2":{"585":1}}],["每隔",{"2":{"513":1}}],["每批次内退出两个群将间隔",{"2":{"350":1}}],["每两批之间将会间隔你所指定的分钟数",{"2":{"350":1}}],["每秒",{"2":{"346":1}}],["每",{"2":{"346":1,"644":1}}],["每记录",{"2":{"345":1}}],["每行日志的开头都带有时间戳",{"2":{"225":1}}],["每骰结果可能是",{"2":{"178":1}}],["每一轮骰点被包含在一对花括号",{"2":{"635":1,"636":1}}],["每一轮游戏中",{"2":{"145":1}}],["每一项公共条件是一个逻辑判断",{"2":{"417":1}}],["每一个扩展提供若干指令和其他功能",{"2":{"625":1}}],["每一个回复结果可以有多条回复文本",{"2":{"422":1}}],["每一个回复项可以有一个或者多个",{"2":{"422":1}}],["每一个自定义回复项都包括两个部分",{"2":{"418":1}}],["每一个文案都以类似下图的格式展示",{"2":{"363":1}}],["每一个身份都有一个对应的数字",{"2":{"120":1}}],["每一行指定一个",{"2":{"166":1}}],["每天刷新的",{"2":{"701":1}}],["每天凌晨",{"2":{"350":1}}],["每天触发",{"2":{"142":1}}],["每天定时执行",{"2":{"141":1}}],["每日新闻",{"2":{"142":1,"164":2,"165":3,"166":2}}],["每日",{"2":{"141":1}}],["每页放多少个选项",{"2":{"130":1}}],["每群每天一次",{"0":{"83":1}}],["每个单项都是",{"2":{"659":1}}],["每个",{"2":{"159":1}}],["每个玩家都要决定",{"2":{"145":1}}],["每个玩家创建一个角色",{"2":{"145":1}}],["每个角色有",{"2":{"144":1}}],["每个身份所对应的数字如下表所示",{"2":{"120":1}}],["每个牌组都可以单独控制云端相关设置",{"2":{"64":1}}],["每个模块都存放在对应的仓库中",{"2":{"5":1}}],["每次导入数据前都进行一次导出",{"2":{"442":1,"577":1}}],["每次获取有效期",{"2":{"331":1}}],["每次抽取这个牌组时",{"2":{"64":1}}],["每次",{"2":{"62":1}}],["每次都相当于从全新牌组中抽取",{"2":{"51":1}}],["追尾了一辆高级黑色轿车",{"2":{"50":3,"57":6}}],["追尾了",{"2":{"50":3,"57":9}}],["早上",{"2":{"50":3,"57":6}}],["保护好你的骰子",{"2":{"622":1}}],["保留一定时间内",{"2":{"318":1,"319":1}}],["保留一定数量",{"2":{"318":1,"319":1}}],["保存到角色卡列表",{"2":{"747":1}}],["保存",{"2":{"699":1}}],["保存后重启软件",{"2":{"686":1}}],["保存后点击左上角",{"2":{"686":1}}],["保存计算表达式",{"2":{"591":1}}],["保存在海豹的主程序所在目录",{"2":{"458":1}}],["保存前不要切换左侧的分类",{"2":{"363":1}}],["保存设置",{"2":{"315":1}}],["保存文件时务必确认开启了操作系统的扩展名显示",{"2":{"48":1}}],["保持容器与宿主机网络隔离",{"0":{"497":1}}],["保持耐心",{"0":{"191":1,"232":1},"2":{"191":1,"232":1}}],["保持",{"0":{"14":1}}],["保持和上游同步",{"2":{"12":1}}],["your",{"2":{"480":1,"532":2}}],["you",{"2":{"480":1}}],["y",{"0":{"310":1},"1":{"311":1},"2":{"256":1,"635":6,"636":4,"746":2}}],["yml",{"0":{"491":1},"2":{"48":1,"491":2,"498":1}}],["yamlalias",{"2":{"583":1}}],["yaml幸运转盘",{"2":{"59":1}}],["yamlcommand",{"2":{"57":1}}],["yaml捕捉海豹",{"2":{"53":1}}],["yaml时间点",{"2":{"50":1}}],["yamlname",{"2":{"48":1,"58":1,"491":2}}],["yamltrpg",{"2":{"47":1}}],["yaml海豹核心",{"2":{"46":2}}],["yaml",{"0":{"44":1,"45":1,"46":1,"47":1,"311":1},"2":{"30":1,"31":2,"45":1,"46":2,"47":7,"48":3,"50":2,"57":2,"94":1,"103":1,"301":1,"311":1,"383":1,"414":1,"415":1,"431":3,"583":1,"699":1}}],["应填写为",{"2":{"349":1}}],["应填入有效的",{"2":{"141":1}}],["应填入",{"2":{"141":2}}],["应用内设置",{"0":{"455":1}}],["应用启动管理",{"2":{"450":1}}],["应用和服务",{"2":{"447":1,"450":1}}],["应用管理",{"2":{"447":1}}],["应用详情",{"2":{"447":1}}],["应用信息",{"2":{"447":3,"453":1}}],["应用分身",{"2":{"440":1}}],["应用双开",{"2":{"440":1}}],["应用进行注入等的危险操作需要",{"2":{"256":1}}],["应用举例",{"2":{"181":1}}],["应该怎么做",{"2":{"412":1}}],["应该怎么做的办法",{"2":{"192":1,"234":1}}],["应该",{"2":{"94":1,"104":1}}],["应该为",{"2":{"31":1}}],["应是一个整数",{"2":{"48":1}}],["牌组关键字列表",{"2":{"652":1}}],["牌组数量",{"2":{"652":1}}],["牌组名称",{"2":{"652":2,"653":1}}],["牌组4",{"2":{"81":1}}],["牌组3",{"2":{"81":1}}],["牌组2",{"2":{"81":1}}],["牌组1",{"2":{"81":1}}],["牌组的别名",{"2":{"61":1}}],["牌组的隐藏和导出控制",{"0":{"57":1}}],["牌组中仍被视为只有",{"2":{"54":1}}],["牌组",{"2":{"51":2}}],["牌组表",{"2":{"48":1,"58":1}}],["牌堆信息",{"2":{"652":1}}],["牌堆和自定义回复都是海豹提供的扩展性功能",{"2":{"650":1}}],["牌堆云端内容",{"0":{"389":1}}],["牌堆更新",{"0":{"388":1}}],["牌堆更新与云牌堆",{"0":{"387":1},"1":{"388":1,"389":1}}],["牌堆更新日期",{"2":{"48":2}}],["牌堆被读取到了",{"2":{"385":1}}],["牌堆管理",{"0":{"655":1},"2":{"385":1}}],["牌堆仓库",{"2":{"384":1}}],["牌堆以",{"2":{"383":1}}],["牌堆以某种结构化的格式保存成文件",{"2":{"383":1}}],["牌堆是什么",{"0":{"383":1}}],["牌堆名>",{"2":{"119":2}}],["牌堆名称",{"2":{"118":1,"119":2}}],["牌堆与自定义回复的结合",{"0":{"81":1}}],["牌堆支持云端内容",{"2":{"64":1}}],["牌堆配置云端内容",{"0":{"64":1}}],["牌堆内容不是一成不变的",{"2":{"58":1}}],["牌堆列表里并没有出现那个文件",{"2":{"224":1}}],["牌堆列表",{"2":{"57":1}}],["牌堆没有支持这一功能",{"2":{"57":1}}],["牌堆中定义了",{"2":{"57":1}}],["牌堆中",{"2":{"57":4,"61":1}}],["牌堆中的表示正好相反",{"2":{"50":1}}],["牌堆打包",{"0":{"56":1}}],["牌堆抽取结果字符串中",{"2":{"50":1}}],["牌堆语法",{"0":{"49":1},"1":{"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1}}],["牌堆文件",{"2":{"190":1,"226":1,"430":1}}],["牌堆文件扩展名正确吗",{"2":{"48":1}}],["牌堆文件的编码",{"2":{"30":1}}],["牌堆协议",{"2":{"48":3}}],["牌堆版本",{"2":{"48":3}}],["牌堆简介",{"2":{"48":3}}],["牌堆创建日期",{"2":{"48":2}}],["牌堆作者可以实时调整云端内容",{"2":{"389":1}}],["牌堆作者",{"2":{"48":3}}],["牌堆的基础上修改了牌堆",{"2":{"224":1}}],["牌堆的更多功能",{"0":{"60":1},"1":{"61":1,"62":1,"63":1,"64":1}}],["牌堆的标题",{"2":{"48":3}}],["牌堆的最基本格式如上",{"2":{"48":3}}],["牌堆时遇上了看不懂的内容",{"2":{"47":1}}],["牌堆区分开",{"2":{"37":1}}],["牌堆",{"0":{"382":1,"650":1},"1":{"383":1,"384":1,"385":1,"386":1,"387":1,"388":1,"389":1,"390":1,"651":1,"652":1,"653":1,"654":1,"655":1,"656":1},"2":{"15":1,"37":1,"199":1,"383":2,"386":1,"651":1,"652":1}}],["恼",{"2":{"48":3}}],["两字可以触发大于等于",{"2":{"421":1}}],["两部分组成",{"2":{"347":1}}],["两部分",{"2":{"285":1,"516":1}}],["两者组合时",{"2":{"278":1}}],["两者仅需保留一行",{"2":{"48":1}}],["两次确认后出现",{"2":{"242":1}}],["两种模式",{"2":{"709":1}}],["两种架构",{"2":{"539":1}}],["两种触发方式可以同时使用",{"2":{"320":1}}],["两种方法往往是相辅相成的",{"2":{"211":1}}],["两种写法实现效果相同",{"2":{"84":1}}],["两个点数都可以是包含骰点的表达式",{"2":{"615":1}}],["两个其他玩家",{"2":{"606":1}}],["两个页面",{"2":{"206":1,"218":1}}],["两个部分",{"2":{"70":1}}],["两个牌组",{"2":{"48":1}}],["田所浩二",{"2":{"48":4}}],["野兽牌堆",{"2":{"48":6,"58":3,"61":1,"64":1}}],["哼哼哼啊啊啊啊啊",{"2":{"48":4,"58":3,"61":1}}],["快速上手",{"0":{"745":1},"1":{"746":1,"747":1,"748":1,"749":1,"750":1,"751":1,"752":1,"753":1,"754":1,"755":1,"756":1,"757":1,"758":1,"759":1,"760":1}}],["快速文档查找",{"0":{"645":1}}],["快速交谈",{"2":{"582":1}}],["快速了解和其它骰系的区别",{"2":{"579":1}}],["快速开始",{"0":{"158":1,"537":1},"1":{"538":1,"539":1,"540":1,"541":1,"542":1,"543":1,"544":1,"545":1,"546":1},"2":{"17":1,"716":1}}],["快捷指令示例",{"2":{"709":1}}],["快捷指令触发",{"2":{"374":1}}],["快捷指令",{"0":{"374":1},"2":{"374":4,"709":1}}],["快点更新",{"2":{"78":2}}],["快端上来罢",{"2":{"48":5,"58":3,"61":1}}],["而严禁直接移出群聊",{"2":{"718":1}}],["而机器人并不会主动向你发送消息",{"2":{"708":1}}],["而且托盘点不出来右键菜单",{"0":{"696":1}}],["而只迁移数据部分",{"2":{"575":1}}],["而再次进行导入",{"2":{"442":1,"577":1}}],["而后两者就对应了上述的程序问题",{"2":{"299":1}}],["而后者应填入",{"2":{"141":1}}],["而低位端口",{"2":{"278":1}}],["而非互联网上的其他设备",{"2":{"278":1}}],["而海豹的",{"2":{"278":1}}],["而海豹会试图连接到这个端口",{"2":{"278":1}}],["而客户端应用程序会试图连接到此端口",{"2":{"278":1}}],["而端口号是这个屋子里住户的编号",{"2":{"278":1}}],["而端口用于区分同一设备上的不同应用",{"2":{"278":1}}],["而服务器正是这样一种尽可能稳定运行的",{"2":{"272":1}}],["而在编程领域和更古早的时期",{"2":{"302":1}}],["而在开源项目领域",{"2":{"279":1}}],["而在安卓",{"2":{"255":1}}],["而在日志中能看到",{"2":{"158":1}}],["而模拟器中使用",{"2":{"254":1}}],["而手机厂商对",{"2":{"254":1}}],["而你在配置海豹的过程中最常见的是",{"2":{"278":1}}],["而你一遇到问题就立刻开始写求助消息",{"2":{"225":1}}],["而你遇到的情况",{"2":{"206":1}}],["而闭门造车只会延长你设计方案到发现错误的时间",{"2":{"211":1}}],["而其出处往往具有更优质的排版",{"2":{"207":1}}],["而其他文件仍然在压缩包之中",{"2":{"196":1}}],["而搜索引擎往往只能找到泛化的知识",{"2":{"206":1}}],["而如果你想要指定这个压缩包解压到指定的文件夹",{"2":{"196":1}}],["而截图能避免这些问题",{"2":{"187":1,"201":1}}],["而当加载该插件的海豹版本为",{"2":{"167":1}}],["而感到焦头烂额",{"2":{"137":1}}],["而一个扩展可以包含多条指令",{"2":{"112":1}}],["而",{"2":{"94":1,"262":1,"302":2,"307":1,"512":1,"594":1}}],["而不包括自己",{"2":{"606":1}}],["而不属于任何一个回复项",{"2":{"417":1}}],["而不得不频繁复制黏贴清空指令的情况",{"2":{"70":1}}],["而不是包含秒数",{"2":{"314":1}}],["而不是继续使用",{"2":{"309":1}}],["而不是海豹的",{"2":{"242":1}}],["而不是对他们发泄自己的主观情绪",{"2":{"191":1,"232":1}}],["而不是",{"2":{"66":1,"539":1}}],["而不是在编写时直接换行",{"2":{"66":1}}],["而是私聊发送给指令发起者",{"2":{"601":1}}],["而是统一使用",{"2":{"585":1}}],["而是在为四个",{"2":{"82":1}}],["而是",{"2":{"66":1,"97":1}}],["而是新切分支进行编辑",{"2":{"12":1}}],["而使用牌堆的用户需要手动去获取最新的牌堆",{"2":{"58":1}}],["而牌堆就是可以提供一些",{"2":{"48":1}}],["b3=",{"2":{"631":1}}],["b3",{"2":{"631":1}}],["b=",{"2":{"631":1}}],["b属性表达式",{"2":{"606":1}}],["b2",{"2":{"603":1}}],["b2=1",{"2":{"598":1}}],["b|p",{"2":{"598":1,"610":1,"746":1}}],["bb",{"2":{"420":1}}],["bbb",{"2":{"183":2}}],["botlist",{"0":{"649":1},"2":{"649":4,"688":1}}],["botfather",{"2":{"535":2}}],["bot",{"0":{"343":1,"469":1,"532":1,"624":1},"2":{"294":1,"340":1,"343":1,"354":2,"464":1,"466":2,"469":2,"470":1,"522":1,"531":1,"532":3,"533":1,"535":1,"542":1,"624":4,"683":2,"691":1,"708":1,"727":1,"746":2}}],["boolval",{"2":{"139":2}}],["bool",{"2":{"94":7,"105":2,"110":2,"138":2}}],["binaries",{"2":{"460":1}}],["bing",{"2":{"207":1}}],["bid=$",{"2":{"135":1}}],["bid",{"2":{"135":2}}],["buff",{"0":{"670":1},"1":{"671":1},"2":{"665":1,"670":15,"671":1,"757":1}}],["bulidtools",{"2":{"479":1}}],["bukkit",{"2":{"479":3}}],["build+日期",{"2":{"538":1}}],["build",{"2":{"150":1,"151":2,"152":4,"154":1,"156":2,"539":2}}],["bug",{"0":{"7":1},"2":{"5":1,"7":2,"187":1,"192":2,"193":2,"201":1,"202":2,"206":3,"233":2,"279":1,"504":1,"538":1}}],["brd",{"2":{"497":2}}],["broadcast",{"2":{"497":1}}],["brainshop",{"2":{"135":1}}],["break",{"2":{"121":4,"139":7}}],["brief",{"2":{"48":2,"66":1,"67":1}}],["beta",{"2":{"539":2}}],["below",{"2":{"480":1}}],["be",{"2":{"110":1}}],["blame",{"2":{"99":3}}],["btoa",{"2":{"94":1,"158":1}}],["backup",{"2":{"622":1}}],["backups",{"2":{"315":1,"459":1,"491":7,"492":1,"539":1,"574":1,"575":1}}],["bad",{"2":{"539":1}}],["bak",{"2":{"315":2}}],["bat",{"0":{"252":1},"2":{"239":2,"242":2,"259":1,"262":1,"480":5,"481":1}}],["basic",{"2":{"532":1}}],["bashsealdice",{"2":{"694":1}}],["bashsudo",{"2":{"684":1}}],["bashfind",{"2":{"576":1}}],["bashchmod",{"2":{"539":1}}],["bash$",{"2":{"497":1,"541":2}}],["bashdocker",{"2":{"492":1,"493":1,"495":1,"539":1}}],["bash",{"2":{"302":1,"695":1}}],["bashpnpm",{"2":{"151":2}}],["bashnpm",{"2":{"151":2}}],["baseinfo",{"2":{"108":1}}],["base64",{"2":{"94":2,"158":1}}],["base64string",{"2":{"94":1}}],["ban|warn|trust",{"2":{"623":1}}],["bantime",{"2":{"125":1}}],["banlistinfoitem",{"2":{"125":1,"126":1}}],["ban",{"0":{"623":1},"2":{"94":5,"120":2,"123":2,"124":2,"125":1,"126":1,"127":8,"460":1,"623":7}}],["bandizip",{"2":{"56":1}}],["bye",{"2":{"624":1,"683":1,"746":1}}],["by",{"2":{"48":3,"90":1,"480":1}}],["b",{"2":{"47":2,"66":4,"72":3,"85":1,"98":2,"115":4,"116":2,"117":2,"178":1,"570":2,"598":1,"606":2,"637":1,"649":5}}],["只要存在暴击的骰子",{"2":{"636":1}}],["只要大概知道有什么指令",{"2":{"20":1}}],["只显示被禁用",{"2":{"623":1}}],["只陈述结果",{"2":{"612":1}}],["只在你明确知道为何要使用",{"2":{"538":1}}],["只需一个不到",{"2":{"549":1}}],["只需简单修改",{"2":{"491":1}}],["只需要直接在匹配文本中写出形如",{"2":{"74":1}}],["只有一个设备",{"0":{"437":1}}],["只有在你完全确定某进程的用途与功能时",{"2":{"199":1}}],["只会看到单独的",{"2":{"426":1}}],["只会减慢排查问题和解决问题的速度",{"2":{"190":1}}],["只能在当前设备上管理海豹",{"2":{"347":1}}],["只能在牌堆内部调用",{"2":{"57":1}}],["只对",{"2":{"346":1}}],["只是编写需要遵循对应的结构方便读取",{"2":{"383":1}}],["只是给你一个或许更好的建议",{"2":{"185":1,"214":1}}],["只是处理了一下发送者传过来的消息",{"2":{"135":1}}],["只列出其中主要的一些文件",{"2":{"152":1}}],["只被视为一次指令",{"2":{"51":1}}],["只允许使用空格",{"2":{"46":1}}],["缩进的空格数并不重要",{"2":{"46":1}}],["缩进的长度表示了层级",{"2":{"46":1}}],["缩进不允许",{"2":{"46":1}}],["缩进是有含义的",{"2":{"46":2}}],["~",{"2":{"45":1}}],["welcome",{"0":{"707":1},"2":{"700":1,"707":3}}],["websocket",{"2":{"242":1}}],["webapi",{"2":{"157":1}}],["webui",{"0":{"307":1,"684":1,"699":1},"2":{"141":3,"158":2,"199":1,"225":1,"278":2,"299":1,"307":4,"315":1,"347":1,"349":1,"350":1,"426":3,"428":1,"444":1,"539":3,"542":1,"543":1,"551":1,"569":1,"622":4,"642":1,"681":1,"683":1,"684":4,"686":1,"690":1,"691":1}}],["web",{"2":{"62":1,"158":1,"514":1,"518":1,"524":1}}],["ww",{"0":{"711":1},"2":{"572":1,"711":5,"746":1}}],["wod",{"0":{"635":1,"711":1},"2":{"572":1,"635":2,"740":2,"746":1}}],["workspace",{"2":{"532":1}}],["workplace",{"2":{"532":1}}],["words",{"2":{"89":1,"90":2}}],["world",{"0":{"740":1},"2":{"45":1,"158":3,"740":1}}],["write",{"2":{"532":6}}],["w",{"0":{"305":1},"1":{"306":1,"307":1,"308":1,"309":1}}],["ws",{"2":{"190":1,"242":2,"258":1,"265":5,"278":1,"491":1,"494":2,"515":1,"521":4}}],["who",{"0":{"764":1},"2":{"569":1,"764":1}}],["whitespace",{"2":{"209":2}}],["why",{"2":{"189":1,"217":1}}],["what",{"2":{"189":1,"209":1,"217":1}}],["when",{"2":{"189":1,"217":1}}],["where",{"2":{"189":1,"217":1,"460":6}}],["wq",{"2":{"96":1}}],["walleq",{"2":{"94":2}}],["warning",{"2":{"89":1,"90":1,"210":1,"299":1}}],["wifi",{"0":{"685":1},"1":{"686":1,"687":1},"2":{"686":1}}],["wip",{"2":{"515":3,"527":1}}],["wiki",{"2":{"346":1,"402":1}}],["win",{"2":{"262":2}}],["window",{"2":{"262":2}}],["windows",{"0":{"308":1,"309":1,"693":1,"694":1},"1":{"694":1},"2":{"56":1,"93":1,"199":1,"224":1,"227":1,"239":1,"252":1,"262":2,"272":2,"285":1,"292":5,"302":1,"308":1,"309":6,"457":1,"460":2,"478":1,"514":4,"516":1,"538":3,"684":1,"686":3,"693":1}}],["winscp",{"2":{"224":1}}],["winrar",{"2":{"196":1}}],["with",{"2":{"37":2}}],["都市传说不再是什么可以轻松无视的",{"2":{"740":1}}],["都存在掷骰检定指令",{"2":{"721":1}}],["都被设计为可插拔的",{"2":{"569":1}}],["都被视为注释",{"2":{"43":1}}],["都占用",{"2":{"513":1}}],["都有说明",{"2":{"506":1}}],["都有可能和你所遇到的问题有关",{"2":{"227":1}}],["都能触发该回复项",{"2":{"420":1}}],["都可以被用作前缀",{"2":{"720":1}}],["都可以进行",{"2":{"414":1}}],["都可以尝试使用自定义回复",{"2":{"412":1}}],["都可以在右侧看见当前分类的",{"2":{"362":1}}],["都会给出",{"2":{"389":1}}],["都会调用该接口获取该牌组的最新数据",{"2":{"62":1}}],["都不会出现用户可直接读出的报错信息",{"2":{"252":1}}],["都不具备未卜先知的能力",{"2":{"187":1,"201":1}}],["都将帮助回答者更有效地了解你的背景信息",{"2":{"221":1}}],["都将被看作是字符串",{"2":{"34":1}}],["都重新去查找学习这个概念所包含的下属知识",{"2":{"209":1}}],["都挂载在这个内置对象上",{"2":{"158":1}}],["都需要用到海豹所提供的一种简单的脚本语言",{"2":{"92":1}}],["行内注释",{"0":{"42":1}}],["行政法规",{"2":{"15":1}}],["分别代表",{"2":{"634":1}}],["分别填入",{"2":{"491":1}}],["分别对每个",{"2":{"491":1}}],["分别对应着该回复项的触发条件和骰子的回复动作",{"2":{"418":1}}],["分组>",{"2":{"722":1}}],["分组名分别是",{"2":{"642":1}}],["分组名",{"2":{"642":2,"643":1}}],["分组选择中存在一个",{"2":{"396":1}}],["分组",{"2":{"364":1,"396":2}}],["分",{"2":{"344":1}}],["分离部署为海豹核心和",{"2":{"515":1}}],["分离部署登录流程",{"0":{"242":1}}],["分离部署",{"0":{"515":1},"1":{"516":1,"517":1,"518":1,"519":1,"520":1,"521":1,"522":1,"523":1,"524":1,"525":1,"526":1,"527":1},"2":{"190":1,"242":1,"515":1}}],["分号的使用",{"2":{"174":1}}],["分钟",{"2":{"172":1,"331":1,"686":2}}],["分为",{"2":{"68":1}}],["分割",{"2":{"39":1,"40":1}}],["分隔符",{"2":{"371":1,"374":1}}],["分隔即可",{"2":{"68":1}}],["分隔",{"2":{"37":1,"174":1}}],["空白名片",{"2":{"733":1}}],["空气",{"2":{"129":1}}],["空",{"2":{"38":1,"374":1}}],["由代骰",{"2":{"593":2,"639":1}}],["由工具生成了录入数据的指令",{"2":{"582":1}}],["由海豹核心主动连接",{"2":{"515":2}}],["由高到低分别是",{"2":{"120":1}}],["由于搜索库的限制",{"2":{"642":1}}],["由于多项式",{"2":{"637":1}}],["由于等于劣势骰",{"2":{"632":1}}],["由于惩罚骰",{"2":{"631":1}}],["由于骰4个6面骰",{"2":{"628":1}}],["由于骰5个24面骰",{"2":{"628":1}}],["由于天气不错",{"2":{"628":1}}],["由于要私聊发送检定结果",{"2":{"601":1}}],["由于属性和技能在检定时基本不做区分",{"2":{"585":1}}],["由于笔者的游戏栈",{"2":{"582":1}}],["由于官方",{"2":{"513":1}}],["由于通过",{"2":{"491":1,"496":1}}],["由于模拟器对性能要求较高",{"2":{"254":1}}],["由于项目的特殊性",{"2":{"239":1}}],["由于你并没有领会每一个细节",{"2":{"210":1}}],["由于经过了",{"2":{"119":1}}],["由于",{"2":{"73":2,"236":1,"261":1,"262":1,"292":1,"334":1,"471":1,"499":1,"514":1,"519":1,"522":1,"549":1,"550":1}}],["由于海豹的",{"2":{"68":1}}],["由",{"2":{"38":3,"39":1,"40":1,"77":1,"314":2,"515":1,"602":1}}],["值直葬",{"2":{"584":1}}],["值为",{"2":{"259":1}}],["值",{"2":{"138":1,"665":2,"670":1,"746":1}}],["值可以是如下类型",{"2":{"38":1,"45":1}}],["值需要是下述类型之一",{"2":{"33":1}}],["将本群的当前日志设定为空",{"2":{"727":1}}],["将本群的当前日志设定成新日志",{"2":{"727":1}}],["将本群的绑定关系解除",{"2":{"641":1}}],["将机器人邀请进服务器",{"2":{"718":1}}],["将收到的消息中的对应",{"2":{"706":1}}],["将在你系统上",{"2":{"695":1}}],["将在服务器上开启一个",{"2":{"686":2}}],["将安装包解压到你为新海豹准备的目录",{"2":{"695":1}}],["将安装包解压到合适的目录",{"2":{"539":1}}],["将他删除",{"2":{"686":1}}],["将要行动的玩家",{"2":{"660":1}}],["将会进行模糊搜索",{"2":{"653":1}}],["将会从",{"2":{"254":1}}],["将显示为",{"2":{"648":1}}],["将使用当前群聊中你的角色名",{"2":{"641":1}}],["将使用扩展语法的牌堆与标准",{"2":{"37":1}}],["将角色名设置为",{"2":{"640":1}}],["将无法进行私聊",{"2":{"638":1}}],["将无法继续使用",{"2":{"236":1}}],["将生成",{"2":{"616":1}}],["将以下单位从先攻列表中移除",{"2":{"660":1}}],["将以下内容复制进去",{"2":{"458":1}}],["将以给出的数值进行检定",{"2":{"595":1}}],["将保存的属性数值以",{"2":{"592":1}}],["将指定角色卡从其绑定的所有群解绑",{"2":{"641":1}}],["将指定角色卡绑定到当前群聊",{"2":{"641":1,"748":1}}],["将指定用户移出黑名单",{"2":{"623":1}}],["将指定用户添加至信任列表",{"2":{"623":1}}],["将指定用户拉入黑名单",{"2":{"623":1}}],["将指定属性增加或减去表达式的计算结果",{"2":{"590":1,"665":1}}],["将指定属性设定为指定表达式的计算结果",{"2":{"589":1}}],["将指定群的指定用户踢出",{"2":{"94":1}}],["将指定群的指定用户封禁指定时间",{"2":{"94":1}}],["将若干个属性名视为同一个属性",{"2":{"582":1}}],["将迁出海豹核心中的",{"2":{"575":1}}],["将整个海豹核心目录复制到新的位置即可",{"2":{"574":1}}],["将目录名中的版本号删去或许是更好的做法",{"2":{"539":1}}],["将它们视为诈骗而予以警告",{"2":{"718":1}}],["将它复制保存",{"2":{"535":1}}],["将它命名为",{"2":{"458":1}}],["将该文件后缀改为",{"2":{"480":1}}],["将损坏的数据文件",{"2":{"460":1}}],["将你当前群聊中的独立卡数据保存为个人角色卡",{"2":{"641":1}}],["将你损坏的数据库文件另外保存一份以防万一",{"2":{"459":1}}],["将你的",{"2":{"131":1,"568":1}}],["将海豹核心的任务卡片下拉并释放",{"2":{"450":1}}],["将里面的",{"2":{"441":1}}],["将跳过本文件内的所有回复项",{"2":{"417":1}}],["将列出现有的所有分组和它们的别名",{"2":{"397":1}}],["将图片放在骰子的适当目录",{"2":{"375":1}}],["将替换",{"2":{"373":1}}],["将调用",{"2":{"368":1}}],["将标签页切换到",{"2":{"356":1}}],["将进行对应等级配置的操作",{"2":{"355":1}}],["将取命中词汇中的",{"2":{"355":1}}],["将时间线设置为",{"2":{"350":1}}],["将所有答案用空格连接起来",{"2":{"349":1}}],["将不再支持",{"2":{"254":1}}],["将不再进行更新",{"2":{"254":1}}],["将这作为你的第一个新知识开始学习",{"2":{"206":1}}],["将一切不明了的问题诉诸他人的帮助",{"2":{"204":1}}],["将其复制回海豹的原路径",{"2":{"460":1}}],["将其保存在和你要编写的",{"2":{"161":1}}],["将其按顺序存储于多个变量",{"2":{"73":1}}],["将文本流作为",{"2":{"135":1}}],["将处理完的数据写回去",{"2":{"131":1}}],["将命令注册到扩展中",{"2":{"117":2,"129":1,"134":1}}],["将群内的该群组变量设置为",{"2":{"99":1}}],["将群为",{"2":{"96":2}}],["将触发者的该个人变量设置为",{"2":{"99":1}}],["将扩展",{"2":{"94":1}}],["将",{"2":{"94":3,"242":1,"245":1,"262":1,"480":1,"491":1,"709":2}}],["将是你的一大助力",{"2":{"70":1}}],["将首先调用",{"2":{"64":1}}],["将提示找不到牌组",{"2":{"57":1}}],["将只列出",{"2":{"57":1}}],["将重置所有牌组到初始状态",{"2":{"51":1}}],["将内容拼接进该结果",{"2":{"50":1}}],["将修改后的内容提交到远程后",{"2":{"10":1}}],["风格的注释",{"2":{"37":1,"41":1}}],["起",{"2":{"37":1,"120":1,"315":1,"316":1,"317":1,"426":1,"545":1,"706":1,"707":1,"708":1,"709":1}}],["根目录",{"2":{"577":1}}],["根据你使用的规则",{"2":{"747":1}}],["根据平台不同",{"2":{"747":1}}],["根据服务提供商",{"2":{"684":1}}],["根据当前房规确定",{"2":{"597":1}}],["根据原则",{"2":{"582":1}}],["根据我们的观察",{"2":{"550":1}}],["根据系统不同",{"2":{"539":1}}],["根据猫好感度",{"2":{"81":1}}],["根据骰点结果展示不同文案",{"0":{"24":1}}],["根本不存在",{"2":{"36":2,"40":2,"46":2}}],["什么是骰子",{"0":{"717":1}}],["什么是自定义回复",{"0":{"412":1}}],["什么是自定义文案",{"0":{"361":1}}],["什么是帮助文档",{"0":{"392":1}}],["什么是拦截功能",{"0":{"352":1}}],["什么是签名",{"0":{"251":1}}],["什么是命令行一知半解",{"2":{"210":1}}],["什么是",{"0":{"193":1,"202":1,"250":1}}],["什么是开源程序",{"0":{"186":1,"200":1}}],["什么是开源",{"0":{"186":1,"200":1}}],["什么是相对路径",{"2":{"56":1}}],["什",{"2":{"36":2,"40":2,"46":2}}],["狐狸核心",{"2":{"36":2,"40":2,"46":2}}],["持续开发中",{"2":{"36":3,"40":2,"46":2}}],["状态",{"2":{"36":5,"40":4,"46":4}}],["含义",{"2":{"159":1}}],["含义相同",{"2":{"36":1}}],["含有中华人民共和国法律",{"2":{"15":1}}],["哈希表",{"2":{"36":1}}],["表演",{"2":{"665":2}}],["表述时不以",{"2":{"585":1}}],["表格",{"2":{"504":1}}],["表达式用法请参考",{"2":{"711":1,"712":1}}],["表达式形如",{"2":{"635":1,"636":1}}],["表达式中可以包含骰点",{"2":{"590":1,"665":1}}],["表达式指定自动清理的时机",{"2":{"320":1}}],["表达式规定自动备份的时机",{"2":{"317":1}}],["表达式定时执行",{"2":{"141":1}}],["表达式或使用",{"2":{"141":1}}],["表达式并不熟悉",{"2":{"140":1}}],["表达式",{"2":{"140":2,"141":1,"314":2,"589":3,"590":1,"591":1,"627":1,"665":1,"667":2,"670":1,"711":1,"712":1}}],["表达式为真",{"0":{"74":1},"2":{"74":1,"83":2,"419":1}}],["表名将作为这个牌组的名称",{"2":{"61":1}}],["表中的信息不是必须的",{"2":{"48":1}}],["表示可以在所列各项中选择一个",{"2":{"722":1}}],["表示必须在所列各项中选择一个",{"2":{"722":1}}],["表示此参数可以被省略",{"2":{"722":1}}],["表示你应以相应内容替换此处内容",{"2":{"722":1}}],["表示该项的权重",{"2":{"53":1}}],["表示放回抽取",{"2":{"50":2}}],["表示不放回抽取",{"2":{"50":2}}],["表示",{"2":{"45":1,"344":1,"756":1}}],["表还有一种更紧凑的内联表示法",{"2":{"36":1}}],["表头",{"2":{"36":1}}],["表",{"0":{"36":1},"2":{"36":1}}],["表的一种紧凑表示法",{"2":{"33":1}}],["直至目前",{"2":{"512":1}}],["直接写数值",{"2":{"756":1}}],["直接点是就可以了",{"2":{"693":1}}],["直接点击",{"2":{"11":1}}],["直接重复步骤",{"2":{"686":1}}],["直接指明技能名和数值",{"2":{"595":1}}],["直接覆盖替换旧版本海豹",{"2":{"544":1}}],["直接下载对应版本的服务端核心文件",{"2":{"479":1}}],["直接下载最新版即可",{"2":{"460":1}}],["直接上传",{"2":{"415":1}}],["直接上传的",{"2":{"56":1}}],["直接把文件拖动到模拟器就可以传文件了",{"2":{"257":1}}],["直接将",{"2":{"258":1}}],["直接将日志复制到聊天窗口中会严重影响日志的可读性",{"2":{"225":1}}],["直接将代码复制到聊天窗口中会极大地破坏这种代码规范",{"2":{"224":1}}],["直接使用被提示错误",{"0":{"155":1}}],["直接在要匹配的文本一栏中写入正则表达式即可",{"2":{"73":1}}],["直接表示",{"2":{"45":1}}],["直到数据库文件正常",{"2":{"459":1}}],["直到这些细节足够你应对眼前的问题和未来可能遇到的相似的问题",{"2":{"211":1}}],["直到对每一个细节再无疑惑的方式",{"2":{"209":1}}],["直到该行结束的所有文本都被视为注释",{"2":{"42":1}}],["直到下一个非空白字符或结束引号为止",{"2":{"35":1}}],["时请注意辨别",{"2":{"723":1}}],["时显示",{"2":{"640":1}}],["时附加一个奖励骰",{"2":{"559":1}}],["时响应",{"2":{"499":1}}],["时分秒",{"2":{"315":2}}],["时代定义的一套接口语言",{"2":{"268":1}}],["时更快地学习新概念的办法",{"2":{"212":1}}],["时常",{"2":{"190":1}}],["时就在安装这个文件里面所指示的依赖包",{"2":{"152":1}}],["时会返回的帮助内容",{"2":{"114":1}}],["时间不定",{"2":{"504":1}}],["时间不确定",{"2":{"247":1}}],["时间戳",{"2":{"141":1,"159":1}}],["时间点",{"2":{"50":5,"57":17}}],["时间",{"2":{"45":1}}],["时",{"2":{"35":1,"64":2,"66":1,"70":1,"94":2,"141":4,"164":1,"167":1,"209":1,"274":1,"302":1,"334":1,"350":1,"354":1,"414":1,"480":1,"491":1,"494":1,"594":1,"690":1}}],["多数情况下",{"2":{"722":1}}],["多项式",{"2":{"637":1}}],["多开指同时运行多个海豹核心",{"2":{"571":1}}],["多号指每个骰子上连接多个帐号",{"2":{"571":1}}],["多试验几次来找到最适合你设备的策略",{"2":{"446":1}}],["多轮骰点",{"0":{"629":1}}],["多轮检定",{"0":{"596":1}}],["多轮",{"2":{"368":1,"373":1}}],["多次点击软件版本号",{"2":{"262":1}}],["多次抽取指令",{"2":{"51":1}}],["多复制了",{"2":{"247":1}}],["多重条件算符",{"0":{"181":1}}],["多个收件邮箱用空格隔开",{"2":{"729":1}}],["多个回复结果将",{"2":{"422":1}}],["多个语句可以用",{"2":{"174":1}}],["多个",{"2":{"90":1,"245":1}}],["多条件条件语句",{"0":{"84":1}}],["多行回复的错误使用",{"0":{"82":1}}],["多行换行符中",{"2":{"35":1}}],["多出一个逗号也是可以的",{"2":{"37":1}}],["多套文案的实现一般需要用到",{"2":{"25":1}}],["多套文案的实现",{"0":{"25":1},"1":{"26":1,"27":1,"28":1}}],["它作为牌组名出现",{"2":{"652":1}}],["它作为牌堆名出现",{"2":{"652":1}}],["它能够在收到的消息符合一定条件时",{"2":{"412":1}}],["它提供方法来操控文本",{"2":{"402":1}}],["它提供了一种访问",{"2":{"313":1}}],["它支持面向对象程序设计",{"2":{"402":1}}],["它支持你直接使用换行",{"2":{"35":1}}],["它的含义与",{"2":{"417":1}}],["它的版本号是",{"2":{"385":1}}],["它的核心代码如下",{"2":{"135":1}}],["它归属于",{"2":{"363":1}}],["它包含了",{"2":{"309":1}}],["它给用户提供了通过输入命令与操作系统进行交互的交互方式",{"2":{"302":1}}],["它也可以用于桌面计算",{"2":{"286":1}}],["它也将极大地帮助回答者排查你所遇到的问题",{"2":{"225":1}}],["它也应提供帮助文本",{"2":{"147":1}}],["它是一个好问题的一部分",{"2":{"222":1}}],["它只是一个私骰",{"2":{"190":1}}],["它变得非常大",{"2":{"190":1}}],["它传递过来的信息是",{"2":{"135":1}}],["它决定是否放回抽取",{"2":{"94":1}}],["它会自动检测端口",{"2":{"693":1}}],["它会解析并执行用户输入的命令",{"2":{"302":1}}],["它会输出后面文本的执行结果",{"2":{"70":1}}],["它会返回上一节中的示例",{"2":{"64":1}}],["它会连同它后面的所有空白",{"2":{"35":1}}],["它们的详细信息在本章的后续内容中逐一介绍",{"2":{"625":1}}],["它们也被视为同义词",{"2":{"582":1}}],["它们完全指代的是同一属性",{"2":{"582":1}}],["它们是海豹数据在导出时的一份快照",{"2":{"442":1,"577":1}}],["它们是快速创建新自定义回复的不同方式",{"2":{"415":1}}],["它们是",{"2":{"290":1}}],["它们是所有功能的中坚",{"2":{"19":1}}],["它们往往能比传统搜索更快地获得信息",{"2":{"207":1}}],["它们很可能会提供二次封装后",{"2":{"93":1}}],["它们能在分享时说明更多信息",{"2":{"48":3}}],["它们按照扩展列出了每个指令的详细用法",{"2":{"20":1}}],["n我收到了",{"2":{"706":1}}],["n骰主你好",{"2":{"706":2}}],["n骰池已经抽空",{"2":{"704":1}}],["n你获得了3次死亡豁免检定失败",{"2":{"678":1}}],["n在昏迷状态下遭受了1点过量伤害",{"2":{"678":1}}],["n在昏迷状态下遭受了3点过量伤害",{"2":{"665":2}}],["n遭受了7点过量伤害",{"2":{"678":1}}],["n遭受了1点过量伤害",{"2":{"665":1}}],["n8",{"2":{"667":1}}],["n修改",{"2":{"665":2,"678":2}}],["n感知",{"2":{"665":1}}],["n读入",{"2":{"665":1,"670":6,"678":1}}],["n4",{"2":{"659":1}}],["n3",{"2":{"659":1}}],["n2",{"2":{"659":1}}],["n16",{"2":{"669":1}}],["n17",{"2":{"667":2}}],["n1",{"2":{"659":6,"660":1}}],["n自由分配模式请用",{"2":{"658":1}}],["n获取带属性名的预设请用",{"2":{"658":1}}],["n严峻",{"2":{"653":1}}],["n索具装备",{"2":{"653":1}}],["nrig",{"2":{"653":1}}],["n发票",{"2":{"653":1}}],["ninvoice",{"2":{"653":1}}],["nickname",{"2":{"108":1,"109":1}}],["ngre5421",{"2":{"653":1}}],["ngre4889",{"2":{"653":1}}],["ngre3178",{"2":{"653":1}}],["ngre单词",{"2":{"652":1}}],["n更新时间",{"2":{"652":1}}],["n时间",{"2":{"652":1}}],["n牌组",{"2":{"652":1}}],["n牌组数量",{"2":{"652":1}}],["n牌堆",{"2":{"652":1}}],["n版本",{"2":{"652":1}}],["n作者",{"2":{"652":1}}],["n格式",{"2":{"652":1}}],["n掷出了",{"2":{"638":1,"639":1}}],["nd10=",{"2":{"629":2}}],["nd100=2",{"2":{"703":1}}],["nd100=24",{"2":{"596":1}}],["nd100=31",{"2":{"703":1}}],["nd100=53",{"2":{"703":1}}],["nd100=71",{"2":{"703":1}}],["nd100=6",{"2":{"703":1}}],["nd100=82",{"2":{"611":1}}],["nd100=87",{"2":{"596":1}}],["nd100=9",{"2":{"608":1}}],["nd100=1",{"2":{"596":1}}],["n>",{"2":{"625":1}}],["n命令",{"2":{"625":1}}],["nhp",{"2":{"616":2,"670":1}}],["n体型",{"2":{"616":2}}],["n体质",{"2":{"616":2}}],["n力量",{"2":{"616":2,"658":5,"665":2,"670":2}}],["n理智变化",{"2":{"608":1,"611":1}}],["n平手",{"2":{"605":1}}],["n木落胜出",{"2":{"604":1}}],["nszz",{"2":{"604":1,"605":1}}],["n悄悄进行了一项心理学检定",{"2":{"602":1}}],["n对的",{"2":{"600":1}}],["n生命值",{"2":{"593":2}}],["n的理智检定",{"2":{"611":1}}],["n的",{"2":{"599":1,"602":1}}],["n的个人属性为",{"2":{"593":1}}],["n的属性变化",{"2":{"593":1}}],["n的coc7属性录入完成",{"2":{"593":1}}],["nn",{"0":{"640":1},"2":{"589":1,"640":5,"746":1,"747":1}}],["np=75",{"2":{"600":1}}],["np=91",{"2":{"600":1}}],["np=36",{"2":{"600":1}}],["np",{"0":{"441":1},"2":{"441":3}}],["npm",{"0":{"154":1},"2":{"148":1,"152":2,"154":1,"162":1}}],["nt",{"2":{"295":1}}],["ntqq",{"0":{"295":1},"2":{"285":2,"287":1,"294":1,"295":1,"297":1,"341":3,"348":1,"512":1,"513":3,"516":2,"519":1,"522":2}}],["nausterity",{"2":{"653":1}}],["napcatqq",{"0":{"294":1,"522":1,"523":1},"1":{"523":1,"524":1},"2":{"294":2,"309":1,"522":3}}],["napcat",{"2":{"227":1,"341":2,"513":3,"522":2,"523":1}}],["native",{"2":{"154":1}}],["namednd",{"0":{"763":1},"2":{"746":1,"763":1}}],["name",{"0":{"762":1},"2":{"37":2,"47":2,"48":1,"90":1,"98":2,"107":1,"114":1,"117":2,"119":3,"121":2,"125":1,"127":8,"129":7,"130":2,"133":2,"134":3,"136":3,"139":2,"150":1,"158":1,"159":2,"165":3,"166":1,"430":1,"539":1,"569":1,"762":1}}],["none",{"2":{"733":1}}],["noqueue",{"2":{"497":1}}],["no",{"2":{"497":1}}],["nogui",{"2":{"480":2}}],["nox",{"2":{"259":2}}],["node",{"2":{"148":2,"158":1,"162":1}}],["now",{"2":{"141":2,"142":1}}],["not",{"0":{"198":1}}],["notepad++",{"2":{"93":1}}],["notice",{"2":{"89":1,"90":1,"105":1}}],["n出",{"2":{"136":1}}],["n已添加第$",{"2":{"131":1}}],["num=10",{"2":{"722":1}}],["num=",{"2":{"642":1}}],["number",{"2":{"130":2,"133":1,"141":1}}],["num",{"2":{"130":7}}],["null",{"2":{"38":1,"45":1,"110":1,"460":6,"646":1}}],["n$",{"2":{"129":1}}],["n`",{"2":{"127":1}}],["n它的逃跑意愿为$",{"2":{"116":1,"117":1}}],["n海豹的逃走骰",{"2":{"82":1}}],["n海豹现在离终点还有37格",{"2":{"82":1}}],["n形象是海豹",{"2":{"68":1}}],["nc",{"2":{"48":3,"90":1}}],["n",{"0":{"293":1},"1":{"294":1,"295":1},"2":{"35":2,"66":2,"68":1,"82":3,"110":5,"127":1,"129":2,"130":2,"345":1,"368":1,"371":1,"373":1,"375":1,"552":1,"616":1,"635":5,"652":3,"653":3,"658":5,"665":1,"702":1}}],["nexp",{"2":{"665":1}}],["next",{"2":{"11":1}}],["network",{"2":{"498":2,"539":1}}],["newbot",{"2":{"535":2}}],["news",{"2":{"142":1}}],["newconfigitem",{"2":{"94":1,"138":1}}],["newcmdexecuteresult",{"2":{"94":1,"115":2,"116":2,"117":2,"119":2,"121":2,"127":11,"129":3,"130":7,"133":4,"134":2,"135":3,"139":3}}],["newcmditeminfo",{"2":{"94":1,"114":1,"117":1,"119":2,"121":1,"127":5,"129":1,"130":1,"133":1,"134":1,"139":1}}],["newtemplatebyyaml",{"2":{"94":1,"103":1}}],["newtemplate",{"2":{"94":1,"103":1}}],["newmessage",{"2":{"94":1,"104":1}}],["newrulecheckresult",{"2":{"94":1,"136":1}}],["newrule",{"2":{"94":1,"136":1}}],["newext",{"2":{"94":3}}],["new",{"2":{"11":1,"94":3,"112":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"137":1,"139":1,"464":1,"530":1,"641":1,"704":1,"727":1,"746":2,"748":1}}],["引用图片正确格式示例",{"2":{"443":1}}],["引用自说明",{"2":{"239":1}}],["引号键则允许包含任何",{"2":{"34":1}}],["引起来的字符串",{"2":{"34":1}}],["z",{"0":{"312":1},"1":{"313":1},"2":{"635":4,"636":5}}],["zygisk",{"2":{"256":2,"257":2}}],["zshchmod",{"2":{"539":1}}],["zsh",{"2":{"239":1,"302":1}}],["zip",{"2":{"56":3,"149":1,"315":2}}],["z0",{"2":{"34":1}}],["za",{"2":{"34":1}}],["数值",{"2":{"663":1}}],["数秒钟后",{"2":{"539":1}}],["数学运算",{"0":{"176":1}}],["数据统计",{"0":{"728":1,"737":1}}],["数据使用等",{"2":{"447":1}}],["数据导出路径为",{"2":{"442":1}}],["数据迁移",{"0":{"434":1}}],["数据库损坏发生的原因很多",{"2":{"456":1}}],["数据库检查和修复",{"0":{"433":1,"456":1},"1":{"457":1,"458":1,"459":1,"460":1}}],["数据库文件",{"2":{"431":2}}],["数据目录",{"2":{"430":1}}],["数据序列化语言被发明出来",{"2":{"301":1}}],["数据序列化语言",{"0":{"301":1},"2":{"281":1,"304":1,"311":1}}],["数据类型和赋值",{"0":{"173":1}}],["数据处理模板",{"0":{"131":1}}],["数据结构",{"2":{"98":2}}],["数据结构的子成员是一个数组",{"2":{"47":1}}],["数量",{"2":{"129":1,"610":1,"616":1,"653":1,"658":2,"714":1,"746":4,"750":1,"755":1,"762":1,"763":1}}],["数字id",{"2":{"642":1}}],["数字类型",{"2":{"173":1}}],["数字格式的",{"2":{"172":1}}],["数字格式的星期",{"2":{"172":1}}],["数字格式的现时间",{"2":{"172":3}}],["数字格式的现月份",{"2":{"172":1}}],["数字格式的现日期",{"2":{"172":2}}],["数字格式的年份",{"2":{"172":1}}],["数字论证",{"2":{"48":5,"58":3,"61":2}}],["数字",{"2":{"34":1,"52":2,"722":1}}],["数组类型",{"2":{"125":3}}],["数组中的每一项都是一个",{"2":{"125":1}}],["数组合并",{"2":{"64":1}}],["数组是用",{"2":{"37":1}}],["数组",{"0":{"37":1,"39":1,"47":1},"2":{"33":1,"38":1,"402":1}}],["字样的是自动生成的备份",{"2":{"315":1}}],["字段同上",{"2":{"126":1}}],["字段的值为内容组成一个牌组",{"2":{"57":1}}],["字段的值为关键字",{"2":{"57":1}}],["字段",{"2":{"57":1}}],["字典",{"2":{"36":1}}],["字符都可以使用",{"2":{"35":1}}],["字符",{"2":{"34":1}}],["字符串当然不能和数值比较大小",{"2":{"183":1}}],["字符串类型",{"2":{"118":3,"123":3,"125":2}}],["字符串数组",{"2":{"64":1}}],["字符串数组数据",{"2":{"63":1}}],["字符串",{"0":{"35":1},"2":{"33":1,"38":1,"45":1,"128":1}}],["字母和数字",{"2":{"172":1}}],["字母",{"2":{"34":1}}],["也能看到群号",{"2":{"706":1}}],["也能正常响应用户的命令",{"2":{"223":1}}],["也请各位骰主谨慎对待大家的信任",{"2":{"698":1}}],["也在此感谢一代又一代无名作者和译者做出的工作",{"2":{"646":1}}],["也就无法收到暗骰结果",{"2":{"638":1}}],["也就是说",{"2":{"594":1}}],["也就是增加一个触发词",{"2":{"117":1}}],["也就是中间所有分隔符都用一个空格替代",{"2":{"110":1}}],["也只有胜者可以获得技能成长标记",{"2":{"613":1}}],["也只是兴趣的一部分",{"2":{"191":1,"232":1}}],["也相同应用",{"2":{"604":1}}],["也指向同一属性",{"2":{"582":1}}],["也支持很方便地多开",{"2":{"571":1}}],["也提供自动卸载",{"2":{"541":1}}],["也提供了此文章的文件",{"2":{"215":1}}],["也不自动开启",{"2":{"691":1}}],["也不要在临时目录中运行海豹核心",{"2":{"539":1}}],["也不可用",{"2":{"514":1}}],["也不对相应后果负责",{"2":{"512":1}}],["也不等于",{"2":{"78":1}}],["也即各种暗骰指令不受影响",{"2":{"471":1}}],["也即默认页面下",{"2":{"299":1}}],["也会暂停",{"2":{"727":1}}],["也会计算属性的总值供用户参考",{"2":{"616":1}}],["也会同时抽取具体条目",{"2":{"612":2}}],["也会将实际去匹配的拼音展示出来",{"2":{"356":1}}],["也会更方便开发者们归档问题和修改程序",{"2":{"192":1,"233":1}}],["也经常被使用到的一种",{"2":{"292":1}}],["也应该把你尝试过的方法描述出来",{"2":{"226":1}}],["也希望你通过本系列科普有所收获",{"2":{"212":1,"234":1}}],["也希望你能友善且相对客观地叙述问题",{"2":{"191":1,"232":1}}],["也包含着我们不理解的知识的情况",{"2":{"209":1}}],["也有可能要求你有其它知识的了解",{"2":{"425":1}}],["也有可能是胡编乱造",{"2":{"207":1}}],["也有助于你更快地解决问题",{"2":{"187":1,"201":1}}],["也有稍微复杂的",{"2":{"135":1}}],["也是娱乐骰",{"0":{"569":1}}],["也是登录二维码",{"2":{"493":1}}],["也是插件的数据目录",{"2":{"430":1}}],["也是经常被使用的",{"2":{"420":1}}],["也是一种",{"2":{"302":1}}],["也是大部分开源项目正式的反馈渠道",{"2":{"279":1}}],["也是维护海豹社区良好氛围的行为",{"2":{"229":1}}],["也是文本",{"2":{"173":1}}],["也是这样",{"2":{"34":1}}],["也更好地提示使用插件的骰主",{"2":{"167":1}}],["也非常欢迎你向模板仓库提",{"2":{"155":1}}],["也可手动填写新的分组名来创建文件夹",{"2":{"396":1}}],["也可用于编写骰子的使用帮助",{"2":{"392":1}}],["也可能是频道",{"2":{"747":1}}],["也可能是因为触发了某些自动规则添加的",{"2":{"323":1}}],["也可能登上电梯后不慎消失在超市的某个漆黑楼层中",{"2":{"740":1}}],["也可能称为",{"2":{"684":1}}],["也可能面临高达每月",{"2":{"236":1}}],["也可达成类似的效果",{"2":{"51":1}}],["也可以从",{"2":{"718":1}}],["也可以从文件名中确定",{"2":{"459":1}}],["也可以用来设置其他属性",{"2":{"670":1}}],["也可以略去不写",{"2":{"615":1}}],["也可以强制指定一个技能的数值",{"2":{"614":1}}],["也可以写成一行",{"2":{"569":1}}],["也可以找到该时间点前的最后一份",{"2":{"459":1}}],["也可以指定是",{"2":{"422":1}}],["也可以通过",{"2":{"422":1}}],["也可以视为",{"2":{"313":1}}],["也可以选择使用",{"2":{"262":1}}],["也可以在",{"2":{"259":1}}],["也可以前往",{"2":{"254":1}}],["也可以参考本节内容",{"2":{"254":1}}],["也可以很好地根据这五个要素的思考过程组织问题",{"2":{"217":1}}],["也可以很好地通过复述这五个要素的思考过程向",{"2":{"189":1}}],["也可以换成",{"2":{"130":1}}],["也可以设定为其他的",{"2":{"128":1}}],["也可以包含",{"2":{"116":1}}],["也可以嵌入",{"2":{"75":1}}],["也可以使用别人搭好的",{"2":{"238":1}}],["也可以使用",{"2":{"68":1}}],["也可以使用以",{"2":{"47":1}}],["也可以使用缩进层级表示对象关系",{"2":{"46":1}}],["也可以是个人的",{"2":{"706":1}}],["也可以是你",{"2":{"207":1}}],["也可以是用",{"2":{"34":1}}],["也可以是完善文档等等",{"2":{"8":1}}],["采用了不放回抽取",{"2":{"51":1}}],["采用",{"2":{"33":1,"45":1,"69":1}}],["浮点数",{"2":{"33":1,"38":1,"45":1}}],["整数时间戳",{"2":{"125":1}}],["整数类型",{"2":{"125":1}}],["整数",{"2":{"33":1,"38":1,"45":1}}],["整体流程",{"0":{"10":1}}],["包",{"2":{"154":1,"436":1}}],["包吗",{"0":{"154":1}}],["包含等文本匹配方式不够用",{"2":{"425":1}}],["包含",{"2":{"274":1}}],["包含了配置项的类型",{"2":{"138":1}}],["包含以下字段",{"2":{"118":1,"125":1}}],["包含文本",{"2":{"72":1,"420":1}}],["包括farevell",{"2":{"646":1}}],["包括不限于速记",{"2":{"558":1}}],["包括不以",{"2":{"354":1}}],["包括但不限于",{"2":{"543":1}}],["包括但不限于突发断电",{"2":{"456":1}}],["包括获取",{"2":{"499":1}}],["包括指令回复和自定义回复",{"2":{"354":1}}],["包括商用",{"2":{"159":1}}],["包括",{"2":{"158":1,"190":1,"254":1,"256":1,"491":1,"540":1,"717":1}}],["包括角色卡",{"2":{"146":1}}],["包括编写规则模板和编写指令",{"2":{"143":1}}],["包括换行",{"2":{"35":1,"43":1}}],["包括自定义回复",{"2":{"15":1}}],["包裹",{"2":{"38":2,"45":1}}],["包裹的一组键值对",{"2":{"38":1,"40":1}}],["包裹的一组值",{"2":{"38":1,"39":1}}],["包裹的一系列键值对",{"2":{"33":1}}],["包裹的一系列值",{"2":{"33":1,"37":1}}],["包裹的行作为表名",{"2":{"36":1}}],["包裹的内容作为字符串",{"2":{"35":1}}],["包裹起来的一串文字",{"2":{"33":1}}],["有若干个日志记录和一个当前日志",{"2":{"727":1}}],["有概率直接上号",{"2":{"687":1}}],["有几种办法",{"2":{"685":1}}],["有可能是没有开启正确的扩展",{"2":{"721":1}}],["有可能使骰子失联",{"2":{"622":1}}],["有可能找到你问题的答案",{"2":{"219":1}}],["有关",{"0":{"512":1}}],["有关的部分",{"2":{"285":1,"287":1,"294":1}}],["有两种解决方案",{"2":{"496":1}}],["有足够的了解",{"2":{"489":1}}],["有没有更简单的方式给骰子编写功能呢",{"2":{"412":1}}],["有黑名单用户在其他群尝试使用骰子时",{"2":{"328":1}}],["有提及",{"2":{"264":1}}],["有难度的操作",{"2":{"254":1,"261":1}}],["有内置的签名程序",{"2":{"251":1}}],["有能力的用户可以自行搭建服务",{"2":{"239":1}}],["有能力的牌堆作者可以配置更新链接",{"2":{"58":1}}],["有趣的世界",{"2":{"204":1}}],["有知道这个解决办法的管理",{"2":{"190":1}}],["有更复杂的指定依赖版本需求",{"2":{"165":1}}],["有些插件提供的扩展规则也定义了名片模板",{"2":{"734":1}}],["有些不妙",{"2":{"678":1}}],["有些情况",{"2":{"603":1}}],["有些变量可以在所有文案中使用",{"2":{"376":1}}],["有些词条下面有这样的内容",{"2":{"376":1}}],["有些调过设置了的会出现占用的运行内存占可用运行内存的百分比",{"2":{"252":1}}],["有些时候",{"2":{"164":1}}],["有些值可以跨多行",{"2":{"33":1}}],["有的话可以替换到你的项目中",{"2":{"155":1}}],["有时候",{"2":{"509":1}}],["有时候不会在控制台调试面板上显示出来",{"2":{"158":1}}],["有时原作者也会对其进行更新",{"2":{"207":1}}],["有时",{"2":{"155":1}}],["有时会给你提出一些修改建议",{"2":{"13":1}}],["有什么功能",{"0":{"146":1}}],["有一些云端内容的相关配置项",{"2":{"64":1}}],["有其他含义",{"2":{"59":1}}],["有多个更新链接时",{"2":{"58":1}}],["有多个作者时可以使用",{"2":{"48":1}}],["有",{"2":{"53":1,"159":1}}],["键启动",{"2":{"262":1}}],["键值为",{"2":{"104":1}}],["键值",{"0":{"38":1,"45":1}}],["键值对使用冒号结构表示",{"2":{"45":1}}],["键值对以",{"2":{"38":1}}],["键值对后必须换行",{"2":{"33":1}}],["键值对",{"0":{"33":1},"2":{"33":1}}],["键名可以是裸键名",{"2":{"34":1}}],["键名",{"0":{"34":1}}],["键名在等号的左边而值在右边",{"2":{"33":1}}],["键",{"2":{"33":1}}],["是克苏鲁的呼唤",{"2":{"739":1}}],["是指海豹",{"2":{"642":1}}],["是必须的",{"2":{"615":1,"635":1,"636":1}}],["是房规检定",{"2":{"594":1}}],["是规则书检定",{"2":{"594":1}}],["是规则书规定的同一属性的两个名字",{"2":{"582":1}}],["是纯净骰",{"0":{"569":1}}],["是被",{"2":{"512":1}}],["是内置客户端的配置文件夹",{"2":{"430":1}}],["是最常用的模式",{"2":{"420":1}}],["是海豹核心提供的一种功能扩展方式",{"2":{"412":1}}],["是提供给骰子使用的查询资料",{"2":{"392":1}}],["是腾讯公司基于",{"2":{"295":1}}],["是基于官方",{"2":{"522":1}}],["是基于",{"2":{"294":1}}],["是形如",{"2":{"278":1}}],["是安卓官方提供的帮助在电脑端调试",{"2":{"262":1}}],["是在后台低占用运行的无头",{"2":{"522":1}}],["是在无",{"2":{"261":1}}],["是在服务器还是在我自己的电脑上",{"2":{"189":1,"217":1}}],["是模拟器的编号",{"2":{"259":1}}],["是模拟器根路径",{"2":{"259":1}}],["是其它版本",{"2":{"241":1}}],["是目前用来绕过检测的最有效手段",{"2":{"237":1}}],["是什么",{"2":{"206":2}}],["是多数开源程序发布代码的地方",{"2":{"193":1,"202":1}}],["是小白常犯的错误之一",{"2":{"173":1}}],["是临时变量",{"2":{"172":1}}],["是分隔符",{"2":{"165":1}}],["是アンカー罗马字缩写",{"2":{"130":1}}],["是两个函数",{"2":{"128":1}}],["是一款科学奇幻",{"2":{"742":1}}],["是一款日系超能力战斗",{"2":{"741":1}}],["是一款超自然题材的",{"2":{"740":1}}],["是一款剑与魔法奇幻背景的叙事性角色扮演游戏",{"2":{"657":1}}],["是一组来自相同面数骰子",{"2":{"704":1}}],["是一组有名字的文本",{"2":{"383":1}}],["是一门基于原型和头等函数的多范式高级解释型编程语言",{"2":{"402":1}}],["是一种基于",{"2":{"286":1}}],["是一种",{"2":{"281":1,"304":1,"311":1}}],["是一套开源的",{"2":{"256":1}}],["是一个充满了秘密",{"2":{"584":1}}],["是一个特殊的程序",{"2":{"313":1}}],["是一个特殊的命令行界面程序",{"2":{"302":1}}],["是一个特殊的变量前缀",{"2":{"172":1}}],["是一个帮助其他应用直接使用系统",{"2":{"262":1}}],["是一个基于",{"2":{"254":1}}],["是一个比较自由的协议",{"2":{"159":1}}],["是一个",{"2":{"97":1,"285":1,"516":1}}],["是一对一匹配的",{"2":{"78":1}}],["是错误的",{"2":{"94":1}}],["是可以提供的",{"2":{"94":1}}],["是从左往右计算的",{"2":{"84":1}}],["是防止它出现在回复文本中",{"2":{"83":1}}],["是否正确做出了响应",{"2":{"681":1}}],["是否在",{"2":{"512":1}}],["是否允许海豹核心发送通知",{"2":{"454":1}}],["是否跟着这么做",{"2":{"185":1,"214":1}}],["是否抽取成功",{"2":{"118":1}}],["是否放回抽取",{"2":{"118":1,"119":1}}],["是否私聊",{"2":{"105":1}}],["是否保留待议",{"2":{"96":1}}],["是否等于",{"2":{"79":1}}],["是否导出该牌组",{"2":{"61":1}}],["是键值对的集合",{"2":{"36":1}}],["是",{"2":{"33":1,"94":1,"127":1,"278":2,"287":1,"292":1,"349":1,"427":3,"503":1,"519":1,"582":1}}],["vm",{"2":{"570":2}}],["vme50",{"2":{"419":1}}],["volumes",{"2":{"491":5}}],["void",{"2":{"141":1}}],["virtualxposed",{"2":{"257":1}}],["visible",{"2":{"61":2,"64":2}}],["vs",{"2":{"168":1}}],["vscode",{"2":{"93":1,"161":1,"259":1}}],["v11",{"2":{"254":2,"285":2,"516":2}}],["v1",{"2":{"140":1,"481":1}}],["v",{"2":{"127":5,"129":2,"539":1}}],["vb",{"2":{"72":1}}],["valid",{"2":{"497":2}}],["val",{"2":{"115":2,"116":5,"117":5,"127":17,"129":3,"130":2,"134":2,"135":1,"139":4}}],["valuetoset",{"2":{"94":9}}],["value",{"2":{"32":1,"33":1,"38":2,"45":1,"53":1,"128":2,"130":2,"138":3,"139":1,"141":4}}],["var",{"2":{"150":1}}],["varget",{"2":{"94":1}}],["varset",{"2":{"94":1}}],["vars",{"0":{"99":1},"2":{"94":6,"99":4}}],["va",{"2":{"72":1}}],["v我50",{"2":{"419":1}}],["v我1个金币",{"2":{"52":1}}],["v我",{"2":{"52":2}}],["versioning",{"2":{"159":1}}],["versioncode",{"2":{"104":1}}],["version",{"2":{"37":2,"47":2,"48":6,"90":1,"94":3,"104":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"150":1,"158":1,"159":2,"165":3,"166":1,"172":1,"239":1,"479":1}}],["vue3",{"2":{"5":1}}],["kn",{"2":{"711":1}}],["kp",{"2":{"602":1}}],["kernel",{"2":{"497":1}}],["key的值",{"2":{"239":1}}],["key=value",{"2":{"723":1}}],["key=",{"2":{"141":1}}],["key=$",{"2":{"135":1}}],["key>",{"2":{"139":1}}],["keywords=稻香",{"2":{"135":2}}],["keys",{"2":{"57":9,"61":1,"652":4}}],["key2",{"2":{"35":1}}],["key",{"2":{"32":1,"38":2,"45":1,"48":2,"50":4,"57":5,"68":3,"94":26,"128":5,"130":9,"131":4,"135":3,"136":1,"138":4,"139":2,"141":6,"187":1,"201":1,"238":2,"239":1,"241":1,"723":2}}],["kritor",{"2":{"254":2}}],["k",{"0":{"282":1},"1":{"283":1},"2":{"129":2,"635":2}}],["kwarg",{"2":{"110":2}}],["kwargs",{"2":{"110":1}}],["kiy",{"2":{"67":1}}],["kiytarot",{"2":{"67":1}}],["kook",{"0":{"472":1},"1":{"473":1,"474":1,"475":1},"2":{"18":1,"109":1,"472":1,"473":1,"474":4,"475":1,"540":1,"580":1,"717":1}}],["用空格分割",{"2":{"722":2}}],["用空格拼接成一个字符串",{"2":{"110":1}}],["用文本编辑器打开",{"2":{"699":1}}],["用文本编辑器编辑",{"2":{"694":1}}],["用这条指令可以查看",{"2":{"644":1}}],["用关键字进行词条查询",{"2":{"642":1}}],["用迁出海豹的",{"2":{"577":1}}],["用打包的数据覆盖迁入海豹的对应目录",{"2":{"575":1}}],["用以下方法即可启动海豹",{"2":{"539":1}}],["用鼠标右击压缩包",{"2":{"196":1}}],["用法举例",{"2":{"178":1}}],["用途",{"2":{"172":1}}],["用户可能使用某些自动工具创建了一名调查员",{"2":{"582":1}}],["用户可以去频道公屏发送一个",{"2":{"708":1}}],["用户可以自行选择自己喜欢的方式",{"2":{"542":1}}],["用户可以查看和修改源代码",{"2":{"286":1}}],["用户运行的",{"2":{"541":1}}],["用户使用",{"2":{"538":1}}],["用户生成容器进程",{"2":{"491":1}}],["用户执行海豹进程可能会导致一些权限问题",{"2":{"491":1}}],["用户界面",{"2":{"307":1}}],["用户通常使用输入指令的方式与操作系统或程序进行交互",{"2":{"291":1}}],["用户需要这样一个科普性质的界面",{"2":{"214":1}}],["用户社区里更快地解决问题",{"2":{"192":1,"234":1}}],["用户群的群公告",{"2":{"219":1}}],["用户群的群员或管理员提问",{"2":{"189":1}}],["用户群的群员",{"2":{"187":1,"201":1}}],["用户群的社区氛围似乎又有些不尽如人意",{"2":{"214":1}}],["用户群中向管理说明以外",{"2":{"193":1,"202":1}}],["用户群中会看到以下这样的问题",{"2":{"190":1}}],["用户群里都在问几乎一样的问题",{"2":{"189":1}}],["用户群问问题会被要求发送截图",{"0":{"187":1,"201":1},"2":{"224":1,"225":1}}],["用户群出现了预料之中但情理之外的问题",{"2":{"185":1}}],["用户群",{"2":{"172":1}}],["用户不存在或未被拉黑",{"2":{"127":1}}],["用户id>",{"2":{"127":4}}],["用户昵称",{"2":{"125":1}}],["用户",{"2":{"123":1,"125":1,"706":2}}],["用户也能抽取到最新内容",{"2":{"62":1}}],["用什么编写",{"0":{"93":1}}],["用于指示海豹回复你一条消息",{"2":{"708":1}}],["用于设置临时属性",{"2":{"670":1}}],["用于在",{"2":{"559":1}}],["用于精确控制查询范围的分组",{"2":{"395":1}}],["用于筛选出指定小类下的文案条目",{"2":{"364":1}}],["用于交互",{"2":{"313":1}}],["用于提示用户",{"2":{"290":1}}],["用于与",{"2":{"283":1}}],["用于区分网络中的不同设备",{"2":{"278":1}}],["用于",{"2":{"158":1}}],["用于网络请求",{"2":{"158":1}}],["用于自定义扩展",{"2":{"158":1}}],["用于自动化发布海豹的每日构建包与",{"2":{"5":1}}],["用于读取",{"2":{"152":1}}],["用于演示如何抽取牌堆",{"2":{"119":1}}],["用于消除编译报错",{"2":{"117":1}}],["用于撤回等",{"2":{"109":1}}],["用于创建",{"2":{"101":1}}],["用于创建一个新的配置项",{"2":{"94":1}}],["用于注册扩展和定义指令的",{"2":{"100":1}}],["用于注册一个",{"2":{"94":6}}],["用于注册一个配置项",{"2":{"94":1}}],["用于获取一个",{"2":{"94":6}}],["用于获取一个配置项的值",{"2":{"94":1}}],["用于查找名为",{"2":{"94":1}}],["用于建立一个名为",{"2":{"94":1}}],["用于判断指令执行结果",{"2":{"94":1}}],["用于填写一些额外的展示内容",{"2":{"90":1}}],["用来单独控制这个插件是否开启",{"2":{"405":1}}],["用来实现回复发送者",{"2":{"116":1}}],["用来创建自定义",{"2":{"94":1}}],["用来定义新的指令",{"2":{"94":1}}],["用来测试",{"2":{"70":1}}],["用来记录相关说明性内容",{"2":{"32":1}}],["用勺子把西瓜最中间的一块全挖走",{"2":{"51":1}}],["用",{"2":{"45":1,"83":1,"127":1}}],["注册定时任务",{"0":{"140":1},"1":{"141":1,"142":1}}],["注册后的配置项会在",{"2":{"139":1}}],["注册后进行",{"2":{"139":1}}],["注册单选项函数的参数为",{"2":{"139":1}}],["注册配置项需在",{"2":{"139":1}}],["注册配置项",{"0":{"139":1}}],["注册插件配置项",{"0":{"138":1},"1":{"139":1},"2":{"408":1}}],["注册规则",{"2":{"136":1}}],["注册命令",{"2":{"119":2,"121":1,"127":5,"139":1}}],["注册",{"2":{"117":2}}],["注册指令",{"0":{"117":1}}],["注册扩展和指令的代码已经写好",{"2":{"148":1}}],["注册扩展",{"2":{"112":1,"119":1,"121":1,"127":1,"137":1,"139":1}}],["注册到系统中",{"2":{"94":1}}],["注释块",{"0":{"43":1}}],["注释也可以放在行尾",{"2":{"32":1}}],["注释以",{"2":{"32":1,"44":1}}],["注释",{"0":{"32":1,"41":1,"44":1},"1":{"42":1,"43":1}}],["注意事项",{"0":{"506":1},"1":{"507":1,"508":1,"509":1}}],["注意汉字的长度",{"2":{"421":1}}],["注意检查自己导入的内容是不是完整复制进来的",{"2":{"365":1}}],["注意对方是否支持",{"2":{"341":1,"513":1}}],["注意是",{"2":{"242":1}}],["注意必须是半角符号",{"2":{"165":1}}],["注意不要与现有的重名",{"2":{"150":1}}],["注意不要和别的扩展的",{"2":{"128":1}}],["注意按照小驼峰命名法大写",{"2":{"138":1}}],["注意即使是非指令关键词也是依附于扩展的",{"2":{"137":1}}],["注意这些似乎只能在",{"2":{"96":1}}],["注意需要配合",{"2":{"94":1}}],["注意级词表",{"2":{"90":1}}],["注意级词汇",{"2":{"89":2,"90":2}}],["注意",{"2":{"12":1,"30":1,"31":1,"34":1,"37":1,"46":1,"48":1,"50":1,"56":1,"61":2,"62":1,"66":2,"68":1,"73":1,"84":1,"94":2,"97":1,"112":2,"114":1,"115":1,"120":1,"130":1,"157":1,"172":1,"173":2,"174":1,"187":1,"199":1,"201":1,"203":1,"213":1,"224":1,"225":1,"236":1,"238":1,"239":1,"252":1,"253":1,"254":3,"257":1,"261":3,"265":1,"299":1,"341":1,"344":1,"346":1,"347":1,"355":1,"363":1,"365":1,"371":1,"389":1,"421":1,"423":1,"442":1,"466":1,"471":2,"474":1,"475":1,"478":1,"491":1,"496":1,"501":1,"505":1,"513":2,"514":1,"531":1,"539":2,"573":1,"577":1,"614":1,"622":1,"623":1,"652":1,"723":1,"727":1,"729":1}}],["query",{"2":{"623":1}}],["quitgroup",{"2":{"622":1}}],["quarantine",{"2":{"539":2}}],["quot检定结果为",{"2":{"598":1}}],["quot侦查",{"2":{"598":1}}],["quot",{"2":{"31":2,"33":8,"34":2,"35":2,"38":6,"45":2,"64":6,"77":3,"78":6,"141":16,"247":2,"480":2,"595":6,"596":2,"597":2,"599":2,"600":2,"602":2}}],["qdisc",{"2":{"497":1}}],["qr",{"2":{"493":1}}],["q",{"0":{"296":1},"1":{"297":1},"2":{"268":1,"635":1}}],["qsign",{"0":{"245":1,"249":1,"252":1},"2":{"236":1,"237":3,"238":5,"239":5,"241":4,"245":4,"246":4,"249":1,"251":2,"513":1}}],["qq12345",{"2":{"687":1}}],["qq123456",{"2":{"430":1}}],["qqnt",{"0":{"297":1},"2":{"295":1}}],["qq",{"0":{"348":1,"489":1,"496":1,"499":1,"510":1,"512":1,"691":1},"1":{"490":1,"491":1,"492":1,"493":1,"494":1,"495":1,"496":1,"497":2,"498":2,"500":1,"501":1,"502":1,"503":1,"504":1,"505":1,"506":1,"507":1,"508":1,"509":1,"511":1,"512":1,"513":1,"514":1,"515":1,"516":1,"517":1,"518":1,"519":1,"520":1,"521":1,"522":1,"523":1,"524":1,"525":1,"526":1,"527":1},"2":{"18":1,"123":1,"172":6,"227":4,"236":2,"241":2,"242":1,"250":1,"251":2,"253":1,"254":3,"256":1,"258":6,"260":1,"261":4,"263":1,"264":2,"265":2,"268":1,"278":8,"285":2,"287":2,"294":1,"295":4,"333":1,"334":2,"336":1,"337":1,"338":2,"339":1,"341":3,"346":1,"348":1,"349":1,"350":1,"423":1,"431":1,"489":2,"490":1,"491":4,"493":3,"494":1,"496":6,"497":1,"498":1,"499":10,"501":2,"502":1,"503":3,"504":5,"506":1,"510":1,"512":12,"513":7,"514":5,"515":9,"516":1,"518":1,"519":5,"521":4,"522":7,"524":1,"539":1,"540":1,"549":2,"568":1,"580":5,"623":2,"638":1,"681":1,"689":1,"708":2,"717":1,"718":5,"732":1}}],["却使用了",{"2":{"31":2}}],["导出属性值和法术位",{"2":{"663":1}}],["导出属性值",{"0":{"592":1}}],["导出后不要再运行海豹核心",{"2":{"442":1,"577":1}}],["导出数据",{"2":{"442":1,"460":1,"546":1,"577":1}}],["导出文案内容",{"2":{"365":1}}],["导出",{"0":{"365":1},"2":{"365":1}}],["导入完成后也可以把",{"2":{"577":1}}],["导入完成后再点击启动核心",{"2":{"577":1}}],["导入数据",{"2":{"442":1,"577":1}}],["导入自定义回复文件",{"0":{"415":1}}],["导入后点击",{"2":{"356":1}}],["导入",{"2":{"356":1,"365":1}}],["导入包括但不限于以下情形的内容",{"2":{"15":1}}],["导航栏",{"2":{"299":1}}],["导航栏顶部的内存占用",{"2":{"199":1}}],["导致",{"2":{"531":1}}],["导致海豹无法响应直接发起的私聊",{"2":{"471":1}}],["导致缺少条目",{"2":{"365":1}}],["导致它没能被正确执行",{"2":{"230":1}}],["导致发生空行",{"2":{"82":1}}],["导致输入了错误的符号",{"2":{"31":1}}],["半角符号",{"2":{"31":1}}],["务必在删除时小心确认",{"2":{"414":1}}],["务必在本地测试通过",{"2":{"10":1}}],["务必选择以",{"2":{"257":1}}],["务必区分",{"2":{"173":1}}],["务必使用更专业的编辑器",{"2":{"93":1}}],["务必注意使用半角符号",{"2":{"31":1}}],["语句",{"0":{"174":1}}],["语义版本控制",{"2":{"159":1}}],["语言编写扩展插件",{"2":{"402":1}}],["语言规范所提供的",{"2":{"158":1}}],["语言本身",{"2":{"157":1}}],["语言",{"2":{"69":1}}],["语言教程",{"2":{"31":1}}],["语法入门可以参考",{"2":{"281":1,"304":1,"311":1}}],["语法",{"2":{"66":1}}],["语法的扩展",{"2":{"37":1}}],["语法快速入门",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1}}],["语法支持更多现代特性",{"2":{"30":1}}],["菜鸟教程",{"2":{"31":1,"65":1,"69":1,"140":1,"157":1,"314":1}}],["教育",{"2":{"582":1,"616":2}}],["教授如何高效学习亦不是海豹手册应该去做的事",{"2":{"203":1}}],["教程",{"2":{"31":1,"90":1,"157":2,"242":1}}],["教唆使用外挂",{"2":{"15":1}}],["文本文件的形式发送指定日志的全文",{"2":{"729":1}}],["文本模板",{"2":{"705":1}}],["文本模板测试",{"0":{"705":1}}],["文本长度",{"0":{"421":1},"2":{"419":1}}],["文本类型",{"2":{"173":1}}],["文本匹配支持多种方式",{"2":{"420":1}}],["文本匹配",{"0":{"72":1,"73":1,"420":1},"2":{"83":3,"419":2}}],["文本",{"0":{"485":1},"2":{"70":1,"173":1,"420":1}}],["文本时",{"2":{"46":1}}],["文件附件的形式",{"2":{"729":1}}],["文件同步模式",{"2":{"577":2}}],["文件同级的目录下",{"2":{"161":1}}],["文件中将",{"2":{"498":1}}],["文件中维护了海豹提供的",{"2":{"155":1}}],["文件放进",{"2":{"481":1}}],["文件后",{"2":{"480":1}}],["文件目录树",{"0":{"430":1}}],["文件名中含有",{"2":{"315":1}}],["文件名格式是",{"2":{"315":1}}],["文件内",{"2":{"299":1}}],["文件和文档",{"2":{"448":1}}],["文件和",{"2":{"274":1}}],["文件拖动到模拟器即可进行安装",{"2":{"258":1}}],["文件复制到",{"2":{"242":1}}],["文件已经说得足够清楚",{"2":{"188":1}}],["文件夹内部的文档在一级文件夹下平铺展示",{"2":{"395":1}}],["文件夹内布局",{"2":{"187":1,"201":1}}],["文件夹",{"2":{"274":1,"481":1}}],["文件夹单击",{"2":{"262":1}}],["文件夹中新建",{"2":{"262":1}}],["文件夹中",{"2":{"257":1,"262":1}}],["文件夹放到硬盘根目录试试",{"2":{"245":1}}],["文件夹拖到了",{"2":{"224":1}}],["文件夹压缩",{"2":{"56":1}}],["文件夹压缩为",{"2":{"56":1}}],["文件随时可能会有更新",{"2":{"161":1}}],["文件的方式",{"2":{"152":1}}],["文件在",{"2":{"151":1}}],["文件在本质上依然是",{"2":{"56":1}}],["文件以便上传到海豹骰时",{"2":{"151":1}}],["文件编写插件与使用模板工程编写本质上是没有区别的",{"2":{"162":1}}],["文件编写插件",{"0":{"161":1}}],["文件编写",{"2":{"148":1}}],["文件编码",{"2":{"66":1}}],["文件吧",{"2":{"56":1}}],["文件",{"2":{"48":1,"56":3,"94":1,"114":1,"147":1,"158":1,"161":1,"196":1,"242":1,"249":1,"259":1,"262":1,"263":1,"430":1,"480":1,"491":1,"493":1}}],["文档最基本的元素",{"2":{"33":1}}],["文档",{"2":{"31":1,"90":1,"158":1,"258":1,"344":1,"541":1}}],["文案常见问题",{"0":{"379":1},"1":{"380":1}}],["文案下方的标签代表了被默认文案所使用的特殊变量",{"2":{"376":1}}],["文案变量标签",{"0":{"376":1}}],["文案插入图片和",{"0":{"375":1}}],["文案的导入",{"0":{"365":1}}],["文案",{"2":{"363":1}}],["文案列表",{"0":{"363":1},"2":{"362":1,"363":1}}],["文案目前被分为以下几个大类",{"2":{"362":1}}],["文案和",{"2":{"334":1}}],["文案调整",{"0":{"27":1}}],["文案为例",{"2":{"24":1}}],["来辅助识别",{"2":{"723":1}}],["来组织功能和指令",{"2":{"721":1}}],["来源",{"2":{"702":1}}],["来源可能是骰主在后台设置的",{"2":{"323":1}}],["来令对方进行死亡豁免",{"2":{"679":1}}],["来令对方进行长休",{"2":{"677":1}}],["来消耗对方的法术位",{"2":{"675":1}}],["来操作对方的法术位",{"2":{"673":1}}],["来操作对方的",{"2":{"671":1}}],["来操作对方的属性值",{"2":{"593":1,"666":1}}],["来使用骰子机器人了",{"2":{"718":1}}],["来使用对方的技能进行检定",{"2":{"599":1,"668":1}}],["来使修改生效",{"2":{"405":1}}],["来代指",{"2":{"585":1}}],["来管理服务",{"2":{"541":1}}],["来连接海豹和对应平台",{"2":{"540":1}}],["来访问后台",{"2":{"539":2}}],["来启动海豹核心",{"2":{"695":1}}],["来启动海豹",{"2":{"539":2}}],["来区分出账号是否是正常用户",{"2":{"512":1}}],["来将不重要的项折叠起来",{"2":{"418":1}}],["来为你编写回复提供更多有用信息",{"2":{"414":1}}],["来刷新",{"2":{"395":1}}],["来搜索词条内容",{"2":{"394":1}}],["来插入他们",{"2":{"376":1}}],["来提供",{"2":{"285":1,"516":1}}],["来提供切换命令",{"2":{"25":1}}],["来给予权限",{"2":{"239":1}}],["来个大佬救救",{"2":{"223":1}}],["来指定插件的目标海豹版本",{"2":{"167":1}}],["来指定扩展依赖的其他扩展",{"2":{"164":1}}],["来进行更复杂的限制",{"2":{"165":1}}],["来编写插件",{"2":{"161":1}}],["来编写牌堆",{"2":{"30":1}}],["来自",{"2":{"158":1}}],["来帮忙完善",{"2":{"155":1}}],["来开启其中一个",{"2":{"721":1}}],["来开启",{"2":{"146":1}}],["来生成",{"2":{"144":1}}],["来获取配置项",{"2":{"139":1}}],["来获取一个新的",{"2":{"138":1}}],["来简化代码",{"2":{"135":1}}],["来重写这段代码",{"2":{"135":1}}],["来查看当前可用的关键字",{"2":{"648":1}}],["来查看目标用户的黑名单",{"2":{"127":1}}],["来查看黑名单和信任列表",{"2":{"127":1}}],["来信任目标用户",{"2":{"127":1}}],["来解除拉黑",{"2":{"127":1}}],["来拉黑目标用户",{"2":{"127":1}}],["来了解更多",{"2":{"112":1}}],["来换行",{"2":{"68":1}}],["来换行了",{"2":{"35":1}}],["来抽取牌堆",{"2":{"119":2}}],["来抽取",{"2":{"61":1,"612":1}}],["来识别牌组是否隐藏",{"2":{"57":1}}],["u",{"2":{"541":1}}],["up>",{"2":{"497":1}}],["up",{"2":{"492":1,"493":1,"495":1}}],["updateurl",{"2":{"58":3,"61":1}}],["updateurls",{"2":{"58":4,"61":1}}],["updatedate",{"2":{"48":3,"90":1}}],["update",{"2":{"48":1,"58":2}}],["usb",{"2":{"262":2}}],["use",{"2":{"149":1}}],["user",{"2":{"307":1,"460":2,"532":1}}],["userscript==",{"2":{"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"158":1,"159":1}}],["userid",{"2":{"94":3,"96":6,"104":1,"107":1,"108":1,"109":1,"135":1,"332":1,"623":1}}],["url",{"2":{"238":3,"241":1,"466":2,"471":1,"475":1,"482":1}}],["urls",{"2":{"58":2,"64":2}}],["ubuntu",{"2":{"224":1,"302":1}}],["untagall",{"2":{"641":1}}],["unlock",{"2":{"622":1}}],["unless",{"2":{"491":5}}],["uninstall",{"2":{"541":1}}],["unix",{"2":{"141":1,"159":1,"286":1,"302":1}}],["unicode",{"2":{"34":1,"35":1}}],["undefined",{"2":{"110":1,"129":1}}],["unmarshalyaml",{"2":{"108":1}}],["unknown",{"2":{"97":1}}],["utf",{"2":{"30":1,"66":1}}],["uipasswordhash",{"2":{"699":1}}],["uid=$",{"2":{"135":1}}],["uid",{"2":{"123":3,"124":2,"126":1}}],["ui",{"0":{"325":1},"2":{"5":1,"56":1,"57":1,"62":1,"138":1,"139":2,"241":1,"307":1,"323":1,"347":1,"352":1,"362":1,"385":1,"389":1,"395":1,"404":1,"413":1,"427":3,"441":1,"479":1,"514":1,"515":2,"518":1,"521":1,"524":1,"549":1,"625":1,"729":1,"730":1}}],["当角色名变化时也会自动更新",{"2":{"733":1}}],["当用户角色卡的数值变化时",{"2":{"732":1}}],["当人物已经昏迷",{"2":{"665":1}}],["当生命值归零",{"2":{"665":2}}],["当存在临时生命",{"2":{"665":1}}],["当指定的牌组名称不存在时",{"2":{"653":1}}],["当一个账号被标记后",{"2":{"649":1}}],["当调查员在游戏中成功使用了技能",{"2":{"613":1}}],["当房规设定为规则书标准",{"2":{"594":1}}],["当遇到登录失败",{"2":{"514":1}}],["当遇到不理解的概念时",{"2":{"206":1}}],["当任一镜像有更新时",{"2":{"495":1}}],["当服务器后台日志中出现",{"2":{"482":1}}],["当出现",{"2":{"480":1}}],["当消息长度",{"2":{"421":1}}],["当消息命中敏感词的时候",{"2":{"355":1}}],["当骰子收到和内容",{"2":{"420":1}}],["当回复项有多个条件时",{"2":{"419":1}}],["当回复项较多的时候",{"2":{"418":1}}],["当成长失败且有失败成长值时则调用",{"2":{"371":2}}],["当成长失败且没有失败成长值时则调用",{"2":{"371":2}}],["当理智归零时则调用",{"2":{"370":1}}],["当同一个用户触发同一等级的次数超过对应设置时",{"2":{"355":1}}],["当同时填写了",{"2":{"141":1}}],["当有人",{"2":{"688":1}}],["当有新版本海豹核心时",{"2":{"542":1}}],["当有多条指令时以",{"2":{"374":1}}],["当有用户触发黑名单事件时",{"2":{"328":1}}],["当有群员或管理进一步地询问相关问题",{"2":{"191":1,"232":1}}],["当插件使用了在",{"2":{"167":1}}],["当插件开发完成后",{"2":{"150":1}}],["当你的增减表达式错误时",{"2":{"369":1}}],["当你的检定为多轮检定时",{"2":{"368":1}}],["当你的海豹核心运行在公网时可设置密码",{"2":{"347":1}}],["当你的海豹与",{"2":{"278":1}}],["当你在帮助文档中写下",{"2":{"394":1}}],["当你在凝视深渊的时候",{"2":{"356":1}}],["当你在复制粘贴",{"2":{"46":1}}],["当你",{"2":{"334":1}}],["当你用鼠标选中控制台内的文本时",{"2":{"292":1}}],["当你访问",{"2":{"278":1}}],["当你试图在下文所述的条件算符或条件语句中",{"2":{"173":1}}],["当你写好了代码",{"2":{"151":1}}],["当连续两轮所有玩家都选择不摸鱼时",{"2":{"145":1}}],["当填写了",{"2":{"141":1}}],["当使用前者时",{"2":{"141":1}}],["当",{"2":{"94":2,"141":2,"512":1}}],["当前日志设定为指定的日志",{"2":{"727":1}}],["当前日志指向本群的其中一个日志记录",{"2":{"727":1}}],["当前正在运行",{"2":{"693":1}}],["当前角色需已设定最大生命值且当前生命值大于",{"2":{"676":1}}],["当前判定线的五分之一",{"2":{"597":1}}],["当前判定线的二分之一",{"2":{"597":1}}],["当前回复文件",{"0":{"414":1}}],["当前备份文件列表",{"2":{"315":1}}],["当前",{"2":{"274":1,"686":1}}],["当前人物卡的名字",{"2":{"172":1}}],["当前等级",{"2":{"127":2}}],["当前群组信息等",{"2":{"114":1,"117":1,"135":1}}],["当前群信息",{"2":{"105":1}}],["当前玩家数据",{"2":{"105":1}}],["当前只能查阅海豹源码",{"2":{"94":1}}],["当前在模式2",{"2":{"26":1}}],["当前在模式1",{"2":{"26":1}}],["当前在默认模式",{"2":{"26":1}}],["当正则表达式获得匹配时",{"2":{"73":1}}],["当执行",{"2":{"64":1}}],["当牌组的名称以",{"2":{"57":3}}],["当然如果你没做过自定义配置",{"2":{"687":1}}],["当然不用",{"2":{"419":1}}],["当然你也可以使用其它协议",{"2":{"159":1}}],["当然可以",{"2":{"154":1}}],["当然",{"2":{"30":1,"70":1,"135":1,"185":1,"207":1,"214":1,"215":1,"230":1,"252":1,"363":1,"420":1,"446":1}}],["格式和塔骰格式",{"2":{"568":1}}],["格式应当为",{"2":{"515":2}}],["格式为",{"2":{"393":1}}],["格式是",{"2":{"385":1}}],["格式组织起来",{"2":{"383":1}}],["格式化错误",{"2":{"183":1}}],["格式化",{"2":{"93":1}}],["格式的自定义回复文件",{"2":{"415":1}}],["格式的文件",{"2":{"356":1}}],["格式的包也是可以使用的",{"2":{"154":1}}],["格式的包",{"2":{"154":1}}],["格式的时间",{"2":{"141":1}}],["格式的敏感词库",{"0":{"90":1}}],["格式的",{"2":{"68":1,"141":1}}],["格式的帮助文档中嵌套引用其它条目",{"2":{"66":1}}],["格式的帮助文档",{"0":{"66":1,"68":1},"1":{"67":1},"2":{"68":1}}],["格式的复杂牌组中",{"2":{"64":1}}],["格式的牌堆编写",{"2":{"30":1}}],["格式的牌堆",{"2":{"30":1}}],["格式错乱会无法识别",{"2":{"46":1}}],["格式诞生较晚",{"2":{"30":1}}],["格式",{"2":{"30":1,"33":1,"45":1,"65":1,"66":1,"90":4,"129":2,"133":1,"134":2,"314":1}}],["journalctl",{"2":{"541":1}}],["join",{"2":{"129":1}}],["j",{"0":{"280":1},"1":{"281":1},"2":{"684":1}}],["jar",{"2":{"480":5,"481":1}}],["jaro",{"2":{"72":2}}],["java",{"2":{"478":12,"480":1}}],["javascriptext",{"2":{"117":2}}],["javascriptconst",{"2":{"114":1,"131":1,"135":2}}],["javascriptcmdseal",{"2":{"114":1,"115":1,"116":1}}],["javascriptcmd",{"2":{"94":1,"98":1}}],["javascriptseal",{"2":{"102":1,"104":1,"135":2,"141":1}}],["javascript",{"0":{"170":1,"401":1,"402":1},"1":{"402":1,"403":1,"404":1,"405":1,"406":1,"407":1,"408":1,"409":1,"410":1},"2":{"94":2,"95":1,"96":1,"97":1,"99":1,"100":1,"101":1,"103":1,"105":2,"106":1,"107":1,"108":1,"109":1,"110":1,"112":1,"117":2,"119":2,"121":1,"127":1,"129":2,"130":1,"133":2,"134":2,"135":1,"136":2,"137":1,"142":2,"143":1,"147":2,"157":7,"158":3,"159":2,"161":1,"165":2,"166":1,"170":4,"401":1,"402":3,"412":1,"625":1,"744":1}}],["jpg",{"2":{"56":2,"133":1,"443":1}}],["jwcc",{"2":{"37":1}}],["jrrp和",{"2":{"569":1}}],["jrrp",{"0":{"701":1},"2":{"28":1,"97":1,"181":1,"362":1,"701":1}}],["jsr",{"0":{"703":1},"2":{"703":1}}],["jsmodule",{"2":{"156":1}}],["jsscripttaskctx",{"2":{"141":2}}],["jsbind",{"2":{"138":7}}],["js扩展信任测试",{"2":{"127":1}}],["js扩展信任",{"2":{"127":1}}],["js扩展拉黑测试",{"2":{"127":1}}],["js扩展拉黑",{"2":{"127":1}}],["jsvm",{"2":{"94":1}}],["json5",{"2":{"66":3}}],["jsonc",{"2":{"37":1}}],["json",{"0":{"38":1,"39":1,"40":1,"66":1,"281":1},"1":{"67":1},"2":{"30":2,"31":2,"36":2,"37":6,"38":2,"39":2,"40":2,"48":6,"50":1,"52":1,"53":1,"54":1,"56":2,"57":5,"58":1,"59":1,"63":2,"64":1,"65":3,"66":8,"67":1,"94":1,"103":1,"128":3,"129":3,"130":8,"131":2,"135":6,"150":1,"152":2,"190":1,"226":1,"281":1,"301":1,"383":1,"385":1,"393":1,"493":3}}],["js",{"0":{"161":1,"403":1,"404":1,"409":1,"410":1},"1":{"405":1,"406":1,"407":1,"408":1},"2":{"25":1,"93":1,"94":1,"112":5,"127":4,"128":2,"130":1,"137":1,"139":5,"147":1,"148":4,"150":3,"151":4,"152":3,"154":2,"156":1,"158":7,"159":2,"161":1,"162":2,"402":1,"403":2,"404":3,"405":2,"408":1,"409":1,"410":1,"622":1}}],["以在名片中使用小写字母",{"2":{"733":1}}],["以控制指令的行为",{"2":{"721":1}}],["以打破死锁",{"2":{"708":1}}],["以打卡指令为例",{"2":{"83":1}}],["以这种方式骰出的点数会自动成为一个骰池",{"2":{"703":1}}],["以腾讯云轻量服务器为例",{"2":{"686":1}}],["以允许远程",{"2":{"684":1}}],["以确定海豹核心是否收到了指令",{"2":{"681":1}}],["以确保其接受任何来源的连接",{"2":{"497":1}}],["以确保数据被写入硬盘",{"2":{"457":1}}],["以确保正则表达式的表现一致",{"2":{"69":1}}],["以使用对方的属性",{"2":{"639":1}}],["以使用对方的技能进行检定",{"2":{"602":1}}],["以进行更复杂的运算",{"2":{"637":1}}],["以此类推",{"2":{"635":1,"636":1,"672":1}}],["以更方便地计算某些固定骰点",{"2":{"591":1}}],["以适配尽量多的用法",{"2":{"582":1}}],["以提供各自不同的服务内容",{"2":{"571":1}}],["以避免预期外结果",{"2":{"548":1}}],["以备份数据",{"2":{"546":1}}],["以不合理的速度在多地区登录等等",{"2":{"512":1}}],["以启动服务器",{"2":{"481":1}}],["以防万一最好导出一次保留数据",{"2":{"444":1}}],["以图片",{"2":{"375":1}}],["以便顺畅使用的方法",{"2":{"446":1}}],["以便于骰主知晓存活状态",{"2":{"344":1}}],["以便使用和分享",{"2":{"159":1}}],["以免数据丢失",{"2":{"542":1}}],["以免更新失败",{"2":{"542":1}}],["以免产生不必要的报错信息",{"2":{"341":1,"513":1}}],["以免造成麻烦",{"2":{"254":1}}],["以设置自动清理时机",{"2":{"320":1}}],["以对外暴露",{"2":{"254":1}}],["以对方身份进行骰点",{"2":{"134":1}}],["以至于错失了一个全新的",{"2":{"204":1}}],["以及括号",{"2":{"637":1}}],["以及极少的",{"2":{"550":1}}],["以及一些与文件相关的问题",{"2":{"429":1}}],["以及",{"2":{"393":1,"492":1}}],["以及你的操作系统等",{"2":{"227":1}}],["以及你使用的程序版本号",{"2":{"190":1}}],["以及如何在",{"2":{"193":1,"202":1}}],["以及帮助社畜制作者们稍微抵抗来自现实的引力",{"2":{"2":1}}],["以秒为单位的",{"2":{"159":1}}],["以供参考",{"2":{"147":1}}],["以结构体方法的形式存在",{"2":{"94":1}}],["以匹配",{"0":{"85":1}}],["以下内容针对从未接触过骰子的用户准备",{"2":{"716":1}}],["以下内容归档于",{"2":{"203":1,"213":1,"236":1,"253":1,"254":1,"261":1}}],["以下指令均可",{"2":{"683":1}}],["以下的角色名部分相同",{"2":{"659":1}}],["以下载对应文件",{"2":{"321":1}}],["以下",{"2":{"255":1}}],["以下教程也不再适用",{"2":{"254":1}}],["以下是一些典型的反例",{"2":{"223":1}}],["以下是一些合适的措辞",{"2":{"223":1,"224":1,"225":1,"226":1,"227":1}}],["以下代码处理的是",{"2":{"115":1}}],["以下为",{"2":{"367":1}}],["以下为部分",{"2":{"94":1}}],["以下为简要说明",{"2":{"41":1}}],["以下给出在同一个",{"2":{"84":1}}],["以石头剪刀布为例",{"2":{"84":1}}],["以养猫功能中猫好感度为例",{"2":{"81":1}}],["以显示该牌堆提供了云端内容",{"2":{"62":1}}],["以指定对应的更新链接",{"2":{"58":3}}],["以示例图中路径为例",{"2":{"56":1}}],["以示它们的不同",{"2":{"37":1}}],["以上指令等价于",{"2":{"656":1}}],["以上所有骰法",{"2":{"637":1}}],["以上功能可以组合使用",{"0":{"600":1}}],["以上功能均可以通过附加",{"2":{"593":1,"599":1,"666":1,"668":1,"671":1,"673":1,"675":1,"677":1,"679":1}}],["以上命令的详细用法",{"2":{"541":1}}],["以上命令会完成容器更新",{"2":{"495":1}}],["以上版本",{"2":{"460":1}}],["以上的安卓端海豹",{"2":{"265":1}}],["以上的规则模板和指令都可以在同一个",{"2":{"147":1}}],["以上就是我们总结出的",{"2":{"212":1}}],["以上就是提问的智慧中我们总结出的",{"2":{"192":1,"234":1}}],["以上",{"2":{"180":1,"182":1,"255":1,"261":1,"457":1}}],["以上三个对象内容暂略",{"2":{"105":1}}],["以上两种写法实现效果没有差别",{"2":{"83":1}}],["以上述牌组为例",{"2":{"64":1}}],["以上文的例子而言",{"2":{"54":1}}],["以上结构相当于",{"2":{"36":1}}],["以两个斜杠",{"2":{"42":1}}],["以",{"2":{"33":1,"54":1,"349":1,"538":2,"569":1,"721":1,"722":1}}],["以修改了",{"2":{"28":1}}],["展示当前",{"2":{"670":1}}],["展示列表",{"2":{"623":1}}],["展示我的权限",{"2":{"121":1}}],["展示",{"0":{"28":1}}],["`另一种插入表达式的写法",{"2":{"173":1}}],["`特殊文本类型",{"2":{"173":1}}],["`json",{"2":{"138":6}}],["`抱歉",{"2":{"135":1}}],["`http",{"2":{"135":1}}],["`正在试图捕捉$",{"2":{"134":1}}],["`骰子面数应是数字`",{"2":{"133":1}}],["`结果是",{"2":{"130":1}}],["`当前分歧",{"2":{"130":6,"131":1}}],["`已新建分歧",{"2":{"130":1}}],["`群内安价收集",{"2":{"130":1}}],["`投喂记录",{"2":{"129":1}}],["`用户$",{"2":{"127":1}}],["`你在群$",{"2":{"133":1}}],["`你给海豹投喂了$",{"2":{"129":1}}],["`你抓到一只海豹",{"2":{"116":1,"117":1}}],["`你需要的回复文本`",{"2":{"83":1}}],["`煤气灯`",{"2":{"102":2}}],["`我要",{"2":{"99":1}}],["`$",{"2":{"127":1,"130":2}}],["`$g群友经典语录`",{"2":{"99":2}}],["`$m今日打卡次数`",{"2":{"99":2}}],["`$xxx`即",{"2":{"94":1}}],["`$xxx`",{"2":{"94":10}}],["`那我出",{"2":{"84":3}}],["`在一天触发多次时的回复`",{"2":{"83":1}}],["`内容6`",{"2":{"81":1}}],["`内容5`",{"2":{"81":1}}],["`内容4`",{"2":{"81":1}}],["`内容3`",{"2":{"81":1}}],["`内容2`",{"2":{"81":1}}],["`内容1`",{"2":{"81":3}}],["`",{"2":{"26":1,"27":6,"77":1,"81":20,"84":3,"94":4,"97":2,"116":1,"117":1,"119":2,"127":1,"129":4,"130":9,"131":1,"133":1,"134":1,"135":6,"138":6,"173":2}}],["x86",{"2":{"642":1,"722":1}}],["xargs",{"2":{"576":2}}],["xattr",{"2":{"539":2}}],["xe",{"2":{"541":1}}],["x64",{"2":{"538":3,"539":1}}],["xmx2g",{"2":{"480":2}}],["xms2g",{"2":{"480":2}}],["xposed",{"2":{"254":1,"257":2}}],["x",{"2":{"133":6,"137":3,"239":1,"478":1,"635":4,"636":4,"746":2}}],["x3c",{"2":{"78":5,"81":5,"90":1,"114":1,"117":2,"119":2,"127":4,"129":2,"130":1,"134":2,"136":4,"139":1,"173":2,"375":1,"497":1,"570":1,"582":6,"694":1,"695":1,"722":5}}],["xx",{"2":{"224":2}}],["xx=xxx",{"2":{"73":1}}],["xxxxxxxx",{"2":{"315":1}}],["xxxx",{"2":{"116":1,"117":1}}],["xxx",{"2":{"12":1,"48":2,"64":1,"73":1,"137":5,"138":1,"223":1,"242":1}}],["xlsx",{"2":{"68":2,"393":1,"504":1}}],["x26",{"2":{"26":6,"37":1,"39":2,"47":1,"78":2,"84":12,"135":3,"177":2,"539":4}}],["07",{"2":{"481":3}}],["01",{"2":{"480":1}}],["06",{"2":{"242":2}}],["05",{"2":{"242":2}}],["00",{"2":{"141":2,"242":4,"480":2,"481":6,"482":2}}],["02",{"2":{"130":1,"497":1}}],["0=没事",{"2":{"125":1}}],["08",{"2":{"33":2,"48":4,"141":1,"142":1}}],["0",{"2":{"26":1,"27":1,"48":5,"72":1,"76":1,"90":2,"94":2,"98":1,"112":4,"117":4,"119":4,"120":2,"121":4,"127":4,"129":5,"130":11,"133":4,"134":4,"136":3,"139":4,"158":2,"159":4,"165":14,"166":6,"172":2,"173":1,"178":2,"181":1,"253":6,"254":3,"259":4,"261":1,"262":1,"278":8,"347":6,"350":1,"442":1,"478":1,"481":1,"482":7,"493":9,"497":9,"498":2,"521":2,"570":3,"594":1,"598":1,"605":1,"609":1,"615":1,"619":1,"625":1,"634":4,"635":1,"648":1,"652":2,"665":40,"670":6,"676":1,"678":4,"684":5,"686":8,"689":2,"694":3,"695":2,"715":1,"751":1}}],["$",{"2":{"119":1,"127":6,"129":2,"130":14,"131":2,"133":1,"135":1,"290":1,"582":5}}],["$xxx",{"2":{"94":2}}],["$g群主体重",{"2":{"172":1}}],["$g开头",{"2":{"172":1}}],["$g",{"2":{"83":1,"172":1}}],["$g文案模式==2",{"2":{"26":1}}],["$g文案模式==1",{"2":{"26":1}}],["$g文案模式==0",{"2":{"26":1}}],["$g文案模式",{"2":{"26":3,"27":3}}],["$m今日人品",{"2":{"172":1}}],["$m开头",{"2":{"172":1}}],["$mstory=0",{"2":{"87":1}}],["$mstory",{"2":{"87":10}}],["$mplayerwin",{"2":{"84":2}}],["$mplayerlose",{"2":{"84":2}}],["$mplayertime",{"2":{"84":6}}],["$m变量==$tdate",{"2":{"83":1}}],["$m变量=$tdate",{"2":{"83":1}}],["$m变量",{"2":{"83":4}}],["$m",{"2":{"83":1,"172":1}}],["$mcatfavor不同",{"2":{"81":1}}],["$mcatfavor",{"2":{"81":5}}],["$m金币=$m金币",{"2":{"59":3}}],["$m金币=$m金币+114",{"2":{"59":3}}],["$t目标指令",{"2":{"374":1}}],["$t目标文案",{"2":{"27":4}}],["$t指令来源",{"2":{"374":1}}],["$t列表内容",{"2":{"374":1}}],["$t原因句子",{"2":{"373":1}}],["$t总结果文本",{"2":{"371":1}}],["$t提示",{"2":{"370":1}}],["$t附加语",{"2":{"370":1}}],["$t变更列表",{"2":{"369":1}}],["$t判定结果",{"2":{"368":1}}],["$t结果文本",{"2":{"368":2,"370":1,"371":2,"373":2}}],["$t消息类型",{"2":{"172":1}}],["$t游戏模式",{"2":{"172":1}}],["$t平台",{"2":{"172":1}}],["$t文本长度",{"2":{"172":1}}],["$ttimestamp",{"2":{"172":1}}],["$tsecond",{"2":{"172":1}}],["$tmsgid",{"2":{"172":1}}],["$tminute",{"2":{"172":1}}],["$tmonth",{"2":{"172":1}}],["$thour",{"2":{"172":1}}],["$tweekday",{"2":{"172":1}}],["$tyear",{"2":{"172":1}}],["$t个人骰子面数",{"2":{"172":1}}],["$t群组骰子面数",{"2":{"376":2}}],["$t群号",{"2":{"172":2}}],["$t群名",{"2":{"172":1}}],["$tqq",{"2":{"172":1}}],["$tqq昵称",{"2":{"172":1}}],["$t账号id",{"2":{"172":2}}],["$t随机点数",{"2":{"172":1}}],["$t开头",{"2":{"172":1}}],["$t",{"2":{"172":6}}],["$t人品",{"2":{"97":2,"181":5}}],["$tday",{"2":{"172":1}}],["$tdate",{"2":{"83":3,"172":1}}],["$tdiceplay==",{"2":{"84":6}}],["$tdiceplay==$t0",{"2":{"84":1}}],["$tdiceplay=",{"2":{"84":3}}],["$tdiceplay=条件算符",{"2":{"84":1}}],["$tdiceplay",{"2":{"84":6}}],["$trand之后再次判断的时候",{"2":{"84":1}}],["$trand==3",{"2":{"84":1}}],["$trand==2",{"2":{"84":2}}],["$trand==1",{"2":{"81":2,"84":2}}],["$trand=d3",{"2":{"84":3}}],["$trand=d10",{"2":{"81":2}}],["$trand=d6",{"2":{"81":1}}],["$trand",{"2":{"79":2,"84":1}}],["$t测试赋值为",{"2":{"78":1}}],["$t测试",{"2":{"78":5}}],["$t测试==2",{"2":{"78":1}}],["$t测试==1",{"2":{"78":1}}],["$t测试=1",{"2":{"77":1,"78":1}}],["$ta",{"2":{"73":1}}],["$t0=0",{"2":{"183":1}}],["$t0==",{"2":{"84":6}}],["$t0",{"2":{"73":1,"79":8,"84":4,"173":11,"174":3,"183":3}}],["$t玩家",{"2":{"73":1,"84":3,"97":1,"116":1,"172":2,"181":1,"735":1}}],["$t2",{"2":{"73":1}}],["$t输出3",{"2":{"82":2}}],["$t输出2",{"2":{"82":5}}],["$t输出1",{"2":{"82":2}}],["$t输出0",{"2":{"82":2}}],["$t输出",{"2":{"26":1,"78":5,"81":2,"82":1,"83":3,"84":3}}],["$t输出=$trand==6",{"2":{"81":1}}],["$t输出=$trand==5",{"2":{"81":1}}],["$t输出=$trand==4",{"2":{"81":1}}],["$t输出=$trand==3",{"2":{"81":1}}],["$t输出=$trand==2",{"2":{"81":1}}],["$t输出=$trand==1",{"2":{"81":1}}],["$t输出=`不存在指定模式",{"2":{"26":1}}],["$t输出=",{"2":{"26":3,"78":3}}],["$t1=",{"2":{"77":1,"183":1}}],["$t1==",{"2":{"26":3}}],["$t1",{"2":{"26":5,"73":3,"174":2,"183":4}}],["$t计算结果",{"2":{"24":3}}],["$t计算过程",{"2":{"24":1}}],["$t表达式文本",{"2":{"24":1}}],["默认随机生成",{"2":{"762":1}}],["默认是",{"2":{"762":1,"763":1}}],["默认是中文",{"2":{"762":1}}],["默认不记录频道消息",{"2":{"691":1}}],["默认持续时长为",{"2":{"686":2}}],["默认技能等级",{"0":{"558":1}}],["默认开放的正向",{"2":{"521":1}}],["默认开启",{"2":{"342":1}}],["默认端口为",{"2":{"482":1}}],["默认状态下",{"2":{"414":1}}],["默认情况下",{"2":{"413":1,"541":1}}],["默认分组",{"2":{"396":1}}],["默认会被解析为",{"2":{"377":1}}],["默认文案",{"2":{"364":1}}],["默认为抽",{"2":{"653":1}}],["默认为每页",{"2":{"642":1}}],["默认为",{"2":{"347":1,"488":1,"636":1}}],["默认为空",{"2":{"238":1}}],["默认关闭",{"2":{"343":1,"346":1}}],["默认使用",{"2":{"302":1}}],["默认的",{"2":{"181":1,"238":1}}],["默认的名字是",{"2":{"151":1}}],["默认输出的插件代码是压缩过的",{"0":{"156":1}}],["默认值的生效范围是当前群组",{"2":{"711":1}}],["默认值可以由",{"2":{"711":1}}],["默认值",{"2":{"711":1}}],["默认值等信息",{"2":{"138":1}}],["默认值和可选项",{"2":{"94":1}}],["默认模式启用",{"2":{"26":1}}],["默认",{"2":{"26":2,"396":1,"619":1}}],["ielts单词",{"2":{"652":1}}],["ios",{"2":{"686":1,"723":1}}],["io",{"2":{"491":5,"539":1}}],["ip138",{"2":{"686":1}}],["iptables",{"2":{"684":1}}],["ipv4",{"2":{"278":1}}],["ip",{"0":{"278":1},"2":{"187":1,"201":1,"270":1,"278":7,"482":3,"497":5,"501":6,"684":1,"686":3}}],["im",{"2":{"531":1,"532":3,"640":3,"706":4}}],["implementations",{"2":{"493":1}}],["image",{"2":{"135":2,"242":1,"491":5}}],["images",{"2":{"55":1,"66":1,"375":4,"428":1,"443":1}}],["imsyy",{"2":{"135":2}}],["i",{"0":{"277":1},"1":{"278":1,"279":1},"2":{"130":3,"447":1,"541":1,"684":1,"696":1}}],["input",{"2":{"684":1}}],["init",{"0":{"660":1},"2":{"660":8,"672":1,"746":1}}],["in",{"2":{"539":1}}],["inet6",{"2":{"497":1}}],["inet",{"2":{"497":1}}],["indicating",{"2":{"480":1}}],["index",{"2":{"130":8,"136":1,"152":2}}],["installation",{"2":{"466":1}}],["install",{"2":{"151":2,"152":1,"466":1,"532":2}}],["information",{"2":{"532":1}}],["info",{"2":{"127":9,"242":2,"299":1,"460":3,"481":3,"482":1,"626":1,"648":1}}],["inviter",{"2":{"121":1}}],["inviteuserid",{"2":{"106":1}}],["intel",{"2":{"538":2,"539":1}}],["intent",{"2":{"464":3}}],["intents",{"2":{"464":1}}],["interface",{"2":{"138":3,"307":1}}],["intval",{"2":{"139":2}}],["int64",{"2":{"109":1}}],["intset",{"2":{"94":1,"99":1}}],["intget",{"2":{"94":3,"99":1}}],["int",{"2":{"94":8,"105":1,"138":1}}],["id>",{"2":{"722":1}}],["id",{"0":{"469":1},"2":{"94":4,"108":1,"109":1,"123":2,"125":2,"127":2,"135":1,"172":6,"238":1,"332":3,"333":1,"427":3,"460":6,"469":2,"470":1,"501":1,"622":1,"623":10,"642":1,"706":2,"722":1}}],["ignore",{"2":{"90":1}}],["is",{"0":{"198":1},"2":{"460":6}}],["isnan",{"2":{"133":1}}],["isargequal",{"2":{"110":1}}],["isactive",{"2":{"106":1}}],["isprivate",{"2":{"105":1}}],["iscurgroupboton",{"2":{"105":1}}],["isshuffle",{"2":{"94":2}}],["issues",{"2":{"279":1}}],["issue",{"0":{"192":1,"193":1,"202":1,"233":1,"279":1},"2":{"5":1,"7":1,"18":1,"192":1,"193":3,"202":3,"206":8,"233":1,"236":1,"279":3}}],["iso8601",{"2":{"45":1}}],["if",{"0":{"78":1},"2":{"26":4,"27":3,"78":10,"79":1,"81":3,"83":3,"84":9,"87":4,"112":1,"116":1,"117":2,"119":2,"121":1,"127":10,"129":2,"130":6,"133":4,"134":1,"135":2,"136":6,"137":2,"139":3,"142":1,"174":2,"183":1}}],["见到卡片右上角出现锁图标即可",{"2":{"450":1}}],["见",{"2":{"25":1,"92":1,"162":1,"236":1,"326":1,"355":1,"381":1,"386":1,"390":1,"394":1,"400":1,"408":1,"410":1,"419":2,"420":1,"513":4,"540":1,"729":1}}],["了解海豹的扩展能力",{"2":{"579":1}}],["了解海豹语",{"0":{"92":1}}],["了解如何快速搭建海豹",{"2":{"579":1}}],["了解全部指令",{"2":{"579":1}}],["了解更多",{"2":{"263":1}}],["了解一个概念背后的一些细节",{"2":{"211":1}}],["了解自定义回复的编写",{"2":{"25":1}}],["了解指令的基本格式",{"2":{"19":1}}],[">=2",{"2":{"165":1,"166":1}}],[">=",{"2":{"130":2,"136":1,"173":1,"180":2,"181":4,"182":1}}],[">",{"2":{"24":1,"73":1,"76":1,"82":1,"110":3,"130":1,"173":1,"181":4,"183":2,"363":1,"375":1,"552":2,"562":1,"591":1,"593":1,"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"602":2,"604":2,"605":2,"608":1,"611":1,"616":1,"624":1,"625":2,"628":1,"629":1,"630":1,"631":1,"632":2,"633":4,"634":2,"635":2,"636":1,"637":2,"638":1,"639":1,"640":1,"652":1,"653":1,"658":1,"659":1,"660":1,"665":2,"667":1,"669":1,"670":4,"672":1,"674":1,"676":1,"678":4,"702":1,"703":1,"704":1,"706":3,"709":1,"711":2}}],["啧",{"2":{"24":2}}],["乐",{"2":{"24":2}}],["=0",{"2":{"711":1}}],["=d30",{"2":{"659":1}}],["=d20+2",{"2":{"659":1,"756":1}}],["=d20+3",{"2":{"659":1}}],["=399",{"2":{"639":1}}],["=3942",{"2":{"637":1}}],["=3",{"2":{"638":1,"678":1}}],["=32",{"2":{"636":1}}],["=36",{"2":{"631":1}}],["=87",{"2":{"631":1}}],["=8",{"2":{"629":1}}],["=42",{"2":{"631":1}}],["=4",{"2":{"628":1,"635":1}}],["=48",{"2":{"628":1}}],["=96+",{"2":{"619":1}}],["=60",{"2":{"628":1}}],["=600",{"2":{"81":1}}],["=6",{"2":{"591":1,"633":1}}],["=7",{"2":{"562":1,"629":1,"632":1}}],["=>",{"2":{"94":1,"98":2,"114":1,"115":1,"116":1,"117":1,"119":2,"121":1,"127":6,"129":1,"130":3,"133":1,"134":1,"135":4,"136":1,"137":1,"139":1,"142":2}}],["=13",{"2":{"637":1}}],["=11",{"2":{"633":1,"635":1,"637":1}}],["=10",{"2":{"633":2}}],["=100",{"2":{"81":1}}],["=17",{"2":{"632":1}}],["=19",{"2":{"632":1}}],["=14",{"2":{"628":1}}],["=16",{"2":{"562":1,"632":1}}],["=1500",{"2":{"81":1}}],["=1",{"2":{"78":1,"711":1}}],["=20",{"2":{"678":1}}],["=224",{"2":{"639":1}}],["=25",{"2":{"637":1}}],["=2500",{"2":{"81":1}}],["=250",{"2":{"81":1}}],["=2",{"2":{"78":1,"165":3,"635":1}}],["===",{"2":{"127":6,"129":1,"130":2,"133":1,"570":3}}],["==userscript==",{"2":{"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"158":1,"159":1,"165":2,"166":1}}],["==",{"2":{"24":2,"27":3,"74":1,"79":1,"84":1,"87":7,"117":1,"119":1,"121":1,"127":4,"129":1,"130":1,"133":2,"134":1,"136":2,"139":2,"158":1,"159":1,"173":4}}],["=",{"2":{"24":1,"26":7,"27":3,"32":1,"33":1,"35":2,"36":7,"37":5,"48":10,"50":2,"51":3,"53":1,"57":4,"58":4,"59":1,"61":7,"63":3,"64":21,"72":2,"79":3,"81":2,"83":5,"84":9,"87":3,"90":13,"94":1,"98":6,"112":1,"114":4,"115":4,"116":5,"117":14,"119":13,"121":11,"127":48,"129":15,"130":37,"131":2,"133":8,"134":12,"135":4,"136":26,"137":3,"139":17,"141":1,"142":2,"144":1,"150":1,"156":1,"173":9,"174":5,"183":3,"591":1,"634":1,"635":1,"658":5,"665":1,"667":3,"669":1}}],["ri",{"0":{"659":1},"2":{"659":11,"746":1,"756":1}}],["rh",{"0":{"638":1},"2":{"746":1}}],["rm",{"2":{"623":1,"641":1,"709":2}}],["rsr",{"0":{"715":1},"2":{"572":1,"715":1,"746":1}}],["r1d20",{"2":{"548":1}}],["rcv",{"0":{"603":1},"1":{"604":1,"605":1,"606":1}}],["rch",{"0":{"601":1},"1":{"602":1}}],["rc",{"0":{"368":1,"594":1,"667":1},"1":{"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"668":1,"669":1},"2":{"594":3,"601":1,"667":6,"669":1,"721":1,"746":1,"747":1}}],["rxx",{"2":{"315":1}}],["rxh",{"0":{"639":1},"2":{"172":1}}],["rx",{"0":{"639":1},"2":{"172":1,"639":1}}],["run",{"2":{"151":2,"152":1,"498":1,"539":1}}],["rule",{"2":{"94":1,"136":7}}],["roll",{"2":{"627":1,"765":1}}],["rollvm",{"2":{"94":6,"97":1,"119":1}}],["room",{"2":{"482":1}}],["root",{"0":{"256":1},"2":{"254":9,"256":5,"261":1,"263":1,"491":3,"541":2}}],["round",{"2":{"133":1}}],["rd",{"2":{"133":2,"354":1,"539":2}}],["rav",{"0":{"603":1},"1":{"604":1,"605":1,"606":1},"2":{"604":1,"605":1,"606":2,"746":1}}],["rah",{"0":{"601":1},"1":{"602":1},"2":{"746":1}}],["ra",{"0":{"368":1,"594":1},"1":{"595":1,"596":1,"597":1,"598":1,"599":1,"600":1},"2":{"172":1,"363":1,"368":1,"503":1,"504":1,"570":2,"582":3,"594":3,"595":3,"596":1,"597":1,"598":1,"601":1,"746":3,"747":1}}],["rand",{"2":{"642":1,"722":1}}],["randomint",{"2":{"130":2}}],["random",{"2":{"116":1,"117":1,"130":1,"133":1,"134":1,"135":1}}],["rank",{"2":{"125":1,"127":5}}],["raw",{"2":{"172":3,"735":1}}],["rawargs",{"2":{"110":1}}],["rawid",{"2":{"109":1}}],["rfc",{"2":{"33":1,"90":2}}],["r",{"0":{"298":1,"373":1,"627":1},"1":{"299":1,"628":1,"629":1,"630":1,"631":1,"632":1,"633":1,"634":1,"635":1,"636":1,"637":1},"2":{"24":2,"130":2,"262":1,"503":1,"548":1,"562":1,"570":4,"591":1,"627":1,"628":6,"631":2,"632":2,"635":1,"637":3,"638":1,"639":1,"640":1,"746":2,"747":1}}],["reboot",{"2":{"622":1}}],["rec",{"2":{"765":1}}],["recover",{"2":{"460":1}}],["record",{"2":{"299":1,"431":1}}],["recentdicesendtime",{"2":{"106":1}}],["reduct",{"2":{"521":1}}],["red",{"0":{"253":1},"2":{"253":2}}],["rest",{"2":{"672":2}}],["restart",{"2":{"491":5,"541":1}}],["reset",{"2":{"464":1}}],["response",{"2":{"135":7}}],["resp",{"2":{"135":2}}],["result",{"2":{"118":1,"119":2,"130":2}}],["ret",{"2":{"115":3,"116":3,"117":3,"127":15,"129":3,"130":3,"134":3,"136":4,"139":3}}],["return",{"2":{"97":1,"115":2,"116":2,"117":2,"119":2,"121":2,"127":11,"129":3,"130":10,"133":5,"134":2,"135":3,"136":1,"139":3}}],["refreshgroupnum",{"2":{"108":1}}],["removed",{"2":{"130":2}}],["remove",{"2":{"94":1,"123":1,"124":1,"127":2}}],["read",{"2":{"460":1,"532":4}}],["readme",{"2":{"5":1}}],["reasons",{"2":{"125":1}}],["reason",{"2":{"94":2,"123":2,"124":1}}],["relogin",{"2":{"622":1}}],["reload",{"2":{"94":1,"102":1,"622":1,"647":1,"655":1}}],["releases",{"2":{"257":1,"258":1}}],["release",{"2":{"5":1,"481":1,"538":1}}],["registertask",{"2":{"141":4,"142":2}}],["registertemplateconfig",{"2":{"94":1,"139":1}}],["registerxxxconfig",{"2":{"138":1}}],["registeroptionconfig",{"2":{"94":1,"139":1}}],["registerboolconfig",{"2":{"94":1,"139":1}}],["registerfloatconfig",{"2":{"94":1,"139":1}}],["registerintconfig",{"2":{"94":1,"139":1}}],["registerstringconfig",{"2":{"94":1,"139":1}}],["registerconfig",{"2":{"94":1,"138":2}}],["registerrule",{"2":{"94":1,"136":1}}],["register",{"2":{"94":2,"112":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"137":1,"139":2}}],["regex",{"2":{"69":2}}],["replytosender",{"0":{"95":1},"2":{"94":2,"95":1,"97":2,"98":2,"116":2,"117":1,"119":3,"121":1,"127":11,"129":2,"130":9,"131":1,"133":2,"134":1,"135":4,"139":9}}],["replyperson做到暗骰的效果",{"2":{"133":1}}],["replyperson",{"0":{"95":1},"2":{"94":1,"95":1,"133":1}}],["replygroup",{"0":{"95":1},"2":{"94":1,"95":2}}],["reply",{"0":{"656":1},"2":{"72":1,"97":2,"414":1,"569":2,"625":4,"656":2,"746":1}}],["re2",{"2":{"69":1}}],["review",{"2":{"10":1,"13":2}}],["request",{"0":{"13":1},"2":{"9":1,"10":1,"13":1,"206":1}}],["示例文件以",{"2":{"491":1}}],["示例文档",{"0":{"67":1}}],["示例结果",{"2":{"172":1}}],["示例中的",{"2":{"159":1}}],["示例代码",{"0":{"119":1,"121":1,"127":1,"129":1,"130":1,"139":1}}],["示例为每人每天一次",{"2":{"83":1}}],["示例如下",{"2":{"64":1}}],["示例",{"0":{"23":1,"78":1,"79":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1},"2":{"24":1,"28":1,"51":1,"53":1,"73":2,"76":1,"82":1,"85":1,"87":1,"117":1,"129":1,"133":1,"134":1,"136":1,"158":1,"363":1,"412":1,"420":1,"552":1,"562":1,"591":1,"593":1,"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"602":1,"604":1,"605":1,"608":1,"611":1,"616":1,"624":1,"625":1,"628":1,"629":1,"630":1,"631":1,"632":2,"633":1,"634":1,"635":2,"636":1,"637":2,"638":1,"639":1,"640":1,"643":1,"644":2,"645":1,"648":1,"652":1,"653":2,"658":1,"659":1,"660":1,"665":1,"667":1,"669":1,"670":4,"672":1,"674":1,"676":1,"678":1,"702":2,"703":1,"704":1,"705":1,"706":2,"711":2,"764":1}}],["充分利用海豹核心提供的自定义能力",{"2":{"21":1}}],["会将两个连字符",{"2":{"723":1}}],["会将用户发的信息进行分段",{"2":{"114":1,"117":1}}],["会提示你已经禁止再向骰子发送私聊消息",{"2":{"708":1}}],["会提示快捷发起",{"2":{"13":1}}],["会弹窗询问是否更换端口",{"2":{"693":1}}],["会弹出二次确认框",{"2":{"414":1}}],["会给消息通知列表的各个接收者发送通知",{"2":{"690":1}}],["会",{"2":{"660":1}}],["会使调查员陷入临时性或不定性疯狂",{"2":{"607":1}}],["会另外占用",{"2":{"550":1}}],["会显示一个较为显眼的更新按钮",{"2":{"543":1}}],["会发送一条含有",{"2":{"535":1}}],["会发生很糟糕的事情",{"2":{"377":1}}],["会视为风险账号",{"2":{"512":1}}],["会自动替换旧版本海豹核心",{"2":{"546":1}}],["会自动处理主机名解析",{"2":{"494":1}}],["会自动创建",{"2":{"492":1}}],["会下载",{"2":{"480":1}}],["会导致新产生的数据被之前导出的数据覆盖",{"2":{"442":1,"577":1}}],["会涉及到海豹提供的其他系统",{"2":{"425":1}}],["会首先判断文件的公共条件是否全部满足",{"2":{"417":1}}],["会有如下效果",{"2":{"688":1}}],["会有一个名为",{"2":{"414":1}}],["会有更新",{"2":{"155":1}}],["会通知骰主",{"2":{"355":1}}],["会向触发用户发送警告信息",{"2":{"355":1}}],["会向骰主提示海豹版本不兼容而拒绝加载",{"2":{"167":1}}],["会检查其中的",{"2":{"354":1}}],["会对以下消息进行通知",{"2":{"333":1}}],["会对你的使用大有帮助",{"2":{"19":1}}],["会退出禁言的事发群",{"2":{"328":1}}],["会索取超级用户权限",{"2":{"256":1}}],["会大大帮助你找到正确的方向",{"2":{"211":1}}],["会变得不幸",{"2":{"174":1}}],["会展示在插件列表页面",{"2":{"159":1}}],["会根据时间",{"2":{"141":1}}],["会根据",{"2":{"141":1}}],["会被替换为抽取结果",{"2":{"119":1}}],["会在重启海豹后丢失",{"2":{"457":1}}],["会在编译时自动加到目标文件头部",{"2":{"152":1}}],["会在",{"2":{"109":1}}],["会出现这样的效果",{"2":{"82":1}}],["会依次调用配置的",{"2":{"64":1}}],["会强制增加相应标识",{"2":{"62":1}}],["会先执行其中的掷骰表达式",{"2":{"52":1}}],["但他们的维护者",{"2":{"718":1}}],["但用户已经无法再通过私聊发送正确的指令",{"2":{"708":1}}],["但并非是海豹账号的好友",{"2":{"681":1}}],["但提示不包含骰点结果",{"2":{"638":1}}],["但只有一方获胜",{"2":{"613":1}}],["但只有成功等级达到要求的难度才判定为成功",{"2":{"597":1}}],["但能提供极为强大的资料查询功能",{"2":{"550":1}}],["但能够被",{"2":{"57":1}}],["但操作难度也有一定程度的增加",{"2":{"515":1}}],["但目前",{"2":{"512":1}}],["但目前来说维护的并不完全",{"2":{"155":1}}],["但需要明白的是",{"2":{"512":1}}],["但已证实的是",{"2":{"512":1}}],["但实际并没有通过",{"2":{"509":1}}],["但实际上没办法匹配上的情况",{"2":{"72":1}}],["但实际上的文件名是",{"2":{"48":1}}],["但官方文档没有及时更新",{"2":{"499":1}}],["但推荐使用",{"2":{"478":1}}],["但登录需要扫码",{"0":{"437":1}}],["但其本质只是一段文本",{"2":{"383":1}}],["但旧的数据不会删除",{"2":{"364":1}}],["但从本质上来说",{"2":{"272":1}}],["但这样做的不稳定性非常大",{"2":{"272":1}}],["但由于其过于古老",{"2":{"292":1}}],["但由于沟通上的歧义或误解",{"2":{"230":1}}],["但由于各种原因",{"2":{"93":1}}],["但反例显然不应该出现在你的问题里",{"2":{"222":1}}],["但你知道黑框框里那堆文字就是日志",{"2":{"210":1}}],["但排版混乱或内容过于老旧已经不再适用",{"2":{"207":1}}],["但又足够你解决问题",{"2":{"206":1}}],["但又不至于直接使用学习门槛较高的正式编程语言",{"2":{"171":1}}],["但切忌评论轰炸",{"2":{"206":1}}],["但考虑到在看这个界面的你可能会对一些部分有所疑惑",{"2":{"188":1}}],["但没有",{"2":{"172":1}}],["但会出现使用旧版本海豹的骰主",{"2":{"167":1}}],["但建议遵循",{"2":{"159":1}}],["但也没有太复杂",{"2":{"135":1}}],["但如果你发现海豹核心仍然时常掉线",{"2":{"455":1}}],["但如果出现牌堆未更新等情况时",{"2":{"385":1}}],["但如果想要存放更多的数据以及非字符串类型的数据怎么办",{"2":{"128":1}}],["但如果有条件",{"2":{"7":1}}],["但不会存在多个",{"2":{"727":1}}],["但不同于参数往往需要处于按照一定的顺序出现",{"2":{"723":1}}],["但不能大于等于",{"2":{"145":1}}],["但不具备",{"2":{"120":1}}],["但不支持其它换行符与分页符",{"2":{"68":1}}],["但详细区别见暗骰例子",{"2":{"116":1,"117":1}}],["但我们不推荐也未尝试过使用它们",{"2":{"257":1}}],["但我们不建议这样做",{"2":{"112":1}}],["但我们非常建议你保留并填写这些项",{"2":{"48":1}}],["但同样存在缺失",{"2":{"94":1}}],["但通常也需要你具备一些知识",{"2":{"91":1}}],["但海豹同样可以读取它",{"2":{"68":1}}],["但依然可以通过指定",{"2":{"57":1}}],["但在牌堆编写过程中",{"2":{"57":1}}],["但顺序是随机的",{"2":{"51":1}}],["但必须是以",{"2":{"48":3}}],["但相同层级的元素必须左对齐",{"2":{"46":1}}],["但是在指令名与参数",{"2":{"722":1}}],["但是在源码中被注释",{"2":{"94":1}}],["但是需要你进行一些配置",{"2":{"684":1}}],["但是用户仍然可以用",{"2":{"582":1}}],["但是命令方块和控制台使用该指令会被视为公屏发送",{"2":{"485":1}}],["但是消息记录会随页面刷新而丢失",{"2":{"427":1}}],["但是没有重启分离部署的",{"2":{"226":1}}],["但是你差不多知道他指的是那个在电脑上弹出来的黑框框",{"2":{"210":1}}],["但是基本对数据库文件夹的异常磁盘占用问题没有效果",{"2":{"190":1,"226":1}}],["但是我修改之后",{"2":{"224":1}}],["但是我私聊它就不行",{"2":{"223":1}}],["但是我的骰子并没有如此大的数据量",{"2":{"190":1}}],["但是我们非常建议你保留并填写这些项",{"2":{"48":2}}],["但是有些编程语言是可以编译为",{"2":{"170":1}}],["但是它也被用到了很多",{"2":{"158":1}}],["但是由于黑名单会被过滤掉",{"2":{"121":1}}],["但是这样做有诸多不便之处",{"2":{"56":1}}],["但是这样写在最前面会多出换行",{"2":{"35":1}}],["但是否这样做取决于你的选择",{"2":{"37":1}}],["但是",{"2":{"19":1,"73":1,"165":1,"189":1,"190":1,"206":1,"207":1,"612":1,"622":1,"682":1}}],["基本设置",{"2":{"341":1,"513":1,"545":1,"622":1,"625":1,"690":1,"691":1,"729":1}}],["基本上全部的特性",{"2":{"158":1}}],["基础值3",{"2":{"665":2}}],["基础值1",{"2":{"665":1}}],["基础配置",{"2":{"523":1}}],["基础设置",{"0":{"329":1},"1":{"330":1,"331":1,"332":1,"333":1,"334":1,"335":1,"336":1,"337":1,"338":1,"339":1,"340":1,"341":1,"342":1,"343":1,"344":1,"345":1,"346":1,"347":1,"348":1,"349":1,"350":1}}],["基础部分",{"2":{"69":1}}],["基础牌堆编写",{"0":{"48":1}}],["基础概念",{"0":{"716":1},"1":{"717":1,"718":1,"719":1,"720":1,"721":1,"722":1,"723":1,"724":1},"2":{"19":1}}],["基于",{"2":{"5":1,"348":1}}],["钉钉支持",{"0":{"462":1}}],["钉钉",{"0":{"461":1},"1":{"462":1},"2":{"18":1,"540":1}}],["t",{"0":{"303":1},"1":{"304":1},"2":{"552":1,"702":1}}],["tcp",{"2":{"259":2,"684":2,"686":2}}],["txlib",{"2":{"239":2}}],["txt",{"2":{"48":1,"89":1,"150":1,"152":1,"356":1,"480":2,"729":2}}],["twenty",{"2":{"189":1}}],["types",{"2":{"152":1,"155":2}}],["typescript",{"2":{"143":1,"147":1,"148":1,"152":1,"157":1,"161":1,"162":1,"170":1}}],["typescripttype",{"2":{"141":1}}],["type",{"2":{"138":3,"480":1,"493":1,"539":1,"576":2}}],["type=$",{"2":{"135":1}}],["the",{"0":{"198":1},"2":{"480":1,"482":1}}],["there",{"0":{"198":1}}],["then",{"2":{"135":4}}],["this",{"2":{"149":1}}],["thiscatdoesnotexist",{"2":{"135":1}}],["tg",{"2":{"123":1}}],["ti",{"0":{"612":1},"2":{"612":3,"746":1,"752":1}}],["tim",{"2":{"437":1,"514":1}}],["times",{"2":{"125":1}}],["timestamp",{"2":{"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"158":1,"159":2}}],["time",{"2":{"109":1}}],["ticket",{"0":{"240":1},"1":{"241":1,"242":1},"2":{"240":1,"242":3,"247":1,"248":1}}],["title",{"2":{"48":4,"58":2,"61":1,"64":1,"130":16,"131":2}}],["tmplval",{"2":{"139":2}}],["tmpl",{"2":{"94":2,"103":2}}],["tsconfig",{"2":{"152":1}}],["ts",{"2":{"94":1,"105":2,"114":2,"130":1,"147":1,"152":3,"155":3,"161":3}}],["ta",{"2":{"361":1,"606":1,"649":3}}],["task",{"2":{"142":3}}],["tasks",{"2":{"142":3}}],["taskctx",{"2":{"141":4,"142":3}}],["tasktype",{"2":{"141":5}}],["tag",{"2":{"68":3,"641":2,"746":1,"748":1}}],["tab",{"2":{"46":1}}],["toefl单词",{"2":{"652":1}}],["to",{"2":{"480":2,"531":1,"532":1,"706":2}}],["tokens",{"2":{"532":1}}],["token",{"0":{"464":1,"469":1,"473":1,"530":1,"531":1,"532":1,"535":1},"1":{"531":1,"532":1},"2":{"464":2,"465":2,"469":2,"470":1,"473":3,"474":4,"530":1,"531":1,"532":3,"533":2,"535":2,"536":2}}],["tools",{"2":{"150":1,"152":1,"154":1,"156":1,"259":3,"262":4,"460":1}}],["top",{"2":{"56":1,"135":2}}],["toml等",{"2":{"301":1}}],["tomltrpg",{"2":{"37":1}}],["tomlkey",{"2":{"33":1,"35":1}}],["toml",{"0":{"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"60":1,"90":1,"304":1},"1":{"61":1,"62":1,"63":1,"64":1},"2":{"30":3,"31":3,"32":1,"33":1,"36":2,"48":4,"50":1,"51":1,"53":1,"57":4,"58":1,"59":1,"61":2,"64":4,"90":7,"304":1,"356":1,"383":1}}],["try",{"2":{"130":1}}],["trust",{"2":{"120":2,"623":1}}],["true",{"2":{"24":1,"33":1,"38":1,"45":1,"61":2,"64":8,"76":1,"94":6,"99":2,"102":1,"115":4,"116":4,"117":4,"118":1,"119":4,"121":1,"127":16,"129":4,"130":8,"133":5,"134":4,"135":2,"139":6,"173":1,"363":1,"457":3,"480":2,"562":1,"591":1,"593":2,"595":2,"624":3,"625":3,"628":5,"631":2,"632":2,"635":1,"637":3,"639":1,"640":3,"652":3,"658":1,"659":5,"660":2,"665":3,"667":2,"669":1,"670":7,"672":4,"676":1,"678":1,"704":1,"706":1,"711":1}}],["trpg",{"0":{"103":1,"143":1,"572":1,"710":1},"1":{"144":1,"145":1,"146":1,"147":1,"711":1,"712":1,"713":1,"714":1,"715":1},"2":{"15":1,"143":2,"147":2,"549":2,"717":1,"738":1,"740":1,"741":1,"742":1,"743":1,"745":1}}],["temple",{"2":{"431":1}}],["template",{"2":{"94":2,"138":1,"149":1}}],["terminal",{"0":{"308":1},"2":{"313":1}}],["testvalue",{"2":{"139":1}}],["testkey6",{"2":{"139":2}}],["testkey5",{"2":{"139":2}}],["testkey4",{"2":{"139":2}}],["testkey3",{"2":{"139":2}}],["testkey2",{"2":{"139":2}}],["testkey1",{"2":{"139":2}}],["test",{"2":{"56":2,"98":4,"112":3,"114":1,"117":2,"129":2,"134":2}}],["text查询指令",{"2":{"722":1}}],["texthttp",{"2":{"686":1}}],["text$",{"2":{"582":1}}],["text$t0",{"2":{"174":1}}],["text数据库检查结果",{"2":{"457":1}}],["text├─backups",{"2":{"430":1}}],["text这里是海豹",{"2":{"377":1}}],["text这里是",{"2":{"377":1}}],["text灵视",{"2":{"180":1,"181":1,"182":1}}],["text加减乘除余",{"2":{"176":1}}],["text或",{"2":{"93":1}}],["textif",{"2":{"78":1,"84":1,"183":1}}],["text正则匹配",{"2":{"73":1}}],["text",{"0":{"342":1,"705":1},"2":{"24":1,"26":2,"27":1,"56":1,"70":3,"76":1,"77":2,"78":1,"79":1,"81":3,"82":1,"83":1,"84":1,"87":1,"89":1,"121":6,"127":5,"134":2,"172":1,"173":1,"174":1,"177":1,"180":2,"181":1,"183":3,"342":1,"375":1,"386":1,"431":1,"480":1,"553":1,"569":2,"570":2,"582":1,"614":1,"665":1,"683":1,"688":1,"705":1}}],["telegram账号",{"2":{"536":1}}],["telegram",{"0":{"534":1},"1":{"535":1,"536":1},"2":{"18":1,"534":1,"535":1,"536":2,"540":1}}],["dc6",{"2":{"733":1}}],["dport",{"2":{"684":1}}],["ds",{"0":{"678":1},"1":{"679":1},"2":{"678":5,"760":2}}],["dungeons",{"2":{"657":1}}],["dur",{"2":{"94":1,"96":2}}],["d10=",{"2":{"638":1}}],["d1000=539",{"2":{"704":1}}],["d1000=568",{"2":{"704":1}}],["d100=72",{"2":{"631":1}}],["d100=70",{"2":{"602":1}}],["d100=78",{"2":{"582":1}}],["d100=5",{"2":{"600":1}}],["d100=51",{"2":{"598":1}}],["d100=96",{"2":{"631":1}}],["d100=97",{"2":{"605":1}}],["d100=91",{"2":{"600":1}}],["d100=90",{"2":{"582":1}}],["d100=6",{"2":{"637":1}}],["d100=69",{"2":{"628":1}}],["d100=65",{"2":{"599":1}}],["d100=64",{"2":{"582":1,"595":1}}],["d100=27",{"2":{"631":1}}],["d100=2",{"2":{"363":1}}],["d100=30",{"2":{"595":1,"597":1}}],["d100=3",{"2":{"363":1}}],["d100=16",{"2":{"600":1,"640":1}}],["d100=15",{"2":{"595":1}}],["d100=100",{"2":{"24":1}}],["d100=1",{"2":{"24":1}}],["d100",{"2":{"76":1,"136":7,"701":1}}],["d50=",{"2":{"628":2}}],["d50",{"2":{"628":2,"637":4}}],["dx",{"0":{"712":1},"2":{"572":1,"712":1,"741":1,"746":1}}],["dg",{"2":{"572":1,"619":1,"739":3}}],["d劣势=",{"2":{"562":1,"632":1}}],["d劣势",{"2":{"562":1,"632":1}}],["db",{"2":{"190":1,"242":1,"431":3,"457":8,"458":1,"460":6}}],["dt",{"2":{"189":1}}],["d20+3",{"2":{"659":1}}],["d20+2",{"2":{"659":1,"756":1}}],["d20+1d8",{"2":{"659":1}}],["d20+1",{"2":{"548":1}}],["d20=1",{"2":{"637":1}}],["d20kl=",{"2":{"633":1}}],["d20kh=",{"2":{"633":1}}],["d20优势=",{"2":{"562":1,"632":1}}],["d20",{"2":{"178":2,"570":1,"637":1}}],["d3",{"2":{"144":1,"147":1}}],["double",{"0":{"741":1},"2":{"741":1}}],["doublecross",{"2":{"572":1}}],["down",{"2":{"497":1}}],["download",{"2":{"149":1}}],["document",{"2":{"577":1}}],["documents",{"2":{"442":1}}],["docx",{"2":{"504":1}}],["docker0",{"2":{"497":2}}],["docker",{"0":{"489":1,"490":1,"491":1},"1":{"490":1,"491":2,"492":2,"493":2,"494":2,"495":2,"496":1,"497":1,"498":1},"2":{"489":3,"491":4,"492":1,"493":2,"494":1,"495":1,"496":1,"497":3,"498":2,"513":2,"538":2,"539":2}}],["done",{"2":{"480":1}}],["does",{"2":{"209":1}}],["dotask",{"2":{"142":1}}],["dodo语音",{"2":{"470":1}}],["dodo",{"0":{"467":1},"1":{"468":1,"469":1,"470":1,"471":1},"2":{"18":1,"109":1,"467":1,"468":2,"469":1,"470":1,"471":3,"540":1,"580":1}}],["drlh",{"2":{"704":1}}],["drl",{"0":{"704":1},"2":{"703":1,"704":3}}],["dragons",{"2":{"657":1}}],["draw",{"0":{"651":1},"1":{"652":1,"653":1,"654":1,"655":1},"2":{"48":3,"51":4,"54":1,"57":14,"61":3,"64":1,"81":10,"94":1,"102":2,"118":1,"119":5,"378":1,"383":1,"386":4,"424":1,"569":1,"651":1,"652":10,"653":2,"654":1,"655":1,"704":1}}],["dr2",{"2":{"119":3}}],["dr",{"2":{"119":3,"646":1}}],["dndx",{"0":{"658":1},"2":{"658":3}}],["dnd5e",{"2":{"569":2,"572":1,"583":1,"669":1}}],["dnd",{"0":{"658":1,"763":1},"2":{"112":1,"172":1,"362":2,"626":2,"642":1,"648":1,"657":1,"658":2,"733":1,"746":2,"755":1}}],["darkness",{"0":{"740":1},"2":{"740":1}}],["darwin",{"2":{"539":2}}],["dash",{"2":{"723":1}}],["dayjs",{"2":{"154":1}}],["daily",{"2":{"141":2,"142":2}}],["danger",{"2":{"89":1,"90":1}}],["data",{"2":{"55":1,"66":1,"129":7,"130":23,"131":5,"135":6,"190":1,"224":1,"242":3,"262":1,"274":1,"299":2,"375":4,"428":1,"431":12,"443":1,"457":6,"460":4,"491":24,"492":2,"493":2,"539":1,"575":1,"577":4,"583":1,"642":2,"687":1,"696":1,"729":1}}],["date",{"2":{"48":5,"90":1}}],["d6",{"2":{"79":1,"145":1,"146":1,"147":1,"715":1}}],["directory",{"2":{"479":1}}],["dicepp",{"2":{"646":1}}],["dice",{"2":{"72":1,"94":1,"189":1,"431":1,"442":1,"570":1,"577":1,"652":1,"699":2}}],["dictinct",{"2":{"64":1}}],["dismiss",{"2":{"349":1,"683":1,"746":1}}],["dis",{"2":{"349":1}}],["discussion",{"2":{"254":1}}],["discord账号",{"2":{"465":1}}],["discord",{"0":{"463":1},"1":{"464":1,"465":1,"466":1},"2":{"18":1,"109":1,"463":1,"464":1,"465":2,"466":1,"540":1,"580":1,"717":1}}],["disk",{"0":{"198":1}}],["dist",{"2":{"151":1}}],["distinct",{"2":{"64":1}}],["dex",{"2":{"735":2}}],["dex60",{"2":{"733":1}}],["details",{"2":{"619":1,"746":1}}],["delta",{"0":{"739":1},"2":{"739":1}}],["deltagreen",{"2":{"572":1}}],["del",{"2":{"588":1,"622":1,"641":1,"649":1,"660":1,"664":1,"670":1,"709":2,"729":1,"746":1}}],["delete",{"2":{"252":1,"460":6}}],["delegatetext",{"2":{"105":1}}],["dev",{"2":{"538":1,"539":1}}],["denied",{"2":{"239":1}}],["demo",{"2":{"159":1}}],["depends",{"2":{"159":2,"164":1,"165":3,"166":3}}],["deprecated",{"2":{"138":3}}],["debug",{"2":{"70":1}}],["defaultvalue",{"2":{"94":1,"138":3,"139":2}}],["default",{"2":{"57":3,"115":1,"116":1,"117":1,"127":5,"129":1,"130":1,"134":1,"139":2,"242":1,"299":1,"431":7,"460":1,"497":1,"583":1,"687":1,"729":1}}],["deck|js|helpdoc",{"2":{"622":1}}],["deckname",{"2":{"94":2,"118":2}}],["deck",{"0":{"102":1},"2":{"56":3,"94":2,"102":3,"118":1,"119":1,"569":2}}],["decks",{"2":{"48":1,"50":1,"51":1,"53":1,"57":2,"58":1,"59":1,"61":1,"119":8}}],["description=",{"2":{"141":1}}],["description",{"2":{"68":2,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"141":2,"150":1,"158":1,"159":2}}],["desc",{"2":{"48":4,"90":1,"136":2,"652":3}}],["d",{"0":{"269":1,"560":2,"754":2},"1":{"270":1,"561":2,"562":2,"563":2,"564":2,"565":2,"566":2,"567":2,"755":2,"756":2,"757":2,"758":2,"759":2,"760":2},"2":{"37":2,"39":4,"47":2,"68":2,"94":1,"105":1,"114":1,"145":1,"146":2,"147":1,"152":1,"155":3,"161":3,"178":1,"245":1,"393":2,"395":2,"492":1,"493":1,"495":1,"539":1,"550":2,"570":1,"576":1,"581":2,"583":2,"632":2,"637":3,"642":2,"646":2,"648":2,"657":8,"717":2,"721":2,"746":9,"747":2}}],["这就造成了死锁",{"2":{"708":1}}],["这就是",{"2":{"743":1}}],["这就是为什么当你部署多只海豹时需要切换端口",{"2":{"278":1}}],["这就是服务器",{"2":{"272":1}}],["这就是暗骰",{"2":{"133":1}}],["这就是最基本的模板了",{"2":{"117":1}}],["这可以有效避免关键词触发的无限复读",{"2":{"688":1}}],["这可避免机器人互相响应造成的危险的循环",{"2":{"649":1}}],["这可能花费你更多时间和精力",{"2":{"549":1}}],["这么好用",{"2":{"644":1}}],["这赋予了查询指令强大的获取能力",{"2":{"642":1}}],["这都将使用新的技能值覆盖现有的技能值",{"2":{"614":1}}],["这提供了调查员从经验中学习的机会",{"2":{"613":1}}],["这被称为疯狂发作的总结症状",{"2":{"612":1}}],["这相当于分别使用",{"2":{"589":1}}],["这指令可能包含了类似这样的内容",{"2":{"582":1}}],["这配置对于海豹核心新加入的群聊生效",{"2":{"569":1}}],["这要求海豹核心拥有",{"2":{"541":1}}],["这将会是你的",{"2":{"531":1}}],["这涉及到你的机器人是否能被",{"2":{"504":1}}],["这三项是海豹进行连接所需要的",{"2":{"501":1}}],["这三个按键",{"2":{"252":1}}],["这通常在安装应用时就已经默认开启",{"2":{"453":1}}],["这主要是为了批量成长时便于引用无前缀",{"2":{"371":1}}],["这也是默认选项",{"2":{"514":1}}],["这也是",{"2":{"314":1}}],["这类语言通过特定的语法描述了数据之间的关系",{"2":{"301":1}}],["这篇速查表的目的就是让屏幕前不太明白计算机相关知识的用户可以快速入门",{"2":{"272":1}}],["这篇科普也一样",{"2":{"185":1,"214":1}}],["这代表数据库是正常的",{"2":{"457":1}}],["这代表",{"2":{"258":1}}],["这时将使用默认值进行骰点",{"2":{"711":1}}],["这时需要执行",{"2":{"681":1}}],["这时",{"2":{"635":1,"641":1}}],["这时不进行加骰而只骰一轮",{"2":{"635":1}}],["这时你的手机海豹里就应该是旧海豹的数据了",{"2":{"577":1}}],["这时点击",{"2":{"509":1}}],["这时候通过在任务管理器关闭部分没有在使用的进程就可以解决",{"2":{"252":1}}],["这时候通常通过删除磁盘内部分不需要的文件",{"2":{"198":1}}],["这时再来询问",{"2":{"189":1}}],["这不会将角色卡绑定到当前群聊",{"2":{"641":1}}],["这不会造成数据损失",{"2":{"574":1}}],["这不只是影响到群员",{"2":{"190":1}}],["这不仅方便了群员和管理回答你的问题",{"2":{"187":1,"201":1}}],["这意味着这个牌堆在抽取时",{"2":{"389":1}}],["这意味着这个插件需要同时满足所有的依赖才能工作",{"2":{"166":1}}],["这意味着骰子会",{"2":{"363":1}}],["这意味着",{"2":{"254":1}}],["这意味着该插件需要同时安装一个名为",{"2":{"165":1}}],["这在你需要依赖高版本插件的情况下很有用",{"2":{"165":1}}],["这表示",{"2":{"165":1}}],["这决定了编译时输出的插件文件名",{"2":{"150":1}}],["这包括",{"2":{"146":1}}],["这限定了只有在未收到命令且未达成自定义回复时",{"2":{"137":1}}],["这会要求场景中每位调查员进行一次理智检定",{"2":{"607":1}}],["这会让开发者们可能记住这个问题",{"2":{"193":1,"202":1}}],["这会非常有用",{"2":{"137":1}}],["这会自动给用户发送帮助",{"2":{"115":1,"116":1,"117":1}}],["这会导致格式错误",{"2":{"66":1}}],["这种情况",{"2":{"722":1}}],["这种情况可以删除",{"2":{"696":1}}],["这种操作称为",{"2":{"639":1}}],["这种办法有一定的操作难度",{"2":{"460":1}}],["这种方法简便",{"2":{"459":1}}],["这种做法会绕过文案版本的迁移变更",{"2":{"365":1}}],["这种解决方案适合个人与朋友使用骰子的场景",{"2":{"254":1}}],["这种",{"2":{"110":1}}],["这些规则因指令数量少或仍在预览阶段的原因",{"2":{"738":1}}],["这些资料的原始出处和译者很多已经不可考",{"2":{"646":1}}],["这些资料在海豹的",{"2":{"642":1}}],["这些角色卡可以被绑定到任意数量的群聊",{"2":{"641":1}}],["这些角色卡互相无任何影响",{"2":{"641":1}}],["这些同义词都是符合直觉的",{"2":{"583":1}}],["这些名字等价",{"2":{"582":1}}],["这些方案都由社区第三方软件提供",{"2":{"512":1}}],["这些记录通常反映了程序的运行状态",{"2":{"299":1}}],["这些议题主要包括了使用求助",{"2":{"279":1}}],["这些进程一旦关闭",{"2":{"252":1}}],["这些页面中",{"2":{"206":1}}],["这些问题的解决方法在很多地方写有",{"2":{"189":1}}],["这些是海豹中的变量",{"2":{"172":1}}],["这些语言在编写时使用它们自己",{"2":{"170":1}}],["这些信息通常被称为",{"2":{"159":1}}],["这些编辑器提供的语法高亮",{"2":{"93":1}}],["这些都是被广泛使用的优秀编辑器",{"2":{"93":1}}],["这些功能能让你实现更多的个性化功能",{"2":{"91":1}}],["这些辅助项是不希望暴露给用户的",{"2":{"57":1}}],["这两条命令移除海豹核心程序和",{"2":{"539":1}}],["这两个功能访问海豹的私有目录",{"2":{"443":1}}],["这两个插件时",{"2":{"166":1}}],["这两个结果",{"2":{"48":2}}],["这两段较为常规",{"2":{"87":1}}],["这需要牌堆作者有能力提供一个",{"2":{"62":1}}],["这允许你更精细的控制每个牌组的选项",{"2":{"61":1}}],["这一段落是以玩家视角而非主持人视角编写的",{"2":{"747":1}}],["这一章节",{"2":{"698":1}}],["这一指令会将所有可抽取的牌组列出",{"2":{"652":1}}],["这一设计是为了解决下面这样的问题",{"2":{"582":1}}],["这一渠道提供两个版本",{"2":{"538":1}}],["这一截图工具",{"2":{"210":1}}],["这一个文件被解压出来了",{"2":{"196":1}}],["这一牌组无法再用",{"2":{"57":1}}],["这一牌组",{"2":{"57":2}}],["这一节介绍了海豹核心最重要的一些指令",{"2":{"20":1}}],["这个权限是群主或群管理员",{"2":{"732":1}}],["这个权限会让海豹只接收被",{"2":{"531":1}}],["这个端口号会被写入配置中供后续启动使用",{"2":{"694":1}}],["这个指令将其去除",{"2":{"731":1}}],["这个指令的作用实际是给使用者的名字上前缀",{"2":{"731":1}}],["这个指令的存在是为了解决",{"2":{"708":1}}],["这个指令的格式与普通骰点",{"2":{"638":1,"639":1}}],["这个指令似乎都没有实际作用",{"2":{"708":1}}],["这个指令用于标记同一群聊内的其他机器人",{"2":{"649":1}}],["这个改动在当前群聊持续生效",{"2":{"569":1}}],["这个小类中",{"2":{"363":1}}],["这个选项决定了什么范围的内容会进行拦截检查",{"2":{"354":1}}],["这个系统就是专为服务器开发的",{"2":{"272":1}}],["这个页面",{"2":{"268":1}}],["这个文件遵守以下格式",{"2":{"583":1}}],["这个文件夹下",{"2":{"242":1}}],["这个文件是你插件的描述信息",{"2":{"150":1}}],["这个操作非常简单",{"2":{"196":1}}],["这个问题分为两个部分",{"2":{"170":1}}],["这个插件需要同时安装",{"2":{"166":1}}],["这个扩展只会在日志中打印一条",{"2":{"158":1}}],["这个扩展标准的语法",{"2":{"66":1}}],["这个函数会返回一个",{"2":{"138":1}}],["这个命令的功能为",{"2":{"114":1,"117":1,"134":1}}],["这个村子有一户人家",{"2":{"87":1}}],["这个示例牌堆怎么这么臭",{"2":{"48":3}}],["这个牌堆编写如下",{"2":{"48":1}}],["这个牌堆有",{"2":{"48":1}}],["这个仓库也作为海豹的主仓库",{"2":{"5":1}}],["这里讲的是使用海豹核心的相关事项",{"2":{"716":1}}],["这里选择",{"2":{"686":1}}],["这里是为了替换数据库特别地需要开启",{"2":{"577":1}}],["这里是你需要编写的内容",{"2":{"114":1}}],["这里补充一些文档中没有说明的其他事项",{"2":{"506":1}}],["这里提供了海豹骰的机器人",{"2":{"504":1}}],["这里我们以",{"2":{"460":1}}],["这里以",{"2":{"272":1}}],["这里的内存就是指电脑",{"2":{"252":1}}],["这里的内存不足代指的是磁盘可存储的空间不足",{"2":{"198":1}}],["这里的第一句也是最后一句",{"2":{"77":1}}],["这里请自己处理要如何达成",{"2":{"137":1}}],["这里其实是编写处理函数",{"2":{"137":1}}],["这里其实获取的是",{"2":{"98":2}}],["这里写的时候有点不清醒了",{"2":{"133":1}}],["这里只是为了演示",{"2":{"121":1}}],["这里只列出了常见的",{"2":{"47":1}}],["这里",{"2":{"115":1,"116":1,"117":1,"239":1}}],["这里仅说明需要用到的接口",{"2":{"114":1}}],["这里实在不知道如何举例了",{"2":{"103":1}}],["这里等大佬来了再研究",{"2":{"97":1}}],["这里有些复杂",{"2":{"94":1}}],["这里除了平局可以使用",{"2":{"84":1}}],["这里填你个性化的模式2文案",{"2":{"27":1}}],["这里填你个性化的模式1文案",{"2":{"27":1}}],["这里填你个性化的默认模式文案",{"2":{"27":1}}],["这样一来",{"2":{"569":1}}],["这样也很费电",{"2":{"272":1}}],["这样才有助于问题的快速解决",{"2":{"230":1}}],["这样草草浏览知识真的正确么",{"2":{"210":1}}],["这样你就能自己解决问题",{"2":{"205":1}}],["这样的名字出现",{"2":{"272":1}}],["这样的页面与",{"2":{"203":1}}],["这样的大小",{"2":{"190":1}}],["这样能比上面那些不能一眼看出问题的语句能让群员",{"2":{"190":1}}],["这样就会下载一个压缩包",{"2":{"149":1}}],["这样",{"2":{"57":1,"191":1,"232":1}}],["这样在",{"2":{"57":2}}],["这样写就没有开头的空行问题了",{"2":{"35":1}}],["这样它才能接收和发送消息",{"2":{"18":1}}],["这是为了防止引起企鹅的警惕",{"2":{"689":1}}],["这是海豹核心用于标识不同平台的用户和群组的通用格式",{"2":{"623":1}}],["这是连接机器人所需要的凭证",{"2":{"535":1}}],["这是你的",{"2":{"532":1}}],["这是面向一般用户提供的简单对接方式",{"2":{"513":1}}],["这是保活策略的一部分",{"2":{"454":1}}],["这是",{"2":{"350":1}}],["这是由海豹核心自动处理的",{"2":{"167":1}}],["这是关于数据的增加",{"2":{"130":1}}],["这是因为",{"2":{"442":1,"577":1}}],["这是因为虽然",{"2":{"82":1}}],["这是因为如果某一变量可能为空时",{"2":{"82":1}}],["这是一群用禁忌知识武装自己头脑",{"2":{"585":1}}],["这是一群搜索遗忘之地的人",{"2":{"585":1}}],["这是一群发掘深层秘密的人",{"2":{"585":1}}],["这是一种表达一个或一系列时间点的语法",{"2":{"314":1}}],["这是一种对标准",{"2":{"37":1}}],["这是一个演示脚本",{"2":{"158":1,"159":1}}],["这是一个类",{"2":{"145":1}}],["这是一段字符串",{"2":{"45":1}}],["这是多行字符串的语法",{"2":{"35":1}}],["这是注释",{"2":{"32":1}}],["迁移数据到手机",{"0":{"577":1}}],["迁移至新的",{"2":{"254":1}}],["迁移",{"0":{"573":1},"1":{"574":1,"575":1,"576":1,"577":1},"2":{"17":1}}],["你使用一个技能",{"2":{"747":1}}],["你使用的指令",{"2":{"681":1}}],["你尝试私聊海豹核心",{"2":{"681":1}}],["你尝试过的方法可能就是排查问题的手段之一",{"2":{"226":1}}],["你尝试过的解决方案",{"0":{"226":1}}],["你觉得你还可以抢救一下",{"2":{"678":1}}],["你所需要做的",{"2":{"657":1}}],["你必须",{"2":{"624":1}}],["你必须允许海豹核心访问存储空间",{"2":{"453":1}}],["你会在许多其他指令中看到代骰用法",{"2":{"639":1}}],["你会经常用到统一",{"2":{"623":1}}],["你会希望双方都进行掷骰来决出胜者",{"2":{"603":1}}],["你会发现不应当为人类所知晓的秘密",{"2":{"584":1}}],["你会需要使用一些特殊技术",{"2":{"549":1}}],["你已经成功启动了海豹核心",{"2":{"540":1}}],["你才能将官方机器人送审",{"2":{"507":1}}],["你通常也无需专门查阅列表",{"2":{"583":1}}],["你通常会看到展示设备上所有应用的列表",{"2":{"447":1}}],["你通常需要以深度优先的方式",{"2":{"211":1}}],["你好",{"2":{"421":1}}],["你设定的答案不应含有空格",{"2":{"349":1}}],["你指定的邮箱需支持通过",{"2":{"336":1}}],["你就可以看到自定义回复的设置页面",{"2":{"413":1}}],["你就可以进入",{"2":{"404":1,"413":1}}],["你就可以进入帮助文档的管理页面",{"2":{"395":1}}],["你就可以进入牌堆的管理页面",{"2":{"385":1}}],["你就可以进入拦截管理页面",{"2":{"352":1}}],["你就可以进入黑白名单管理页面",{"2":{"323":1}}],["你就能看到这句话",{"2":{"180":2,"182":1}}],["你将无法继续发送频道私聊消息",{"2":{"708":1}}],["你将面对令人",{"2":{"584":1}}],["你将扮演一位坚定的侦探",{"2":{"584":1}}],["你将看到类似的输出",{"2":{"457":1}}],["你将看到",{"2":{"315":1}}],["你将使用到",{"2":{"314":1}}],["你将以",{"2":{"54":1}}],["你实际输入命令的位置",{"2":{"290":1}}],["你都自动拥有一张独立的角色卡",{"2":{"641":1}}],["你都应确保迁出和迁入的海豹核心都未在运行",{"2":{"573":1}}],["你都应该尝试根据参考信息自行解决问题",{"2":{"226":1}}],["你都需要正确处理",{"2":{"278":1}}],["你有多种方式使用",{"2":{"262":1}}],["你登录骰娘的qq号",{"2":{"242":1}}],["你要链接的",{"2":{"238":1}}],["你也不一定需要诉诸所有方法才能保证海豹核心的存活",{"2":{"446":1}}],["你也不必对这些问题有太大的压力",{"2":{"272":1}}],["你也可添加群组",{"2":{"332":1}}],["你也可以在管理后台的",{"2":{"730":1}}],["你也可以在海豹核心中的",{"2":{"729":1}}],["你也可以在用户群里找到它",{"2":{"686":1}}],["你也可以在",{"2":{"569":1}}],["你也可以再打开相应扩展",{"2":{"569":1}}],["你也可以通过这个功能上传本地图片到海豹核心",{"2":{"428":1}}],["你也可以对备份行为进行设置",{"2":{"315":1}}],["你也可以直接使用",{"2":{"138":1}}],["你也可以使用异步编程",{"2":{"135":1}}],["你也需要在浏览器地址栏填入此",{"2":{"278":1}}],["你也应该额外补充一些信息",{"2":{"230":1}}],["你正在为建设海豹社区做出有力的贡献",{"2":{"229":1}}],["你正在阅读的就是海豹骰点核心的用户手册",{"2":{"206":1}}],["你做了什么",{"0":{"224":1}}],["你该这样做",{"0":{"216":1,"222":1,"228":1},"1":{"217":1,"218":1,"219":1,"220":1,"221":1,"223":1,"224":1,"225":1,"226":1,"227":1,"229":1,"230":1}}],["你依然不得不求助于人",{"2":{"210":1}}],["你对所有涉及的概念都一知半解",{"2":{"210":1}}],["你去搜索了一下",{"2":{"210":1}}],["你遇到了一些故障",{"2":{"210":1}}],["你发现",{"2":{"209":1}}],["你发现你可能需要学习正则表达式",{"2":{"209":1}}],["你找到了海豹手册的",{"2":{"209":1}}],["你不知道终端是什么意思",{"2":{"210":1}}],["你不应该不加校验地使用",{"2":{"207":1}}],["你不需要记住每个指令的所有细节",{"2":{"20":1}}],["你应该原样输入这里的内容",{"2":{"722":1}}],["你应该遵守这些规则",{"2":{"718":1}}],["你应该先从官网下载安卓版海豹核心",{"2":{"446":1}}],["你应该做出反馈",{"2":{"229":1}}],["你应该下拉页面",{"2":{"225":1}}],["你应该描述在问题发生之前你做了什么",{"2":{"224":1}}],["你应该已经掌握了隐藏在触发条件与回复结果背后的全部知识",{"2":{"209":1}}],["你应该永远对",{"2":{"207":1}}],["你应当确保应用程序已经拥有充足的权限",{"2":{"447":1}}],["你应当能看到一条类似于",{"2":{"242":1}}],["你应当能在控制台中观察到一条",{"2":{"158":1}}],["你应当具备诸如命令行",{"2":{"148":1,"162":1}}],["你在这些系统上是通过命令行",{"2":{"695":1}}],["你在本群的角色将会恢复为独立卡的数据",{"2":{"641":1}}],["你在该虚拟群聊中拥有群主权限",{"2":{"427":1}}],["你在",{"2":{"225":1,"426":1,"489":1}}],["你在解决问题时所做的努力",{"2":{"221":1}}],["你在运行海豹的终端把日志截图一下",{"2":{"210":1}}],["你在中文互联网上找到的技术性信息",{"2":{"207":1}}],["你在进行移除操作时需要自己判断是否符合你的预期",{"2":{"124":1}}],["你很可能找到一些使用上的问题",{"2":{"206":1}}],["你希望",{"2":{"192":1,"233":1}}],["你猜测的",{"2":{"190":1}}],["你即使猜测不出问题所在",{"2":{"189":1,"217":1}}],["你只需在第一次启动时这样做",{"2":{"694":1}}],["你只需要准备每个平台的可执行文件",{"2":{"573":1}}],["你只需要学习",{"2":{"157":1}}],["你只能通过按原逻辑重写为海豹",{"2":{"170":1}}],["你还会用到其他指令才能在其他群聊使用这张角色卡",{"2":{"747":1}}],["你还可能用到其他指令",{"2":{"747":1}}],["你还可以拥有若干与特定群聊无关的角色卡",{"2":{"641":1}}],["你还可以参阅海豹所使用的",{"2":{"165":1}}],["你还可以选择从海豹官方群的群文件中获取安装包",{"2":{"93":1}}],["你还可以按照以下格式书写",{"2":{"68":1}}],["你还可以",{"2":{"66":1}}],["你还可以使用命令更新",{"2":{"543":1}}],["你还可以使用",{"2":{"66":1}}],["你还需要修改几处地方",{"2":{"150":1}}],["你是否已阅读使用说明",{"2":{"349":1}}],["你是否因为自定义回复只能调用图片",{"2":{"137":1}}],["你是否因为自定义回复的匹配方式不全而愤怒",{"2":{"137":1}}],["你是否因为自定义回复能实现的功能有限而烦恼",{"2":{"137":1}}],["你是一个一个一个牌堆结果",{"2":{"48":4,"58":3,"61":1}}],["你没有权限执行此命令",{"2":{"127":5,"139":1}}],["你赢了",{"2":{"84":1}}],["你失去了514金币",{"2":{"59":3}}],["你现在有",{"2":{"59":6}}],["你抽到了114金币",{"2":{"59":3}}],["你仍可能抽到相同结果",{"2":{"51":1}}],["你仍必须使用",{"2":{"37":1}}],["你可将",{"2":{"635":1}}],["你可指定保存的角色名",{"2":{"641":1}}],["你可指定",{"2":{"635":1}}],["你可在不同群聊之间使用同一角色卡",{"2":{"748":1}}],["你可在任意有",{"2":{"730":1}}],["你可在表达式中包含属性值或其他变量",{"2":{"630":1}}],["你可在每个群聊中启用不同的扩展",{"2":{"625":1}}],["你可在",{"2":{"459":1}}],["你可在这个页面查看目前在",{"2":{"428":1}}],["你可按需要进行编辑",{"2":{"397":1}}],["你可通过指令测试功能测试你的海豹核心对于消息的反应",{"2":{"427":1}}],["你可通过",{"2":{"321":1,"701":1}}],["你可选择每次自动备份的范围",{"2":{"317":1}}],["你可能用到以下指令",{"2":{"747":1}}],["你可能会从镜子里召唤出血腥玛丽",{"2":{"740":1}}],["你可能会收到",{"2":{"454":1}}],["你可能会发现一些牌堆拥有特殊的功能",{"2":{"387":1}}],["你可能还想了解",{"2":{"283":1,"290":1,"292":1,"302":1,"313":1}}],["你可能需要先将骰子加为好友",{"2":{"601":1}}],["你可能需要自行通过",{"2":{"539":1}}],["你可能需要自己新建文件夹",{"2":{"196":1}}],["你可能需要选择",{"2":{"453":1}}],["你可能需要对使用命令行程序有所了解",{"2":{"261":1}}],["你可能需要对",{"2":{"254":1}}],["你可能想编写一个能够在用户发出符合某种规则的消息时",{"2":{"209":1}}],["你可能已经注意到了",{"2":{"206":1}}],["你可能注意到",{"2":{"172":1,"376":1}}],["你可能暂时不会用到所有的功能",{"2":{"19":1}}],["你可以将",{"2":{"622":1}}],["你可以将它看成不需要触发词的自定义回复",{"2":{"70":1}}],["你可以复制迁出海豹",{"2":{"575":1}}],["你可以自行删除",{"2":{"574":1}}],["你可以自己在本地搭一个",{"2":{"238":1}}],["你可以",{"2":{"569":1}}],["你可以编写一些复杂逻辑",{"2":{"551":1}}],["你可以从",{"2":{"542":1}}],["你可以从其官网下载页",{"2":{"460":1}}],["你可以右键点击托盘图标并选择退出",{"2":{"457":1}}],["你可以右键单击压缩包后选择解压到",{"2":{"196":1}}],["你可以选择性地采用本节介绍的方法",{"2":{"446":1}}],["你可以选择以下任意一种格式来学习",{"2":{"48":1}}],["你可以分别控制回复文件的启用与否",{"2":{"414":1}}],["你可以点击",{"2":{"413":1}}],["你可以为每个分组添加若干别名",{"2":{"397":1}}],["你可以把它想象成一组扑克牌",{"2":{"383":1}}],["你可以参考模板中对",{"2":{"504":1}}],["你可以参考上面的内容自行对比理解",{"2":{"371":1}}],["你可以参考以下内容以学习",{"2":{"314":1}}],["你可以看见一些帮助信息",{"2":{"413":1}}],["你可以看见文案被按照几个大类放置在一起",{"2":{"362":1}}],["你可以看出很多回复语都有普通和无前缀",{"2":{"371":1}}],["你可以看到在何时",{"2":{"357":1}}],["你可以看到一个开源项目的全部进行中的议题",{"2":{"279":1}}],["你可以看到",{"2":{"258":1}}],["你可以看到从本地安装的选项",{"2":{"257":1}}],["你可以对不同等级的处理方式做不同的设置",{"2":{"355":1}}],["你可以设定一个时间线",{"2":{"350":1}}],["你可以设定为你的扩展的名字",{"2":{"128":1}}],["你可以直接下载新版本海豹进行安装",{"2":{"546":1}}],["你可以直接右键",{"2":{"262":1}}],["你可以直接按照以下格式书写",{"2":{"66":1,"89":1,"90":1}}],["你可以打开",{"2":{"258":1}}],["你可以尝试在内容的开头和结尾去寻找原文链接",{"2":{"207":1}}],["你可以提出一个",{"2":{"206":1}}],["你可以给此",{"2":{"206":1}}],["你可以通过触发",{"2":{"718":1}}],["你可以通过如下方式记录武器的熟练项",{"2":{"669":1}}],["你可以通过以下指令在",{"2":{"626":1}}],["你可以通过以下方法访问这个界面",{"2":{"447":1}}],["你可以通过",{"2":{"385":1,"648":1}}],["你可以通过在",{"2":{"192":1,"233":1}}],["你可以通过查看牌堆管理界面中的",{"2":{"57":1}}],["你可以写出很多调用",{"2":{"135":1}}],["你可以在频道中向海豹核心发送",{"2":{"708":1}}],["你可以在海豹核心的设置中选择",{"2":{"451":1}}],["你可以在应用信息界面管理海豹核心的权限",{"2":{"447":1}}],["你可以在下拉框选择进行切换",{"2":{"414":1}}],["你可以在手动备份时调整备份范围",{"2":{"316":1}}],["你可以在多开助手中看到你的编号",{"2":{"259":1}}],["你可以在其中引用其他",{"2":{"154":1}}],["你可以在",{"2":{"66":1,"164":1,"167":1,"254":1,"350":1,"384":1,"393":1,"403":1,"416":1,"539":1,"545":1,"642":1}}],["你可以使用指定的压缩包对当前海豹进行覆盖",{"2":{"545":1}}],["你可以使用文本匹配中的",{"2":{"419":1}}],["你可以使用",{"2":{"66":1,"135":1,"376":1,"548":1}}],["你可以以表的形式来创建更复杂的牌组",{"2":{"61":1}}],["你可以阅读此章的剩余各节",{"2":{"20":1}}],["你可以跳过一些细节问题",{"2":{"19":1}}],["你可以熟悉一下海豹核心提供的不同自定义功能",{"2":{"19":1}}],["你可以立即付诸实践",{"2":{"16":1}}],["你需要通过扩展管理指令",{"2":{"721":1}}],["你需要和骰子成为好友",{"2":{"718":1}}],["你需要一个代理软件",{"2":{"686":1}}],["你需要指定",{"2":{"539":1}}],["你需要根据",{"2":{"522":1}}],["你需要根据规则编写规则模板",{"2":{"147":1}}],["你需要两个手机",{"2":{"514":1}}],["你需要建立好一个机器人",{"2":{"535":1}}],["你需要建立好一个",{"2":{"501":1}}],["你需要建立好一个应用",{"2":{"464":1,"473":1,"530":1}}],["你需要前往",{"2":{"468":1}}],["你需要安装或下载一个",{"2":{"460":1}}],["你需要访问系统设置的",{"2":{"447":1}}],["你需要下载新版",{"2":{"444":1}}],["你需要点击右上角的",{"2":{"315":1}}],["你需要在不同群聊中使用同一角色卡",{"2":{"748":1}}],["你需要在侧边栏",{"2":{"466":1}}],["你需要在",{"2":{"263":1}}],["你需要开启",{"2":{"262":1}}],["你需要使用安装包",{"2":{"693":1}}],["你需要使用",{"2":{"262":1}}],["你需要学习的内容会爆炸式增长",{"2":{"209":1}}],["你需要自行抓取",{"2":{"240":1}}],["你需要自行尝试",{"2":{"154":1}}],["你需要自己通过",{"2":{"138":1}}],["你需要编写指令对象的",{"2":{"114":1}}],["你需要的回复文本",{"2":{"83":1}}],["你需要的文本",{"2":{"83":3}}],["你需要对于海豹核心对不同功能的约定有所了解",{"2":{"21":1}}],["你需要将它接入你希望的即时通讯平台",{"2":{"18":1}}],["你需要让海豹核心在你的服务器或电脑上运行起来",{"2":{"17":1}}],["你的海豹应该可以正常连接官方机器人运作了",{"2":{"502":1}}],["你的海豹应该可以正常在",{"2":{"465":1,"470":1,"474":1,"533":1,"536":1}}],["你的操作系统会不断调整各个程序的活动策略",{"2":{"446":1}}],["你的用户",{"2":{"427":2}}],["你的指令测试只能模拟私聊",{"2":{"427":1}}],["你的浏览器则试图连接到",{"2":{"278":1}}],["你的账号应当已经成功连接",{"2":{"242":1}}],["你的端口号可能不同",{"2":{"242":1}}],["你的追问同样应该是一个良好的问题",{"2":{"230":1}}],["你的扩展依赖于另一个扩展提供的功能",{"2":{"164":1}}],["你的扩展的主页链接",{"2":{"159":1}}],["你的扩展的代码就写在这个文件里",{"2":{"152":1}}],["你的修改完成后",{"2":{"13":1}}],["你的投喂将用于支付服务器费用",{"2":{"2":1}}],["从而执行了来自其他扩展的指令",{"2":{"721":1}}],["从当前骰池抽取一个数值",{"2":{"704":1}}],["从先攻列表中删除指定单位",{"2":{"660":1}}],["从指定群组中退出",{"2":{"622":1}}],["从海豹官网下载全新的安装包",{"2":{"544":1}}],["从海豹的",{"2":{"460":1}}],["从目前的表现看来",{"2":{"512":1}}],["从群聊中触发的私聊",{"2":{"471":1}}],["从中解压出数据库文件",{"2":{"459":1}}],["从任务列表隐藏",{"2":{"451":1}}],["从上到下依次执行",{"2":{"422":1}}],["从此只要是自定义回复能实现的功能",{"2":{"209":1}}],["从类似",{"2":{"207":1}}],["从序列",{"2":{"43":1}}],["从",{"2":{"37":2,"39":1,"40":1,"41":1,"94":3,"98":1,"103":2,"120":1,"140":1,"159":2,"164":1,"167":1,"315":1,"316":1,"317":1,"395":1,"397":1,"417":1,"426":1,"427":1,"428":1,"513":1,"525":1,"538":2,"545":1,"589":1,"642":1,"643":1,"706":1,"707":1,"708":2,"709":2}}],["从零开始",{"0":{"16":1},"1":{"17":1,"18":1,"19":1,"20":1,"21":1}}],["从主分支",{"2":{"10":1}}],["一行",{"2":{"699":1}}],["一种特殊的六面骰",{"2":{"634":1}}],["一种格式化后的参数",{"2":{"110":1}}],["一群",{"2":{"580":1}}],["一节",{"2":{"553":1}}],["一节中的介绍",{"2":{"496":1}}],["一节中海豹连接",{"2":{"494":1}}],["一节中运行",{"2":{"493":1}}],["一节中",{"2":{"220":1,"489":1,"490":1}}],["一章",{"2":{"540":1}}],["一次性发送消息太多",{"2":{"505":1}}],["一栏里",{"2":{"504":1}}],["一栏里补充说明",{"2":{"504":1}}],["一栏填",{"2":{"504":1}}],["一栏填写指令的简介",{"2":{"503":1}}],["一栏点击",{"2":{"503":1}}],["一栏中",{"2":{"501":1}}],["一栏的",{"2":{"238":1}}],["一加",{"0":{"451":1}}],["一条作为结果",{"2":{"422":1}}],["一旦点击确认",{"2":{"414":1}}],["一旦您有以上禁止行为",{"2":{"15":1}}],["一级文件夹名将作为其中所有文档的分组名",{"2":{"395":1}}],["一切就是刚开始的样子了",{"2":{"363":1}}],["一定要开启",{"2":{"342":1}}],["一定会比在群里问群员快",{"2":{"189":1}}],["一定会获得",{"2":{"54":1}}],["一词更多地被翻译为中性的",{"2":{"279":1}}],["一键注入文件提供器功能",{"2":{"443":1}}],["一键",{"2":{"239":1}}],["一文广为流传",{"2":{"215":1}}],["一些系统",{"2":{"723":1}}],["一些系统也称",{"2":{"447":1}}],["一些骰子服务",{"2":{"717":1}}],["一些分支专精技能的名字",{"2":{"582":1}}],["一些插件作者为扩展提供了更新链接",{"2":{"406":1}}],["一些牌堆作者为牌堆提供了云端内容",{"2":{"389":1}}],["一些牌堆作者为牌堆提供了更新链接",{"2":{"388":1}}],["一些杂项文案设置",{"2":{"362":1}}],["一些看起来详尽的指导细细读来却可能完全看不懂",{"2":{"204":1}}],["一些内置变量",{"2":{"172":1}}],["一些有帮助的资源",{"0":{"168":1}}],["一些强",{"2":{"154":1}}],["一些编译的配置",{"2":{"152":1}}],["一下看看是谁写的",{"2":{"99":2}}],["一下看看是谁写的`",{"2":{"99":1}}],["一般形式为",{"2":{"723":1}}],["一般使用邀请链接或者其他方式",{"2":{"718":1}}],["一般都要求用户严格遵循使用协议",{"2":{"718":1}}],["一般为",{"2":{"686":1}}],["一般用于各种规则的资料查询",{"2":{"392":1}}],["一般情况下",{"2":{"257":1,"278":1}}],["一般情况下你都可以留空",{"2":{"68":1}}],["一般而言",{"2":{"196":1,"718":1}}],["一般来说是磁盘",{"2":{"696":1}}],["一般来说纯",{"2":{"154":1}}],["一般来说在群内拉黑就写群",{"2":{"123":1}}],["一般来说",{"2":{"112":1}}],["一般会在定义指令函数时就声明",{"2":{"94":1}}],["一棵是反函树",{"2":{"87":1}}],["一棵是函树",{"2":{"87":1}}],["一脚踢向海豹",{"2":{"82":1}}],["一个指令由指令前缀",{"2":{"719":1}}],["一个海豹骰自用",{"2":{"718":1}}],["一个较为常见的用法是",{"2":{"602":1}}],["一个可用的机器人账号",{"2":{"549":1}}],["一个扫码",{"2":{"514":1}}],["一个运行海豹",{"2":{"514":1}}],["一个汉字算作两个字符",{"2":{"421":1}}],["一个端口只能被一个服务端监听使用",{"2":{"278":1}}],["一个端口",{"2":{"278":1}}],["一个有效的问题解决方案可以扩充海豹社区对问题的经验",{"2":{"229":1}}],["一个问题可能是也可能不是由用户错误的操作引起的",{"2":{"224":1}}],["一个小例子",{"2":{"209":1}}],["一个更高效",{"2":{"207":1}}],["一个更加简单易用的跑团骰子系统",{"2":{"36":2,"40":2,"46":2}}],["一个合理的开源项目",{"2":{"206":1}}],["一个建议",{"2":{"196":1}}],["一个便于理解的提问",{"2":{"190":1}}],["一个完整的非指令关键词模板如下",{"2":{"137":1}}],["一个取",{"2":{"128":1}}],["一个存",{"2":{"128":1}}],["一个测试词库",{"2":{"90":1}}],["一个实时更新的公骰列表牌堆",{"2":{"62":1}}],["一个项中抽取其他项",{"0":{"50":1},"1":{"51":1}}],["一个",{"2":{"48":3,"94":4,"112":1}}],["一个简单易用的跑团骰子系统",{"2":{"36":3,"40":2,"46":2,"68":1,"578":1}}],["一起开始海豹的开发吧",{"2":{"579":1}}],["一起被去除",{"2":{"35":1}}],["一起努力让海豹变得更好",{"2":{"5":1}}],["上",{"2":{"718":1}}],["上限4个",{"2":{"674":1}}],["上限3个",{"2":{"672":1}}],["上不封顶",{"2":{"672":1}}],["上一轮中暴击的骰子数",{"2":{"636":1}}],["上线机器人",{"2":{"504":1}}],["上文所述的",{"2":{"637":1}}],["上文",{"2":{"262":1,"264":1}}],["上传完成后会自动重启海豹",{"2":{"545":1}}],["上传固件",{"0":{"545":1}}],["上传插件",{"2":{"405":1}}],["上传",{"2":{"396":2,"415":1,"416":1,"504":1}}],["上传帮助文档",{"0":{"396":1}}],["上传牌堆",{"2":{"385":1}}],["上传到海豹",{"2":{"224":1}}],["上传并重载",{"2":{"158":1}}],["上通过",{"2":{"224":1}}],["上的",{"2":{"206":1,"519":1}}],["上面已经陈述了一些应用",{"2":{"196":1}}],["上下载文件之类的问题",{"2":{"193":1,"202":1}}],["上同步发布更新",{"2":{"193":1,"202":1}}],["上创建一个扩展的仓库",{"2":{"149":1}}],["上级主管部门下发通知中所禁止的其他内容的",{"2":{"15":1}}],["上提",{"2":{"9":1}}],["政策",{"2":{"15":1}}],["关联启动和后台活动",{"2":{"450":1}}],["关联合作者的",{"2":{"15":1}}],["关键字1|关键字2",{"2":{"722":2}}],["关键字可以多个",{"2":{"722":2}}],["关键字>",{"2":{"722":3}}],["关键字",{"2":{"412":1,"642":1,"722":2,"724":1,"746":1,"765":3}}],["关键词",{"2":{"378":1,"424":1,"654":1}}],["关闭自动修改",{"0":{"736":1}}],["关闭自动回复等",{"2":{"112":1}}],["关闭另一个",{"2":{"721":1}}],["关闭功能",{"2":{"707":1}}],["关闭防火墙",{"2":{"686":1}}],["关闭本群的自定义回复功能",{"2":{"656":1}}],["关闭扩展",{"2":{"625":1}}],["关闭指定扩展",{"2":{"625":1}}],["关闭了骰子",{"2":{"727":1}}],["关闭了",{"2":{"577":1}}],["关闭你的电脑海豹",{"2":{"577":1}}],["关闭你的超级用户权限",{"2":{"256":1}}],["关闭dnd5e系列指令",{"2":{"569":1}}],["关闭抽牌",{"2":{"569":1}}],["关闭关键字回复",{"2":{"569":1}}],["关闭对应扩展会连同扩展带来的指令一块关闭",{"2":{"569":1}}],["关闭其",{"2":{"450":1}}],["关闭其他未在使用的进程或更换资源更为充足的平台来解决问题",{"2":{"199":1}}],["关闭后不回应戳一戳",{"2":{"341":1}}],["关闭应用程序是更好的选择",{"2":{"252":1}}],["关闭应用进程跟直接退出应用程序差别不大",{"2":{"252":1}}],["关闭",{"2":{"112":1,"156":1,"521":1,"569":2}}],["关于自定义回复功能的一般性介绍",{"2":{"656":1}}],["关于牌堆功能的一般性介绍",{"2":{"651":1}}],["关于备份",{"0":{"315":1}}],["关于手机",{"2":{"262":1}}],["关于一些小白常见的问题",{"2":{"203":1,"213":1,"266":1}}],["关于特定的名词术语解释",{"2":{"195":1,"203":1,"213":1}}],["关于如何高效地进行搜索可以参考",{"2":{"220":1}}],["关于如何快速学习相关背景知识",{"2":{"195":1,"213":1,"266":1}}],["关于如何正确地提问",{"2":{"195":1,"203":1,"266":1}}],["关于取出数据来修改的函数",{"2":{"131":1}}],["关于黑名单用户",{"2":{"120":1}}],["关于白名单用户",{"2":{"120":1}}],["关于",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1},"2":{"128":2,"504":1}}],["编号",{"2":{"765":1}}],["编辑",{"2":{"504":1}}],["编辑页填写信息",{"2":{"13":1}}],["编译到",{"2":{"161":1}}],["编译成",{"2":{"152":1}}],["编译成功的",{"2":{"151":1}}],["编解码",{"2":{"158":1}}],["编程语言的教学超出了本文档的目的",{"2":{"157":1}}],["编码为",{"2":{"94":1}}],["编码转换等诸多功能",{"2":{"93":1}}],["编码编写",{"2":{"66":1}}],["编码",{"2":{"30":1,"94":1}}],["编写对它的解读",{"2":{"701":1}}],["编写一个简单的",{"2":{"480":1}}],["编写一条自定义指令",{"2":{"117":2}}],["编写插件时",{"2":{"161":1}}],["编写插件的内容",{"2":{"143":1}}],["编写的包都是可以引用的",{"2":{"154":1}}],["编写新的",{"0":{"143":1},"1":{"144":1,"145":1,"146":1,"147":1}}],["编写代骰指令",{"0":{"134":1},"2":{"134":2}}],["编写暗骰指令",{"0":{"133":1},"2":{"133":1}}],["编写指令的具体处理代码",{"2":{"114":1}}],["编写",{"2":{"93":1,"408":1,"410":1}}],["编写敏感词库",{"0":{"88":1},"1":{"89":1,"90":1},"2":{"359":1}}],["编写帮助文档",{"0":{"65":1},"1":{"66":1,"67":1,"68":1},"2":{"400":1}}],["编写牌堆",{"0":{"29":1},"1":{"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"281":1,"304":1,"311":1,"390":1}}],["编写自定义回复",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1},"2":{"25":1,"425":1}}],["编写复杂文案",{"0":{"22":1},"1":{"23":1,"24":1,"25":1,"26":1,"27":1,"28":1},"2":{"381":1}}],["编写人员",{"2":{"15":1}}],["海族",{"2":{"763":1}}],["海外版或许是一个尚可接受的选择",{"2":{"207":1}}],["海洋馆工作人员",{"2":{"15":1}}],["海豹社区还通过插件的形式为其它规则提供了支持",{"2":{"744":1}}],["海豹通过",{"2":{"721":1}}],["海豹回复你一条消息",{"2":{"708":1}}],["海豹不会回应",{"2":{"688":1}}],["海豹不会做出回应",{"2":{"688":1}}],["海豹不会与非好友帐号私聊",{"2":{"682":1}}],["海豹也会回应",{"0":{"688":1}}],["海豹也支持使用",{"2":{"503":1}}],["海豹默认骰子面数为100",{"2":{"626":1}}],["海豹默认的",{"2":{"307":1}}],["海豹提供",{"2":{"625":1}}],["海豹提供了官方的",{"2":{"539":1}}],["海豹提供了多个平台的安装包",{"2":{"538":1}}],["海豹提供了一种简单易学的脚本语言",{"2":{"171":1}}],["海豹提供了一系列时间变量来调用",{"2":{"83":1}}],["海豹提供了相应的",{"2":{"148":1}}],["海豹除了核心指令之外",{"2":{"569":1}}],["海豹搭载了全文搜索技术",{"2":{"553":1}}],["海豹连接",{"0":{"494":1,"518":1,"524":1}}],["海豹数据等",{"2":{"491":1}}],["海豹文件路径",{"0":{"442":1}}],["海豹为了安全不允许调用非海豹文件夹内的图片",{"2":{"430":1}}],["海豹为这种格式的牌堆支持了更多功能",{"2":{"30":1}}],["海豹版本",{"2":{"341":1,"513":1}}],["海豹中必须填入与你的",{"2":{"278":1}}],["海豹中的权限等级",{"2":{"120":1}}],["海豹工作目录内的文件结构可以参考",{"2":{"274":1}}],["海豹官方无力解决此类问题",{"2":{"512":1}}],["海豹官方无法做出任何保证",{"2":{"512":1}}],["海豹官方安装包中也默认提供了",{"2":{"393":1}}],["海豹官方不对此提供帮助",{"2":{"257":1}}],["海豹官方也不对",{"2":{"254":1}}],["海豹官网",{"2":{"1":1}}],["海豹从旧版升级后",{"2":{"364":1}}],["海豹从",{"2":{"254":1,"462":1,"499":1,"514":1,"516":1,"519":1,"529":1}}],["海豹目前可以健康食用的",{"2":{"393":1}}],["海豹目前支持了许多平台",{"2":{"18":1}}],["海豹目录",{"2":{"242":1}}],["海豹已于",{"2":{"236":1,"253":1}}],["海豹依然不会在私聊中回复我",{"2":{"226":1}}],["海豹用户群的群员们并不会如此严苛",{"2":{"215":1}}],["海豹手册不应该分走大部分篇幅去讲述应该如何提问",{"2":{"213":1}}],["海豹手册已于",{"2":{"203":1,"213":1}}],["海豹开发了",{"2":{"568":1}}],["海豹开发组也正在着手对新的",{"2":{"254":1}}],["海豹开发组认为",{"2":{"203":1,"213":1}}],["海豹开源组织",{"2":{"1":1,"5":1}}],["海豹格式的",{"2":{"172":3}}],["海豹会将图片在容器内的绝对路径传递给",{"2":{"491":1,"496":1}}],["海豹会向通知列表发送一条通知",{"2":{"350":1}}],["海豹会按照加好友验证设置自动通过或拒绝",{"2":{"334":1}}],["海豹会尝试在兼容的情况下尽可能地加载插件",{"2":{"167":1}}],["海豹会首先输出空变量",{"2":{"82":1}}],["海豹额外在环境中提供了如下全局对象",{"2":{"158":1}}],["海豹才会触发此流程",{"2":{"137":1}}],["海豹允许你在一个",{"2":{"112":1}}],["海豹仍会按照自定义回复中设置的格式输出",{"2":{"82":1}}],["海豹没能逃脱凶猛恶汉们的掌控",{"2":{"82":1}}],["海豹遵循命令行脚本的通行做法",{"2":{"73":1}}],["海豹骰子的回复内容几乎可以进行完全的自定义",{"2":{"361":1}}],["海豹骰",{"2":{"68":1,"578":1}}],["海豹骰不对非自身提供以外的内容合法性负责",{"2":{"15":1}}],["海豹语表达式",{"2":{"119":1}}],["海豹语",{"2":{"59":1,"92":1,"171":1}}],["海豹将此指令迁移至",{"2":{"706":1,"707":1,"708":1,"709":1}}],["海豹将依次从上往下检查更新",{"2":{"58":1}}],["海豹将以",{"2":{"57":1,"63":1}}],["海豹",{"2":{"53":3,"54":11,"68":1,"117":2,"253":1,"299":1,"389":1,"545":1}}],["海豹支持使用",{"2":{"709":1}}],["海豹支持",{"2":{"708":1,"709":1}}],["海豹支持在每个群组中分别设置默认的查询分组",{"2":{"643":1}}],["海豹支持在牌堆中使用",{"2":{"37":1}}],["海豹支持后台固件升级功能",{"2":{"545":1}}],["海豹支持其他编程语言编写插件吗",{"0":{"170":1}}],["海豹支持用正则匹配",{"2":{"73":1}}],["海豹支持的",{"2":{"66":1}}],["海豹支持为牌堆提供云端内容",{"2":{"62":1}}],["海豹支持读取以",{"2":{"37":1}}],["海豹新版官方手册",{"2":{"5":1}}],["海豹的计算只支持整数",{"2":{"628":1}}],["海豹的其他功能都作为",{"2":{"625":1}}],["海豹的设计初衷是",{"2":{"549":1}}],["海豹的更新有时会调整和删除部分文案条目",{"2":{"364":1}}],["海豹的日志通常可以在三个地方找到",{"2":{"299":1}}],["海豹的日志中包含了大量的有效信息",{"2":{"225":1}}],["海豹的本地文件",{"0":{"429":1},"1":{"430":1,"431":1,"432":1,"433":1,"434":1},"2":{"274":1,"539":1}}],["海豹的抽取指令为",{"2":{"48":1}}],["海豹的自动构建仓库",{"2":{"5":1}}],["海豹的前端代码",{"2":{"5":1}}],["海豹的",{"2":{"5":1,"158":1}}],["海豹的所有源代码都托管在",{"2":{"5":1}}],["海豹的源代码以",{"2":{"4":1}}],["海豹核心不提供统计整体成功率的功能",{"2":{"737":1}}],["海豹核心不支持关闭暗骰",{"2":{"682":1}}],["海豹核心可以以",{"2":{"729":1}}],["海豹核心可以对接其提供的",{"2":{"285":1,"516":1}}],["海豹核心没有预置的自定义回复",{"2":{"724":1}}],["海豹核心使用词条标题模糊搜索",{"2":{"642":1}}],["海豹核心使用稍微更多的内存使用全文搜索",{"2":{"642":1}}],["海豹核心使用不含秒数",{"2":{"314":1}}],["海豹核心也支持通过装载",{"2":{"625":1}}],["海豹核心内置的房规列出如下",{"2":{"619":1}}],["海豹核心兼容了简化卡格式",{"2":{"589":1}}],["海豹核心兼容了溯洄核心",{"2":{"548":1}}],["海豹核心只占用大概",{"2":{"550":1}}],["海豹核心对指令格式不敏感",{"2":{"548":1}}],["海豹核心在容器中的工作目录是根目录",{"2":{"539":1}}],["海豹核心将以",{"2":{"729":1}}],["海豹核心将表达式翻译成字节码",{"2":{"570":1}}],["海豹核心将尝试安装一个由",{"2":{"541":1}}],["海豹核心将会在后台运行并弹出提示",{"2":{"539":1}}],["海豹核心将无法正常运行",{"2":{"453":1}}],["海豹核心与",{"0":{"482":1},"2":{"482":2}}],["海豹核心支持与安装了",{"2":{"477":1}}],["海豹核心支持使用",{"2":{"402":1}}],["海豹核心默认搭载了",{"2":{"642":1}}],["海豹核心默认每",{"2":{"459":1}}],["海豹核心默认提供每",{"2":{"315":1}}],["海豹核心正在运行",{"2":{"454":1}}],["海豹核心需要必要的权限来正常运行",{"2":{"447":1}}],["海豹核心添加了",{"2":{"426":1}}],["海豹核心功能的文案",{"2":{"362":1}}],["海豹核心会在频道私聊中回复你",{"2":{"708":1}}],["海豹核心会按以下规则进行忽略",{"2":{"649":1}}],["海豹核心会进行提示",{"2":{"638":1}}],["海豹核心会第一时间跟进以解决这一问题",{"2":{"471":1}}],["海豹核心会自动从该群组中退出",{"2":{"350":1}}],["海豹核心会检查在每个",{"2":{"350":1}}],["海豹核心会调用你写的这个函数",{"2":{"114":1}}],["海豹核心产生的所有备份都位于",{"2":{"315":1}}],["海豹核心要求的",{"2":{"274":1}}],["海豹核心的日志记录只在骰子启用时进行",{"2":{"727":1}}],["海豹核心的数据文件全平台通用",{"2":{"573":1}}],["海豹核心的底层架构",{"2":{"571":1}}],["海豹核心的敏感词主要分为四个等级",{"2":{"355":1}}],["海豹核心的版本号",{"2":{"227":1}}],["海豹核心的诞生离不开开源社区和其它开源软件的支持",{"2":{"4":1}}],["海豹核心检测不到其他必要的文件",{"2":{"196":1}}],["海豹核心提供的扩展",{"2":{"152":1}}],["海豹核心提供了自定义指令前缀功能",{"2":{"720":1}}],["海豹核心提供了一种自动安装为系统服务",{"2":{"541":1}}],["海豹核心提供了",{"2":{"407":1}}],["海豹核心提供了多种扩展功能",{"2":{"91":1}}],["海豹核心提供了许多指令",{"2":{"19":1}}],["海豹核心新增了用于定时任务的",{"2":{"140":1}}],["海豹核心跟随",{"2":{"69":1}}],["海豹核心无法核查从接口处获取的数据",{"2":{"62":1}}],["海豹核心",{"0":{"578":1},"2":{"36":3,"40":2,"172":1,"428":1,"447":1,"449":1}}],["海豹核心目前支持",{"2":{"30":1}}],["海豹核心成功运行后",{"2":{"18":1}}],["海豹核心官方版只支持",{"2":{"15":1}}],["海豹核心源码的托管地址",{"2":{"1":1}}],["诋毁",{"2":{"15":1}}],["侵犯他人知识产权或涉及第三方商业秘密及其他专有权利的",{"2":{"15":1}}],["侵害他人合法权益的",{"2":{"15":1}}],["木马及其相关内容的",{"2":{"15":1}}],["木落>尝试使用",{"2":{"582":3}}],["木落>的属性变化",{"2":{"582":1}}],["木落>的属性录入完成",{"2":{"582":1}}],["木落>的个人属性为",{"2":{"582":1}}],["木落>掷出了",{"2":{"570":1}}],["木落",{"2":{"3":1,"112":2,"117":2,"129":2,"134":2,"136":1,"158":1,"159":1,"172":4,"659":2,"660":1}}],["96",{"2":{"619":5}}],["90",{"2":{"604":1,"616":1}}],["99",{"2":{"595":1,"619":1}}],["917654757",{"2":{"580":1}}],["95",{"2":{"181":1}}],["987654321",{"2":{"172":2}}],["9",{"2":{"15":1,"34":1,"52":1,"53":3,"54":1,"94":1,"139":1,"172":1,"241":1,"255":1,"261":2,"295":2,"497":1,"593":2,"635":1,"636":1,"658":7,"689":1}}],["侮辱或者诽谤他人",{"2":{"15":1}}],["85",{"2":{"658":1}}],["83",{"2":{"658":1}}],["837s",{"2":{"480":1}}],["8887",{"2":{"481":2,"482":1}}],["8081",{"2":{"493":1,"494":1}}],["8080",{"2":{"242":3}}],["80",{"2":{"181":2,"278":1,"599":1,"605":1,"616":1,"639":1}}],["87",{"2":{"97":1}}],["8",{"0":{"252":1},"2":{"15":1,"30":1,"52":1,"66":1,"94":1,"99":3,"139":1,"203":2,"213":2,"241":1,"255":1,"478":2,"570":1,"600":1,"616":2,"631":1,"635":2,"652":2,"658":6,"711":1}}],["恐怖或者教唆犯罪的",{"2":{"15":1}}],["凶杀",{"2":{"15":1}}],["赌博",{"2":{"15":1}}],["色情",{"2":{"15":1}}],["散布任何贬损",{"2":{"15":1}}],["散布淫秽",{"2":{"15":1}}],["散布谣言",{"2":{"15":1}}],["78",{"2":{"686":1}}],["72",{"2":{"658":1}}],["73",{"2":{"658":3}}],["76",{"2":{"658":2}}],["7+20+15+1+17",{"2":{"628":1}}],["75",{"2":{"616":3,"639":1}}],["755",{"2":{"576":1}}],["747114944",{"2":{"580":1}}],["715664650",{"2":{"580":1}}],["7zip",{"2":{"196":1}}],["7th",{"2":{"146":1,"550":1,"584":1,"746":1}}],["70",{"2":{"105":1,"120":1,"241":1,"550":1,"602":1,"616":1}}],["7",{"0":{"251":1,"584":1},"1":{"585":1,"586":1,"587":1,"588":1,"589":1,"590":1,"591":1,"592":1,"593":1,"594":1,"595":1,"596":1,"597":1,"598":1,"599":1,"600":1,"601":1,"602":1,"603":1,"604":1,"605":1,"606":1,"607":1,"608":1,"609":1,"610":1,"611":1,"612":1,"613":1,"614":1,"615":1,"616":1,"617":1,"618":1,"619":1,"620":1},"2":{"15":1,"37":1,"47":1,"52":1,"72":1,"94":1,"139":1,"172":1,"203":2,"213":2,"236":1,"253":1,"254":1,"261":1,"262":1,"478":1,"480":1,"514":1,"538":1,"562":1,"569":1,"582":2,"600":1,"605":1,"625":1,"631":1,"632":1,"670":1,"711":1,"739":1}}],["扰乱社会秩序",{"2":{"15":1}}],["6=106",{"2":{"628":1}}],["644",{"2":{"576":1}}],["64",{"2":{"497":1,"538":1,"637":1,"658":1}}],["6g",{"2":{"480":1}}],["65",{"2":{"616":2}}],["65535",{"2":{"278":1}}],["6544",{"2":{"265":2}}],["62828",{"2":{"259":1}}],["62028",{"2":{"259":2}}],["60",{"2":{"105":1,"120":1,"121":1,"582":2,"608":2,"611":2,"616":3}}],["6",{"0":{"250":1},"2":{"15":1,"52":1,"94":1,"139":2,"140":1,"167":2,"172":1,"314":1,"441":1,"478":1,"562":1,"582":1,"628":1,"631":2,"632":1,"633":2,"637":3,"658":1,"665":2,"667":1,"670":3,"711":1,"715":1}}],["5a10=",{"2":{"711":1}}],["5a6q4=",{"2":{"635":1}}],["5a6=",{"2":{"635":1,"711":1}}],["56",{"2":{"686":1}}],["562897832",{"2":{"580":1}}],["57",{"2":{"658":1}}],["575",{"2":{"616":1}}],["53",{"2":{"630":1}}],["530",{"2":{"616":1}}],["5d24=60",{"2":{"628":1}}],["5d24=",{"2":{"628":1}}],["5d24",{"2":{"628":1}}],["5s后将退出当前群组",{"2":{"624":1}}],["59",{"2":{"608":1,"611":1}}],["5800",{"2":{"259":2}}],["524364253",{"2":{"580":1}}],["52",{"2":{"253":1}}],["540",{"2":{"616":1}}],["54",{"2":{"253":2}}],["5555",{"2":{"259":1}}],["55",{"2":{"130":1,"172":1,"616":2}}],["5000",{"2":{"493":1}}],["50",{"2":{"105":1,"120":2,"121":1,"181":2,"497":1,"550":1,"570":1,"582":4,"595":1,"616":2,"619":9}}],["5+14",{"2":{"64":2}}],["514",{"2":{"59":3,"63":1,"64":2}}],["5e",{"0":{"657":1},"1":{"658":1,"659":1,"660":1,"661":1,"662":1,"663":1,"664":1,"665":1,"666":1,"667":1,"668":1,"669":1,"670":1,"671":1,"672":1,"673":1,"674":1,"675":1,"676":1,"677":1,"678":1,"679":1},"2":{"37":1,"47":1,"146":1,"657":1,"746":1}}],["5",{"0":{"21":1,"248":1,"249":1},"2":{"15":1,"52":1,"87":3,"94":1,"136":1,"139":2,"141":1,"159":1,"165":2,"167":3,"236":1,"253":1,"314":1,"441":1,"478":1,"572":1,"589":1,"619":5,"628":1,"631":1,"633":2,"635":7,"637":2,"652":1,"658":1,"672":2,"711":3,"715":1,"762":1,"763":1}}],["破坏社会稳定的",{"2":{"15":1}}],["破坏国家宗教政策",{"2":{"15":1}}],["破坏国家统一的",{"2":{"15":1}}],["破坏民族团结的",{"2":{"15":1}}],["民族歧视",{"2":{"15":1}}],["煽动民族仇恨",{"2":{"15":1}}],["4环3个",{"2":{"672":1}}],["4环",{"2":{"672":1}}],["4c3m7=",{"2":{"636":1}}],["4d6dh1=",{"2":{"633":1}}],["4d6dl1=",{"2":{"633":1}}],["4d6k3=",{"2":{"628":1}}],["4d6k3",{"2":{"628":1,"665":6}}],["485",{"2":{"616":1}}],["4=1",{"2":{"570":1}}],["4+2d10",{"2":{"570":1}}],["4+5",{"2":{"63":1,"64":2}}],["4+514",{"2":{"63":1,"64":2}}],["4+51",{"2":{"63":1,"64":3}}],["49=78",{"2":{"637":1}}],["49=30",{"2":{"637":1}}],["49",{"2":{"570":1}}],["42",{"2":{"497":2}}],["443",{"2":{"278":1}}],["41",{"2":{"172":1,"180":1}}],["4001",{"2":{"521":1}}],["40",{"2":{"105":1,"120":1,"121":1,"180":3,"182":2,"460":1,"550":1,"595":1,"596":3,"598":1,"616":1}}],["456",{"2":{"94":1,"139":1}}],["45",{"0":{"246":1},"2":{"33":1,"64":2,"600":3,"616":2}}],["4",{"0":{"20":1,"247":1},"2":{"15":1,"48":3,"52":1,"63":1,"64":5,"87":3,"90":1,"94":5,"136":1,"139":3,"140":1,"159":1,"165":4,"167":5,"172":1,"178":1,"254":2,"259":1,"265":1,"350":1,"421":1,"441":1,"480":3,"570":2,"619":1,"631":2,"633":2,"634":1,"635":2,"636":1,"637":3,"642":1,"667":2,"669":1,"672":4,"689":1,"711":3}}],["损害国家荣誉和利益的",{"2":{"15":1}}],["34",{"2":{"686":1}}],["3456",{"2":{"278":1}}],["3环5个",{"2":{"672":1}}],["3环",{"2":{"672":3}}],["3=22",{"2":{"659":1}}],["3=18",{"2":{"659":1}}],["384d20=3941",{"2":{"637":1}}],["386",{"2":{"239":1}}],["3941",{"2":{"637":1}}],["3+2",{"2":{"570":1}}],["33d24=384",{"2":{"637":1}}],["33ff",{"2":{"497":1}}],["33",{"2":{"497":1,"667":2}}],["3339",{"2":{"33":1,"90":2}}],["3s",{"2":{"346":1}}],["324",{"2":{"639":1}}],["3212",{"2":{"441":1}}],["3211",{"2":{"278":3,"307":2,"347":1,"441":1,"491":6,"539":4,"684":2,"693":2}}],["32",{"2":{"158":1,"514":1,"538":3}}],["35",{"2":{"141":1,"604":1}}],["31",{"2":{"129":1}}],["30尺",{"2":{"553":1}}],["3001",{"2":{"521":2}}],["300",{"2":{"190":1}}],["30=",{"2":{"363":2}}],["30=信任",{"2":{"125":1}}],["30=禁止",{"2":{"125":1}}],["30",{"2":{"90":2,"120":1,"121":1,"127":2,"142":1,"159":1,"181":1,"344":1,"480":1,"513":1,"570":1,"622":1,"637":1,"659":2}}],["3>",{"2":{"78":1}}],["3",{"0":{"19":1,"246":1},"2":{"15":1,"51":2,"52":1,"63":1,"64":3,"78":1,"87":3,"94":2,"110":1,"115":1,"136":1,"139":3,"141":1,"144":1,"172":1,"174":2,"176":3,"346":3,"441":1,"457":1,"460":3,"570":7,"600":1,"604":1,"619":1,"628":3,"631":1,"633":4,"635":6,"637":6,"659":2,"665":1,"670":2,"672":6,"678":2,"686":1,"687":1,"708":1,"711":2}}],["颠覆国家政权",{"2":{"15":1}}],["泄露国家秘密",{"2":{"15":1}}],["2环4个",{"2":{"672":1}}],["2环",{"2":{"672":2}}],["2=15",{"2":{"659":1}}],["2=17",{"2":{"659":2}}],["2=100",{"2":{"628":1}}],["2=80",{"2":{"639":1}}],["2=75",{"2":{"639":1}}],["2=65",{"2":{"637":1}}],["2=21",{"2":{"637":1}}],["28",{"2":{"605":1}}],["25",{"2":{"549":1,"597":1,"686":2}}],["255",{"2":{"497":2}}],["2d20q1",{"2":{"632":1}}],["2d20k1=",{"2":{"632":2}}],["2d20k1",{"2":{"178":1}}],["2d",{"2":{"497":1}}],["272",{"2":{"254":1}}],["23",{"2":{"604":1,"652":1}}],["237",{"0":{"248":1}}],["235",{"0":{"247":1}}],["21w19a",{"2":{"478":1}}],["21w18a",{"2":{"478":1}}],["21",{"2":{"145":2}}],["2471",{"2":{"236":1}}],["24",{"2":{"136":1,"272":2}}],["20+1d3",{"2":{"637":1}}],["2012r2",{"2":{"686":2}}],["2012",{"2":{"514":1}}],["2008",{"2":{"514":1}}],["200mb",{"2":{"457":1}}],["2001",{"2":{"427":1}}],["20",{"2":{"133":1,"134":1,"136":3,"141":1,"242":2,"254":1,"331":1,"480":3,"605":1,"632":1,"648":1,"669":1}}],["2024",{"2":{"203":2,"213":2,"236":1,"253":1,"254":3,"261":1,"480":1}}],["2022",{"2":{"117":1,"129":1,"133":1,"134":1,"136":1,"158":1,"242":2,"652":2}}],["20230109",{"2":{"172":1}}],["2023",{"2":{"90":2,"130":1,"159":1,"172":1}}],["22",{"2":{"130":1,"145":5}}],["2>",{"2":{"78":2}}],["2",{"0":{"18":1,"43":1,"245":1,"687":1},"2":{"15":1,"26":1,"27":1,"52":1,"54":2,"64":2,"72":1,"78":4,"83":1,"87":1,"89":2,"90":4,"94":3,"98":1,"115":2,"116":1,"117":2,"129":1,"130":5,"133":1,"134":1,"136":4,"139":3,"144":2,"147":1,"158":1,"159":2,"165":3,"166":2,"174":3,"176":3,"236":1,"242":1,"254":1,"265":1,"349":1,"441":1,"481":1,"491":3,"570":3,"572":1,"582":1,"598":1,"619":2,"625":1,"628":1,"633":1,"634":1,"635":4,"636":3,"637":3,"639":1,"652":1,"665":6,"672":3,"686":2,"711":2}}],["反向websocket监听地址",{"2":{"521":1}}],["反向连接",{"2":{"521":1}}],["反向",{"2":{"265":1}}],["反例",{"2":{"224":1,"225":1,"226":1,"227":1}}],["反斜杠",{"2":{"35":1}}],["反对中华人民共和国宪法所确定的基本原则的",{"2":{"15":1}}],["反馈以及功能请求",{"2":{"279":1}}],["反馈",{"0":{"7":1},"2":{"193":1,"202":1}}],["1环",{"2":{"672":2}}],["1环3个",{"2":{"672":1}}],["13326",{"2":{"686":3}}],["13325",{"2":{"686":6}}],["13",{"2":{"658":9,"659":3}}],["13579",{"2":{"238":1}}],["1=1",{"2":{"634":1}}],["1=",{"2":{"593":1}}],["1+32",{"2":{"637":2}}],["1+d10",{"2":{"570":2}}],["1+2",{"2":{"570":1}}],["1h30m10s",{"2":{"344":1}}],["19",{"2":{"632":2,"659":1}}],["192",{"2":{"278":1}}],["1919810",{"2":{"48":4,"58":3,"61":1}}],["1919",{"2":{"33":2,"48":4}}],["1500",{"2":{"497":1}}],["15",{"2":{"130":1,"172":1,"633":1,"644":1,"658":6,"659":3}}],["172",{"2":{"497":4}}],["17w13a",{"2":{"478":1}}],["17",{"2":{"130":1,"254":1,"261":1,"478":4,"497":4,"632":2,"658":2,"659":1,"667":2,"670":1}}],["1706684850",{"2":{"127":1}}],["16",{"2":{"478":2,"497":1,"562":1,"632":1,"635":1,"652":1,"658":6,"660":2,"670":2}}],["168",{"2":{"278":1}}],["1698636875",{"2":{"139":1}}],["1699086084",{"2":{"121":1}}],["1699077659",{"2":{"119":1}}],["1673250115",{"2":{"172":1}}],["1672066028",{"2":{"159":1}}],["1672423909",{"2":{"129":1}}],["1671886435",{"2":{"136":1}}],["1671540835",{"2":{"133":1,"134":1}}],["1671368035",{"2":{"117":1,"158":1}}],["1676386517",{"2":{"130":1}}],["18",{"2":{"117":1,"158":1,"478":3,"562":1,"632":1,"658":1,"667":1}}],["1d1d1d1d1d1d1d1d1d1d1d1d1d1d",{"2":{"637":1}}],["1d100",{"2":{"751":1}}],["1d100=3",{"2":{"363":2}}],["1d100=60",{"2":{"82":1}}],["1d10+",{"2":{"637":2}}],["1d10=1",{"2":{"637":1}}],["1d10=8",{"2":{"629":1}}],["1d10=7",{"2":{"629":1}}],["1d10=3",{"2":{"570":1,"638":1}}],["1d10",{"2":{"52":1,"751":1}}],["1d50=25",{"2":{"637":1}}],["1d50=21",{"2":{"637":1}}],["1d50=4",{"2":{"628":1}}],["1d50=48",{"2":{"628":1}}],["1d4+4",{"2":{"670":1}}],["1d4+",{"2":{"570":1}}],["1d4",{"2":{"570":1,"678":1,"751":1}}],["1d20=20",{"2":{"678":1}}],["1d20=3",{"2":{"678":1}}],["1d20=8",{"2":{"667":1}}],["1d20=16",{"2":{"669":1}}],["1d20=19",{"2":{"659":1}}],["1d20=15",{"2":{"659":3}}],["1d20=12",{"2":{"639":1}}],["1d20=18",{"2":{"639":1}}],["1d20=1",{"2":{"637":1}}],["1d20",{"2":{"570":1,"637":1}}],["1d6=5",{"2":{"591":1}}],["1d6",{"2":{"79":1,"665":1}}],["1>",{"2":{"78":2}}],["14=42",{"2":{"709":1}}],["14=11+45",{"2":{"709":1}}],["144",{"2":{"639":1}}],["14",{"2":{"33":1,"63":1,"64":2,"130":1,"658":7,"665":1,"667":1,"733":1}}],["12=",{"2":{"570":1}}],["127",{"2":{"259":2,"278":3,"347":1,"497":1,"498":1,"521":1}}],["123",{"2":{"94":2,"139":2,"172":1}}],["123456",{"2":{"430":1}}],["123456789",{"2":{"123":2,"172":3}}],["1234",{"2":{"34":1}}],["12",{"2":{"15":1,"117":1,"129":1,"133":1,"134":1,"136":1,"158":1,"315":1,"459":1,"478":1,"539":1,"616":1,"658":5,"659":2,"665":4,"667":2,"678":1,"686":1,"756":1}}],["11+45",{"2":{"709":1}}],["11+4",{"2":{"64":2}}],["114",{"2":{"63":1,"64":2}}],["114514种论证",{"2":{"64":3}}],["114514",{"2":{"48":4,"58":3,"61":1,"77":2,"172":1,"238":1}}],["11",{"2":{"15":1,"33":1,"63":2,"64":7,"227":1,"255":1,"262":1,"478":1,"616":1,"658":2,"659":1,"667":1,"711":1}}],["10a6k4m9=",{"2":{"635":1}}],["10a6k4m9",{"2":{"635":1}}],["10=63",{"2":{"630":1}}],["10=警告",{"2":{"125":1}}],["1024m",{"2":{"480":1}}],["101",{"2":{"69":2}}],["1002",{"2":{"427":1}}],["1001",{"2":{"427":1}}],["100",{"2":{"24":1,"105":1,"116":1,"117":1,"120":1,"121":1,"127":5,"134":1,"136":3,"139":1,"172":1,"619":10,"628":2,"648":1}}],["10",{"2":{"15":1,"33":2,"48":4,"52":1,"53":1,"54":2,"90":2,"94":1,"127":1,"139":1,"159":1,"172":1,"181":1,"183":2,"344":1,"350":1,"482":1,"539":1,"570":1,"593":2,"619":2,"633":1,"635":1,"636":2,"658":8,"665":16,"670":6,"678":1,"704":1,"711":2,"733":1}}],["1",{"0":{"17":1,"42":1,"244":2,"686":1},"2":{"15":1,"24":1,"26":1,"27":1,"48":3,"52":1,"53":2,"54":3,"56":1,"63":2,"64":8,"73":1,"76":1,"78":4,"79":4,"81":2,"83":2,"84":9,"87":1,"89":2,"90":5,"94":7,"112":2,"115":3,"116":2,"117":4,"119":4,"121":2,"127":7,"129":4,"130":14,"133":5,"134":3,"136":7,"139":7,"144":1,"145":2,"158":1,"159":3,"165":6,"167":5,"172":5,"173":7,"174":5,"178":2,"181":1,"254":6,"256":2,"259":2,"265":1,"278":4,"344":1,"347":1,"349":1,"385":2,"441":1,"443":1,"460":2,"478":10,"480":3,"482":1,"491":3,"497":4,"498":1,"521":1,"548":1,"570":6,"591":1,"593":2,"598":1,"616":1,"619":8,"628":1,"633":3,"634":2,"635":6,"636":1,"637":1,"642":1,"644":1,"652":4,"653":1,"658":1,"665":2,"672":3,"674":1,"686":1,"695":1,"715":2,"751":2}}],["非",{"2":{"499":1}}],["非常欢迎你使用海豹官方的骰子",{"2":{"500":1}}],["非常不建议你将文档放在这个文件夹中进行管理",{"2":{"396":1}}],["非常感谢",{"2":{"2":1}}],["非零和非空字符串为",{"2":{"173":1}}],["非浏览器环境",{"2":{"158":1}}],["非自带的插件",{"2":{"15":1}}],["您不得在使用海豹骰服务时",{"2":{"15":1}}],["您清楚并明白您对通过骰子提供的全部内容负责",{"2":{"15":1}}],["您需了解",{"2":{"15":1}}],["和参数相似",{"2":{"723":1}}],["和规则",{"2":{"686":1}}],["和一小段空闲时间",{"2":{"549":1}}],["和一级文件夹同级",{"2":{"396":1}}],["和自己的需求修改配置文件",{"2":{"523":1}}],["和信任用户可使用",{"2":{"342":1}}],["和错误",{"2":{"299":1}}],["和开源性",{"2":{"286":1}}],["和提供",{"2":{"285":1,"516":1}}],["和提出的功能请求",{"2":{"206":1}}],["和实际运行时的工作目录即为",{"2":{"274":1}}],["和默认值",{"2":{"94":5}}],["和",{"0":{"469":1},"2":{"30":1,"33":1,"48":1,"54":1,"70":1,"72":1,"78":1,"84":1,"90":2,"94":2,"104":2,"120":1,"145":1,"157":1,"158":1,"165":2,"166":1,"206":2,"218":1,"285":1,"287":1,"294":1,"299":1,"320":1,"340":1,"341":1,"356":1,"393":1,"414":1,"418":1,"419":1,"469":2,"470":1,"478":1,"512":1,"513":2,"533":1,"539":2,"550":1,"581":1,"582":1,"594":1,"642":2,"709":1,"718":1,"720":1,"721":1}}],["和海豹无关",{"2":{"15":1}}],["和功能建议都可反馈在",{"2":{"7":1}}],["欢迎语",{"2":{"707":1}}],["欢迎加入官方答疑群",{"2":{"681":1}}],["欢迎加入官方群寻求帮助",{"2":{"680":1}}],["欢迎加入官方群",{"2":{"580":1}}],["欢迎前去",{"2":{"572":1}}],["欢迎使用",{"2":{"242":1}}],["欢迎",{"2":{"135":1}}],["欢迎您选择由木落等研发的海豹骰点核心",{"2":{"15":1}}],["欢迎各种类型的",{"2":{"8":1}}],["sr",{"2":{"742":1}}],["src",{"2":{"130":1,"152":1}}],["slots",{"0":{"672":1},"1":{"673":1}}],["slack",{"0":{"528":1,"529":1},"1":{"529":1,"530":1,"531":1,"532":1,"533":1},"2":{"18":1,"528":1,"529":1,"530":3,"533":2,"540":1}}],["szz",{"2":{"593":2,"599":1,"639":2}}],["szzrain",{"2":{"119":2,"121":3,"127":3,"139":2,"159":1,"164":4,"165":9,"166":4}}],["silicon",{"2":{"538":1,"539":1}}],["signserver",{"0":{"252":1},"2":{"252":1}}],["sql",{"2":{"460":2}}],["sqlite",{"2":{"460":5}}],["systemd",{"2":{"541":2,"543":1}}],["systemctl",{"2":{"457":1,"541":4}}],["synonym",{"2":{"68":4}}],["sync",{"2":{"14":1}}],["scb",{"0":{"559":1}}],["scratch",{"2":{"530":1}}],["scopes",{"2":{"532":1}}],["scope",{"2":{"466":1,"497":2}}],["score",{"2":{"125":1,"127":2}}],["sc",{"0":{"370":1,"607":1},"1":{"608":1,"609":1,"610":1,"611":1},"2":{"504":1,"559":1,"570":5,"608":1,"609":2,"610":1,"681":1,"746":1,"751":4}}],["smtp",{"0":{"338":1},"2":{"336":1,"337":1,"338":2}}],["s",{"0":{"300":1},"1":{"301":1,"302":1},"2":{"209":1,"649":1,"678":1,"684":1}}],["snipaste",{"2":{"210":1}}],["snippets",{"2":{"168":1}}],["sn",{"0":{"732":1},"1":{"733":1,"734":1,"735":1,"736":1},"2":{"146":2,"733":4,"734":1,"735":2,"736":1,"746":1,"747":1}}],["sudo",{"2":{"541":1}}],["sub",{"2":{"570":1}}],["subscribe",{"2":{"531":1}}],["sublime",{"2":{"93":1}}],["suffix",{"2":{"136":4}}],["successrank",{"2":{"136":10}}],["spell",{"0":{"672":1},"1":{"673":1}}],["specialexecutetimes",{"2":{"110":1}}],["spigot",{"2":{"479":3,"480":2}}],["space",{"0":{"198":1}}],["splice",{"2":{"130":2}}],["shadowrun",{"0":{"742":1},"2":{"742":1}}],["shamrock",{"0":{"254":1,"258":1,"261":1,"264":1},"1":{"255":1,"256":1,"257":1,"258":1,"259":1,"260":1,"262":1,"263":1,"264":1,"265":1},"2":{"254":17,"258":10,"261":4,"262":1,"264":3,"265":1,"519":1}}],["shizuku",{"0":{"262":1},"2":{"261":1,"262":5,"263":2}}],["sh",{"2":{"239":2,"262":2}}],["shellsystemctl",{"2":{"541":1}}],["shellsqlite3",{"2":{"460":2}}],["shellsealdice",{"2":{"457":1,"458":1}}],["shell",{"0":{"302":1},"2":{"210":1,"262":1,"283":3,"290":4,"292":3,"302":5,"313":4,"457":1}}],["shufflepool",{"2":{"118":2}}],["showhelp",{"2":{"115":2,"116":2,"117":2,"127":5,"129":1,"130":1,"133":1,"134":1,"139":1}}],["showgroupwelcome",{"2":{"106":1}}],["show",{"2":{"26":1,"582":1,"587":1,"593":1,"663":3,"665":2,"670":3,"707":1,"709":1,"746":1}}],["ssh",{"2":{"224":1}}],["ss",{"0":{"672":1},"1":{"673":1},"2":{"110":5,"672":12,"758":2}}],["stshow力量",{"2":{"548":1}}],["story",{"2":{"569":2}}],["storage",{"2":{"130":9,"131":3,"262":1,"442":1}}],["storageget",{"2":{"128":1,"129":2,"130":4,"131":1,"142":3}}],["storageset",{"2":{"128":1,"129":1,"130":4,"131":1}}],["stopped",{"2":{"491":5}}],["stop",{"2":{"457":1,"480":1,"493":1,"541":1}}],["started",{"2":{"481":2}}],["start",{"0":{"252":1},"2":{"239":3,"262":1,"480":3,"481":1,"535":1,"541":1}}],["stack",{"2":{"207":1}}],["stat",{"2":{"678":1,"728":2}}],["status",{"2":{"135":1,"142":1,"541":1}}],["state",{"2":{"108":1,"497":1}}],["st",{"0":{"369":1,"585":1,"586":1,"661":1,"662":1},"1":{"586":1,"587":1,"588":1,"589":1,"590":1,"591":1,"592":1,"593":1,"662":1,"663":1,"664":1,"665":1,"666":1},"2":{"146":1,"180":1,"548":1,"582":4,"587":1,"588":2,"589":3,"590":2,"591":1,"592":2,"593":2,"663":4,"664":2,"665":10,"670":3,"678":2,"746":2,"747":1,"757":1}}],["str+10",{"2":{"582":1}}],["strval",{"2":{"139":2}}],["struct",{"2":{"138":1}}],["strset",{"2":{"94":1,"99":1}}],["strsim",{"2":{"72":4}}],["strget",{"2":{"94":3,"99":1}}],["str",{"2":{"94":6,"110":2,"582":4}}],["stringify",{"2":{"128":1,"129":1,"130":4,"131":1,"135":2}}],["string",{"2":{"72":2,"94":6,"103":2,"105":1,"109":3,"110":6,"138":3,"141":5}}],["strcompare",{"2":{"72":1}}],["socks5",{"2":{"686":1}}],["socks5简易工具©sealdice",{"2":{"686":1}}],["socks",{"2":{"686":2}}],["socket",{"2":{"531":2}}],["source",{"2":{"186":1,"200":1}}],["something",{"2":{"94":9,"95":6}}],["somefunction",{"2":{"94":1}}],["solve",{"2":{"94":1,"98":2,"114":2,"115":1,"116":2,"117":1,"118":1,"119":2,"121":1,"123":1,"127":5,"129":1,"130":1,"133":1,"134":1,"139":1}}],["san70",{"2":{"733":1}}],["san值",{"2":{"582":1}}],["san",{"0":{"751":1},"2":{"582":1,"584":1,"735":2}}],["satori",{"0":{"527":1},"2":{"515":3,"525":1,"527":1}}],["save",{"2":{"464":1,"641":1,"747":1}}],["salt",{"2":{"187":1,"201":1}}],["sa",{"2":{"48":3,"90":1}}],["switch",{"2":{"26":1,"115":1,"116":1,"117":1,"121":1,"127":5,"129":1,"130":1,"134":1,"139":2}}],["search",{"2":{"652":2,"653":1,"765":1}}],["sealport",{"0":{"486":1},"2":{"481":2}}],["sealversion",{"2":{"159":2,"167":3}}],["sealdce",{"2":{"150":1,"151":1}}],["sealdice将自动随系统启动",{"2":{"541":1}}],["sealdiceplugin",{"2":{"481":4,"482":1}}],["sealdice",{"0":{"187":1,"201":1,"430":1,"481":1,"483":1,"485":1,"488":1},"1":{"484":1,"485":1,"486":1,"487":1,"488":1},"2":{"11":1,"15":1,"55":1,"66":1,"68":1,"94":1,"105":1,"117":1,"119":1,"129":1,"130":1,"133":1,"134":1,"136":1,"158":1,"159":1,"166":2,"168":1,"172":2,"186":1,"187":1,"189":2,"190":1,"191":1,"192":5,"193":3,"196":2,"200":1,"201":1,"202":2,"203":1,"212":2,"214":1,"224":2,"225":1,"232":1,"233":3,"234":2,"274":1,"375":3,"442":2,"457":2,"477":1,"478":1,"479":2,"481":2,"491":8,"539":11,"541":9,"577":2,"624":2,"695":1,"717":1,"718":1}}],["seal",{"2":{"94":56,"95":3,"96":2,"97":4,"98":4,"99":4,"102":2,"103":4,"104":3,"105":1,"112":3,"113":1,"114":6,"115":6,"116":7,"117":20,"118":1,"119":12,"121":7,"123":2,"124":2,"125":1,"126":1,"127":35,"129":9,"130":20,"131":1,"133":11,"134":8,"135":5,"136":3,"137":3,"138":6,"139":29,"142":2,"152":1,"155":3,"158":1,"161":3,"491":12,"492":2}}],["service",{"2":{"541":2}}],["services",{"2":{"491":2}}],["serve",{"2":{"431":1}}],["server",{"2":{"272":1,"464":1,"481":1,"514":2,"580":1,"686":3}}],["select",{"2":{"479":1}}],["session",{"2":{"238":1}}],["semver",{"2":{"165":2}}],["semver版本约束",{"2":{"165":1}}],["semantic",{"2":{"159":1}}],["setting",{"2":{"480":1}}],["settimeout",{"2":{"158":1}}],["setinterval",{"2":{"158":1}}],["set",{"0":{"626":1,"648":1},"2":{"146":2,"172":1,"626":5,"648":9,"660":2,"672":2,"707":1,"711":3,"746":3}}],["setcoc",{"0":{"617":1},"1":{"618":1,"619":1,"620":1},"2":{"136":2,"572":1,"594":1,"618":1,"619":1,"620":1,"739":1,"746":2}}],["setenable",{"2":{"108":1}}],["setplayergroupcard",{"2":{"94":1,"103":1}}],["setvarstr",{"2":{"94":1}}],["setvarint",{"2":{"94":1}}],["senddailynews",{"2":{"142":1}}],["sender",{"2":{"94":1,"104":1,"109":3,"135":1}}],["send",{"0":{"706":1},"2":{"24":1,"76":1,"363":1,"562":1,"591":1,"593":2,"595":2,"624":3,"625":3,"628":5,"631":2,"632":2,"635":1,"637":3,"639":1,"640":3,"652":3,"658":1,"659":5,"660":2,"665":3,"667":2,"669":1,"670":7,"672":4,"676":1,"678":1,"704":1,"706":4,"711":1,"746":1}}],["通用特化支持",{"0":{"554":1},"1":{"555":1}}],["通用设置",{"0":{"452":1},"1":{"453":1,"454":1,"455":1}}],["通知权限",{"0":{"454":1}}],["通知",{"2":{"355":1,"504":1,"509":1}}],["通常流程",{"0":{"747":1},"1":{"748":1,"749":1,"750":1,"751":1,"752":1,"753":1,"754":1,"755":1,"756":1,"757":1,"758":1,"759":1,"760":1}}],["通常的疯狂发作应该使用",{"2":{"612":1}}],["通常由",{"2":{"541":1}}],["通常海豹核心也会一同关闭",{"2":{"541":1}}],["通常在",{"2":{"457":1}}],["通常而言",{"2":{"447":1}}],["通常为几分钟",{"2":{"395":1}}],["通常指用户与程序发生交互的位置",{"2":{"307":1}}],["通常指通过不生成图形化用户界面方式运行",{"2":{"306":1}}],["通常以特定的数据结构存储在内存之中",{"2":{"301":1}}],["通常有其约定",{"2":{"278":1}}],["通常使用全文搜索",{"2":{"722":1}}],["通常使用",{"2":{"278":1}}],["通常还包含",{"2":{"274":1}}],["通常用于获取",{"2":{"256":1}}],["通常",{"2":{"252":1,"290":1,"539":1}}],["通常简称",{"0":{"250":1}}],["通常默认为",{"2":{"238":2}}],["通常这类文章是搬运而来",{"2":{"207":1}}],["通常包含了此开源项目的用户所遇到的问题",{"2":{"206":1}}],["通常包含使用此项目的用户高频提出的问题",{"2":{"206":1}}],["通常来说这是其他人分享给你的",{"2":{"415":1}}],["通常来说",{"2":{"139":1,"207":1,"224":1,"225":1,"278":1,"455":1,"460":1,"695":1}}],["通常情况下无需修改",{"2":{"258":1}}],["通常情况下",{"2":{"137":1,"239":1,"252":1}}],["通常情况下你不需要考虑黑名单用户的情况",{"2":{"120":1}}],["通常会对参数值进行判断",{"2":{"115":1}}],["通常群文件的",{"2":{"93":1}}],["通常是不固定的",{"2":{"501":1}}],["通常是使用",{"2":{"457":1}}],["通常是在执行海豹核心的终端使用",{"2":{"457":1}}],["通常是",{"2":{"10":1,"720":1}}],["通过这种方式",{"2":{"748":1}}],["通过这样的思考过程",{"2":{"189":1,"217":1}}],["通过指令发送",{"2":{"706":1}}],["通过额外骰一定数量的十位骰",{"2":{"631":1}}],["通过将",{"2":{"498":1}}],["通过此方式部署的海豹与",{"2":{"490":1}}],["通过数据库修复指令",{"0":{"460":1}}],["通过回滚备份",{"0":{"459":1}}],["通过筛选可以快速查找到相应的词条内容",{"2":{"399":1}}],["通过明确地告诉大家问题已经解决",{"2":{"229":1}}],["通过你提供的这些信息",{"2":{"226":1}}],["通过搜素自定义回复",{"2":{"209":1}}],["通过投掷",{"2":{"144":1}}],["通过骰子出招和玩家出招两个变量判断",{"2":{"84":1}}],["通过配置牌堆文件的",{"2":{"57":1}}],["通过",{"0":{"490":1},"1":{"491":1,"492":1,"493":1,"494":1,"495":1},"2":{"51":1,"120":1,"165":1,"199":1,"256":1,"334":1,"356":1,"383":1,"394":1,"493":2,"513":1,"606":1}}],["通过对结果变量的判断来实现展示不同文案",{"2":{"24":1}}],["通过并合并后",{"2":{"13":1}}],["功能相同",{"2":{"601":1}}],["功能相关的文案",{"2":{"362":1}}],["功能审核未通过",{"0":{"509":1}}],["功能配置与提审",{"2":{"509":1}}],["功能配置",{"2":{"503":1,"509":1}}],["功能导入它们",{"2":{"416":1}}],["功能需使用单独生成的授权码",{"2":{"337":1}}],["功能丰富的生产力",{"2":{"309":1}}],["功能",{"0":{"700":1},"1":{"701":1,"702":1,"703":1,"704":1,"705":1,"706":1,"707":1,"708":1,"709":1,"710":1,"711":1,"712":1,"713":1,"714":1,"715":1},"2":{"15":1,"341":1,"362":2,"364":1,"412":1,"426":1,"441":1,"513":1,"700":1,"706":1,"707":1,"708":1,"709":1,"740":1,"741":1,"742":1,"743":1}}],["功能分支就可以被删除了",{"2":{"13":1}}],["功能分支",{"2":{"13":1}}],["功能建议",{"0":{"7":1}}],["luck",{"2":{"765":1}}],["lua",{"2":{"170":2}}],["lv3",{"2":{"672":1}}],["ll",{"2":{"497":1}}],["llonebot",{"0":{"519":1,"520":1,"521":1},"1":{"520":1,"521":1},"2":{"341":2,"512":1,"513":4,"519":3,"521":4}}],["lft",{"2":{"497":4}}],["l",{"0":{"284":1},"1":{"285":1,"286":1,"287":1,"288":1}}],["lspatch",{"0":{"261":1,"263":1},"1":{"262":1,"263":1,"264":1,"265":1},"2":{"261":4,"263":4,"264":3}}],["lsposed",{"0":{"257":1},"2":{"254":1,"257":1,"258":1,"263":1}}],["lst",{"2":{"129":3}}],["latest",{"2":{"538":1,"539":2}}],["lagrangedev",{"2":{"491":3}}],["lagrange",{"0":{"285":1,"490":1,"493":1,"494":1,"495":1,"516":1,"517":1,"518":1},"1":{"491":1,"492":1,"493":1,"494":1,"495":1,"517":1,"518":1},"2":{"190":1,"226":1,"274":1,"285":5,"309":1,"341":2,"431":1,"490":3,"491":20,"492":1,"493":6,"494":3,"512":1,"513":4,"516":6,"517":2,"518":1,"539":5}}],["lastcommandtime",{"2":{"107":1}}],["left",{"2":{"570":4}}],["length",{"2":{"130":5,"131":1}}],["level",{"2":{"127":5}}],["let",{"2":{"98":2,"115":1,"116":1,"117":2,"121":1,"127":9,"129":2,"130":7,"133":1,"134":1,"136":2,"137":1,"139":2}}],["li",{"0":{"612":1},"2":{"612":3,"746":1,"752":1}}],["links",{"2":{"532":2}}],["link",{"2":{"497":2}}],["linux",{"0":{"286":1,"576":1},"2":{"140":1,"199":1,"285":2,"286":4,"314":1,"516":2,"538":1,"541":1,"543":1,"684":1}}],["liteloaderqqnt",{"2":{"287":1,"519":1}}],["liteloader",{"0":{"287":1},"2":{"287":2,"295":1,"519":2}}],["list",{"2":{"120":1,"129":1,"622":1,"623":2,"625":1,"641":1,"649":1,"652":1,"709":1,"729":1,"730":1,"746":1}}],["license",{"2":{"48":6,"90":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"158":1,"159":2}}],["lot",{"2":{"704":1}}],["longrest",{"0":{"676":1},"1":{"677":1},"2":{"676":1,"759":1}}],["localhost",{"2":{"238":1,"242":1,"265":1,"278":1,"482":1,"498":1,"521":1,"539":3}}],["lodash",{"2":{"154":1}}],["load",{"2":{"641":1}}],["loading",{"2":{"209":1}}],["loadplayergroupvars",{"2":{"105":1}}],["loadplayerglobalvars",{"2":{"105":1}}],["loadgroupvars",{"2":{"105":1}}],["logs",{"2":{"431":1,"457":2,"493":1}}],["logon",{"2":{"106":1}}],["logcurname",{"2":{"106":1}}],["logic",{"2":{"72":1}}],["log",{"0":{"288":1,"698":1,"726":1,"730":1},"1":{"727":1,"728":1,"729":1,"730":1},"2":{"1":1,"121":1,"135":2,"158":1,"299":2,"345":1,"430":2,"431":4,"442":1,"457":1,"499":1,"531":1,"568":2,"569":1,"577":1,"640":1,"717":1,"727":7,"728":2,"729":6,"730":3,"746":4}}],["lt",{"2":{"13":1,"48":1,"57":5,"66":1,"68":2,"70":1,"73":1,"78":4,"89":1,"90":1,"114":1,"120":1,"172":4,"224":1,"225":2,"262":1,"585":2,"587":1,"588":1,"589":7,"590":2,"591":2,"595":1,"596":2,"597":2,"598":2,"604":1,"605":2,"606":3,"608":2,"609":2,"610":3,"614":4,"615":7,"616":1,"620":1,"622":3,"623":5,"625":2,"626":1,"627":2,"635":7,"636":4,"640":1,"641":10,"642":5,"643":1,"647":1,"648":3,"652":3,"653":2,"658":2,"659":6,"660":4,"663":3,"664":2,"665":6,"667":4,"670":6,"674":2,"678":1,"684":1,"694":1,"703":3,"704":2,"705":1,"706":3,"707":1,"709":11,"711":2,"712":1,"713":3,"714":1,"715":1,"722":3,"727":3,"728":2,"729":6,"730":3,"734":1,"735":1,"746":35,"748":2,"750":1,"751":2,"753":1,"755":1,"756":1,"757":1,"762":1,"763":2,"764":1,"765":8}}],["主页",{"2":{"450":1,"543":1}}],["主动发送一条提醒信息",{"2":{"345":1}}],["主流的语言",{"2":{"205":1}}],["主脑发送消息并接收回复",{"2":{"135":1}}],["主函数",{"2":{"117":1}}],["主要用于自己的电脑",{"2":{"347":1}}],["主要用于服务器",{"2":{"347":1}}],["主要为快捷指令",{"2":{"700":1}}],["主要为",{"2":{"253":1}}],["主要使用",{"2":{"135":1}}],["主要是和当前环境以及用户相关的内容",{"2":{"114":1,"117":1,"135":1}}],["主要查看",{"2":{"94":1}}],["主分支",{"2":{"13":1}}],["主仓库",{"2":{"13":1}}],["进程存活",{"2":{"264":1}}],["进程和",{"2":{"264":1}}],["进程",{"2":{"264":1}}],["进程不能轻易关闭",{"2":{"252":1}}],["进阶",{"2":{"359":1,"376":1,"381":1,"390":1,"400":1,"408":1,"410":1,"425":1}}],["进阶介绍",{"0":{"91":1},"1":{"92":1,"93":1},"2":{"21":1,"650":1}}],["进阶自定义",{"0":{"21":1}}],["进行优势或劣势检定",{"2":{"667":1}}],["进行豁免检定",{"2":{"667":1}}],["进行双十字骰点需要设定以下参数",{"2":{"636":1}}],["进行",{"0":{"749":1,"754":1},"1":{"750":1,"751":1,"752":1,"753":1,"755":1,"756":1,"757":1,"758":1,"759":1,"760":1},"2":{"635":1}}],["进行技能成长",{"0":{"614":1}}],["进行一次死亡豁免检定",{"2":{"678":1}}],["进行一次检定",{"2":{"604":1}}],["进行一次骰点",{"2":{"354":2}}],["进行运算",{"2":{"603":1}}],["进行暗中代骰",{"2":{"602":1}}],["进行了3次检定",{"2":{"596":1,"600":1}}],["进行检定",{"0":{"595":1},"2":{"597":1,"598":1,"667":1}}],["进行检查",{"2":{"354":1}}],["进行连接",{"2":{"513":1}}],["进行申请",{"2":{"499":1,"501":1}}],["进行编译",{"2":{"479":1}}],["进行编写",{"2":{"268":1}}],["进行对接",{"2":{"477":1}}],["进行阅读",{"2":{"425":1}}],["进行调用",{"2":{"378":1,"386":1,"424":1,"654":1}}],["进行多轮骰点时",{"2":{"373":1}}],["进行操作",{"2":{"340":1}}],["进行手动批量删除",{"2":{"321":1}}],["进行登录",{"2":{"240":1}}],["进行搜索",{"2":{"207":1}}],["进行部署",{"2":{"190":1}}],["进行开发",{"2":{"149":1}}],["进行网络请求",{"2":{"135":1}}],["进行回复",{"2":{"116":1,"117":1,"373":1}}],["进行赋值导致的变量显示",{"2":{"84":1}}],["进行判断",{"2":{"78":1}}],["进行测试",{"2":{"76":1}}],["进行抽取",{"2":{"54":1,"57":3}}],["进行使用即代表同意此声明",{"2":{"15":1}}],["进行同步",{"2":{"14":1}}],["进行在线编辑",{"2":{"12":1}}],["进入新的目录",{"2":{"693":1}}],["进入后点击",{"2":{"686":1}}],["进入下一轮",{"2":{"635":1,"636":1}}],["进入海豹",{"2":{"514":1,"518":1,"524":1}}],["进入机器人管理后台",{"2":{"501":1}}],["进入应用管理后",{"2":{"447":1}}],["进入群组",{"2":{"333":1,"690":1}}],["进入批量删除页面",{"2":{"321":1}}],["进入勾选",{"2":{"258":1}}],["进入",{"2":{"13":1,"503":1,"504":1}}],["进度条完成",{"2":{"11":1}}],["f+1=0",{"2":{"634":1}}],["f=",{"2":{"634":1}}],["fvtt",{"0":{"633":1}}],["ff",{"2":{"497":6}}],["fri",{"2":{"480":1}}],["from",{"2":{"460":6,"530":1}}],["fate",{"0":{"634":1}}],["failed",{"2":{"242":1}}],["faq",{"0":{"243":1},"1":{"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1},"2":{"206":1}}],["false",{"2":{"33":1,"38":1,"45":1,"94":5,"102":1,"118":1,"121":1,"127":1,"135":1,"156":1,"173":1,"457":1,"488":1}}],["fun",{"2":{"569":3}}],["func",{"2":{"141":6}}],["function",{"2":{"130":7,"131":1,"133":1,"135":1}}],["fumblevalue",{"2":{"136":2}}],["files",{"2":{"532":1}}],["filename",{"2":{"150":1}}],["file=https",{"2":{"135":2}}],["fish",{"2":{"143":1,"146":9,"147":1}}],["find",{"0":{"642":1},"1":{"643":1,"644":1,"645":1,"646":1},"2":{"68":1,"94":1,"112":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"137":1,"139":1,"394":1,"553":1,"576":1,"642":3,"643":3,"721":1,"722":8,"746":1}}],["fe50",{"2":{"497":1}}],["fe80",{"2":{"497":1}}],["feb",{"2":{"480":1}}],["fetch",{"2":{"135":5,"158":1}}],["feed",{"2":{"129":1}}],["feedinfo",{"2":{"129":3}}],["feature",{"2":{"12":1,"206":1}}],["floor",{"2":{"130":1}}],["floatval",{"2":{"139":2}}],["float",{"2":{"94":2,"138":1}}],["float64",{"2":{"72":1}}],["flag",{"2":{"110":1,"723":2}}],["flavor",{"2":{"69":1}}],["forever",{"2":{"497":4}}],["foreach",{"2":{"127":1,"130":1}}],["forwardwebsocket",{"2":{"493":1}}],["forward",{"2":{"259":1}}],["for",{"2":{"129":1,"130":1,"142":2,"460":1,"480":1,"532":1}}],["formattmpl",{"0":{"97":1},"2":{"94":1,"97":1}}],["format",{"0":{"97":1},"2":{"94":1,"97":2,"119":2}}],["formfeed",{"2":{"66":1}}],["fork仓库",{"2":{"13":1}}],["fork",{"0":{"11":1,"14":1},"2":{"10":2,"11":7,"13":1,"14":1}}],["f",{"0":{"271":1},"1":{"272":1},"2":{"66":1,"178":1,"576":1,"637":1,"678":1}}],["切勿使用自动更新",{"2":{"543":1}}],["切记不能选中",{"2":{"503":1}}],["切换房规",{"2":{"746":1}}],["切换为对应规则的默认骰面数",{"2":{"648":1}}],["切换到",{"2":{"501":1,"739":1,"746":2}}],["切换到新仓库的分支页面",{"2":{"12":1}}],["切换标签页到",{"2":{"399":1}}],["切换对应协议后重新登录",{"2":{"246":1}}],["切换",{"2":{"136":2}}],["切换命令实现",{"0":{"26":1}}],["切出工作分支",{"0":{"12":1}}],["切出一个新分支作为工作分支",{"2":{"10":1}}],["不带有尖括号的内容是字面量",{"2":{"722":1}}],["不带有角色名参数",{"2":{"641":1}}],["不重复骰点",{"0":{"703":1}}],["不一样",{"2":{"686":1}}],["不幸去世了",{"2":{"678":1}}],["不回复",{"2":{"672":1}}],["不足致死的伤害自动折算为死亡豁免失败",{"2":{"665":1}}],["不用再行关注",{"2":{"665":1}}],["不用再拼接",{"2":{"35":1}}],["不计算临时生命扣血",{"2":{"665":1}}],["不满",{"2":{"619":5}}],["不加参数的使用",{"2":{"618":1}}],["不论成功与否",{"2":{"614":1}}],["不支持运行",{"2":{"539":1}}],["不推荐一般用户使用",{"2":{"538":1}}],["不推荐关闭这些进程",{"2":{"252":1}}],["不允许",{"2":{"450":1}}],["不允许没有值",{"2":{"33":1}}],["不断尝试",{"2":{"446":1}}],["不含文本",{"2":{"420":1}}],["不含有该标记的项目被视为拥有默认权重",{"2":{"53":1}}],["不受",{"2":{"354":2}}],["不受控的云端内容",{"2":{"62":1}}],["不能访问网络",{"2":{"686":1}}],["不能是骰子的",{"2":{"508":1}}],["不能正确加载",{"2":{"295":1}}],["不能做到哪些事",{"2":{"19":1}}],["不适用以下教程",{"2":{"254":1}}],["不适宜的激情",{"2":{"67":1}}],["不只是滑条",{"2":{"242":1}}],["不提供参数则列出所有属性数值",{"2":{"587":1}}],["不提供日志",{"2":{"225":1}}],["不提供此类信息",{"2":{"224":1,"226":1,"227":1}}],["不提倡拍屏而是提倡截图的原因是",{"2":{"187":1,"201":1}}],["不如一开始就将它们包含在你的问题之中",{"2":{"227":1}}],["不如把手放在键盘上",{"2":{"211":1}}],["不如直抵源头",{"2":{"207":1}}],["不如先试试看自己解决",{"2":{"190":1}}],["不至于过于专业",{"2":{"206":1}}],["不妨先看看此项目的帮助文档",{"2":{"206":1}}],["不仅可以帮助你看懂程序日志上的故障原因",{"2":{"205":1}}],["不建议进行剪裁",{"2":{"187":1,"201":1}}],["不建议使用",{"2":{"93":1,"253":1}}],["不是特别在意资源占用的",{"2":{"513":1}}],["不是数值",{"2":{"183":1}}],["不是所有人都能顺利访问",{"2":{"7":1}}],["不错",{"2":{"181":1}}],["不存数据库",{"2":{"172":1}}],["不存在",{"2":{"112":1}}],["不包括",{"2":{"157":1}}],["不摸鱼",{"2":{"145":1,"147":1}}],["不知道为什么",{"2":{"127":1}}],["不过骰子不会做出回复",{"2":{"649":1}}],["不过一般都是提供了一些",{"2":{"409":1}}],["不过先从",{"2":{"161":1}}],["不过",{"2":{"154":1,"272":1}}],["不过不修改也不会影响编译",{"2":{"150":1}}],["不过这种写法的返回值固定为字符串",{"2":{"119":1}}],["不过示例以更简单的自定义回复为例",{"2":{"25":1}}],["不确定",{"2":{"110":1}}],["不懂",{"2":{"110":1}}],["不会造成其他的效果",{"2":{"731":1}}],["不会超过上限",{"2":{"672":1}}],["不会关机的电脑",{"2":{"272":1}}],["不会泄露的信息",{"2":{"238":1}}],["不会被关闭",{"2":{"193":1,"202":1}}],["不会触发任何指令",{"2":{"120":1}}],["不会自动",{"2":{"97":1}}],["不会回复",{"2":{"95":1}}],["不多赘述",{"2":{"94":3,"100":1,"101":1}}],["不让用户注意到突兀的空缺",{"2":{"82":1}}],["不需要使用任何",{"2":{"74":1}}],["不可同时登录",{"2":{"513":1}}],["不可抗力",{"2":{"237":1}}],["不可见的将不展示在",{"2":{"61":1}}],["不可以是",{"2":{"38":1}}],["不同版本规则之间的同一技能更换了用词",{"2":{"582":1}}],["不同于内置客户端",{"2":{"515":1}}],["不同系统可能名称不同",{"2":{"440":1}}],["不同的对接方式",{"2":{"515":1}}],["不同的对接方式适应不同的情况",{"2":{"513":1}}],["不同的",{"2":{"409":1}}],["不同范围的",{"2":{"278":1}}],["不同前缀代表不同的作用域",{"2":{"172":1}}],["不同",{"2":{"59":1}}],["不同方式拷打木落三次",{"2":{"51":3}}],["不展示也不能抽取",{"2":{"57":1}}],["不要同时打开",{"2":{"521":1}}],["不要使用无密码的扫码登录",{"2":{"685":1}}],["不要使用",{"2":{"443":1}}],["不要使用某些前缀",{"2":{"73":1}}],["不要忘记保存",{"2":{"363":1}}],["不要将日志内容复制到聊天窗口中",{"2":{"225":1}}],["不要将代码内容复制到聊天窗口中",{"2":{"224":1}}],["不要随意关闭你不认识的进程",{"2":{"199":1}}],["不要在最后一条语句的后面再使用分号",{"2":{"174":1}}],["不要紧张",{"2":{"137":1}}],["不要漏掉哦",{"2":{"112":1}}],["不要删去第一行的",{"2":{"68":1}}],["不要误写成",{"2":{"61":2}}],["不要回退到上一级目录然后选中",{"2":{"56":1}}],["不要修改主分支",{"2":{"12":1}}],["不放回抽取牌堆",{"2":{"102":1}}],["不放回抽取生效",{"2":{"51":1}}],["不放回抽取",{"2":{"51":2}}],["仓库位于",{"2":{"384":1,"393":1,"403":1,"416":1}}],["仓库中提交一个",{"2":{"192":1,"233":1}}],["仓库可以填仓库链接",{"2":{"159":1}}],["仓库与上游同步",{"0":{"14":1}}],["仓库到本地后进行修改",{"2":{"12":1}}],["仓库的",{"2":{"7":1}}],["censor",{"2":{"431":1,"457":2}}],["ceil",{"2":{"116":1,"117":1,"134":1}}],["cd",{"2":{"262":2}}],["cpu",{"2":{"252":1,"538":1,"539":1,"550":1}}],["csdn",{"2":{"207":1}}],["cross",{"0":{"741":1},"2":{"741":1}}],["crontab",{"2":{"140":1}}],["cron",{"2":{"140":4,"141":5,"142":1,"314":4,"317":1,"320":1,"344":1}}],["criticalsuccessvalue",{"2":{"136":4}}],["createtempctx",{"2":{"94":1,"104":1}}],["create",{"2":{"11":2,"530":2}}],["cn|en|jp",{"2":{"762":1}}],["cnt",{"2":{"135":1}}],["cn",{"2":{"135":1}}],["customize",{"2":{"532":1}}],["curpagerows",{"2":{"130":4}}],["cunban",{"2":{"127":3}}],["cget",{"2":{"127":3}}],["cthulhu",{"2":{"584":1}}],["ctrl+c",{"2":{"457":1}}],["ctrl",{"2":{"252":1}}],["ctrust",{"2":{"127":3}}],["ctx3",{"2":{"98":1}}],["ctx2",{"2":{"98":1}}],["ctxfirst",{"2":{"98":2}}],["ctx",{"0":{"105":1,"106":1,"107":1,"108":1},"2":{"94":29,"95":3,"96":2,"97":4,"98":10,"99":4,"102":2,"103":4,"104":1,"105":7,"114":2,"115":1,"116":2,"117":3,"118":2,"119":9,"120":1,"121":4,"123":3,"124":2,"127":24,"129":3,"130":21,"131":2,"133":4,"134":3,"135":6,"136":1,"137":1,"139":11}}],["cbanlist",{"2":{"127":3}}],["cban",{"2":{"127":3}}],["chronocat",{"0":{"253":1,"525":1,"526":1,"527":1},"1":{"526":1,"527":1},"2":{"253":2,"525":1,"526":1}}],["chmod",{"2":{"239":1,"539":1,"576":2}}],["checkupdate",{"2":{"543":1,"622":1}}],["checkgroupstatus",{"2":{"142":1}}],["check",{"0":{"751":1},"2":{"136":1,"457":2,"458":1}}],["checkvalue",{"2":{"136":5}}],["chexists",{"2":{"105":1}}],["channels",{"2":{"531":1,"532":2}}],["changing",{"2":{"480":1}}],["changingself",{"2":{"130":1}}],["changes",{"2":{"464":1}}],["chat",{"2":{"532":2}}],["chatserver",{"2":{"481":1}}],["chatgpt",{"2":{"223":1}}],["chatwithbot",{"2":{"135":1}}],["chopprefixtoargswith",{"2":{"110":1}}],["chvarsupdatetime",{"2":{"105":1}}],["chvarsnumget",{"2":{"105":1}}],["chvarsget",{"2":{"105":1}}],["chvarsclear",{"2":{"105":1}}],["chunbindcur",{"2":{"105":1}}],["chunbind",{"2":{"105":1}}],["chnew",{"2":{"105":1}}],["chload",{"2":{"105":1}}],["chget",{"2":{"105":1}}],["chbindgetlist",{"2":{"105":1}}],["chbindget",{"2":{"105":1}}],["chbindcurget",{"2":{"105":1}}],["chbindcur",{"2":{"105":1}}],["cmdadb",{"2":{"262":1}}],["cmdargs",{"0":{"110":1},"2":{"94":4,"98":3,"114":2,"115":6,"116":3,"117":4,"119":4,"121":1,"127":10,"129":2,"130":7,"133":2,"134":3,"139":2}}],["cmdgetconfig",{"2":{"139":6}}],["cmdhide",{"2":{"133":5}}],["cmdfeed",{"2":{"129":6}}],["cmdcatch",{"2":{"134":6}}],["cmdcget",{"2":{"127":5}}],["cmdctrust",{"2":{"127":5}}],["cmdcunban",{"2":{"127":5}}],["cmdcbanlist",{"2":{"127":5}}],["cmdcban",{"2":{"127":5}}],["cmdmyperm",{"2":{"121":5}}],["cmdmap",{"2":{"98":2,"117":4,"119":2,"121":1,"127":5,"129":2,"130":2,"133":1,"134":1,"139":1}}],["cmddrawdecks2",{"2":{"119":5}}],["cmddrawdecks",{"2":{"119":5}}],["cmdseal",{"2":{"114":3,"117":8,"130":6}}],["cmdexecutedlasttime",{"2":{"108":1}}],["cmdexecutednum",{"2":{"108":1}}],["cmd",{"2":{"98":3,"259":3,"262":4,"292":1,"458":2,"480":2,"481":1,"482":1,"694":2}}],["clr|clear",{"2":{"664":1}}],["clr",{"2":{"588":1,"626":1,"640":2,"648":2,"660":1,"670":2,"672":1,"711":2}}],["client",{"0":{"469":1},"2":{"469":2,"470":1}}],["cli",{"2":{"302":2}}],["cleanargs",{"2":{"110":2}}],["class",{"2":{"94":1}}],["cloudsearch",{"2":{"135":2}}],["cloud",{"2":{"64":2}}],["clone",{"0":{"149":1},"2":{"12":2,"149":1}}],["cast",{"0":{"674":1},"1":{"675":1},"2":{"674":1,"758":2}}],["case",{"2":{"115":1,"116":1,"117":1,"121":5,"127":5,"129":5,"130":7,"134":1,"139":7}}],["call",{"2":{"584":1}}],["ca2d",{"2":{"497":1}}],["ca",{"2":{"497":1}}],["carrier",{"2":{"497":1}}],["cache",{"2":{"242":1,"430":1}}],["cache=0",{"2":{"135":2}}],["catch",{"2":{"130":1,"134":7}}],["catalogue",{"2":{"68":2}}],["caution",{"2":{"89":1,"90":1}}],["cqhttp",{"0":{"236":1,"250":1},"1":{"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1},"2":{"236":5,"239":2,"242":5,"512":1,"513":1,"687":1}}],["cq",{"0":{"268":1,"375":1},"2":{"55":1,"70":4,"73":3,"116":1,"135":2,"242":1,"268":1,"361":1}}],["cc",{"2":{"48":3,"73":1,"90":1}}],["c++",{"2":{"37":1,"41":1}}],["c",{"0":{"267":1},"1":{"268":1},"2":{"37":1,"41":1,"47":2,"66":1,"98":3,"115":3,"116":1,"117":1,"178":1,"245":1,"262":2,"420":1,"636":1,"637":1,"649":4}}],["copy",{"2":{"464":1}}],["coloros",{"0":{"451":1}}],["coolq",{"2":{"268":1}}],["core",{"2":{"192":1,"196":2,"224":1,"233":1,"274":1,"285":1,"457":2,"458":1,"516":1,"539":8,"541":3,"694":1,"695":1}}],["coffeescript",{"2":{"170":1}}],["couchdb",{"2":{"158":1}}],["code",{"0":{"244":1,"246":1,"247":1,"248":1},"2":{"149":1,"168":1,"570":2}}],["connect",{"2":{"259":2}}],["continue",{"2":{"142":1}}],["content",{"2":{"24":2,"68":2,"76":2,"363":2,"464":1,"562":2,"591":2,"593":4,"595":4,"624":6,"625":6,"628":10,"631":4,"632":4,"635":2,"637":6,"639":2,"640":6,"652":6,"653":2,"658":2,"659":10,"660":4,"665":6,"667":4,"669":2,"670":14,"672":8,"676":2,"678":2,"704":2,"706":1,"711":2}}],["configs",{"2":{"431":1}}],["config",{"2":{"139":6,"150":1,"152":2,"154":1,"156":1,"643":3}}],["configitem",{"2":{"94":3,"138":5}}],["console",{"2":{"121":1,"135":2,"158":3}}],["const",{"2":{"112":1,"115":1,"116":1,"117":2,"119":5,"121":2,"127":11,"129":7,"130":16,"131":1,"133":2,"134":5,"135":2,"136":3,"137":1,"139":3,"142":4}}],["compose",{"0":{"490":1,"491":1},"1":{"491":1,"492":1,"493":1,"494":1,"495":1},"2":{"489":1,"491":2,"492":2,"493":3,"494":1,"495":2,"498":1}}],["compile",{"2":{"479":1}}],["compare",{"2":{"72":2}}],["com",{"2":{"58":3,"61":1,"64":1,"94":1,"105":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"135":1,"136":1,"158":1,"159":1,"338":1,"442":1,"539":2,"577":1,"686":2}}],["commonjs",{"2":{"154":1}}],["command",{"2":{"48":1,"57":1,"110":1}}],["commas",{"2":{"37":1}}],["comments",{"2":{"37":1}}],["comment",{"2":{"37":1,"66":1,"67":1}}],["cocl",{"2":{"733":2}}],["coc|coc7",{"2":{"626":1,"648":1}}],["coc7th",{"2":{"619":1}}],["coc7",{"2":{"172":1,"572":1,"625":2,"681":2}}],["cocruleindex",{"2":{"106":1}}],["coc",{"0":{"101":1,"136":1,"367":1,"556":1,"616":1,"749":1},"1":{"368":1,"369":1,"370":1,"371":1,"557":1,"558":1,"559":1,"750":1,"751":1,"752":1,"753":1},"2":{"37":1,"39":2,"47":1,"94":4,"101":1,"112":1,"136":4,"146":1,"172":1,"178":2,"362":2,"367":1,"393":1,"395":1,"550":1,"569":2,"572":1,"581":1,"582":3,"583":1,"584":2,"616":1,"626":1,"631":1,"642":2,"646":2,"648":1,"717":1,"721":1,"733":1,"735":1,"739":1,"746":4,"747":1,"750":1}}],["操作角色卡",{"0":{"661":1},"1":{"662":1,"663":1,"664":1,"665":1,"666":1}}],["操作人物卡",{"0":{"585":1},"1":{"586":1,"587":1,"588":1,"589":1,"590":1,"591":1,"592":1,"593":1}}],["操作他人属性",{"0":{"555":1}}],["操作时请注意",{"2":{"505":1}}],["操作更新",{"2":{"444":1}}],["操作系统设计的开源操作系统",{"2":{"286":1}}],["操作系统",{"2":{"262":1}}],["操作",{"2":{"12":2,"414":1}}],["此规则无困难成功或极难成功",{"2":{"619":1}}],["此功能同样支持通过附加",{"2":{"602":1}}],["此功能暂无实际作用",{"2":{"339":1}}],["此指令只能由具有",{"2":{"622":1,"623":1}}],["此指令支持附加",{"2":{"611":1}}],["此指令用来操作骰子程序模拟的人物卡",{"2":{"585":1}}],["此指令需要",{"2":{"543":1}}],["此源文件",{"2":{"583":1}}],["此种部署方式可能不能正常发送本地图片",{"2":{"496":1}}],["此文件将工作目录下",{"2":{"491":1}}],["此文件将宿主机",{"2":{"491":1}}],["此文件参考了通过",{"2":{"491":1}}],["此项设定服务器占用的内存",{"2":{"480":1}}],["此为一般情况",{"2":{"478":1}}],["此为教程中便于展示",{"2":{"173":1}}],["此后你可能会在通知栏看到",{"2":{"454":1}}],["此类必须判定的回复词",{"2":{"368":1}}],["此地址一般用于指向本机",{"2":{"278":1}}],["此方式存在一定难度",{"2":{"254":1,"261":1}}],["此方案已经接近不可用",{"2":{"236":1}}],["此协议登录手机可同时在线",{"2":{"241":1}}],["此玩家就无法再摸鱼了",{"2":{"145":1}}],["此定时任务也会出现在",{"2":{"141":1}}],["此时角色",{"2":{"678":1}}],["此时木落的侦查是",{"2":{"639":1}}],["此时木落的侦查技能点是",{"2":{"630":1}}],["此时输入",{"2":{"482":1}}],["此时输入使用",{"2":{"482":1}}],["此时不会发送",{"2":{"334":1}}],["此时默认的",{"2":{"278":1}}],["此时你已经成功开启端口了",{"2":{"259":1}}],["此时你还需要将",{"2":{"258":1}}],["此时你会发现你的超级用户模块已经激活",{"2":{"256":1}}],["此时你会发现你的超级用户权限那里是灰的",{"2":{"256":1}}],["此时你应当自动跳转到了",{"2":{"11":1}}],["此时面具会索取超级用户权限",{"2":{"256":1}}],["此时面具就安装到你的模拟器上了",{"2":{"256":1}}],["此时",{"2":{"166":1,"174":1,"497":1,"498":1,"708":2}}],["此时建议专门开一个一两个字即可触发的自定义回复",{"2":{"70":1}}],["此外还有",{"2":{"250":1}}],["此外有生命值",{"2":{"144":1}}],["此外",{"2":{"57":1,"73":1,"254":1,"505":1,"603":1,"616":1,"700":1}}],["此处只展示相关控制指令",{"2":{"650":1}}],["此处无法一一列出",{"2":{"646":1}}],["此处会弹出一个窗口",{"2":{"531":1}}],["此处不介绍",{"2":{"419":1,"420":1}}],["此处不予重复",{"2":{"264":1}}],["此处内容较为复杂",{"2":{"371":1}}],["此处应使用统一",{"2":{"333":1}}],["此处",{"2":{"199":1,"430":1,"539":1}}],["此处为海豹不再进行维护的文档索引",{"2":{"184":1}}],["此处替换为对应的",{"2":{"64":1}}],["此处填写你的更新链接",{"2":{"58":1,"61":1}}],["此处可以多出一个逗号",{"2":{"39":1,"40":3}}],["此处很可能会出现和上游分支有冲突的问题",{"2":{"14":1}}],["此处以手册仓库",{"2":{"11":1}}],["按需填写名字",{"2":{"531":1}}],["按需阅读文档",{"2":{"22":1,"29":1,"65":1,"69":1,"88":1,"91":1,"157":1,"171":1,"322":1,"351":1,"360":1,"382":1,"391":1,"401":1,"411":1,"584":1,"650":1,"657":1,"700":1,"725":1,"745":1,"761":1}}],["按输入的",{"2":{"320":1}}],["按默认设置",{"2":{"279":1}}],["按照主持人的要求",{"2":{"748":1}}],["按照习惯",{"2":{"720":1}}],["按照下图填写",{"2":{"686":1}}],["按照下面的格式进行填写",{"2":{"260":1}}],["按照自己的配置文件选择",{"2":{"524":1}}],["按照自己的",{"2":{"518":1}}],["按照需求更换数字",{"2":{"480":1}}],["按照要求填写应用名字",{"2":{"469":1,"530":1}}],["按照要求填写应用名字并确认创建",{"2":{"464":1,"473":1}}],["按照",{"2":{"242":1,"493":1}}],["按照提示依次键入",{"2":{"239":1}}],["按照模板填写可方便开发组快速定位问题",{"2":{"7":1}}],["按规则扣除生命值",{"2":{"147":1}}],["按如下模式调整你的自定义文案项",{"2":{"27":1}}],["按钮才可被海豹核心读取",{"2":{"442":1}}],["按钮去掉对应结果",{"2":{"422":1}}],["按钮禁用它来代替删除",{"2":{"414":1}}],["按钮后会取获取最新的插件数据",{"2":{"406":1}}],["按钮后会取获取最新的牌堆",{"2":{"388":1}}],["按钮来删除不想要的插件",{"2":{"405":1}}],["按钮来删掉对应的牌堆",{"2":{"385":1}}],["按钮进行刷新",{"2":{"385":1}}],["按钮进入页面复制粘贴",{"2":{"365":1}}],["按钮以生效变更",{"2":{"356":1}}],["按钮可以导入多个词库",{"2":{"356":1}}],["按钮",{"2":{"11":2,"149":2,"316":1,"325":1,"363":2,"385":1,"396":1,"397":1,"418":1,"442":1,"577":1,"686":1}}],["a10m10k8",{"2":{"711":1}}],["ay",{"2":{"711":2}}],["a属性表达式",{"2":{"606":1}}],["agreement",{"2":{"480":1}}],["arm",{"2":{"538":1,"722":1}}],["arm64",{"0":{"576":1},"2":{"538":5,"539":2}}],["are",{"2":{"480":1}}],["args",{"2":{"110":1,"130":1}}],["a|b",{"2":{"420":1}}],["aa",{"2":{"420":1}}],["aa|bb",{"2":{"420":1}}],["aaa",{"2":{"183":2}}],["ac8",{"2":{"733":1}}],["accept",{"2":{"684":1}}],["accesstoken",{"2":{"493":1}}],["access",{"2":{"239":1}}],["ac",{"2":{"583":3}}],["achieve",{"2":{"262":1}}],["acrobat",{"2":{"158":1}}],["active",{"2":{"106":1}}],["ai",{"2":{"135":3,"207":4}}],["await",{"2":{"135":3,"158":1}}],["alt",{"2":{"252":1}}],["allowdelegate",{"2":{"134":1,"139":1}}],["alias",{"0":{"374":1,"709":1},"2":{"61":1,"709":6}}],["aliases",{"2":{"61":3}}],["aka",{"2":{"480":1}}],["akadd",{"2":{"130":2,"131":1}}],["akget",{"2":{"130":2}}],["aklist",{"2":{"130":3}}],["akdel",{"2":{"130":2}}],["aknew",{"2":{"130":2}}],["ak",{"2":{"130":11}}],["anchor",{"2":{"130":4,"131":1}}],["andriod",{"2":{"261":1}}],["android",{"0":{"695":1},"2":{"93":1,"241":3,"254":2,"256":2,"262":3,"512":1,"538":2}}],["and",{"2":{"37":1}}],["abc",{"2":{"114":2,"117":2}}],["amber",{"2":{"646":1}}],["amd64",{"0":{"576":1},"2":{"538":1,"539":1}}],["amd",{"2":{"538":1}}],["amibementioned",{"2":{"110":1}}],["amp",{"0":{"560":1,"709":2,"754":1},"1":{"561":1,"562":1,"563":1,"564":1,"565":1,"566":1,"567":1,"755":1,"756":1,"757":1,"758":1,"759":1,"760":1},"2":{"68":1,"84":2,"146":1,"393":1,"395":1,"532":2,"550":1,"581":1,"583":1,"591":1,"632":1,"642":1,"646":1,"648":1,"657":5,"709":4,"717":1,"721":1,"746":3,"747":1}}],["adb",{"2":{"259":5,"262":10}}],["adobe",{"2":{"158":1}}],["administrator",{"2":{"466":1}}],["admin",{"0":{"488":1},"2":{"121":1}}],["adaptersetup",{"2":{"108":1}}],["address=127",{"2":{"695":1}}],["address=0",{"2":{"694":1}}],["add",{"2":{"570":1,"622":1,"623":1,"649":2,"688":1}}],["addtrust",{"2":{"94":1,"124":1,"127":1}}],["addban",{"2":{"94":1,"123":1,"127":1}}],["auto",{"2":{"315":3}}],["autoqsignformac",{"2":{"239":1}}],["autosetnametemplate",{"2":{"107":1}}],["auth",{"2":{"187":1,"201":1}}],["authorization",{"2":{"466":1}}],["authors",{"2":{"48":2,"90":2}}],["author",{"2":{"48":6,"66":1,"67":1,"90":2,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"139":1,"158":1,"159":2,"165":3,"166":1,"765":1}}],["apk",{"2":{"258":2,"263":1,"436":1,"441":1,"443":1,"444":1,"538":1}}],["appsettings",{"2":{"493":2}}],["app",{"0":{"531":1},"2":{"491":4,"530":2,"531":2,"532":1,"533":1}}],["apple",{"2":{"538":1,"539":3}}],["application",{"2":{"464":1}}],["applyplayergroupcardbytemplate",{"2":{"94":1,"103":1}}],["appname",{"2":{"172":1}}],["apache",{"2":{"117":1,"129":1,"133":1,"134":1,"136":1,"158":2,"159":2}}],["api",{"0":{"63":1,"94":1,"141":1,"155":1},"1":{"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1},"2":{"62":1,"64":5,"94":8,"100":1,"101":1,"128":1,"132":1,"133":1,"135":8,"137":1,"138":1,"140":1,"141":2,"152":1,"155":2,"157":1,"158":1,"161":2,"167":4,"223":1,"239":1,"254":1,"261":1,"262":2,"285":2,"516":2,"519":1,"530":1}}],["attribute",{"2":{"583":1}}],["attrs",{"2":{"460":3}}],["atinfo",{"2":{"110":1}}],["atob",{"2":{"94":1,"158":1}}],["at",{"0":{"688":1},"2":{"94":2,"110":1,"343":1,"606":1,"624":2,"639":1,"649":1,"660":1}}],["axxxxxxxb",{"0":{"85":1}}],["asm",{"2":{"570":1}}],["async",{"2":{"135":1,"158":1}}],["assets",{"2":{"56":3}}],["ascii",{"2":{"34":2}}],["a",{"2":{"11":1,"34":1,"47":2,"66":3,"68":2,"72":3,"73":2,"85":1,"98":4,"115":4,"116":2,"117":2,"256":1,"460":3,"497":2,"606":2,"622":4,"635":1,"637":1,"649":5,"709":2}}],["为啥好像反应慢一拍",{"0":{"689":1}}],["为啥海豹不理我",{"0":{"681":1}}],["为设置法术位",{"2":{"672":1}}],["为指定属性设定",{"2":{"670":1}}],["为指定单位设定先攻值",{"2":{"660":1}}],["为指定角色设定先攻值",{"2":{"659":1}}],["为指令信息",{"2":{"117":1}}],["为机器人",{"2":{"649":1}}],["为大失败",{"2":{"619":1}}],["为大成功",{"2":{"619":2}}],["为人工审核",{"2":{"504":1}}],["为宿主机在",{"2":{"497":1}}],["为宿主机也分配了子网中的",{"2":{"497":1}}],["为分组添加别名",{"0":{"397":1}}],["为分隔符",{"2":{"374":1}}],["为私聊发指令者的回复语的前缀",{"2":{"373":1}}],["为暗骰时发送到群内的回复语",{"2":{"373":1}}],["为每一单条中间的分隔符",{"2":{"371":1}}],["为海豹核心运行的端口",{"2":{"347":1}}],["为处理某些平台通知频繁引起的问题",{"2":{"335":1}}],["为提供此功能做出贡献",{"2":{"206":1}}],["为修复此",{"2":{"206":1}}],["为你解决问题",{"2":{"189":1,"217":1}}],["为什么要有这个指令",{"2":{"708":1}}],["为什么没有结果",{"2":{"601":1}}],["为什么没有默认的敏感词库",{"2":{"356":1}}],["为什么登录的是我自己的账号",{"2":{"514":1}}],["为什么我的骰娘不发通知了",{"2":{"335":1}}],["为什么我这么做会让骰子出现问题",{"2":{"189":1,"217":1}}],["为什么我在",{"0":{"187":1,"201":1},"2":{"224":1,"225":1}}],["为什么不能拍屏",{"0":{"187":1,"201":1},"2":{"224":1,"225":1}}],["为什么这个页面会诞生",{"2":{"185":1}}],["为整个表达式的值",{"2":{"174":1}}],["为有一定经验的开发者准备的",{"2":{"162":1}}],["为此定时任务提供可读性更高的描述",{"2":{"141":1}}],["为此定时任务提供唯一索引",{"2":{"141":1}}],["为配置项的类型",{"2":{"138":1}}],["为技能点数",{"2":{"136":1}}],["为出目",{"2":{"136":1}}],["为原生态的指令内容",{"2":{"117":1,"135":1}}],["为何要加一个",{"2":{"110":1}}],["为不放回抽取",{"2":{"118":1}}],["为不放回",{"2":{"94":1}}],["为放回抽取",{"2":{"118":1}}],["为放回",{"2":{"94":1}}],["为需要抽取的牌堆名",{"2":{"94":1}}],["为失败",{"2":{"94":1}}],["为成功",{"2":{"94":1}}],["为信息的",{"2":{"94":2}}],["为了避免意外触发",{"2":{"720":1}}],["为了尊重骰主的劳动成果",{"2":{"718":1}}],["为了使用这个指令",{"2":{"641":1}}],["为了使海豹在后台运行",{"2":{"438":1}}],["为了简单",{"2":{"624":1}}],["为了确保你不会获取到过时内容",{"2":{"583":1}}],["为了确保海豹核心不会在使用其他应用程序或手机熄屏时掉线",{"2":{"446":1}}],["为了允许海豹容器正常访问",{"2":{"493":1}}],["为了海豹持续运行",{"2":{"451":1}}],["为了应付流氓软件",{"2":{"446":1}}],["为了方便插件作者编写插件",{"2":{"407":1}}],["为了方便在本组中查找到对应的条目",{"2":{"364":1}}],["为了给有能力的用户提供更大的自定义空间",{"2":{"402":1}}],["为了便于骰子读取增加相应的说明内容",{"2":{"383":1}}],["为了稳定性还是不要更改比较好",{"2":{"346":1}}],["为了更方便地对数据进行存储",{"2":{"301":1}}],["为了帮助回答者分析定位问题",{"2":{"224":1}}],["为了在很多地方支持实现一些逻辑",{"2":{"171":1}}],["为了让插件作者无需反复说明",{"2":{"167":1}}],["为了防止直接使用",{"2":{"84":1}}],["为了实现骰子随机出招的效果",{"2":{"84":1}}],["为一个整体",{"2":{"78":1}}],["为一个单独的",{"2":{"36":1}}],["为",{"2":{"64":2,"94":2,"96":2,"253":1,"307":1,"482":2,"515":3,"598":1,"622":1}}],["为后缀扩展名",{"2":{"48":3}}],["为扩展名的牌堆文件",{"2":{"37":1}}],["为例",{"2":{"11":1,"375":1,"721":1,"722":1}}],["为还不清楚怎么在",{"2":{"9":1}}],["对技能进行一次成长",{"2":{"753":1}}],["对方id",{"2":{"706":1}}],["对生命值的特殊支持",{"2":{"665":1}}],["对先攻点数设置如下",{"2":{"659":6}}],["对指定的技能分别进行一次成长检定",{"2":{"614":1}}],["对指定分组的搜索需要有意义的分组名",{"2":{"396":1}}],["对手技能",{"2":{"746":1}}],["对手的属性表达式",{"2":{"605":1}}],["对手",{"2":{"604":1,"605":1,"746":1}}],["对抗检定也是近战的标准处理方式",{"2":{"603":1}}],["对抗检定",{"0":{"603":1},"1":{"604":1,"605":1,"606":1},"2":{"746":1}}],["对抗暗夜的恐怖",{"2":{"584":1}}],["对抗等",{"2":{"499":1}}],["对功能有新想法",{"2":{"580":1}}],["对基本计算机知识有所了解之后",{"2":{"537":1}}],["对内容中的一些名词完全不理解",{"2":{"537":1}}],["对比弹窗的右上角可以控制显示的样式",{"2":{"388":1,"406":1}}],["对文案的修改建议及时保存",{"2":{"363":1}}],["对速率限制的所有更改",{"2":{"346":1}}],["对接引导",{"0":{"513":1}}],["对接基于",{"2":{"341":1,"513":1}}],["对接海豹",{"0":{"265":1}}],["对回答者表示感谢是最基本的礼貌",{"2":{"229":1}}],["对回答问题者表现出友善和配合的态度",{"0":{"191":1,"232":1}}],["对你来说都不再有任何困难",{"2":{"209":1}}],["对海豹提供的",{"2":{"161":1}}],["对扩展的功能的描述",{"2":{"159":1}}],["对这个指令启用使用代骰功能",{"2":{"134":1}}],["对其赋值",{"2":{"83":1}}],["对于这样的扩展规则",{"2":{"734":1}}],["对于这里",{"2":{"641":1}}],["对于海豹日志染色器",{"2":{"731":1}}],["对于海豹核心的日志界面中",{"0":{"198":1}}],["对于已经解散",{"2":{"730":1}}],["对于绝大多数情况",{"2":{"708":1}}],["对于绝大多数用户来说",{"2":{"538":1}}],["对于大部分有公网",{"2":{"684":1}}],["对于大多数情况",{"2":{"459":1}}],["对于与",{"2":{"649":1}}],["对于内置的帮助文档",{"2":{"642":1}}],["对于内存不足的情况",{"2":{"197":1}}],["对于百分骰的一种补偿骰法",{"2":{"631":1}}],["对于群组",{"2":{"623":1}}],["对于每个群组",{"2":{"727":1}}],["对于每个用户",{"2":{"623":1}}],["对于每一个自定义回复文件",{"2":{"414":1}}],["对于对抗检定",{"2":{"613":1}}],["对于安卓端用户请看安卓豹更新",{"2":{"542":1}}],["对于需要使用更加灵活的方案的用户",{"2":{"513":1}}],["对于有能力的骰主",{"2":{"513":1}}],["对于以下未提及的系统",{"2":{"447":1}}],["对于以下内容",{"2":{"146":1}}],["对于了解正则表达式的用户",{"2":{"420":1}}],["对于资料查询",{"2":{"394":1}}],["对于想要在自定义文案或自定义回复中引用牌堆的骰主",{"2":{"378":1,"386":1,"424":1,"654":1}}],["对于一些邮箱",{"2":{"337":1}}],["对于一个合适的指令",{"2":{"147":1}}],["对于在看这个界面的你来说",{"2":{"252":1}}],["对于如何提",{"2":{"193":1,"202":1}}],["对于屏幕前或许没有编程经验的你",{"2":{"189":1,"217":1}}],["对于",{"0":{"252":1},"2":{"147":1,"347":1,"363":1,"368":1,"371":1,"514":1,"689":1,"732":1}}],["对于正则表达式匹配的完整内容将被存储于变量",{"2":{"73":1}}],["对于正则表达式中的捕获组",{"2":{"73":1}}],["对于提供了云端内容的牌堆",{"2":{"62":1}}],["对词条的简述",{"2":{"68":1}}],["对应的数据目录路径是",{"2":{"539":1}}],["对应的回复词",{"2":{"368":1}}],["对应的群组和邀请人会按",{"2":{"328":1}}],["对应的选项名需要完全一致",{"2":{"61":1}}],["对应原代码仓库也已删除",{"2":{"237":1}}],["对应",{"2":{"110":1}}],["对应想要修改的仓库",{"2":{"10":1,"11":1}}],["对象进行修改后",{"2":{"138":1}}],["对象的类型定义如下",{"2":{"138":1}}],["对象转换为",{"2":{"128":1}}],["对象和数组的最后一个键值对和元素后带有逗号",{"2":{"37":1}}],["对象",{"0":{"40":1,"46":1},"2":{"36":1,"38":1,"94":3,"104":1,"105":3,"109":1,"125":1,"126":1,"128":1,"138":2}}],["对目标仓库进行",{"0":{"11":1}}],["等功能",{"2":{"717":1}}],["等功能无法正常工作",{"2":{"531":1}}],["等额外指令",{"2":{"700":1}}],["等指令是不会回应的",{"2":{"681":1}}],["等指令以及",{"2":{"172":1}}],["等价",{"2":{"594":1}}],["等价于",{"2":{"94":1}}],["等等各种写法",{"2":{"548":1}}],["等方法",{"2":{"514":1}}],["等方案的用户及时更新或关闭位于",{"2":{"513":1}}],["等方案的用户及时更新或关闭此开关",{"2":{"341":1}}],["等命令查看",{"2":{"497":1}}],["等一系列的文件并创建文件夹",{"2":{"480":1}}],["等回复语",{"2":{"371":1}}],["等对应的回复词",{"2":{"370":1}}],["等开头的消息",{"2":{"354":1}}],["等基于",{"2":{"341":1,"512":1,"513":1}}],["等程序时",{"2":{"309":1}}],["等不同的等级",{"2":{"299":1}}],["等插件",{"2":{"295":1}}],["等符号",{"2":{"290":1}}],["等符号会作为海豹中指令的前缀",{"2":{"73":1}}],["等其他程序",{"2":{"250":1}}],["等任何情况",{"2":{"172":1}}],["等与",{"2":{"170":1}}],["等与事件循环相关的函数",{"2":{"158":1}}],["等工具对海豹核心的内存使用量和占用比例进行监测",{"2":{"199":1}}],["等工具编写时",{"2":{"161":1}}],["等工具的使用知识",{"2":{"148":1,"162":1}}],["等异步编程友好的特性",{"2":{"158":1}}],["等项目描述信息",{"2":{"150":1}}],["等效于",{"2":{"117":1}}],["等平台见到",{"2":{"109":1}}],["等于劣势骰",{"2":{"632":1}}],["等于",{"2":{"78":5}}],["等",{"2":{"73":1,"92":1,"93":1,"158":1,"159":1,"171":1,"186":1,"187":1,"196":1,"200":1,"201":1,"440":1,"538":1,"543":1,"569":1,"684":1}}],["等词",{"2":{"68":1}}],["等号和值必须在同一行",{"2":{"33":1}}],["等待状态变为",{"2":{"514":1}}],["等待服务器保存并关闭",{"2":{"480":1}}],["等待一会",{"2":{"263":1}}],["等待安装完成即可",{"2":{"257":1}}],["等待",{"2":{"11":1,"504":1}}],["等待开发组进行",{"2":{"13":1}}],["等待开发组",{"2":{"10":1}}],["等多项功能",{"2":{"1":1}}],["请再额外关闭系统防火墙或设置规则放行",{"2":{"686":2}}],["请转到",{"2":{"650":1}}],["请多次使用成长指令",{"2":{"614":1}}],["请以海豹核心最新帮助信息为准",{"2":{"586":1}}],["请稳妥地停止进程后进行手动替换更新",{"2":{"543":1}}],["请骰主进行更新时确保自己可以接触海豹后台",{"2":{"542":1}}],["请运行",{"2":{"541":1}}],["请下载",{"2":{"539":1}}],["请按照",{"2":{"517":1,"523":1,"526":1}}],["请按需安装对应",{"2":{"478":1}}],["请根据自己的情况选择适合的方式",{"2":{"513":1}}],["请根据实际情况自行调整挂载的目录",{"2":{"491":1}}],["请根据实际情况自行调整端口映射",{"2":{"491":1}}],["请记得在资料一栏中进行开发者资质状态审核",{"2":{"507":1}}],["请填写对应云服务商在控制台提供的",{"2":{"501":1}}],["请首先阅读",{"2":{"490":1}}],["请至少完成",{"2":{"489":1}}],["请把该项修改为",{"2":{"480":1}}],["请把8080替换为你的",{"2":{"242":1}}],["请尝试重新刷新",{"2":{"474":1}}],["请尝试在应用信息界面中开启",{"2":{"448":1}}],["请始终允许海豹核心发送通知",{"2":{"454":1}}],["请始终开启",{"2":{"448":1}}],["请参阅相应的使用文档以了解骰主设定的自定义回复",{"2":{"724":1}}],["请参阅",{"2":{"651":1,"656":1}}],["请参考下面的段落",{"2":{"747":1}}],["请参考以下内容",{"2":{"583":1}}],["请参考以下内容自行配置保活",{"2":{"447":1}}],["请参考",{"2":{"520":1,"716":1}}],["请参见",{"2":{"2":1,"494":1}}],["请查阅你系统的",{"2":{"541":1}}],["请查阅模板项目所使用的构建工具",{"2":{"154":1}}],["请查看安卓端登录",{"2":{"539":1}}],["请查看安卓端文件路径一节",{"2":{"432":1}}],["请查看配置安卓端保活对应系统修改系统设置",{"2":{"438":1}}],["请查看数据库检查和修复一节",{"2":{"433":1}}],["请不要添加",{"2":{"531":1}}],["请不要询问",{"2":{"514":1}}],["请不要将海豹从任务列表中划除",{"2":{"451":1}}],["请不要开启",{"2":{"451":1}}],["请不要在新版本导入旧版本的文案",{"2":{"365":1}}],["请不要被搜索引擎等误导进各种下载站",{"2":{"93":1}}],["请慎重决定是否开启",{"2":{"335":1}}],["请先检查",{"2":{"295":1}}],["请先阅读它",{"2":{"143":1}}],["请先阅读这一节",{"2":{"69":1}}],["请于服务器管理面板放行你要用的端口",{"2":{"686":1}}],["请于",{"2":{"257":1,"258":1}}],["请自行根据场景",{"2":{"605":1}}],["请自行理解",{"2":{"583":1}}],["请自行修改",{"2":{"504":1}}],["请自行考虑是否使用这样的牌堆",{"2":{"389":1}}],["请自行配置保活策略",{"2":{"264":1}}],["请自行斟酌",{"2":{"254":1}}],["请自行了解或放弃使用",{"2":{"162":1}}],["请自行了解或转至",{"2":{"148":1}}],["请耐心等待",{"2":{"254":1,"514":1}}],["请仔细分辨",{"2":{"254":1}}],["请等待一段时间继续",{"2":{"248":1}}],["请重新配置",{"2":{"245":1}}],["请选择对应版本",{"2":{"241":1}}],["请直接依次按下",{"2":{"239":1}}],["请做好预期准备",{"2":{"237":1}}],["请做好截图保护",{"2":{"187":1,"201":1}}],["请确认",{"2":{"539":1}}],["请确认你的硬盘状态是否还好",{"2":{"696":1}}],["请确认你的操作系统并选择对应版本的安装包",{"2":{"538":1}}],["请确认你是否下载的是正确版本的海豹",{"2":{"539":1}}],["请确认是从你的仓库的新分支",{"2":{"13":1}}],["请确保你有良好的计算机使用能力",{"2":{"254":1}}],["请确保你发送的日志是问题发生那一刻前后一段时间内的日志",{"2":{"225":1}}],["请看迁移一节",{"2":{"434":1}}],["请看",{"2":{"195":3,"203":3,"213":3,"225":1,"266":3}}],["请在",{"2":{"453":1}}],["请在列表中选择",{"2":{"447":1}}],["请在模拟器设置中打开",{"2":{"256":1}}],["请在没有必须要展示的情况下隐藏好截图内可能存在的敏感信息",{"2":{"187":1,"201":1}}],["请在阅读过新平台的部署方法后阅读",{"2":{"17":1}}],["请检查海豹是否为最新版本",{"2":{"172":1}}],["请使用该页面展示的路径",{"2":{"428":1}}],["请使用统一",{"2":{"332":1}}],["请使用版本为",{"2":{"265":1}}],["请使用屏幕截图",{"2":{"224":2,"225":2}}],["请使用",{"2":{"172":1,"341":1,"513":1,"538":1,"758":2,"760":1}}],["请小心溢出问题",{"2":{"158":1}}],["请善用沙盒群",{"2":{"504":1}}],["请善用搜索",{"2":{"93":1,"745":1}}],["请善用侧边栏和搜索",{"2":{"22":1,"29":1,"65":1,"69":1,"88":1,"91":1,"157":1,"171":1,"322":1,"351":1,"360":1,"382":1,"391":1,"401":1,"411":1,"584":1,"650":1,"657":1,"700":1,"725":1,"761":1}}],["请加好括号",{"2":{"84":1}}],["请用反引号",{"2":{"77":1}}],["请对它们进行转义",{"2":{"73":1}}],["请注意查阅它的使用说明",{"2":{"720":1}}],["请注意设置中的正向连接和反向连接请",{"2":{"521":1}}],["请注意",{"2":{"314":1,"482":1}}],["请注意在左侧的",{"2":{"69":1}}],["请注意辨析",{"2":{"69":1}}],["请从第二行开始编写词条",{"2":{"68":1}}],["请永远使用",{"2":{"66":1}}],["请务必在",{"2":{"504":1}}],["请务必提供日志截图",{"2":{"225":1}}],["请务必注意这一点",{"2":{"46":1}}],["请务必仔细阅读使用须知",{"2":{"15":1}}],["请你按自己的需求选择其他的验证方式",{"2":{"334":1}}],["请你首先阅读",{"2":{"21":1}}],["请你提出",{"2":{"18":1}}],["请你直接从导航栏查找对应分类",{"2":{"16":1}}],["请阅读这一章下面的各节",{"2":{"19":1}}],["请阅读",{"2":{"17":1,"19":1,"20":1}}],["请立即停用海豹骰",{"2":{"15":1}}],["请求",{"0":{"13":1},"2":{"10":1}}],["在主持人要求时",{"2":{"752":1}}],["在主持人要求你使用骰子时才动作",{"2":{"747":1}}],["在插件仓库中获取相应插件",{"2":{"744":1}}],["在插件的右侧有",{"2":{"405":1}}],["在病毒感染了绝大多数人类使得他们进化为超能力者的时代",{"2":{"741":1}}],["在模板中使用变量以自动更新",{"2":{"735":1}}],["在模块一栏中启用",{"2":{"258":1}}],["在机器人回复你之前",{"2":{"708":1}}],["在频道私聊中的以下问题",{"2":{"708":1}}],["在初次启动海豹时",{"2":{"695":1}}],["在初次启动海豹核心前",{"2":{"453":1}}],["在另一个目录再解压一份海豹核心",{"2":{"693":1}}],["在服务器上登录时说",{"0":{"685":1},"1":{"686":1,"687":1}}],["在服务器日志中出现",{"2":{"481":1}}],["在基本设置中设置",{"2":{"684":1}}],["在牌组较多时造成刷屏",{"2":{"652":1}}],["在牌堆",{"2":{"93":1}}],["在牌堆中",{"2":{"59":1}}],["在其他平台",{"2":{"718":1}}],["在其他平台上",{"2":{"642":1}}],["在其他系统上",{"2":{"457":1}}],["在发送指令的群聊中",{"2":{"638":1}}],["在计算过程中",{"2":{"635":1,"636":1}}],["在计算机领域",{"2":{"306":1}}],["在计算机领域中",{"2":{"299":1}}],["在计算机技术领域内",{"2":{"215":1}}],["在第二轮中",{"2":{"635":1}}],["在骰点中使用属性值",{"0":{"630":1}}],["在以上的例子中",{"2":{"652":1}}],["在以上例子中",{"2":{"57":1}}],["在以下示例中略去",{"2":{"624":1}}],["在进行理智检定时使用指定数量的奖励骰或惩罚骰",{"2":{"610":1}}],["在进行任何迁移时",{"2":{"573":1}}],["在较短的时间内失去过多理智值",{"2":{"607":1}}],["在较新的",{"2":{"292":1}}],["在令人不安或恐怖的情景中",{"2":{"607":1}}],["在后面附加奖励骰与惩罚骰",{"2":{"603":1}}],["在前面附加难度等级",{"2":{"603":1}}],["在克苏鲁的呼唤中",{"2":{"585":1}}],["在被人遗忘的奇异书卷中",{"2":{"584":1}}],["在玩家中广泛使用的简称",{"2":{"582":1}}],["在线试用",{"2":{"578":1}}],["在设置中勾选",{"2":{"577":1}}],["在迁入平台准备一份全新的海豹核心",{"2":{"575":1}}],["在不同平台间迁移时",{"2":{"573":1}}],["在来开团的路上被巨龙叼走了",{"2":{"552":1}}],["在完成上面的步骤后",{"2":{"540":1}}],["在挂载目录时请注意",{"2":{"539":1}}],["在浏览器中输入",{"2":{"539":2}}],["在任意群聊产生的数据修改都会自动同步到其他绑定的群聊",{"2":{"748":1}}],["在任意一个接口成功返回数据后即停止",{"2":{"64":1}}],["在任务栏中找到海豹图标",{"2":{"539":1}}],["在侧边栏点击",{"2":{"531":1,"532":1}}],["在开发者资质状态通过后",{"2":{"507":1}}],["在开源项目网站如",{"2":{"279":1}}],["在没有添加任何其他内容前提下",{"2":{"504":1}}],["在本地文件",{"2":{"583":1}}],["在本地电脑运行海豹",{"2":{"501":1}}],["在本节中的一些部分",{"2":{"314":1}}],["在本节中",{"2":{"143":1}}],["在页面中你可以看到这样的信息",{"2":{"501":1}}],["在页面的上半部分",{"2":{"413":1}}],["在填写",{"2":{"494":1}}],["在日志中即可看到",{"2":{"493":1}}],["在日志中也会显示",{"2":{"158":1}}],["在工作目录下使用以下命令启动容器",{"2":{"492":1}}],["在工作目录下创建",{"2":{"491":1}}],["在容器内以非",{"2":{"491":1}}],["在备份文件中找到最新的一份",{"2":{"459":1}}],["在损坏时如何修复",{"2":{"456":1}}],["在桌面长按海豹核心图标",{"2":{"447":1}}],["在授予海豹核心权限或允许一些行为时",{"2":{"447":1}}],["在安装后或首次启动时",{"2":{"447":1}}],["在安卓端海豹上",{"2":{"442":1}}],["在继续之前",{"2":{"446":1}}],["在引用图片时",{"2":{"428":1}}],["在群聊中默认删除群快捷指令",{"2":{"709":1}}],["在群聊中默认定义群快捷指令",{"2":{"709":1}}],["在群聊模式下",{"2":{"427":1}}],["在群内收集群友给出的安价选项",{"2":{"130":1}}],["在指定牌组抽指定数量的牌",{"2":{"653":1}}],["在指定的群中所有人均视为有",{"2":{"332":1}}],["在指令测试中产生的角色卡等数据都会被保留",{"2":{"427":1}}],["在文本长度匹配中",{"2":{"421":1}}],["在文案列表的上方都有着对应的",{"2":{"364":1}}],["在文案中通常会有结果变量",{"2":{"24":1}}],["在内容中填写要匹配的内容",{"2":{"420":1}}],["在回复项的左上角是该项的匹配模式",{"2":{"419":1}}],["在回复项的左上角可以控制该项的启用与否",{"2":{"418":1}}],["在回复文本中",{"2":{"75":1}}],["在自定义回复页的左下角有一个",{"2":{"418":1}}],["在自定义文案等地方",{"2":{"172":1}}],["在判定一个自定义回复是否能执行时",{"2":{"417":1}}],["在当前文件信息的下面",{"2":{"417":1}}],["在当前文件的右侧有几个按钮",{"2":{"415":1}}],["在编写过程中",{"2":{"414":1}}],["在同意许可协议后",{"2":{"413":1}}],["在同一个if内直接赋值",{"2":{"84":1}}],["在哪编写自定义回复",{"0":{"413":1},"1":{"414":1,"415":1,"416":1,"417":1}}],["在代码框中编写代码",{"2":{"407":1}}],["在对抗检定这一节中",{"2":{"603":1}}],["在对抗检定中应用调整",{"2":{"603":1}}],["在对应的区域填入",{"2":{"533":1}}],["在对插件进行调整后",{"2":{"405":1}}],["在对你的",{"2":{"138":1}}],["在管理界面中有多个标签页",{"2":{"404":1}}],["在管理中",{"2":{"263":1}}],["在重载期间",{"2":{"395":1}}],["在加载某些牌堆之后",{"2":{"387":1}}],["在每个群聊",{"2":{"641":1}}],["在每个图片右侧提供三个按钮",{"2":{"428":1}}],["在每一个你需要指定端口的海豹核心目录下创建一个",{"2":{"694":1}}],["在每一个插件名前都有一个开关",{"2":{"405":1}}],["在每一个分类中",{"2":{"362":1}}],["在每次自动备份完成后将执行一次自动清理",{"2":{"320":1}}],["在旧版本中由于",{"2":{"341":1,"513":1}}],["在更改任何设置后",{"2":{"315":1}}],["在类",{"2":{"302":1}}],["在程序运行发生故障或不符合预期的行为时",{"2":{"299":1}}],["在如今",{"2":{"292":1}}],["在上文的例子中为",{"2":{"494":1}}],["在上面的",{"2":{"386":1}}],["在上面的示例中",{"2":{"165":1}}],["在上图中已经有一个名为",{"2":{"385":1}}],["在上个世代常用",{"2":{"292":1}}],["在配置海豹时",{"2":{"498":1}}],["在配置分离部署的",{"2":{"278":1}}],["在配置后可以对接",{"2":{"251":1}}],["在目前主流使用的",{"2":{"278":1}}],["在分离部署",{"2":{"278":1}}],["在运行新海豹核心时",{"2":{"576":1}}],["在运行程序时",{"2":{"274":1}}],["在运行中输入",{"2":{"262":1}}],["在部分设置的选项中也与个人计算机有所不同",{"2":{"272":1}}],["在部分内容中",{"2":{"69":1}}],["在电脑中使用命令",{"2":{"262":1}}],["在手机海豹上",{"2":{"577":1}}],["在手机上确认登录以后",{"2":{"514":1}}],["在手机设置中",{"2":{"262":1}}],["在手机中",{"2":{"262":1}}],["在打开的黑框框中输入命令",{"2":{"262":1}}],["在打开的终端中输入命令",{"2":{"259":1}}],["在系统开始一栏中可以直接搜索到该功能",{"2":{"262":1}}],["在此目录下",{"2":{"460":1}}],["在此页面上",{"2":{"315":1}}],["在此界面下",{"2":{"291":1}}],["在此处打开命令行",{"2":{"262":1}}],["在此示例中",{"2":{"51":1}}],["在通知上",{"2":{"258":1}}],["在最右侧切换到",{"2":{"257":1}}],["在面具的设置里启动",{"2":{"256":1}}],["在尝试通过模拟器使用",{"2":{"254":1}}],["在尝试使用对应功能进行个性化前",{"2":{"91":1}}],["在新界面中开启",{"2":{"450":1}}],["在新版",{"2":{"254":1,"261":1}}],["在新工作分支上提交修改",{"2":{"10":1}}],["在账号添加中",{"2":{"253":1,"260":1,"527":1}}],["在右上角的内存一栏",{"2":{"252":1}}],["在连接地址中填写",{"2":{"242":1}}],["在终端运行",{"2":{"239":1}}],["在登录账号的时候会看到这样一个界面",{"2":{"238":1}}],["在未来",{"2":{"236":1}}],["在提交审核前",{"2":{"504":1}}],["在提问时",{"2":{"226":1}}],["在提供日志时",{"2":{"225":1}}],["在提供代码相关的信息时",{"2":{"224":1}}],["在一处的修改就会影响其他各处",{"2":{"641":1}}],["在一些系统上可能也称作",{"2":{"447":1}}],["在一些情况下",{"2":{"225":1}}],["在一个文案中使用另一个文案",{"0":{"377":1}}],["在一般情况下",{"2":{"252":1}}],["在一天触发多次时的回复",{"2":{"83":1}}],["在我的",{"2":{"223":1}}],["在用户不使用指令前缀的情况下",{"2":{"223":1}}],["在用户群的群文件中",{"2":{"215":1}}],["在用户群里有人和你说",{"2":{"210":1}}],["在脑海中思考千遍",{"2":{"211":1}}],["在合适的位置停下是最为高效的方案",{"2":{"211":1}}],["在实际学习新知的过程中",{"2":{"211":1}}],["在实现上",{"2":{"112":1}}],["在正则表达式教程中",{"2":{"209":1}}],["在触发条件部分",{"2":{"209":1}}],["在学习新概念的过程中",{"2":{"209":1}}],["在严肃场合",{"2":{"207":1}}],["在速查表中",{"2":{"206":1}}],["在求助搜索引擎或用户群之前",{"2":{"206":1}}],["在磁盘中没有足够的空间",{"2":{"198":1}}],["在弹出的菜单里选择",{"2":{"447":1}}],["在弹出的菜单中找到新建文件夹这个选项",{"2":{"196":1}}],["在弹出的界面上找到你希望压缩包解压到那里的文件夹",{"2":{"196":1}}],["在希望解压的文件夹下单击鼠标右键",{"2":{"196":1}}],["在下载和创建完成后会首次启动会自行关闭",{"2":{"480":1}}],["在下方",{"2":{"471":1}}],["在下一次指令中使用上一次指令设置的",{"2":{"172":1}}],["在下文中有详细讨论",{"2":{"51":1}}],["在命令",{"2":{"152":1}}],["在命令行使用如下命令",{"2":{"151":1}}],["在命令行使用如下命令安装依赖",{"2":{"151":1}}],["在确认你所使用的包管理器后",{"2":{"151":1}}],["在出现的浮窗中选择",{"2":{"149":1}}],["在返回对象的基础上",{"2":{"135":1}}],["在私聊模式下",{"2":{"427":1}}],["在私聊中",{"2":{"120":1}}],["在私聊触发",{"2":{"95":1}}],["在刚刚的位置填入核心代码",{"2":{"116":1}}],["在执行完自己的代码之后",{"2":{"115":1}}],["在创建扩展后",{"2":{"112":1}}],["在很多地方为了实现一些逻辑",{"2":{"92":1}}],["在中间会出现突兀的空行",{"2":{"82":1}}],["在采用",{"2":{"70":1}}],["在使用这些连接方式时",{"2":{"513":1}}],["在使用之前",{"2":{"256":1}}],["在使用该指令的时候",{"2":{"114":1}}],["在使用",{"2":{"69":1,"302":1}}],["在使用不放回抽取的情况下",{"2":{"54":1}}],["在海豹骰中集成了",{"2":{"686":1}}],["在海豹的新添账号选择",{"2":{"521":1}}],["在海豹的相关语境下",{"2":{"307":1}}],["在海豹核心发生",{"2":{"690":1}}],["在海豹核心的指令和后台设置中",{"2":{"623":1}}],["在海豹核心的后台配置中选择",{"2":{"449":1}}],["在海豹核心应用中",{"2":{"455":1}}],["在海豹中记录的日志会自动上传",{"2":{"568":1}}],["在海豹中需要通过此地址指向",{"2":{"278":1}}],["在海豹中",{"2":{"112":1,"265":1}}],["在海豹",{"2":{"62":1,"362":1}}],["在这个世界中",{"2":{"740":1}}],["在这个例子中",{"2":{"116":1}}],["在这个例子里",{"2":{"79":1}}],["在这里你可以添加",{"2":{"332":1}}],["在这里你可以管理你的骰娘的",{"2":{"330":1}}],["在这里的讨论是所有人可见的",{"2":{"279":1}}],["在这一脚本中",{"2":{"81":1}}],["在这一次指令的执行过程中不会再从该牌组中抽到相同结果",{"2":{"51":1}}],["在这种情况下",{"2":{"54":1}}],["在阅读本节时",{"2":{"16":1}}],["在您使用海豹骰点核心前",{"2":{"15":1}}],["在你习惯的手机文件管理软件中找到",{"2":{"577":1}}],["在你想要将不同的回复区分开",{"2":{"415":1}}],["在你开启",{"2":{"333":1}}],["在你解压的",{"2":{"259":1}}],["在你传完文件之后",{"2":{"257":1}}],["在你具备相关背景的情况下",{"2":{"206":1}}],["在你的问题看起来没有获得回答的时候",{"2":{"191":1,"232":1}}],["在你的",{"2":{"13":1}}],["在你",{"2":{"13":1}}],["在",{"2":{"10":1,"46":1,"50":3,"57":10,"64":1,"70":1,"74":1,"105":1,"120":1,"146":3,"149":2,"190":1,"206":1,"207":1,"259":1,"262":2,"264":1,"317":2,"318":1,"319":2,"321":1,"350":1,"357":1,"359":1,"363":1,"366":1,"405":1,"426":1,"448":1,"450":2,"457":1,"465":1,"466":1,"469":1,"470":1,"473":1,"474":1,"479":3,"480":1,"482":1,"504":2,"512":1,"514":1,"515":2,"521":2,"532":2,"535":1,"536":1,"539":2,"582":1,"612":1,"623":1,"638":1,"642":1,"652":2,"684":1,"690":2,"691":1,"693":1,"718":2,"741":1}}],["或不选择此项",{"2":{"722":1}}],["或快速查询",{"2":{"722":1}}],["或群组",{"2":{"718":1}}],["或类似服务器",{"2":{"684":1}}],["或检定失败基础上个位十位相同为大失败",{"2":{"619":1}}],["或检定成功基础上个位十位相同为大成功",{"2":{"619":1}}],["或惩罚骰",{"2":{"598":1}}],["或一个",{"2":{"594":1}}],["或翻译有变化",{"2":{"582":1}}],["或数据库文件变得很大",{"2":{"457":1}}],["或硬盘空间占满",{"2":{"456":1}}],["或发掘一些新的手段",{"2":{"446":1}}],["或想了解更多细节",{"2":{"425":1}}],["或官方群的群文件中找到其他骰主分享的文件",{"2":{"416":1}}],["或官方群的群文件中找到其他骰主分享的",{"2":{"403":1}}],["或官方群的群文件中找到其他骰主分享的帮助文档",{"2":{"393":1}}],["或官方群的群文件中找到其他骰主分享的牌堆",{"2":{"384":1}}],["或之前版本",{"2":{"315":1,"426":1,"427":1}}],["或命令提示符等名词会被混用",{"2":{"283":1,"290":1,"292":1,"313":1}}],["或系统安全策略不允许随意监听此类端口",{"2":{"278":1}}],["或在场的所有调查员同时疯狂发作",{"2":{"612":1}}],["或在",{"2":{"498":1}}],["或在游戏中使用",{"2":{"481":1}}],["或在手机上运行虚拟机的",{"2":{"257":1}}],["或在互联网自行搜索学习",{"2":{"69":1}}],["或少复制了内容",{"2":{"247":1}}],["或未反映在日志中",{"2":{"225":1}}],["或困难",{"0":{"223":1}}],["或许你已注意到",{"2":{"628":1}}],["或许你也可以学习编程",{"2":{"206":1}}],["或许可以增加此功能的优先级",{"2":{"206":1}}],["或插件",{"2":{"199":1}}],["或加载了大量牌堆",{"2":{"199":1}}],["或空字符串被视为",{"2":{"173":1}}],["或是类似小写字母",{"2":{"447":1}}],["或是直接复制到海豹",{"2":{"158":1}}],["或是再新开一行用条件算符或者条件语句实现",{"2":{"84":1}}],["或下载",{"2":{"514":1}}],["或下载模板项目",{"0":{"149":1}}],["或下文中提到的",{"2":{"140":1}}],["或生命值归零",{"2":{"145":1}}],["或更早版本",{"2":{"120":1}}],["或更早版本的海豹核心",{"2":{"37":1}}],["或者没有正确提供指令所需参数时会返回指令的帮助信息",{"2":{"722":1}}],["或者没有可用的备份文件",{"2":{"460":1}}],["或者需要更多帮助",{"2":{"681":1}}],["或者需要编写大型插件",{"2":{"148":1,"162":1}}],["或者相同属性",{"2":{"605":1}}],["或者自己编写规则模板插件",{"2":{"572":1}}],["或者觉得并无必要",{"2":{"572":1}}],["或者使用终端启动海豹核心",{"2":{"541":1}}],["或者更高",{"2":{"538":1}}],["或者在动作前请求主持人的许可",{"2":{"747":1}}],["或者在阅读本节时",{"2":{"537":1}}],["或者在搜索引擎中查找了正则表达式教程",{"2":{"209":1}}],["或者新增了其他功能",{"2":{"504":1}}],["或者保存完复制过去",{"2":{"458":1}}],["或者直接使用",{"2":{"419":1}}],["或者把",{"2":{"259":1}}],["或者其它文本编辑器",{"2":{"259":1}}],["或者一些你认为本该正常运行的功能表现得不正常",{"2":{"223":1}}],["或者不清楚某些术语该怎么说的情况下",{"2":{"214":1}}],["或者你也可以学习编程",{"2":{"206":1}}],["或者你的问题明确了是一个",{"2":{"192":1,"233":1}}],["或者对计算机及服务器知之甚少的用户快速查询特定名词",{"2":{"266":1}}],["或者对计算机及服务器知之甚少的用户快速查询一些常见问题以及对应的答案",{"2":{"195":1}}],["或者对计算机及服务器知之甚少的用户问出更加明晰高效的问题",{"2":{"213":1}}],["或者对计算机及服务器知之甚少的用户在遇到不理解的教程",{"2":{"203":1}}],["或者对计算机或服务器知之甚少的用户进行更易懂的科普",{"2":{"185":1}}],["或者反馈",{"2":{"193":1,"202":1}}],["或者带着这些去问其他有经验者",{"2":{"190":1}}],["或者开始开发时",{"2":{"150":1}}],["或者",{"2":{"35":1,"45":1,"422":1,"447":1,"451":1,"723":1,"752":1}}],["或结束文件",{"2":{"33":1}}],["或",{"2":{"10":1,"33":1,"38":2,"48":1,"61":1,"66":1,"72":1,"94":3,"140":1,"141":1,"147":1,"172":1,"176":1,"206":1,"278":1,"290":1,"309":1,"318":1,"320":1,"334":1,"356":1,"383":1,"420":1,"421":1,"427":1,"440":1,"498":1,"538":1,"542":1,"582":1,"603":1,"702":1,"709":1,"715":1}}],["mz",{"2":{"711":1}}],["my",{"2":{"648":2,"709":2}}],["myperm",{"2":{"121":6}}],["m的骰子总数",{"2":{"635":1}}],["m2",{"2":{"538":1}}],["m1",{"2":{"538":1}}],["mpim",{"2":{"531":1,"532":2}}],["mul",{"2":{"570":1}}],["multicast",{"2":{"497":1}}],["music",{"2":{"135":2}}],["ms",{"2":{"480":1}}],["msg=$",{"2":{"135":1}}],["msg",{"0":{"109":1},"2":{"94":9,"95":3,"97":2,"98":4,"104":4,"109":8,"114":2,"115":1,"116":2,"117":3,"119":5,"121":2,"127":16,"129":3,"130":21,"131":2,"133":6,"134":2,"135":7,"137":2,"139":10}}],["msgcontext",{"2":{"94":1,"118":1,"123":1}}],["mc",{"2":{"479":3}}],["mctx",{"2":{"134":5}}],["mojang",{"2":{"480":1}}],["moe",{"2":{"262":1}}],["modu",{"0":{"765":1},"2":{"569":1,"765":7}}],["mode",{"2":{"26":2,"498":1,"531":2}}],["mod",{"2":{"15":1,"66":1,"67":1,"112":1,"579":1}}],["m",{"0":{"289":1},"1":{"290":1,"291":1,"292":1},"2":{"256":1,"635":2,"636":1,"694":1}}],["mb",{"2":{"190":1,"549":1,"550":3,"644":2}}],["mdn",{"2":{"157":1,"158":1}}],["mm",{"2":{"141":4}}],["miui",{"0":{"449":1}}],["mirai",{"0":{"236":1},"1":{"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1},"2":{"250":1}}],["minecrafteula",{"2":{"480":1}}],["minecraft",{"0":{"476":1,"477":1,"478":1,"481":1,"482":1,"483":1},"1":{"477":1,"478":1,"479":2,"480":2,"481":2,"482":1,"483":1,"484":2,"485":2,"486":2,"487":2,"488":2},"2":{"476":1,"477":2,"478":3,"479":2,"481":3,"482":5}}],["minify",{"2":{"156":2}}],["min",{"2":{"130":3}}],["mit",{"2":{"4":1,"119":1,"121":1,"127":1,"130":1,"139":1,"159":1}}],["mention",{"2":{"531":1}}],["mem",{"2":{"521":1}}],["members",{"2":{"464":1}}],["memberkick",{"0":{"96":1},"2":{"94":1,"96":1}}],["memberban",{"0":{"96":1},"2":{"94":1,"96":1}}],["methods",{"2":{"466":1}}],["meta",{"2":{"48":2,"58":1,"61":1,"64":1,"90":1}}],["mean",{"2":{"209":1}}],["messagetype",{"2":{"94":1,"104":1,"109":1,"133":1}}],["message",{"2":{"94":2,"104":1,"109":1,"130":1,"135":3,"137":3,"464":1,"531":4}}],["mtu",{"2":{"497":1}}],["mt",{"2":{"93":1,"443":1}}],["mark",{"2":{"570":4}}],["macos",{"2":{"302":1,"538":1,"539":4}}],["mac",{"2":{"285":1,"516":1,"538":1,"539":1}}],["magisk",{"2":{"256":2}}],["max",{"2":{"130":2}}],["math",{"2":{"116":2,"117":2,"130":2,"133":2,"134":2}}],["map",{"2":{"104":1,"118":1}}],["manual",{"2":{"11":1}}],["masterget",{"2":{"730":1}}],["master",{"0":{"330":1,"331":1,"332":1,"622":1,"698":1},"1":{"331":1,"332":1,"333":1,"334":1},"2":{"10":1,"105":1,"120":1,"121":1,"139":1,"330":1,"331":2,"332":2,"340":1,"342":1,"355":1,"543":3,"622":17,"623":1,"647":1,"655":1,"706":2,"730":1}}],["main",{"2":{"10":1,"130":2,"299":1,"431":1}}],["后者将结果私聊发送",{"2":{"704":1}}],["后使用",{"2":{"535":1}}],["后使用即可",{"2":{"161":1}}],["后续列出的是它的同义词",{"2":{"583":1}}],["后续需要修改",{"2":{"491":1}}],["后续所有操作均在",{"2":{"10":1}}],["后在下方",{"2":{"466":1}}],["后台",{"2":{"543":1}}],["后台弹出界面",{"2":{"448":1}}],["后台行为",{"2":{"447":1}}],["后导出的",{"2":{"430":1}}],["后缀",{"2":{"425":1}}],["后缀不会反复出现在批量成长中",{"2":{"371":1}}],["后缀匹配",{"2":{"85":1,"420":1}}],["后",{"2":{"333":1,"394":1,"504":1}}],["后并没有出现如上所示的图标",{"2":{"309":1}}],["后端的监听设置",{"2":{"497":1}}],["后端的配置",{"2":{"496":1}}],["后端无法正确解析海豹数据目录的路径",{"2":{"496":1}}],["后端发送本地图片时",{"2":{"491":1,"496":1}}],["后端及海豹",{"2":{"278":1}}],["后端",{"0":{"496":1},"1":{"497":1,"498":1},"2":{"278":1,"491":1,"496":2,"498":1}}],["后端位于同一主机上",{"2":{"278":1}}],["后端配置相同的端口号",{"2":{"278":1}}],["后端时",{"2":{"278":1}}],["后端会监听你在配置中指定的端口",{"2":{"278":1}}],["后端并采用正向",{"2":{"278":1}}],["后端和部署多只海豹时",{"2":{"278":1}}],["后端是",{"2":{"227":1}}],["后端代码仓库",{"2":{"5":1}}],["后面有一个简化的替代方案",{"2":{"457":1}}],["后面有空格",{"2":{"130":1}}],["后面的行都是该表的内容",{"2":{"36":1}}],["后三项为选填",{"2":{"68":1}}],["后合并你的代码",{"2":{"10":1}}],["的舞台",{"2":{"743":1}}],["的指引下为了守护重要的人或者日常生活而战斗",{"2":{"741":1}}],["的指令进行了修改",{"2":{"504":1}}],["的指令",{"2":{"114":1}}],["的拓展规则",{"2":{"739":1}}],["的圆括号",{"2":{"722":1}}],["的括号",{"2":{"722":1}}],["的尖括号",{"2":{"722":1}}],["的别名",{"2":{"721":1}}],["的留言",{"2":{"706":2}}],["的群组管理中操作退群",{"2":{"683":1}}],["的死亡豁免检定",{"2":{"678":2}}],["的操作也会自动触发死亡豁免",{"2":{"678":1}}],["的操作按钮",{"2":{"13":1}}],["的加值",{"2":{"678":1}}],["的长休",{"2":{"676":2}}],["的2环法术位消耗至3个",{"2":{"674":1}}],["的法术位已经完全恢复",{"2":{"672":1}}],["的法术位状况",{"2":{"672":1}}],["的1环法术位消耗至2个",{"2":{"672":1}}],["的buff数据已经清除",{"2":{"670":1}}],["的如下buff属性被成功删除",{"2":{"670":1}}],["的属性录入完成",{"2":{"669":1}}],["的个人属性为",{"2":{"665":2,"670":3}}],["的dnd5e人物buff属性设置如下",{"2":{"670":3}}],["的dnd5e人物属性设置如下",{"2":{"665":2,"670":3,"678":3}}],["的dnd5e人物作成",{"2":{"658":2}}],["的先攻点为16",{"2":{"660":1}}],["的标记",{"2":{"649":1}}],["的整理者为",{"2":{"646":1}}],["的词条",{"2":{"642":1,"722":1}}],["的昵称已重置为",{"2":{"640":1}}],["的昵称被设定为",{"2":{"640":1}}],["的侦查是",{"2":{"639":1}}],["的侦查技能是80",{"2":{"599":1}}],["的暗骰",{"2":{"638":1}}],["的暗中检定",{"2":{"602":1}}],["的骰点服务",{"2":{"717":1}}],["的骰点用",{"2":{"635":2,"636":1}}],["的骰",{"2":{"635":2}}],["的最底下",{"2":{"625":1}}],["的最新构建二进制发布内容一致",{"2":{"539":2}}],["的部分",{"2":{"624":1}}],["的部署过程",{"2":{"490":1}}],["的七版coc人物作成",{"2":{"616":1}}],["的理智检定",{"2":{"608":1}}],["的理念",{"2":{"549":1}}],["的奖励骰",{"2":{"598":1}}],["的coc7属性录入完成",{"2":{"591":1}}],["的存在",{"2":{"584":1}}],["的任何一个名字使用这一属性",{"2":{"582":1}}],["的任何内容",{"2":{"258":1}}],["的短信",{"2":{"552":1,"702":1}}],["的高效",{"2":{"550":1}}],["的安装包",{"2":{"549":1}}],["的安全策略并不支持图片识别或长按扫描二维码登录",{"2":{"514":1}}],["的服务器都可以",{"2":{"684":1}}],["的服务器都应使用此版本",{"2":{"538":1}}],["的服务",{"2":{"539":1,"541":1}}],["的镜像与名为",{"2":{"539":2}}],["的开关",{"2":{"531":1}}],["的开发者已无力维护项目",{"2":{"236":1}}],["的手册安装官方",{"2":{"522":1}}],["的手机",{"2":{"254":1}}],["的反向连接开关",{"2":{"521":1}}],["的正向连接开关",{"2":{"521":1}}],["的区别有一定了解",{"2":{"515":1}}],["的惩罚",{"2":{"512":1}}],["的会显示发送错误",{"2":{"509":1}}],["的填写请根据下列情况选择",{"2":{"482":1}}],["的海豹有几率在显示连接后仍然离线",{"2":{"474":1}}],["的消息",{"2":{"454":1,"505":1,"535":1}}],["的消息时",{"2":{"420":1}}],["的对话框",{"2":{"454":1}}],["的对象",{"2":{"207":1}}],["的图标",{"2":{"447":1,"686":1}}],["的图片与内容",{"2":{"66":1}}],["的初始自定义回复文件",{"2":{"414":1}}],["的设置",{"2":{"521":1}}],["的设置页",{"2":{"521":1}}],["的设置页面",{"2":{"413":1}}],["的设备与海豹所在的是同一主机",{"2":{"278":1}}],["的资料文档已经在列表中展示出来了",{"2":{"395":1}}],["的资料查询文档",{"2":{"393":1}}],["的两个牌组",{"2":{"386":1}}],["的力量检定结果为",{"2":{"363":2}}],["的相关文案",{"2":{"362":1}}],["的实现变更",{"2":{"339":1}}],["的限制",{"2":{"334":1}}],["的搜素功能中",{"2":{"309":1}}],["的用户发言可以被一键去除",{"2":{"731":1}}],["的用户界面",{"2":{"291":1}}],["的用户应该将实际业务逻辑放置在",{"2":{"141":1}}],["的主要优点包括稳定性",{"2":{"286":1}}],["的主机",{"2":{"239":1}}],["的官方",{"2":{"285":1,"287":1,"294":1}}],["的目录",{"2":{"274":2}}],["的应用",{"2":{"262":1}}],["的一层包装",{"2":{"313":1}}],["的一个整数",{"2":{"278":1}}],["的一串数字",{"2":{"278":1}}],["的一种途径",{"2":{"261":1}}],["的一行中",{"2":{"82":1}}],["的提示",{"2":{"258":1,"389":1}}],["的页面",{"2":{"258":1}}],["的超级用户权限",{"2":{"256":1}}],["的场景下",{"2":{"254":1}}],["的效果也不是很可观",{"2":{"254":1}}],["的使用依赖于",{"2":{"254":1}}],["的软件",{"2":{"254":1}}],["的连接方案暂不支持",{"2":{"348":1}}],["的连接",{"2":{"254":1,"516":1}}],["的可用运行内存不足",{"2":{"252":1}}],["的签名程序偷了出来",{"2":{"251":1}}],["的程序",{"2":{"250":1}}],["的缓存数据库损坏",{"2":{"242":1}}],["的过验证码网站已经停止服务",{"2":{"240":1}}],["的过程中遇到的问题",{"2":{"192":1,"212":1,"234":1}}],["的功能等于不存在",{"2":{"549":1}}],["的功能",{"2":{"223":1,"541":1}}],["的每一个回复都有可能是真材实料的信息",{"2":{"207":1}}],["的问答网站到个人博客",{"2":{"207":1}}],["的字样",{"2":{"206":2}}],["的报错",{"0":{"198":1}}],["的代码仓库中",{"2":{"193":1,"202":1}}],["的代码补全",{"2":{"161":1}}],["的自定义回复的触发词里也有许多你可能关心的问题在内",{"2":{"189":1}}],["的今日人品为",{"2":{"172":1}}],["的插件之一",{"2":{"519":1}}],["的插件加载器",{"2":{"287":1,"519":1}}],["的插件而出错的情况",{"2":{"167":1}}],["的插件才可正常工作",{"2":{"165":1}}],["的插件配置项中将会显示关于此定时任务的描述",{"2":{"141":1}}],["的插件配置项中",{"2":{"141":1}}],["的日志",{"2":{"158":1,"242":2}}],["的调试控制台中运行",{"2":{"158":1}}],["的配置项",{"2":{"154":1}}],["的配置文件",{"2":{"152":1}}],["的积分",{"2":{"145":1}}],["的时间",{"2":{"142":1}}],["的时候",{"2":{"64":1}}],["的数据类型为",{"2":{"141":1}}],["的匹配条件",{"2":{"137":1}}],["的简单扩展",{"2":{"135":1}}],["的掷骰结果为",{"2":{"133":1}}],["的处理",{"2":{"119":1}}],["的话结果是",{"2":{"115":1,"116":1,"117":1}}],["的情况",{"2":{"335":1}}],["的情况赋值",{"2":{"84":1}}],["的情形",{"2":{"115":1}}],["的内容",{"0":{"105":1,"106":1,"107":1,"108":1,"109":1,"110":1},"2":{"583":1}}],["的结果即是",{"2":{"115":1,"116":1,"117":1}}],["的结果",{"2":{"102":2}}],["的结果可能是",{"2":{"52":1}}],["的名称",{"2":{"98":2}}],["的私聊回复",{"2":{"95":1}}],["的回复",{"2":{"95":2}}],["的人品为",{"2":{"97":1}}],["的人踢出那个群",{"2":{"96":1}}],["的人封禁",{"2":{"96":1}}],["的人",{"2":{"94":1,"98":1}}],["的返回值",{"2":{"94":1}}],["的扩展",{"2":{"94":2,"114":1}}],["的",{"2":{"94":2,"104":1,"110":1,"143":1,"170":1,"176":1,"192":1,"233":1,"238":1,"242":3,"254":1,"258":1,"259":1,"279":1,"285":1,"299":1,"315":1,"334":1,"341":1,"371":1,"513":2,"514":1,"516":1,"518":1,"522":1,"524":1,"525":1,"538":1,"539":1,"543":1,"595":3,"596":1,"597":1,"598":1,"622":2,"642":2,"667":3,"669":1,"690":1,"691":1}}],["的第一个人",{"2":{"94":1}}],["的值为",{"2":{"174":1}}],["的值设定为",{"2":{"94":3}}],["的值增加",{"2":{"79":1}}],["的说明",{"2":{"94":1,"238":1}}],["的位置",{"2":{"82":1}}],["的写法外",{"2":{"81":1}}],["的关系",{"2":{"78":1}}],["的语句出现时",{"2":{"78":1}}],["的语法极其灵活",{"2":{"47":1}}],["的语法",{"2":{"31":1}}],["的式子会输出",{"2":{"77":1}}],["的形式表明这里既可以使用技能名又可以使用属性名",{"2":{"585":1}}],["的形式表达",{"2":{"38":1}}],["的形式",{"2":{"82":1}}],["的形式即可",{"2":{"74":1}}],["的捕获组",{"2":{"73":1}}],["的具体内容",{"2":{"66":6}}],["的方括号",{"2":{"722":1}}],["的方案目前比较稳定",{"2":{"512":1}}],["的方案也是可行的",{"2":{"257":1}}],["的方式",{"2":{"313":1}}],["的方式描述",{"2":{"278":1}}],["的方式请求对应接口",{"2":{"63":1}}],["的方法抽取",{"2":{"57":1}}],["的牌端管理界面",{"2":{"62":1}}],["的牌组不展示在该列表中",{"2":{"57":1}}],["的概率先抽出",{"2":{"54":2}}],["的几率出现闪光海豹",{"2":{"53":1}}],["的项目采用了放回抽取",{"2":{"51":1}}],["的放回表示",{"2":{"50":1}}],["的文本长度匹配",{"2":{"421":1}}],["的文档",{"2":{"154":1}}],["的文案来举例",{"2":{"363":1}}],["的文案",{"2":{"114":1,"117":1,"362":1}}],["的文案为例",{"2":{"28":1}}],["的文件进行测试",{"2":{"48":3}}],["的新仓库向主仓库发起",{"2":{"13":1}}],["的有意义的英文",{"2":{"12":1}}],["的准贡献者做个示范",{"2":{"9":1}}],["的源码",{"2":{"5":1}}],["pp8",{"2":{"733":1}}],["ping",{"0":{"708":1},"2":{"700":1,"708":4}}],["picture",{"2":{"257":1}}],["p2",{"2":{"637":2}}],["p4=",{"2":{"631":1}}],["p4",{"2":{"631":1}}],["pl",{"2":{"579":1,"602":1,"741":1}}],["plugins",{"2":{"481":1}}],["play",{"2":{"686":1}}],["playerget",{"2":{"106":1}}],["player",{"0":{"107":1},"2":{"98":2,"105":1,"134":1,"460":1}}],["platform",{"2":{"108":1,"109":1,"259":3,"262":4}}],["places",{"2":{"125":1}}],["place",{"2":{"94":2,"123":2,"124":1}}],["pc",{"0":{"641":1},"2":{"294":1,"341":2,"513":5,"519":1,"537":1,"553":1,"641":9,"746":4,"747":2,"748":2}}],["potatso",{"2":{"686":1}}],["powershell",{"2":{"302":1}}],["ports",{"2":{"491":2,"498":1}}],["port",{"2":{"239":1,"245":1,"347":2,"481":1,"493":1,"494":2,"515":2}}],["postern",{"2":{"686":3}}],["pos",{"2":{"94":3}}],["python",{"2":{"170":1}}],["pnpm",{"2":{"148":1,"162":1}}],["png",{"2":{"55":1,"66":1,"375":3,"493":1}}],["php",{"2":{"135":1}}],["paper",{"2":{"477":1,"479":1,"482":1}}],["pause",{"2":{"458":1}}],["path",{"2":{"262":2}}],["pad",{"2":{"241":2}}],["package",{"2":{"150":1,"152":1}}],["param",{"2":{"135":3}}],["parse",{"2":{"128":1,"129":2,"130":4,"131":1}}],["page=",{"2":{"642":1}}],["page",{"2":{"130":2}}],["permissions",{"2":{"466":1,"532":2}}],["per",{"2":{"130":2}}],["purpur",{"2":{"477":1,"479":1}}],["push",{"2":{"129":1,"130":1,"131":1,"570":5}}],["pull",{"0":{"13":1},"2":{"9":1,"10":1,"13":1,"495":1}}],["p",{"2":{"73":1,"178":1,"498":1,"539":3,"598":1,"637":1,"684":1}}],["proto",{"2":{"497":1}}],["prompt",{"2":{"290":1}}],["promise",{"2":{"135":1,"158":1}}],["preferred",{"2":{"497":2}}],["pre2",{"2":{"478":1}}],["presence",{"2":{"464":1}}],["precompiled",{"2":{"460":1}}],["privileged",{"2":{"262":1,"464":1}}],["privilegelevel",{"2":{"105":1,"120":1,"121":2,"127":5,"139":1}}],["private",{"2":{"109":1,"172":1}}],["pr",{"2":{"5":1,"8":2,"13":3,"14":1,"135":1,"155":1,"206":2}}],["贡献指南",{"0":{"9":1},"1":{"10":1,"11":1,"12":1,"13":1,"14":1},"2":{"9":1}}],["即时疯狂症状",{"2":{"746":1}}],["即是描述场景如暴风骤雨里",{"2":{"657":1}}],["即是一级文件夹",{"2":{"396":1}}],["即大成功",{"2":{"619":1}}],["即显示当前设定的房规",{"2":{"618":1}}],["即以上四种登录方式",{"2":{"513":1}}],["即通过第三方软件接入注册的另一个",{"2":{"512":1}}],["即当回复内容的长度满足什么条件时会触发这条回复项",{"2":{"419":1}}],["即当前的手册",{"2":{"5":1}}],["即设置什么样的内容会触发这条回复项",{"2":{"419":1}}],["即设置拦截什么样的消息",{"2":{"353":1}}],["即快捷指令指向的原指令",{"2":{"374":1}}],["即进行暗骰时发送到私聊的回复词的前缀",{"2":{"368":1}}],["即进行暗骰时发在群里的回复词",{"2":{"368":1}}],["即调用",{"2":{"368":3,"369":1,"370":3,"371":3,"373":3,"374":1}}],["即命中敏感词后要如何处理",{"2":{"353":1}}],["即基于图形渲染和鼠标点击",{"2":{"302":1}}],["即持续提供服务的机器",{"2":{"272":1}}],["即为所需端口",{"2":{"259":1}}],["即为",{"2":{"242":1}}],["即脸皮厚度和摸鱼技能等级",{"2":{"144":1}}],["即权限值",{"2":{"120":1}}],["即使有记录中的日志",{"2":{"727":1}}],["即使是持续运行数月的大型公骰",{"2":{"550":1}}],["即使用开源签名服务",{"2":{"237":1}}],["即使成功连接",{"2":{"236":1}}],["即使你的尝试没有效果",{"2":{"226":1}}],["即使你不能完全理解日志的内容",{"2":{"225":1}}],["即使",{"2":{"78":1}}],["即",{"0":{"252":1},"2":{"64":1,"94":2,"134":1,"176":1,"186":1,"200":1,"256":1,"262":1,"264":1,"307":1,"313":1,"374":1,"640":1,"686":1,"711":1,"727":1}}],["即不展示在列表中",{"2":{"57":1}}],["即无法使用",{"2":{"57":2}}],["即在对象尾部有多余逗号时不再报错",{"2":{"40":1}}],["即在数组尾部有多余逗号时不再报错",{"2":{"39":1}}],["即只有",{"2":{"34":1}}],["即小数",{"2":{"33":1,"38":1,"45":1}}],["即可开启",{"2":{"691":1}}],["即可开始运行服务端",{"2":{"480":1}}],["即可正常访问监听本地端口的",{"2":{"498":1}}],["即可令容器使用宿主机网络",{"2":{"498":1}}],["即可登录到多个",{"2":{"491":1}}],["即可完成连接",{"2":{"482":1}}],["即可进入下一个步骤",{"2":{"480":1}}],["即可进入开发者模式",{"2":{"262":1}}],["即可按设置的方式匹配触发回复项",{"2":{"420":1}}],["即可为该回复项增加一个条件",{"2":{"419":1}}],["即可运行",{"2":{"407":1}}],["即可升级到最新",{"2":{"406":1}}],["即可升级到最新的牌堆",{"2":{"388":1}}],["即可上传到海豹核心",{"2":{"405":1}}],["即可浏览当前已经加载的帮助文档词条",{"2":{"399":1}}],["即可批量删除帮助文档",{"2":{"398":1}}],["即可将文档上传至骰子",{"2":{"396":1}}],["即可弹出帮助文档的上传框",{"2":{"396":1}}],["即可返回对应词条内容",{"2":{"394":1}}],["即可豁免检查",{"2":{"358":1}}],["即可关闭自动退群功能",{"2":{"350":1}}],["即可配置和启动签名服务器",{"2":{"239":1}}],["即可",{"2":{"8":1,"262":1,"491":1,"494":1,"514":1,"686":1}}],["向你所使用的骰子主人请求安装相应插件吧",{"2":{"744":1}}],["向每个指定的邮箱地址发送指定日志的全文",{"2":{"729":1}}],["向骰主发送消息",{"0":{"706":1}}],["向指令触发者",{"2":{"94":1}}],["向收到指令的群中发送",{"2":{"94":1}}],["向对应仓库发起",{"2":{"8":1}}],["向开发组反馈问题",{"2":{"7":1}}],["提醒",{"2":{"355":1}}],["提醒级词表",{"2":{"90":1}}],["提醒级词汇",{"2":{"89":2,"90":2}}],["提问后",{"0":{"228":1},"1":{"229":1,"230":1}}],["提问时",{"0":{"222":1},"1":{"223":1,"224":1,"225":1,"226":1,"227":1}}],["提问前",{"0":{"216":1},"1":{"217":1,"218":1,"219":1,"220":1,"221":1}}],["提问的智慧一书中已经写明该如何提问",{"2":{"213":1}}],["提问的智慧",{"0":{"215":1},"2":{"188":1,"215":1}}],["提问的智慧到底该怎么实现",{"0":{"188":1},"1":{"189":1,"190":1,"191":1,"192":1}}],["提高你的英文水平",{"2":{"205":1}}],["提供属性名则列出特定属性数值",{"2":{"587":1}}],["提供",{"2":{"538":1,"625":1}}],["提供对应",{"2":{"538":1}}],["提供给",{"2":{"538":1}}],["提供给更专业的用户使用",{"2":{"538":1}}],["提供的平台如下",{"2":{"538":1}}],["提供的发布指引",{"2":{"530":1}}],["提供的完整教程",{"2":{"239":1}}],["提供一个权限",{"2":{"487":1}}],["提供两个插件指令",{"2":{"484":1}}],["提供资源管理功能",{"2":{"428":1}}],["提供云端内容",{"2":{"389":1}}],["提供检查骰子收到的消息内容中是否有敏感词汇",{"2":{"352":1}}],["提供其他有价值的背景信息",{"0":{"227":1}}],["提供问题发生时",{"0":{"225":1}}],["提供了友好的",{"2":{"551":1}}],["提供了词库模板的下载",{"2":{"359":1}}],["提供了让我们自己生成密码的功能",{"2":{"251":1}}],["提供了一些常见代码片段",{"2":{"168":1}}],["提供了",{"2":{"141":1}}],["提供正则表达式在线解析和验证",{"2":{"69":1}}],["提向主仓库的主分支的",{"2":{"13":1}}],["提交审核",{"2":{"504":1}}],["提交时间很近的时候",{"2":{"13":1}}],["提交",{"2":{"8":1}}],["提交修改",{"0":{"8":1}}],["提示需要安装其依赖的",{"2":{"164":1}}],["提示",{"2":{"7":1,"12":1,"25":1,"31":1,"47":1,"57":1,"59":1,"68":1,"70":2,"72":1,"73":1,"76":1,"77":1,"78":1,"93":1,"94":1,"112":1,"120":2,"124":1,"138":1,"140":1,"158":1,"161":1,"172":1,"183":1,"238":1,"239":1,"242":1,"254":1,"257":1,"272":1,"356":1,"370":2,"383":1,"384":1,"385":1,"393":1,"395":1,"396":1,"403":1,"416":1,"418":1,"419":1,"420":1,"422":1,"446":1,"447":1,"465":1,"480":1,"482":1,"499":1,"504":1,"515":1,"521":1,"530":1,"535":1,"536":1,"538":1,"548":1,"549":1,"650":1,"708":1,"722":1,"747":1}}],["无限团",{"2":{"572":1}}],["无限制",{"2":{"449":1}}],["无需额外下载即可使用相关内容搜索",{"2":{"393":1}}],["无前缀",{"2":{"371":1}}],["无后缀的回复",{"2":{"371":1}}],["无后缀两条区分",{"2":{"371":1}}],["无后缀",{"2":{"371":4}}],["无头",{"0":{"306":1},"2":{"276":1,"294":1,"306":1}}],["无论之前用过哪一个都可以轻松上手",{"2":{"548":1}}],["无论你只是想增加简单的回复",{"2":{"412":1}}],["无论仅仅是搜索还是尝试了具体的操作",{"2":{"221":1}}],["无论是试图实现一个功能",{"2":{"226":1}}],["无论是有效的还是无效的",{"2":{"221":1}}],["无论是帮助文档",{"2":{"205":1}}],["无论是普通用户还是开发者",{"2":{"5":1}}],["无法再继续记录",{"2":{"729":1}}],["无法再维护此项目",{"2":{"237":1}}],["无法回复hp",{"2":{"676":1}}],["无法回复等情况请先",{"2":{"514":1}}],["无法在线更新等",{"2":{"539":1}}],["无法使用命令行",{"0":{"458":1}}],["无法通过第一眼就看到问题的来龙去脉",{"2":{"190":1}}],["无法访问仓库",{"2":{"384":1,"393":1,"403":1,"416":1}}],["无法访问",{"2":{"7":1}}],["无知亦是幸运",{"2":{"182":1}}],["无知之人",{"2":{"181":1}}],["无关的编程语言",{"2":{"170":1}}],["无实际意义",{"2":{"117":1}}],["无视物质损失",{"2":{"67":1}}],["如图选择匹配类型和动作",{"2":{"686":1}}],["如图所示",{"2":{"209":1}}],["如不指定",{"2":{"641":1}}],["如不正常的登录方式",{"2":{"512":1}}],["如属性比较",{"2":{"605":1}}],["如无法使用内置客户端登录",{"2":{"539":1}}],["如若想修改端口请在",{"2":{"521":1}}],["如跑团",{"2":{"499":1}}],["如需要在低版本运行请自行验证服务端与",{"2":{"478":1}}],["如需删除某些帮助文档",{"2":{"398":1}}],["如正则表达式等",{"2":{"425":1}}],["如牌堆",{"2":{"425":1}}],["如勾选",{"2":{"388":1,"406":1}}],["如收到",{"2":{"354":1}}],["如替换为上面示例中的",{"2":{"259":1}}],["如示例中就是",{"2":{"259":1}}],["如对",{"2":{"256":1}}],["如对手册有什么改进内容可以在该项目提交",{"2":{"5":1}}],["如电脑连手机热点",{"2":{"247":1}}],["如上一条所说",{"2":{"190":1}}],["如上述示例中可以使用",{"2":{"61":1}}],["如前篇",{"2":{"185":1}}],["如下图的",{"2":{"376":1}}],["如下",{"2":{"133":1}}],["如指令文本",{"2":{"114":1,"117":1,"135":1}}],["如当前发指令用户",{"2":{"114":1,"117":1,"135":1}}],["如常用的开启",{"2":{"112":1}}],["如何自定义",{"2":{"650":1}}],["如何判断海豹的数据库是否损坏",{"2":{"456":1}}],["如何更新",{"0":{"444":1}}],["如何更快更便捷地自行排查问题等人文层面的科普",{"2":{"185":1}}],["如何实现多个内容中任意一个均可触发回复项",{"2":{"419":1}}],["如何使用",{"0":{"409":1}}],["如何使用帮助文档",{"0":{"394":1}}],["如何安装和管理",{"0":{"404":1},"1":{"405":1,"406":1,"407":1,"408":1}}],["如何管理帮助文档",{"0":{"395":1},"1":{"396":1,"397":1,"398":1,"399":1}}],["如何编写",{"0":{"410":1}}],["如何编写帮助文档",{"0":{"400":1}}],["如何编写牌堆",{"0":{"390":1}}],["如何编写敏感词库",{"0":{"359":1}}],["如何快速导入",{"2":{"365":1}}],["如何修改文案",{"0":{"362":1},"1":{"363":1,"364":1,"365":1}}],["如何让用户",{"0":{"358":1}}],["如何设置骰子收到了某些词语时自动拦截掉这些用户",{"2":{"352":1}}],["如何设置黑白名单",{"0":{"323":1}}],["如何避免",{"2":{"352":1}}],["如何",{"2":{"254":1}}],["如何启动多个",{"0":{"249":1}}],["如何搭建签名服务",{"0":{"239":1}}],["如何高效学习",{"0":{"203":1},"1":{"204":1,"205":1,"206":1,"207":1,"208":1,"209":1,"210":1,"211":1,"212":1},"2":{"195":1,"213":1,"220":1,"266":1}}],["如何正确提问",{"0":{"213":1},"1":{"214":1,"215":1,"216":1,"217":1,"218":1,"219":1,"220":1,"221":1,"222":1,"223":1,"224":1,"225":1,"226":1,"227":1,"228":1,"229":1,"230":1,"231":1,"232":1,"233":1,"234":1},"2":{"195":1,"203":1,"266":1}}],["如何开始",{"2":{"158":1}}],["如何尽量保持产物的可读性",{"0":{"156":1}}],["如何解决内存不足",{"0":{"197":1}}],["如何解决",{"0":{"155":1}}],["如何建立一个扩展",{"2":{"112":1}}],["如何获取安装包",{"2":{"93":1}}],["如何参与项目",{"0":{"6":1},"1":{"7":1,"8":1}}],["如要每群自行将",{"2":{"83":1}}],["如命名为",{"2":{"73":1}}],["如将工作表命名为",{"2":{"68":1}}],["如此一来当你发送",{"2":{"66":1}}],["如作者",{"2":{"48":1}}],["如换行",{"2":{"35":1}}],["如中文",{"2":{"34":1}}],["如",{"2":{"33":1,"52":1,"61":1,"94":1,"154":1,"157":1,"159":1,"167":1,"186":1,"196":1,"200":1,"245":1,"262":1,"327":1,"362":1,"368":1,"420":1,"421":1,"460":1,"477":1,"582":8,"589":1,"590":1,"603":3,"665":1,"667":1,"717":2,"720":1,"723":1}}],["如修改",{"2":{"24":1}}],["如果还需要使用这张人物卡",{"2":{"747":1}}],["如果还想要取出其中的日志",{"2":{"730":1}}],["如果骰子配置了发件邮箱",{"2":{"729":1}}],["如果平台支持发送文件",{"2":{"729":1}}],["如果已经上传到染色器",{"2":{"729":1}}],["如果已创建就直接使用",{"2":{"117":1,"129":1,"134":1}}],["如果指定日志名",{"2":{"727":1}}],["如果当前日志存在",{"2":{"727":1}}],["如果创建成功",{"2":{"727":1}}],["如果本群的当前日志不为空",{"2":{"727":1,"728":1}}],["如果要了解如何搭建和部署骰子",{"2":{"716":1}}],["如果超过半数的骰子骰出",{"2":{"715":1}}],["如果以后再出类似情况",{"2":{"686":1}}],["如果打不开网页或提示",{"2":{"686":1}}],["如果可能的话你可以从",{"2":{"686":1}}],["如果轮到玩家行动",{"2":{"660":1}}],["如果省略角色名则默认为当前角色",{"2":{"659":1}}],["如果省略数量将生成",{"2":{"658":1}}],["如果省略数量",{"2":{"616":1}}],["如果通过",{"2":{"648":1}}],["如果通过日志",{"2":{"199":1}}],["如果从未设置过",{"2":{"648":1}}],["如果提供了分组名",{"2":{"642":1}}],["如果提示",{"2":{"239":1}}],["如果命中",{"2":{"615":1}}],["如果命令中没写名字",{"2":{"114":1,"117":1}}],["如果命令写",{"2":{"114":1,"117":1,"134":1}}],["如果检定失败时成长为",{"2":{"615":1}}],["如果检定成功时不失去理智",{"2":{"609":1}}],["如果抽到的是恐惧症与躁狂症",{"2":{"612":2}}],["如果抽取",{"2":{"51":2}}],["如果疯狂发作时调查员周围没有其他调查员陪伴",{"2":{"612":1}}],["如果文件权限不正确",{"2":{"576":1}}],["如果目录体积较大",{"2":{"574":1}}],["如果这不是你期望的情况",{"2":{"531":1}}],["如果实在无法解决",{"2":{"504":1}}],["如果实在没有思路该如何说",{"2":{"190":1}}],["如果审核未通过",{"2":{"504":1}}],["如果配置了多个",{"2":{"494":1}}],["如果给予海豹的权限不充分",{"2":{"466":1,"471":1,"475":1}}],["如果仍然提示损坏",{"2":{"459":1}}],["如果对使用命令行感到困难",{"2":{"457":1}}],["如果对其中某种格式的语法有了解",{"2":{"30":1}}],["如果保活仍然失效",{"2":{"448":1}}],["如果条件允许的话",{"2":{"446":1}}],["如果全部满足",{"2":{"417":1}}],["如果显示的",{"2":{"686":1}}],["如果显示",{"2":{"414":1}}],["如果显示未启用的话",{"2":{"352":1}}],["如果左上角的开关未打开",{"2":{"404":1}}],["如果设置中勾选了",{"2":{"356":1}}],["如果设置了多个问题",{"2":{"349":1}}],["如果未发送消息的天数超过了你的设定",{"2":{"350":1}}],["如果留空",{"2":{"349":1}}],["如果忘记密码请看",{"2":{"347":1}}],["如果您感觉难以理解",{"2":{"346":1}}],["如果勾选了",{"2":{"320":2}}],["如果发现自己使用的",{"2":{"295":1}}],["如果希望骰子能对某些关键词做出响应",{"2":{"412":1}}],["如果希望骰子",{"2":{"272":1}}],["如果模拟器中没有安装",{"2":{"258":1}}],["如果没有请参照你使用的模拟器说明",{"2":{"257":1}}],["如果需要对一个技能进行多次成长",{"2":{"614":1}}],["如果需要导入",{"2":{"365":1}}],["如果需要通过关闭进程来腾出运行内存",{"2":{"252":1}}],["如果需要发送截图",{"2":{"187":1,"201":1}}],["如果出现类似场景",{"2":{"708":1}}],["如果出现例如家里突然停电了这样的情况",{"2":{"272":1}}],["如果出现了崩溃或闪退的情况",{"2":{"252":1}}],["如果出现莫名其妙的程序中断",{"0":{"199":1}}],["如果登录成功",{"2":{"242":1}}],["如果问题没能解决",{"0":{"230":1}}],["如果问题解决了",{"0":{"229":1}}],["如果回答者提供的解决方案解决了你的问题",{"2":{"229":1}}],["如果再遇到类似的问题",{"2":{"210":1}}],["如果确实存在占用过高的情况",{"2":{"199":1}}],["如果确定需要通过你的反馈对程序进行改动",{"2":{"192":1,"233":1}}],["如果直接在解压缩应用",{"2":{"196":1}}],["如果真的按照了方法去做",{"2":{"189":1}}],["如果说前篇的科普是知识层面的科普较多",{"2":{"185":1}}],["如果上面的代码输出",{"2":{"183":1}}],["如果灵视达到",{"2":{"180":1,"182":1}}],["如果灵视达到40以上",{"2":{"180":1}}],["如果不指定日志名",{"2":{"727":1}}],["如果不指定",{"2":{"598":1,"762":3}}],["如果不知道这些是干什么的",{"2":{"239":1}}],["如果不知道方法的你通过这些途径知道了如何解决这个问题",{"2":{"189":1}}],["如果不存在则为群昵称或",{"2":{"172":1}}],["如果不打算使用",{"2":{"149":1}}],["如果不对请拷打我",{"2":{"133":1}}],["如果积分相同",{"2":{"145":1}}],["如果生命值归零",{"2":{"145":1}}],["如果累计积分仍大于",{"2":{"145":1}}],["如果选择不摸鱼",{"2":{"145":1}}],["如果选择摸鱼后累计积分超过",{"2":{"145":1}}],["如果选择摸鱼",{"2":{"145":1}}],["如果填写了可选参数",{"2":{"141":1}}],["如果有调整值",{"2":{"604":1}}],["如果有可能",{"2":{"512":1}}],["如果有某个数据库文件后输出了",{"2":{"457":1}}],["如果有的服务器要求特定的鉴权",{"2":{"238":1}}],["如果有需要",{"0":{"192":1,"233":1}}],["如果有则返回一个",{"2":{"126":1}}],["如果有名为",{"2":{"110":1}}],["如果用户没有在黑名单",{"2":{"126":1}}],["如果是来自群组",{"2":{"706":1}}],["如果是",{"2":{"649":1,"681":1,"686":2}}],["如果是群聊发送那么在群里回复",{"2":{"116":1,"117":1}}],["如果是群聊",{"2":{"109":1}}],["如果是对代码仓库进行修改",{"2":{"10":1}}],["如果一部分变量无效",{"2":{"172":1}}],["如果一切正常则为",{"2":{"94":1}}],["如果一行的最后一个非空白字符是未被转义的",{"2":{"35":1}}],["如果后面有需要优先计算与或的东西",{"2":{"84":1}}],["如果想要添加一行",{"2":{"363":1}}],["如果想要在某个变量为空时",{"2":{"82":1}}],["如果想要输出字符串",{"2":{"77":1}}],["如果采用第一种分行的写法",{"2":{"82":1}}],["如果捕获组存在命名",{"2":{"73":1}}],["如果在上次导出后产生了新数据",{"2":{"442":1,"577":1}}],["如果在不知道如何在用户群提问能尽量干脆利落",{"2":{"214":1}}],["如果在手册的一般教程中没能找到答案",{"2":{"206":1}}],["如果在使用中依然存在疑问",{"2":{"91":1}}],["如果在",{"2":{"57":1}}],["如果使用者的名字有ob前缀",{"2":{"731":1}}],["如果使用的是",{"2":{"727":1}}],["如果使用",{"2":{"54":1}}],["如果字符串有很多行",{"2":{"35":1}}],["如果都不了解",{"2":{"30":1}}],["如果你已经有使用其他骰系的经验",{"2":{"716":1}}],["如果你向机器人连续发送",{"2":{"708":1}}],["如果你无法理解发生了什么",{"2":{"681":1}}],["如果你无法访问上述资源",{"2":{"207":1}}],["如果你无法访问",{"2":{"207":1}}],["如果你确实想了解",{"2":{"583":1}}],["如果你喜欢的规则这里没有",{"2":{"572":1}}],["如果你采用了任何自动拉起进程的手段",{"2":{"543":1}}],["如果你海豹所处的位置直接访问",{"2":{"465":1,"536":1}}],["如果你能确定导致你数据库出问题的事件",{"2":{"459":1}}],["如果你能用英文提出问题",{"2":{"207":1}}],["如果你注册了系统服务",{"2":{"457":1}}],["如果你并不确定该怎么做",{"2":{"446":1}}],["如果你有",{"2":{"513":1}}],["如果你有复杂回复编写的需要",{"2":{"425":1}}],["如果你有一台已经",{"2":{"254":1}}],["如果你有一些其它骰系的插件",{"2":{"170":1}}],["如果你觉得某一行不满意",{"2":{"363":1}}],["如果你是骰主",{"2":{"569":1,"681":1,"689":1}}],["如果你是在服务器上部署",{"2":{"521":1}}],["如果你是旧版本",{"2":{"262":1}}],["如果你是从零开始部署",{"2":{"17":1}}],["如果你的问题并没有在这里得到答案",{"2":{"680":1}}],["如果你的问题并不涉及某个的要素",{"2":{"222":1}}],["如果你的指令包含一些需要填写的参数",{"2":{"504":1}}],["如果你的系统没有自动允许海豹核心访问存储空间",{"2":{"453":1}}],["如果你的手机系统支持",{"2":{"440":1}}],["如果你的电脑是",{"2":{"262":1}}],["如果你的",{"2":{"241":1,"622":1}}],["如果你的动手能力足够强或者有足够的电脑知识",{"2":{"238":1}}],["如果你的海豹版本较新",{"2":{"30":1}}],["如果你暂时没有时间完整地阅读上述文章",{"2":{"215":1}}],["如果你只使用广度优先的方式学习知识",{"2":{"210":1}}],["如果你只使用深度优先的方式学习知识",{"2":{"209":1}}],["如果你只需要详细了解某个特定话题",{"2":{"16":1}}],["如果你英文足够熟练",{"2":{"207":1}}],["如果你知道如何访问",{"2":{"207":1}}],["如果你发现指令的回复与预期不符合",{"2":{"721":1}}],["如果你发现角色卡或",{"2":{"457":1}}],["如果你发现你在启动海豹核心",{"2":{"309":1}}],["如果你发现你的问题在",{"2":{"206":2}}],["如果你发现某个页面包含你需要的信息",{"2":{"207":1}}],["如果你发现有一些存在的",{"2":{"155":1}}],["如果你正在解决特定项目中遇到的问题",{"2":{"206":1}}],["如果你仍在上学",{"2":{"205":1}}],["如果你从未接触过计算机以及服务器",{"2":{"204":1}}],["如果你在一个群中通过",{"2":{"727":1}}],["如果你在",{"2":{"309":1}}],["如果你在实现某功能的过程中遇到了麻烦",{"2":{"223":1}}],["如果你在资源有限的小型计算机",{"2":{"199":1}}],["如果你在阅读其它人的",{"2":{"47":1}}],["如果你所说的其他编程语言为",{"2":{"170":1}}],["如果你需要把电脑海豹的数据迁移到手机海豹上",{"2":{"577":1}}],["如果你需要访问宿主机上监听",{"2":{"539":1}}],["如果你需要这样的持久变量",{"2":{"172":1}}],["如果你需要的",{"2":{"161":1}}],["如果你需要最准确的内容",{"2":{"94":1}}],["如果你打算使用",{"2":{"148":1,"162":1}}],["如果你尚未阅读",{"2":{"143":1}}],["如果你想主持游戏",{"2":{"747":1}}],["如果你想在",{"0":{"694":1}}],["如果你想知道如何进行自定义",{"2":{"650":1}}],["如果你想尝试一下这样的机器人",{"2":{"500":1}}],["如果你想回到初始设置",{"2":{"363":1}}],["如果你想认真地学习如何问出一个好问题",{"2":{"215":1}}],["如果你想改进速查表的内容",{"2":{"206":1}}],["如果你想要修改骰子向用户回复的提示词",{"2":{"361":1}}],["如果你想要让海豹实现某些功能",{"2":{"223":1}}],["如果你想要问的问题是新的",{"2":{"192":1,"233":1}}],["如果你想要给这个命令起一个别名",{"2":{"117":1}}],["如果你想使用",{"2":{"25":1,"254":1}}],["如果你不是海豹账号的好友",{"2":{"638":1}}],["如果你不跑这些规则",{"2":{"572":1}}],["如果你不想要任何娱乐功能",{"2":{"569":1}}],["如果你不想发布时在压缩包里添加一个教程",{"2":{"56":1}}],["如果你不慎拒绝通知权限",{"2":{"454":1}}],["如果你不了解这个指令",{"2":{"342":1}}],["如果你不确定某些信息是否应该重新描述",{"2":{"230":1}}],["如果你不清楚什么是日志",{"2":{"225":1}}],["如果你不知道",{"2":{"206":2}}],["如果你不知道选择什么",{"2":{"93":1}}],["如果你不得不在短时间内理解特定的英文内容",{"2":{"205":1}}],["如果你这么做了",{"2":{"73":1}}],["如果你还不熟悉它们",{"2":{"157":1}}],["如果你还没有阅读该章节",{"2":{"69":1}}],["如果你还希望海豹接入更多平台",{"2":{"18":1}}],["如果你对于玩法还不熟悉",{"2":{"747":1}}],["如果你对计算机",{"2":{"537":1}}],["如果你对使用命令行感到困难",{"2":{"458":1}}],["如果你对上面的内容感到陌生",{"2":{"162":1}}],["如果你对这些内容感到陌生",{"2":{"148":1}}],["如果你对正则表达式还很陌生",{"2":{"69":1}}],["如果你对",{"2":{"65":1,"90":1,"140":1,"504":1}}],["如果你希望保留旧的备份文件",{"2":{"575":1}}],["如果你希望保证发言顺序",{"2":{"423":1}}],["如果你希望在",{"2":{"549":1}}],["如果你希望直接尝试以上插件的效果",{"2":{"147":1}}],["如果你希望某些牌组彻底隐藏",{"2":{"57":1}}],["如果你希望自己动手",{"2":{"21":1}}],["如果你使用公骰",{"2":{"720":1,"724":1}}],["如果你使用远程",{"2":{"541":1}}],["如果你使用企业账号进行了注册",{"2":{"507":1}}],["如果你使用的是家用网络",{"2":{"501":1}}],["如果你使用的是",{"2":{"315":1,"426":1,"427":1,"684":1}}],["如果你使用",{"2":{"37":1,"684":1,"686":1}}],["如果你出现了奇怪的问题",{"2":{"31":1}}],["如果你之前部署过海豹核心",{"2":{"17":1}}],["如果你曾经修改了主分支",{"2":{"14":1}}],["如果你熟悉",{"2":{"12":1,"460":1}}],["如果之后还要提交新的",{"2":{"14":1}}],["如果",{"2":{"12":1,"78":3,"471":1,"649":1,"686":1}}],["如果此处已经有",{"2":{"11":1}}],["如有需求",{"2":{"530":1}}],["如有需要",{"2":{"491":2}}],["如有其它需求请阅读",{"2":{"258":1}}],["如有",{"2":{"7":1}}],["开黑啦",{"2":{"472":1,"474":1}}],["开放平台",{"2":{"499":1,"501":1}}],["开放平台点击",{"2":{"469":1}}],["开放平台注册账号并申请个人开发者",{"2":{"468":1}}],["开放模拟器端口供海豹对接",{"0":{"259":1}}],["开关自定义回复",{"2":{"746":1}}],["开关骰子",{"2":{"746":1}}],["开关",{"2":{"450":1,"513":1}}],["开启对应扩展",{"2":{"681":1}}],["开启性能模式",{"2":{"450":1}}],["开启回复调试日志",{"2":{"414":1}}],["开启后将回应频道消息",{"2":{"348":1}}],["开启后会对使用指令过快的用户和群组进行警告",{"2":{"346":1}}],["开启后",{"2":{"345":1,"732":1}}],["开启后在群聊中只有",{"2":{"343":1}}],["开启后只有",{"2":{"342":1}}],["开启此功能后只会通过邮件进行通知",{"2":{"335":1}}],["开启",{"2":{"317":1,"625":1,"656":1,"707":1}}],["开启云内容",{"2":{"64":1}}],["开始使用",{"0":{"579":1}}],["开始提供了内置客户端的连接方式",{"2":{"514":1}}],["开始编辑",{"2":{"503":1}}],["开始菜单",{"2":{"309":1}}],["开始适配了与",{"2":{"525":1}}],["开始适配了",{"2":{"254":1,"516":1}}],["开始也是没有任何问题的",{"2":{"161":1}}],["开始游戏时",{"2":{"145":1}}],["开始计算",{"2":{"98":1}}],["开始计数",{"2":{"94":1}}],["开始到随后出现的第一个",{"2":{"43":1}}],["开始支持对接",{"2":{"499":1,"529":1}}],["开始支持对接钉钉",{"2":{"462":1}}],["开始支持",{"2":{"41":1}}],["开始",{"2":{"37":1,"164":1,"167":1,"513":1,"589":1}}],["开头的命令",{"2":{"409":1}}],["开头的退群指令是什么",{"2":{"349":1}}],["开头的临时变量的存活周期仅为单次指令执行",{"2":{"172":1}}],["开头的东西",{"2":{"172":1}}],["开头的项不是必须的",{"2":{"48":1}}],["开头的行表示构成一个数组",{"2":{"47":1}}],["开头",{"2":{"32":1,"42":1,"44":1,"57":3,"114":1}}],["开列如下",{"2":{"18":1}}],["开发设置",{"2":{"501":2}}],["开发用于连接海豹的应用前",{"2":{"468":1}}],["开发者平台",{"2":{"464":1,"473":1}}],["开发者选项",{"2":{"262":1}}],["开发者们平时也通过",{"2":{"193":1,"202":1}}],["开发组于",{"2":{"254":1}}],["开发组的开发者们会通过讨论进行回复",{"2":{"192":1,"233":1}}],["开发组尽快满足这个需求或修复这个",{"2":{"192":1,"233":1}}],["开发",{"2":{"5":1}}],["开源程序",{"2":{"186":1,"200":1}}],["开源程序相关",{"0":{"185":1},"1":{"186":1,"187":1,"188":1,"189":1,"190":1,"191":1,"192":1,"193":1},"2":{"184":1}}],["开源协议",{"2":{"159":1}}],["开源",{"0":{"4":1},"2":{"186":1,"200":1}}],["+3",{"2":{"659":2}}],["+2",{"2":{"659":2,"756":1}}],["+0",{"2":{"634":1}}],["+1d4",{"2":{"678":1}}],["+1d8",{"2":{"659":1}}],["+1",{"2":{"548":1,"672":2}}],["+x",{"2":{"539":3}}],["++i",{"2":{"130":1}}],["++curpagerows",{"2":{"130":1}}],["+=",{"2":{"127":1,"129":1,"130":2}}],["+",{"2":{"5":1,"72":1,"73":1,"79":1,"84":5,"119":1,"127":3,"130":6,"133":1,"145":1,"147":1,"176":1,"178":1,"262":1,"368":1,"373":1,"570":7,"591":1,"615":3,"628":3,"630":1,"634":4,"636":1,"637":11,"639":2,"659":5,"665":1,"667":5,"669":1,"713":1,"746":1}}],["中管理跑团",{"2":{"730":1}}],["中寻找一个面向公众提供服务的骰子",{"2":{"718":1}}],["中为",{"2":{"717":1}}],["中可以添加消息通知的接收者",{"2":{"690":1}}],["中可以有多种等价表示方法",{"2":{"47":1}}],["中查看",{"2":{"583":1}}],["中文和英文缩写等价",{"2":{"582":1}}],["中快速尝试",{"2":{"578":1}}],["中设置分组的别名",{"2":{"642":1}}],["中设置各个扩展是否默认开启",{"2":{"569":1}}],["中设置每个批次的数量和批次间隔时间",{"2":{"350":1}}],["中提供的一些辅助工具",{"2":{"426":1}}],["中你可以经常看见一个文案调用其他文案的情况",{"2":{"366":1}}],["中按时间从新到旧列出了当前存在的备份文件",{"2":{"321":1}}],["中选择你希望海豹拥有的权限",{"2":{"466":1}}],["中选择",{"2":{"318":1,"453":1,"466":1}}],["中启用",{"2":{"263":1}}],["中打开",{"2":{"259":1,"262":1}}],["中翻阅了一下",{"2":{"210":1}}],["中反复刷屏同样的内容只会带来负面后果",{"2":{"206":1}}],["中双击运行压缩包内的",{"2":{"196":1}}],["中使用",{"2":{"172":1,"262":1}}],["中通过",{"2":{"164":1,"167":1}}],["中即是",{"2":{"154":1}}],["中添加",{"2":{"146":1}}],["中注册这个游戏系统",{"2":{"146":1}}],["中注册可供用户修改的配置项",{"2":{"138":1}}],["中修改配置项的值",{"2":{"139":1}}],["中显示",{"2":{"139":1}}],["中第一个匹配的前缀",{"2":{"110":1}}],["中去除",{"2":{"110":1}}],["中有完整内容",{"2":{"105":1}}],["中已有详细例子",{"2":{"94":1}}],["中择一执行",{"2":{"78":1}}],["中识别隐藏的牌组",{"2":{"57":1}}],["中展示",{"2":{"57":1}}],["中就不会展示",{"2":{"57":2}}],["中午",{"2":{"50":3,"57":6}}],["中的部分任意组合",{"2":{"711":1}}],["中的说明",{"2":{"520":1}}],["中的海豹",{"0":{"489":1},"1":{"490":1,"491":1,"492":1,"493":1,"494":1,"495":1,"496":1,"497":1,"498":1},"2":{"513":1}}],["中的被动",{"2":{"265":1}}],["中的选项",{"2":{"156":1}}],["中的值作为",{"2":{"138":1}}],["中的变量",{"2":{"94":3}}],["中的词条内容可以直接换行",{"2":{"68":1}}],["中的",{"2":{"36":1,"225":1,"320":1,"368":3,"369":1,"370":1,"371":2,"374":2,"720":1}}],["中",{"2":{"5":1,"7":1,"38":1,"46":1,"57":2,"70":1,"72":1,"73":1,"93":1,"110":1,"158":1,"259":1,"264":1,"285":1,"287":1,"290":1,"294":1,"363":1,"373":1,"386":1,"448":1,"450":1,"582":1,"612":1,"635":1,"636":1,"641":1,"652":2}}],["可在后台的日志中检查收到指令的实际时间和发出响应的实际时间",{"2":{"689":1}}],["可在后台手动添加黑",{"2":{"325":1}}],["可避免中英文冒号的识别问题",{"2":{"665":1}}],["可指定每页大小和页码",{"2":{"642":1}}],["可查看",{"2":{"530":1}}],["可加入",{"2":{"504":1}}],["可前往",{"2":{"501":1}}],["可进入",{"2":{"499":1}}],["可新建一个",{"2":{"480":1}}],["可直接添加管理员权限",{"2":{"475":1}}],["可直接添加",{"2":{"466":1,"471":1}}],["可通过",{"2":{"375":1}}],["可分为两种",{"2":{"347":1}}],["可使用",{"2":{"332":1,"378":1,"386":1,"424":1,"654":1}}],["可配置性和主题与风格化等等",{"2":{"309":1}}],["可共存",{"2":{"241":1}}],["可获取对方的数据",{"2":{"134":1}}],["可用逗号分隔地连写多组",{"2":{"672":1}}],["可用让",{"2":{"606":1}}],["可用",{"2":{"114":1,"117":2,"139":1,"647":1}}],["可用中文",{"2":{"114":1,"117":1}}],["可根据喜好选择",{"2":{"81":1}}],["可能的参数",{"2":{"709":2}}],["可能的公网",{"2":{"686":1}}],["可能是代理没配置上",{"2":{"686":1}}],["可能是防火墙没配置好",{"2":{"686":1}}],["可能是根据数据类型自动推断",{"2":{"94":1}}],["可能性三",{"2":{"681":1}}],["可能性二",{"2":{"681":1}}],["可能性一",{"2":{"681":1}}],["可能有各种",{"2":{"538":1}}],["可能需要使用",{"2":{"521":1}}],["可能存在风险",{"2":{"389":1}}],["可能会检测到这些机器人",{"2":{"718":1}}],["可能会在未来发生变化",{"2":{"515":1}}],["可能会缺少部分运行库",{"2":{"514":1}}],["可能会存在途径特有的功能缺失和其它问题",{"2":{"513":1}}],["可能会导致无法发送消息或图片",{"2":{"466":1,"471":1,"475":1}}],["可能会去拉取远程内容作为牌堆项",{"2":{"389":1}}],["可能会自动添加用户进黑名单",{"2":{"327":1}}],["可能会出现包括但不限于变量值不变",{"2":{"172":1}}],["可能会发现有牌堆通过下面这样的写法来实现这个功能",{"2":{"52":1,"54":1}}],["可能出现因为测试的内容对变量造成影响",{"2":{"70":1}}],["可选参数",{"2":{"141":2}}],["可选",{"0":{"14":1,"541":1},"2":{"150":1,"159":6,"165":1}}],["可不做任何修改",{"2":{"11":1}}],["可以选用的种族",{"2":{"763":1}}],["可以选择",{"2":{"427":1}}],["可以选择点击",{"2":{"414":1}}],["可以选择已有的分组",{"2":{"396":1}}],["可以选择关闭其他应用程序运行的进程",{"2":{"252":1}}],["可以省略日志名",{"2":{"728":1}}],["可以为空",{"2":{"727":1}}],["可以",{"2":{"716":1}}],["可以发现",{"2":{"708":1}}],["可以发现第",{"2":{"73":1}}],["可以是群号",{"2":{"706":1}}],["可以是小数",{"2":{"423":1}}],["可以进行配置",{"2":{"691":1}}],["可以进行以下调整",{"2":{"603":1}}],["可以整个复制",{"2":{"687":1}}],["可以关闭暗骰吗",{"0":{"682":1}}],["可以被组合使用",{"2":{"637":1}}],["可以被叫做",{"2":{"578":1}}],["可以被叫做海豹骰",{"2":{"68":1}}],["可以只指定失败时的理智损失",{"2":{"609":1}}],["可以实时编辑的跑团日志",{"0":{"568":1}}],["可以实现劫持客户端对外开放",{"2":{"519":1}}],["可以实现抽取其他项",{"2":{"50":1}}],["可以免去手动配置",{"2":{"541":1}}],["可以理解为装在",{"2":{"519":1}}],["可以理解为当什么情况下会触发这一条回复项",{"2":{"419":1}}],["可以方便地进行集中管理",{"2":{"490":1}}],["可以修改连接端口",{"2":{"481":1}}],["可以这样做",{"2":{"458":1}}],["可以这样写",{"2":{"117":1}}],["可以考虑这里的额外手段",{"2":{"455":1}}],["可以考虑减少用户群体",{"2":{"199":1}}],["可以稍后在系统设置中授予海豹核心相关权限",{"2":{"454":1}}],["可以跳转到",{"2":{"425":1}}],["可以给回复结果设置延迟",{"2":{"423":1}}],["可以新增一条结果",{"2":{"422":1}}],["可以新建一个文件",{"2":{"415":1}}],["可以勾选",{"2":{"414":1}}],["可以收起过长的内容",{"2":{"388":1,"406":1}}],["可以手动点击",{"2":{"385":1}}],["可以手动在",{"2":{"155":1}}],["可以点击",{"2":{"418":1}}],["可以点击它启用该文件",{"2":{"414":1}}],["可以点击启用",{"2":{"404":1}}],["可以点击右上角的",{"2":{"365":1}}],["可以点击本部分第一段中的超链接查看",{"2":{"206":1}}],["可以点开查看",{"2":{"356":1}}],["可以对黑白名单进行一些设置",{"2":{"328":1}}],["可以立即生成一份备份",{"2":{"316":1}}],["可以很方便的在多个平台",{"2":{"285":1,"516":1}}],["可以定位到某个特定的房屋",{"2":{"278":1}}],["可以同时按下键盘上",{"2":{"252":1}}],["可以尝试删除",{"2":{"242":1}}],["可以尝试使用",{"2":{"93":1,"239":2}}],["可以回车跳过而使用默认配置",{"2":{"239":1}}],["可以加入海豹官方群寻求帮助",{"2":{"239":1}}],["可以加入官方群进行反馈",{"2":{"7":1}}],["可以正确识别",{"2":{"224":1}}],["可以预见的",{"2":{"209":1}}],["可以用各种名字修改",{"2":{"582":1}}],["可以用各种名字使用",{"2":{"582":1}}],["可以用于判断该联系这户人中的哪一位",{"2":{"278":1}}],["可以用于匹配",{"2":{"209":1}}],["可以用这个指令测试",{"2":{"180":1}}],["可以去",{"0":{"192":1,"233":1}}],["可以去模板项目仓库看看有没有最新的",{"2":{"155":1}}],["可以插入表达式",{"2":{"173":1}}],["可以安装",{"2":{"168":1}}],["可以指定性别",{"2":{"762":1}}],["可以指定数量",{"2":{"762":1,"763":1}}],["可以指定语言",{"2":{"762":1}}],["可以指定的难度有",{"2":{"597":1}}],["可以指定目标海豹版本",{"2":{"167":1}}],["可以指定所有的导出项",{"2":{"57":1}}],["可以检查一下是否是最新版本",{"2":{"161":1}}],["可以下载海豹提供的",{"2":{"161":1}}],["可以不太准确的简单理解为会生成一些密码发给腾讯",{"2":{"251":1}}],["可以不含此行或含有多行",{"2":{"159":1}}],["可以不写在另一条里",{"2":{"83":1}}],["可以自定义大部分指令的回复语句",{"2":{"551":1}}],["可以自己试试看除了在",{"2":{"193":1,"202":1}}],["可以自己定义",{"2":{"159":1}}],["可以自行进行替换",{"2":{"190":1}}],["可以自行",{"2":{"12":1}}],["可以从以下两个渠道获取海豹核心安装包",{"2":{"538":1}}],["可以从以下链接获取经过编译的",{"2":{"147":1}}],["可以从相册扫码",{"2":{"437":1}}],["可以从互联网上寻找到很多优秀的教程",{"2":{"157":1}}],["可以创建项目使用前端工具链来编译出插件",{"2":{"148":1}}],["可以直接复制到其他骰子使用",{"2":{"592":1}}],["可以直接点击按钮更新",{"2":{"543":1}}],["可以直接在该文件中进行自定义回复的编写",{"2":{"414":1}}],["可以直接编译出一个可直接装载的",{"2":{"148":1}}],["可以直接使用系统的双开功能",{"2":{"440":1}}],["可以直接使用",{"2":{"146":1}}],["可以直接进行后续步骤无需再次",{"2":{"11":1}}],["可以互换交换一次属性点位置",{"2":{"145":1}}],["可以看作是一个微型搜索引擎",{"2":{"553":1}}],["可以看到一些保活策略",{"2":{"455":1}}],["可以看到如下的两个列表",{"2":{"356":1}}],["可以看到如下配置项",{"2":{"238":1}}],["可以看到使用seal",{"2":{"133":1}}],["可以看看里面是否已经包含了你想了解的概念",{"2":{"206":1}}],["可以看见有一个",{"2":{"385":1}}],["可以看见",{"2":{"82":1,"165":1,"362":1,"363":1,"404":1}}],["可以通过这个指令进行回复",{"2":{"706":1}}],["可以通过公开互联网访问",{"2":{"622":1}}],["可以通过此项筛选出那些不用的条目",{"2":{"364":1}}],["可以通过平日里学的",{"2":{"189":1,"217":1}}],["可以通过",{"2":{"120":1,"141":1,"497":1}}],["可以通过配置它们的导出来实现",{"2":{"57":1}}],["可以通过配置牌堆文件的",{"2":{"57":1}}],["可以包含",{"2":{"116":1}}],["可以查看扩展介绍及帮助",{"2":{"625":1}}],["可以查看报错信息",{"2":{"431":1}}],["可以查看报错消息",{"2":{"431":1}}],["可以查看相应扩展的说明来获取使用帮助",{"2":{"409":1}}],["可以查看当前的",{"2":{"405":1}}],["可以查看下文的",{"2":{"132":1}}],["可以查看",{"2":{"112":1}}],["可以模块化开关海豹的任意一部分",{"2":{"112":1}}],["可以称为",{"2":{"92":1,"171":1}}],["可以在设置中调整",{"2":{"689":1}}],["可以在当前群开启或关闭某扩展",{"2":{"625":1}}],["可以在海豹核心目录下执行以下两条命令",{"2":{"576":1}}],["可以在海豹运行时",{"2":{"199":1}}],["可以在后台关闭对应的指令",{"2":{"572":1}}],["可以在不同骰系下测试一下这些指令",{"2":{"570":1}}],["可以在无",{"2":{"263":1}}],["可以在",{"2":{"139":1,"625":1,"681":1}}],["可以在官方群内寻求帮助",{"2":{"91":1}}],["可以在赋值时使用条件算符",{"2":{"84":1}}],["可以采用如下两种写法中的一种",{"2":{"83":1}}],["可以调用一些",{"2":{"75":1}}],["可以参看",{"2":{"263":1}}],["可以参考海豹核心内置的",{"2":{"146":1}}],["可以参考",{"2":{"140":1,"268":1,"285":1,"287":1,"294":1}}],["可以参考如下代码",{"2":{"131":1}}],["可以参考以下材料",{"2":{"69":1}}],["可以参见这些文档或自行搜索",{"2":{"31":1}}],["可以阅读以下教程或自行在互联网搜索",{"2":{"65":1,"90":1}}],["可以将上述内容保存名为",{"2":{"48":3}}],["可以抽取出",{"2":{"48":2}}],["可以使用所有需要群管理权限的功能",{"2":{"120":1}}],["可以使用别名抽取改牌组",{"2":{"61":1}}],["可以使用行内语法表示数组",{"2":{"47":1}}],["可以使用行内语法表示对象",{"2":{"46":1}}],["可以使用",{"2":{"45":1,"84":1,"146":1,"386":1,"478":1,"541":1,"648":1,"686":1,"727":1,"734":1}}],["可以使用多行字符串语法",{"2":{"35":1}}],["可以帮助改进代码",{"2":{"8":1}}],["可反馈在该仓库的",{"2":{"5":1}}],["可阅读对应仓库的",{"2":{"5":1}}],["gm",{"2":{"579":1,"741":1}}],["global",{"2":{"497":1}}],["ghcr",{"2":{"491":5,"539":1}}],["gateway",{"2":{"464":1}}],["gamesystem",{"2":{"94":2,"103":2}}],["g",{"0":{"273":1},"1":{"274":1}}],["gugu",{"0":{"702":1},"2":{"569":1,"702":2}}],["guild",{"2":{"466":1}}],["guildid",{"2":{"106":1,"109":1}}],["gui",{"2":{"262":1,"302":1}}],["guestport",{"2":{"259":1}}],["gpl",{"2":{"159":1}}],["generator",{"2":{"135":1,"158":1,"466":1}}],["getgroups",{"2":{"142":1}}],["gettasks",{"2":{"142":1}}],["gettemplateconfig",{"2":{"94":1,"139":1}}],["getxxxconfig",{"2":{"138":1}}],["getrestargsfrom",{"2":{"110":1}}],["getkwarg",{"2":{"110":1}}],["getargn",{"2":{"110":1,"115":5,"116":2,"117":2,"119":2,"127":5,"129":1,"130":5,"133":1,"134":1,"139":1}}],["getvaluenamebyalias",{"2":{"107":1}}],["getversion",{"2":{"104":1}}],["getendpoints",{"2":{"104":1}}],["getuser",{"2":{"94":1,"126":1,"127":1}}],["getlist",{"2":{"94":1,"125":1,"127":1}}],["getoptionconfig",{"2":{"94":1,"139":1}}],["getboolconfig",{"2":{"94":1,"139":1}}],["getfloatconfig",{"2":{"94":1,"139":1}}],["getintconfig",{"2":{"94":1,"139":1}}],["getstringconfig",{"2":{"94":1,"139":1}}],["getchartemplate",{"2":{"106":1}}],["getconfig",{"2":{"94":1,"138":1,"139":4}}],["getctxproxyatpos",{"0":{"98":1},"2":{"94":2,"98":1}}],["getctxproxyfirst",{"0":{"98":1},"2":{"94":1,"98":1,"134":1}}],["get",{"2":{"63":1,"135":1,"479":1,"729":1,"746":1,"765":1}}],["green",{"0":{"739":1},"2":{"739":1}}],["gre单词",{"2":{"118":1,"652":8}}],["groupclr",{"2":{"643":1}}],["group=",{"2":{"643":1}}],["groups",{"2":{"142":3,"531":1,"532":2}}],["groupnum",{"2":{"108":1}}],["groupname",{"2":{"106":1}}],["groupwelcomemessage",{"2":{"106":1}}],["group",{"0":{"106":1},"2":{"105":1,"109":1,"133":1,"142":2,"172":3,"427":1,"460":4,"497":1,"623":1,"643":1}}],["groupid",{"2":{"94":2,"96":4,"106":1,"109":1,"133":1,"142":1}}],["gt",{"2":{"48":1,"57":5,"66":1,"68":2,"70":1,"73":1,"78":4,"89":1,"90":1,"114":1,"120":1,"141":1,"165":3,"172":4,"224":1,"225":2,"262":1,"290":1,"450":4,"585":2,"587":1,"588":1,"589":7,"590":2,"591":2,"595":1,"596":2,"597":2,"598":2,"604":1,"605":2,"606":3,"608":2,"609":2,"610":3,"614":4,"615":7,"616":1,"619":1,"620":1,"622":3,"623":5,"625":2,"626":1,"627":2,"635":7,"636":4,"640":1,"641":10,"642":5,"643":1,"647":1,"648":3,"652":3,"653":2,"658":2,"659":6,"660":4,"663":3,"664":2,"665":6,"667":4,"670":6,"674":2,"678":1,"684":1,"694":1,"703":3,"704":2,"705":1,"706":3,"707":1,"709":11,"711":2,"712":1,"713":3,"714":1,"715":1,"722":3,"727":3,"728":2,"729":6,"730":3,"734":1,"735":1,"746":35,"748":2,"750":1,"751":2,"753":1,"755":1,"756":1,"757":1,"762":1,"763":2,"764":1,"765":8}}],["git",{"2":{"12":2,"99":3,"149":1}}],["github",{"0":{"192":1,"193":1,"202":1,"233":1},"2":{"1":1,"4":1,"5":1,"7":3,"9":1,"10":1,"13":1,"94":1,"105":1,"117":1,"119":1,"121":1,"127":1,"129":1,"130":1,"133":1,"134":1,"136":1,"149":2,"158":1,"159":2,"186":1,"192":1,"193":5,"200":1,"202":5,"206":1,"233":1,"279":1,"285":1,"287":1,"294":1,"384":1,"393":1,"403":1,"416":1,"481":1,"538":2}}],["gocqhttp",{"0":{"243":1},"1":{"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1},"2":{"516":1}}],["gocqqq号",{"2":{"242":1}}],["gocq",{"0":{"250":1},"2":{"240":1,"242":6,"246":1,"251":1,"254":2}}],["google",{"2":{"207":3,"686":1}}],["goja",{"2":{"158":1}}],["gotype",{"2":{"138":1}}],["gofunc",{"2":{"72":1}}],["golang",{"2":{"69":1,"550":1}}],["go",{"0":{"236":1,"250":1},"1":{"237":1,"238":1,"239":1,"240":1,"241":1,"242":1,"243":1,"244":1,"245":1,"246":1,"247":1,"248":1,"249":1,"250":1,"251":1,"252":1},"2":{"5":1,"69":1,"72":1,"94":1,"165":1,"236":5,"239":2,"242":5,"512":1,"513":1,"687":1}}],["核心日志",{"2":{"431":1}}],["核心代码同样只有一行的",{"2":{"135":1}}],["核心指令是无法被关闭的指令",{"2":{"621":1}}],["核心指令",{"0":{"621":1},"1":{"622":1,"623":1,"624":1,"625":1,"626":1,"627":1,"628":1,"629":1,"630":1,"631":1,"632":1,"633":1,"634":1,"635":1,"636":1,"637":1,"638":1,"639":1,"640":1,"641":1,"642":1,"643":1,"644":1,"645":1,"646":1,"647":1,"648":1,"649":1},"2":{"20":1,"326":1,"394":1,"395":1,"625":1,"711":1,"712":1,"746":1}}],["核心",{"0":{"372":1},"1":{"373":1,"374":1},"2":{"5":1,"7":1,"362":1,"375":1,"377":1,"380":2}}],["下扫码",{"0":{"685":1},"1":{"686":1,"687":1}}],["下略",{"2":{"665":1}}],["下点击",{"2":{"532":1}}],["下滑在",{"2":{"532":1}}],["下添加如下事件",{"2":{"531":1}}],["下选择你希望海豹拥有的权限",{"2":{"471":1}}],["下填写对应的信息",{"2":{"470":1}}],["下找到",{"2":{"469":1,"473":1,"532":1}}],["下方的子目录",{"2":{"466":1,"475":1}}],["下方的敏感词列表会展示当前加载的敏感词",{"2":{"356":1}}],["下拉框",{"2":{"364":1}}],["下载安装",{"2":{"523":1}}],["下载安装就可以了",{"2":{"196":1}}],["下载对应版本的服务端核心文件",{"2":{"479":2}}],["下载其中的",{"2":{"460":1}}],["下载原图和删除图片文件",{"2":{"428":1}}],["下载",{"0":{"523":1},"2":{"258":1,"321":1,"414":1,"441":2,"481":1,"686":1}}],["下载完成后",{"2":{"257":1,"460":1}}],["下同",{"2":{"180":1}}],["下读出的数据即被代骰者的个人数据",{"2":{"134":1}}],["下的备份文件",{"2":{"574":1}}],["下的",{"2":{"114":1}}],["下划线和短横线",{"2":{"34":1}}],["下面该",{"2":{"660":1}}],["下面以",{"2":{"478":1}}],["下面我们将一一介绍其中的功能",{"2":{"413":1}}],["下面我们将一一介绍",{"2":{"353":1}}],["下面的方法随时可能失效",{"2":{"239":1}}],["下面的语法中涉及到的符号都是",{"2":{"31":1}}],["下面是一个可以作为参考的问问题的方式",{"2":{"190":1}}],["下面是一个可行的思考过程",{"2":{"189":1,"217":1}}],["下面是一个简单的示例",{"2":{"77":1}}],["下面是",{"2":{"94":4,"722":1}}],["下面将引导你跳转到对应规则的具体命令支持页",{"2":{"738":1}}],["下面将一一介绍",{"2":{"404":1}}],["下面将简单介绍他们之间的关系",{"2":{"366":1}}],["下面将使用",{"2":{"255":1}}],["下面将补充介绍进阶内容",{"2":{"70":1}}],["下面将以提交对手册的改进为示例",{"2":{"9":1}}],["下",{"2":{"4":1,"5":1,"299":1,"532":1}}],["浣熊旅記",{"2":{"3":1,"67":1}}],["憧憬少",{"2":{"3":1,"130":2}}],["病毒",{"2":{"15":1}}],["病",{"2":{"3":1}}],["蜜瓜包",{"2":{"3":1,"646":1}}],["鹊鹊结合实际经历创作",{"2":{"552":1,"702":1}}],["鹊鹊",{"2":{"3":1}}],["新人入群欢迎",{"0":{"707":1}}],["新建空白卡",{"2":{"746":1}}],["新建日志",{"2":{"746":1}}],["新建",{"0":{"415":1},"2":{"415":1}}],["新建一份日志",{"2":{"727":1}}],["新建一张角色卡",{"2":{"641":1}}],["新建一个空白文件夹",{"2":{"480":1}}],["新建一个",{"2":{"158":1}}],["新建一轮分歧并设标题",{"2":{"130":1}}],["新建一项自定义回复",{"2":{"70":1}}],["新版本的海豹有时会增加更多插件可以调用的",{"2":{"167":1}}],["新版本支持了直接使用时间字符串",{"2":{"159":1}}],["新版本发布的正式地址",{"2":{"1":1}}],["新增链接",{"2":{"518":1,"524":1}}],["新增连接",{"2":{"514":1}}],["新增的",{"2":{"167":2}}],["新增",{"2":{"94":3,"385":1}}],["新开一行赋值",{"2":{"84":1}}],["新",{"2":{"5":1}}],["新手册贡献者",{"2":{"3":1}}],["染色",{"2":{"1":1}}],["官方",{"2":{"708":1}}],["官方手册",{"2":{"523":1,"526":1}}],["官方文档",{"2":{"520":1,"522":1}}],["官方认可",{"2":{"514":1}}],["官方认可的机器人方案",{"2":{"512":1}}],["官方保证",{"2":{"512":1}}],["官方角度等同于",{"2":{"512":1}}],["官方会对账号行为进行检测",{"2":{"512":1}}],["官方一直在对第三方实现进行技术与非技术层面的多重打击",{"2":{"512":1}}],["官方人员测试并审核",{"2":{"504":1}}],["官方对机器人能力的严格限制",{"2":{"499":1}}],["官方目前已开放了机器人功能",{"2":{"499":1}}],["官方的工作人员审核通过",{"2":{"504":1}}],["官方的机器人服务",{"2":{"499":1}}],["官方的检测",{"2":{"236":1}}],["官方机器人权限",{"2":{"513":1}}],["官方机器人服务",{"2":{"512":1}}],["官方机器人目前无法发送本地图片",{"2":{"505":1}}],["官方机器人会因为消息发送过于频繁而报错",{"2":{"505":1}}],["官方机器人一次只能发一条消息",{"2":{"505":1}}],["官方机器人默认的指令前缀",{"2":{"503":1}}],["官方机器人的优点",{"2":{"499":1}}],["官方机器人已开放个体使用权限",{"2":{"499":1}}],["官方机器人平台接入海豹核心需要了解的特定内容",{"2":{"499":1}}],["官方机器人",{"0":{"499":1},"1":{"500":1,"501":1,"502":1,"503":1,"504":1,"505":1,"506":1,"507":1,"508":1,"509":1},"2":{"502":1,"513":1}}],["官方站点",{"0":{"1":1}}],["官网的下载最顺畅和便捷",{"2":{"538":1}}],["官网下载页",{"2":{"538":1}}],["官网下载可能会十分缓慢",{"2":{"93":1}}],["官网应当是你下载软件的首选途径",{"2":{"93":1}}],["官网",{"2":{"1":1,"2":1,"538":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/assets/chunks/VPLocalSearchBox.B3c5Vn6E.js b/assets/chunks/VPLocalSearchBox.B3c5Vn6E.js new file mode 100644 index 000000000..4a89cb9ce --- /dev/null +++ b/assets/chunks/VPLocalSearchBox.B3c5Vn6E.js @@ -0,0 +1,7 @@ +var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Me=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Rt,p as ie,h as me,a8 as et,a9 as Ct,aa as Mt,q as $e,ab as At,d as Lt,D as xe,ac as tt,ad as Dt,ae as zt,s as Pt,af as jt,v as Ae,P as he,O as Se,ag as Vt,ah as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as S,a0 as Ut,k as L,ai as qt,aj as Gt,ak as Ht,c as Z,n as st,e as _e,C as nt,F as it,a as fe,t as pe,al as Qt,am as rt,an as Yt,ao as Zt,ap as Xt,aq as es,_ as ts}from"./framework.B1keMFNq.js";import{u as ss,c as ns}from"./theme.8WvZWF-M.js";const is={root:()=>Rt(()=>import("./@localSearchIndexroot.BrUPPGVN.js"),[])};/*! +* tabbable 6.2.0 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/var mt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=mt.join(","),gt=typeof Element>"u",ae=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Fe=!gt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Oe=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},bt=function(e,t,s){if(Oe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},yt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Oe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ae.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var m=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Oe(m,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(m&&f){var b=a(m===!0?i.children:m.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},re=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rs(e))&&!wt(e)?0:e.tabIndex},as=function(e,t){var s=re(e);return s<0&&t&&!wt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ls=function(e){return xt(e)&&e.type==="hidden"},cs=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;sL&&(l=L),TM&&(u=M),d L&&(l=L),T
M&&(u=M),d =this.nodes.length){var Q=0;T.forEach(function(D){D.owner==c&&Q++}),Q==this.nodes.length&&(this.isConnected=!0)}},A.exports=h},function(A,G,N){var g,s=N(1);function i(r){g=N(6),this.layout=r,this.graphs=[],this.edges=[]}i.prototype.addRoot=function(){var r=this.layout.newGraph(),e=this.layout.newNode(null),f=this.add(r,e);return this.setRootGraph(f),this.rootGraph},i.prototype.add=function(r,e,f,a,y){if(f==null&&a==null&&y==null){if(r==null)throw"Graph is null!";if(e==null)throw"Parent node is null!";if(this.graphs.indexOf(r)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(r),r.parent!=null)throw"Already has a parent!";if(e.child!=null)throw"Already has a child!";return r.parent=e,e.child=r,r}else{y=f,a=e,f=r;var t=a.getOwner(),h=y.getOwner();if(!(t!=null&&t.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(h!=null&&h.getGraphManager()==this))throw"Target not in this graph mgr!";if(t==h)return f.isInterGraph=!1,t.add(f,a,y);if(f.isInterGraph=!0,f.source=a,f.target=y,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},i.prototype.remove=function(r){if(r instanceof g){var e=r;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(e==this.rootGraph||e.parent!=null&&e.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(e.getEdges());for(var a,y=f.length,t=0;t
=r.getRight()?e[0]+=Math.min(r.getX()-i.getX(),i.getRight()-r.getRight()):r.getX()<=i.getX()&&r.getRight()>=i.getRight()&&(e[0]+=Math.min(i.getX()-r.getX(),r.getRight()-i.getRight())),i.getY()<=r.getY()&&i.getBottom()>=r.getBottom()?e[1]+=Math.min(r.getY()-i.getY(),i.getBottom()-r.getBottom()):r.getY()<=i.getY()&&r.getBottom()>=i.getBottom()&&(e[1]+=Math.min(i.getY()-r.getY(),r.getBottom()-i.getBottom()));var y=Math.abs((r.getCenterY()-i.getCenterY())/(r.getCenterX()-i.getCenterX()));r.getCenterY()===i.getCenterY()&&r.getCenterX()===i.getCenterX()&&(y=1);var t=y*e[0],h=e[1]/y;e[0] t)return e[0]=f,e[1]=o,e[2]=y,e[3]=V,!1;if(a y)return e[0]=h,e[1]=a,e[2]=P,e[3]=t,!1;if(f y?(e[0]=l,e[1]=T,n=!0):(e[0]=c,e[1]=o,n=!0):v===p&&(f>y?(e[0]=h,e[1]=o,n=!0):(e[0]=u,e[1]=T,n=!0)),-E===p?y>f?(e[2]=J,e[3]=V,m=!0):(e[2]=P,e[3]=M,m=!0):E===p&&(y>f?(e[2]=F,e[3]=M,m=!0):(e[2]=Q,e[3]=V,m=!0)),n&&m)return!1;if(f>y?a>t?(I=this.getCardinalDirection(v,p,4),w=this.getCardinalDirection(E,p,2)):(I=this.getCardinalDirection(-v,p,3),w=this.getCardinalDirection(-E,p,1)):a>t?(I=this.getCardinalDirection(-v,p,1),w=this.getCardinalDirection(-E,p,3)):(I=this.getCardinalDirection(v,p,2),w=this.getCardinalDirection(E,p,4)),!n)switch(I){case 1:H=o,R=f+-L/p,e[0]=R,e[1]=H;break;case 2:R=u,H=a+d*p,e[0]=R,e[1]=H;break;case 3:H=T,R=f+L/p,e[0]=R,e[1]=H;break;case 4:R=l,H=a+-d*p,e[0]=R,e[1]=H;break}if(!m)switch(w){case 1:k=M,x=y+-rt/p,e[2]=x,e[3]=k;break;case 2:x=Q,k=t+D*p,e[2]=x,e[3]=k;break;case 3:k=V,x=y+rt/p,e[2]=x,e[3]=k;break;case 4:x=J,k=t+-D*p,e[2]=x,e[3]=k;break}}return!1},s.getCardinalDirection=function(i,r,e){return i>r?e:1+e%4},s.getIntersection=function(i,r,e,f){if(f==null)return this.getIntersection2(i,r,e);var a=i.x,y=i.y,t=r.x,h=r.y,o=e.x,c=e.y,l=f.x,T=f.y,u=void 0,d=void 0,L=void 0,F=void 0,M=void 0,P=void 0,J=void 0,V=void 0,Q=void 0;return L=h-y,M=a-t,J=t*y-a*h,F=T-c,P=o-l,V=l*c-o*T,Q=L*P-F*M,Q===0?null:(u=(M*V-P*J)/Q,d=(F*J-L*V)/Q,new g(u,d))},s.angleOfVector=function(i,r,e,f){var a=void 0;return i!==e?(a=Math.atan((f-r)/(e-i)),e=0){var T=(-o+Math.sqrt(o*o-4*h*c))/(2*h),u=(-o-Math.sqrt(o*o-4*h*c))/(2*h),d=null;return T>=0&&T<=1?[T]:u>=0&&u<=1?[u]:d}else return null},s.HALF_PI=.5*Math.PI,s.ONE_AND_HALF_PI=1.5*Math.PI,s.TWO_PI=2*Math.PI,s.THREE_PI=3*Math.PI,A.exports=s},function(A,G,N){function g(){}g.sign=function(s){return s>0?1:s<0?-1:0},g.floor=function(s){return s<0?Math.ceil(s):Math.floor(s)},g.ceil=function(s){return s<0?Math.floor(s):Math.ceil(s)},A.exports=g},function(A,G,N){function g(){}g.MAX_VALUE=2147483647,g.MIN_VALUE=-2147483648,A.exports=g},function(A,G,N){var g=function(){function a(y,t){for(var h=0;h "u"?"undefined":g(i);return i==null||r!="object"&&r!="function"},A.exports=s},function(A,G,N){function g(o){if(Array.isArray(o)){for(var c=0,l=Array(o.length);c 0&&c;){for(L.push(M[0]);L.length>0&&c;){var P=L[0];L.splice(0,1),d.add(P);for(var J=P.getEdges(),u=0;u -1&&M.splice(rt,1)}d=new Set,F=new Map}}return o},h.prototype.createDummyNodesForBendpoints=function(o){for(var c=[],l=o.source,T=this.graphManager.calcLowestCommonAncestor(o.source,o.target),u=0;u 0){for(var T=this.edgeToDummyNodes.get(l),u=0;u =0&&c.splice(V,1);var Q=F.getNeighborsList();Q.forEach(function(n){if(l.indexOf(n)<0){var m=T.get(n),v=m-1;v==1&&P.push(n),T.set(n,v)}})}l=l.concat(P),(c.length==1||c.length==2)&&(u=!0,d=c[0])}return d},h.prototype.setGraphManager=function(o){this.graphManager=o},A.exports=h},function(A,G,N){function g(){}g.seed=1,g.x=0,g.nextDouble=function(){return g.x=Math.sin(g.seed++)*1e4,g.x-Math.floor(g.x)},A.exports=g},function(A,G,N){var g=N(5);function s(i,r){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}s.prototype.getWorldOrgX=function(){return this.lworldOrgX},s.prototype.setWorldOrgX=function(i){this.lworldOrgX=i},s.prototype.getWorldOrgY=function(){return this.lworldOrgY},s.prototype.setWorldOrgY=function(i){this.lworldOrgY=i},s.prototype.getWorldExtX=function(){return this.lworldExtX},s.prototype.setWorldExtX=function(i){this.lworldExtX=i},s.prototype.getWorldExtY=function(){return this.lworldExtY},s.prototype.setWorldExtY=function(i){this.lworldExtY=i},s.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},s.prototype.setDeviceOrgX=function(i){this.ldeviceOrgX=i},s.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},s.prototype.setDeviceOrgY=function(i){this.ldeviceOrgY=i},s.prototype.getDeviceExtX=function(){return this.ldeviceExtX},s.prototype.setDeviceExtX=function(i){this.ldeviceExtX=i},s.prototype.getDeviceExtY=function(){return this.ldeviceExtY},s.prototype.setDeviceExtY=function(i){this.ldeviceExtY=i},s.prototype.transformX=function(i){var r=0,e=this.lworldExtX;return e!=0&&(r=this.ldeviceOrgX+(i-this.lworldOrgX)*this.ldeviceExtX/e),r},s.prototype.transformY=function(i){var r=0,e=this.lworldExtY;return e!=0&&(r=this.ldeviceOrgY+(i-this.lworldOrgY)*this.ldeviceExtY/e),r},s.prototype.inverseTransformX=function(i){var r=0,e=this.ldeviceExtX;return e!=0&&(r=this.lworldOrgX+(i-this.ldeviceOrgX)*this.lworldExtX/e),r},s.prototype.inverseTransformY=function(i){var r=0,e=this.ldeviceExtY;return e!=0&&(r=this.lworldOrgY+(i-this.ldeviceOrgY)*this.lworldExtY/e),r},s.prototype.inverseTransformPoint=function(i){var r=new g(this.inverseTransformX(i.x),this.inverseTransformY(i.y));return r},A.exports=s},function(A,G,N){function g(t){if(Array.isArray(t)){for(var h=0,o=Array(t.length);h i.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*i.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-i.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>i.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(i.COOLING_ADAPTATION_FACTOR,1-(t-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*(1-i.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*i.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},a.prototype.calcSpringForces=function(){for(var t=this.getAllEdges(),h,o=0;o 0&&arguments[0]!==void 0?arguments[0]:!0,h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o,c,l,T,u=this.getAllNodes(),d;if(this.useFRGridVariant)for(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&t&&this.updateGrid(),d=new Set,o=0;o L||d>L)&&(t.gravitationForceX=-this.gravityConstant*l,t.gravitationForceY=-this.gravityConstant*T)):(L=h.getEstimatedSize()*this.compoundGravityRangeFactor,(u>L||d>L)&&(t.gravitationForceX=-this.gravityConstant*l*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*T*this.compoundGravityConstant))},a.prototype.isConverged=function(){var t,h=!1;return this.totalIterations>this.maxIterations/3&&(h=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement =u.length||L>=u[0].length)){for(var F=0;Fa}}]),e}();A.exports=r},function(A,G,N){function g(){}g.svd=function(s){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=s.length,this.n=s[0].length;var i=Math.min(this.m,this.n);this.s=function(Nt){for(var Mt=[];Nt-- >0;)Mt.push(0);return Mt}(Math.min(this.m+1,this.n)),this.U=function(Nt){var Mt=function Zt(Gt){if(Gt.length==0)return 0;for(var $t=[],Ft=0;Ft 0;)Mt.push(0);return Mt}(this.n),e=function(Nt){for(var Mt=[];Nt-- >0;)Mt.push(0);return Mt}(this.m),f=!0,a=Math.min(this.m-1,this.n),y=Math.max(0,Math.min(this.n-2,this.m)),t=0;t =0;E--)if(this.s[E]!==0){for(var p=E+1;p=0;W--){if(function(Nt,Mt){return Nt&&Mt}(W 0;){var q=void 0,Rt=void 0;for(q=n-2;q>=-1&&q!==-1;q--)if(Math.abs(r[q])<=lt+_*(Math.abs(this.s[q])+Math.abs(this.s[q+1]))){r[q]=0;break}if(q===n-2)Rt=4;else{var Lt=void 0;for(Lt=n-1;Lt>=q&&Lt!==q;Lt--){var vt=(Lt!==n?Math.abs(r[Lt]):0)+(Lt!==q+1?Math.abs(r[Lt-1]):0);if(Math.abs(this.s[Lt])<=lt+_*vt){this.s[Lt]=0;break}}Lt===q?Rt=3:Lt===n-1?Rt=1:(Rt=2,q=Lt)}switch(q++,Rt){case 1:{var it=r[n-2];r[n-2]=0;for(var ut=n-2;ut>=q;ut--){var Tt=g.hypot(this.s[ut],it),At=this.s[ut]/Tt,Dt=it/Tt;this.s[ut]=Tt,ut!==q&&(it=-Dt*r[ut-1],r[ut-1]=At*r[ut-1]);for(var mt=0;mt =this.s[q+1]);){var Ct=this.s[q];if(this.s[q]=this.s[q+1],this.s[q+1]=Ct,q Math.abs(i)?(r=i/s,r=Math.abs(s)*Math.sqrt(1+r*r)):i!=0?(r=s/i,r=Math.abs(i)*Math.sqrt(1+r*r)):r=0,r},A.exports=g},function(A,G,N){var g=function(){function r(e,f){for(var a=0;a 2&&arguments[2]!==void 0?arguments[2]:1,y=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;s(this,r),this.sequence1=e,this.sequence2=f,this.match_score=a,this.mismatch_penalty=y,this.gap_penalty=t,this.iMax=e.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var h=0;h =0;e--){var f=this.listeners[e];f.event===i&&f.callback===r&&this.listeners.splice(e,1)}},s.emit=function(i,r){for(var e=0;e {var G={45:(i,r,e)=>{var f={};f.layoutBase=e(551),f.CoSEConstants=e(806),f.CoSEEdge=e(767),f.CoSEGraph=e(880),f.CoSEGraphManager=e(578),f.CoSELayout=e(765),f.CoSENode=e(991),f.ConstraintHandler=e(902),i.exports=f},806:(i,r,e)=>{var f=e(551).FDLayoutConstants;function a(){}for(var y in f)a[y]=f[y];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,a.ENFORCE_CONSTRAINTS=!0,a.APPLY_LAYOUT=!0,a.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,a.TREE_REDUCTION_ON_INCREMENTAL=!0,a.PURE_INCREMENTAL=a.DEFAULT_INCREMENTAL,i.exports=a},767:(i,r,e)=>{var f=e(551).FDLayoutEdge;function a(t,h,o){f.call(this,t,h,o)}a.prototype=Object.create(f.prototype);for(var y in f)a[y]=f[y];i.exports=a},880:(i,r,e)=>{var f=e(551).LGraph;function a(t,h,o){f.call(this,t,h,o)}a.prototype=Object.create(f.prototype);for(var y in f)a[y]=f[y];i.exports=a},578:(i,r,e)=>{var f=e(551).LGraphManager;function a(t){f.call(this,t)}a.prototype=Object.create(f.prototype);for(var y in f)a[y]=f[y];i.exports=a},765:(i,r,e)=>{var f=e(551).FDLayout,a=e(578),y=e(880),t=e(991),h=e(767),o=e(806),c=e(902),l=e(551).FDLayoutConstants,T=e(551).LayoutConstants,u=e(551).Point,d=e(551).PointD,L=e(551).DimensionD,F=e(551).Layout,M=e(551).Integer,P=e(551).IGeometry,J=e(551).LGraph,V=e(551).Transform,Q=e(551).LinkedList;function D(){f.call(this),this.toBeTiled={},this.constraints={}}D.prototype=Object.create(f.prototype);for(var rt in f)D[rt]=f[rt];D.prototype.newGraphManager=function(){var n=new a(this);return this.graphManager=n,n},D.prototype.newGraph=function(n){return new y(null,this.graphManager,n)},D.prototype.newNode=function(n){return new t(this.graphManager,n)},D.prototype.newEdge=function(n){return new h(null,null,n)},D.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(o.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=o.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},D.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},D.prototype.layout=function(){var n=T.DEFAULT_CREATE_BENDS_AS_NEEDED;return n&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},D.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(o.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),v=this.nodesWithGravity.filter(function(I){return m.has(I)});this.graphManager.setAllNodesToApplyGravitation(v)}}else{var n=this.getFlatForest();if(n.length>0)this.positionNodesRadially(n);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var m=new Set(this.getAllNodes()),v=this.nodesWithGravity.filter(function(E){return m.has(E)});this.graphManager.setAllNodesToApplyGravitation(v),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),o.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},D.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var n=new Set(this.getAllNodes()),m=this.nodesWithGravity.filter(function(p){return n.has(p)});this.graphManager.setAllNodesToApplyGravitation(m),this.graphManager.updateBounds(),this.updateGrid(),o.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),o.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var v=!this.isTreeGrowing&&!this.isGrowthFinished,E=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(v,E),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},D.prototype.getPositionsData=function(){for(var n=this.graphManager.getAllNodes(),m={},v=0;v 0&&this.updateDisplacements();for(var v=0;v 0&&(E.fixedNodeWeight=I)}}if(this.constraints.relativePlacementConstraint){var w=new Map,R=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(O){n.fixedNodesOnHorizontal.add(O),n.fixedNodesOnVertical.add(O)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var H=this.constraints.alignmentConstraint.vertical,v=0;v =2*O.length/3;_--)X=Math.floor(Math.random()*(_+1)),B=O[_],O[_]=O[X],O[X]=B;return O},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(O){if(O.left){var X=w.has(O.left)?w.get(O.left):O.left,B=w.has(O.right)?w.get(O.right):O.right;n.nodesInRelativeHorizontal.includes(X)||(n.nodesInRelativeHorizontal.push(X),n.nodeToRelativeConstraintMapHorizontal.set(X,[]),n.dummyToNodeForVerticalAlignment.has(X)?n.nodeToTempPositionMapHorizontal.set(X,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(X)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(X,n.idToNodeMap.get(X).getCenterX())),n.nodesInRelativeHorizontal.includes(B)||(n.nodesInRelativeHorizontal.push(B),n.nodeToRelativeConstraintMapHorizontal.set(B,[]),n.dummyToNodeForVerticalAlignment.has(B)?n.nodeToTempPositionMapHorizontal.set(B,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(B)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(B,n.idToNodeMap.get(B).getCenterX())),n.nodeToRelativeConstraintMapHorizontal.get(X).push({right:B,gap:O.gap}),n.nodeToRelativeConstraintMapHorizontal.get(B).push({left:X,gap:O.gap})}else{var _=R.has(O.top)?R.get(O.top):O.top,lt=R.has(O.bottom)?R.get(O.bottom):O.bottom;n.nodesInRelativeVertical.includes(_)||(n.nodesInRelativeVertical.push(_),n.nodeToRelativeConstraintMapVertical.set(_,[]),n.dummyToNodeForHorizontalAlignment.has(_)?n.nodeToTempPositionMapVertical.set(_,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(_)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(_,n.idToNodeMap.get(_).getCenterY())),n.nodesInRelativeVertical.includes(lt)||(n.nodesInRelativeVertical.push(lt),n.nodeToRelativeConstraintMapVertical.set(lt,[]),n.dummyToNodeForHorizontalAlignment.has(lt)?n.nodeToTempPositionMapVertical.set(lt,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(lt)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(lt,n.idToNodeMap.get(lt).getCenterY())),n.nodeToRelativeConstraintMapVertical.get(_).push({bottom:lt,gap:O.gap}),n.nodeToRelativeConstraintMapVertical.get(lt).push({top:_,gap:O.gap})}});else{var k=new Map,W=new Map;this.constraints.relativePlacementConstraint.forEach(function(O){if(O.left){var X=w.has(O.left)?w.get(O.left):O.left,B=w.has(O.right)?w.get(O.right):O.right;k.has(X)?k.get(X).push(B):k.set(X,[B]),k.has(B)?k.get(B).push(X):k.set(B,[X])}else{var _=R.has(O.top)?R.get(O.top):O.top,lt=R.has(O.bottom)?R.get(O.bottom):O.bottom;W.has(_)?W.get(_).push(lt):W.set(_,[lt]),W.has(lt)?W.get(lt).push(_):W.set(lt,[_])}});var U=function(X,B){var _=[],lt=[],q=new Q,Rt=new Set,Lt=0;return X.forEach(function(vt,it){if(!Rt.has(it)){_[Lt]=[],lt[Lt]=!1;var ut=it;for(q.push(ut),Rt.add(ut),_[Lt].push(ut);q.length!=0;){ut=q.shift(),B.has(ut)&&(lt[Lt]=!0);var Tt=X.get(ut);Tt.forEach(function(At){Rt.has(At)||(q.push(At),Rt.add(At),_[Lt].push(At))})}Lt++}}),{components:_,isFixed:lt}},et=U(k,n.fixedNodesOnHorizontal);this.componentsOnHorizontal=et.components,this.fixedComponentsOnHorizontal=et.isFixed;var z=U(W,n.fixedNodesOnVertical);this.componentsOnVertical=z.components,this.fixedComponentsOnVertical=z.isFixed}}},D.prototype.updateDisplacements=function(){var n=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(z){var O=n.idToNodeMap.get(z.nodeId);O.displacementX=0,O.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var m=this.constraints.alignmentConstraint.vertical,v=0;v 1){var R;for(R=0;R E&&(E=Math.floor(w.y)),I=Math.floor(w.x+o.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(T.WORLD_CENTER_X-w.x/2,T.WORLD_CENTER_Y-w.y/2))},D.radialLayout=function(n,m,v){var E=Math.max(this.maxDiagonalInTree(n),o.DEFAULT_RADIAL_SEPARATION);D.branchRadialLayout(m,null,0,359,0,E);var p=J.calculateBounds(n),I=new V;I.setDeviceOrgX(p.getMinX()),I.setDeviceOrgY(p.getMinY()),I.setWorldOrgX(v.x),I.setWorldOrgY(v.y);for(var w=0;w 1;){var B=X[0];X.splice(0,1);var _=W.indexOf(B);_>=0&&W.splice(_,1),z--,U--}m!=null?O=(W.indexOf(X[0])+1)%z:O=0;for(var lt=Math.abs(E-v)/U,q=O;et!=U;q=++q%z){var Rt=W[q].getOtherEnd(n);if(Rt!=m){var Lt=(v+et*lt)%360,vt=(Lt+lt)%360;D.branchRadialLayout(Rt,n,Lt,vt,p+I,I),et++}}},D.maxDiagonalInTree=function(n){for(var m=M.MIN_VALUE,v=0;v m&&(m=p)}return m},D.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},D.prototype.groupZeroDegreeMembers=function(){var n=this,m={};this.memberGroups={},this.idToDummyNode={};for(var v=[],E=this.graphManager.getAllNodes(),p=0;p "u"&&(m[R]=[]),m[R]=m[R].concat(I)}Object.keys(m).forEach(function(H){if(m[H].length>1){var x="DummyCompound_"+H;n.memberGroups[x]=m[H];var k=m[H][0].getParent(),W=new t(n.graphManager);W.id=x,W.paddingLeft=k.paddingLeft||0,W.paddingRight=k.paddingRight||0,W.paddingBottom=k.paddingBottom||0,W.paddingTop=k.paddingTop||0,n.idToDummyNode[x]=W;var U=n.getGraphManager().add(n.newGraph(),W),et=k.getChild();et.add(W);for(var z=0;z p?(E.rect.x-=(E.labelWidth-p)/2,E.setWidth(E.labelWidth),E.labelMarginLeft=(E.labelWidth-p)/2):E.labelPosHorizontal=="right"&&E.setWidth(p+E.labelWidth)),E.labelHeight&&(E.labelPosVertical=="top"?(E.rect.y-=E.labelHeight,E.setHeight(I+E.labelHeight),E.labelMarginTop=E.labelHeight):E.labelPosVertical=="center"&&E.labelHeight>I?(E.rect.y-=(E.labelHeight-I)/2,E.setHeight(E.labelHeight),E.labelMarginTop=(E.labelHeight-I)/2):E.labelPosVertical=="bottom"&&E.setHeight(I+E.labelHeight))}})},D.prototype.repopulateCompounds=function(){for(var n=this.compoundOrder.length-1;n>=0;n--){var m=this.compoundOrder[n],v=m.id,E=m.paddingLeft,p=m.paddingTop,I=m.labelMarginLeft,w=m.labelMarginTop;this.adjustLocations(this.tiledMemberPack[v],m.rect.x,m.rect.y,E,p,I,w)}},D.prototype.repopulateZeroDegreeMembers=function(){var n=this,m=this.tiledZeroDegreePack;Object.keys(m).forEach(function(v){var E=n.idToDummyNode[v],p=E.paddingLeft,I=E.paddingTop,w=E.labelMarginLeft,R=E.labelMarginTop;n.adjustLocations(m[v],E.rect.x,E.rect.y,p,I,w,R)})},D.prototype.getToBeTiled=function(n){var m=n.id;if(this.toBeTiled[m]!=null)return this.toBeTiled[m];var v=n.getChild();if(v==null)return this.toBeTiled[m]=!1,!1;for(var E=v.getNodes(),p=0;p 0)return this.toBeTiled[m]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[m]=!1,!1}return this.toBeTiled[m]=!0,!0},D.prototype.getNodeDegree=function(n){n.id;for(var m=n.getEdges(),v=0,E=0;E k&&(k=U.rect.height)}v+=k+n.verticalPadding}},D.prototype.tileCompoundMembers=function(n,m){var v=this;this.tiledMemberPack=[],Object.keys(n).forEach(function(E){var p=m[E];if(v.tiledMemberPack[E]=v.tileNodes(n[E],p.paddingLeft+p.paddingRight),p.rect.width=v.tiledMemberPack[E].width,p.rect.height=v.tiledMemberPack[E].height,p.setCenter(v.tiledMemberPack[E].centerX,v.tiledMemberPack[E].centerY),p.labelMarginLeft=0,p.labelMarginTop=0,o.NODE_DIMENSIONS_INCLUDE_LABELS){var I=p.rect.width,w=p.rect.height;p.labelWidth&&(p.labelPosHorizontal=="left"?(p.rect.x-=p.labelWidth,p.setWidth(I+p.labelWidth),p.labelMarginLeft=p.labelWidth):p.labelPosHorizontal=="center"&&p.labelWidth>I?(p.rect.x-=(p.labelWidth-I)/2,p.setWidth(p.labelWidth),p.labelMarginLeft=(p.labelWidth-I)/2):p.labelPosHorizontal=="right"&&p.setWidth(I+p.labelWidth)),p.labelHeight&&(p.labelPosVertical=="top"?(p.rect.y-=p.labelHeight,p.setHeight(w+p.labelHeight),p.labelMarginTop=p.labelHeight):p.labelPosVertical=="center"&&p.labelHeight>w?(p.rect.y-=(p.labelHeight-w)/2,p.setHeight(p.labelHeight),p.labelMarginTop=(p.labelHeight-w)/2):p.labelPosVertical=="bottom"&&p.setHeight(w+p.labelHeight))}})},D.prototype.tileNodes=function(n,m){var v=this.tileNodesByFavoringDim(n,m,!0),E=this.tileNodesByFavoringDim(n,m,!1),p=this.getOrgRatio(v),I=this.getOrgRatio(E),w;return I R&&(R=z.getWidth())});var H=I/p,x=w/p,k=Math.pow(v-E,2)+4*(H+E)*(x+v)*p,W=(E-v+Math.sqrt(k))/(2*(H+E)),U;m?(U=Math.ceil(W),U==W&&U++):U=Math.floor(W);var et=U*(H+E)-E;return R>et&&(et=R),et+=E*2,et},D.prototype.tileNodesByFavoringDim=function(n,m,v){var E=o.TILING_PADDING_VERTICAL,p=o.TILING_PADDING_HORIZONTAL,I=o.TILING_COMPARE_BY,w={rows:[],rowWidth:[],rowHeight:[],width:0,height:m,verticalPadding:E,horizontalPadding:p,centerX:0,centerY:0};I&&(w.idealRowWidth=this.calcIdealRowWidth(n,v));var R=function(O){return O.rect.width*O.rect.height},H=function(O,X){return R(X)-R(O)};n.sort(function(z,O){var X=H;return w.idealRowWidth?(X=I,X(z.id,O.id)):X(z,O)});for(var x=0,k=0,W=0;W
0&&(w+=n.horizontalPadding),n.rowWidth[v]=w,n.width 0&&(R+=n.verticalPadding);var H=0;R>n.rowHeight[v]&&(H=n.rowHeight[v],n.rowHeight[v]=R,H=n.rowHeight[v]-H),n.height+=H,n.rows[v].push(m)},D.prototype.getShortestRowIndex=function(n){for(var m=-1,v=Number.MAX_VALUE,E=0;E v&&(m=E,v=n.rowWidth[E]);return m},D.prototype.canAddHorizontal=function(n,m,v){if(n.idealRowWidth){var E=n.rows.length-1,p=n.rowWidth[E];return p+m+n.horizontalPadding<=n.idealRowWidth}var I=this.getShortestRowIndex(n);if(I<0)return!0;var w=n.rowWidth[I];if(w+n.horizontalPadding+m<=n.width)return!0;var R=0;n.rowHeight[I] 0&&(R=v+n.verticalPadding-n.rowHeight[I]);var H;n.width-w>=m+n.horizontalPadding?H=(n.height+R)/(w+m+n.horizontalPadding):H=(n.height+R)/n.width,R=v+n.verticalPadding;var x;return n.width I&&m!=v){E.splice(-1,1),n.rows[v].push(p),n.rowWidth[m]=n.rowWidth[m]-I,n.rowWidth[v]=n.rowWidth[v]+I,n.width=n.rowWidth[instance.getLongestRowIndex(n)];for(var w=Number.MIN_VALUE,R=0;R w&&(w=E[R].height);m>0&&(w+=n.verticalPadding);var H=n.rowHeight[m]+n.rowHeight[v];n.rowHeight[m]=w,n.rowHeight[v] 0)for(var et=p;et<=I;et++)U[0]+=this.grid[et][w-1].length+this.grid[et][w].length-1;if(I 0)for(var et=w;et<=R;et++)U[3]+=this.grid[p-1][et].length+this.grid[p][et].length-1;for(var z=M.MAX_VALUE,O,X,B=0;B {var f=e(551).FDLayoutNode,a=e(551).IMath;function y(h,o,c,l){f.call(this,h,o,c,l)}y.prototype=Object.create(f.prototype);for(var t in f)y[t]=f[t];y.prototype.calculateDisplacement=function(){var h=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=h.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=h.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=h.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=h.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>h.coolingFactor*h.maxNodeDisplacement&&(this.displacementX=h.coolingFactor*h.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>h.coolingFactor*h.maxNodeDisplacement&&(this.displacementY=h.coolingFactor*h.maxNodeDisplacement*a.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},y.prototype.propogateDisplacementToChildren=function(h,o){for(var c=this.getChild().getNodes(),l,T=0;T {function f(c){if(Array.isArray(c)){for(var l=0,T=Array(c.length);l 0){var Ct=0;st.forEach(function(ht){$=="horizontal"?(tt.set(ht,u.has(ht)?d[u.get(ht)]:Z.get(ht)),Ct+=tt.get(ht)):(tt.set(ht,u.has(ht)?L[u.get(ht)]:Z.get(ht)),Ct+=tt.get(ht))}),Ct=Ct/st.length,ft.forEach(function(ht){K.has(ht)||tt.set(ht,Ct)})}else{var ct=0;ft.forEach(function(ht){$=="horizontal"?ct+=u.has(ht)?d[u.get(ht)]:Z.get(ht):ct+=u.has(ht)?L[u.get(ht)]:Z.get(ht)}),ct=ct/ft.length,ft.forEach(function(ht){tt.set(ht,ct)})}});for(var wt=function(){var st=dt.shift(),Ct=b.get(st);Ct.forEach(function(ct){if(tt.get(ct.id) ht&&(ht=qt),_t Wt&&(Wt=_t)}}catch(ie){Mt=!0,Zt=ie}finally{try{!Nt&&Gt.return&&Gt.return()}finally{if(Mt)throw Zt}}var ce=(Ct+ht)/2-(ct+Wt)/2,Kt=!0,te=!1,ee=void 0;try{for(var jt=ft[Symbol.iterator](),se;!(Kt=(se=jt.next()).done);Kt=!0){var re=se.value;tt.set(re,tt.get(re)+ce)}}catch(ie){te=!0,ee=ie}finally{try{!Kt&&jt.return&&jt.return()}finally{if(te)throw ee}}})}return tt},rt=function(b){var $=0,K=0,Z=0,at=0;if(b.forEach(function(j){j.left?d[u.get(j.left)]-d[u.get(j.right)]>=0?$++:K++:L[u.get(j.top)]-L[u.get(j.bottom)]>=0?Z++:at++}),$>K&&Z>at)for(var gt=0;gt K)for(var ot=0;ot at)for(var tt=0;tt 1)l.fixedNodeConstraint.forEach(function(S,b){E[b]=[S.position.x,S.position.y],p[b]=[d[u.get(S.nodeId)],L[u.get(S.nodeId)]]}),I=!0;else if(l.alignmentConstraint)(function(){var S=0;if(l.alignmentConstraint.vertical){for(var b=l.alignmentConstraint.vertical,$=function(tt){var j=new Set;b[tt].forEach(function(yt){j.add(yt)});var dt=new Set([].concat(f(j)).filter(function(yt){return R.has(yt)})),wt=void 0;dt.size>0?wt=d[u.get(dt.values().next().value)]:wt=Q(j).x,b[tt].forEach(function(yt){E[S]=[wt,L[u.get(yt)]],p[S]=[d[u.get(yt)],L[u.get(yt)]],S++})},K=0;K 0?wt=d[u.get(dt.values().next().value)]:wt=Q(j).y,Z[tt].forEach(function(yt){E[S]=[d[u.get(yt)],wt],p[S]=[d[u.get(yt)],L[u.get(yt)]],S++})},gt=0;gt W&&(W=k[et].length,U=et);if(W 0){var mt={x:0,y:0};l.fixedNodeConstraint.forEach(function(S,b){var $={x:d[u.get(S.nodeId)],y:L[u.get(S.nodeId)]},K=S.position,Z=V(K,$);mt.x+=Z.x,mt.y+=Z.y}),mt.x/=l.fixedNodeConstraint.length,mt.y/=l.fixedNodeConstraint.length,d.forEach(function(S,b){d[b]+=mt.x}),L.forEach(function(S,b){L[b]+=mt.y}),l.fixedNodeConstraint.forEach(function(S){d[u.get(S.nodeId)]=S.position.x,L[u.get(S.nodeId)]=S.position.y})}if(l.alignmentConstraint){if(l.alignmentConstraint.vertical)for(var xt=l.alignmentConstraint.vertical,St=function(b){var $=new Set;xt[b].forEach(function(at){$.add(at)});var K=new Set([].concat(f($)).filter(function(at){return R.has(at)})),Z=void 0;K.size>0?Z=d[u.get(K.values().next().value)]:Z=Q($).x,$.forEach(function(at){R.has(at)||(d[u.get(at)]=Z)})},Vt=0;Vt 0?Z=L[u.get(K.values().next().value)]:Z=Q($).y,$.forEach(function(at){R.has(at)||(L[u.get(at)]=Z)})},bt=0;bt {i.exports=A}},N={};function g(i){var r=N[i];if(r!==void 0)return r.exports;var e=N[i]={exports:{}};return G[i](e,e.exports,g),e.exports}var s=g(45);return s})()})}(pe)),pe.exports}(function(C,Y){(function(G,N){C.exports=N(cr())})(Te,function(A){return(()=>{var G={658:i=>{i.exports=Object.assign!=null?Object.assign.bind(Object):function(r){for(var e=arguments.length,f=Array(e>1?e-1:0),a=1;a {var f=function(){function t(h,o){var c=[],l=!0,T=!1,u=void 0;try{for(var d=h[Symbol.iterator](),L;!(l=(L=d.next()).done)&&(c.push(L.value),!(o&&c.length===o));l=!0);}catch(F){T=!0,u=F}finally{try{!l&&d.return&&d.return()}finally{if(T)throw u}}return c}return function(h,o){if(Array.isArray(h))return h;if(Symbol.iterator in Object(h))return t(h,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=e(140).layoutBase.LinkedList,y={};y.getTopMostNodes=function(t){for(var h={},o=0;o 0&&I.merge(x)});for(var w=0;w 1){L=u[0],F=L.connectedEdges().length,u.forEach(function(p){p.connectedEdges().length 0&&c.set("dummy"+(c.size+1),J),V},y.relocateComponent=function(t,h,o){if(!o.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,T=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;if(o.quality=="draft"){var d=!0,L=!1,F=void 0;try{for(var M=h.nodeIndexes[Symbol.iterator](),P;!(d=(P=M.next()).done);d=!0){var J=P.value,V=f(J,2),Q=V[0],D=V[1],rt=o.cy.getElementById(Q);if(rt){var n=rt.boundingBox(),m=h.xCoords[D]-n.w/2,v=h.xCoords[D]+n.w/2,E=h.yCoords[D]-n.h/2,p=h.yCoords[D]+n.h/2;m l&&(l=v),E u&&(u=p)}}}catch(x){L=!0,F=x}finally{try{!d&&M.return&&M.return()}finally{if(L)throw F}}var I=t.x-(l+c)/2,w=t.y-(u+T)/2;h.xCoords=h.xCoords.map(function(x){return x+I}),h.yCoords=h.yCoords.map(function(x){return x+w})}else{Object.keys(h).forEach(function(x){var k=h[x],W=k.getRect().x,U=k.getRect().x+k.getRect().width,et=k.getRect().y,z=k.getRect().y+k.getRect().height;W l&&(l=U),et u&&(u=z)});var R=t.x-(l+c)/2,H=t.y-(u+T)/2;Object.keys(h).forEach(function(x){var k=h[x];k.setCenter(k.getCenterX()+R,k.getCenterY()+H)})}}},y.calcBoundingBox=function(t,h,o,c){for(var l=Number.MAX_SAFE_INTEGER,T=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER,L=void 0,F=void 0,M=void 0,P=void 0,J=t.descendants().not(":parent"),V=J.length,Q=0;Q L&&(l=L),T M&&(u=M),d {var f=e(548),a=e(140).CoSELayout,y=e(140).CoSENode,t=e(140).layoutBase.PointD,h=e(140).layoutBase.DimensionD,o=e(140).layoutBase.LayoutConstants,c=e(140).layoutBase.FDLayoutConstants,l=e(140).CoSEConstants,T=function(d,L){var F=d.cy,M=d.eles,P=M.nodes(),J=M.edges(),V=void 0,Q=void 0,D=void 0,rt={};d.randomize&&(V=L.nodeIndexes,Q=L.xCoords,D=L.yCoords);var n=function(x){return typeof x=="function"},m=function(x,k){return n(x)?x(k):x},v=f.calcParentsWithoutChildren(F,M),E=function H(x,k,W,U){for(var et=k.length,z=0;z
0){var q=void 0;q=W.getGraphManager().add(W.newGraph(),B),H(q,X,W,U)}}},p=function(x,k,W){for(var U=0,et=0,z=0;z 0?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=U/et:n(d.idealEdgeLength)?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=d.idealEdgeLength,l.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,l.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},I=function(x,k){k.fixedNodeConstraint&&(x.constraints.fixedNodeConstraint=k.fixedNodeConstraint),k.alignmentConstraint&&(x.constraints.alignmentConstraint=k.alignmentConstraint),k.relativePlacementConstraint&&(x.constraints.relativePlacementConstraint=k.relativePlacementConstraint)};d.nestingFactor!=null&&(l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=d.nestingFactor),d.gravity!=null&&(l.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=d.gravity),d.numIter!=null&&(l.MAX_ITERATIONS=c.MAX_ITERATIONS=d.numIter),d.gravityRange!=null&&(l.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=d.gravityRange),d.gravityCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=d.gravityCompound),d.gravityRangeCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=d.gravityRangeCompound),d.initialEnergyOnIncremental!=null&&(l.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=d.initialEnergyOnIncremental),d.tilingCompareBy!=null&&(l.TILING_COMPARE_BY=d.tilingCompareBy),d.quality=="proof"?o.QUALITY=2:o.QUALITY=0,l.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=d.nodeDimensionsIncludeLabels,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!d.randomize,l.ANIMATE=c.ANIMATE=o.ANIMATE=d.animate,l.TILE=d.tile,l.TILING_PADDING_VERTICAL=typeof d.tilingPaddingVertical=="function"?d.tilingPaddingVertical.call():d.tilingPaddingVertical,l.TILING_PADDING_HORIZONTAL=typeof d.tilingPaddingHorizontal=="function"?d.tilingPaddingHorizontal.call():d.tilingPaddingHorizontal,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!0,l.PURE_INCREMENTAL=!d.randomize,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=d.uniformNodeDimensions,d.step=="transformed"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!1),d.step=="enforced"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!1),d.step=="cose"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!0),d.step=="all"&&(d.randomize?l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!0),d.fixedNodeConstraint||d.alignmentConstraint||d.relativePlacementConstraint?l.TREE_REDUCTION_ON_INCREMENTAL=!1:l.TREE_REDUCTION_ON_INCREMENTAL=!0;var w=new a,R=w.newGraphManager();return E(R.addRoot(),f.getTopMostNodes(P),w,d),p(w,R,J),I(w,d),w.runLayout(),rt};i.exports={coseLayout:T}},212:(i,r,e)=>{var f=function(){function d(L,F){for(var M=0;M 0)if(v){var I=t.getTopMostNodes(M.eles.nodes());if(D=t.connectComponents(P,M.eles,I),D.forEach(function(vt){var it=vt.boundingBox();rt.push({x:it.x1+it.w/2,y:it.y1+it.h/2})}),M.randomize&&D.forEach(function(vt){M.eles=vt,V.push(o(M))}),M.quality=="default"||M.quality=="proof"){var w=P.collection();if(M.tile){var R=new Map,H=[],x=[],k=0,W={nodeIndexes:R,xCoords:H,yCoords:x},U=[];if(D.forEach(function(vt,it){vt.edges().length==0&&(vt.nodes().forEach(function(ut,Tt){w.merge(vt.nodes()[Tt]),ut.isParent()||(W.nodeIndexes.set(vt.nodes()[Tt].id(),k++),W.xCoords.push(vt.nodes()[0].position().x),W.yCoords.push(vt.nodes()[0].position().y))}),U.push(it))}),w.length>1){var et=w.boundingBox();rt.push({x:et.x1+et.w/2,y:et.y1+et.h/2}),D.push(w),V.push(W);for(var z=U.length-1;z>=0;z--)D.splice(U[z],1),V.splice(U[z],1),rt.splice(U[z],1)}}D.forEach(function(vt,it){M.eles=vt,Q.push(l(M,V[it])),t.relocateComponent(rt[it],Q[it],M)})}else D.forEach(function(vt,it){t.relocateComponent(rt[it],V[it],M)});var O=new Set;if(D.length>1){var X=[],B=J.filter(function(vt){return vt.css("display")=="none"});D.forEach(function(vt,it){var ut=void 0;if(M.quality=="draft"&&(ut=V[it].nodeIndexes),vt.nodes().not(B).length>0){var Tt={};Tt.edges=[],Tt.nodes=[];var At=void 0;vt.nodes().not(B).forEach(function(Dt){if(M.quality=="draft")if(!Dt.isParent())At=ut.get(Dt.id()),Tt.nodes.push({x:V[it].xCoords[At]-Dt.boundingbox().w/2,y:V[it].yCoords[At]-Dt.boundingbox().h/2,width:Dt.boundingbox().w,height:Dt.boundingbox().h});else{var mt=t.calcBoundingBox(Dt,V[it].xCoords,V[it].yCoords,ut);Tt.nodes.push({x:mt.topLeftX,y:mt.topLeftY,width:mt.width,height:mt.height})}else Q[it][Dt.id()]&&Tt.nodes.push({x:Q[it][Dt.id()].getLeft(),y:Q[it][Dt.id()].getTop(),width:Q[it][Dt.id()].getWidth(),height:Q[it][Dt.id()].getHeight()})}),vt.edges().forEach(function(Dt){var mt=Dt.source(),xt=Dt.target();if(mt.css("display")!="none"&&xt.css("display")!="none")if(M.quality=="draft"){var St=ut.get(mt.id()),Vt=ut.get(xt.id()),Xt=[],Ut=[];if(mt.isParent()){var bt=t.calcBoundingBox(mt,V[it].xCoords,V[it].yCoords,ut);Xt.push(bt.topLeftX+bt.width/2),Xt.push(bt.topLeftY+bt.height/2)}else Xt.push(V[it].xCoords[St]),Xt.push(V[it].yCoords[St]);if(xt.isParent()){var Ht=t.calcBoundingBox(xt,V[it].xCoords,V[it].yCoords,ut);Ut.push(Ht.topLeftX+Ht.width/2),Ut.push(Ht.topLeftY+Ht.height/2)}else Ut.push(V[it].xCoords[Vt]),Ut.push(V[it].yCoords[Vt]);Tt.edges.push({startX:Xt[0],startY:Xt[1],endX:Ut[0],endY:Ut[1]})}else Q[it][mt.id()]&&Q[it][xt.id()]&&Tt.edges.push({startX:Q[it][mt.id()].getCenterX(),startY:Q[it][mt.id()].getCenterY(),endX:Q[it][xt.id()].getCenterX(),endY:Q[it][xt.id()].getCenterY()})}),Tt.nodes.length>0&&(X.push(Tt),O.add(it))}});var _=m.packComponents(X,M.randomize).shifts;if(M.quality=="draft")V.forEach(function(vt,it){var ut=vt.xCoords.map(function(At){return At+_[it].dx}),Tt=vt.yCoords.map(function(At){return At+_[it].dy});vt.xCoords=ut,vt.yCoords=Tt});else{var lt=0;O.forEach(function(vt){Object.keys(Q[vt]).forEach(function(it){var ut=Q[vt][it];ut.setCenter(ut.getCenterX()+_[lt].dx,ut.getCenterY()+_[lt].dy)}),lt++})}}}else{var E=M.eles.boundingBox();if(rt.push({x:E.x1+E.w/2,y:E.y1+E.h/2}),M.randomize){var p=o(M);V.push(p)}M.quality=="default"||M.quality=="proof"?(Q.push(l(M,V[0])),t.relocateComponent(rt[0],Q[0],M)):t.relocateComponent(rt[0],V[0],M)}var q=function(it,ut){if(M.quality=="default"||M.quality=="proof"){typeof it=="number"&&(it=ut);var Tt=void 0,At=void 0,Dt=it.data("id");return Q.forEach(function(xt){Dt in xt&&(Tt={x:xt[Dt].getRect().getCenterX(),y:xt[Dt].getRect().getCenterY()},At=xt[Dt])}),M.nodeDimensionsIncludeLabels&&(At.labelWidth&&(At.labelPosHorizontal=="left"?Tt.x+=At.labelWidth/2:At.labelPosHorizontal=="right"&&(Tt.x-=At.labelWidth/2)),At.labelHeight&&(At.labelPosVertical=="top"?Tt.y+=At.labelHeight/2:At.labelPosVertical=="bottom"&&(Tt.y-=At.labelHeight/2))),Tt==null&&(Tt={x:it.position("x"),y:it.position("y")}),{x:Tt.x,y:Tt.y}}else{var mt=void 0;return V.forEach(function(xt){var St=xt.nodeIndexes.get(it.id());St!=null&&(mt={x:xt.xCoords[St],y:xt.yCoords[St]})}),mt==null&&(mt={x:it.position("x"),y:it.position("y")}),{x:mt.x,y:mt.y}}};if(M.quality=="default"||M.quality=="proof"||M.randomize){var Rt=t.calcParentsWithoutChildren(P,J),Lt=J.filter(function(vt){return vt.css("display")=="none"});M.eles=J.not(Lt),J.nodes().not(":parent").not(Lt).layoutPositions(F,M,q),Rt.length>0&&Rt.forEach(function(vt){vt.position(q(vt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),d}();i.exports=u},657:(i,r,e)=>{var f=e(548),a=e(140).layoutBase.Matrix,y=e(140).layoutBase.SVD,t=function(o){var c=o.cy,l=o.eles,T=l.nodes(),u=l.nodes(":parent"),d=new Map,L=new Map,F=new Map,M=[],P=[],J=[],V=[],Q=[],D=[],rt=[],n=[],m=void 0,v=1e8,E=1e-9,p=o.piTol,I=o.samplingType,w=o.nodeSeparation,R=void 0,H=function(){for(var b=0,$=0,K=!1;$ =at;){ot=Z[at++];for(var It=M[ot],ft=0;ft dt&&(dt=Q[Ct],wt=Ct)}return wt},k=function(b){var $=void 0;if(b){$=Math.floor(Math.random()*m);for(var Z=0;Z =1)break;j=tt}for(var yt=0;yt =1)break;j=tt}for(var ft=0;ft 0&&($.isParent()?M[b].push(F.get($.id())):M[b].push($.id()))})});var Lt=function(b){var $=L.get(b),K=void 0;d.get(b).forEach(function(Z){c.getElementById(Z).isParent()?K=F.get(Z):K=Z,M[$].push(K),M[L.get(K)].push(b)})},vt=!0,it=!1,ut=void 0;try{for(var Tt=d.keys()[Symbol.iterator](),At;!(vt=(At=Tt.next()).done);vt=!0){var Dt=At.value;Lt(Dt)}}catch(S){it=!0,ut=S}finally{try{!vt&&Tt.return&&Tt.return()}finally{if(it)throw ut}}m=L.size;var mt=void 0;if(m>2){R=m {var f=e(212),a=function(t){t&&t("layout","fcose",f)};typeof cytoscape<"u"&&a(cytoscape),i.exports=a},140:i=>{i.exports=A}},N={};function g(i){var r=N[i];if(r!==void 0)return r.exports;var e=N[i]={exports:{}};return G[i](e,e.exports,g),e.exports}var s=g(579);return s})()})})(be);var gr=be.exports;const ur=ke(gr);var xe={L:"left",R:"right",T:"top",B:"bottom"},Ie={L:nt(C=>`${C},${C/2} 0,${C} 0,0`,"L"),R:nt(C=>`0,${C/2} ${C},0 ${C},${C}`,"R"),T:nt(C=>`0,0 ${C},0 ${C/2},${C}`,"T"),B:nt(C=>`${C/2},0 ${C},${C} 0,${C}`,"B")},he={L:nt((C,Y)=>C-Y+2,"L"),R:nt((C,Y)=>C-2,"R"),T:nt((C,Y)=>C-Y+2,"T"),B:nt((C,Y)=>C-2,"B")},dr=nt(function(C){return zt(C)?C==="L"?"R":"L":C==="T"?"B":"T"},"getOppositeArchitectureDirection"),Re=nt(function(C){const Y=C;return Y==="L"||Y==="R"||Y==="T"||Y==="B"},"isArchitectureDirection"),zt=nt(function(C){const Y=C;return Y==="L"||Y==="R"},"isArchitectureDirectionX"),Qt=nt(function(C){const Y=C;return Y==="T"||Y==="B"},"isArchitectureDirectionY"),Pe=nt(function(C,Y){const A=zt(C)&&Qt(Y),G=Qt(C)&&zt(Y);return A||G},"isArchitectureDirectionXY"),vr=nt(function(C){const Y=C[0],A=C[1],G=zt(Y)&&Qt(A),N=Qt(Y)&&zt(A);return G||N},"isArchitecturePairXY"),pr=nt(function(C){return C!=="LL"&&C!=="RR"&&C!=="TT"&&C!=="BB"},"isValidArchitectureDirectionPair"),me=nt(function(C,Y){const A=`${C}${Y}`;return pr(A)?A:void 0},"getArchitectureDirectionPair"),yr=nt(function([C,Y],A){const G=A[0],N=A[1];return zt(G)?Qt(N)?[C+(G==="L"?-1:1),Y+(N==="T"?1:-1)]:[C+(G==="L"?-1:1),Y]:zt(N)?[C+(N==="L"?1:-1),Y+(G==="T"?1:-1)]:[C,Y+(G==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),Er=nt(function(C){return C==="LT"||C==="TL"?[1,1]:C==="BL"||C==="LB"?[1,-1]:C==="BR"||C==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),mr=nt(function(C){return C.type==="service"},"isArchitectureService"),Tr=nt(function(C){return C.type==="junction"},"isArchitectureJunction"),Ge=nt(C=>C.data(),"edgeData"),ne=nt(C=>C.data(),"nodeData"),Ue=qe.architecture,pt=new hr(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:Ue,dataStructures:void 0,elements:{}})),Nr=nt(()=>{pt.reset(),ar()},"clear"),Lr=nt(function({id:C,icon:Y,in:A,title:G,iconText:N}){if(pt.records.registeredIds[C]!==void 0)throw new Error(`The service id [${C}] is already in use by another ${pt.records.registeredIds[C]}`);if(A!==void 0){if(C===A)throw new Error(`The service [${C}] cannot be placed within itself`);if(pt.records.registeredIds[A]===void 0)throw new Error(`The service [${C}]'s parent does not exist. Please make sure the parent is created before this service`);if(pt.records.registeredIds[A]==="node")throw new Error(`The service [${C}]'s parent is not a group`)}pt.records.registeredIds[C]="node",pt.records.nodes[C]={id:C,type:"service",icon:Y,iconText:N,title:G,edges:[],in:A}},"addService"),Cr=nt(()=>Object.values(pt.records.nodes).filter(mr),"getServices"),Mr=nt(function({id:C,in:Y}){pt.records.registeredIds[C]="node",pt.records.nodes[C]={id:C,type:"junction",edges:[],in:Y}},"addJunction"),Ar=nt(()=>Object.values(pt.records.nodes).filter(Tr),"getJunctions"),wr=nt(()=>Object.values(pt.records.nodes),"getNodes"),Or=nt(C=>pt.records.nodes[C],"getNode"),Dr=nt(function({id:C,icon:Y,in:A,title:G}){if(pt.records.registeredIds[C]!==void 0)throw new Error(`The group id [${C}] is already in use by another ${pt.records.registeredIds[C]}`);if(A!==void 0){if(C===A)throw new Error(`The group [${C}] cannot be placed within itself`);if(pt.records.registeredIds[A]===void 0)throw new Error(`The group [${C}]'s parent does not exist. Please make sure the parent is created before this group`);if(pt.records.registeredIds[A]==="node")throw new Error(`The group [${C}]'s parent is not a group`)}pt.records.registeredIds[C]="group",pt.records.groups[C]={id:C,icon:Y,title:G,in:A}},"addGroup"),xr=nt(()=>Object.values(pt.records.groups),"getGroups"),Ir=nt(function({lhsId:C,rhsId:Y,lhsDir:A,rhsDir:G,lhsInto:N,rhsInto:g,lhsGroup:s,rhsGroup:i,title:r}){if(!Re(A))throw new Error(`Invalid direction given for left hand side of edge ${C}--${Y}. Expected (L,R,T,B) got ${A}`);if(!Re(G))throw new Error(`Invalid direction given for right hand side of edge ${C}--${Y}. Expected (L,R,T,B) got ${G}`);if(pt.records.nodes[C]===void 0&&pt.records.groups[C]===void 0)throw new Error(`The left-hand id [${C}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(pt.records.nodes[Y]===void 0&&pt.records.groups[C]===void 0)throw new Error(`The right-hand id [${Y}] does not yet exist. Please create the service/group before declaring an edge to it.`);const e=pt.records.nodes[C].in,f=pt.records.nodes[Y].in;if(s&&e&&f&&e==f)throw new Error(`The left-hand id [${C}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(i&&e&&f&&e==f)throw new Error(`The right-hand id [${Y}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const a={lhsId:C,lhsDir:A,lhsInto:N,lhsGroup:s,rhsId:Y,rhsDir:G,rhsInto:g,rhsGroup:i,title:r};pt.records.edges.push(a),pt.records.nodes[C]&&pt.records.nodes[Y]&&(pt.records.nodes[C].edges.push(pt.records.edges[pt.records.edges.length-1]),pt.records.nodes[Y].edges.push(pt.records.edges[pt.records.edges.length-1]))},"addEdge"),Rr=nt(()=>pt.records.edges,"getEdges"),Sr=nt(()=>{if(pt.records.dataStructures===void 0){const C=Object.entries(pt.records.nodes).reduce((s,[i,r])=>(s[i]=r.edges.reduce((e,f)=>{if(f.lhsId===i){const a=me(f.lhsDir,f.rhsDir);a&&(e[a]=f.rhsId)}else{const a=me(f.rhsDir,f.lhsDir);a&&(e[a]=f.lhsId)}return e},{}),s),{}),Y=Object.keys(C)[0],A={[Y]:1},G=Object.keys(C).reduce((s,i)=>i===Y?s:{...s,[i]:1},{}),N=nt(s=>{const i={[s]:[0,0]},r=[s];for(;r.length>0;){const e=r.shift();if(e){A[e]=1,delete G[e];const f=C[e],[a,y]=i[e];Object.entries(f).forEach(([t,h])=>{A[h]||(i[h]=yr([a,y],t),r.push(h))})}}return i},"BFS"),g=[N(Y)];for(;Object.keys(G).length>0;)g.push(N(Object.keys(G)[0]));pt.records.dataStructures={adjList:C,spatialMaps:g}}return pt.records.dataStructures},"getDataStructures"),Fr=nt((C,Y)=>{pt.records.elements[C]=Y},"setElementForId"),br=nt(C=>pt.records.elements[C],"getElementById"),le={clear:Nr,setDiagramTitle:Ke,getDiagramTitle:je,setAccTitle:_e,getAccTitle:tr,setAccDescription:er,getAccDescription:rr,addService:Lr,getServices:Cr,addJunction:Mr,getJunctions:Ar,getNodes:wr,getNode:Or,addGroup:Dr,getGroups:xr,addEdge:Ir,getEdges:Rr,setElementForId:Fr,getElementById:br,getDataStructures:Sr};function Pt(C){const Y=fe().architecture;return Y!=null&&Y[C]?Y[C]:Ue[C]}nt(Pt,"getConfigField");var Pr=nt((C,Y)=>{sr(C,Y),C.groups.map(Y.addGroup),C.services.map(A=>Y.addService({...A,type:"service"})),C.junctions.map(A=>Y.addJunction({...A,type:"junction"})),C.edges.map(Y.addEdge)},"populateDb"),Gr={parse:nt(async C=>{const Y=await lr("architecture",C);Se.debug(Y),Pr(Y,le)},"parse")},Ur=nt(C=>` + .edge { + stroke-width: ${C.archEdgeWidth}; + stroke: ${C.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${C.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${C.archGroupBorderColor}; + stroke-width: ${C.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),Yr=Ur,ae=nt(C=>` `,"wrapIcon"),oe={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:ae(' ${C} ')},server:{body:ae(' ')},disk:{body:ae(' ')},internet:{body:ae(' ')},cloud:{body:ae(' ')},unknown:Je,blank:{body:ae("")}}},Xr=nt(async function(C,Y){const A=Pt("padding"),G=Pt("iconSize"),N=G/2,g=G/6,s=g/2;await Promise.all(Y.edges().map(async i=>{var P,J;const{source:r,sourceDir:e,sourceArrow:f,sourceGroup:a,target:y,targetDir:t,targetArrow:h,targetGroup:o,label:c}=Ge(i);let{x:l,y:T}=i[0].sourceEndpoint();const{x:u,y:d}=i[0].midpoint();let{x:L,y:F}=i[0].targetEndpoint();const M=A+4;if(a&&(zt(e)?l+=e==="L"?-M:M:T+=e==="T"?-M:M+18),o&&(zt(t)?L+=t==="L"?-M:M:F+=t==="T"?-M:M+18),!a&&((P=le.getNode(r))==null?void 0:P.type)==="junction"&&(zt(e)?l+=e==="L"?N:-N:T+=e==="T"?N:-N),!o&&((J=le.getNode(y))==null?void 0:J.type)==="junction"&&(zt(t)?L+=t==="L"?N:-N:F+=t==="T"?N:-N),i[0]._private.rscratch){const V=C.insert("g");if(V.insert("path").attr("d",`M ${l},${T} L ${u},${d} L${L},${F} `).attr("class","edge"),f){const Q=zt(e)?he[e](l,g):l-s,D=Qt(e)?he[e](T,g):T-s;V.insert("polygon").attr("points",Ie[e](g)).attr("transform",`translate(${Q},${D})`).attr("class","arrow")}if(h){const Q=zt(t)?he[t](L,g):L-s,D=Qt(t)?he[t](F,g):F-s;V.insert("polygon").attr("points",Ie[t](g)).attr("transform",`translate(${Q},${D})`).attr("class","arrow")}if(c){const Q=Pe(e,t)?"XY":zt(e)?"X":"Y";let D=0;Q==="X"?D=Math.abs(l-L):Q==="Y"?D=Math.abs(T-F)/1.5:D=Math.abs(l-L)/2;const rt=V.append("g");if(await Ne(rt,c,{useHtmlLabels:!1,width:D,classes:"architecture-service-label"},fe()),rt.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),Q==="X")rt.attr("transform","translate("+u+", "+d+")");else if(Q==="Y")rt.attr("transform","translate("+u+", "+d+") rotate(-90)");else if(Q==="XY"){const n=me(e,t);if(n&&vr(n)){const m=rt.node().getBoundingClientRect(),[v,E]=Er(n);rt.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*v*E*45})`);const p=rt.node().getBoundingClientRect();rt.attr("transform",` + translate(${u}, ${d-m.height/2}) + translate(${v*p.width/2}, ${E*p.height/2}) + rotate(${-1*v*E*45}, 0, ${m.height/2}) + `)}}}}}))},"drawEdges"),Hr=nt(async function(C,Y){const G=Pt("padding")*.75,N=Pt("fontSize"),s=Pt("iconSize")/2;await Promise.all(Y.nodes().map(async i=>{const r=ne(i);if(r.type==="group"){const{h:e,w:f,x1:a,y1:y}=i.boundingBox();C.append("rect").attr("x",a+s).attr("y",y+s).attr("width",f).attr("height",e).attr("class","node-bkg");const t=C.append("g");let h=a,o=y;if(r.icon){const c=t.append("g");c.html(` ${await Ee(r.icon,{height:G,width:G,fallbackPrefix:oe.prefix})} `),c.attr("transform","translate("+(h+s+1)+", "+(o+s+1)+")"),h+=G,o+=N/2-1-2}if(r.label){const c=t.append("g");await Ne(c,r.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},fe()),c.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),c.attr("transform","translate("+(h+s+4)+", "+(o+s+2)+")")}}}))},"drawGroups"),Wr=nt(async function(C,Y,A){for(const G of A){const N=Y.append("g"),g=Pt("iconSize");if(G.title){const e=N.append("g");await Ne(e,G.title,{useHtmlLabels:!1,width:g*1.5,classes:"architecture-service-label"},fe()),e.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),e.attr("transform","translate("+g/2+", "+g+")")}const s=N.append("g");if(G.icon)s.html(`${await Ee(G.icon,{height:g,width:g,fallbackPrefix:oe.prefix})} `);else if(G.iconText){s.html(`${await Ee("blank",{height:g,width:g,fallbackPrefix:oe.prefix})} `);const a=s.append("g").append("foreignObject").attr("width",g).attr("height",g).append("div").attr("class","node-icon-text").attr("style",`height: ${g}px;`).append("div").html(G.iconText),y=parseInt(window.getComputedStyle(a.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;a.attr("style",`-webkit-line-clamp: ${Math.floor((g-2)/y)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+G.id).attr("d",`M0 ${g} v${-g} q0,-5 5,-5 h${g} q5,0 5,5 v${g} H0 Z`);N.attr("class","architecture-service");const{width:i,height:r}=N._groups[0][0].getBBox();G.width=i,G.height=r,C.setElementForId(G.id,N)}return 0},"drawServices"),Vr=nt(function(C,Y,A){A.forEach(G=>{const N=Y.append("g"),g=Pt("iconSize");N.append("g").append("rect").attr("id","node-"+G.id).attr("fill-opacity","0").attr("width",g).attr("height",g),N.attr("class","architecture-junction");const{width:i,height:r}=N._groups[0][0].getBBox();N.width=i,N.height=r,C.setElementForId(G.id,N)})},"drawJunctions");Qe([{name:oe.prefix,icons:oe}]);Fe.use(ur);function Ye(C,Y){C.forEach(A=>{Y.add({group:"nodes",data:{type:"service",id:A.id,icon:A.icon,label:A.title,parent:A.in,width:Pt("iconSize"),height:Pt("iconSize")},classes:"node-service"})})}nt(Ye,"addServices");function Xe(C,Y){C.forEach(A=>{Y.add({group:"nodes",data:{type:"junction",id:A.id,parent:A.in,width:Pt("iconSize"),height:Pt("iconSize")},classes:"node-junction"})})}nt(Xe,"addJunctions");function He(C,Y){Y.nodes().map(A=>{const G=ne(A);if(G.type==="group")return;G.x=A.position().x,G.y=A.position().y,C.getElementById(G.id).attr("transform","translate("+(G.x||0)+","+(G.y||0)+")")})}nt(He,"positionNodes");function We(C,Y){C.forEach(A=>{Y.add({group:"nodes",data:{type:"group",id:A.id,icon:A.icon,label:A.title,parent:A.in},classes:"node-group"})})}nt(We,"addGroups");function Ve(C,Y){C.forEach(A=>{const{lhsId:G,rhsId:N,lhsInto:g,lhsGroup:s,rhsInto:i,lhsDir:r,rhsDir:e,rhsGroup:f,title:a}=A,y=Pe(A.lhsDir,A.rhsDir)?"segments":"straight",t={id:`${G}-${N}`,label:a,source:G,sourceDir:r,sourceArrow:g,sourceGroup:s,sourceEndpoint:r==="L"?"0 50%":r==="R"?"100% 50%":r==="T"?"50% 0":"50% 100%",target:N,targetDir:e,targetArrow:i,targetGroup:f,targetEndpoint:e==="L"?"0 50%":e==="R"?"100% 50%":e==="T"?"50% 0":"50% 100%"};Y.add({group:"edges",data:t,classes:y})})}nt(Ve,"addEdges");function ze(C){const Y=C.map(N=>{const g={},s={};return Object.entries(N).forEach(([i,[r,e]])=>{g[e]||(g[e]=[]),s[r]||(s[r]=[]),g[e].push(i),s[r].push(i)}),{horiz:Object.values(g).filter(i=>i.length>1),vert:Object.values(s).filter(i=>i.length>1)}}),[A,G]=Y.reduce(([N,g],{horiz:s,vert:i})=>[[...N,...s],[...g,...i]],[[],[]]);return{horizontal:A,vertical:G}}nt(ze,"getAlignments");function Be(C){const Y=[],A=nt(N=>`${N[0]},${N[1]}`,"posToStr"),G=nt(N=>N.split(",").map(g=>parseInt(g)),"strToPos");return C.forEach(N=>{const g=Object.fromEntries(Object.entries(N).map(([e,f])=>[A(f),e])),s=[A([0,0])],i={},r={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;s.length>0;){const e=s.shift();if(e){i[e]=1;const f=g[e];if(f){const a=G(e);Object.entries(r).forEach(([y,t])=>{const h=A([a[0]+t[0],a[1]+t[1]]),o=g[h];o&&!i[h]&&(s.push(h),Y.push({[xe[y]]:o,[xe[dr(y)]]:f,gap:1.5*Pt("iconSize")}))})}}}}),Y}nt(Be,"getRelativeConstraints");function $e(C,Y,A,G,{spatialMaps:N}){return new Promise(g=>{const s=ir("body").append("div").attr("id","cy").attr("style","display:none"),i=Fe({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${Pt("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${Pt("padding")}px`}}]});s.remove(),We(A,i),Ye(C,i),Xe(Y,i),Ve(G,i);const r=ze(N),e=Be(N),f=i.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(a){const[y,t]=a.connectedNodes(),{parent:h}=ne(y),{parent:o}=ne(t);return h===o?1.5*Pt("iconSize"):.5*Pt("iconSize")},edgeElasticity(a){const[y,t]=a.connectedNodes(),{parent:h}=ne(y),{parent:o}=ne(t);return h===o?.45:.001},alignmentConstraint:r,relativePlacementConstraint:e});f.one("layoutstop",()=>{var y;function a(t,h,o,c){let l,T;const{x:u,y:d}=t,{x:L,y:F}=h;T=(c-d+(u-o)*(d-F)/(u-L))/Math.sqrt(1+Math.pow((d-F)/(u-L),2)),l=Math.sqrt(Math.pow(c-d,2)+Math.pow(o-u,2)-Math.pow(T,2));const M=Math.sqrt(Math.pow(L-u,2)+Math.pow(F-d,2));l=l/M;let P=(L-u)*(c-d)-(F-d)*(o-u);switch(!0){case P>=0:P=1;break;case P<0:P=-1;break}let J=(L-u)*(o-u)+(F-d)*(c-d);switch(!0){case J>=0:J=1;break;case J<0:J=-1;break}return T=Math.abs(T)*P,l=l*J,{distances:T,weights:l}}nt(a,"getSegmentWeights"),i.startBatch();for(const t of Object.values(i.edges()))if((y=t.data)!=null&&y.call(t)){const{x:h,y:o}=t.source().position(),{x:c,y:l}=t.target().position();if(h!==c&&o!==l){const T=t.sourceEndpoint(),u=t.targetEndpoint(),{sourceDir:d}=Ge(t),[L,F]=Qt(d)?[T.x,u.y]:[u.x,T.y],{weights:M,distances:P}=a(T,u,L,F);t.style("segment-distances",P),t.style("segment-weights",M)}}i.endBatch(),f.run()}),f.run(),i.ready(a=>{Se.info("Ready",a),g(i)})})}nt($e,"layoutArchitecture");var zr=nt(async(C,Y,A,G)=>{const N=G.db,g=N.getServices(),s=N.getJunctions(),i=N.getGroups(),r=N.getEdges(),e=N.getDataStructures(),f=nr(Y),a=f.append("g");a.attr("class","architecture-edges");const y=f.append("g");y.attr("class","architecture-services");const t=f.append("g");t.attr("class","architecture-groups"),await Wr(N,y,g),Vr(N,y,s);const h=await $e(g,s,i,r,e);await Xr(a,h),await Hr(t,h),He(N,h),or(void 0,f,Pt("padding"),Pt("useMaxWidth"))},"draw"),Br={draw:zr},ei={parser:Gr,db:le,renderer:Br,styles:Yr};export{ei as diagram}; diff --git a/assets/chunks/basePickBy.BafM5tVf.js b/assets/chunks/basePickBy.BafM5tVf.js new file mode 100644 index 000000000..b30eb70d0 --- /dev/null +++ b/assets/chunks/basePickBy.BafM5tVf.js @@ -0,0 +1 @@ +import{e as x,c as b,g as m,k as P,h as p,j as w,l as N,m as c,n as I,t as A,o as M}from"./baseUniq.DoVpE4hx.js";import{aL as g,aq as E,aM as F,aN as T,aO as _,aP as l,aQ as $,aR as B,aS as S,aT as y}from"../app.D0Wo8w0i.js";var L=/\s/;function R(n){for(var r=n.length;r--&&L.test(n.charAt(r)););return r}var q=/^\s+/;function G(n){return n&&n.slice(0,R(n)+1).replace(q,"")}var o=NaN,H=/^[-+]0x[0-9a-f]+$/i,z=/^0b[01]+$/i,C=/^0o[0-7]+$/i,K=parseInt;function Q(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=G(n);var t=z.test(n);return t||C.test(n)?K(n.slice(2),t?2:8):H.test(n)?o:+n}var v=1/0,W=17976931348623157e292;function X(n){if(!n)return n===0?n:0;if(n=Q(n),n===v||n===-v){var r=n<0?-1:1;return r*W}return n===n?n:0}function Y(n){var r=X(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var O=Object.prototype,D=O.hasOwnProperty,dn=E(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&F(r[0],r[1],a)&&(i=1);++t-1?a[f?r[e]:e]:void 0}}var U=Math.max;function Z(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:Y(t);return a<0&&(a=U(i+a,0)),p(n,m(r),a)}var hn=J(Z);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=$(n)?N:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n-1}function $(n){return sn(n)?xn(n):mn(n)}var nr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rr=/^\w*$/;function B(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||U(n)?!0:rr.test(n)||!nr.test(n)||r!=null&&n in Object(r)}var er=500;function tr(n){var r=Fn(n,function(t){return e.size===er&&e.clear(),t}),e=r.cache;return r}var ir=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ar=/\\(\\)?/g,fr=tr(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(ir,function(e,t,a,i){r.push(a?i.replace(ar,"$1"):t||e)}),r});function sr(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:B(n,r)?[n]:fr(sr(n))}var ur=1/0;function m(n){if(typeof n=="string"||U(n))return n;var r=n+"";return r=="0"&&1/n==-ur?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&Re?new E:void 0;for(i.set(n,r),i.set(r,n);++o =Ot){var b=r?null:wt(n);if(b)return H(b);f=!1,a=Sn,u=new E}else u=r?[]:s;n:for(;++t"u"&&(M.yylloc={});var ut=M.yylloc;c.push(ut);var oe=M.options&&M.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function he(H){u.length=u.length-2*H,S.length=S.length-H,c.length=c.length-H}d(he,"popStack");function Dt(){var H;return H=w.pop()||M.lex()||W,typeof H!="number"&&(H instanceof Array&&(w=H,H=w.pop()),H=g.symbols_[H]||H),H}d(Dt,"lex");for(var Y,Q,U,pt,$={},st,q,Nt,it;;){if(Q=u[u.length-1],this.defaultActions[Q]?U=this.defaultActions[Q]:((Y===null||typeof Y>"u")&&(Y=Dt()),U=_[Q]&&_[Q][Y]),typeof U>"u"||!U.length||!U[0]){var ft="";it=[];for(st in _[Q])this.terminals_[st]&&st>X&&it.push("'"+this.terminals_[st]+"'");M.showPosition?ft="Parse error on line "+(A+1)+`: +`+M.showPosition()+` +Expecting `+it.join(", ")+", got '"+(this.terminals_[Y]||Y)+"'":ft="Parse error on line "+(A+1)+": Unexpected "+(Y==W?"end of input":"'"+(this.terminals_[Y]||Y)+"'"),this.parseError(ft,{text:M.match,token:this.terminals_[Y]||Y,line:M.yylineno,loc:ut,expected:it})}if(U[0]instanceof Array&&U.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+Y);switch(U[0]){case 1:u.push(Y),S.push(M.yytext),c.push(M.yylloc),u.push(U[1]),Y=null,O=M.yyleng,p=M.yytext,A=M.yylineno,ut=M.yylloc;break;case 2:if(q=this.productions_[U[1]][1],$.$=S[S.length-q],$._$={first_line:c[c.length-(q||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(q||1)].first_column,last_column:c[c.length-1].last_column},oe&&($._$.range=[c[c.length-(q||1)].range[0],c[c.length-1].range[1]]),pt=this.performAction.apply($,[p,O,A,J.yy,U[1],S,c].concat(ce)),typeof pt<"u")return pt;q&&(u=u.slice(0,-1*q*2),S=S.slice(0,-1*q),c=c.slice(0,-1*q)),u.push(this.productions_[U[1]][0]),S.push($.$),c.push($._$),Nt=_[u[u.length-2]][u[u.length-1]],u.push(Nt);break;case 3:return!0}}return!0},"parse")},T=function(){var N={EOF:1,parseError:d(function(g,u){if(this.yy.parser)this.yy.parser.parseError(g,u);else throw new Error(g)},"parseError"),setInput:d(function(x,g){return this.yy=g||this.yy||{},this._input=x,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:d(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var g=x.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:d(function(x){var g=x.length,u=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var w=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===w.length?this.yylloc.first_column:0)+w[w.length-u.length].length-u[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(x){this.unput(this.match.slice(x))},"less"),pastInput:d(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var x=this.pastInput(),g=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:d(function(x,g){var u,w,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),w=x[0].match(/(?:\r\n?|\n).*/g),w&&(this.yylineno+=w.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:w?w[w.length-1].length-w[w.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(x[0].length),this.matched+=x[0],u=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var c in S)this[c]=S[c];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,g,u,w;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),c=0;cg[0].length)){if(g=u,w=c,this.options.backtrack_lexer){if(x=this.test_match(u,S[c]),x!==!1)return x;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(x=this.test_match(g,S[w]),x!==!1?x:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:d(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:d(function(g,u,w,S){switch(w){case 0:return 10;case 1:return g.getLogger().debug("Found space-block"),31;case 2:return g.getLogger().debug("Found nl-block"),31;case 3:return g.getLogger().debug("Found space-block"),29;case 4:g.getLogger().debug(".",u.yytext);break;case 5:g.getLogger().debug("_",u.yytext);break;case 6:return 5;case 7:return u.yytext=-1,28;case 8:return u.yytext=u.yytext.replace(/columns\s+/,""),g.getLogger().debug("COLUMNS (LEX)",u.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:g.getLogger().debug("LEX: POPPING STR:",u.yytext),this.popState();break;case 14:return g.getLogger().debug("LEX: STR end:",u.yytext),"STR";case 15:return u.yytext=u.yytext.replace(/space\:/,""),g.getLogger().debug("SPACE NUM (LEX)",u.yytext),21;case 16:return u.yytext="1",g.getLogger().debug("COLUMNS (LEX)",u.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),g.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),g.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),g.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),g.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),g.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),g.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),g.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),g.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),g.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),g.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return g.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return g.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return g.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return g.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return g.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return g.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return g.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),g.getLogger().debug("LEX ARR START"),38;case 75:return g.getLogger().debug("Lex: NODE_ID",u.yytext),32;case 76:return g.getLogger().debug("Lex: EOF",u.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:g.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:g.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return g.getLogger().debug("LEX: NODE_DESCR:",u.yytext),"NODE_DESCR";case 84:g.getLogger().debug("LEX POPPING"),this.popState();break;case 85:g.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return u.yytext=u.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (right): dir:",u.yytext),"DIR";case 87:return u.yytext=u.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (left):",u.yytext),"DIR";case 88:return u.yytext=u.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (x):",u.yytext),"DIR";case 89:return u.yytext=u.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (y):",u.yytext),"DIR";case 90:return u.yytext=u.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (up):",u.yytext),"DIR";case 91:return u.yytext=u.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (down):",u.yytext),"DIR";case 92:return u.yytext="]>",g.getLogger().debug("Lex (ARROW_DIR end):",u.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return g.getLogger().debug("Lex: LINK","#"+u.yytext+"#"),15;case 94:return g.getLogger().debug("Lex: LINK",u.yytext),15;case 95:return g.getLogger().debug("Lex: LINK",u.yytext),15;case 96:return g.getLogger().debug("Lex: LINK",u.yytext),15;case 97:return g.getLogger().debug("Lex: START_LINK",u.yytext),this.pushState("LLABEL"),16;case 98:return g.getLogger().debug("Lex: START_LINK",u.yytext),this.pushState("LLABEL"),16;case 99:return g.getLogger().debug("Lex: START_LINK",u.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return g.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),g.getLogger().debug("Lex: LINK","#"+u.yytext+"#"),15;case 103:return this.popState(),g.getLogger().debug("Lex: LINK",u.yytext),15;case 104:return this.popState(),g.getLogger().debug("Lex: LINK",u.yytext),15;case 105:return g.getLogger().debug("Lex: COLON",u.yytext),u.yytext=u.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return N}();v.lexer=T;function k(){this.yy={}}return d(k,"Parser"),k.prototype=v,v.Parser=k,new k}();yt.parser=yt;var Ee=yt,V=new Map,St=[],bt=new Map,Ct="color",Bt="fill",_e="bgFill",Ht=",",ke=z(),ct=new Map,De=d(e=>me.sanitizeText(e,ke),"sanitizeText"),Ne=d(function(e,t=""){let r=ct.get(e);r||(r={id:e,styles:[],textStyles:[]},ct.set(e,r)),t!=null&&t.split(Ht).forEach(n=>{const i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Ct).exec(n)){const s=i.replace(Bt,_e).replace(Ct,Bt);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),Te=d(function(e,t=""){const r=V.get(e);t!=null&&(r.styles=t.split(Ht))},"addStyle2Node"),Ce=d(function(e,t){e.split(",").forEach(function(r){let n=V.get(r);if(n===void 0){const i=r.trim();n={id:i,type:"na",children:[]},V.set(i,n)}n.classes||(n.classes=[]),n.classes.push(t)})},"setCssClass"),Kt=d((e,t)=>{const r=e.flat(),n=[];for(const i of r){if(i.label&&(i.label=De(i.label)),i.type==="classDef"){Ne(i.id,i.css);continue}if(i.type==="applyClass"){Ce(i.id,(i==null?void 0:i.styleClass)??"");continue}if(i.type==="applyStyles"){i!=null&&i.stylesStr&&Te(i.id,i==null?void 0:i.stylesStr);continue}if(i.type==="column-setting")t.columns=i.columns??-1;else if(i.type==="edge"){const a=(bt.get(i.id)??0)+1;bt.set(i.id,a),i.id=a+"-"+i.id,St.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);const a=V.get(i.id);if(a===void 0?V.set(i.id,i):(i.type!=="na"&&(a.type=i.type),i.label!==i.id&&(a.label=i.label)),i.children&&Kt(i.children,i),i.type==="space"){const s=i.width??1;for(let l=0;l {L.debug("Clear called"),xe(),rt={id:"root",type:"composite",children:[],columns:-1},V=new Map([["root",rt]]),vt=[],ct=new Map,St=[],bt=new Map},"clear");function Xt(e){switch(L.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return L.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}d(Xt,"typeStr2Type");function Ut(e){switch(L.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}d(Ut,"edgeTypeStr2Type");function jt(e){switch(e.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}d(jt,"edgeStrToEdgeData");var It=0,Ie=d(()=>(It++,"id-"+Math.random().toString(36).substr(2,12)+"-"+It),"generateId"),Oe=d(e=>{rt.children=e,Kt(e,rt),vt=rt.children},"setHierarchy"),Re=d(e=>{const t=V.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),ze=d(()=>[...V.values()],"getBlocksFlat"),Ae=d(()=>vt||[],"getBlocks"),Me=d(()=>St,"getEdges"),Fe=d(e=>V.get(e),"getBlock"),We=d(e=>{V.set(e.id,e)},"setBlock"),Pe=d(()=>console,"getLogger"),Ye=d(function(){return ct},"getClasses"),He={getConfig:d(()=>at().block,"getConfig"),typeStr2Type:Xt,edgeTypeStr2Type:Ut,edgeStrToEdgeData:jt,getLogger:Pe,getBlocksFlat:ze,getBlocks:Ae,getEdges:Me,setHierarchy:Oe,getBlock:Fe,setBlock:We,getColumns:Re,getClasses:Ye,clear:Be,generateId:Ie},Ke=He,nt=d((e,t)=>{const r=ve,n=r(e,"r"),i=r(e,"g"),a=r(e,"b");return ye(n,i,a,t)},"fade"),Xe=d(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${nt(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${nt(e.mainBkg,.5)}; + fill: ${nt(e.clusterBkg,.5)}; + stroke: ${nt(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,"getStyles"),Ue=Xe,je=d((e,t,r,n)=>{t.forEach(i=>{rr[i](e,r,n)})},"insertMarkers"),Ve=d((e,t,r)=>{L.trace("Making markers for ",r),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),Ge=d((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),Ze=d((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),qe=d((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",r+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),Je=d((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",r+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),Qe=d((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),$e=d((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),tr=d((e,t,r)=>{e.append("marker").attr("id",r+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",r+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),er=d((e,t,r)=>{e.append("defs").append("marker").attr("id",r+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),rr={extension:Ve,composition:Ge,aggregation:Ze,dependency:qe,lollipop:Je,point:Qe,circle:$e,cross:tr,barb:er},ar=je,Wt,Pt,I=((Pt=(Wt=z())==null?void 0:Wt.block)==null?void 0:Pt.padding)??8;function Vt(e,t){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw new Error("Position must be a non-negative integer."+t);if(e<0)return{px:t,py:0};if(e===1)return{px:0,py:t};const r=t%e,n=Math.floor(t/e);return{px:r,py:n}}d(Vt,"calculateBlockPosition");var sr=d(e=>{let t=0,r=0;for(const n of e.children){const{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};L.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>t&&(t=i/(e.widthInColumns??1)),a>r&&(r=a))}return{width:t,height:r}},"getMaxChildSize");function ot(e,t,r=0,n=0){var s,l,o,f,h,y,b,m,E,D,v;L.debug("setBlockSizes abc95 (start)",e.id,(s=e==null?void 0:e.size)==null?void 0:s.x,"block width =",e==null?void 0:e.size,"sieblingWidth",r),(l=e==null?void 0:e.size)!=null&&l.width||(e.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(((o=e.children)==null?void 0:o.length)>0){for(const S of e.children)ot(S,t);const T=sr(e);i=T.width,a=T.height,L.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",i,a);for(const S of e.children)S.size&&(L.debug(`abc95 Setting size of children of ${e.id} id=${S.id} ${i} ${a} ${JSON.stringify(S.size)}`),S.size.width=i*(S.widthInColumns??1)+I*((S.widthInColumns??1)-1),S.size.height=a,S.size.x=0,S.size.y=0,L.debug(`abc95 updating size of ${e.id} children child:${S.id} maxWidth:${i} maxHeight:${a}`));for(const S of e.children)ot(S,t,i,a);const k=e.columns??-1;let N=0;for(const S of e.children)N+=S.widthInColumns??1;let x=e.children.length;k>0&&k0?Math.min(e.children.length,k):e.children.length;if(S>0){const c=(u-S*I-I)/S;L.debug("abc95 (growing to fit) width",e.id,u,(b=e.size)==null?void 0:b.width,c);for(const _ of e.children)_.size&&(_.size.width=c)}}e.size={width:u,height:w,x:0,y:0}}L.debug("setBlockSizes abc94 (done)",e.id,(m=e==null?void 0:e.size)==null?void 0:m.x,(E=e==null?void 0:e.size)==null?void 0:E.width,(D=e==null?void 0:e.size)==null?void 0:D.y,(v=e==null?void 0:e.size)==null?void 0:v.height)}d(ot,"setBlockSizes");function Et(e,t){var n,i,a,s,l,o,f,h,y,b,m,E,D,v,T,k,N;L.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(n=e==null?void 0:e.size)==null?void 0:n.x} y: ${(i=e==null?void 0:e.size)==null?void 0:i.y} width: ${(a=e==null?void 0:e.size)==null?void 0:a.width}`);const r=e.columns??-1;if(L.debug("layoutBlocks columns abc95",e.id,"=>",r,e),e.children&&e.children.length>0){const x=((l=(s=e==null?void 0:e.children[0])==null?void 0:s.size)==null?void 0:l.width)??0,g=e.children.length*x+(e.children.length-1)*I;L.debug("widthOfChildren 88",g,"posX");let u=0;L.debug("abc91 block?.size?.x",e.id,(o=e==null?void 0:e.size)==null?void 0:o.x);let w=(f=e==null?void 0:e.size)!=null&&f.x?((h=e==null?void 0:e.size)==null?void 0:h.x)+(-((y=e==null?void 0:e.size)==null?void 0:y.width)/2||0):-I,S=0;for(const c of e.children){const _=e;if(!c.size)continue;const{width:p,height:A}=c.size,{px:O,py:X}=Vt(r,u);if(X!=S&&(S=X,w=(b=e==null?void 0:e.size)!=null&&b.x?((m=e==null?void 0:e.size)==null?void 0:m.x)+(-((E=e==null?void 0:e.size)==null?void 0:E.width)/2||0):-I,L.debug("New row in layout for block",e.id," and child ",c.id,S)),L.debug(`abc89 layout blocks (child) id: ${c.id} Pos: ${u} (px, py) ${O},${X} (${(D=_==null?void 0:_.size)==null?void 0:D.x},${(v=_==null?void 0:_.size)==null?void 0:v.y}) parent: ${_.id} width: ${p}${I}`),_.size){const W=p/2;c.size.x=w+I+W,L.debug(`abc91 layout blocks (calc) px, pyid:${c.id} startingPos=X${w} new startingPosX${c.size.x} ${W} padding=${I} width=${p} halfWidth=${W} => x:${c.size.x} y:${c.size.y} ${c.widthInColumns} (width * (child?.w || 1)) / 2 ${p*((c==null?void 0:c.widthInColumns)??1)/2}`),w=c.size.x+W,c.size.y=_.size.y-_.size.height/2+X*(A+I)+A/2+I,L.debug(`abc88 layout blocks (calc) px, pyid:${c.id}startingPosX${w}${I}${W}=>x:${c.size.x}y:${c.size.y}${c.widthInColumns}(width * (child?.w || 1)) / 2${p*((c==null?void 0:c.widthInColumns)??1)/2}`)}c.children&&Et(c),u+=(c==null?void 0:c.widthInColumns)??1,L.debug("abc88 columnsPos",c,u)}}L.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${(T=e==null?void 0:e.size)==null?void 0:T.x} y: ${(k=e==null?void 0:e.size)==null?void 0:k.y} width: ${(N=e==null?void 0:e.size)==null?void 0:N.width}`)}d(Et,"layoutBlocks");function _t(e,{minX:t,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:a,y:s,width:l,height:o}=e.size;a-l/2 n&&(n=a+l/2),s+o/2>i&&(i=s+o/2)}if(e.children)for(const a of e.children)({minX:t,minY:r,maxX:n,maxY:i}=_t(a,{minX:t,minY:r,maxX:n,maxY:i}));return{minX:t,minY:r,maxX:n,maxY:i}}d(_t,"findBounds");function Gt(e){const t=e.getBlock("root");if(!t)return;ot(t,e,0,0),Et(t),L.debug("getBlocks",JSON.stringify(t,null,2));const{minX:r,minY:n,maxX:i,maxY:a}=_t(t),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}d(Gt,"layout");function wt(e,t){t&&e.attr("style",t)}d(wt,"applyStyle");function Zt(e){const t=R(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=t.append("xhtml:div"),n=e.label,i=e.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),wt(a,e.labelStyle),a.attr("class",i),wt(r,e.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}d(Zt,"addHtmlLabel");var ir=d((e,t,r,n)=>{let i=e||"";if(typeof i=="object"&&(i=i[0]),Z(z().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
"),L.debug("vertexText"+i);const a={isNode:n,label:we(xt(i)),labelStyle:t.replace("fill:","color:")};return Zt(a)}else{const a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|
/gi):Array.isArray(i)?s=i:s=[];for(const l of s){const o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),r?o.setAttribute("class","title-row"):o.setAttribute("class","row"),o.textContent=l.trim(),a.appendChild(o)}return a}},"createLabel"),j=ir,nr=d((e,t,r,n,i)=>{t.arrowTypeStart&&Ot(e,"start",t.arrowTypeStart,r,n,i),t.arrowTypeEnd&&Ot(e,"end",t.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),lr={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Ot=d((e,t,r,n,i,a)=>{const s=lr[r];if(!s){L.warn(`Unknown arrow type: ${r}`);return}const l=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker"),mt={},P={},cr=d((e,t)=>{const r=z(),n=Z(r.flowchart.htmlLabels),i=t.labelType==="markdown"?Yt(e,t.label,{style:t.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):j(t.label,t.labelStyle),a=e.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){const f=i.children[0],h=R(i);l=f.getBoundingClientRect(),h.attr("width",l.width),h.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),mt[t.id]=a,t.width=l.width,t.height=l.height;let o;if(t.startLabelLeft){const f=j(t.startLabelLeft,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=y.node().appendChild(f);const b=f.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),P[t.id]||(P[t.id]={}),P[t.id].startLeft=h,et(o,t.startLabelLeft)}if(t.startLabelRight){const f=j(t.startLabelRight,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=h.node().appendChild(f),y.node().appendChild(f);const b=f.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),P[t.id]||(P[t.id]={}),P[t.id].startRight=h,et(o,t.startLabelRight)}if(t.endLabelLeft){const f=j(t.endLabelLeft,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=y.node().appendChild(f);const b=f.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),h.node().appendChild(f),P[t.id]||(P[t.id]={}),P[t.id].endLeft=h,et(o,t.endLabelLeft)}if(t.endLabelRight){const f=j(t.endLabelRight,t.labelStyle),h=e.insert("g").attr("class","edgeTerminals"),y=h.insert("g").attr("class","inner");o=y.node().appendChild(f);const b=f.getBBox();y.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),h.node().appendChild(f),P[t.id]||(P[t.id]={}),P[t.id].endRight=h,et(o,t.endLabelRight)}return i},"insertEdgeLabel");function et(e,t){z().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}d(et,"setTerminalWidth");var or=d((e,t)=>{L.debug("Moving label abc88 ",e.id,e.label,mt[e.id],t);let r=t.updatedPath?t.updatedPath:t.originalPath;const n=z(),{subGraphTitleTotalMargin:i}=ge(n);if(e.label){const a=mt[e.id];let s=e.x,l=e.y;if(r){const o=tt.calcLabelPosition(r);L.debug("Moving label "+e.label+" from (",s,",",l,") to (",o.x,",",o.y,") abc88"),t.updatedPath&&(s=o.x,l=o.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(e.startLabelLeft){const a=P[e.id].startLeft;let s=e.x,l=e.y;if(r){const o=tt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);s=o.x,l=o.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.startLabelRight){const a=P[e.id].startRight;let s=e.x,l=e.y;if(r){const o=tt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);s=o.x,l=o.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelLeft){const a=P[e.id].endLeft;let s=e.x,l=e.y;if(r){const o=tt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);s=o.x,l=o.y}a.attr("transform",`translate(${s}, ${l})`)}if(e.endLabelRight){const a=P[e.id].endRight;let s=e.x,l=e.y;if(r){const o=tt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);s=o.x,l=o.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),hr=d((e,t)=>{const r=e.x,n=e.y,i=Math.abs(t.x-r),a=Math.abs(t.y-n),s=e.width/2,l=e.height/2;return i>=s||a>=l},"outsideNode"),dr=d((e,t,r)=>{L.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(r)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const n=e.x,i=e.y,a=Math.abs(n-r.x),s=e.width/2;let l=r.xMath.abs(n-t.x)*o){let y=r.y {L.debug("abc88 cutPathAtIntersect",e,t);let r=[],n=e[0],i=!1;return e.forEach(a=>{if(!hr(t,a)&&!i){const s=dr(t,n,a);let l=!1;r.forEach(o=>{l=l||o.x===s.x&&o.y===s.y}),r.some(o=>o.x===s.x&&o.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),gr=d(function(e,t,r,n,i,a,s){let l=r.points;L.debug("abc88 InsertEdge: edge=",r,"e=",t);let o=!1;const f=a.node(t.v);var h=a.node(t.w);h!=null&&h.intersect&&(f!=null&&f.intersect)&&(l=l.slice(1,r.points.length-1),l.unshift(f.intersect(l[0])),l.push(h.intersect(l[l.length-1]))),r.toCluster&&(L.debug("to cluster abc88",n[r.toCluster]),l=Rt(r.points,n[r.toCluster].node),o=!0),r.fromCluster&&(L.debug("from cluster abc88",n[r.fromCluster]),l=Rt(l.reverse(),n[r.fromCluster].node).reverse(),o=!0);const y=l.filter(x=>!Number.isNaN(x.y));let b=be;r.curve&&(i==="graph"||i==="flowchart")&&(b=r.curve);const{x:m,y:E}=ue(r),D=pe().x(m).y(E).curve(b);let v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}const T=e.append("path").attr("d",D(y)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style);let k="";(z().flowchart.arrowMarkerAbsolute||z().state.arrowMarkerAbsolute)&&(k=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,k=k.replace(/\(/g,"\\("),k=k.replace(/\)/g,"\\)")),nr(T,r,k,s,i);let N={};return o&&(N.updatedPath=l),N.originalPath=r.points,N},"insertEdge"),ur=d(e=>{const t=new Set;for(const r of e)switch(r){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(r);break}return t},"expandAndDeduplicateDirections"),pr=d((e,t,r)=>{const n=ur(e),i=2,a=t.height+2*r.padding,s=a/i,l=t.width+2*s+r.padding,o=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*o},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*o,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*o},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*o,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-o},{x:l-s,y:-o},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+o},{x:s,y:-a+o},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-o},{x:s,y:-o},{x:s,y:-a+o},{x:0,y:-a+o},{x:l/2,y:-a},{x:l,y:-a+o},{x:l-s,y:-a+o},{x:l-s,y:-o},{x:l,y:-o}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-o},{x:s,y:-o},{x:l-s,y:-o},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+o},{x:s,y:-a+o},{x:s,y:-a+o}]:n.has("left")?[{x:s,y:0},{x:s,y:-o},{x:l-s,y:-o},{x:l-s,y:-a+o},{x:s,y:-a+o},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-o},{x:s,y:-a+o},{x:0,y:-a+o},{x:l/2,y:-a},{x:l,y:-a+o},{x:l-s,y:-a+o},{x:l-s,y:-o}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-o},{x:s,y:-o},{x:s,y:-a+o},{x:l-s,y:-a+o},{x:l-s,y:-o},{x:l,y:-o}]:[{x:0,y:0}]},"getArrowPoints");function qt(e,t){return e.intersect(t)}d(qt,"intersectNode");var fr=qt;function Jt(e,t,r,n){var i=e.x,a=e.y,s=i-n.x,l=a-n.y,o=Math.sqrt(t*t*l*l+r*r*s*s),f=Math.abs(t*r*s/o);n.x0}d(Lt,"sameSign");var yr=te,br=ee;function ee(e,t,r){var n=e.x,i=e.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(E){s=Math.min(s,E.x),l=Math.min(l,E.y)}):(s=Math.min(s,t.x),l=Math.min(l,t.y));for(var o=n-e.width/2-s,f=i-e.height/2-l,h=0;h 1&&a.sort(function(E,D){var v=E.x-r.x,T=E.y-r.y,k=Math.sqrt(v*v+T*T),N=D.x-r.x,x=D.y-r.y,g=Math.sqrt(N*N+x*x);return k {var r=e.x,n=e.y,i=t.x-r,a=t.y-n,s=e.width/2,l=e.height/2,o,f;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),o=a===0?0:l*i/a,f=l):(i<0&&(s=-s),o=s,f=i===0?0:s*a/i),{x:r+o,y:n+f}},"intersectRect"),mr=wr,C={node:fr,circle:xr,ellipse:Qt,polygon:br,rect:mr},F=d(async(e,t,r,n)=>{const i=z();let a;const s=t.useHtmlLabels||Z(i.flowchart.htmlLabels);r?a=r:a="node default";const l=e.insert("g").attr("class",a).attr("id",t.domId||t.id),o=l.insert("g").attr("class","label").attr("style",t.labelStyle);let f;t.labelText===void 0?f="":f=typeof t.labelText=="string"?t.labelText:t.labelText[0];const h=o.node();let y;t.labelType==="markdown"?y=Yt(o,Tt(xt(f),i),{useHtmlLabels:s,width:t.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):y=h.appendChild(j(Tt(xt(f),i),t.labelStyle,!1,n));let b=y.getBBox();const m=t.padding/2;if(Z(i.flowchart.htmlLabels)){const E=y.children[0],D=R(y),v=E.getElementsByTagName("img");if(v){const T=f.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(k=>new Promise(N=>{function x(){if(k.style.display="flex",k.style.flexDirection="column",T){const g=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,w=parseInt(g,10)*5+"px";k.style.minWidth=w,k.style.maxWidth=w}else k.style.width="100%";N(k)}d(x,"setupImage"),setTimeout(()=>{k.complete&&x()}),k.addEventListener("error",x),k.addEventListener("load",x)})))}b=E.getBoundingClientRect(),D.attr("width",b.width),D.attr("height",b.height)}return s?o.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"):o.attr("transform","translate(0, "+-b.height/2+")"),t.centerLabel&&o.attr("transform","translate("+-b.width/2+", "+-b.height/2+")"),o.insert("rect",":first-child"),{shapeSvg:l,bbox:b,halfPadding:m,label:o}},"labelHelper"),B=d((e,t)=>{const r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds");function G(e,t,r,n){return e.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}d(G,"insertPolygonShape");var Lr=d(async(e,t)=>{t.useHtmlLabels||z().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:n,bbox:i,halfPadding:a}=await F(e,t,"node "+t.classes,!0);L.info("Classes = ",t.classes);const s=n.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+t.padding).attr("height",i.height+t.padding),B(t,s),t.intersect=function(l){return C.rect(t,l)},n},"note"),Sr=Lr,zt=d(e=>e?" "+e:"","formatClass"),K=d((e,t)=>`${t||"node default"}${zt(e.classes)} ${zt(e.class)}`,"getClassesFromNode"),At=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];L.info("Question main (Circle)");const o=G(r,s,s,l);return o.attr("style",t.style),B(t,o),t.intersect=function(f){return L.warn("Intersect called"),C.polygon(t,l,f)},r},"question"),vr=d((e,t)=>{const r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return C.circle(t,14,s)},r},"choice"),Er=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=4,a=n.height+t.padding,s=a/i,l=n.width+2*s+t.padding,o=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],f=G(r,l,a,o);return f.attr("style",t.style),B(t,f),t.intersect=function(h){return C.polygon(t,o,h)},r},"hexagon"),_r=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,void 0,!0),i=2,a=n.height+2*t.padding,s=a/i,l=n.width+2*s+t.padding,o=pr(t.directions,n,t),f=G(r,l,a,o);return f.attr("style",t.style),B(t,f),t.intersect=function(h){return C.polygon(t,o,h)},r},"block_arrow"),kr=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return G(r,i,a,s).attr("style",t.style),t.width=i+a,t.height=a,t.intersect=function(o){return C.polygon(t,s,o)},r},"rect_left_inv_arrow"),Dr=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=G(r,i,a,s);return l.attr("style",t.style),B(t,l),t.intersect=function(o){return C.polygon(t,s,o)},r},"lean_right"),Nr=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=G(r,i,a,s);return l.attr("style",t.style),B(t,l),t.intersect=function(o){return C.polygon(t,s,o)},r},"lean_left"),Tr=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=G(r,i,a,s);return l.attr("style",t.style),B(t,l),t.intersect=function(o){return C.polygon(t,s,o)},r},"trapezoid"),Cr=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=G(r,i,a,s);return l.attr("style",t.style),B(t,l),t.intersect=function(o){return C.polygon(t,s,o)},r},"inv_trapezoid"),Br=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=G(r,i,a,s);return l.attr("style",t.style),B(t,l),t.intersect=function(o){return C.polygon(t,s,o)},r},"rect_right_inv_arrow"),Ir=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+t.padding,o="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,f=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",o).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return B(t,f),t.intersect=function(h){const y=C.rect(t,h),b=y.x-t.x;if(a!=0&&(Math.abs(b) /g,">"));const A=b.node().appendChild(j(p,_.cssStyle?_.cssStyle:t.labelStyle,!0,!0));let O=A.getBBox();if(Z(z().flowchart.htmlLabels)){const X=A.children[0],W=R(A);O=X.getBoundingClientRect(),W.attr("width",O.width),W.attr("height",O.height)}O.width>h&&(h=O.width),y+=O.height+n,g.push(A)}),y+=i;const u=[];if(t.classData.methods.forEach(c=>{const _=c.getDisplayDetails();let p=_.displayText;z().flowchart.htmlLabels&&(p=p.replace(/t.height/2-s)){let m=s*s*(1-b*b/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,h.y-t.y>0&&(m=-m),y.y+=m}return y},r},"cylinder"),Or=d(async(e,t)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await F(e,t,"node "+t.classes+" "+t.class,!0),a=r.insert("rect",":first-child"),s=t.positioned?t.width:n.width+t.padding,l=t.positioned?t.height:n.height+t.padding,o=t.positioned?-s/2:-n.width/2-i,f=t.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",o).attr("y",f).attr("width",s).attr("height",l),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(ht(a,t.props.borders,s,l),h.delete("borders")),h.forEach(y=>{L.warn(`Unknown node property ${y}`)})}return B(t,a),t.intersect=function(h){return C.rect(t,h)},r},"rect"),Rr=d(async(e,t)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await F(e,t,"node "+t.classes,!0),a=r.insert("rect",":first-child"),s=t.positioned?t.width:n.width+t.padding,l=t.positioned?t.height:n.height+t.padding,o=t.positioned?-s/2:-n.width/2-i,f=t.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",o).attr("y",f).attr("width",s).attr("height",l),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(ht(a,t.props.borders,s,l),h.delete("borders")),h.forEach(y=>{L.warn(`Unknown node property ${y}`)})}return B(t,a),t.intersect=function(h){return C.rect(t,h)},r},"composite"),zr=d(async(e,t)=>{const{shapeSvg:r}=await F(e,t,"label",!0);L.trace("Classes = ",t.class);const n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),t.props){const s=new Set(Object.keys(t.props));t.props.borders&&(ht(n,t.props.borders,i,a),s.delete("borders")),s.forEach(l=>{L.warn(`Unknown node property ${l}`)})}return B(t,n),t.intersect=function(s){return C.rect(t,s)},r},"labelRect");function ht(e,t,r,n){const i=[],a=d(l=>{i.push(l,0)},"addBorder"),s=d(l=>{i.push(0,l)},"skipBorder");t.includes("t")?(L.debug("add top border"),a(r)):s(r),t.includes("r")?(L.debug("add right border"),a(n)):s(n),t.includes("b")?(L.debug("add bottom border"),a(r)):s(r),t.includes("l")?(L.debug("add left border"),a(n)):s(n),e.attr("stroke-dasharray",i.join(" "))}d(ht,"applyNodePropertyBorders");var Ar=d((e,t)=>{let r;t.classes?r="node "+t.classes:r="node default";const n=e.insert("g").attr("class",r).attr("id",t.domId||t.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=t.labelText.flat?t.labelText.flat():t.labelText;let o="";typeof l=="object"?o=l[0]:o=l,L.info("Label text abc79",o,l,typeof l=="object");const f=s.node().appendChild(j(o,t.labelStyle,!0,!0));let h={width:0,height:0};if(Z(z().flowchart.htmlLabels)){const D=f.children[0],v=R(f);h=D.getBoundingClientRect(),v.attr("width",h.width),v.attr("height",h.height)}L.info("Text 2",l);const y=l.slice(1,l.length);let b=f.getBBox();const m=s.node().appendChild(j(y.join?y.join("
"):y,t.labelStyle,!0,!0));if(Z(z().flowchart.htmlLabels)){const D=m.children[0],v=R(m);h=D.getBoundingClientRect(),v.attr("width",h.width),v.attr("height",h.height)}const E=t.padding/2;return R(m).attr("transform","translate( "+(h.width>b.width?0:(b.width-h.width)/2)+", "+(b.height+E+5)+")"),R(f).attr("transform","translate( "+(h.width{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.height+t.padding,a=n.width+i/4+t.padding,s=r.insert("rect",":first-child").attr("style",t.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return B(t,s),t.intersect=function(l){return C.rect(t,l)},r},"stadium"),Fr=d(async(e,t)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await F(e,t,K(t,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i).attr("width",n.width+t.padding).attr("height",n.height+t.padding),L.info("Circle main"),B(t,a),t.intersect=function(s){return L.info("Circle intersect",t,n.width/2+i,s),C.circle(t,n.width/2+i,s)},r},"circle"),Wr=d(async(e,t)=>{const{shapeSvg:r,bbox:n,halfPadding:i}=await F(e,t,K(t,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),o=s.insert("circle");return s.attr("class",t.class),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i+a).attr("width",n.width+t.padding+a*2).attr("height",n.height+t.padding+a*2),o.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",n.width/2+i).attr("width",n.width+t.padding).attr("height",n.height+t.padding),L.info("DoubleCircle main"),B(t,l),t.intersect=function(f){return L.info("DoubleCircle intersect",t,n.width/2+i+a,f),C.circle(t,n.width/2+i+a,f)},r},"doublecircle"),Pr=d(async(e,t)=>{const{shapeSvg:r,bbox:n}=await F(e,t,K(t,void 0),!0),i=n.width+t.padding,a=n.height+t.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=G(r,i,a,s);return l.attr("style",t.style),B(t,l),t.intersect=function(o){return C.polygon(t,s,o)},r},"subroutine"),Yr=d((e,t)=>{const r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),B(t,n),t.intersect=function(i){return C.circle(t,7,i)},r},"start"),Mt=d((e,t,r)=>{const n=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let i=70,a=10;r==="LR"&&(i=10,a=70);const s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return B(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(l){return C.rect(t,l)},n},"forkJoin"),Hr=d((e,t)=>{const r=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),B(t,i),t.intersect=function(a){return C.circle(t,7,a)},r},"end"),Kr=d((e,t)=>{var S;const r=t.padding/2,n=4,i=8;let a;t.classes?a="node "+t.classes:a="node default";const s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=s.insert("rect",":first-child"),o=s.insert("line"),f=s.insert("line");let h=0,y=n;const b=s.insert("g").attr("class","label");let m=0;const E=(S=t.classData.annotations)==null?void 0:S[0],D=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",v=b.node().appendChild(j(D,t.labelStyle,!0,!0));let T=v.getBBox();if(Z(z().flowchart.htmlLabels)){const c=v.children[0],_=R(v);T=c.getBoundingClientRect(),_.attr("width",T.width),_.attr("height",T.height)}t.classData.annotations[0]&&(y+=T.height+n,h+=T.width);let k=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(z().flowchart.htmlLabels?k+="<"+t.classData.type+">":k+="<"+t.classData.type+">");const N=b.node().appendChild(j(k,t.labelStyle,!0,!0));R(N).attr("class","classTitle");let x=N.getBBox();if(Z(z().flowchart.htmlLabels)){const c=N.children[0],_=R(N);x=c.getBoundingClientRect(),_.attr("width",x.width),_.attr("height",x.height)}y+=x.height+n,x.width>h&&(h=x.width);const g=[];t.classData.members.forEach(c=>{const _=c.getDisplayDetails();let p=_.displayText;z().flowchart.htmlLabels&&(p=p.replace(/