Sfoglia il codice sorgente

fix(color): 纠正所有黑白色和默认前景色混用的情景

现在不再假设用户是黑底白字了。黑白两色以后将会和默认前景色默认背景色严格区分。

具体使用规则如下:

* <099> 重置颜色回到默认前景和默认背景色。即使是黑底白字也应该用这个。
* <070> 强制设置为黑底白字,而无视默认前景与默认背景。少数敏感场景可以使用。

以上两个一般用在行末。

* <288> 仅关闭之前的高亮色。
* <299> 关闭高亮并使颜色回到默认前景与默认背景色,但保留下划线等其它特效。
* <298> 关闭高亮色,采用默认前景,保持背景不变。

以上两个一般用在行中,作为 <1xx> 标签的关闭标签来使用。特别是 <298>,对于带有
背景色的行有奇效。

其它场景中也可以酌情组合处理,但应当尽量不要直接使用 0 和 7,而以 9 代替。
如果是色彩斑斓的行中,应当多用 8(skip) 号背景色以保持整体效果。
dzp 2 anni fa
parent
commit
685e5be1f6

+ 10 - 10
etc/ui-settings.tin

@@ -1,6 +1,6 @@
 #var tmux-update-events[DEFAULT] {char/score};
 #var tmux-pane-border-format[DEFAULT] {
-    {left}      {ID: [<g23><188>\$char[档案][账号]<099>]}
+    {left}      {ID: [<g23><188>\$char[档案][账号]<299>]}
     {centre}    {大名: [\$char[档案][大名]]}
     {right}     {头衔: [\$char[档案][头衔]]}
 };
@@ -14,15 +14,15 @@
 #nop 配色主题,注意这里不要直接嵌入 SGR(ansi codes),否则计算宽度时会有问题。;
 #var prompt-theme {
     {Disable}{<bbc>}
-    {BusyColor}{<030>}
-    {BattleColor}{<110>}
-    {BattleBusyColor}{<500><110>}
-    {TopSepBar}{<020>}
-    {MidSepBar}{<020>}
-    {BotSepBar}{<020>}
-    {HotLabel}{<100><F399>}
-    {CoolLabel}{<100>}
-    {Value}{<070>}
+    {BusyColor}{<239>}
+    {BattleColor}{<119>}
+    {BattleBusyColor}{<599><119>}
+    {TopSepBar}{<229>}
+    {MidSepBar}{<229>}
+    {BotSepBar}{<229>}
+    {HotLabel}{<199><F399>}
+    {CoolLabel}{<109>}
+    {Value}{<299>}
 };
 
 #nop 自定义图标;

+ 8 - 8
framework/log.tin

@@ -47,9 +47,9 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
 #alias {mudLog}     {log.write {$gLog[socket]} {%0}};
 
-#alias {okLog}      {log.write {$gLog[ok]}     {<120>%0}   {ECHO}};
-#alias {warnLog}    {log.write {$gLog[warn]}   {<130>%0}   {ECHO}};
-#alias {errLog}     {log.write {$gLog[error]}  {<110>%0}   {ECHO}};
+#alias {okLog}      {log.write {$gLog[ok]}     {<129>%0}   {ECHO}};
+#alias {warnLog}    {log.write {$gLog[warn]}   {<139>%0}   {ECHO}};
+#alias {errLog}     {log.write {$gLog[error]}  {<119>%0}   {ECHO}};
 #alias {infoLog}    {log.write {$gLog[info]}   {%0}        {ECHO}};
 #alias {dbgLog}     {log.write {$gLog[debug]}  {%0}};
 
@@ -66,10 +66,10 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #local text {%2};
     #local echo {%3};
 
-    #line logmode stamp #line log {$gLog[PATH]/$file} {$text<070>};
+    #line logmode stamp #line log {$gLog[PATH]/$file} {$text<099>};
 
     #if { "$echo" == "ECHO" } {
-        #echo {%s} {$text<070>};
+        #echo {%s} {$text<099>};
     };
 };
 
@@ -91,7 +91,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #if { "$needEcho" == "true" } {
         #local input {%0};
         #replace input {<} {\<};
-        #echo {<020>%t INPUT: <420>%s<070>} {%Y-%m-%d %H:%M:%S} {$input};
+        #echo {<029>%t INPUT: <429>%s<099>} {%Y-%m-%d %H:%M:%S} {$input};
     };
 };
 
@@ -107,9 +107,9 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 #alias {log.sendLog} {
     #local text {%0};
     #replace text {<} {\<};
-    #format text {<020>SEND: <420>%p<070>} {$text};
+    #format text {<029>SEND: <429>%p<099>} {$text};
     mudLog $text;
     #if @option.IsEnable{EchoCommand} {
-        #echo {<020>%t %s} {%Y-%m-%d %H:%M:%S} {$text};
+        #echo {<029>%t %s} {%Y-%m-%d %H:%M:%S} {$text};
     };
 };

+ 6 - 6
framework/main.tin

@@ -16,7 +16,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
 #event {PROGRAM START} {
     #if { "$user[id]" != "{[A-Za-z0-9]+}" } {
-        #echo {<110>请参考使用文档指定用户正确的 user id。<070>};
+        #echo {<119>请参考使用文档指定用户正确的 user id。<299>};
         #return;
     };
 
@@ -26,8 +26,8 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     };
 
     #if { !@InitLog{$path} } {
-        #echo {<110>创建日志目录 $gLog[PATH]/$path 时遇到错误。<070>};
-        #echo {<130>请检查你的安装环境,或者参考使用手册重新安装本软件。<070>};
+        #echo {<119>创建日志目录 $gLog[PATH]/$path 时遇到错误。<299>};
+        #echo {<139>请检查你的安装环境,或者参考使用手册重新安装本软件。<299>};
         #return;
     };
 
@@ -56,7 +56,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 };
 
 #event {SESSION TIMED OUT} {
-    #echo {%s} {<110>连接服务器超时,稍后自动重试。<070>};
+    #echo {%s} {<119>连接服务器超时,稍后自动重试。<299>};
     #gts #delay 3 auto-login;
 };
 
@@ -73,9 +73,9 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         };
 
         #nop 断开连接后再次重连不要太频繁,以免服务器不高兴。;
-        #echo {%s} {<110>连接已被服务器断开,$reconnect 秒后自动重连。<070>};
+        #echo {%s} {<119>连接已被服务器断开,$reconnect 秒后自动重连。<299>};
         #gts #delay {$reconnect} {
-            #echo {%s} {<120>自动重连。<070>};
+            #echo {%s} {<129>自动重连。<299>};
             auto-login;
         };
     };

+ 22 - 22
framework/module-loader.tin

@@ -34,7 +34,7 @@ class.open module-loader;
     #if { "${${prefix}-loaded}" == "true" } {
         infoLog 模块 $moduleName 已载入。;
         #if { "${xtt-modConfig[$moduleName][ENABLE]}" == "false" } {
-            infoLog 但是该模块已经被禁用,如果你想要重新启用,请使用「<120>enable-module %1<070>」。;
+            infoLog 但是该模块已经被禁用,如果你想要重新启用,请使用「<129>enable-module %1<299>」。;
         };
         #return;
     };
@@ -225,7 +225,7 @@ class.open module-loader;
     #var {xtt-modConfig[$moduleName][ENABLE]} {false};
 
     class.disable {$moduleName};
