TC官方合作论坛

标题: 新手求帮 小白遇到难题了 求神们的 帮忙! [打印本页]

作者: guoliang    时间: 2015-11-19 02:43
标题: 新手求帮 小白遇到难题了 求神们的 帮忙!
我写的是一个 传奇sifu  自动打怪 拾取 回收的代码 很简易的    )
现在 遇到几个难题 想求思路 和 解决方法  求好心人了!
回收的还没写出来 因为 打怪和拾取 就遇到问题了 ······
问题一  我设置了2个功能 打怪和拾取  我的思路 是打完怪物  确定死亡了 找一下 地下   拾取需要的   
            单独写  拾取和打怪都会 那么一点   但是和在一起  不会了   不知道 怎么弄  我的代码 写的 2个功能 都冲突了  都不能用了  不知道 怎么解决  
            还有怎么 鉴定怪物的死亡啊  
问题二 游戏中人物打怪和拾取的 时候 经常 卡在 某一个位子   或者鼠标  卡在 某一个位子   不能动    我的思路 是鉴定画面不动 多少秒  摁一下  随机的石头的快捷键
           来解决  但是   不会写啊·······  求帮忙啊··
问题三 我感觉的我的代码 非常 不科学  非常不效率   求大神们 帮帮忙  指点下吧
    还有一点  大神们经常提的插件什么的   一点不会  只能 用基础 代码写····   有插件什么的 教程吗?我也学学去···
半夜发帖实属无奈啊  研究了 好几天了·····  



变量 线程拾取  
变量 线程打怪

//从这里开始执行
功能 拾取()
    //从这里开始你的代码
    循环(真)
        变量 x=-1,y=-1
        变量 ret=找图(0,0,800,800,"rc:500元宝.bmp","000000",1,0,x,y)
        如果(ret>=0)
            x=x+19
            y=y+23 //x 620-599=21   y 306-283=23
            鼠标移动(x,y)
            鼠标右键单击(2)
            等待(100)
            鼠标左键单击(3)
            等待(1000)
        结束
    结束
结束
功能 自动打怪()
        循环(真)
                变量 x1=-1,y1=-1
                变量 ret1=找图(0,0,800,800,"rc:血管图全.bmp","000000",1,0,x1,y1)
                 如果(ret1>=0)
                      x1=x1+18
                      y1=y1+30
                   鼠标移动(x1,y1)
//                   鼠标右键单击(2)
//                   等待(100)
                   鼠标左键单击(2)
                   等待(7000)
                  否则
                   键盘按键(49)
                   等待(2000)
                  结束


        结束
结束

//启动_热键操作
功能 启动_热键()  
//    线程拾取=线程开启("拾取","")
    线程打怪=线程开启("自动打怪","")
结束

//终止热键操作
功能 终止_热键()
//    线程拾取=线程关闭(线程拾取)
    线程打怪=线程关闭(线程打怪)
结束



作者: cjxdn    时间: 2015-11-19 03:09
本帖最后由 cjxdn 于 2015-11-19 03:22 编辑

变量 线程拾取  
变量 线程打怪

功能 拾取()
    循环(真)
        变量 x=-1,y=-1
        变量 ret=找图(0,0,800,800,"rc:500元宝.bmp","000000",1,0,x,y)
        如果(ret>=0)//循环判断是否有物品就够了,不需要判断怪是否死亡
            线程关闭(线程打怪)//有物品拾取,先关闭打怪线程
            x=x+19
            y=y+23 //x 620-599=21   y 306-283=23
            鼠标移动(x,y)
            鼠标右键单击(2)
            等待(100)
            鼠标左键单击(3)
            等待(1000)
        否则
            变量 线程状态=线程获取状态(线程打怪)//判断是否重复开启线程,如果没开启才进行开启线程            

            如果(线程状态==0)
                线程打怪=线程开启("自动打怪","")//没物品拾取,开启打怪线程
            结束
        结束
    结束
结束
功能 自动打怪()
    循环(真)
        变量 x1=-1,y1=-1
        变量 ret1=找图(0,0,800,800,"rc:血管图全.bmp","000000",1,0,x1,y1)
        如果(ret1>=0)
            x1=x1+18
            y1=y1+30
            鼠标移动(x1,y1)
            //                   鼠标右键单击(2)
            //                   等待(100)
            鼠标左键单击(2)
            等待(7000)
        否则
            键盘按键(49)
            等待(2000)
        结束
    结束
结束

功能 启动_热键()  
    线程拾取=线程开启("拾取","")
结束

功能 终止_热键()
    线程关闭(线程拾取)
结束

我也是小白,不知道这样写对不对.

作者: 民工唐子    时间: 2015-11-19 04:07
你等待7000,也太长了吧,会导致界面卡死.弄成循环等待吧.实在不会弄,就弄一个线程,把那个等待的时间内加入判断是否拾取物品,找到了物品就去捡物品.
作者: guoliang    时间: 2015-11-19 06:29
这个 等待 还不能 时间长啊 我不知道··
作者: guoliang    时间: 2015-11-19 06:30
民工唐子 发表于 2015-11-19 04:07
你等待7000,也太长了吧,会导致界面卡死.弄成循环等待吧.实在不会弄,就弄一个线程,把那个等待的时间内加入判 ...


这个 等待 还不能 时间长啊 我不知道··    人物卡死在某i一各地方 怎么鉴定出来?··没u思路啊
作者: cjxdn    时间: 2015-11-19 06:57
guoliang 发表于 2015-11-19 06:30
这个 等待 还不能 时间长啊 我不知道··    人物卡死在某i一各地方 怎么鉴定出来?··没u思路啊 ...

这个也简单啊,你不是说可以通过
摁一下  随机的石头的快捷键
           来解决 吗
方案 如果拾取 (自己判断设置多少)5分钟内都找不到物品, 判断卡死在某一各地方了,执行 随机的石头的快捷键
作者: guoliang    时间: 2015-11-19 16:40
cjxdn 发表于 2015-11-19 06:57
这个也简单啊,你不是说可以通过
摁一下  随机的石头的快捷键
           来解决 吗

我也想了很久 决定把卡死的关键  用在 鼠标上  判断鼠标在一个坐标停留多久就定义为卡死 自动按键随机石的 快捷键      但是问题我不会写 判定鼠标不动的代码啊·····  求教教啊······
作者: guoliang    时间: 2015-11-19 18:45
cjxdn 发表于 2015-11-19 03:09
变量 线程拾取  
变量 线程打怪

你能用心回复这么多 兄弟 啥也不说了  ,代码已经拜读 ,比我的强太多了 ,我这就去试试,看看我另一个 帖子 , 是我自己又另外改的 ,你去帮帮 瞧瞧,也是这个代码 改版的。




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