hukena 发表于 2025-7-9 06:28:35

[paotin]请问怎么屏蔽其他人接任务时对自己触发的影响

paotin萌新请教,在做门派任务时,有其他人接任务,npc说的话触发了我的机器人,扰乱了正在做的任务。有什么方法可以屏蔽或者解决吗?

wangshiyan 发表于 2025-7-9 14:03:27

本帖最后由 wangshiyan 于 2025-7-9 02:10 PM 编辑

比较老实的办法是用class来解决,个人理解class这个东西至少在前期就是为了解决误触的。
简单说就是在第一层先匹配{^你向冲虚道长打听有关『quest』的消息。$}。这里的关键,主语得是“你”。而其他人索要任务时的反馈信息,主语肯定不是“你”,则其他人的信息就无法匹配了。
然后,当上述第一层匹配好了,冲虚再说“武当剑阵”啦“俞老三爱丹”啦这些就肯定是冲着你说的,把它们分别做好class即可。
至于为什么第二层要做class,答案是当次匹配后便于销毁,以免残留物影响到下一次。
不学一下class,上述有些句子可能听不太懂。给个模板供参考:
#action {^你向冲虚道长打听有关『quest』的消息。$} {
    okLog 要任务的第一层匹配到了;
    #class quest-details open;
    #action {^我们就从最简单的五行阵开始吧,旁边小校场上有教习教大家怎么行走五行阵。」$} {
      okLog 阵法任务匹配到了;
      #class quest-details kill;
      goto-zhenfa;
    };
    #action {^冲虚道长说道:「武当三侠最近迷上了炼丹,需要一个道童帮他看守丹炉,你到俞岱岩那里帮他看看炉火吧。」$} {
      okLog 炼丹任务匹配到了;
      #class quest-details kill;
      goto-liandan;
    };从这里可以看出,如果身边还有另一个玩家叫做“HeSheIt”,也在索要任务,则该玩家索要任务的反馈是“HeSheIt向冲虚道长打听有关『quest』的消息。”,于是不会触发这个代码的第一层。那么冲虚向该玩家继续叨叨的“武当剑阵”啦“俞老三爱丹”啦……由于是处于第二层的,第一层都没触发的情况下根本不会触发第二层,于是你实现了目标。
除了这个原理上就很稳定的class以外,paotin还提供了一个比较现成且好玩的轮子,叫做ask.About,也建议了解一下,它也挺能规避误触。

wendaokoujin 发表于 2025-7-9 14:20:53

简单的,可以加一个变量,比如你问一个任务,把变量设置成true,然后触发的时候先判断这个变量,如果这个变量为true再触发。比如
#action {^你向韩世忠打听有关『job』的消息} {#var han.var 1}
#action {^韩世忠说道:「我听说有一群异族奸细在%*的%*附近出没,你去打探(datan)一下,必须要留下一两个奸细,给他们一个教训。」} {
    #if { $han.var == 1} { #var han.var 0; prompt.Set {{note}{韩世忠: %1 的 %2}}; #var map.location %2; s;out;s;w;w; #delay 1 {xx %1} };
}

hrlxiao 发表于 2025-7-9 20:19:07

wendaokoujin 发表于 2025-7-9 02:20 PM
简单的,可以加一个变量,比如你问一个任务,把变量设置成true,然后触发的时候先判断这个变量,如果这个变 ...

这个好这个好,收藏了,谢谢
另外想请问一下大神,我想做个战斗中气势超过12%就pfm应该怎么做呢?
哪怕直接复制气势达到12%的那句话依然不触发…还请赐教谢谢

wendaokoujin 发表于 7 天前

hrlxiao 发表于 2025-7-9 08:19 PM
这个好这个好,收藏了,谢谢
另外想请问一下大神,我想做个战斗中气势超过12%就pfm应该怎么做呢?
哪怕直 ...

#action {^你在攻击中不断积蓄攻势。(气势:%*%)} {
    #if { $is.combat == 0} {
      p;
    };
    combat.perform %1;
}

FYI

hrlxiao 发表于 7 天前

wendaokoujin 发表于 2025-7-10 06:15 AM
FYI

太谢谢您了

hrlxiao 发表于 6 天前

不好意思,想再请教一下,我按照韩世忠任务触发改的纪晓芙任务为啥触发不了…是哪里出了问题吗..

#action {^你向纪晓芙打听有关『job』的消息} {#var ji.var 1}
#action {^纪晓芙在你耳边轻声说道: “据说他们会在%*的%*密谋。”} {
    #if { $ji.var == 1} { #var ji.var 0; prompt.Set {{note}{纪晓芙: %1 的 %2}}; #var map.location %2; out;ed;se;e;se;#4 e; #delay 1 {gt %1} };}

wendaokoujin 发表于 6 天前

hrlxiao 发表于 2025-7-11 02:12 AM
不好意思,想再请教一下,我按照韩世忠任务触发改的纪晓芙任务为啥触发不了…是哪里出了问题吗..

#action...

#action {据说他们会在%*的%*密谋}{prompt.Set {{note}{纪晓芙: %1的%2}};#delay 2 {jxfb;#var map.location %2;sync.Wait {xx %1}}}

hrlxiao 发表于 6 天前

wendaokoujin 发表于 2025-7-11 07:12 AM


感谢
页: [1]
查看完整版本: [paotin]请问怎么屏蔽其他人接任务时对自己触发的影响