Răsfoiți Sursa

feat(pkuxkx): 增加 env.Set,减少向服务器发送的命令

dzp 1 an în urmă
părinte
comite
74263b1d6b
1 a modificat fișierele cu 21 adăugiri și 0 ștergeri
  1. 21 0
      mud/pkuxkx/plugins/basic/env.tin

+ 21 - 0
mud/pkuxkx/plugins/basic/env.tin

@@ -78,6 +78,27 @@ event.Define {env/time/update}  {无参} {$MODULE} {当前游戏周的内容已
     #return {$env.Var[$key]};
 };
 
+///=== {
+// #@ env.Set <变量名> <变量值> [<是否强制发送命令>]
+//    设置环境变量。
+//    如果新值与旧值相同,那么不会真的发送命令,除非第三个参数设置为 true。
+// };
+#alias {env.Set} {
+    #local key      {%1};
+    #local value    {%2};
+    #local force    {@default{{%3};false}};
+
+    #local old {$env.Var[$key]};
+    #if { "$old" === "$value" } {
+        #if { @isFalse{$force} } {
+            dbgLog env => 环境变量 $key 的已经被设为 $value,因此不再向服务器发送命令。;
+            #return;
+        };
+    };
+
+    set $key $value;
+};
+
 #action {^取消环境变量:%*$E} {
     #local name {%1};
     #local changed {0};