TC官方合作论坛

 找回密码
 立即注册
楼主: lxy7336483

[已解决] 求助,萌新,新写的一个挂机程序,有毛病,请大神来指...

[复制链接]
发表于 2018-5-8 22:55:22 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大概就是先定义一个找色,如果找不到就一直循环按向上还有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


回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2018-5-11 09:55:22 | 显示全部楼层
lxy7336483 发表于 2018-5-11 09:54
大概循环已经做好,现在可以持续循环,还是有两个问题。
1、最后一个循环,现在还是不一直按38号键,我就想 ...

上边写错了,应该是keydown(38)
回复 支持 反对

使用道具 举报

发表于 2018-5-11 12:02:41 | 显示全部楼层
lxy7336483 发表于 2018-5-11 09:54
大概循环已经做好,现在可以持续循环,还是有两个问题。
1、最后一个循环,现在还是不一直按38号键,我就想 ...

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

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

PS:for循环只是可以精确的控制你的循环次数,现在你的代码功能下无此需要.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-11 14:40:09 | 显示全部楼层
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

后来也试了试在弹起后边加延迟,但是感觉它就没有自动按38,好像延迟完以后直接去按的83……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-11 14:54:08 | 显示全部楼层
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

是否可以加入“继续语句”加速循环速度,如果能加应该怎样加?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-11 15:14:41 | 显示全部楼层
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

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

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

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

使用道具 举报

 楼主| 发表于 2018-5-11 15:42:06 | 显示全部楼层
chen71512 发表于 2018-5-11 12:02
1:弹起38按键后加入延时,延时的大小根据你机器的速度不同而不同,机器实在太慢时适当加入大一点的延时.可 ...

刚才新建了一个试了试,我其实就想让它一直死按着38不放一会,应该用什么命令呢,刚才试了试,只用keydown也不行。是不是我命令用错了?
回复 支持 反对

使用道具 举报

发表于 2018-5-21 09:37:30 | 显示全部楼层
这个问题很简单需要的话加我我给你说
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-14 19:37 , Processed in 0.051965 second(s), 21 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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