Procházet zdrojové kódy

feat(pkuxkx): 增加 set 环境变量和 buff 周相关触发

dzp před 1 rokem
rodič
revize
cee07abb6e

+ 2 - 0
mud/pkuxkx/etc/ui-settings.extra.tin

@@ -9,6 +9,8 @@
 #list prompt-fields create {
     { {place}{MidSepBar}        {label}{重启}       {name}{reboot}   {countdown}{Auto} }
     { {place}{MidSepBar}        {label}{经验转化率} {name}{pot/exp}  }
+    { {place}{MidSepBar}        {label}{周}         {name}{week}     {visibility}{HideLabel} {countdown}{Auto} }
+
     { {place}{MidSepBar}        {label}{签到}       {name}{sign}     }
     { {place}{MidSepBar}        {label}{铜雀台}     {name}{tqt}      }
 

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

@@ -0,0 +1,121 @@
+#nop vim: set filetype=tt:;
+
+/*
+本文件属于 PaoTin++ 的一部分
+===========
+PaoTin++ © 2020~2024 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
+你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
+===========
+*/
+
+#var basic_env[META] {
+    {NAME}      {系统环境}
+    {DESC}      {维护服务器环境,包括环境变量和游戏设定}
+    {AUTHOR}    {担子炮}
+    {NOTE}      {本文件属于 PaoTin++ 的一部分}
+};
+
+VAR {服务器环境变量}    {env.Var}   {};
+VAR {当前游戏周}        {env.Week}  {};
+
+#alias {env.List} {
+    #class env.List open;
+
+    #action {^你目前设定的环境变量有:{|ID=env.List}$} {
+        #action {~^%c\e[44;1m%S %s %c \e[1;37m%*%s%+1c$} {
+            #local key {%%%2};
+            #local value {%%%5};
+            #replace value {^"%*"$} {&1};
+            #var {env.Var[$key]} {$value};
+        };
+    };
+
+    #alias {env.List.done} {
+        #class env.List kill;
+    };
+
+    #class env.List close;
+
+    xtt.Send set;
+    sync.Wait {env.List.done};
+};
+
+#alias {set} {
+    #if { "%0" == "" } {
+        env.List;
+    };
+    #else {
+        xtt.Send set %0;
+    };
+};
+
+#func {env.Get} {
+    #local key {%1};
+
+    #return {$env.Var[$key]};
+};
+
+/*
+╭───玄武之周┬──────────────────────────────────╮
+│    仆人      │玄武职业防御提升。                                                  │
+│    ▂▂    慕│剩余时间:二小时二十二分二十二秒。                                  │
+│    o  o      │                                                                    │
+│   ▂〇▂ ▌容│↑心上人、香闺怨、天珠及见性成佛、纪晓芙、万安塔、破解武功、韩世忠。│
+│ ▅      █   │→破阵、青城任务、韩员外、都府刺杀、护镖、公孙止。                  │
+│ █      ▄ 仆│↓萧峰、偷学、谍报、暗杀、胡一刀、苗疆、宋远桥。                    │
+│ ▌           │                                                                    │
+│            人│北京时间2024年4月6日 10时17分49秒,重启后约五天二十三小时四十六分钟 │
+│ ▄▄  ▄▄   │☆侠纪年☆一六八二年八月十六日傍晚时分                              │
+╰───────┴─────────────────────────北大侠客行────╯
+*/
+#alias {env.Time} {
+    #class env.Time open;
+
+    #action {^╭───%*之周┬─{(─)+}──╮{|ID=env.Time}$} {
+
+        #var env.Week[name] {%%1之周};
+
+        #class env.Time open;
+
+        #action {^│%*│剩余时间:%*。%s│{|ID=env.Time}$} {
+            #var env.Week[remaining] {@time.ParseDoC{%%%2}};
+            prompt.Set {{week}{$env.Week[name]($env.Week[remaining])}};
+        };
+
+        #action {^│%*│{↑|→|↓}%*│{|ID=env.Time}$} {
+            #local jobs {%%%3};
+            #replace jobs {。%*} {};
+            #replace jobs {、} {;};
+            #replace jobs {及} {;};
+
+            #switch {"%%%2"} {
+                #case {"↑"} {#var env.Week[buff]   {$jobs}};
+                #case {"→"} {#var env.Week[normal] {$jobs}};
+                #case {"↓"} {#var env.Week[debuff] {$jobs}};
+            };
+        };
+
+        #line oneshot #action {^╰──{(─|┴)*}───%S─{(─)+}─╯{|ID=env.Time}$} {
+            #class env.Time kill;
+        };
+
+        #class env.Time close;
+    };
+
+    #class env.Time close;
+
+    xtt.Send time;
+};
+
+#alias {time} {env.Time};
+
+#action {^取消环境变量:%*$E} {
+    #unvar {env.Var[%1]};
+};
+
+#action {^设定环境变量:%S = %*$E} {
+    #local key {%1};
+    #local value {%2};
+    #replace value {^"%*"$} {&1};
+    #var {env.Var[$key]} {$value};
+};