| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #nop vim: set filetype=tt:;
- /*
- 本文件属于 PaoTin++ 的一部分。
- PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
- 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
- */
- #var basic_char_loyalty[META] {
- {NAME} {门忠任务}
- {DESC} {解析 loyalty 命令的输出结果,方便玩家使用}
- {NOTE} {重载了两个命令,mz 不 gag,loyalty 会 gag,两个命令的结果都会被解析}
- {AUTHOR} {担子炮}
- };
- event.Define {char/loyalty} {无参} {$MODULE} {门忠任务查询结果已更新,内容在变量 gLoyalty 中};
- VAR {门忠任务查询结果} gLoyalty {};
- VAR {门忠任务状态} loyalty.Status {};
- /*
- loyalty 本来就有两个别名:
- 1. loyalty 长一些,不方便输入,用的较少,因此重定义其行为,默认屏蔽系统输出。
- 2. mz 短一些,平时用的比较多,则不屏蔽系统输出,以免影响玩家使用习惯。
- */
- #alias {mz list} {mz.List nogag};
- #alias {loyalty list} {mz.List gag};
- #action {@re.TableHeader{门忠任务列表(共%*项){|💎}}} {
- #var gLoyalty {};
- mz.parse;
- };
- #alias {mz.parse} {
- #class mz.parse open;
- #alias {mz.parse.desc} {
- #local last {&gLoyalty[]};
- #if { $last <= 0 } {
- #return;
- };
- #switch {"$gLoyalty[$last][类型]/$gLoyalty[$last][描述]"} {
- #match {"教训/%*的%*(%*)%s一点教训(attack)。"} {
- #var gLoyalty[$last][房间] {&1};
- #var gLoyalty[$last][姓名] {&2};
- #var gLoyalty[$last][NPC] {@str.ToLower{&3}};
- #var gLoyalty[$last][描述] {};
- };
- #match {"杀死/%*的%*(%*)%s。"} {
- #var gLoyalty[$last][房间] {&1};
- #var gLoyalty[$last][姓名] {&2};
- #var gLoyalty[$last][NPC] {@str.ToLower{&3}};
- #var gLoyalty[$last][描述] {};
- };
- #match {"找到/%*(%*)%s,送给%*的%*(%*)%s。%*描述大致如下:%*"} {
- #var gLoyalty[$last][物品] {&1};
- #var gLoyalty[$last][ID] {@str.ToLower{&2}};
- #var gLoyalty[$last][房间] {&4};
- #var gLoyalty[$last][姓名] {&5};
- #var gLoyalty[$last][NPC] {@str.ToLower{&6}};
- #var gLoyalty[$last][描述] {&9};
- };
- #match {"留言/%*留言如下内容:「%*」"} {
- #var gLoyalty[$last][留言板] {&1};
- #var gLoyalty[$last][内容] {&2};
- #var gLoyalty[$last][描述] {};
- };
- #default {
- errLog 未知格式。;
- };
- };
- };
- #action {^│%s%d%s│要求给%*│%s%d%s│%*│$} {
- mz.parse.desc;
- #var gLoyalty[%%2] {
- {序号} {%%2}
- {类型} {教训}
- {描述} {@str.Trim{%%4}}
- {积分} {%%6}
- {时间} {@str.Trim{%%8}}
- };
- };
- #action {^│%s%d%s│要求到%*│%s%d%s│%*│$} {
- mz.parse.desc;
- #var gLoyalty[%%2] {
- {序号} {%%2}
- {类型} {留言}
- {描述} {@str.Trim{%%4}}
- {积分} {%%6}
- {时间} {@str.Trim{%%8}}
- };
- };
- #action {^│%s%d%s│要求{找到|杀死}%*│%s%d%s│%*│$} {
- mz.parse.desc;
- #var gLoyalty[%%2] {
- {序号} {%%2}
- {类型} {%%4}
- {描述} {@str.Trim{%%5}}
- {积分} {%%7}
- {时间} {@str.Trim{%%9}}
- };
- };
- #action {^│%s│%*│%s│%s│$} {
- #local len {&gLoyalty[]};
- #cat gLoyalty[$len][描述] {@str.Trim{%%2}};
- };
- #action {^│基础奖励是指未将丹心状态和门忠日影响纳入考虑的原始奖励,你现在就可以接到%*│$} {
- #var loyalty.Status[CD] {0};
- };
- #action {^│基础奖励是指未将丹心状态和门忠日影响纳入考虑的原始奖励,你还需要%d秒才可以%*│$} {
- #var loyalty.Status[CD] {%%1};
- };
- #action {^│%*。本周的门忠日是星期%*和星期%*。%s│$} {
- #var loyalty.Status[day1] {星期%%2};
- #var loyalty.Status[day2] {星期%%3};
- };
- #action {^╰─{(─)+}───%S────╯$} {
- mz.parse.desc;
- };
- ga.ClassWait {
- #delay 0 {okLog 门忠任务信息已更新。};
- #class mz.parse kill;
- event.Emit char/loyalty;
- };
- #class mz.parse close;
- };
- #alias {mz.List} {
- #local gag {@default{%1;nogag}};
- #class mz.parse open;
- #local ID {|ID=basic/char};
- #action {^你找到%*,ask门忠任务就可以接到门忠任务了。{$ID}$} {
- okLog 尚未接到任何门忠任务。;
- #class mz.parse kill;
- };
- #if { "$gag" == "gag" } {#gag {^%*{$ID}$}};
- #class mz.parse close;
- xtt.Send {loyalty list};
- };
|