TC官方合作论坛

 找回密码
 立即注册
查看: 1184|回复: 11
打印 上一主题 下一主题

[已解决] 走进了牛角尖,来个亲帮帮!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-15 01:47:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
本帖最后由 求一夜情给管饭 于 2014-9-15 17:44 编辑

实现在6个点点击一下 然后找色  如果找到  需要返回一个值以便后面对应地图操作 以下方式好像不对,这样是不是会把6个点都赋值为1 感觉这段代码应该可以精简  那么怎么样才能判断某个点有反应并将对应的变量值更改以便后面判断操作    找色思路是    点击某个地方   然后找色   如果找到  就说明这个地方没有  继续往下找   如果没找到   就说明这个地方有  那么在对应的变量标注一下或者返回一个信号

变量 找到采集点,采集点在天=0,采集点在九=0,采集点在巴=0,采集点在中=0,采集点在江=0,采集点在雷=0
ts.MoveTo(230,375) //天
    辅助.等待(100)
    ts.LeftClick()
    辅助.等待(100)
    找到采集点 = ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
    如果(找到采集点 == 0)
        ts.MoveTo(290,360) //九
        辅助.等待(100)
        ts.LeftClick()
        辅助.等待(100)
        找到采集点 = ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
        如果(找到采集点 == 0)
            ts.MoveTo(355,280) //巴
            辅助.等待(100)
            ts.LeftClick()
            辅助.等待(100)
            找到采集点 = ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
            如果(找到采集点 == 0)
                ts.MoveTo(425,260) //中
                辅助.等待(100)
                ts.LeftClick()
                辅助.等待(100)
                找到采集点 = ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
                如果(找到采集点 == 0)
                    ts.MoveTo(500,260) //江
                    辅助.等待(100)
                    ts.LeftClick()
                    辅助.等待(100)
                    找到采集点 = ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
                    如果(找到采集点 == 0)
                        ts.MoveTo(490,325) //雷
                        辅助.等待(100)
                        ts.LeftClick()
                        辅助.等待(100)
                        找到采集点 = ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
                        如果(找到采集点 == 0)
                        否则
                            采集点在雷 = 1
                            返回 真
                        如果结束
                    否则
                        采集点在江 = 1
                        返回 真
                    如果结束
                否则
                    采集点在中 = 1
                    返回 真
                如果结束

            否则
                采集点在巴 = 1
                返回 真
            如果结束
        否则
            采集点在九 = 1
            返回 真
        如果结束
    否则
        采集点在天 = 1
        返回 真
    如果结束

回复

使用道具 举报

10#
发表于 2014-9-15 19:38:25 | 只看该作者
zsconverse 发表于 2014-9-15 19:33
功能 嘿嘿()
    ts = com("ts.tssoft")
    //首先对每个坐标点进行定义,方便下面调取

代码我没经过试验,不知道楼主玩的什么游戏,但最少没有语法上的问题
楼主自己再多调试调试吧
如果不行,也有可能是其他的原因,注意屏幕坐标和窗口坐标,还有窗口有没有绑定,游戏是否支持绑定模式
回复 支持 反对

使用道具 举报

沙发
发表于 2014-9-15 07:26:51 | 只看该作者
这一个循环不是更好吗?
用一个数组来表示各个点的名字
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-9-15 10:58:58 | 只看该作者
zsconverse 发表于 2014-9-15 07:26
这一个循环不是更好吗?
用一个数组来表示各个点的名字

能帮忙指导下怎么写吗,我也是感觉这样的,但是弄不清怎么写!
回复 支持 反对

使用道具 举报

地板
发表于 2014-9-15 11:43:35 | 只看该作者
下午给你写。现在手机打字慢
回复 支持 反对

使用道具 举报

5#
发表于 2014-9-15 12:59:14 | 只看该作者
我是新手,按要求写了个,欢迎指正。
  1. 功能 鼠标移动点击(x,y)
  2.     ts.MoveTo(x,y)
  3.     辅助.等待(100)
  4.     ts.LeftClick()
  5.     辅助.等待(500)
  6.     如果(x==230&&y==375)
  7.         返回 "采集点在天"
  8.     如果结束
  9.     如果(x==231&&y==375)
  10.         返回 "采集点在九"
  11.     如果结束
  12.     如果(x==232&&y==375)
  13.         返回 "采集点在巴"
  14.     如果结束
  15.     如果(x==233&&y==375)
  16.         返回 "采集点在中"
  17.     如果结束
  18.     如果(x==234&&y==375)
  19.         返回 "采集点在江"
  20.     如果结束
  21.     如果(x==235&&y==375)
  22.         返回 "采集点在雷"
  23.     如果结束
  24.     返回 -1
  25. 功能结束

  26. 功能 区域找色()
  27.         变量 x,y,找到采集点,计数=0
  28.     循环(真)
  29.         选择(计数)
  30.             条件 0:
  31.                                 x=230,y=375
  32.             条件 1:
  33.                                 x=231,y=375
  34.             条件 2:
  35.                                 x=232,y=375
  36.             条件 3:
  37.                                 x=233,y=375
  38.             条件 4:
  39.                                 x=234,y=375
  40.             条件 5:
  41.                                 x=235,y=375
  42.         选择结束
  43.         返回值=点击找色.鼠标移动点击(x,y)
  44.                 找到采集点=ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
  45.         如果(找到采集点!=-1&&返回值!=-1)
  46.             调试输出("找到采集点:"&返回值)
  47.         如果结束
  48.         计数++
  49.         如果(计数>5)
  50.             跳出
  51.         如果结束
  52.     循环结束
  53. 功能结束
