status.tin 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分
  4. ===========
  5. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  6. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  7. ===========
  8. */
  9. #var basic_char_status[META] {
  10. {NAME} {状态面板}
  11. {DESC} {解析 status_me 命令,并储存到变量 char[STATUS]}
  12. {AUTHOR} {担子炮}
  13. {NOTE} {本文件属于 PaoTin++ 的一部分}
  14. };
  15. load-lib event;
  16. event.Define {char/status} {无参} {$MODULE} {已经获取到 status_me 命令输出结果,并更新 char[STATUS]。};
  17. #nop ╭────个人状态────┬────┬──────┬────┬──────┬────┬─────╮;
  18. #nop │姓名 │马后炮 │ID │Mhp │级别 │32 │战斗力 │104611 │;
  19. #nop ├───攻击属性────┼────┼──────┼────┼──────┼────┼──────┤;
  20. #nop │武器伤害│264 │出招速度│0.58 │外伤命中│806 │内伤命中│-2级 │;
  21. #nop │外伤增益│15% │内伤增益│6% │要害攻击│2% │要害伤害│152% │;
  22. #nop │毒伤增强│0% │致晕命中│0级 │ │ │ │ │;
  23. #nop ├───防御属性────┼────┼──────┼────┼──────┼────┼──────┤;
  24. #nop │护甲 │597 │防御 │382 │躲闪 │818 │招架 │2846 │;
  25. #nop │外伤抗性│50% │外伤绝抗│0% │内伤抗性│45% │内伤绝抗│0% │;
  26. #nop │真气减伤│9% │伤害吸收│0% │外伤减伤│0 │技能防御│4级 │;
  27. #nop │要害抗性│1% │毒伤抗性│50% │致晕抗性│+3级 │ │ │;
  28. #nop ├───其他属性────┼────┼──────┼────┼──────┼────┼──────┤;
  29. #nop │臂力影响│54 │悟性影响│45 │根骨影响│75 │身法影响│59 │;
  30. #nop │后天身法│10点 │ │ │ │ │ │ │;
  31. #nop ├───技能加成────┼────┼──────┼────┼──────┼────┼──────┤;
  32. #nop │基本轻功│+57级 │基本招架│+40级 │基本拳法│+25级 │基本爪法│+25级 │;
  33. #nop │基本手法│+24级 │基本剑法│+50级 │基本刀法│+50级 │ │ │;
  34. #nop ├───恢复状态────┼────┼──────┼────┼──────┼────┼──────┤;
  35. #nop │气血基础│3381 │等级加成│1589 │高等加成│0 │其他加成│18050 │;
  36. #nop │精神基础│1964 │等级加成│926 │高等加成│0 │其他加成│2882 │;
  37. #nop │气血恢复│309.37 │气血治疗│49.79 │精神恢复│389.58 │精神治疗│49.79 │;
  38. #nop │内力恢复│43.05 │精力恢复│14.32 │内力精纯│100.00% │加力减耗│0% │;
  39. #nop ├───战斗信息────┴────┴──────┴────┴──────┴────┴──────┤;
  40. #nop │你使用「太极剑法」中的绝招「太极剑·连」攻击对手:喻永思(yu yongsi),命中(986),对方躲闪(1509 │;
  41. #nop │),招架(1795),最终命中概率12.00%。 │;
  42. #nop ├───特殊状态────────────────────────────────────────┤;
  43. #nop │身轻如燕永久有效,躲闪几率增加10%。 │;
  44. #nop │太极神功永久有效,最大气血 + 5100点。 │;
  45. #nop │铜皮铁骨永久有效,防御躲闪 + 117级,护甲防御 + 235点。 │;
  46. #nop ├───健康状态────────────────────────────────────────┤;
  47. #nop │受伤、怒、梯云纵(127秒)、太极剑·随(11秒)、太极剑·连(4秒)、太极剑·缠(1秒) │;
  48. #nop ├───奖励状态────┬────┬──────┬────┬──────┬────┬──────┤;
  49. #nop │幸运值 │25 │奖励系数│115% │识图检查│完整奖励 │ │ │;
  50. #nop ╰────┴──────┴────┴──────┴────┴──────┴──北大侠客行────╯;
  51. #alias {char.status_me.parse.output} {
  52. #local silent {%1};
  53. #class char-parse-status-me open;
  54. #if { "$silent" == "gag" } {
  55. #gag {^%*$};
  56. };
  57. #nop │气血恢复│6.42 │气血治疗│0.11 │精神恢复│3.16 │精神治疗│0.11 │;
  58. #action {^│气血恢复│%S%!s│气血治疗│%S%!s│精神恢复│%S%!s│精神治疗│%S%!s│$} {
  59. #var char[STATUS][气血恢复] {@str.Trim{%%1}};
  60. #var char[STATUS][气血治疗] {@str.Trim{%%2}};
  61. #var char[STATUS][精神恢复] {@str.Trim{%%3}};
  62. #var char[STATUS][精神治疗] {@str.Trim{%%4}};
  63. };
  64. #nop │内力恢复│4.11 │精力恢复│12.63 │内力精纯│97.69% │加力减耗│0% │;
  65. #action {^│内力恢复│%S%!s│精力恢复│%S%!s│内力精纯│%S\%%!s│加力减耗│%*│$} {
  66. #var char[STATUS][内力恢复] {@str.Trim{%%1}};
  67. #var char[STATUS][精力恢复] {@str.Trim{%%2}};
  68. #var char[STATUS][内力精纯] {@str.Trim{%%3}};
  69. };
  70. #nop 兜底儿的触发,捕获其它所有数值类型字段;
  71. #action {^│%*│%S%!s│%*│%S%!s│%*│%S%!s│%*│%S%!s│$} {
  72. #local data {
  73. {%%1} {%%2}
  74. {%%3} {%%4}
  75. {%%5} {%%6}
  76. {%%7} {%%8}
  77. };
  78. #local key {};
  79. #foreach {*data[]} {key} {
  80. #local value {@str.Trim{$data[$key]}};
  81. #local key {@str.Trim{$key}};
  82. #if { "$key" != "" } {
  83. #replace value {{[^0-9.-]+}} {};
  84. #var char[STATUS][$key] {$value};
  85. };
  86. };
  87. } {5.1};
  88. #nop ├───健康状态────────────────────────────────────────┤;
  89. #nop │ 受伤、怒、梯云纵(127秒)、太极剑· 随(11秒)、太极剑· 连(4秒)、太极剑· 缠(1秒) │;
  90. #action {^├───健康状态──{(┴|─)+}───┤$} {
  91. #line oneshot #action {~^\e[0m│%*\e[2;37;0m{?:|、(.*)\x1b\[2;37;0m}%s%c│\e[0m$} {
  92. #var char[STATUS][健康状态] {%%%1};
  93. #var char[STATUS][持续效果] {%%%2};
  94. };
  95. };
  96. #nop  持续效果提示  梯云纵(87秒)、太极剑· 随(37秒)  ;
  97. #action {^ 持续效果提示  %* $} {
  98. #local status {@str.Trim{%%1}};
  99. };
  100. #nop │幸运值 │2 │奖励系数 │100% │识图检查 │需要 │;
  101. #action {^│幸运值%!s│%d%!s│奖励系数%!s│%d%!.%!s│识图检查%!s│%*│$} {
  102. #var char[STATUS][幸运值] {@str.Trim{%%1}};
  103. #var char[STATUS][奖励系数] {@str.Trim{%%2}};
  104. #var char[STATUS][识图检查] {@str.Trim{%%3}};
  105. };
  106. #nop ╰────┴──────┴────┴──────┴────┴──────┴──北大侠客行────╯;
  107. #line oneshot #action {^╰{(─|┴)+}──%S────╯{|ID=char.status}$} {
  108. #if { "%1" == "gag" } {#line gag};
  109. char.status_me.parse.done;
  110. };
  111. #alias {char.status_me.parse.done} {
  112. #class char-parse-status-me kill;
  113. #class char.GetStatusMe kill;
  114. event.UnHandle GA {char.status_me};
  115. #delay 0 {okLog 人物状态信息已更新。};
  116. event.Emit char/status;
  117. };
  118. event.HandleOnce GA {char.status_me} {char} {
  119. char.status_me.parse.done;
  120. #nop 吞参数专用,不要删除本行,也不要在末尾加分号或是别的语句
  121. };
  122. #class char-parse-status-me close;
  123. };
  124. #alias {char.GetStatusMe} {
  125. #local silent {%1};
  126. #local args {%2};
  127. #class char.GetStatusMe open;
  128. #nop ╭───个人状态─────┬────────────┬─────────────╮;
  129. #action {^╭─{(─)*}─个人状态─{((─)+┬){2}}──{(─)*}─╮$} {
  130. #if { "%1" == "gag" } {#line gag};
  131. #class char.GetStatusMe kill;
  132. char.status_me.parse.output %1;
  133. };
  134. #nop │当头炮(Dtp) │级别:64 │战斗力:99999999 │;
  135. #action {^│%S(%S)%s│级别:%d%s│战斗力:%d%s│$} {
  136. #if { "%1" == "gag" } {#line gag};
  137. #class char.GetStatusMe kill;
  138. char.status_me.parse.output %1;
  139. };
  140. #action {^等等,系统喘气中......$} {
  141. #class char.GetStatusMe kill;
  142. };
  143. #class char.GetStatusMe close;
  144. xtt.Send {status_me %2};
  145. };
  146. #alias {status_me} {char.GetStatusMe gag {%0}};
  147. #alias {sm} {char.GetStatusMe nogag {%0}};
  148. #delay status_me.Init {char.GetStatusMe gag} 3;