dzp 3 лет назад
Родитель
Сommit
2f34d1c7f1

+ 20 - 5
plugins/basic/char/hp.tin

@@ -1,12 +1,27 @@
-#nop 角色生命值信息解析模块;
+#nop vim: set filetype=tt:;
+
+/*
+本文件属于 PaoTin++ 的一部分
+===========
+PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
+你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
+===========
+*/
+
+#var basic_char_hp[META] {
+    {NAME}      {HP 信息解析}
+    {DESC}      {解析 hp 和 hpbrief 两个命令的内容,并储存到变量 char[HP]}
+    {AUTHOR}    {担子炮}
+    {NOTE}      {本文件属于 PaoTin++ 的一部分}
+};
 
 load-lib event;
 
-event.Define {char/hp}       {无参}  {char/hp} {已经获取到 hp 命令输出结果,并更新 char[HP]。};
-event.Define {char/hpbrief}  {无参}  {char/hp} {已经获取到 hpbrief 命令输出结果,并更新 char[HP]。};
+event.Define {char/hp}       {无参}  {$MODULE} {已经获取到 hp 命令输出结果,并更新 char[HP]。};
+event.Define {char/hpbrief}  {无参}  {$MODULE} {已经获取到 hpbrief 命令输出结果,并更新 char[HP]。};
 
 #function {basic_char_hp.Init} {
-    #class char open;
+    #class data/basic/char open;
     #var char[HP]           {};
     #var char[HP][经验]     {};
     #var char[HP][经验显示] {};
@@ -48,7 +63,7 @@ event.Define {char/hpbrief}  {无参}  {char/hp} {已经获取到 hpbrief 命令
     #var char[HP][上次更新] {0};
     #var char[HP][更新时间] {};
     #var char[HP][状态更新] {};
-    #class char close;
+    #class data/basic/char close;
 
     set hpbrief long,report;
 

+ 24 - 40
plugins/basic/char/i2.tin

@@ -34,7 +34,7 @@
 };
 
 #alias {char.reset.i2} {
-    #class char open;
+    #class data/basic/char open;
     #nop 随身物品;
     #var char-Item      {};
     #nop 穿戴;
@@ -43,27 +43,27 @@
     #var char-Wield     {};
     #nop 装备;
     #var char-Equip     {};
-    #class char close;
+    #class data/basic/char close;
 };
 
 #alias {char.reset.bag} {
-    #class char open;
+    #class data/basic/char open;
     #nop 包袱;
     #var char-Bag       {};
-    #class char close;
+    #class data/basic/char close;
 };
 
 #alias {char.reset.sachet} {
-    #class char open;
+    #class data/basic/char open;
     #nop 宝石袋;
     #var char-Sachet    {};
-    #class char close;
+    #class data/basic/char close;
 };
 
 #action {^你身上带著下列这些东西(负重 %1%):$} {
     #class {ParseItems} open;
 
-    #var char-Item.currentType {随身};
+    #var char-Item[currentType] {随身};
     char.reset.i2;
 
     #nop 你左手拿着:大砍刀(Dakan dao);
@@ -72,16 +72,14 @@
         #local hand     {%%1};
         #local item     {%%2};
         #local id       {@toLower{%%3}};
-        #class char open;
-        #var char-Wield.$hand {
+        #var char-Wield[$hand] {
             {item}{$item}
             {id}{$id}
         };
-        #class char close;
     } {4};
 
     #action {^你身上穿着:$} {
-        #var char-Item.currentType {装备};
+        #var char-Item[currentType] {装备};
     };
 
     #nop 九十一两白银(Silver);
@@ -91,12 +89,10 @@
         #local item     {%%4};
         #local id       {@toLower{%%5}};
 
-        #class char open;
-        #var {char-Item.$item} {
+        #var {char-Item[$item]} {
             {id}{@toLower{$id}}
             {amount}{@c2d{$amount}}
         };
-        #class char close;
     } {4};
 
     #local 武器等级 {沉水|赤焰|荡寇|彗月|照夜|追日|断阙|刑天};
@@ -140,20 +136,18 @@
         #local item     {%%8};
         #local id       {@toLower{%%9}};
 
-        #if { "${char-Item.currentType}" == "装备" } {
+        #if { "${char-Item[currentType]}" == "装备" } {
             #return;
         };
 
         #if { "$amount" == "" } { #format amount {%s} {一} };
         #format amount {%s} {@c2d{$amount}};
 
-        #if { "${char-Equip.$id}" != "" } {
-            #math amount { ${char-Equip.$id} + $amount };
+        #if { "${char-Equip[$id]}" != "" } {
+            #math amount { ${char-Equip[$id]} + $amount };
         };
 
-        #class char open;
-        #var {char-Equip.$id} {$amount};
-        #class char close;
+        #var {char-Equip[$id]} {$amount};
     } {4};
 
     #nop 二把竹剑(Zhujian);
@@ -162,12 +156,10 @@
         #local unit     {%%3};
         #local item     {%%4};
         #local id       {@toLower{%%5}};
-        #class char open;
-        #var {char-Item.$item} {
+        #var {char-Item[$item]} {
             {id}{$id}
             {amount}{$amount}
         };
-        #class char close;
     };
 
     #nop 大砍刀(Dakan dao);
@@ -175,30 +167,22 @@
     #action {^%%1(%%2)$} {
         #local item {%%1};
         #local id   {@toLower{%%2}};
