TC官方合作论坛

标题: 求助,萌新,新写的一个挂机程序,有毛病,请大神来指... [打印本页]

作者: lxy7336483    时间: 2018-5-8 22:55
标题: 求助,萌新,新写的一个挂机程序,有毛病,请大神来指...
大概就是先定义一个找色,如果找不到就一直循环按向上还有S键挂机,但只要游戏回合结束切换到一个界面找到那个颜色就执行。 现在感觉执行最后一个while(true)之前都没有问题,就是在游戏内挂机时(也就是从最后一个 while(true)开始)有俩问题
1、循环只按S键,向上的键不给按,而且感觉按S键的时候也间隔了挺长时间,
2、在循环完以后找到颜色了鼠标移动不给执行。请问大神们这是为什么?
3、我想让执行最最后一个 while(true)之后再循环一直执行整个程序,应该怎么办?
以上就是我的问题,请大神指教。


var 线程ID
//从这里开始执行
function 执行()
//这里添加你要执行的代码

mousemove(515,494)
sleep(1000)
mouseleftclick(1)
sleep(500)
mouseleftclick(1)
sleep(1100)
mousemove(915,392)
sleep(2000)
mouseleftclick(1)

while(true)
var x=-1,y=-1
var ret=findcolor(430,429,628,516,"1F1F1F",1.0,0,x,y)
if(ret>=0)
sleep(1000)
mousemove(x,y)
sleep(1000)
mouseleftclick(1)
sleep(10000)
mousemove(496,729)
sleep(3000)
mouseleftclick(1)
sleep(10000)
end
end


while(true)
var x=-1,y=-1
var ret=findcolor(475,777,557,790,"BD4E5D",1.0,0,x,y)
if(ret=0)
mousemove(521,705)
sleep(1500)
mouseleftclick(1)
sleep(4000)
mouseleftclick(1)
else
keydown(38,3)
keyup(38)
keypress(83,2)

end

end


end




//启动_热键操作
function 启动_热键()
线程ID=threadbegin("执行","")
end


//终止热键操作
function 终止_热键()
threadclose(线程ID)
end



作者: chen71512    时间: 2018-5-9 01:07
1:你的第一个循环体内没有跳出指令,是一个死循环,不明白是怎样能跳出到能执行第2个循环体的?
2:第2个循环体下 if(ret>=0),这里应该这样写.
3:第2个循环体下,按键之间需要加入延时,一般如果可以用"按键"可以解决的,就不需要用"按下,弹起"来解决.同时第2个循环体也是死循环,没有跳出.
4:在代码外面再套一个大循环就可以一直执行这个函数了.

作者: lxy7336483    时间: 2018-5-11 09:55
lxy7336483 发表于 2018-5-11 09:54
大概循环已经做好,现在可以持续循环,还是有两个问题。
1、最后一个循环,现在还是不一直按38号键,我就想 ...

上边写错了,应该是keydown(38)
作者: chen71512    时间: 2018-5-11 12:02
lxy7336483 发表于 2018-5-11 09:54
大概循环已经做好,现在可以持续循环,还是有两个问题。
1、最后一个循环,现在还是不一直按38号键,我就想 ...

1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可自行调试该延时值,一般500-1000就足够.

2:看你的代码意思,找到色后和找不到色后的判断操作是应该这样写了,并且看你找色的范围比较小,所耗的时间是忽略的.如果你觉得程序运行缓慢,可在硬件或其他延时代码处找原因.

PS:for循环只是可以精确的控制你的循环次数,现在你的代码功能下无此需要.
作者: lxy7336483    时间: 2018-5-11 14:40
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

后来也试了试在弹起后边加延迟,但是感觉它就没有自动按38,好像延迟完以后直接去按的83……
作者: lxy7336483    时间: 2018-5-11 14:54
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

是否可以加入“继续语句”加速循环速度,如果能加应该怎样加?
作者: lxy7336483    时间: 2018-5-11 15:14
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

测试了,38键还是没有按下

键盘按下(38)
等待(1000)
键盘弹起(38)

我想让它按下38键持续时间长点(比如说:延长10秒),应该在哪里加什么命令,是在键盘弹起下边加等待吗?

作者: lxy7336483    时间: 2018-5-11 15:42
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

刚才新建了一个试了试,我其实就想让它一直死按着38不放一会,应该用什么命令呢,刚才试了试,只用keydown也不行。是不是我命令用错了?
作者: hao1210119    时间: 2018-5-21 09:37
这个问题很简单需要的话加我我给你说




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