-    infoLog <120>模块 $moduleName 已经禁用。<070>;
+    infoLog <129>模块 $moduleName 已经禁用。<299>;
 };
 
 #alias {EM} {enable-module};
@@ -256,7 +256,7 @@ class.open module-loader;
     #var {xtt-modConfig[$moduleName][ENABLE]} {true};
 
     class.enable {$moduleName};
-    infoLog <120>模块 $moduleName 已经启用。<070>;
+    infoLog <129>模块 $moduleName 已经启用。<299>;
 };
 
 #nop 列出所有已加载模块以及它们的开关状态、配置参数;
@@ -277,7 +277,7 @@ class.open module-loader;
         #local type     {$metaInfo[TYPE]};
         #local desc     {$metaInfo[DESC]};
         #local config   {$metaInfo[CONFIG]};
-        #local enable   {<120>开启<070>};
+        #local enable   {<129>开启<299>};
         #local hasConfig {有};
         #local hasEvents {无};
 
@@ -287,18 +287,18 @@ class.open module-loader;
 
         #local event {@fp.Filter{{$gValidEvent};{"VALUE[module]"=="$name"}}};
         #if { &event[] > 0 } {
-            #local hasEvents {<160>&event[]个<070>};
+            #local hasEvents {<169>&event[]个<299>};
         };
 
         #if { "$type" == "纯模块" } {
-            #local type {<120>纯模块<070>};
+            #local type {<129>纯模块<299>};
         };
         #elseif { "$type" == "混合模块" } {
-            #local type {<130>混合模块<070>};
+            #local type {<139>混合模块<299>};
         };
 
         #if { "${xtt-modConfig[$moduleName][ENABLE]}" == "false" } {
-            #local enable {<110>禁用<070>};
+            #local enable {<119>禁用<299>};
         };
 
         #echo {$format} {white} {@genModuleLink{$name;MOD}} {$author} {$type} {$enable} {$hasEvents} {$hasConfig} {$desc};
@@ -331,27 +331,27 @@ class.open module-loader;
     };
 
     #if { "$enable" == "false" } {
-        #local enable {<110>禁用<070>};
+        #local enable {<119>禁用<299>};
     };
     #else {
-        #local enable {<120>开启<070>};
+        #local enable {<129>开启<299>};
     };
 
     #local moduleLink {@genModuleLink{$moduleName;HELP}};
-    #echo {%c%h}    {cyan} { $moduleLink<060> };
-    #echo {%s}      {    <060>名称:<070> $moduleLink <060>类型:<070> $type <060>状态:<070> $enable <060>作者:<070> $author};
-    #echo {%s}      {    <060>脚本路径:<070> $path};
+    #echo {%c%h}    {cyan} { $moduleLink<269> };
+    #echo {%s}      {    <269>名称:<299> $moduleLink <269>类型:<299> $type <269>状态:<299> $enable <269>作者:<299> $author};
+    #echo {%s}      {    <269>脚本路径:<299> $path};
 
     #if { "$type" == "弱模块" } {
         #echo {%c%h} {cyan} { 更多信息仅纯模块可见 };
         #return;
     };
 
-    #echo {%s}      {    <060>说明:<070> $desc};
-    #echo {%s}      {    <060>备注:<070> $note};
+    #echo {%s}      {    <269>说明:<299> $desc};
+    #echo {%s}      {    <269>备注:<299> $note};
 
     #if { "$type" == "纯模块" } {
-        #echo {%s}      {    <060>接口:<070> 你可以通过 $moduleName\.Start/Stop 命令来启动/停止模块。};
+        #echo {%s}      {    <269>接口:<299> 你可以通过 $moduleName\.Start/Stop 命令来启动/停止模块。};
     };
 
     #local format {    %c%-20s %-20s %s};
@@ -359,7 +359,7 @@ class.open module-loader;
     #local event {@fp.Filter{{$gValidEvent};{"VALUE[module]"=="$moduleName"}}};
     #if { &event[] > 0 } {
         #local name {};
-        #echo {%s}      {    <060>提供事件列表:<070>};
+        #echo {%s}      {    <269>提供事件列表:<299>};
         #echo {$format} {cyan} {事件名称} {事件类型} {说明};
         #echo {$format} {cyan} {--------------------} {--------------------} {------------------------------};
         #foreach {*event[]} {name} {
@@ -375,7 +375,7 @@ class.open module-loader;
     };
 
     #local count {0};
-    #echo {%s}      {    <060>配置参数表:<070>};
+    #echo {%s}      {    <269>配置参数表:<299>};
     #echo {$format} {cyan} {配置项} {当前值} {作用};
     #echo {$format} {cyan} {--------------------} {--------------------} {------------------------------};
     #local key {};
@@ -425,7 +425,7 @@ class.open module-loader;
             #format reason {人为操作};
         };
 
-        infoLog <160>由于<130>$reason<160>,%1 模块停止运行。<070>;
+        infoLog <169>由于<139>$reason<169>,%1 模块停止运行。<299>;
 
         #if @existsAlias{%1.Pause} {
             %1.Pause;
@@ -464,7 +464,7 @@ class.open module-loader;
     #local cnName {$xtt-modules[$name][NAME]};
 
     #if { "$cnName" != "" } {
-        #local cnName { (<160>$cnName<070>)};
+        #local cnName { (<169>$cnName<299>)};
     };
 
     #if { "$cmd" != "{MOD|HELP}" } {
@@ -473,11 +473,11 @@ class.open module-loader;
 
     #if { "$cmd" == "HELP" && &xtt.module-doc[$name][] > 0 } {
         #local name {@mslp.Help{$name;$name}};
-        #local name {<140>$name<270>$cnName};
+        #local name {<140>$name<299>$cnName};
     };
     #else {
         #local name {@mslp.Module{$name;$name}};
-        #local name {<140>$name<270>$cnName};
+        #local name {<149>$name<299>$cnName};
     };
 
     #return {$name};

+ 13 - 13
mud/pkuxkx/etc/ui-settings.tin

@@ -1,6 +1,6 @@
 #var tmux-update-events[DEFAULT] {char/score};
 #var tmux-pane-border-format[DEFAULT] {
-    {left}      {ID: [<g23><188>\$char[档案][账号]<099>]}
+    {left}      {ID: [<g23><188>\$char[档案][账号]<299>]}
     {centre}    {大名: [\$char[档案][彩色大名]]}
     {right}     {头衔: [\$char[档案][彩色头衔]]}
 };
@@ -37,9 +37,9 @@
     { {place}{Bot} {line}{2}    {label}{不利战况}   {name}{chousui}  {visibility}{Always}    {cooldown}{60} }
     { {place}{Bot} {line}{2}    {label}{透骨钉}     {name}{tougu}    {visibility}{HideLabel} {cooldown}{60} }
     { {place}{Bot} {line}{2}    {label}{刺穴}       {name}{cixue}    {visibility}{HideLabel} {cooldown}{60} }
