ソースを参照

fix(char): status_me 和 hp 命令的触发会互相干扰,现加以区分

dzp 3 年 前
コミット
4be52ba4ca
2 ファイル変更49 行追加41 行削除
  1. 23 21
      mud/pkuxkx/plugins/basic/char/hp.tin
  2. 26 20
      mud/pkuxkx/plugins/basic/char/status.tin

+ 23 - 21
mud/pkuxkx/plugins/basic/char/hp.tin

@@ -139,6 +139,26 @@ event.Define {char/hpbrief}  {无参}  {$MODULE} {已经获取到 hpbrief 命令
         #var char[HP][毒] {$poison};
     };
 
+	#action {^╰─────────────{(─)*}%S────╯{|ID=char.hp}$} {
+        #math char[HP][气血百分比] { $char[HP][当前气血] * 100 / $char[HP][最大气血] };
+        #math char[HP][精神百分比] { $char[HP][当前精神] * 100 / $char[HP][最大精神] };
+        #math char[HP][内力百分比] { $char[HP][当前内力] * 50 / $char[HP][最大内力] };
+        #math char[HP][精力百分比] { $char[HP][当前精力] * 50 / $char[HP][最大精力] };
+        event.Emit char/hp;
+        char.hp.parse.done;
+	};
+
+    #alias {char.hp.parse.done} {
+    	#class char-hp-parse-hp kill;
+        #class char.GetHP kill;
+        event.UnHandle GA {char.hp};
+    };
+
+    event.HandleOnce GA {char.hp} {char} {
+        char.hp.parse.done;
+        #nop 吞参数专用,不要删除本行,也不要在末尾加分号或是别的语句
+    };
+
     #class char-hp-parse-hp close;
 };
 
@@ -361,32 +381,14 @@ event.Define {char/hpbrief}  {无参}  {$MODULE} {已经获取到 hpbrief 命令
 #alias {char.GetHP} {
     #class char.GetHP open;
 
-    #line oneshot #action {^╭─{(─)*}─个人状态──{(─|┬)+}─╮$} {
+    #nop ╭───个人状态────────────┬───────────────────╮;
+    #action {^╭─{(─)*}─个人状态─{((─)+┬){1}}──{(─)*}─╮$} {
+        #class char.GetHP kill;
         char.hp.parse.hp;
     };
 
     #action {^你用HP太频繁了,请尽量使用hpbrief命令,节约系统资源,谢谢。$} {
-        char.hp.parse.done;
-    };
-
-	#action {^╰─────────────{(─)*}%S────╯{|ID=char.hp}$} {
-        #math char[HP][气血百分比] { $char[HP][当前气血] * 100 / $char[HP][最大气血] };
-        #math char[HP][精神百分比] { $char[HP][当前精神] * 100 / $char[HP][最大精神] };
-        #math char[HP][内力百分比] { $char[HP][当前内力] * 50 / $char[HP][最大内力] };
-        #math char[HP][精力百分比] { $char[HP][当前精力] * 50 / $char[HP][最大精力] };
-        event.Emit char/hp;
-        char.hp.parse.done;
-	};
-
-    #alias {char.hp.parse.done} {
-    	#class char-hp-parse-hp kill;
         #class char.GetHP kill;
-        event.UnHandle GA {char.hp};
-    };
-
-    event.HandleOnce GA {char.hp} {char} {
-        char.hp.parse.done;
-        #nop 吞参数专用,不要删除本行,也不要在末尾加分号或是别的语句
     };
 
     #class char.GetHP close;

+ 26 - 20
mud/pkuxkx/plugins/basic/char/status.tin

@@ -104,6 +104,25 @@ event.Define {char/status}    {无参}  {$MODULE} {已经获取到 status_me 命
         #var char[STATUS][识图检查] {@trim{%%3}};
     };
 
+#nop ╰────┴──────┴────┴──────┴────┴──────┴──北大侠客行────╯;
+    #line oneshot #action {^╰{(─|┴)+}──%S────╯{|ID=char.status}$} {
+        #if { "%1" == "gag" } {#line gag};
+        char.status_me.parse.done;
+    };
+
+    #alias {char.status_me.parse.done} {
+        #class char-parse-status-me kill;
+        #class char.GetStatusMe kill;
+        event.UnHandle GA {char.status_me};
+        #delay 0 {okLog 人物状态信息已更新。};
+        event.Emit char/status;
+    };
+
+    event.HandleOnce GA {char.status_me} {char} {
+        char.status_me.parse.done;
+        #nop 吞参数专用,不要删除本行,也不要在末尾加分号或是别的语句
+    };
+
     #class char-parse-status-me close;
 };
 
@@ -113,35 +132,22 @@ event.Define {char/status}    {无参}  {$MODULE} {已经获取到 status_me 命
 
     #class char.GetStatusMe open;
 
-#nop ╭───个人状态────┬────┬──────┬────┬──────┬────┬──────╮;
-    #line oneshot #action {^╭─{(─)*}─个人状态──{(─|┬)+}─╮$} {
+#nop ╭───个人状态─────┬────────────┬─────────────╮;
+    #action {^╭─{(─)*}─个人状态─{((─)+┬){2}}──{(─)*}─╮$} {
         #if { "%1" == "gag" } {#line gag};
+        #class char.GetStatusMe kill;
         char.status_me.parse.output %1;
     };
 
-#nop ╰────┴──────┴────┴──────┴────┴──────┴──北大侠客行────╯;
-    #line oneshot #action {^╰{(─|┴)+}──%S────╯{|ID=char.status}$} {
+#nop │当头炮(Dtp)             │级别:64                 │战斗力:99999999           │;
+    #action {^│%S(%S)%s│级别:%d%s│战斗力:%d%s│$} {
         #if { "%1" == "gag" } {#line gag};
-        char.status_me.parse.done;
-    };
-
-    #action {^等等,系统喘气中......$} {
-        #class char-parse-status-me kill;
         #class char.GetStatusMe kill;
-        event.UnHandle GA {char.status_me};
+        char.status_me.parse.output %1;
     };
 
-    #alias {char.status_me.parse.done} {
-        #class char-parse-status-me kill;
+    #action {^等等,系统喘气中......$} {
         #class char.GetStatusMe kill;
-        event.UnHandle GA {char.status_me};
-        #delay 0 {okLog 人物状态信息已更新。};
-        event.Emit char/status;
-    };
-
-    event.HandleOnce GA {char.status_me} {char} {
-        char.status_me.parse.done;
-        #nop 吞参数专用,不要删除本行,也不要在末尾加分号或是别的语句
     };
 
     #class char.GetStatusMe close;