SinaNya

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3927|回复: 5

如何自己制作牌堆文件

[复制链接]

24

主题

65

帖子

293

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
293
 楼主| 发表于 2020-2-27 17:22:38 | 显示全部楼层 |阅读模式
首先,请下载模板文件https://dice-new-1256090486.cos. ... 91%BD%E4%BB%A4.yaml

其中内容如下
  1. # 请使用者一定要注意,所有你的可输出文本内容中,不能包含任何“英文符号”,如,"等,你可以使用中文符号。
  2. # 以下内容注意,name: 测试中,测试和前面的:之间有一个空格,务必加上
  3. # 文本采用YAML格式,推荐用Visual Studio code后选择YAML格式,在染色状态下编辑。
  4. # 编辑结束后,推荐使用http://www.bejson.com/validators/yaml/ 对文本格式进行校验
  5. name: 测试命令
  6. # 文本模组名称
  7. author: 斯塔尼亚
  8. # 作者
  9. version: 1
  10. # 当前版本,用于区分更新,<span style="background-color: rgb(255, 255, 255);">version必须为数字,而非字符串</span>
  11. command: 测试命令
  12. # 命令,此值必须和文件名完全一致
  13. desc: 无
  14. # 说明内容,说明此文本库的用法
  15. default:
  16. # 默认值,当使用者仅包含command值时调用,如.deck <command>
  17. help:
  18. # 其它命令参照此项,调用方式为.deck <command> <子项名称>,如此处为.deck Taro help
  19.   - 'Taro 命令抽取卡牌'
  20.   - '无其它命令'
  21.   - "[3d6+5]计算命令,每次回复都会自动计算3d6+5的结果"
  22. test:
  23.   - '以下内容为:{$help}'
  24. # {$xxxxx}的写法将自动引用指定变量中的随机数,读取后放回,这里引用了上方所写的help变量
  25.   - '另一种内容为: {%help}'
  26. # {%xxxxx}的写法和{$xxxx},类似一样是引用变量,但引用后不会放回
  27. - include
  28.   - 测试命令
  29. #只有这里包含的命令,才会在.deck help命令中被显示
复制代码


推荐使用VsCode进行编辑,如图所示。打开文件后右下角选择yaml,即可使用vscode协助你管理格式了
下载地址位于https://code.visualstudio.com/

你最好对yaml格式有所了解,这是一种强缩进格式,对于空格和tab极端敏感,但习惯后好读好写,百度有很多相关资料

此外,你可以下载仑质开发的牌堆生成器,可以把json牌堆改为yaml牌堆。
https://dice-new-1256090486.cos. ... .0.8.20200122.1.exe

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

24

主题

65

帖子

293

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
293
 楼主| 发表于 2020-2-27 17:25:26 | 显示全部楼层
认为牌堆写好后,可以放到SinaNyaDice目录下的deck文件夹下(没有可以自行新建)
放进去后,需要重启核心,建议用SinaNya-DEBUG.exe启动,这会更容易让你发现牌堆的bug

一旦牌堆格式出现问题,骰子功能会正常启动,但设置界面不会出现,此时使用上面提到的DEBUG.exe即可检查哪里出了问题

最后,如果界面也成功出现,那么使用.deck help即可查看命令是否正常装载

5

主题

10

帖子

178

积分

版主

Rank: 7Rank: 7Rank: 7

积分
178
发表于 2020-3-3 22:26:55 | 显示全部楼层
关于制作时的几个操作0.不要去像我一样的尝试去在数组里面使用英文的半角字符企图把他正常输出,尤其是,不知道为什么不会被‘’转义成字符输出
下面正式开始
1.格式按塔喵给的,在include中最好给出.deck help中的提示;
2.在数组中,如果只有一个数组还好,可是在有一组以上时会出现使用非第一个数组时字符串前出现“ ”(一个空格符)的情况,推荐给数组里第一个字符串前加上“ ”(一个空格符)以保证格式对其,或者活用\n换行输出,是的“ ”(一个空格符)留在上一段的尾部;
3.在用VsCode制作时如果出现大量需要修改的相同的内容,且没有你不需要修改的部分或者很少,可以如同Word里的替换一样,先选定内容再使用Ctrl+Shift+l就可以集体修改了;
4.比较大的卡池最好乖乖的按块打上注释,不然以后有你后悔的;
5.在不修改name、author、version、command、desc的前提下,你可以尝试在线更新,不过还是有风险的,可能直接连骰子都崩掉甚至更可怕的风险(我自己都不知道),如果你的指令没有回应,哪怕是在日志里都没有,那么恭喜你,写出bug了,你需要退回之前可以使用的状态保存,再测试可以使用,那么就可以很明确的,你刚才成功的bug制成了一波;
6.多参考些别人的。