-    { {place}{Bot} {line}{2}    {label}{刺目}       {name}{cimu}     {visibility}{HideLabel} {cooldown}{10} {color}{<170><570>} }
-    { {place}{Bot} {line}{2}    {label}{刺腕}       {name}{ciwan}    {visibility}{HideLabel} {cooldown}{10} {color}{<510>} }
-    { {place}{Bot} {line}{2}    {label}{内力不济}   {name}{neili}    {visibility}{HideLabel} {cooldown}{10} {color}{<110><510>} }
+    { {place}{Bot} {line}{2}    {label}{刺目}       {name}{cimu}     {visibility}{HideLabel} {cooldown}{10} {color}{<179><579>} }
+    { {place}{Bot} {line}{2}    {label}{刺腕}       {name}{ciwan}    {visibility}{HideLabel} {cooldown}{10} {color}{<519>} }
+    { {place}{Bot} {line}{2}    {label}{内力不济}   {name}{neili}    {visibility}{HideLabel} {cooldown}{10} {color}{<119><519>} }
 
     { {place}{Bot} {line}{2}    {label}{中毒情况}   {name}{bingpo1}  {visibility}{Always}    {cooldown}{60} }
     { {place}{Bot} {line}{2}    {label}{星宿毒掌}   {name}{duzhang1} {visibility}{HideLabel} {cooldown}{60} }
@@ -68,15 +68,15 @@
 #nop 配色主题,注意这里不要直接嵌入 SGR(ansi codes),否则计算宽度时会有问题。;
 #var prompt-theme {
     {Disable}{<bbc>}
-    {BusyColor}{<030>}
-    {BattleColor}{<110>}
-    {BattleBusyColor}{<500><110>}
-    {TopSepBar}{<020>}
-    {MidSepBar}{<020>}
-    {BotSepBar}{<020>}
-    {HotLabel}{<100><F399>}
-    {CoolLabel}{<100>}
-    {Value}{<070>}
+    {BusyColor}{<239>}
+    {BattleColor}{<119>}
+    {BattleBusyColor}{<599><119>}
+    {TopSepBar}{<229>}
+    {MidSepBar}{<229>}
+    {BotSepBar}{<229>}
+    {HotLabel}{<199><F399>}
+    {CoolLabel}{<109>}
+    {Value}{<299>}
 };
 
 #nop 自定义图标;

+ 15 - 15
mud/pkuxkx/plugins/basic/char/hp.tin

@@ -324,29 +324,29 @@ hp -neili 格式:
     #if { "$char[HP][战斗中]" == "true" } {
         #if { "$safety" == "安全" } {
             #format color   {<B040><128>};
-            #format combat  { <118>战<278> <128>安<278>};
+            #format combat  { <118>战 <128>安<298>};
         };
         #elseif { "$safety" == "危险" } {
             #format color   {<B400><118>};
-            #format combat  { <118>战<278> <118>危<278>};
+            #format combat  { <118>战 <118>危<298>};
         };
         #else {
             #format color   {<218>};
-            #format combat  { <118>战<278>};
+            #format combat  { <118>战<298>};
         };
     };
 
     #if { "$char[HP][忙]" == "true" } {
         #format color   {<118>};
-        #format combat  {$combat <138>忙<278>};
+        #format combat  {$combat <138>忙<298>};
     };
 
     #local 每秒气血变化 {@speedo.GetSpeed{当前气血}};
     #if { ${每秒气血变化} > 0 } {
-        #local 每秒气血变化 {(<128>${每秒气血变化}<278>)};
+        #local 每秒气血变化 {(<128>${每秒气血变化}<298>)};
     };
     #elseif { ${每秒气血变化} < 0 } {
-        #local 每秒气血变化 {(<118>${每秒气血变化}<278>)};
+        #local 每秒气血变化 {(<118>${每秒气血变化}<298>)};
     };
     #else {
         #local 每秒气血变化 {};
@@ -354,10 +354,10 @@ hp -neili 格式:
 
     #local 每秒精神变化 {@speedo.GetSpeed{当前精神}};
     #if { ${每秒精神变化} > 0 } {
-        #local 每秒精神变化 {(<128>${每秒精神变化}<278>)};
+        #local 每秒精神变化 {(<128>${每秒精神变化}<298>)};
     };
     #elseif { ${每秒精神变化} < 0 } {
-        #local 每秒精神变化 {(<118>${每秒精神变化}<278>)};
+        #local 每秒精神变化 {(<118>${每秒精神变化}<298>)};
     };
     #else {
         #local 每秒精神变化 {};
@@ -365,10 +365,10 @@ hp -neili 格式:
 
     #local 每秒内力变化 {@speedo.GetSpeed{当前内力}};
     #if { ${每秒内力变化} > 0 } {
-        #local 每秒内力变化 {(<128>${每秒内力变化}<278>)};
+        #local 每秒内力变化 {(<128>${每秒内力变化}<298>)};
     };
     #elseif { ${每秒内力变化} < 0 } {
-        #local 每秒内力变化 {(<118>${每秒内力变化}<278>)};
+        #local 每秒内力变化 {(<118>${每秒内力变化}<298>)};
     };
     #else {
         #local 每秒内力变化 {};
@@ -376,10 +376,10 @@ hp -neili 格式:
 
     #local 每秒精力变化 {@speedo.GetSpeed{当前精力}};
     #if { ${每秒精力变化} > 0 } {
-        #local 每秒精力变化 {(<128>${每秒精力变化}<278>)};
+        #local 每秒精力变化 {(<128>${每秒精力变化}<298>)};
     };
     #elseif { ${每秒精力变化} < 0 } {
-        #local 每秒精力变化 {(<118>${每秒精力变化}<278>)};
+        #local 每秒精力变化 {(<118>${每秒精力变化}<298>)};
     };
     #else {
         #local 每秒精力变化 {};
@@ -396,7 +396,7 @@ hp -neili 格式:
 
     #local summarize {};
     #if { "$char[HP][战斗中]" == "true" } {
-        #format summarize {<099>$color〔HP摘要〕<278>气血: %s%s/%s 内力: %s%s 回气: %s/%s 精神: %s%s/%s 食水: %s/%s$combat<099>}
+        #format summarize {<099>$color〔HP摘要〕<298>气血: %s%s/%s 内力: %s%s 回气: %s/%s 精神: %s%s/%s 食水: %s/%s$combat<099>}
             {@__char_hp_colorit__{$char[HP][气血百分比]}} {${每秒气血变化}} {@__char_hp_colorit__{${气血健康度}}}
             {@__char_hp_colorit__{$char[HP][内力百分比]}} {${每秒内力变化}}
             {@__char_hp_colorit__{${气血恢复}}} {@__char_hp_colorit__{${气血治疗}}}
@@ -405,7 +405,7 @@ hp -neili 格式:
     };
     #else {
         #local jingli {@if{$chat[HP][精力百分比] < 30;{@__char_hp_colorit__{$char[HP][精力百分比]} ${每秒精力变化}}}};
-        #format summarize {<099>$color〔HP摘要〕<278>气血: %s%s/%s 内力: %s%s 回气: %s/%s 精神: %s%s/%s $jingli食水: %s/%s(%s/%s)$combat<099>}
+        #format summarize {<099>$color〔HP摘要〕<298>气血: %s%s/%s 内力: %s%s 回气: %s/%s 精神: %s%s/%s $jingli食水: %s/%s(%s/%s)$combat<099>}
             {@__char_hp_colorit__{$char[HP][气血百分比]}} {${每秒气血变化}} {@__char_hp_colorit__{${气血健康度}}}
             {@__char_hp_colorit__{$char[HP][内力百分比]}} {${每秒内力变化}}
             {@__char_hp_colorit__{${气血恢复}}} {@__char_hp_colorit__{${气血治疗}}}
@@ -427,7 +427,7 @@ hp -neili 格式:
 
 #func {__char_hp_colorit__} {
     #local percent {@math.Int{@defaultNum{%1;0}}};
