score.tin 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  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_score[META] {
  10. {NAME} {角色档案}
  11. {DESC} {解析 score 命令,并储存到变量 char[档案]}
  12. {AUTHOR} {担子炮}
  13. {NOTE} {本文件属于 PaoTin++ 的一部分}
  14. };
  15. load-module {basic/title};
  16. load-lib event;
  17. event.Define {char/score} {无参} {$MODULE} {score 命令的数据解析成功时,发送本事件}
  18. event.Define {char/saving} {无参} {$MODULE} {银行存款数据更新}
  19. /*
  20. ╭───人物详情────────────────────────┬───────╮
  21. │ 武当派真人 马后炮(Mhp) │ ▂▃▅▃▂ │
  22. │ 膂力:[ 69] 悟性:[ 47] 根骨:[ 83] 身法:[ 79] │ - - │
  23. │ 福缘:[ 23] 容貌:[ 39] 灵性:[ 39] 胆识:[ ?] │ ▂ ▂ │
  24. │ 距离上榜还需增加206218点经验。 │ 32/32 │
  25. ├───────────────────┬───────────┴───────┤
  26. │个人信息 │门派履历 │
  27. │国籍:无国籍 │门派:武当派 │
  28. │年龄:三十四岁 │师承:张三丰 │
  29. │性别:男性 │门忠:7195 │
  30. │生日:己亥年一月三十一日申时七刻 │出师:无 │
  31. │婚姻:未婚 │叛师:无 │
  32. ├────────────┬──────┴─────┬─────────────┤
  33. │杀生:0人 │职业:甲士 │存款:527金条 21713黄金 │
  34. │被杀:1次 │道德:100.88万 │武学点:0 │
  35. │死亡:4次 │声望:322.77万 │国家积分:0 │
  36. │杀气:正常 │愿望:150 │实战经验:一甲子余年 │
  37. ├───休闲任务─────┼────────────┼─────────────┤
  38. │高级任务:0次 │低级任务:6次 │劫匪掉宝:0次 │
  39. ╰────────────┴────────────┴────北大侠客行────╯
  40. */
  41. #var char-menpai-id {
  42. {少林派} {slp}
  43. {武当派} {wdp}
  44. {峨嵋派} {emp}
  45. {华山派} {hsp}
  46. {星宿派} {xxp}
  47. {神龙教} {slj}
  48. {白驼山} {bts}
  49. {灵鹫宫} {ljg}
  50. {丐帮} {gb}
  51. {全真派} {qzp}
  52. {古墓派} {gmp}
  53. {天龙寺} {tls}
  54. {朝廷} {ct}
  55. {天地会} {tdh}
  56. {桃花岛} {thd}
  57. {雪山派} {xsp}
  58. {明教} {mj}
  59. {日月神教} {rysj}
  60. {姑苏慕容} {gsmr}
  61. {大轮寺} {dls}
  62. {绝情谷} {jqg}
  63. {五毒教} {wdj}
  64. {青城派} {qcp}
  65. };
  66. #action {^╭───人物详情────────────────────────┬───────╮$} {
  67. #class char-score-parser open;
  68. #var char-score-parser-lineNo {0};
  69. #action {^│%*│%*│$} {
  70. #math char-score-parser-lineNo {${char-score-parser-lineNo} + 1};
  71. #switch {"${char-score-parser-lineNo}"} {
  72. #case {"1"} {
  73. #local obj {@ParseTitle{@str.Trim{%%1}}};
  74. #var char[档案][头衔] {$obj[title]};
  75. #var char[档案][大名] {$obj[name]};
  76. #var char[档案][账号] {$obj[id]};
  77. };
  78. #case {"2"} {
  79. #local level {@str.Trim{%%2}};
  80. #replace level {%d/%d} {{cur}{&1}{max}{&2}};
  81. #local level {$level};
  82. #var char[档案][人物等级] {$level[cur]};
  83. #var char[档案][最大等级] {$level[max]};
  84. };
  85. #default {
  86. #nop;
  87. };
  88. };
  89. } {6};
  90. #nop │ 膂力:[ 69] 悟性:[ 47] 根骨:[ 83] 身法:[ 79] │ - - │;
  91. #action {~^\e[0m│\e[2;37;0m 膂力:[%+] 悟性:[%+] 根骨:[%+] 身法:[%+]%+│%+│} {
  92. #local str {%%1};
  93. #local int {%%2};
  94. #local con {%%3};
  95. #local dex {%%4};
  96. #local key {先天};
  97. #if { "$str$int$con$dex" == "%*[1;33m%*" } {
  98. #local key {天赋};
  99. };
  100. #elseif { "$str$int$con$dex" == "%*[36m%*" } {
  101. #local key {初始};
  102. };
  103. #replace str {{\x1b\[[0-9;\\]+m}} {};
  104. #replace int {{\x1b\[[0-9;\\]+m}} {};
  105. #replace con {{\x1b\[[0-9;\\]+m}} {};
  106. #replace dex {{\x1b\[[0-9;\\]+m}} {};
  107. #var char[档案][$key][膂力] {@str.Trim{$str}};
  108. #var char[档案][$key][悟性] {@str.Trim{$int}};
  109. #var char[档案][$key][根骨] {@str.Trim{$con}};
  110. #var char[档案][$key][身法] {@str.Trim{$dex}};
  111. };
  112. #nop │ 福缘:[ 23] 容貌:[ 39] 灵性:[ 39] 胆识:[ ?] │ ▂ ▂ │;
  113. #action {^│ 福缘:[%+] 容貌:[%+] 灵性:[%+] 胆识:[%+]%*│%*│$} {
  114. #var char[档案][天赋][福缘] {@str.Trim{%%1}};
  115. #var char[档案][天赋][容貌] {@str.Trim{%%2}};
  116. #var char[档案][天赋][灵性] {@str.Trim{%%3}};
  117. };
  118. #nop │国籍:大理 性别:男性 │门派:神龙教 │;
  119. #nop │身高:七尺六寸 体重:约一百一十斤 │师承:洪安通 │;
  120. #nop │体型:匀称 姻缘:未遇良人 │门忠:2940 │;
  121. #action {^│%+:%* %+:%+│%+:%*│$} {
  122. #var char[档案][%%1] {@str.Trim{%%2}};
  123. #var char[档案][@str.Trim{%%3}] {@str.Trim{%%4}};
  124. #var char[档案][%%5] {@str.Trim{%%6}};
  125. } {5.1};
  126. #nop │年龄:十八岁二个月 │出师:无 │;
  127. #nop │生日:辛丑年十二月五日亥时八刻 │叛师:无 │;
  128. #action {^│%+:%*│%+:%*│$} {
  129. #local age {@str.Trim{%%2}};
  130. #replace age {%*岁{|(.*)个月}$} {@math.Eval{@math.ParseCN{&1} + @math.Eval{@math.ParseCN{@default{&3;0}} * 1.0 / 12}}};
  131. #var char[档案][%%1] {$age};
  132. #var char[档案][%%3] {@str.Trim{%%4}};
  133. } {5.2};
  134. #nop │杀生:0人 │职业:甲士 │存款:527金条 21713黄金 │;
  135. #nop │被杀:1次 │道德:100.88万 │武学点:0 │;
  136. #nop │死亡:4次 │声望:322.77万 │国家积分:0 │;
  137. #nop │杀气:正常 │愿望:150 │实战经验:一甲子余年 │;
  138. #nop ├───休闲任务─────┼────────────┼─────────────┤;
  139. #nop │高级任务:0次 │低级任务:6次 │劫匪掉宝:0次 │;
  140. #action {^│%+:%*│%+:%*│%+:%*│$} {
  141. #var char[档案][%%1] {@str.Trim{%%2}};
  142. #var char[档案][%%3] {@str.Trim{%%4}};
  143. #if { "%%5" == "存款"} {
  144. #regex {@str.Trim{%%6}} {{(\d+)金条 |}%d黄金} {
  145. #var char[档案][存款][金条] {&2};
  146. #var char[档案][存款][黄金] {&3};
  147. };
  148. };
  149. #else {
  150. #var char[档案][%%5] {@str.Trim{%%6}};
  151. };
  152. };
  153. #action {^╰────────────┴────────────┴────%S────╯{|ID=char.score}$} {
  154. #class char-score-parser kill;
  155. #var char[档案][门派ID] {$char-menpai-id[$char[档案][门派]]};
  156. event.DelayEmit {char/score};
  157. event.DelayEmit {char/saving};
  158. };
  159. #class char-score-parser close;
  160. };
  161. #nop 取钱提示;
  162. #action {^%+1..4u记完帐,告诉你:「您在敝商号现还有%*。」$} {
  163. score.update-balance {%2};
  164. };
  165. #nop 存钱提示;
  166. #action {^%+1..4u记完帐,点了点头:“您在敝商号现有%*。”$} {
  167. score.update-balance {%2};
  168. };
  169. #nop 存款上限;
  170. #action {^%+1..4u翻了翻帐簿,告诉你:“您在敝商号共存有%*,以阁下的信用,在敝商号的存款上限是:%*锭黄金%*。”$} {
  171. score.update-balance {%2};
  172. #var char[档案][存款][上限] {@math.ParseCN{%3}};
  173. };
  174. #alias {score.update-balance} {
  175. #local balance {%1};
  176. #nop 四万二千七百六十三锭黄金十八两白银二十二枚铜板;
  177. #regex {$balance} {^{.*锭黄金|}%*$} {
  178. #local balance {@math.ParseCN{&1}};
  179. #var char[档案][存款][黄金] {$balance};
  180. event.DelayEmit {char/saving};
  181. };
  182. };
  183. event.HandleOnce {user-online} {score/init} {basic/char} {
  184. score;
  185. };