复制代码

回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2014-9-15 17:52:02 | 只看该作者
rigwari 发表于 2014-9-15 12:59
我是新手,按要求写了个,欢迎指正。

感谢不耐其烦的打了这么多代码,但是感觉还是不对,以下我详细说明鼠标的动作,大家共同探讨;

首先,鼠标要移动到以下6个点分别点一下,
ts.MoveTo(230,375) //天
ts.MoveTo(290,360) //九
ts.MoveTo(355,280) //巴
ts.MoveTo(425,260) //中
ts.MoveTo(500,260) //江
ts.MoveTo(490,325) //雷
紧跟着执行一次找色,ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)如果找到色说明这个地方没有采集物,,就要继续下一个点找.
当点击其中一个点的时候找不到色了,就说明这个地方存在采集物,那么需要返回一个对应的信号,以便下面代码执行的时候根据这个信号对应的地图自动跑路.
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2014-9-15 17:57:22 | 只看该作者
rigwari 发表于 2014-9-15 12:59
我是新手,按要求写了个,欢迎指正。

我发出来的代码是没有问题的,因为经过实测是可以正常执行并能找得到而且配备后面的代码可以自动跑路过去的
但是用如果否则  来判断就会有大量的相同代码,除了坐标点不同,理想的应该用数组+遍历,但是由于坐标点不是连续的  所以应该在数组这个地方要一个一个赋值一次,我对数组+遍历还不清楚,所以无法精简代码,求交流
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2014-9-15 17:59:29 | 只看该作者
zsconverse 发表于 2014-9-15 11:43
下午给你写。现在手机打字慢

还是非常感谢,以下是我的思路,
首先,鼠标要移动到以下6个点分别点一下,
ts.MoveTo(230,375) //天
ts.MoveTo(290,360) //九
ts.MoveTo(355,280) //巴
ts.MoveTo(425,260) //中
ts.MoveTo(500,260) //江
ts.MoveTo(490,325) //雷
紧跟着执行一次找色,ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)如果找到色说明这个地方没有采集物,,就要继续下一个点找.
当点击其中一个点的时候找不到色了,就说明这个地方存在采集物,那么需要返回一个对应的信号,以便下面代码执行的时候根据这个信号对应的地图自动跑路.
我发出来的代码是没有问题的,因为经过实测是可以正常执行并能找得到而且配备后面的代码可以自动跑路过去的
但是用如果否则  来判断就会有大量的相同代码,除了坐标点不同,理想的应该用数组+遍历,但是由于坐标点不是连续的  所以应该在数组这个地方要一个一个赋值一次,我对数组+遍历还不清楚,所以无法精简代码,
回复 支持 反对

使用道具 举报

9#
发表于 2014-9-15 19:33:15 | 只看该作者
功能 嘿嘿()
    ts = com("ts.tssoft")
    //首先对每个坐标点进行定义,方便下面调取
    坐标x = 数组[6]
    坐标y = 数组[6]
    坐标x[0] = 230,坐标y[0] = 375   //天
    坐标x[1] = 290,坐标y[1] = 360   //九
    坐标x[2] = 355,坐标y[2] = 280   //巴
    坐标x[3] = 425,坐标y[3] = 260   //中
    坐标x[4] = 500,坐标y[4] = 260   //江
    坐标x[5] = 490,坐标y[5] = 325   //雷
    //开始循环了
    n = 0
    intX,intY
    循环(真)
        ts.MoveTo(坐标x[n],坐标y[n])
        辅助.等待(100)
        ts.LeftClick()
        辅助.等待(100)
        ts.FindColor(304,417,452,432,"00f500-000000",1.0,0,intX,intY)
        如果(intX>0)
            找到采集点 = n                //n的值不同,对应不同的点.比如:n=0,就是天
            跳出                            //如果找到点,跳到循环结束,执行后续代码
        如果结束
        n = n+1                            //没找到点,继将n增大1,继续找点
    循环结束
    //此处加入后续代码
功能结束
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

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

GMT+8, 2025-9-25 07:38 , Processed in 0.186653 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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