-    #return {@util.Grade{$percent;<218>;15;<118>;30;<238>;60;<138>;90;<128>;101;<168>}$percent%<278>};
+    #return {@util.Grade{$percent;<218>;15;<118>;30;<238>;60;<138>;90;<128>;101;<168>}$percent%<298>};
 };
 
 #alias {char.GetHP} {

+ 1 - 1
mud/pkuxkx/plugins/basic/char/skills.tin

@@ -210,7 +210,7 @@ event.Define {char/skbrief} {无参}  {$MODULE} {已经获取到 skbrief 命令
     #local limit    {%3};
 
     #local p {@math.Int{@math.Eval{$level * 100 / $limit}}};
-    #local color {@util.Grade{$p;<071>;15;<171>;30;<003>;60;<074>;90;<134>;100;<132>;101;<506>}};
+    #local color {@util.Grade{$p;<271>;15;<171>;30;<203>;60;<274>;90;<134>;100;<132>;101;<506>}};
 
     #local spaceLen {@str.Len{$code}};
     #local code     {@str.Trim{$code}};

+ 2 - 2
mud/pkuxkx/plugins/basic/cmds/jobquery.tin

@@ -167,10 +167,10 @@ jobquery 本来就有两个别名:
     #local doingStr {};
     #foreach {*gJobState[]} {name} {
         #if { $gJobState[$name][CD] > 0 } {
-            #local cdStr {$cdStr <130>$name<070>(<110>$gJobState[$name][CD]s<070>)};
+            #local cdStr {$cdStr <139>$name<299>(<119>$gJobState[$name][CD]s<299>)};
         };
         #elseif { $gJobState[$name][CD] == -1 } {
-            #local doingStr {$doingStr <120>$name<070>(<130>$gJobState[$name][附加信息]<070>)};
+            #local doingStr {$doingStr <129>$name<299>(<139>$gJobState[$name][附加信息]<299>)};
         };
     };
 

+ 11 - 11
mud/pkuxkx/plugins/bot/pp-server.tin

@@ -246,43 +246,43 @@ load-lib storage;
     #format elapse {%T};
     #math elapse {$elapse - $pp-current-order[time]};
 
-    #local prefix {<160>普通订单<070>};
+    #local prefix {<169>普通订单<299>};
     #if { "$source" == "VIP" } {
-        #local prefix {<130>VIP 订单<070>};
+        #local prefix {<139>VIP 订单<299>};
     };
     #elseif { "$source" == "SVIP" } {
-        #local prefix {<150>SVIP订单<070>};
+        #local prefix {<159>SVIP订单<299>};
     };
 
     #if { "$answer" == "成功" } {
-        #local prefix {【$prefix】【<120>成功<070>】【<120>$uid<070>】【<160>$uname<070>】【<170>$qid<070>】};
+        #local prefix {【$prefix】【<129>成功<299>】【<129>$uid<299>】【<169>$uname<299>】【<179>$qid<299>】};
     };
     #else {
-        #local prefix {【$prefix】【<110>失败<070>】【<120>$uid<070>】【<160>$uname<070>】【<170>$qid<070>】};
+        #local prefix {【$prefix】【<119>失败<299>】【<129>$uid<299>】【<169>$uname<299>】【<179>$qid<299>】};
     };
 
     pp.add-history-id;
 
     #if { "$answer" == "成功" } {
         #if { "$qid" == "$pp-current-order[qid]" } {
-            ppLog $prefix【<140>$qname<070>】【<120>$place<070>】【<160>$elapse 秒<070>】;
+            ppLog $prefix【<149>$qname<299>】【<129>$place<299>】【<169>$elapse 秒<299>】;
             tell $uid 【$qname($qid)】目前在【$place】,快去摁死它吧!;
         };
     };
     #else {
         #switch {"$source/$qname"} {
             #case {"PUBLIC/"} {
-                ppLog $prefix【<110>未知<070>】【<110>查无此人<070>】【<160>$elapse 秒<070>】;
+                ppLog $prefix【<119>未知<299>】【<119>查无此人<299>】【<169>$elapse 秒<299>】;
             };
             #case {"PUBLIC/%+"} {
-                ppLog $prefix【<140>$qname<070>】【<130>感应不到<070>】【<160>$elapse 秒<070>】;
+                ppLog $prefix【<149>$qname<299>】【<139>感应不到<299>】【<169>$elapse 秒<299>】;
             };
             #case {"{VIP|SVIP}/" } {
-                ppLog $prefix【<110>未知<070>】【<110>查无此人<070>】【<160>$elapse 秒<070>】;
+                ppLog $prefix【<119>未知<299>】【<119>查无此人<299>】【<169>$elapse 秒<299>】;
                 tell $uid 据我所查,【$qid】已不在人世了;
             };
             #case {"{VIP|SVIP}/%+" } {
-                ppLog $prefix【<140>$qname<070>】【<130>感应不到<070>】【<160>$elapse 秒<070>】;
+                ppLog $prefix【<149>$qname<299>】【<139>感应不到<299>】【<169>$elapse 秒<299>】;
                 tell $uid 恕贫僧道行尚浅,无法查到【$qid】的具体下落,只知其人名曰【$qname】;
             };
         };
@@ -360,7 +360,7 @@ load-lib storage;
         {uid}   {$uid}
     };
 
-    ppLog 【<170>@str.AlignLeft{$list-name;4}维护<070>】【<120>$uid<070>】【共 &{${list-var}[]} 位 VIP】【*{${list-var}[]}】;
+    ppLog 【<179>@str.AlignLeft{$list-name;4}维护<299>】【<129>$uid<299>】【共 &{${list-var}[]} 位 VIP】【*{${list-var}[]}】;
 
     pp.store-vip;
 };

+ 19 - 19
mud/pkuxkx/plugins/quest/tang.tin

@@ -28,10 +28,10 @@ load-lib speedo;
 };
 
 #var tang-job-level-color {
-    {简单} {<120>}
-    {普通} {<030>}
-    {困难} {<110>}
-    {挑战} {<050>}
+    {简单} {<129>}
+    {普通} {<239>}
+    {困难} {<119>}
+    {挑战} {<259>}
 };
 
 #var tang-job-log {};
@@ -306,7 +306,7 @@ load-lib speedo;
         #case {"50"} { #local ageText {中|老}   };
         #case {"60"} { #local ageText {老}      };
         #case {"70"} { #local ageText {老}      };
-        #default {#echo {<110>这是什么年龄?「%2」<070>} };
+        #default {#echo {<119>这是什么年龄?「%2」<299>} };
     };
     #var {tang.data[行人特征][$tang[name]][年龄]} {$ageText};
     #class tang.data close;
@@ -353,17 +353,17 @@ load-lib speedo;
         #local value {${tang.data[行人特征][$tang[name]][$key]}};
         #format feat {%s %s} {$feat} {$key($value)};
     };
-    #echo {%s} {<160>此人特征为:$feat<070>};
+    #echo {%s} {<169>此人特征为:$feat<299>};
 
     #list {tang.data[好人名单]}   {find} {$tang[name]} {idx};
     #if { $idx > 0 } {
-        #echo {%s} {<120>之前已经搞清楚了,这是一个好人。<070>};
+        #echo {%s} {<129>之前已经搞清楚了,这是一个好人。<299>};
         #return;
     };
 
     #list {tang.data[嫌疑人名单]} {find} {$tang[name]} {idx};
     #if { $idx > 0 } {
