i2.tin 6.2 KB

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