#nop vim: set filetype=tt:; /* 本文件属于 PaoTin++ 的一部分 =========== PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp ) 享有并保留一切法律权利 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。 =========== */ #var bot_pp[META] { {NAME} {PP机器} {DESC} {传音搜魂,PP 查人} {AUTHOR} {担子炮} }; VAR {PP 结果,NPC 位置} gPPResponse {}; load-lib event; load-lib option; option.Define {PPBotListPrivate} {String} {私有PP大米列表} {}; option.Define {PPBotListPublic} {String} {可信的公共PP大米列表} {%*}; event.Define {pp/Response} {无参} {$MODULE} {已经获取到 PP 结果,并更新到 gPPResponse 全局变量。}; #func {bot_pp.Init} { #return true; }; ///=== { // ## pp.Find <角色 ID> // 利用公共 PP 服务查询某个 ID。 // }; #alias {pp.Find} { #local id {%0}; chat.TuneOn helpme; helpme; helpme find $id; }; ///=== { // ## pp.FindQuietly <角色 ID> // 利用私有 PP 服务查询某个 ID。 // }; #alias {pp.FindQuietly} { #local id {%0}; #local bot {}; #local ppList {@option.Get{PPBotListPrivate}}; #foreach {$ppList} {bot} { tell $bot find $id; }; }; ///=== { // ## pp.FindByMyself <角色 ID> // 利用自己的 PP 特技查询某个 ID。 // }; #alias {pp.FindByMyself} { #local id {%0}; #class pp.FindByMyself open; #local ID {|ID=bot/pp}; #action {^不要频繁的查询,谢谢!{$ID}$} { #class pp.FindByMyself kill; #delay pp.FindByMyself.retry {pp.FindByMyself %0} 1; }; #action {^你默运玄功,将功力聚集于耳目,顿时觉得灵台一片空明。{$ID}$} { #class pp.FindByMyself kill; pp.FindByMyself.parse; #nop; }; #nop PP 对象不存在; #action {^现在没这个人。{$ID}$} { #class pp.FindByMyself kill; #showme {$char[档案][大名]($user[id])告诉你:据我所查,【%0】已不在人世了}; }; #action {^你的精力不够,无法感应别人的位置。{$ID}$} { #class pp.FindByMyself kill; errLog 精力不足,无法查询。; }; #alias {pp.FindByMyself.parse} { #class pp.FindByMyself open; #action {^你掐指一算,感觉%*(%*)现在好象在%*的%*一带活动。$} { #class pp.FindByMyself kill; #local name {%%%1}; #local qid {%%%2}; #local area {%%%3}; #local room {%%%4}; #format qid {%l} {$qid}; #showme {$char[档案][大名]($user[id])告诉你:【$name($qid)】目前在【$area的$room】,快去摁死它吧!}; }; #action {^你费了半天的力气,就是感应不出%*的位置。$} { #class pp.FindByMyself kill; }; #action {^你费了半天的力气,完全无法感应出%*的位置。$} { #class pp.FindByMyself kill; }; #action {^你费了半天的力气,完全感应不出任何状况。$} { #class pp.FindByMyself kill; }; #action {^此人已经隐姓埋名,你费了半天的力气,就是感应不出其位置。$} { #class pp.FindByMyself kill; }; #class pp.FindByMyself close; }; #class pp.FindByMyself close; perceive $id; }; #alias {pp} { #local id {%0}; #if { &char.Special[传音搜魂][] > 0 } { pp.FindByMyself $id; }; #local ppList {@option.Get{PPBotListPrivate}}; #if { "$ppList" != "" } { pp.FindQuietly $id; }; #else { pp.Find $id; }; }; #action {^你告诉%S:find $user[id]$E} {#line gag}; #action {^%S(%S)告诉你:【%S(%S)】目前在【%S的%S】,快去摁死它吧!$E} { #local tell {%2}; #local name {%3}; #local id {%4}; #local area {%5}; #local room {%6}; #local ppList {@option.Get{PPBotListPrivate};@option.Get{PPBotListPublic}}; #local pp {}; #foreach {$ppList} {pp} { #if { "$tell" == "$pp" } { #var gPPResponse[$id] { {id}{$id} {name}{$name} {area}{$area} {room}{$room} }; event.DelayEmit pp/Response; #return; }; }; warnLog 不可信的 PP 应答,简单忽略。; };