-        #echo {%s} {<130>之前已经看过了,这是一个嫌疑人。<070>};
+        #echo {%s} {<139>之前已经看过了,这是一个嫌疑人。<299>};
         #return;
     };
 
@@ -392,11 +392,11 @@ load-lib speedo;
     };
 
     #if { "$clean" == "true" } {
-        #echo {%s} {<120>由于${reason},因此这是一个好人。<070>};
+        #echo {%s} {<129>由于${reason},因此这是一个好人。<299>};
         #list {tang.data[好人名单]} {sort} {$tang[name]};
     };
     #else {
-        #echo {%s} {<130>由于缺乏必要的证据,无法判定此人清白,因此这是一个嫌疑人。<070>};
+        #echo {%s} {<139>由于缺乏必要的证据,无法判定此人清白,因此这是一个嫌疑人。<299>};
         #list {tang.data[嫌疑人名单]} {sort} {$tang[name]};
     };
 
@@ -421,7 +421,7 @@ load-lib speedo;
     #var {tang.data[证人证词][${证人}][特征点]} {${特征点}};
     #var {tang.data[证人证词][${证人}][特征值]} {${特征值}};
 
-    #echo {证人指认的是个<130>%s是%s<070>的人} {${特征点}} {${特征值}};
+    #echo {证人指认的是个<139>%s是%s<299>的人} {${特征点}} {${特征值}};
 
     #local {新增好人} {};
 
@@ -435,13 +435,13 @@ load-lib speedo;
 
         #if { "${嫌疑人}" == "${证人}" } {
             #if { "${特征值}" == "{${证人特征}}" } {
-                #echo {由于证人指认的特点与自身相符,因此判断他是一个<120>好人<070>};
+                #echo {由于证人指认的特点与自身相符,因此判断他是一个<129>好人<299>};
                 #list {新增好人} sort {${证人}};
             };
         };
         #else {
             #if { "${特征值}" != "{${嫌疑人特征}}" } {
-                #echo {根据证人所说,<120>%s<070>应该是一个好人} {${嫌疑人}};
+                #echo {根据证人所说,<129>%s<299>应该是一个好人} {${嫌疑人}};
                 #list {新增好人} sort {${嫌疑人}};
             };
         };
@@ -449,7 +449,7 @@ load-lib speedo;
 
     #list {新增好人} {simplify};
 
-    #echo {由于证人作证,本次新增好人名单: <120>${新增好人}<070>};
+    #echo {由于证人作证,本次新增好人名单: <129>${新增好人}<299>};
 
     tang.确认好人 {${新增好人}};
 
@@ -505,7 +505,7 @@ load-lib speedo;
         };
 
         #if { &newCleanManList[] > 0 } {
-            #echo {由于前面一批好人被确认,推出本次新增好人名单: <120>$newCleanManList<070>};
+            #echo {由于前面一批好人被确认,推出本次新增好人名单: <129>$newCleanManList<299>};
             #local cleanManList {$newCleanManList};
         };
         #else {
@@ -519,10 +519,10 @@ load-lib speedo;
 
     #local list {@slist.FromList{${tang.data[好人名单]}}};
     #replace list {;} { };
-    #echo {目前发现的好人  : <120>$list<070>};
+    #echo {目前发现的好人  : <129>$list<299>};
     #local list {@slist.FromList{${tang.data[嫌疑人名单]}}};
     #replace list {;} { };
-    #echo {目前发现的嫌疑人: <130>$list<070>};
+    #echo {目前发现的嫌疑人: <139>$list<299>};
 };
 
 #alias {tang.认错人} {
@@ -569,13 +569,13 @@ load-lib speedo;
         #local point {@math.ParseCN{%%2}};
         speedo.Add {爵位积分} {$point} {true} {600};
         #format point {%+2s} {$point};
-        questLog 【<130>爵位任务<070>】【$tang-job-level-color[$level]$level<070>】【<120>任务成功<070>】奖励爵位积分【$point】【${tang-job-log[地点]}】;
+        questLog 【<139>爵位任务<299>】【$tang-job-level-color[$level]$level<299>】【<129>任务成功<299>】奖励爵位积分【$point】【${tang-job-log[地点]}】;
     };
 
     #action {^你未领取任务,也不能领取奖励。$} {
         #class tang.back kill;
         #local level {${tang-job-log[任务难度]}};
-        questLog 【<130>爵位任务<070>】【$tang-job-level-color[$level]$level<070>】【<110>任务失败<070>】奖励爵位积分【 0】【${tang-job-log[地点]}】;
+        questLog 【<139>爵位任务<299>】【$tang-job-level-color[$level]$level<299>】【<119>任务失败<299>】奖励爵位积分【 0】【${tang-job-log[地点]}】;
     };
 
     #class tang.back close;

+ 6 - 6
mud/pkuxkx/plugins/shortcut.tin

@@ -9,13 +9,13 @@
 
 #alias {beep} {#echo {\a\}};
 
-#event {TIME 08:55} {#echo <120>准备保卫!!!<070>};
-#event {TIME 15:55} {#echo <120>准备保卫!!!<070>};
-#event {TIME 20:25} {#echo <120>准备保卫!!!<070>};
-#event {TIME 20:55} {#echo <120>准备保卫!!!<070>};
+#event {TIME 08:55} {#echo <129>准备保卫!!!<299>};
+#event {TIME 15:55} {#echo <129>准备保卫!!!<299>};
+#event {TIME 20:25} {#echo <129>准备保卫!!!<299>};
+#event {TIME 20:55} {#echo <129>准备保卫!!!<299>};
 
-#event {TIME 07:55} {#echo <120>准备答题!!!<070>};
-#event {TIME 19:55} {#echo <120>准备答题!!!<070>};
+#event {TIME 07:55} {#echo <129>准备答题!!!<299>};
+#event {TIME 19:55} {#echo <129>准备答题!!!<299>};
 
 #alias {bwcx} {
     #local keyword {%1};

+ 2 - 2
plugins/lib/option.tin

@@ -161,11 +161,11 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #local value {@option.Get{$option}};
     #if { "$value" == "true" } {
         option.Disable $option;
-        infoLog <160>选项「<130>$option<160>」 <110>已禁用。<070>;
+        infoLog <169>选项「<139>$option<169>」 <119>已禁用。<299>;
     };
     #elseif { "$value" == "false" } {
         option.Enable $option;
-        infoLog <160>选项「<130>$option<160>」 <120>已启用。<070>;
+        infoLog <169>选项「<139>$option<169>」 <129>已启用。<299>;
     };
 
     #return {$value};

+ 2 - 2
plugins/lib/ui/beautify.tin

@@ -76,7 +76,7 @@
     warnLog 出于美化需要,接下来你在屏幕上看到的内容可能和服务器实际传送的内容不一致。;
     warnLog 这可能会给编写触发带来困扰,此时你可以通过快捷键或者 beautify.Off 暂时禁用美化。;
 
-    prompt.Set {{beautify}{<120>已启用}};
+    prompt.Set {{beautify}{<129>已启用}};
     prompt.refresh;
 };
 
@@ -86,7 +86,7 @@
     #var beautify-switch {OFF};
     warnLog 宽字符美化已禁用。你可以通过快捷键或者 beautify.On 重新启用。;
 
-    prompt.Set {{beautify}{<110>已禁用}};
+    prompt.Set {{beautify}{<119>已禁用}};
     prompt.refresh;
 };
 

