找回密码
 注册
搜索
查看: 817|回复: 11

仿semic: 自动九宫山任务

[复制链接]
门派:铁掌帮
发表于 2022-8-21 18:10:11 | 显示全部楼层 |阅读模式
本帖最后由 lhgchong@tj 于 2022-8-28 21:33 编辑

仿semic的自动烂柯山任务改的,原帖见:
http://www.sjever.net/bbs/forum.php?mod=viewthread&tid=259523

但是九宫山一直没人放出来,估计默认大家都在烂柯山基础上自己改。只好花了一个下午改了一个,适配九宫山的路径。懒人可以参考下。
想用的人先去学习semic的原帖。
这个九宫山的调整成:Mush输入/go_jgs() 即可开始。九宫山地图可能先要更新下。设计上的问题问原创大神semic。我只是改成九宫山可用。

2022.8.28补充:因为缺省是手持恢复武器,而且过江自动练功可能练技能导致激发技能不是想要的战斗技能。
我改造了一下九宫山代码。一般默认会把pkpfm设置为切换战斗武器、战斗技能 。
那就做成在九宫山下,1)先等5秒,再执行pkpfm切换战斗武器、技能
2) 再等5秒,执行原来的set_jgs_full()进山。确保装备武器,且不会flood。
用在烂柯山也可以。1楼是原版。修订版在12楼。按需参考使用。

  1. -------九宫山任务-----------------by semic
  2. function go_jgs()
  3. ysnum=0  --任务完成标记
  4. jobtarget='无'
  5. tfcnt=0
  6. return go(set_jgsjob,"九江周边","九宫山脚")
  7. end
  8. function set_jgsjob()
  9.     job.time.b=os.time()
  10.   messageShow('开始九宫山剿匪任务!')
  11.    job.name='diemenglou'
  12.    flag.idle=0
  13.       fastLocate()
  14.           DeleteTriggerGroup("jgsjob")        
  15.             create_trigger_t('jgsjob1',"^(> )*忽然一个黑影出现在你眼前。",'','jgsjob_consider')
  16.                 create_trigger_t('jgsjob2',"^(> )*(\\D*)见势不妙,身形几个起落就消失在山野之中。",'','jgsjob_goon')
  17.                 create_trigger_t('jgsjob3','^(> )*你感觉今天有点累了,还是回去休息吧','','jgsjob_finish')
  18.                 create_trigger_t('jgsjob4',"^(> )*看起来(\\D*)想杀死你!",'','jgsjob_name')
  19.         SetTriggerOption("jgsjob1","group","jgsjob")
  20.         SetTriggerOption("jgsjob2","group","jgsjob")
  21.         SetTriggerOption("jgsjob3","group","jgsjob")
  22.         SetTriggerOption("jgsjob4","group","jgsjob")
  23.         EnableTriggerGroup("jgsjob",true)
  24.        jgsjob_find()
  25.           wait.make(function()
  26.           wait.time(1)
  27.      print('设置搜索路径成功!')
  28.      jgsjob_find_back()
  29.           end)
  30. end
  31. function jgsjob_finish()
  32. tfcnt=10
  33. end
  34. function jgsjob_name(n,l,w)
  35. jobtarget=w[2]
  36. print('土匪|'..jobtarget)
  37. create_trigger_t('jgsjob5','^(> )*(.*)九宫山山贼(\\D*) '..jobtarget..'\\((\\D*)\\) <战斗中>','','jgsjob_kill')
  38.          SetTriggerOption("jgsjob5","group","jgsjob")
  39. EnableTrigger("jgsjob5",true)
  40. end
  41. function jgsjob_consider()
  42. exe('look')
  43. flag.find=1
  44. print('发现土匪!')
  45. end
  46. function jgsjob_kill(n,l,w)
  47. EnableTrigger("hpheqi1",true)
  48. EnableTrigger("jgsjob5",false)
  49. flag.find=1
  50. job.id=string.lower(w[4])
  51. print('nmae='..jobtarget)
  52. print('k='..job.id)
  53. heqi=0
  54. exe('kill '..job.id)
  55. exe('hp')
  56. kezhiwugong()
  57. kezhiwugongAddTarget(jobtarget,job.id)
  58. end
  59. function jgsjob_goon()
  60. kezhiwugongclose()
  61. heqi=0
  62. flag.idle=0
  63. flag.find=0
  64. tfcnt=tfcnt+1
  65. print('清除土匪【'..tfcnt..'】个 ,继续任务!!')
  66. if tfcnt>=10 then
  67.   print('清除土匪【'..tfcnt..'】个任务完成, 准备离开副本!')
  68.   exe('ne;nu;sd;su;nd;ne;nu;sd;ed;ed;nu;sd;sd;nu;ed;nu;sd;ed;ne;ed;wu;nd;eu;wd;say arrive entrance')
  69.   return checkWait(outjgs,2)
  70. end
  71. if jgs_path_steps<=1 then
  72. checkWait(jgsjob_move,1)
  73. elseif jgs_path_steps==2 then
  74.   checkWait(jgsjob_moveB,1)
  75. end
  76. end
  77. function outjgs()  ---leave FB
  78.     job.time.e=os.time()
  79.         job.time.over=job.time.e-job.time.b
  80. messageShow('清除土匪【'..tfcnt..'】个任务完成, 用时【'..job.time.over..'】秒!')
  81. EnableTriggerGroup("jgsjob",false)
  82. EnableTriggerGroup("hpheqi",false)
  83. fastLocate()
  84. exe('nd;y')
  85. return checkWait(checkPrepareOver,2)
  86. end
  87. function jgsjob_find()  
  88. jgs_path_steps=0
  89. tmp_jgspath=0
  90. jgsno=0
  91. local jgs_pathgo='club;eu;wd;su;ed;wu;sw;wu;nu;sd;wu;nu;sd;sd;nu;wu;wu;nu;sd;sw;nu;sd;su;nd;sw'
  92.        tmp_jgspath=utils.split(jgs_pathgo,';')
  93.        for i=1,table.getn(tmp_jgspath) do         
  94.        end           

  95. end

  96. function jgsjob_move()
  97.    if tfcnt>=10 then return checkWait(outjgs,1) end
  98.    if flag.find==1 then return end
  99.            jgs_path_steps=1  --1 go
  100. if jgsno<table.getn(tmp_jgspath) then
  101. jgsno=jgsno+1
  102. print('入山搜寻步数: '..jgsno)
  103. exe(tmp_jgspath[jgsno])
  104. else
  105. if ysnum==0 then print('返回搜索!') jgsno=0 return jgsjob_moveB() else tfcnt=10 end
  106. end
  107.           wait.make(function()
  108.           wait.time(0.6)
  109.                  jgsjob_move()
  110.           end)
  111. end
  112. -------九宫山返回遍历----------------------
  113. function jgsjob_find_back()  
  114. jgs_path_steps=1
  115. tmp_jgspathbb=0
  116. jgsno=0
  117. local jgs_pathback='ne;nu;sd;su;nd;ne;nu;sd;ed;ed;nu;sd;sd;nu;ed;nu;sd;ed;ne;ed;wu;nd;eu;wd;'
  118.        tmp_jgspathbb=utils.split(jgs_pathback,';')
  119.        for i=1,table.getn(tmp_jgspathbb) do         
  120.        end         
  121.             print('-------------进入副本开始!-------------------')
  122.                   exe('enter;y')
  123.                           wait.make(function()
  124.              wait.time(1.5)
  125.                     if flag.find==0 then return jgsjob_move() end  ---第一步遇到土匪停止搜索
  126.                 end)
  127. end
  128. function jgsjob_moveB()
  129.     job.time.e=os.time()
  130.         job.time.over=job.time.e-job.time.b
  131.    if flag.find==1 then return end
  132.            jgs_path_steps=2  --2 back
  133. if jgsno<table.getn(tmp_jgspathbb) then
  134. jgsno=jgsno+1
  135. print('返回搜寻步数: '..jgsno)
  136. exe(tmp_jgspathbb[jgsno])
  137. else
  138. if ysnum==0 then
  139. print('目前用时..【'..job.time.over..'】秒..重新搜索!')
  140. jgsno=0
  141. end
  142. if job.time.over>1800 then   ---这里设定副本超时时间为15分钟
  143. tfcnt=15
  144.    print('搜索超时,准备离开副本!')
  145.   messageShow('搜索超时,准备离开副本!')
  146. end
  147. return jgsjob_move()  
  148. end
  149.           wait.make(function()
  150.           wait.time(0.6)
  151.                  jgsjob_moveB()
  152.           end)
  153. end
