北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 77|回复: 4

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

[复制链接]
发表于 昨天 06:28 AM | 显示全部楼层 |阅读模式
paotin萌新请教,在做门派任务时,有其他人接任务,npc说的话触发了我的机器人,扰乱了正在做的任务。有什么方法可以屏蔽或者解决吗?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 昨天 02:03 PM | 显示全部楼层
本帖最后由 wangshiyan 于 2025-7-9 02:10 PM 编辑

比较老实的办法是用class来解决,个人理解class这个东西至少在前期就是为了解决误触的。
简单说就是在第一层先匹配{^你向冲虚道长打听有关『quest』的消息。$}。这里的关键,主语得是“你”。而其他人索要任务时的反馈信息,主语肯定不是“你”,则其他人的信息就无法匹配了。
然后,当上述第一层匹配好了,冲虚再说“武当剑阵”啦“俞老三爱丹”啦这些就肯定是冲着你说的,把它们分别做好class即可。
至于为什么第二层要做class,答案是当次匹配后便于销毁,以免残留物影响到下一次。
不学一下class,上述有些句子可能听不太懂。给个模板供参考:
  1. #action {^你向冲虚道长打听有关『quest』的消息。$} {
  2.     okLog 要任务的第一层匹配到了;
  3.     #class quest-details open;
  4.     #action {^我们就从最简单的五行阵开始吧,旁边小校场上有教习教大家怎么行走五行阵。」$} {
  5.         okLog 阵法任务匹配到了;
  6.         #class quest-details kill;
  7.         goto-zhenfa;
  8.     };
  9.     #action {^冲虚道长说道:「武当三侠最近迷上了炼丹,需要一个道童帮他看守丹炉,你到俞岱岩那里帮他看看炉火吧。」$} {
  10.         okLog 炼丹任务匹配到了;
  11.         #class quest-details kill;
  12.         goto-liandan;
  13.     };
复制代码
从这里可以看出,如果身边还有另一个玩家叫做“HeSheIt”,也在索要任务,则该玩家索要任务的反馈是“HeSheIt向冲虚道长打听有关『quest』的消息。”,于是不会触发这个代码的第一层。那么冲虚向该玩家继续叨叨的“武当剑阵”啦“俞老三爱丹”啦……由于是处于第二层的,第一层都没触发的情况下根本不会触发第二层,于是你实现了目标。
除了这个原理上就很稳定的class以外,paotin还提供了一个比较现成且好玩的轮子,叫做ask.About,也建议了解一下,它也挺能规避误触。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 昨天 02:20 PM | 显示全部楼层
简单的,可以加一个变量,比如你问一个任务,把变量设置成true,然后触发的时候先判断这个变量,如果这个变量为true再触发。比如
  1. #action {^你向韩世忠打听有关『job』的消息} {#var han.var 1}
  2. #action {^韩世忠说道:「我听说有一群异族奸细在%*的%*附近出没,你去打探(datan)一下,必须要留下一两个奸细,给他们一个教训。」} {
  3.     #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} };
  4. }
复制代码


北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 昨天 08:19 PM | 显示全部楼层
wendaokoujin 发表于 2025-7-9 02:20 PM
简单的,可以加一个变量,比如你问一个任务,把变量设置成true,然后触发的时候先判断这个变量,如果这个变 ...

这个好这个好,收藏了,谢谢
另外想请问一下大神,我想做个战斗中气势超过12%就pfm应该怎么做呢?
哪怕直接复制气势达到12%的那句话依然不触发…还请赐教谢谢
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 5 分钟前 | 显示全部楼层
hrlxiao 发表于 2025-7-9 08:19 PM
这个好这个好,收藏了,谢谢
另外想请问一下大神,我想做个战斗中气势超过12%就pfm应该怎么做呢?
哪怕直 ...
  1. #action {^你在攻击中不断积蓄攻势。(气势:%*%)} {
  2.     #if { $is.combat == 0} {
  3.         p;
  4.     };
  5.     combat.perform %1;
  6. }
复制代码


FYI
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2025-7-10 06:21 AM , Processed in 0.012327 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表