以上
2020年3月3日 22:26:21

SAN值只有15的家伙  留

24

主题

65

帖子

293

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
293
 楼主| 发表于 2020-3-6 23:17:09 | 显示全部楼层
SAN值只有15家伙 发表于 2020-3-3 22:26
关于制作时的几个操作0.不要去像我一样的尝试去在数组里面使用英文的半角字符企图把他正常输出,尤其是,不 ...


我稍微补充两句
yaml不是一种自创的格式,而是一种广泛应用于IT行业的配置文件格式

它有多有名不重要,重要的是:它是一个有广泛规范的语言,这意味着它有完善的各种软件、网页验证支持

随便网上一搜,就有yaml校验器,你可以在放到deck前先使用那些东西,在线快速排除语法错误
随后,放到deck中。开发期间推荐使用SinaNya-DEBUG.exe打开,这时哪行有问题也会报错,方便快速定位问题

yaml语言好读,json好写。两种语言都很常见,我个人更倾向于使用yaml,因为json在实际开发中……通常是程序与程序之间的数据传递,大量文本的配置文件用json容易因为标点问题而过于繁琐

而且,就和java与python的争论一样,一个强格式需求的语言对于其他开发者而言实在是件好事,它保证每一个人写出来的牌堆都符合统一的格式需求,进而不会造成任何互相之间的误解或者阅读困难

0

主题

1

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2020-3-19 11:15:08 | 显示全部楼层
请问一下,牌堆的概率只能靠靠手动稀释吗,还是能有什么功能做到

5

主题

10

帖子

178

积分

版主

Rank: 7Rank: 7Rank: 7

积分
178
发表于 2020-4-21 22:12:14 | 显示全部楼层
本帖最后由 SAN值只有15家伙 于 2020-4-21 22:13 编辑

新版的deck模版在sinanya官方群有,而且改日也会上传到骰娘的附加功能里提供下载。

