#nop vim: set filetype=tt:; /* 本文件属于 PaoTin++ 的一部分。 PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp ) 享有并保留一切法律权利 你可以在遵照 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}; };