找回密码
 注册
搜索
查看: 1806|回复: 22

关于pfm设置和武当任务的优化建议!$'

[复制链接]
门派:不明
发表于 2016-12-2 12:34:27 | 显示全部楼层 |阅读模式
本帖最后由 mmdnt@tj 于 2016-12-2 13:20 编辑

这是自己的一点判断,有兴趣的尝试一下!
一.关于pfm系列变量的设置
1.变量不要太长,
如我自己的:
pfmkuai  =  vv;jiali max;bei none;wield fengyun sword;jifa sword duanjia-jianfa;jifa parry qingyan-zhang;jifa strike qingyan-zhang;bei strike;perform fenglei;set action 接太祖拳
其中mud 内置alias vv = unwield blade;unwield sword;unwield whip

2.修改job.lua 文件中fight_trigger=function(),新增
create_trigger_t('fight13','^[> ]*设定环境变量:action\\s=\\s"接太祖拳"$','','pfmtzq')
SetTriggerOption("fight13","group","fight")

3.在job.lua 中新增一个函数
  1. function pfmtzq()
  2. exe('vv;jiali max;bei none;jifa cuff poyu-quan;jifa parry poyu-quan;bei cuff;perform leidong;bei none;jifa cuff taizu-quan;jifa parry taizu-quan;bei cuff;perform chong')
  3. end
复制代码


这样做的好处是防止过多过快的命令,导致积压,因为pfmtzq 是依靠触发来执行的,而从服务器响应会有一点延时,所以可以起到一定的规避作用!

如果命令还是有堆积的话,建议用mush 自带函数DoAfter,或者DoAfterSpecial 来调整,不建议用wait.make
比如修改function pfmtzq()
  1. function pfmtzq()
  2. DoAfter(1,'vv;jiali max;bei none;jifa cuff poyu-quan;jifa parry poyu-quan;bei cuff;perform leidong;bei none;jifa cuff taizu-quan;jifa parry taizu-quan;bei cuff;perform chong')  --延迟一秒后发送pfm cuff 的命令到mud
  3. end
复制代码


二.关于武当任务命令积压,请仔细看wudang 任务中的几个函数
create_trigger_t('wudangFight4',"^(> )*" .. job.target .."对着你发出一阵阴笑,说道",'','wudangKillAct')
  1. function wudangKillAct()
  2.     --DeleteTimer("wudang")
  3.     flag.robber=true
  4.     job.time.f=os.time()   -- 屁哥
  5.     --exe('kick '..job.id)   
  6.     killPfm(job.id)
  7. end
复制代码

create_trigger_t('wudangFind1','^(> )*\\D*'..job.target..'\\((\\D*)\\)','','wudangTarget')
  1. function wudangTarget(n,l,w)
  2.     EnableTriggerGroup("wudangFind",false)
  3.     dis_all()
  4.     EnableTriggerGroup("wudangFight",true)
  5.     job.id=string.lower(w[2])
  6.     job.killer[job.target]=job.id
  7.     exe('follow '..job.id)
  8.      exe('look '..job.id)
  9.     exe('unset no_kill_ap')
  10.     killPfm(job.id)
  11. end
复制代码


大致意思也就是你在search NPC 的时候如果碰到了NPC ,肯定会触发一个wudangTarget(), 这时候会下一个 killPfm(job.id) 的命令,同时因为NPC多数时候看到你都会直接叫杀,发出阴笑,所以触发wudangKillAct(),mud 又会再下一个 killPfm(job.id) 的命令,如果你的killpfm 很长的话,那么MUD 有可能一瞬间就接受超过20+的命令,肯定会溢出!

所以我略作了一些调整,
  1. function wudangTarget(n,l,w)
  2.     EnableTriggerGroup("wudangFind",false)
  3.     dis_all()
  4.     EnableTriggerGroup("wudangFight",true)
  5.     job.id=string.lower(w[2])
  6.     job.killer[job.target]=job.id
  7.     exe('follow '..job.id)
  8.      exe('look '..job.id)
  9.     exe('unset no_kill_ap')
  10.     DoAfterSpecial(1,'wudang_kill_wait()',12) --碰见NPC ,稍=1秒,如果NPC 已经叫杀了,肯定触发了wudangKillAct(),此时flag.robber = true,所以直接返回,如果没叫杀1秒之后下Killpfm ,主要是为了规避NPC 先叫杀 和 碰见NPC 同时下killpfm 的命令
  11. end
复制代码

  1. function wudang_kill_wait()
  2. if flag.robber == true then return else   
  3.      killPfm(job.id)
  4.    end
  5. end
复制代码


这样有一个延时,不会一下子发出太多命令来。

以上是个人的一点思考,也同时按照此进行了修改设置,貌似从昨天到今天武当任务因为命令积压发生逃跑的事件基本上没看到了!

评分

1

查看全部评分

门派:姑苏慕容
发表于 2016-12-2 12:36:43 | 显示全部楼层
本帖最后由 faint@tj 于 2016-12-2 13:59 编辑

你先挂机测试以下,问题多不多,没啥问题,我就用你的这个段代码更新到wdjob里面了。
门派:不明
 楼主| 发表于 2016-12-2 12:41:16 | 显示全部楼层
faint@tj 发表于 2016-12-2 12:36
代码有问题,好好改一下。

正在改呢,没在家,不方便
门派:不明
发表于 2016-12-2 12:48:45 | 显示全部楼层
能提高多少效率啊啊
门派:不明
 楼主| 发表于 2016-12-2 13:24:42 | 显示全部楼层
faint@tj 发表于 2016-12-2 12:36
代码有问题,好好改一下。

总算改完了,大昏给看看,修改修改呗!
门派:不明
 楼主| 发表于 2016-12-2 13:25:42 | 显示全部楼层
duguit@tj 发表于 2016-12-2 12:48
能提高多少效率啊啊

尽量的减少因为命令积压导致武当任务失败,缩减busy time

不一定要提高多少效率

先提高任务成功率

再考虑效率
门派:不明
 楼主| 发表于 2016-12-2 13:26:25 | 显示全部楼层
论坛好像对代码不友好,改的好辛苦
门派:少林派
发表于 2016-12-2 13:49:46 | 显示全部楼层
哇塞,大神大神                  
门派:少林派
发表于 2016-12-2 13:50:06 | 显示全部楼层
好好学习下,貌似看的有点累啊                           

门派:不明
 楼主| 发表于 2016-12-2 13:52:22 | 显示全部楼层
woshicy@tj 发表于 2016-12-2 13:50
好好学习下,貌似看的有点累啊

水僧,你一中午能弄多少TB??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-16 01:24 , Processed in 0.050370 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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