-        #if { "${char-Item.currentType}" == "装备" } {
-            #class char open;
-            #var {char-Wear.$item} {{id}{$id}};
-            #class char close;
+        #if { "${char-Item[currentType]}" == "装备" } {
+            #var {char-Wear[$item]} {{id}{$id}};
         };
-        #elseif { "${char-Item.currentType}" == "随身" } {
-            #class char open;
-            #var {char-Item.$item} {{id}{$id}};
-            #class char close;
+        #elseif { "${char-Item[currentType]}" == "随身" } {
+            #var {char-Item[$item]} {{id}{$id}};
         };
-        #elseif { "${char-Item.currentType}" == "包袱" } {
-            #class char open;
-            #var {char-Bag.$item} {{id}{$id}};
-            #class char close;
+        #elseif { "${char-Item[currentType]}" == "包袱" } {
+            #var {char-Bag[$item]} {{id}{$id}};
         };
-        #elseif { "${char.-currentType}" == "宝石袋" } {
-            #class char open;
-            #var {char-Sachet.$item} {{id}{$id}};
-            #class char close;
+        #elseif { "${char-Item[currentType]}" == "宝石袋" } {
+            #var {char-Sachet[$item]} {{id}{$id}};
         };
     } {9};
 
     #delay 3 {
-        #unvar char-Item.currentType;
+        #unvar char-Item[currentType];
         #class {ParseItems} kill;
     };
 

+ 3 - 8
plugins/basic/char/skills.tin

@@ -24,9 +24,9 @@
 #nop;
 
 #function {basic_char_skills.Init} {
-    #class char open;
+    #class data/basic/char open;
     #var char[Skills] {};
-    #class char close;
+    #class data/basic/char close;
     #return true;
 };
 
@@ -94,11 +94,7 @@
             #format enabled {false};
         };
 
-        #local key {};
-        #format key {char[Skills][%s]} {$name};
-
-        #class char open;
-        #var {$key} {
+        #var {char[Skills][$name]} {
             {name}{$name}
             {type}{$type}
             {enabled}{$enabled}
@@ -107,7 +103,6 @@
             {level}{$level}
             {limit}{$limit}
         };
-        #class char close;
 
         #line gag;
     };

+ 1 - 1
plugins/basic/char/status.tin

@@ -2,7 +2,7 @@
 
 load-lib event;
 
-event.Define {char/status}    {无参}  {char/status} {已经获取到 status_me 命令输出结果,并更新 char[STATUS]。};
+event.Define {char/status}    {无参}  {$MODULE} {已经获取到 status_me 命令输出结果,并更新 char[STATUS]。};
 
 #nop ╭────个人状态────┬────┬──────┬────┬──────┬────┬─────╮;
 #nop │姓名    │马后炮      │ID    │Mhp         │级别    │32          │战斗力  │104611      │;

+ 10 - 3
plugins/lib/event.tin

@@ -1,18 +1,25 @@
 #nop vim: set filetype=tt:;
 
 /*
-模块名称:事件驱动编程
-模块说明:提供基本的事件驱动编程 API,允许用户定义、发射、订阅事件
-版权声明:本文件属于 PaoTin++ 的一部分
+本文件属于 PaoTin++ 的一部分
 ===========
 PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
 ===========
 */
 
+#var lib_event[META] {
+    {NAME}      {事件驱动编程框架}
+    {DESC}      {提供基本的事件驱动编程 API,允许用户定义、发射、订阅事件}
+    {AUTHOR}    {担子炮}
+    {NOTE}      {本文件属于 PaoTin++ 的一部分}
+};
+
 #function {lib_event.Init} {
+    #class data/lib/event open;
     #var gEventHandlers {};
     #var gValidEvent    {};
+    #class data/lib/event close;
 
     #return true;
 };

+ 8 - 8
plugins/lib/gmcp.tin

@@ -10,10 +10,10 @@ PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 load-lib telnet;
 load-lib event;
 
-event.Define {GMCP.Move}    {无参} {GMCP} {接收到 GMCP 移动信息,已更新 gGMCP[Move]};
-event.Define {GMCP.Status}  {无参} {GMCP} {接收到 GMCP 角色状态,已更新 gGMCP[Status]};
-event.Define {GMCP.Combat}  {无参} {GMCP} {接收到 GMCP 战斗信息,已更新 gGMCP[Combat]};
-event.Define {GMCP.Buff}    {无参} {GMCP} {接收到 GMCP BUFF状态,已更新 gGMCP[Buff]};
+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]};
 
 #alias {gmcp.Enable} {
     #event {IAC WILL GMCP} {
@@ -30,23 +30,23 @@ event.Define {GMCP.Buff}    {无参} {GMCP} {接收到 GMCP BUFF状态,已更
 
 #alias {gmcp.Subscribe} {
     gmcp.Handle GMCP.Move {
-        #var gGMCP[Move] {%%0};
+        #line sub escape #var gGMCP[Move] {%%0};
         #var gGMCP[Move] {$gGMCP[Move][1]};
         event.Emit GMCP.Move {};
     };
 
     gmcp.Handle GMCP.Status {
-        #var gGMCP[Status] {%%0};
+        #line sub escape #var gGMCP[Status] {%%0};
         event.Emit GMCP.Status {};
     };
 
     gmcp.Handle GMCP.Combat {
-        #var gGMCP[Combat] {%%0};
+        #line sub escape #var gGMCP[Combat] {%%0};
         event.Emit GMCP.Combat {};
     };
 
     gmcp.Handle GMCP.Buff {
-        #var gGMCP[Buff] {%%0};
+        #line sub escape #var gGMCP[Buff] {%%0};
         event.Emit GMCP.Buff {};
     };
 };