+ 13 - 13
plugins/lib/ui/keyboard.tin

@@ -35,21 +35,21 @@
 
     #local mode {};
     #if { {$keyboard-search-pattern} == {} } {
-        #local mode {<130>【翻页模式】<070>};
+        #local mode {<139>【翻页模式】<299>};
     };
     #elseif { "$keyboard-search-dir" == "down" } {
-        #local mode {<150>【向下搜索】<070>};
+        #local mode {<159>【向下搜索】<299>};
     };
     #else {
-        #local mode {<120>【向上搜索】<070>};
+        #local mode {<129>【向上搜索】<299>};
     };
 
-    prompt.Change {$mode<160>Ctrl+b<070>/<160>Ctrl+f<070> 前后翻页
-        <160>j<070>/<160>k<070> 上下滚动
-        <160>g<070>/<160>G<070> 到开头/结尾
-        <160>Ctrl+C<070> 回到正常模式
-        <160>?<070>/<160>/<070> 输入搜索条件
-        <160>n<070>/<160>N<070> 前后搜索};
+    prompt.Change {$mode<169>Ctrl+b<299>/<169>Ctrl+f<299> 前后翻页
+        <169>j<299>/<169>k<299> 上下滚动
+        <169>g<299>/<169>G<299> 到开头/结尾
+        <169>Ctrl+C<299> 回到正常模式
+        <169>?<299>/<169>/<299> 输入搜索条件
+        <169>n<299>/<169>N<299> 前后搜索};
 
     #class mouse-less-mode close;
 };
@@ -173,10 +173,10 @@
         keyboard.Search next;
 
         #if { "$keyboard-search-dir" == "down" } {
-            prompt.Set {{search}{<150>$keyboard-search-pattern}};
+            prompt.Set {{search}{<159>$keyboard-search-pattern}};
         };
         #else {
-            prompt.Set {{search}{<120>$keyboard-search-pattern}};
+            prompt.Set {{search}{<129>$keyboard-search-pattern}};
         };
     };
 
@@ -185,14 +185,14 @@
             #var keyboard-search-skip {0};
             #var keyboard-search-last-find {0};
         };
-        prompt.Change {<120>向上搜索<070>: };
+        prompt.Change {<129>向上搜索<299>: };
     };
     #else {
         #if { $keyboard-search-skip < 0 } {
             #var keyboard-search-last-find {0};
             #var keyboard-search-skip {0};
         };
-        prompt.Change {<150>向下搜索<070>: };
+        prompt.Change {<159>向下搜索<299>: };
     };
 
     #class keyboard-search-mode close;

+ 14 - 14
plugins/lib/ui/prompt.tin

@@ -114,15 +114,15 @@ tt++ table 由一组选项和与之对应的选项值来组成,用来说明想
 #nop 配色主题,注意这里不要直接嵌入 SGR(ansi codes),否则计算宽度时会有问题。;
 #var prompt-theme {
     {Disable}{<bbc>}
-    {BusyColor}{<030>}
-    {BattleColor}{<110>}
-    {BattleBusyColor}{<500><110>}
-    {TopSepBar}{<020>}
-    {MidSepBar}{<020>}
-    {BotSepBar}{<020>}
-    {HotLabel}{<100><F399>}
-    {CoolLabel}{<100>}
-    {Value}{<070>}
+    {BusyColor}{<239>}
+    {BattleColor}{<119>}
+    {BattleBusyColor}{<599><119>}
+    {TopSepBar}{<229>}
+    {MidSepBar}{<229>}
+    {BotSepBar}{<229>}
+    {HotLabel}{<199><F399>}
+    {CoolLabel}{<109>}
+    {Value}{<299>}
 };
 
 #nop 自定义图标;
@@ -475,7 +475,7 @@ tt++ table 由一组选项和与之对应的选项值来组成,用来说明想
                 };
             };
 
-            #local label {$label<070> };
+            #local label {$label<299> };
         };
 
         #if { "$field[visibility]" == "HideLabel" } {
@@ -486,7 +486,7 @@ tt++ table 由一组选项和与之对应的选项值来组成,用来说明想
             #local color {${prompt-theme[Value]}};
         };
 
-        #format value {$color%-${width}s<070>} {$value[value]};
+        #format value {$color%-${width}s<299>} {$value[value]};
         #math lineWidth {$lineWidth + @width{$label} + @width{$value}};
         #if { "$text" == "" } {
             #local text {$label$value};
@@ -577,10 +577,10 @@ tt++ table 由一组选项和与之对应的选项值来组成,用来说明想
         #return {$newText};
     };
     #elseif { "$newText" == "" } {
-        #return {$color$left──$right<070>};
+        #return {$color$left──$right<099>};
     };
     #else {
-        #return {$color$left<070> $newText $color$right<070>};
+        #return {$color$left<299> $newText $color$right<099>};
     };
 };
 
@@ -643,7 +643,7 @@ tt++ table 由一组选项和与之对应的选项值来组成,用来说明想
 };
 
 #alias {prompt.test} {
