Просмотр исходного кода

feat(GMCP): 增加 GMCP 开关快捷键

dzp 3 лет назад
Родитель
Сommit
520499e125
2 измененных файлов с 23 добавлено и 0 удалено
  1. 1 0
      mud/pkuxkx/etc/ui-settings.tin
  2. 22 0
      plugins/lib/gmcp.tin

+ 1 - 0
mud/pkuxkx/etc/ui-settings.tin

@@ -86,4 +86,5 @@
     {{key}{\cob}    {action}{beautify.ToggleSwitch}}
     {{key}{\coe}    {action}{option.Toggle EchoCommand}}
     {{key}{\com}    {action}{option.Toggle GagMove}}
+    {{key}{\cog}    {action}{gmcp.ToggleDebug}}
 };

+ 22 - 0
plugins/lib/gmcp.tin

@@ -9,12 +9,15 @@ PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
 load-lib telnet;
 load-lib event;
+load-lib option;
 
 event.Define {GMCP.Move}    {无参} {$MODULE} {接收到 GMCP 移动信息,已更新 gGMCP[Move]};
 event.Define {GMCP.Status}  {无参} {$MODULE} {接收到 GMCP 角色状态,已更新 gGMCP[Status]};
 event.Define {GMCP.Combat}  {无参} {$MODULE} {接收到 GMCP 战斗信息,已更新 gGMCP[Combat]};
 event.Define {GMCP.Buff}    {无参} {$MODULE} {接收到 GMCP BUFF状态,已更新 gGMCP[Buff]};
 
+option.Define {GMCPDebug} {Bool} {是否显示 GMCP 原始数据} {false};
+
 #alias {gmcp.Enable} {
     #event {IAC WILL GMCP} {
         #send {$TELNET[IAC]$TELNET[DO]$TELNET[GMCP]\};
@@ -55,3 +58,22 @@ event.Define {GMCP.Buff}    {无参} {$MODULE} {接收到 GMCP BUFF状态,已
     gmcp buff on;
     gmcp combat on;
 };
+
+#alias {gmcp.ToggleDebug} {
+    option.Toggle GMCPDebug;
+
+    #if { "$gCurrentMUDLIB" == "pkuxkx" } {
+        #if { @option.IsEnable{GMCPDebug} } {
+            event.Handle GMCP.Status {gmcp.Debug} {gmcp} {#var gGMCP[Status]};
+            event.Handle GMCP.Move   {gmcp.Debug} {gmcp} {#var gGMCP[Move]};
+            event.Handle GMCP.Buff   {gmcp.Debug} {gmcp} {#var gGMCP[Buff]};
+            event.Handle GMCP.Combat {gmcp.Debug} {gmcp} {#var gGMCP[Combat]};
+        };
+        #else {
+            event.UnHandle GMCP.Status {gmcp.Debug} {gmcp} {#var gGMCP[Status]};
+            event.UnHandle GMCP.Move   {gmcp.Debug} {gmcp} {#var gGMCP[Move]};
+            event.UnHandle GMCP.Buff   {gmcp.Debug} {gmcp} {#var gGMCP[Buff]};
+            event.UnHandle GMCP.Combat {gmcp.Debug} {gmcp} {#var gGMCP[Combat]};
+        };
+    };
+};