Beispiel #1
0
        public Point FindStr(int x1, int y1, int x2, int y2, string str, string color, double sim = 0.9)
        {
            object x;
            object y;

            dm.FindStr(x1, y1, x2, y2, str, color, sim, out x, out y);
            return(new Point((int)x, (int)y));
        }
Beispiel #2
0
        /// <summary>
        /// 在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述.
        //  (多色, 差色查找类似于Ocr接口, 不再重述)
        /// </summary>
        /// <param name="dmsoft"></param>
        /// <param name="findStr"></param>
        /// <returns></returns>
        public static Point FindStr(this dmsoft dmsoft, FindStr findStr)
        {
            int x, y;
            var res = dmsoft.FindStr(findStr.X1, findStr.Y1, findStr.X2, findStr.Y2, findStr.String, findStr.ColorFormat, findStr.Sim, out x, out y);

            if (res == -1)
            {
                return(new Point());
            }
            else
            {
                return(new Point(x, y));
            }
        }
Beispiel #3
0
 public int FindStr(int x1, int y1, int x2, int y2, string str, string color, double sim, out object x, out object y)
 {
     return(dm.FindStr(x1, y1, x2, y2, str, color, sim, out x, out y));
 }
Beispiel #4
0
        /// <summary>
        /// 寻找首攻
        /// </summary>
        private void FindFirstAttack()
        {
            var startTime = DateTime.Now;

            while (true)
            {
                if (DateTime.Now - startTime > TimeSpan.FromMinutes(2))
                {
                    return;
                }

                var findResult = m_dm.FindStr(100, 470, 277, 550, "(首", "fff71c-000000|fcffa9-000000", 1, out var _, out var _);
                if (findResult == -1)
                {
                    Thread.Sleep(100);
                    continue;
                }

                // 寻找到首攻,加入队伍
                WxLog.Debug($"MainEntity.FindFirstAttack Find First Attack {findResult}");
                findResult = m_dm.FindStr(100, 470, 277, 550, "加", "00ff00-000000", 1, out var x, out var y);
                if (findResult == -1)
                {
                    Thread.Sleep(100);
                    continue;
                }

                // 点击加入队伍
                WxLog.Debug($"MainEntity.FindFirstAttack Click:{x},{y}");
                m_dm.MoveTo((int)x + 5, (int)y + 5);
                m_dm.LeftClick();

                findResult = -1;
                var retry = 0;
                while (findResult == -1)
                {
                    // 确认自己在队伍中
                    findResult = m_dm.FindStr(370, 198, 517, 219, "(首攻)", "ffffb0-000000", 1, out var _, out var _);
                    if (findResult == -1)
                    {
                        retry++;
                        if (retry > 30)
                        {
                            break;
                        }

                        Thread.Sleep(100);
                    }
                }

                findResult = m_dm.FindStr(632, 206, 807, 449, "海潮", "e9e7cf-000000", 1, out var _, out var _);
                if (findResult == -1)
                {
                    Thread.Sleep(100);
                    continue;
                }

                // 给首攻五秒钟时间
                Thread.Sleep(5000);
                return;
            }
        }