TC官方合作论坛

标题: 主线任务脚本问题~~~~~~~主线任务脚本问题~~~~~~~ [打印本页]

作者: cchao2627    时间: 2012-5-17 15:20
标题: 主线任务脚本问题~~~~~~~主线任务脚本问题~~~~~~~
主线任务脚本,比如1到30级的主线任务脚本,会有很多个任务组成,但是把这么多个任务同时写在一个功能里面,这样代码会很难看,很长,很乱,不易维护和更新。有什么法子,把每个任务都写成一个功能,再让另一个功能把每个任务功能按顺序的执行下去?
求方法~~~~
比如
功能 逻辑型 任务1()
xxxxxxxxxxxxxxxx
返回 真
功能结束

功能 逻辑型 任务2()
xxxxxxxxxxxxxxxx
返回 真
功能结束

功能 逻辑型 主线任务()

(功能-任务1)
(功能-任务2)

返回 真
功能结束
有那个函数能这样执行?

作者: cylhb    时间: 2012-5-17 15:25
功能 逻辑型 主线任务()
   空间名.任务1()
   空间名.任务2()
返回 真
功能结束

直接按顺序调用下去就OK了
如果不考虑出错之类的情况的话..
作者: tyuyan    时间: 2012-5-17 15:36

  1. 整型 执行
  2. 功能 逻辑型 任务1()
  3. 执行=执行+1
  4. 返回 真
  5. 功能结束

  6. 功能 逻辑型 任务2()
  7. 执行=执行+1
  8. 返回 真
  9. 功能结束

  10. 功能 逻辑型 主线任务()
  11.      如果(正在执行==1)
  12.              功能-任务1)
  13.      如果结束
  14.      如果(正在执行==2)
  15.             功能-任务2
  16.      如果结束
  17. 返回 真
  18. 功能结束
复制代码


作者: cchao2627    时间: 2012-5-17 15:39
回复 2楼cylhb的帖子

函数调用,它是执行完了第一个调用的函数才执行第二个调用的函数吗?
不会像,两个线程开启在一个功能里,执行这个功能,两个线程直接开启,不等待第一线程结束,第二线程就开启了。不会有这样的问题吧?
作者: tyuyan    时间: 2012-5-17 15:44
  1. 整型 x,y
  2. y=0
  3. x=0
  4. 循环(y<600)
  5. 循环(x<800)
  6. x=x+20
  7. 辅助.等待(100)
  8. 鼠标.移动(x,y)
  9. 循环结束
  10. x=0
  11. y= y+30
  12. 循环结束
复制代码


作者: cchao2627    时间: 2012-5-17 15:48
回复 5楼tyuyan的帖子

这个是发错了吧?
作者: tyuyan    时间: 2012-5-17 15:50
  是的 。  帮另外一个解答的。。 纠结啊
作者: cylhb    时间: 2012-5-17 16:05
如果不开启子线程.
那么函数调用之后,直到返回 语句,才执行下一跳语句
比如:
          空间名.任务1()
          辅助.消息框("OK")

只有在任务1() 执行到 返回 ,才会输出OK.
作者: yangkai135    时间: 2012-5-17 16:28
回复 2楼cylhb的帖子

顶起来
作者: 花开花落    时间: 2012-5-17 16:44
来看看  学习
作者: 落叶归根    时间: 2012-5-17 16:52
学习了啊!
作者: cchao2627    时间: 2012-5-17 18:28
回复 8楼cylhb的帖子

还有一个问题~!
就是调用函数厚。子函数和函数间的联系问题。
比如:
功能 逻辑型 任务1()
xxxxxxxx
返回 真
功能结束

功能 逻辑型 主线任务()
dm.BinWindow(A,"normal","normal","normal",0)
空间名.任务1()
返回 真
功能结束

我在主线任务这个功能中大漠绑定了窗口,在子功能中是否也是有效的?
如果无效,就麻烦了。。
作者: cylhb    时间: 2012-5-17 18:30
大漠绑定 在同一线程内有效..

按你这么写,是有效的....
作者: cchao2627    时间: 2012-5-17 18:47
嗯.太感谢了。
作者: ksap787523    时间: 2012-5-17 18:54
回复 1楼cchao2627的帖子

