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()
执行=执行+1
返回 真
功能结束
功能 逻辑型 任务2()
执行=执行+1
返回 真
功能结束
功能 逻辑型 主线任务()
如果(正在执行==1)
功能-任务1)
如果结束
如果(正在执行==2)
功能-任务2
如果结束
返回 真
功能结束
复制代码
作者:
cchao2627
时间:
2012-5-17 15:39
回复
2楼
cylhb
的帖子
函数调用,它是执行完了第一个调用的函数才执行第二个调用的函数吗?
不会像,两个线程开启在一个功能里,执行这个功能,两个线程直接开启,不等待第一线程结束,第二线程就开启了。不会有这样的问题吧?
作者:
tyuyan
时间:
2012-5-17 15:44
整型 x,y
y=0
x=0
循环(y<600)
循环(x<800)
x=x+20
辅助.等待(100)
鼠标.移动(x,y)
循环结束
x=0
y= y+30
循环结束
复制代码
作者:
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-15级的任务流程路线
功能 整型 流程线路1到15级()
//字符型 人物等级
自动升级.界面处理()
人物等级=DM.Ocr(80,82,118,118,"ffffff-000000",1.0)
//辅助.消息框(人物等级)
人物等级1=转换.字符型转整型(人物等级,0)
如果(人物等级1<6)
自动升级.宁婉儿任务()
如果结束
辅助.等待(500+辅助.随机数(0,500))
如果(5<人物等级1&&人物等级1<=7)
// 辅助.消息框("开启张守义任务")
自动升级.张守义任务()
如果结束
辅助.等待(500+辅助.随机数(0,500))
如果(8<=人物等级1&&人物等级1<11)
// 辅助.消息框("开启武道灵任务")
自动升级.武道灵任务()
如果结束
如果(10<=人物等级1)
// 辅助.消息框("成都任务")
自动升级.成都任务()
如果结束
返回 0
功能结束
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ //此功能主要针对蜀山宁婉儿发布的任务
功能 整型 宁婉儿任务() //所有任务都是按照最短路径排序
自动升级.前处理()
如果(!功能块.找字真假(705,266,925,318,"侠|义","f7f731-000000")) //判断是否有任务,通过侠义字体确定
辅助.等待(200+辅助.随机数(0,100))
自动升级.打开寻路("宁婉儿")
辅助.等待(500+辅助.随机数(100,500))
自动升级.接任务("") //接取一个1级人物能接的任务
如果结束
如果(功能块.找字真假(700,265,932,407,"豪猪","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
自动升级.任务对话("豪猪","") //第一个任务 ,打5个豪猪
如果结束
如果(!功能块.找字真假(705,266,925,318,"侠|义","f7f731-000000")) //判断是否有任务,通过侠义字体确定
辅助.等待(500+辅助.随机数(100,500))
自动升级.打开寻路("宁婉儿")
辅助.等待(500+辅助.随机数(100,500))
自动升级.接任务("") //接取后面几个3级人物能接的任务
如果结束
如果(功能块.找字真假(700,265,932,407,"蜀山","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
循环(功能块.找字真假(693,262,928,543,"蜀山","00ffff-000000"))//第二、三个任务 ,跟蜀山剑派技能大师、杂货商人对话
自动升级.任务对话("蜀山","")
循环结束
如果结束
如果(!功能块.找字真假(700,265,932,407,"张守义","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
自动升级.打开寻路("宁婉儿")
辅助.等待(500+辅助.随机数(100,500))
自动升级.接任务("新的任务") //接取最后一个任务,到达NPC张守义
如果结束
如果(功能块.找字真假(700,265,932,407,"豪猪王","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
自动升级.任务对话("豪猪王","") //第四个任务 ,打1个豪猪王
如果结束
如果(功能块.找字真假(700,265,932,407,"白|狐","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
循环(功能块.找字真假(693,262,928,543,"白|狐","00ffff-000000"))
自动升级.任务对话("白|狐","") //第五个任务 ,打白狐,同时获得狐珠,完成狐珠任务
循环结束
如果结束
如果(功能块.找字真假(700,265,932,407,"铁剑","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
自动升级.任务对话("铁剑","") //第六个任务 ,打早武器 “铁剑”
如果结束
如果(功能块.找字真假(700,265,932,407,"张守义","00ffff-000000"))
辅助.等待(500+辅助.随机数(100,500))
自动升级.过地图判断任务() //第七个任务 ,与驿站外张守义对话
如果结束
返回 0
功能结束
复制代码
慢慢看
都时候功能函数,将就用吧
作者:
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