gmcp.tin 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. #nop GMCP 北侠支持库;
  2. #nop vim: set filetype=tt:;
  3. /*
  4. 本文件属于 PaoTin++ 的一部分。
  5. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  6. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  7. */
  8. load-lib telnet;
  9. load-lib option;
  10. load-lib event;
  11. load-lib gmcp;
  12. event.Define {GMCP.Unknown} {无参} {$MODULE} {接收到 GMCP 未知消息,已更新 gGMCP[Unknown]};
  13. event.Define {GMCP.Move} {无参} {$MODULE} {接收到 GMCP 移动信息,已更新 gGMCP[Move]};
  14. event.Define {GMCP.Status} {无参} {$MODULE} {接收到 GMCP 角色状态,已更新 gGMCP[Status]};
  15. event.Define {GMCP.Combat} {无参} {$MODULE} {接收到 GMCP 战斗信息,已更新 gGMCP[Combat]};
  16. event.Define {GMCP.Buff} {无参} {$MODULE} {接收到 GMCP BUFF状态,已更新 gGMCP[Buff]};
  17. event.Define {GMCP.Message} {无参} {$MODULE} {接收到 GMCP 聊天信息,已更新 gGMCP[Message]};
  18. event.Define {GMCP.System} {无参} {$MODULE} {接收到 GMCP 副本跃迁,已更新 gGMCP[System]};
  19. #var {gmcp.key-e2c} {
  20. {Move} {
  21. {result} {成功}
  22. {dir} {出口信息}
  23. {short} {房间名}
  24. }
  25. {Status} {
  26. {name} {姓名}
  27. {max_qi} {最大气血}
  28. {qi} {气血}
  29. {jingli} {精力}
  30. {food} {食物}
  31. {eff_jing} {有效精神}
  32. {jing} {精神}
  33. {title} {头衔}
  34. {family/family_name} {门派}
  35. {combat_exp} {经验}
  36. {vigour/qi} {真气}
  37. {max_jing} {最大精神}
  38. {level} {级别}
  39. {vigour/yuan} {真元}
  40. {max_jingli} {最大精力}
  41. {neili} {内力}
  42. {water} {饮水}
  43. {eff_qi} {有效气血}
  44. {max_neili} {最大内力}
  45. {is_busy} {忙}
  46. {per} {容貌}
  47. {int} {悟性}
  48. {fighter_spirit} {战意}
  49. {is_fighting} {战斗中}
  50. {dex} {身法}
  51. {con} {根骨}
  52. {potential} {潜能}
  53. {str} {膂力}
  54. }
  55. {Combat} {
  56. {enemy_in} {敌人加入}
  57. {max_qi} {最大气血}
  58. {max_jing} {最大精神}
  59. {qi_damage} {气血伤害}
  60. {jing_wound} {精血受损}
  61. {qi_wound} {气血受损}
  62. {eff_jing_pct} {有效精血百分比}
  63. {enemy_out} {敌人退出}
  64. {eff_qi_pct} {有效气血百分比}
  65. {jing_pct} {精血百分比}
  66. {jing_damage} {精血伤害}
  67. {qi_pct} {气血比率}
  68. {name} {姓名}
  69. {perform_name} {绝招名称}
  70. {perform_cd} {CD时长}
  71. {perform_id} {绝招ID}
  72. }
  73. {Buff} {
  74. {type} {效果类型}
  75. {is_end} {效果结束}
  76. {last_inc} {效果延时}
  77. {name} {效果名称}
  78. {effects} {具体效果}
  79. {effect1} {效果1}
  80. {effect2} {效果2}
  81. {effect3} {效果3}
  82. {effect4} {效果4}
  83. {effect5} {效果5}
  84. {last_time} {持续时间}
  85. {terminated} {将中止的效果}
  86. }
  87. {Message} {
  88. {channel} {频道}
  89. {type} {信息类型}
  90. {seq} {图片编号}
  91. {no} {QQ号码}
  92. {name} {姓名}
  93. {url} {下载地址}
  94. }
  95. {System} {
  96. {site} {副本}
  97. }
  98. };
  99. #alias {gmcp.pkuxkx.Enable} {
  100. #event {IAC SB GMCP} {
  101. #if { "%%0" == "GMCP.{Status|Move|Combat|Buff|Message|System}" } {
  102. #return;
  103. };
  104. gmcp.pkuxkx.OnGMCP {%%0} {%%1};
  105. };
  106. #event {IAC SB GMCP GMCP.Status IAC SE} {gmcp.pkuxkx.OnStatus {%%1} {%%2}};
  107. #event {IAC SB GMCP GMCP.Move IAC SE} {gmcp.pkuxkx.OnMove {%%1} {%%2}};
  108. #event {IAC SB GMCP GMCP.Combat IAC SE} {gmcp.pkuxkx.OnCombat {%%1} {%%2}};
  109. #event {IAC SB GMCP GMCP.Buff IAC SE} {gmcp.pkuxkx.OnBuff {%%1} {%%2}};
  110. #event {IAC SB GMCP GMCP.Message IAC SE} {gmcp.pkuxkx.OnMessage {%%1} {%%2}};
  111. #event {IAC SB GMCP GMCP.System IAC SE} {gmcp.pkuxkx.OnSystem {%%1} {%%2}};
  112. tune gmcp status on;
  113. tune gmcp move on;
  114. tune gmcp buff on;
  115. tune gmcp combat on;
  116. tune gmcp message on;
  117. };
  118. #alias {gmcp.pkuxkx.OnGMCP} {
  119. mudLog GMCP: {%1} {%2};
  120. #line sub escapes #var gGMCP[Unknown] {%2};
  121. #var gGMCP[Unknown][VarName] {%1};
  122. #if { @option.IsEnable{GMCPDebug} } {
  123. warnLog 接收到未知的 GMCP 消息:%1,请联系开发者。以下为消息内容:;
  124. #var gGMCP[Unknown];
  125. };
  126. event.Emit GMCP.Unknown {};
  127. };
  128. #alias {gmcp.pkuxkx.OnStatus} {
  129. mudLog GMCP.Status: {%2};
  130. #line sub escapes #var gGMCP[Status] {%1};
  131. gmcp.translate-key Status;
  132. #if { @option.IsEnable{GMCPDebug} } {
  133. #var gGMCP[Status];
  134. };
  135. event.Emit GMCP.Status {};
  136. };
  137. #alias {gmcp.pkuxkx.OnMove} {
  138. mudLog GMCP.Move: {%2};
  139. #line sub escapes #var gGMCP[Move] {%1};
  140. #var gGMCP[Move] {$gGMCP[Move][1]};
  141. gmcp.translate-key Move;
  142. #list gGMCP[Move][出口信息] sort;
  143. #if { @option.IsEnable{GMCPDebug} } {
  144. #var gGMCP[Move];
  145. };
  146. event.Emit GMCP.Move {};
  147. };
  148. #alias {gmcp.pkuxkx.OnCombat} {
  149. mudLog GMCP.Combat: {%2};
  150. #line sub escapes #var gGMCP[Combat] {%1};
  151. #var gGMCP[Combat] {$gGMCP[Combat][1]};
  152. gmcp.translate-key Combat;
  153. #if { @option.IsEnable{GMCPDebug} } {
  154. #var gGMCP[Combat];
  155. };
  156. event.Emit GMCP.Combat {};
  157. };
  158. #alias {gmcp.pkuxkx.OnBuff} {
  159. mudLog GMCP.Buff: {%2};
  160. #line sub escapes #var gGMCP[Buff] {%1};
  161. gmcp.translate-key Buff;
  162. #if { @option.IsEnable{GMCPDebug} } {
  163. #var gGMCP[Buff];
  164. };
  165. event.Emit GMCP.Buff {};
  166. };
  167. #alias {gmcp.pkuxkx.OnMessage} {
  168. mudLog GMCP.Message: {%2};
  169. #line sub escapes #var gGMCP[Message] {%1};
  170. gmcp.translate-key Message;
  171. #if { @option.IsEnable{GMCPDebug} } {
  172. #var gGMCP[Message];
  173. };
  174. event.Emit GMCP.Message {};
  175. };
  176. #alias {gmcp.pkuxkx.OnSystem} {
  177. mudLog GMCP.System: {%2};
  178. #line sub escapes #var gGMCP[System] {%1};
  179. #var gGMCP[System] {$gGMCP[System][1]};
  180. gmcp.translate-key System;
  181. #if { @option.IsEnable{GMCPDebug} } {
  182. #var gGMCP[System];
  183. };
  184. event.Emit GMCP.System {};
  185. };
  186. #alias {gmcp.translate-key} {
  187. #local class {%1};
  188. #if { "$class" != "{Move|Status|Combat|Buff|Message|System}" } {
  189. #return;
  190. };
  191. #local key {};
  192. #foreach {*gGMCP[$class][]} {key} {
  193. #local new {$gmcp.key-e2c[$class][$key]};
  194. #if { "$new" == "" } {
  195. #continue;
  196. };
  197. #var gGMCP[$class][$new] {$gGMCP[$class][$key]};
  198. #unvar gGMCP[$class][$key];
  199. };
  200. };