理想化情况是可以这样处理的,但是你得考虑掉线、卡屏、电脑卡或者玩家中间自己暂停之类的,多加几个判断就OK了,我给你看下我写的大唐无双自动升级的部分功能代码,希望对你有点用,我这个代码,目前支持如何情况下的暂停、卡屏,可以从任何位置开始任务.............
  1. //1-15级的任务流程路线
  2. 功能 整型 流程线路1到15级()
  3. //字符型 人物等级
  4. 自动升级.界面处理()
  5. 人物等级=DM.Ocr(80,82,118,118,"ffffff-000000",1.0)
  6. //辅助.消息框(人物等级)
  7. 人物等级1=转换.字符型转整型(人物等级,0)
  8. 如果(人物等级1<6)
  9. 自动升级.宁婉儿任务()
  10. 如果结束
  11. 辅助.等待(500+辅助.随机数(0,500))
  12. 如果(5<人物等级1&&人物等级1<=7)
  13. //    辅助.消息框("开启张守义任务")
  14. 自动升级.张守义任务()
  15. 如果结束
  16. 辅助.等待(500+辅助.随机数(0,500))

  17. 如果(8<=人物等级1&&人物等级1<11)
  18. //    辅助.消息框("开启武道灵任务")
  19. 自动升级.武道灵任务()
  20. 如果结束
  21. 如果(10<=人物等级1)
  22. //    辅助.消息框("成都任务")   
  23. 自动升级.成都任务()
  24. 如果结束
  25. 返回 0
  26. 功能结束

  27. //◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆  //此功能主要针对蜀山宁婉儿发布的任务
  28. 功能 整型 宁婉儿任务()    //所有任务都是按照最短路径排序
  29. 自动升级.前处理()
  30. 如果(!功能块.找字真假(705,266,925,318,"侠|义","f7f731-000000"))  //判断是否有任务,通过侠义字体确定
  31. 辅助.等待(200+辅助.随机数(0,100))
  32. 自动升级.打开寻路("宁婉儿")
  33. 辅助.等待(500+辅助.随机数(100,500))
  34. 自动升级.接任务("")     //接取一个1级人物能接的任务
  35. 如果结束
  36. 如果(功能块.找字真假(700,265,932,407,"豪猪","00ffff-000000"))
  37. 辅助.等待(500+辅助.随机数(100,500))
  38. 自动升级.任务对话("豪猪","")  //第一个任务 ,打5个豪猪
  39. 如果结束
  40. 如果(!功能块.找字真假(705,266,925,318,"侠|义","f7f731-000000"))  //判断是否有任务,通过侠义字体确定
  41. 辅助.等待(500+辅助.随机数(100,500))
  42. 自动升级.打开寻路("宁婉儿")
  43. 辅助.等待(500+辅助.随机数(100,500))
  44. 自动升级.接任务("")    //接取后面几个3级人物能接的任务
  45. 如果结束
  46. 如果(功能块.找字真假(700,265,932,407,"蜀山","00ffff-000000"))
  47. 辅助.等待(500+辅助.随机数(100,500))
  48. 循环(功能块.找字真假(693,262,928,543,"蜀山","00ffff-000000"))//第二、三个任务 ,跟蜀山剑派技能大师、杂货商人对话
  49. 自动升级.任务对话("蜀山","")  
  50. 循环结束
  51. 如果结束
  52. 如果(!功能块.找字真假(700,265,932,407,"张守义","00ffff-000000"))
  53. 辅助.等待(500+辅助.随机数(100,500))
  54. 自动升级.打开寻路("宁婉儿")
  55. 辅助.等待(500+辅助.随机数(100,500))
  56. 自动升级.接任务("新的任务")   //接取最后一个任务,到达NPC张守义
  57. 如果结束
  58. 如果(功能块.找字真假(700,265,932,407,"豪猪王","00ffff-000000"))
  59. 辅助.等待(500+辅助.随机数(100,500))
  60. 自动升级.任务对话("豪猪王","")  //第四个任务 ,打1个豪猪王
  61. 如果结束
  62. 如果(功能块.找字真假(700,265,932,407,"白|狐","00ffff-000000"))
  63. 辅助.等待(500+辅助.随机数(100,500))
  64. 循环(功能块.找字真假(693,262,928,543,"白|狐","00ffff-000000"))
  65. 自动升级.任务对话("白|狐","") //第五个任务 ,打白狐,同时获得狐珠,完成狐珠任务
  66. 循环结束
  67. 如果结束
  68. 如果(功能块.找字真假(700,265,932,407,"铁剑","00ffff-000000"))
  69. 辅助.等待(500+辅助.随机数(100,500))
  70. 自动升级.任务对话("铁剑","")  //第六个任务 ,打早武器 “铁剑”
  71. 如果结束
  72. 如果(功能块.找字真假(700,265,932,407,"张守义","00ffff-000000"))
  73. 辅助.等待(500+辅助.随机数(100,500))
  74. 自动升级.过地图判断任务()  //第七个任务 ,与驿站外张守义对话
  75. 如果结束
  76. 返回 0
  77. 功能结束
复制代码


慢慢看 都时候功能函数,将就用吧
作者: cchao2627    时间: 2012-5-17 20:16
回复 15楼ksap787523的帖子

你给的这段代码对我帮助也很大。谢谢拉
作者: ksap787523    时间: 2012-5-18 08:17
回复 16楼cchao2627的帖子

自己多考虑下,总有办法的,不外乎就是看自己手动的时候是怎么想的,写出来就行了
作者: sunlala1    时间: 2013-8-8 21:14
来看看  学习




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1