gmcp.tin 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #nop GMCP 支持库;
  2. #nop vim: set filetype=tt:;
  3. /*
  4. 本文件属于 PaoTin++ 的一部分。
  5. PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  6. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  7. */
  8. load-lib telnet;
  9. load-lib event;
  10. load-lib option;
  11. event.Define {GMCP.Move} {无参} {$MODULE} {接收到 GMCP 移动信息,已更新 gGMCP[Move]};
  12. event.Define {GMCP.Status} {无参} {$MODULE} {接收到 GMCP 角色状态,已更新 gGMCP[Status]};
  13. event.Define {GMCP.Combat} {无参} {$MODULE} {接收到 GMCP 战斗信息,已更新 gGMCP[Combat]};
  14. event.Define {GMCP.Buff} {无参} {$MODULE} {接收到 GMCP BUFF状态,已更新 gGMCP[Buff]};
  15. option.Define {GMCPDebug} {Bool} {是否显示 GMCP 原始数据} {false};
  16. #alias {gmcp.Enable} {
  17. #event {IAC WILL GMCP} {
  18. #send {$TELNET[IAC]$TELNET[DO]$TELNET[GMCP]\};
  19. };
  20. };
  21. #alias {gmcp.Handle} {
  22. #local key {%1};
  23. #local handler {%2};
  24. #line sub var #event {IAC SB GMCP $key IAC SE} {$handler};
  25. };
  26. #alias {gmcp.pkuxkx.Enable} {
  27. gmcp.Handle GMCP.Move {
  28. #line sub escape #var gGMCP[Move] {%%0};
  29. #var gGMCP[Move] {$gGMCP[Move][1]};
  30. event.Emit GMCP.Move {};
  31. };
  32. gmcp.Handle GMCP.Status {
  33. #line sub escape #var gGMCP[Status] {%%0};
  34. event.Emit GMCP.Status {};
  35. };
  36. gmcp.Handle GMCP.Combat {
  37. #line sub escape #var gGMCP[Combat] {%%0};
  38. event.Emit GMCP.Combat {};
  39. };
  40. gmcp.Handle GMCP.Buff {
  41. #line sub escape #var gGMCP[Buff] {%%0};
  42. event.Emit GMCP.Buff {};
  43. };
  44. gmcp status on;
  45. gmcp move on;
  46. gmcp buff on;
  47. gmcp combat on;
  48. };
  49. #alias {gmcp.ToggleDebug} {
  50. option.Toggle GMCPDebug;
  51. #if { "$gCurrentMUDLIB" == "pkuxkx" } {
  52. #if { @option.IsEnable{GMCPDebug} } {
  53. event.Handle GMCP.Status {gmcp.Debug} {gmcp} {#var gGMCP[Status]};
  54. event.Handle GMCP.Move {gmcp.Debug} {gmcp} {#var gGMCP[Move]};
  55. event.Handle GMCP.Buff {gmcp.Debug} {gmcp} {#var gGMCP[Buff]};
  56. event.Handle GMCP.Combat {gmcp.Debug} {gmcp} {#var gGMCP[Combat]};
  57. };
  58. #else {
  59. event.UnHandle GMCP.Status {gmcp.Debug} {gmcp} {#var gGMCP[Status]};
  60. event.UnHandle GMCP.Move {gmcp.Debug} {gmcp} {#var gGMCP[Move]};
  61. event.UnHandle GMCP.Buff {gmcp.Debug} {gmcp} {#var gGMCP[Buff]};
  62. event.UnHandle GMCP.Combat {gmcp.Debug} {gmcp} {#var gGMCP[Combat]};
  63. };
  64. };
  65. };