i2.tin 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  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_i2[META] {
  10. {NAME} {背包信息}
  11. {DESC} {解析背包内容,识别随身物品、穿戴、装备信息,并储存到变量}
  12. {AUTHOR} {担子炮}
  13. {NOTE} {本文件属于 PaoTin++ 的一部分}
  14. };
  15. /*
  16. i2 格式:
  17. 你身上带著下列这些东西(负重 27%):
  18. 九十一两白银(Silver)
  19. 一粒牛黃血竭丹(Xuejie dan)
  20. 二个竹壶(Zhuhu)
  21. 三块干粮(Gan liang)
  22. 大砍刀(Dakan dao)
  23. 青锋剑(Qingfeng sword)
  24. 北侠战袍(Pkuxkx zhanpao)
  25. 北侠战甲(Pkuxkx zhanjia)
  26. 北侠战衣(Pkuxkx zhanyi)
  27. 北侠战盔(Pkuxkx zhankui)
  28. 北侠战靴(Pkuxkx zhanxue)
  29. 锦囊(Jin nang)
  30. -------------------------------------------
  31. 你左手拿着:大砍刀(Dakan dao)
  32. 你右手拿着:青锋剑(Qingfeng sword)
  33. -------------------------------------------
  34. 你身上穿着:
  35. 北侠战袍(Pkuxkx zhanpao)
  36. 北侠战甲(Pkuxkx zhanjia)
  37. 北侠战衣(Pkuxkx zhanyi)
  38. 北侠战盔(Pkuxkx zhankui)
  39. 北侠战靴(Pkuxkx zhanxue)
  40. 锦囊(Jin nang)
  41. */
  42. #func {basic_char_i2.Init} {
  43. char.reset.i2;
  44. char.reset.bag;
  45. char.reset.sachet;
  46. #return true;
  47. };
  48. #alias {char.reset.i2} {
  49. #class data/basic/char open;
  50. #nop 随身物品;
  51. #var char-Item {};
  52. #nop 穿戴;
  53. #var char-Wear {};
  54. #nop 武器;
  55. #var char-Wield {};
  56. #nop 装备;
  57. #var char-Equip {};
  58. #class data/basic/char close;
  59. };
  60. #alias {char.reset.bag} {
  61. #class data/basic/char open;
  62. #nop 包袱;
  63. #var char-Bag {};
  64. #class data/basic/char close;
  65. };
  66. #alias {char.reset.sachet} {
  67. #class data/basic/char open;
  68. #nop 宝石袋;
  69. #var char-Sachet {};
  70. #class data/basic/char close;
  71. };
  72. #action {^你身上带著下列这些东西(负重 %1%):$} {
  73. #class {ParseItems} open;
  74. char.reset.i2;
  75. #var char-Item[currentType] {随身};
  76. #nop 你左手拿着:大砍刀(Dakan dao);
  77. #nop 你右手拿着:青锋剑(Qingfeng sword);
  78. #action {^你{左手|右手}拿着:%%2(%%3)$} {
  79. #local hand {%%1};
  80. #local item {%%2};
  81. #local id {@str.ToLower{%%3}};
  82. #var char-Wield[$hand] {
  83. {item}{$item}
  84. {id}{$id}
  85. };
  86. } {4};
  87. #action {^你身上穿着:$} {
  88. #var char-Item[currentType] {装备};
  89. };
  90. #nop 九十一两白银(Silver);
  91. #action {^{(零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿)+}{两|文|张}{黄金|白银|铜板|一千两银票}(%*)$} {
  92. #local amount {@math.ParseCN{%%1}};
  93. #local unit {%%3};
  94. #local item {%%4};
  95. #local id {@str.ToLower{%%5}};
  96. #var {char-Item[$item]} {
  97. {id}{@str.ToLower{$id}}
  98. {amount}{@math.ParseCN{$amount}}
  99. };
  100. } {4};
  101. #local 武器等级 {沉水|赤焰|荡寇|彗月|照夜|追日|断阙|刑天};
  102. #local 武器种类 {剑|刀|杖|鞭|斧|枪|锤|戟|匕|针|萧|钩};
  103. #local 装备等级 {机杼|苍野|青幽|百战|鬼烈|巨灵|深罡|九日};
  104. #local 装备种类 {铠甲|靴|袍|手套|盔|盾|披风|腰带|护腕};
  105. #local 饰品等级 {恶来|玄狐|洛神|盘瓠|儵忽|帝江|烛阴|盘古};
  106. #local 饰品种类 {戒指|项链};
  107. #local 职业等级 {(..)+};
  108. #local 职业部位 {盔|护腕|披风|护手|袍|腰带|盾|靴|项链|戒指|(板|布|鳞|皮)甲|面具|护心|护肩|腿甲};
  109. #local 汉字数词 {(?:零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿)+};
  110. #local 汉字量词 {(?:本|块|碗|件|册|柄|把|根|枚|个|粒|味|0)};
  111. #local 词缀修饰 {(?:[^ ][^ ])+};
  112. #nop 物品;
  113. #action {^{?:(${汉字数词})(${汉字量词})|}%S(%*)$} {
  114. #local amount {@math.ParseCN{%%1}};
  115. #local item {%%3};
  116. #local id {@str.ToLower{%%4}};
  117. #if { $amount == 0 } {
  118. #local amount {1};
  119. };
  120. #var {char-Item[$item]} {
  121. {id}{$id}
  122. {amount}{$amount}
  123. };
  124. } {4};
  125. #nop 职业装和随机装;
  126. #nop 二件玄铁之护手(Gauntlet);
  127. #nop 玄铁之板甲(Armor);
  128. #nop 天兵华彩 巨灵之手套(Hands);
  129. #action {^{((零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿)+件)?}{(([^ ]+)[ ])?}%S之%S(%S)$} {
  130. #local amount {%%3};
  131. #local title {%%6};
  132. #local rank {%%7};
  133. #local item {%%8};
  134. #local id {@str.ToLower{%%9}};
  135. #if { "${char-Item[currentType]}" == "装备" } {
  136. #return;
  137. };
  138. #if { "$amount" == "" } { #format amount {%s} {一} };
  139. #format amount {%s} {@math.ParseCN{$amount}};
  140. #if { "${char-Equip[$id]}" != "" } {
  141. #math amount { ${char-Equip[$id]} + $amount };
  142. };
  143. #var {char-Equip[$id]} {$amount};
  144. } {4};
  145. #nop 二把竹剑(Zhujian);
  146. #action {^{(零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿)+}{${汉字量词}}%S(%*)$} {
  147. #local amount {@math.ParseCN{%%1}};
  148. #local unit {%%3};
  149. #local item {%%4};
  150. #local id {@str.ToLower{%%5}};
  151. #var {char-Item[$item]} {
  152. {id}{$id}
  153. {amount}{$amount}
  154. };
  155. };
  156. #nop 大砍刀(Dakan dao);
  157. #nop 青锋剑(Qingfeng sword);
  158. #action {^%%1(%%2)$} {
  159. #local item {%%1};
  160. #local id {@str.ToLower{%%2}};
  161. #if { "${char-Item[currentType]}" == "装备" } {
  162. #var {char-Wear[$item]} {{id}{$id}};
  163. };
  164. #elseif { "${char-Item[currentType]}" == "随身" } {
  165. #var {char-Item[$item]} {{id}{$id}};
  166. };
  167. #elseif { "${char-Item[currentType]}" == "包袱" } {
  168. #var {char-Bag[$item]} {{id}{$id}};
  169. };
  170. #elseif { "${char-Item[currentType]}" == "宝石袋" } {
  171. #var {char-Sachet[$item]} {{id}{$id}};
  172. };
  173. } {9};
  174. #delay 3 {
  175. #unvar char-Item[currentType];
  176. #class {ParseItems} kill;
  177. };
  178. #class {ParseItems} close;
  179. };