jifa.tin 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #nop vim: set filetype=tt:;
  2. #var basic_char_jifa[META] {
  3. {NAME} {武功激发检查}
  4. {DESC} {解析 jifa 命令的输出结果,并写入到 char[Skills]}
  5. {AUTHOR} {担子炮}
  6. {NOTE} {解析结果并不会覆盖 skills 原有数据,只是增加了 skill 之间的激发关系}
  7. {CONFIG} {
  8. }
  9. };
  10. /*
  11. ╭───基本功夫──────┬─────────────┬─────────────╮
  12. │内功 (force) │八荒六合唯我独尊功 │有效等级: 420 │
  13. │躲闪 (dodge) │月影舞步 │有效等级: 769 │
  14. │招架 (parry) │天山六阳掌 │有效等级: 419 │
  15. ├───常用兵器──────┼─────────────┼─────────────┤
  16. │剑法 (sword) │天羽奇剑 │有效等级: 419 │
  17. ├───常用拳脚──────┼─────────────┼─────────────┤
  18. │手法 (hand) │天山折梅手[互备] │有效等级: 419 │
  19. │掌法 (strike) │天山六阳掌[互备] │有效等级: 419 │
  20. ├───其他功夫──────┼─────────────┼─────────────┤
  21. │暗器 (throwing) │天山六阳掌 │有效等级: 419 │
  22. ╰─────────────┴─────────────┴────北大侠客行────╯
  23. */
  24. load-lib event;
  25. event.Define {char/jifa} {无参} {$MODULE} {已经获取到 jifa/enable 命令输出结果,并更新 char[Skills]。};
  26. #func {basic_char_jifa.Init} {
  27. #return true;
  28. };
  29. #alias {jifa} {char.Jifa};
  30. #alias {enable} {char.Jifa};
  31. #alias {char.Jifa} {
  32. #local args {%0};
  33. #if { "$args" != "" } {
  34. xtt.Send {jifa $args};
  35. #return;
  36. };
  37. #class char.Jifa open;
  38. #action {^╭───基本功夫─{(─|┬)*}───╮$} {
  39. #local skillName {};
  40. #foreach {*char[Skills][]} {skillName} {
  41. #unvar char[Skills][$skillName][jifa-to];
  42. };
  43. char.jifa.parse.output;
  44. };
  45. #class char.Jifa close;
  46. xtt.Send {jifa};
  47. };
  48. #alias {char.jifa.parse.output} {
  49. #class char.Jifa open;
  50. #var char-jifa-type {基本功夫};
  51. #action {{*UTF8}{?:^}├───{\p{Han}{4}}──{(─|┼)*}─┤{|ID=char/jifa}$} {
  52. #var char-jifa-type {%%1};
  53. };
  54. #action {^│%S (%*) %s│%S{|\[互备\]} %s│有效等级:%s %d %s │$} {
  55. #local baseName {基本%%1};
  56. #if { "$baseName" == "基本躲闪" } {
  57. #local baseName {基本轻功};
  58. };
  59. #local skillName {%%4};
  60. #local jifaLevel {%%8};
  61. #if { &char[Skills][$baseName][] > 0 && "$skillName" != "无" } {
  62. #var char[Skills][$baseName][jifa-to] {$skillName};
  63. #var char[Skills][$baseName][jifa-level] {$jifaLevel};
  64. #var char[Skills][$baseName][jifa-type] {$char-jifa-type};
  65. };
  66. #if { &char[Skills][$skillName][] > 0 } {
  67. #if { "$char[Skills][$skillName][jifa-to]" == "" } {
  68. #var char[Skills][$skillName][jifa-to] {$baseName};
  69. };
  70. #else {
  71. #cat char[Skills][$skillName][jifa-to] {;$baseName};
  72. };
  73. #var char[Skills][$skillName][jifa-level] {$jifaLevel};
  74. };
  75. };
  76. #action {^╰───{(┴|─)*}──%S────╯{|ID=char/jifa}$} {
  77. char.jifa.done;
  78. };
  79. #alias {char.jifa.done} {
  80. #class char.Jifa kill;
  81. event.UnHandle {GA} {jifa.parser};
  82. event.Emit {char/jifa};
  83. };
  84. event.HandleOnce {GA} {jifa.parser} {char/jifa} {char.jifa.done};
  85. #class char.Jifa close;
  86. };