-    #local fullme {<010>很久没有进行机器人检查(fullme)了,任务奖励将受到影响。<070>};
+    #local fullme {<219>很久没有进行机器人检查(fullme)了,任务奖励将受到影响。<299>};
     #local fullme {http://pkuxkx.com/antirobot/robot.php?filename=1576762922984895};
     prompt.Set { {URL}{$fullme} };
     prompt.Set {

+ 8 - 8
plugins/lib/xtintin/__init__.tin

@@ -38,7 +38,7 @@ load-file plugins/lib/xtintin/mslp.tin;
 //        - 联机帮助: 文档化注释可以在 PaoTin++ 运行时,即使是在游戏界面,也可以
 //                    随时查看,支持模糊查询。也和 PaoTin++ 其它部分做紧密结合。
 //        - 错误提示: 文档化注释可以给别名当成是参数输入错误时提示用户正确用法的
-//                    作用。具体参见 <130>HELP xtt.Usage<070>。
+//                    作用。具体参见 <139>HELP xtt.Usage<299>。
 //        - Markdown: 文档化注释用类似于 Markdown 的标记语言书写,可以轻松输出为
 //                    Markdown 文档。
 //        - HTML文档: 借助于 TinTin++ 的 HTML 输出功能,文档化注释也可以输出成彩
@@ -52,7 +52,7 @@ load-file plugins/lib/xtintin/mslp.tin;
 //
 //    先给大家看一个直观的例子。
 //    用户只需要按照下面这个格式,就可以为模块和函数(或别名)书写文档。
-//    <110>注意:<070>在下面的模版中,「格式非常重要」,一定要按照格式书写,才会
+//    <119>注意:<299>在下面的模版中,「格式非常重要」,一定要按照格式书写,才会
 //    被正确识别。
 //
 //    ///=== {
@@ -60,21 +60,21 @@ load-file plugins/lib/xtintin/mslp.tin;
 //    \/\/\/\/\/
 //    \/\/\/\/\/ 模块的整体说明性的文档,建议放在文件的一开头。
 //    \/\/\/\/\/
-//    \/\/\/\/\/ 五个斜线(<160>\/\/\/\/\/<070>)开头的文本将会被识别为模块文档。
+//    \/\/\/\/\/ 五个斜线(<169>\/\/\/\/\/<299>)开头的文本将会被识别为模块文档。
 //    \/\/\/\/\/ 模块文档仅在 HELP <模块名> 时出现,如果只查看函数或者别名,
 //    \/\/\/\/\/ 是不会显示的。
 //    \/\/\/\/\/
 //    \/\/\/\/\/ 这里继续写模块文档。
 //    \/\/\/\/\/
 //    \/\/\/\/\/ 下面开始写别名和函数的文档:
-//    \/\/\/\/\/ 两个斜线(<160>\/\/<070>)开头的文本会被识别为别名和函数的文档。
+//    \/\/\/\/\/ 两个斜线(<169>\/\/<299>)开头的文本会被识别为别名和函数的文档。
 //    \/\/\/\/\/
 //    \/\/\/\/\/ 建议放在被说明的别名或者函数的紧挨着的前面。
 //    \/\/\/\/\/
 //    \/\/\/\/\/ 实际运用中,文档和代码一般都是穿插书写,最终所有文档会按照书写
 //    \/\/\/\/\/ 时的顺序提取成一篇完整的文档,因此书写顺序非常重要。请自行体会。
 //    \/\/
-//    \/\/ <160>\#\#<070> foo.Bar <参数1> <参数2>
+//    \/\/ <169>\#\#<299> foo.Bar <参数1> <参数2>
 //    \/\/    函数(或别名)的一句话介绍。
 //    \/\/    函数(或别名)的更多介绍。
 //    \/\/    函数(或别名)的参数说明:
@@ -85,8 +85,8 @@ load-file plugins/lib/xtintin/mslp.tin;
 //       ....;
 //    };
 //
-//    上面的例子中,如果是为别名写文档,则应该用 <160>\#\#<070> 开头,如果为函数写文档,
-//    则应当以 <160>\#\@<070> 开头。
+//    上面的例子中,如果是为别名写文档,则应该用 <169>\#\#<299> 开头,如果为函数写文档,
+//    则应当以 <169>\#\@<299> 开头。
 //
 //    参数格式说明:
 //        - 必选参数: 用 <参数名> 表示
@@ -94,7 +94,7 @@ load-file plugins/lib/xtintin/mslp.tin;
 //        - 重复参数: 用 ... 或 [...] 表示
 //
 //    参数名一般用具有实际意义的中文名称来表示,或者用参数类型表示。
-//    有关参数类型的更多内容请查看 <130>HELP DataType<070>。
+//    有关参数类型的更多内容请查看 <139>HELP DataType<299>。
 //
 // ## xtt.Usage <关键字> [<错误提示>]
 //    给出关键字对应的帮助信息,以提示用户了解如何正确使用该别名(或函数)。

+ 23 - 23
plugins/lib/xtintin/cmds.tin

@@ -71,7 +71,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
         #echo {   %-30s %+20s %+10s %+20m}
             {@genModuleLink{$info[TICKERS][+$index][class];MOD}}
-            {$name @mslp.Exec{{xtt.delTrigger tick $name};<110>✗<060>;false}}
+            {$name @mslp.Exec{{xtt.delTrigger tick $name};<119>✗<269>;false}}
             {$info[TICKERS][+$index][arg3]}
             {($uval - ($utime - $info[TICKERS][+$index][arg4]) % $uval) / 1000000.00};
     };
@@ -125,31 +125,31 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #foreach {$classList} {class} {
         #local name {};
         #foreach {${aliasTable[$class][]}} {name} {
-            #local type {<130>自定义<070>};
+            #local type {<139>自定义<299>};
 
             #if { "$name" == "%*.{[A-Z][a-zA-Z0-9]+}" } {
-                #local type {<120>开放API<070>};
+                #local type {<129>开放API<299>};
             };
 
             #if { "$class" == "module-loader" } {
                 #if { "$name" == "{[A-Z]+}" } {
-                    #local type {<160>快捷方式<070>};
+                    #local type {<169>快捷方式<299>};
                 };
                 #else {
-                    #local type {<020>语法增强<070>};
+                    #local type {<229>语法增强<299>};
                 }
             };
 
             #if { "${class}.$name" == "main.class.%*" } {
-                #local type {<020>语法增强<070>};
+                #local type {<229>语法增强<299>};
             };
 
             #if { "${class}.$name" == "main.load-file" } {
-                #local type {<020>语法增强<070>};
+                #local type {<229>语法增强<299>};
             };
 
             #if { "${class}.$name" == "main.%*Log" } {
-                #local type {<120>日志接口<070>};
+                #local type {<129>日志接口<299>};
             };
 
             #if { "$pattern" == "" && "$type" == "%*自定义%*" } {
@@ -158,7 +158,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
             #echo {<060>$format}
                 {@genModuleLink{$class;MOD}<060>}
-                {@mslp.Exec{{xtt.delTrigger alias $name};<110>✗<060>;false} @linkToHelp{$class;$name}}
+                {@mslp.Exec{{xtt.delTrigger alias $name};<119>✗<269>;false} @linkToHelp{$class;$name}}
                 {$type};
         };
     };
@@ -214,18 +214,18 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #local name {};
         #local nameList {@slist.Sort{*varTable[$class][]}};
         #foreach {$nameList} {name} {
-            #local type {<020>字符串<070>};
-            #local value {<160>$varTable[$class][$name][value]<070>};
+            #local type {<229>字符串<299>};
+            #local value {<169>$varTable[$class][$name][value]<299>};
             #local nest  {$varTable[$class][$name][nest]};
 
             #if { $nest > 0 } {
-                #local type {<050>表格<070>};
-                #local value {@mslp.Var{$name;<130>[... 共 $nest 项数据]<070>}};
+                #local type {<259>表格<299>};
+                #local value {@mslp.Var{$name;<139>[... 共 $nest 项数据]<299>}};
             };
 
             #echo {<060>$format}
                 {@genModuleLink{$class;MOD}<060>}
-                {@mslp.Exec{{xtt.delTrigger var $name};<110>✗<060>;false} @linkToHelp{$class;$name}}
+                {@mslp.Exec{{xtt.delTrigger var $name};<119>✗<269>;false} @linkToHelp{$class;$name}}
                 {$type}
                 {$value};
         };
@@ -287,18 +287,18 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #foreach {$classList} {class} {
         #local name {};
         #foreach {${funcsTable[$class][]}} {name} {
-            #local type {<130>自定义<070>};
+            #local type {<139>自定义<299>};
 
             #if { "$name" == "%*.{[A-Z][a-zA-Z0-9]+}" } {
-                #local type {<120>开放API<070>};
+                #local type {<129>开放API<299>};
             };
 
             #if { "$class" == "{lib/xtintin|main}" } {
-                #local type {<020>语法增强<070>};
+                #local type {<229>语法增强<299>};
             };
 
             #if { "${class}.$name" == "main.%*Log" } {
-                #local type {<120>日志接口<070>};
+                #local type {<129>日志接口<299>};
             };
 
             #if { "$pattern" == "" && "$type" == "%*自定义%*" } {
@@ -307,7 +307,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
             #echo {<060>$format}
                 {@genModuleLink{$class;MOD}<060>}
-                {@mslp.Exec{{xtt.delTrigger func $name};<110>✗<060>;false} @linkToHelp{$class;$name}}
+                {@mslp.Exec{{xtt.delTrigger func $name};<119>✗<269>;false} @linkToHelp{$class;$name}}
                 {$type};
         };
     };
@@ -319,7 +319,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 // };
 #alias {xtt.Send} {
     #if { "$xttOptions[DisableOutput]" == "true" } {
