sachet.tin 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分
  4. ===========
  5. PaoTin++ © 2020~2024 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  6. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  7. ===========
  8. */
  9. /*
  10. 宝石囊的名字现在有好几种版本:钵盂(僧侣)、布袋(丐帮)、人偶(五毒教)、锦囊(其他门派)
  11. 以上功能都一样,区别在于名字和 ID 不同。
  12. 另外,jiancha 命令现在要求必须带 ID 才能看到宝石内容,否则只能看到数量,因此实际上存在带参数
  13. 和不带参数两个版本。
  14. 格式分别如下:
  15. 不带参数:
  16. 钵盂[141/141]
  17. 带参数:
  18. 钵盂(Bo yu) [141/141]
  19. 这是一只紫金色的钵盂,在出家人手中很常见。
  20. ╭───五行宝石──┬─────────┬─────────┬──────────╮
  21. │[J4A]风☆精金*1 │[M5B]雷★木灵*17 │[B7A]泽☆玄冰*1 │[Y3B]水★炎晶*2 │
  22. │[J3A]水☆精金*2 │[M4B]风★木灵*48 │[B4A]风☆玄冰*4 │[Y2B]山★炎晶*1 │
  23. │[J2A]山☆精金*2 │[M3B]水★木灵*8 │[B3A]水☆玄冰*34 │[Y1B]地★炎晶*1 │
  24. │[J1A]地☆精金*1 │[M2B]山★木灵*2 │[B2A]山☆玄冰*1 │ │
  25. │ │[M1B]地★木灵*4 │ │ │
  26. ├───日月及中性五行宝石───────┴─────────┴──────────┤
  27. │[S4C]风◎玉髓*3 │
  28. │[S3C]水◎玉髓*1 │
  29. │[S2C]山◎玉髓*3 │
  30. ├───四灵宝石──────┬─────────────┬────────────┤
  31. │[G1B]地★神龙骨*1 │[Q4B]风★麒麟角*1 │[X2B]山★玄武甲*1 │
  32. │ │[Q1A]地☆麒麟角*1 │[X1B]地★玄武甲*1 │
  33. ╰─────────────┴─────────────┴───北大侠客行────╯
  34. 对玩家来说,jiancha 后面带不同 ID 颇有不便,所以现在改成统一 jiancha gem 表示查看详情。
  35. */
  36. #list char[锦囊] create {};
  37. #alias {jiancha} {char.sachet.jiancha};
  38. #alias {char.sachet.jiancha} {
  39. #local id {%0};
  40. #if { "$id" == "" } {
  41. xtt.Send {jiancha};
  42. #return;
  43. };
  44. #if { "$id" == "gem" } {
  45. #switch {"$char[档案][门派]"} {
  46. #case {"{少林派|峨嵋派|天龙寺|大轮寺}"} {#local id {bo yu}};
  47. #case {"五毒教"} {#local id {ren ou}};
  48. #case {"丐帮"} {#local id {baoshi dai}};
  49. #default {#local id {jin nang}};
  50. };
  51. };
  52. #list char[锦囊] create {};
  53. #line oneshot #action {^{人偶|布袋|钵盂|锦囊}(%*) [%*/%*]{|ID=char.sachet}$} {
  54. char.sachet.parse.output;
  55. };
  56. xtt.Send {jiancha $id};
  57. };
  58. #alias {char.sachet.parse.output} {
  59. #class char-parse-sachet open;
  60. #local level {地|山|水|风|雷|火|泽|天};
  61. #local type {☆|★|◎};
  62. #local wuxing {精金|木灵|玄冰|炎晶|玉髓};
  63. #local beast {玄武甲|神龙骨|凤凰羽|麒麟角};
  64. #local special {日魂|月魄};
  65. #local pattern {\(\s*(\d+)\)($level)($type)($wuxing|$beast|$special)\*(\d+)\s+};
  66. #action {^├───%*宝石───────┴─────────┴──────────┤$} {
  67. #nop;
  68. };
  69. #action {^│%*│$} {
  70. #local line {%%1};
  71. #replace line {│} {;};
  72. #local item {};
  73. #foreach {$line} {item} {
  74. #if { "$item" == "" } {
  75. #continue;
  76. };
  77. #nop {[M5B]雷★木灵*30};
  78. #local item {@__char_sachet_parse__{{$item}}};
  79. #var char[锦囊] {$char[锦囊]{$item[序号]}{$item}};
  80. };
  81. };
  82. #action {^╰──{(─|┴)+}─%S────╯{|ID=char.sachet}$} {
  83. #class char-parse-sachet kill;
  84. };
  85. event.HandleOnce GA {char.sachet} {char} {
  86. #class char-parse-sachet kill;
  87. okLog 锦囊数据已更新。;
  88. #nop 吞参数专用,不要删除本行,也不要在末尾加分号或是别的语句
  89. };
  90. #class char-parse-sachet close;
  91. };
  92. #func {__char_sachet_parse__} {
  93. #local item {%1};
  94. #replace {item} {[%S]%*{☆|★|◎}%**%d} {
  95. {序号}{&1}
  96. {等级}{&2}
  97. {阴阳}{&3}
  98. {种类}{&4}
  99. {数量}{&5}
  100. };
  101. #return {$item};
  102. };