复制代码


评分

1

查看全部评分

门派:武当派
发表于 2022-8-21 18:33:18 | 显示全部楼层
你这个是用的蝶梦楼的打架方式,用官府的方式会不会效率更高些?
门派:天龙寺
发表于 2022-8-21 18:35:11 | 显示全部楼层
这个看各人的喜好吧,也可以改成官府模式。
门派:武当派
发表于 2022-8-22 11:11:44 | 显示全部楼层
这倒也是,其实九宫山比较简单,怎么打都行
门派:古墓派
发表于 2022-8-23 13:00:55 | 显示全部楼层
大师兄    我想吧这个也弄成按时间启动  然后自己去任务
再logs建立了文本文档   
仿照gbzs_mark
吧你的这一窜代码  要跟再丐帮的那一部分呢
门派:古墓派
发表于 2022-8-23 13:03:55 | 显示全部楼层
function gbzs_finishc()
DeleteTriggerGroup("gbzsAsk")
road.id=nil
exe('hp')
job.name='idle'
quick_locate=0
checkBags()
dis_all()
job.time.e = os.clock()
job.time.over = job.time.e - job.time.b
messageShowT('丐帮捉蛇任务完成,用时:【'..string.format("%.2f",job.time.over)..'】秒。','gold','black')
local fn = 'logs\\gbzs_mark_'..score.id..'.log'
           local f = io.open(fn,"w")
           local s = os.date("%Y%m%d%H")
           f:write(s)
       f:close()
if hp.jingxue_per<=90 then
return check_bei(check_xue) end
return check_busy(check_food)
end

再那一部分覆盖或跟exe

或是能不能最后的end 改成exe  你的部分?
门派:天龙寺
发表于 2022-8-23 15:07:16 | 显示全部楼层
local fn = 'logs\\gbzs_mark_'..score.id..'.log'
           local f = io.open(fn,"w")
           local s = os.date("%Y%m%d%H")
           f:write(s)
       f:close()
这一段就是记录到log文件里的,日期生成。
门派:天龙寺
发表于 2022-8-23 15:07:51 | 显示全部楼层
用这个模式是可以的。  
门派:古墓派
发表于 2022-8-23 17:55:37 | 显示全部楼层
zyueyue@tj 发表于 2022-8-23 15:07
local fn = 'logs\\gbzs_mark_'..score.id..'.log'
           local f = io.open(fn,"w")
           lo ...

恩  这一段  让他记录九宫山
我想的是再抓蛇完了后  出现奖励   触发去九宫山
门派:古墓派
发表于 2022-8-23 17:56:55 | 显示全部楼层
zyueyue@tj 发表于 2022-8-23 15:07
用这个模式是可以的。

也就是说  这个只是起个记录作用
不知道怎么修改成到时间自己去抓蛇  然后奖励后  再去九宫山
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-3 04:11 , Processed in 0.048237 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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