-        #echo {<160>命令已被抑制: <420>%p<070>} {%0};
+        #echo {<169>命令已被抑制: <429>%p<299>} {%0};
         #return;
     };
 
@@ -361,7 +361,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 //    就可以继续机器运行了。
 // };
 #alias {xtt.Stop} {
-    #line oneshot #alias {%1} {halt; #echo {<110>任务已暂停,请输入 <130>%1 %s <110>继续运行。<070>} {%%0}}
+    #line oneshot #alias {%1} {halt; #echo {<119>任务已暂停,请输入 <139>%1 %s <119>继续运行。<299>} {%%0}}
 };
 
 ///=== {
@@ -385,7 +385,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     } {1.000};
 
     #alias {^%*{|ID=paotin/disable-all-command}$} {
-        #echo {<110>命令已被抑制,可用 <120>#send<110> 强制发送。撤销请用 <120>xtt.UndoDisableAllCommand<110> : <130>%s<070>} {%%0}
+        #echo {<119>命令已被抑制,可用 <129>#send<119> 强制发送。撤销请用 <129>xtt.UndoDisableAllCommand<119> : <139>%s<299>} {%%0}
     } {1.001};
 
     #line quiet #ignore actions on;
@@ -421,7 +421,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #return {$text};
     };
 
-    #return {<140>@mslp.Exec{{$cmd};{$text}}<270>};
+    #return {<149>@mslp.Exec{{$cmd};{$text}}<299>};
 };
 
 ///=== {

+ 10 - 10
plugins/lib/xtintin/doc.tin

@@ -269,7 +269,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
             okLog 以下是模块 $doc[module] 的文档。;
         };
         #elseif { $doc[likely] < 100 } {
-            warnLog 找到 &maybe[] 个关键字,我猜你想看的是 <110>$doc[keyword]<120>@$doc[module]<099>;
+            warnLog 找到 &maybe[] 个关键字,我猜你想看的是 <119>$doc[keyword]<129>@$doc[module]<299>;
         };
         #else {
             okLog 以下是关键字 $doc[keyword] 的文档。;
@@ -284,13 +284,13 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #local line {$xtt.module-doc[$module][$keyword][$idx]};
         #regex {$line} {{##|#@} %S %*} {
             #if { "&1" == "##" } {
-                #echo {<099>%s} {<B407><128> ## 别名 <138>&2 <868>&3<099>};
+                #echo {<299>%s} {<B407><128> ## 别名 <138>&2 <868>&3<299>};
             };
             #else {
-                #echo {<099>%s} {<B04a><128> ## 函数 <138>&2 <868>&3<099>};
+                #echo {<299>%s} {<B04a><128> ## 函数 <138>&2 <868>&3<299>};
             };
         } {
-            #echo {<099>%s} {$line};
+            #echo {<299>%s} {$line};
         };
     };
 
@@ -299,10 +299,10 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #local idx {};
         #loop {&maybe[]-1} {1} {idx} {
             #if { "$maybe[$idx][keyword]" == "__MODULE__" } {
-                #echo {%s} {@mslp.Exec{xtt.Help $maybe[$idx][module];<120>$maybe[$idx][module] 模块<099>}};
+                #echo {%s} {@mslp.Exec{xtt.Help $maybe[$idx][module];<129>$maybe[$idx][module] 模块<299>}};
             };
             #else {
-                #echo {%s} {@mslp.Exec{xtt.Help $maybe[$idx][keyword];<120>$maybe[$idx][module] 模块的 <110>$maybe[$idx][keyword]<099>}};
+                #echo {%s} {@mslp.Exec{xtt.Help $maybe[$idx][keyword];<129>$maybe[$idx][module] 模块的 <119>$maybe[$idx][keyword]<299>}};
             };
         };
     };
@@ -328,7 +328,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #local doc {%%1};
 
         #regex {$doc} {== %*} {
-            #list {xtt.module-doc[$MODULE][__MODULE__]} add {<060>&1<099>};
+            #list {xtt.module-doc[$MODULE][__MODULE__]} add {<269>&1<299>};
         };
     };
 
@@ -337,10 +337,10 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         #regex {$doc} {={([ ]{3,})- (\d\.\s*)?(\S+?)(: |:)| }%*} {
             #local text {};
             #if { "&1" != " " } {
-                #local text {<099>&2- <168>&3&4<278>&5&6};
+                #local text {<299>&2- <168>&3&4<278>&5&6};
             };
             #else {
-                #local text {<099> &6};
+                #local text {<299> &6};
             };
             #list {xtt.module-doc[$MODULE][__MODULE__]} add {$text};
             #if { "$xtt-doc-keyword" != "" } {
@@ -388,7 +388,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 ///// 有关 xtintin 的文档化注释,请查看 HELP xtt.Doc。
 /////
 // ## DataType
-//    打印 TinTin++ 和 xtintin 的<130>数据类型<299>说明文档。
+//    打印 TinTin++ 和 xtintin 的<139>数据类型<299>说明文档。
 //
 //    TinTin++ 中存在几种不同的数据类型,xtintin 基于这些数据类型扩展了一些函数,
 //    以增强对它们的处理能力。下面简单予以介绍:

+ 1 - 1
plugins/lib/xtintin/string.tin

@@ -228,7 +228,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     #foreach {$parts[%*]} {elem} {
         #local elemLen {@math.Eval{($elem[weight] + $leftWeight) * $len / $sum - $leftLen}};
         #local text {@str.Sub{{$str};$leftLen;$elemLen}};
-        #cat colorStr {$elem[color]$text<099>};
+        #cat colorStr {$elem[color]$text<299>};
         #math leftLen {$leftLen + $elemLen};
         #math leftWeight {$leftWeight + $elem[weight]};
     };

+ 2 - 2
plugins/silent.tin

@@ -33,9 +33,9 @@
         #return;
     };
 
-    #echo {<160>命令「<130>$cmd<160>」不是一个合法的 MUD 命令,如果确认是,请更新白名单。<070>};
+    #echo {<169>命令「<139>$cmd<169>」不是一个合法的 MUD 命令,如果确认是,请更新白名单。<099>};
     #if { {%0} != {$silent-LastCmd} } {
-        #echo {<160>本次命令<110>已被抑制<160>。如果你着急输入,可以重复一次本命令,将临时通过一次。<070>};
+        #echo {<169>本次命令<119>已被抑制<169>。如果你着急输入,可以重复一次本命令,将临时通过一次。<099>};
         #var silent-LastCmd {%0};
     };
     #else {

+ 1 - 1
profile.sh

@@ -5,7 +5,7 @@ export TERM=xterm-256color
 
 export LESS="-r -f"
 export PATH=$HOME/bin:$PATH
-export PS1='\[\033[01;40;32m\]MUD\[\033[00m\]:\[\033[33m\]\w\[\033[00m\]\$ '
+export PS1='\[\033[1;49;32m\]MUD\[\033[0m\]:\[\033[33m\]\w\[\033[0m\]\$ '
 
 set -o vi
 

+ 1 - 1
tmux.conf

@@ -44,7 +44,7 @@ set -g status-interval 10
 # 状态栏的窗口列表靠左显示
 set -g status-justify left
 # 状态栏的整体色调背景色为蓝色
-set -g status-bg blue
+set -g status-style bg=#0000FF
 # 状态栏左部最大长度不超过 32
 set -g status-left-length 32
 # 状态栏左部的格式: 亮品红的日期时间,然后是亮黄色的主机名(#h)