其中内容如下:
  1. # 模版声明
  2. # 本模版版本是基于老版本应SinaNya的5.58.140版本往后的版本而制作的新模版,里面介绍了一些新的用法,对于不需要的注释可以删除
  3. # ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————-————
  4. # 注意事项
  5. # 请使用者一定要注意,所有你的可输出文本内容中,不能包含任何“英文符号”,如,"等,你可以使用中文符号。
  6. # 以下内容注意,name: 测试中,测试和前面的:之间有一个空格,务必加上
  7. # 文本采用YAML格式,推荐用Visual Studio code后选择YAML格式,在染色状态下编辑。
  8. # 编辑结束后,推荐使用http://www.bejson.com/validators/yaml/ 对文本格式进行校验
  9. # ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  10. # 结构说明
  11. # 1.首先是这个deck文件必须有我称为五大固定属性的玩意,他们是这个文件的检测依据,缺失或格式错误就会出问题。他们是以常理?属
  12. #   性的形式存在着。分别为:name属性、author属性、version属性、command属性、desc属性。其中name、author、desc可以是空值,不
  13. #   过你个空格还是要拍的,另外两个则必须有,其中command最好不要和现有deck的重合。其格式固定为单行的属性名: (属性名英文冒
  14. #   号空格)的格式后面跟着内容;
  15. # 2.数组部分,除了这五个部分外其他部分都是以数组的形式存在,格式为数组名跟英文冒号换行多个空格减号空格构成,切deck文件中所
  16. #   有的前面的空格数要一致以保证减号在一条竖线上。在数组里有两个数组为有特殊效果的数组,分别是include数组和default数组,效
  17. #   果下面有写。此外,数组的每一个元素最好各在一条线上。
  18. # ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  19. # 常见问题
  20. # 1.打了一个引号漏了一个引号,所有可输出文本的最两边如果有一个引号存在则必须对应匹配,把这部分内容用引号括起来;
  21. # 2.引号不对应;
  22. # 3.五大固定属性缺失,或格式错误;
  23. # 4.数组的格式错误。
  24. # ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  25. name: 牌堆模版
  26. # 文本模组名称,一个好识别的名字就行
  27. author: SAN值只有7的家伙
  28. # 作者,留下你的鼎鼎大名
  29. version: 3
  30. # 当前版本,用于区分更新,目前只支持整数版号,不支持浮点数和文字
  31. command: deck模版
  32. # 牌堆主命令词,此值必须和文件名完全一致,基础为.deck deck模版。其中的test指此项中test位置的内容
  33. desc: 牌堆模版,想自己制作牌堆的可以使用模版
  34. # 说明内容,说明此文本库的用法
  35. include:
  36.   - default
  37.   - "test"
  38. # 如果你设置了include,那么只有include中包含的命令会被deck help打印,不然你在.deck help里面就能看到一堆这个牌堆相关的玩意
  39. default:
  40.   - "这里是你直接使用主命令词可以显示的内容。"
  41. # 默认值,当使用者仅包含command值时调用,如.deck <command>,没有设置的话你直接的此牌堆的主命令会无法找到
  42. help:
  43. # 其它命令参照此项,调用方式为.deck <command> <子项名称>,如此处为.deck deck模版 help
  44.   - 无标点字符
  45. # 无标点字符的情况下你可以考虑不加引号
  46.   - '我就是要显示\n出来咋的'
  47. # 在想要内部字符不转义直接打印出来的话就用单引号就行
  48.   - "这是第一行\n这是第二行"
  49. # 你需要一些yaml自带的特殊功能,请使用双引号括起来
  50. test: &shuzufuzhi
  51. # 这里列举一些有特殊效果的东西
  52.   - "这里是\n换行"
  53. # 这里的\n是表示换行的意思,必须以""括住才能实现,为yml的自带内容。
  54.   - '{$help}'
  55. # 这里是引用另一个数组的内容,以实现概率稀释、分层结构的目的。这里读取后放回,这里引用了上方所写的help变量。
  56.   - '{%help}'
  57. # 这里是引用另一个数组的内容,以实现概率稀释、分层结构的目的。这里读取后不放回去,且不支持这个的复数嵌套形式。
  58.   - '[1d20+2]'
  59. # 这里是使用了骰点功能,与外部骰点格式基本一致,区别在于不需要.r来开头而是使用英文的[]括起来。
  60.   - '【name】'
  61. # 这是引用了命令输入者在SinaNya里的昵称,注意,是中文【】。
  62.   - '多次重复 ***1***'
  63. # 这里是多次重复的功能,在要输出的语句且需要稀释的语句的引号内的最后用*** ***前后括起来的数字来实现该语句在内部的多次重复,
  64. # 以达到概率稀释之类的。
  65.   - &maodian "锚点"
  66. # 锚点是yml的自带内容,在deck中使用有着很多的要求:
  67. # 虽然可以对一整个数组使用,对数组使用的方法为在数组名称之后以空格后加上&和一个英文的关键词来建立整个数组的锚点;
  68. # 多数推荐使用对数组元素使用的情况,正如此示例,在减号空格之后使用&加关键词来建立,之后用空格隔开具体内容,主要用在在文件中
  69. # 多次出现的内容上,可以通过修改锚点后的元素内容以实现全部修改的目的。
  70.   - *maodian
  71. # 这个是与锚点对应的一项,引用。这里是对前面的数组元素“锚点”的引用,需要在减号空格后以*为开头接上关键词来引用,可以在一个数
  72. # 组中引用多个不同元素。这个引用只与数组元素的锚点对应。
  73. ceshi:
  74.   *shuzufuzhi
  75. # 这也是一个引用,正如之前所说,对整个数组的引用,然并软,无法添加新的元素了,就是一个对数组复制的功能。
  76. #—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
  77. # 其他的还有CQ码的功能,具体CQ码功能请查询酷Q那边https://docs.cqp.im/manual/cqcode/ 而多数需要Pro支持。
复制代码
至于其他的一楼有说我就不复述了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|SinaNya骰点核心交流论坛

GMT+8, 2024-11-24 18:39 , Processed in 0.410624 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表