Example #1
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_主线任务);

            var wait = FlowLogicHelper.RepeatRun(() =>
            {
                if (DMService.Instance.FindStr(dmGuid, new WxRect(550, 418, 634, 446), "领取|接受",
                                               $"{WlyColor.Normal}|{WlyColor.White}"))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(592, 436));
                }

                if (DMService.Instance.FindStr(dmGuid, new WxRect(550, 418, 634, 446), "取消",
                                               $"{WlyColor.Normal}|{WlyColor.White}"))
                {
                    return(true);
                }

                return(false);
            }, TimeSpan.FromSeconds(120));

            if (!wait)
            {
                return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
            }

            return(new WlyTaskInfo(ID, true));
        }
Example #2
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            // 首先跳转到擂台赛界面
            WlyViewMgr.GoTo(dmGuid, WlyViewType.日常_擂台赛);
            Thread.Sleep(5000);

            // 计算助威人数
            WlyUtilityBiz.GetAmount(dmGuid, new WxRect(330, 369, 365, 383), "ebe9cf-101010", out var count1);
            WlyUtilityBiz.GetAmount(dmGuid, new WxRect(340, 421, 364, 434), "ebe9cf-101010", out var count2);

            // 上面数字大就助威上面,下面大助威下面
            var target = count1 >= count2 ? new WxPoint(404, 371) : new WxPoint(405, 423);

            DMService.Instance.LeftClick(dmGuid, target);
            DMService.Instance.LeftClick(dmGuid, target);
            DMService.Instance.LeftClick(dmGuid, target);
            DMService.Instance.LeftClick(dmGuid, target);

            // 助威
            DMService.Instance.LeftClick(dmGuid, new WxPoint(515, 553));

            // 确定
            DMService.Instance.LeftClick(dmGuid, new WxPoint(453, 332));

            // 退出
            DMService.Instance.LeftClick(dmGuid, new WxPoint(911, 549));
            return(new WlyTaskInfo(ID, true));
        }
Example #3
0
        private void HandleErrorCmdExecute(object obj)
        {
            if (m_errorAccounts == null)
            {
                var file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "error", "errorAccount.data");
                m_errorAccounts = File.ReadAllLines(file).ToList();
            }

            var uid = m_errorAccounts.FirstOrDefault();

            if (uid != null)
            {
                var entity = m_subList.FirstOrDefault(o => o.AccountInfo.UID == uid);
                if (entity == null)
                {
                    MessageBox.Show(Application.Current.MainWindow, $"未找到角色 海潮{m_startIndex:D4}");
                    return;
                }

                WlyUtilityBiz.Login(entity);
                m_errorAccounts.Remove(uid);
            }
            else
            {
                MessageBox.Show(Application.Current.MainWindow, $"错误处理完毕");
            }
        }
Example #4
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_商城);

            // 购买所有可以使用粮食和银币购买的东西
            var itemRects = new List <WxRect>
            {
                new WxRect(262, 301, 332, 327),
                new WxRect(411, 304, 472, 325),
                new WxRect(551, 304, 619, 326),
                new WxRect(266, 418, 329, 439),
                new WxRect(408, 417, 474, 440),
                new WxRect(556, 417, 617, 442)
            };

            foreach (var rect in itemRects)
            {
                if (WlyUtilityBiz.GetAmount(dmGuid, rect, "ffffff-000000", out var _))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(rect.Left, rect.Top));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(415, 470));

                    if (DMService.Instance.FindStr(dmGuid, new WxRect(434, 338, 473, 366), "确定", WlyColor.Normal))
                    {
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(459, 311));
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(457, 351));
                    }
                }
            }

            return(new WlyTaskInfo(ID, true));
        }
Example #5
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.场景_主城);
            WlyUtilityBiz.GetPercent(dmGuid, new WxRect(137, 47, 238, 68), "e9e7cf-000000", out var persent);
            if (persent > 0.8)
            {
                return(new WlyTaskInfo(ID, true));

                WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_卖粮);
                DMService.Instance.LeftClick(dmGuid, new WxPoint(760, 343));
                DMService.Instance.LeftClick(dmGuid, new WxPoint(762, 377));
            }

            WlyViewMgr.GoTo(dmGuid, WlyViewType.建筑_农田);

            FlowLogicHelper.RepeatRun(() =>
            {
                if (DMService.Instance.FindColor(dmGuid, "aaaaaa-000000", new WxRect(341, 402, 367, 413)))
                {
                    return(true);
                }

                FlowLogicHelper.RepeatRun(() => DMService.Instance.LeftClick(dmGuid, new WxPoint(350, 407), TimeSpan.FromMilliseconds(100)), 5);
                return(false);
            }, TimeSpan.FromSeconds(10));

            return(new WlyTaskInfo(ID, true));
        }
Example #6
0
        public void SpecialTask()
        {
            try
            {
                WlyUtilityBiz.Login(this);
                BindGameWnd();

                var dmGuid = DMGuid;
                WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_红包);

                // 点击红包
                DMService.Instance.LeftClick(dmGuid, new WxPoint(498, 452), TimeSpan.FromSeconds(2));

                FlowLogicHelper.RepeatRun(() => DMService.Instance.LeftClick(dmGuid, new WxPoint(434, 203)), 6);
                FlowLogicHelper.RepeatRun(() => DMService.Instance.LeftClick(dmGuid, new WxPoint(525, 280)), 6);
                FlowLogicHelper.RepeatRun(() => DMService.Instance.LeftClick(dmGuid, new WxPoint(485, 349)), 6);
            }
            catch
            {
            }
            finally
            {
                CloseProcess();
            }
        }
Example #7
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public override WlyTaskInfo Run(WlyEntity entity)
        {
            if (DateTime.Now > DateTime.Today.Add(EndTime) || WlyUtilityBiz.GetRefreshTime() < DateTime.Today.Add(EndTime))
            {
                return(new WlyTaskInfo(ID, true));
            }

            return(base.Run(entity));
        }
Example #8
0
        /// <summary>
        /// 获取指定武将指定部位的装备信息
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <param name="staff"></param>
        /// <param name="equipType"></param>
        /// <returns></returns>
        public static WlyEquipInfo GetStaffEquipInfo(string dmGuid, WlyStaffType staff, WlyEquipType equipType)
        {
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_装备);
            WlyUtilityBiz.SelectStaffInList(dmGuid, staff);
            DMService.Instance.LeftClick(dmGuid, _equipSpaceMap[equipType], TimeSpan.FromSeconds(1));
            var info = GetEquipInfo(dmGuid);

            return(info);
        }
Example #9
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            // 进入古城探险界面
            WlyViewMgr.GoTo(dmGuid, WlyViewType.日常_古城探秘);
            Thread.Sleep(400);

            // 获取剩余次数
            var countRect = new WxRect(614, 424, 634, 442);

            if (WlyUtilityBiz.GetAmount(dmGuid, countRect, WlyColor.Normal, out var count) && (count == 0))
            {
                WlyViewMgr.ExitCurrentView(dmGuid, TimeSpan.FromSeconds(30));
                return(new WlyTaskInfo(ID, true));
            }

            // 开始一键探险
            DMService.Instance.LeftClick(dmGuid, new WxPoint(567, 392));
            var wait = SpinWait.SpinUntil(() =>
            {
                Thread.Sleep(1000);
                return(DMService.Instance.FindStr(dmGuid, new WxRect(549, 487, 587, 513), "扫荡", WlyColor.Normal));
            }, TimeSpan.FromSeconds(10));

            if (!wait)
            {
                return(new WlyTaskInfo(ID, DateTime.Now.AddMinutes(1)));
            }

            // 勾上选项
            DMService.Instance.LeftClick(dmGuid, new WxPoint(422, 214));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(439, 237));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(423, 420));
            //DMService.Instance.LeftClick(dmGuid, new WxPoint(421, 444));

            // 开始扫荡
            DMService.Instance.LeftClick(dmGuid, new WxPoint(557, 501));

            // 等待扫荡结束
            wait = SpinWait.SpinUntil(() =>
            {
                Thread.Sleep(1000);
                return(DMService.Instance.FindStr(dmGuid, new WxRect(447, 477, 515, 501), "已完成全部", "ff3300-000000"));
            }, TimeSpan.FromSeconds(60));
            if (!wait)
            {
                return(new WlyTaskInfo(ID, DateTime.Now.AddMinutes(1)));
            }

            // 完成古城探秘
            DMService.Instance.LeftClick(dmGuid, new WxPoint(763, 126));
            Thread.Sleep(400);
            WlyViewMgr.ExitCurrentView(dmGuid, TimeSpan.FromSeconds(30));
            return(new WlyTaskInfo(ID, DateTime.Now));
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_商城);

            DMService.Instance.LeftClick(dmGuid, new WxPoint(559, 468));
            var costStr = string.Empty;
            var wait    = FlowLogicHelper.RepeatRun(() =>
            {
                costStr = DMService.Instance.GetWords(dmGuid, new WxRect(473, 265, 518, 285), "ffff00-101010");
                return(costStr.Contains("金币"));
            }, TimeSpan.FromSeconds(5));

            if (!wait)
            {
                throw new InvalidOperationException("无法确认商城刷新的花费");
            }

            if (costStr == "10金币")
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(460, 357), TimeSpan.FromSeconds(2));

                // 购买所有可以使用粮食和银币购买的东西
                var itemRects = new List <WxRect>
                {
                    new WxRect(262, 301, 332, 327),
                    new WxRect(411, 304, 472, 325),
                    new WxRect(551, 304, 619, 326),
                    new WxRect(266, 418, 329, 439),
                    new WxRect(408, 417, 474, 440),
                    new WxRect(556, 417, 617, 442)
                };

                foreach (var rect in itemRects)
                {
                    if (WlyUtilityBiz.GetAmount(dmGuid, rect, "ffffff-000000", out var _))
                    {
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(rect.Left, rect.Top));
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(415, 470));

                        if (DMService.Instance.FindStr(dmGuid, new WxRect(434, 338, 473, 366), "确定", WlyColor.Normal))
                        {
                            DMService.Instance.LeftClick(dmGuid, new WxPoint(459, 311));
                            DMService.Instance.LeftClick(dmGuid, new WxPoint(457, 351));
                        }
                    }
                }
            }
            else
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(547, 353));
            }

            return(new WlyTaskInfo(ID, true));
        }
Example #11
0
        public SubEntity GetNewEntity()
        {
            WlyUtilityBiz.Reg();


            SubAccountInfo info = new SubAccountInfo(MathHelper.GetNewGuid());

            info.Account  = "123";
            info.Password = "******";
            return(new SubEntity(info));
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            // 升级军团科技
            var dmGuid = entity.DMGuid;

            if (WlyGroupMgr.Upgrade(dmGuid))
            {
                return(new WlyTaskInfo(ID, true));
            }

            return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
        }
Example #13
0
        public static void UnequipStaff(string dmGuid, WlyStaffType staff, WlyEquipType equipType)
        {
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_装备);
            if (!WlyUtilityBiz.SelectStaffInList(dmGuid, staff))
            {
                return;
            }

            // 点击全部卸载
            DMService.Instance.LeftClick(dmGuid, _equipSpaceMap[equipType]);
            DMService.Instance.LeftClick(dmGuid, new WxPoint(460, 469));
        }
Example #14
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;
            var result = WlyUtilityBiz.GetPercent(dmGuid, new WxRect(137, 71, 236, 90), "e9e7cf-000000", out var percent);

            if (result && (percent < 1))
            {
                WlyUtilityBiz.GetSoldier(entity.DMGuid);
            }

            return(new WlyTaskInfo(ID, true));
        }
Example #15
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.场景_竞技场);
            Thread.Sleep(1000);
            if (DMService.Instance.FindColor(dmGuid, "ff0000-000000", new WxRect(436, 470, 486, 484)))
            {
                return(new WlyTaskInfo(ID, true));
            }

            FlowLogicHelper.RepeatRun(() =>
            {
                if (!DMService.Instance.FindStr(dmGuid, new WxRect(108, 207, 174, 229), "查看奖励", "ffcc00-000000"))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(141, 214));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(454, 330));
                    return(false);
                }

                return(true);
            }, TimeSpan.FromSeconds(10));

            if (WlyUtilityBiz.GetAmount(dmGuid, new WxRect(167, 156, 219, 175), "ff9900-000000", out var amount))
            {
                entity.AccountInfo.FightPoint = amount;
            }

            var result = WlyUtilityBiz.GetAmount(dmGuid, new WxRect(366, 268, 401, 289), WlyColor.White, out var targetLevel);

            if (result && targetLevel > entity.AccountInfo.GetBuildingInfo(WlyBuildingType.主城).Level)
            {
                return(new WlyTaskInfo(ID, true));
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(621, 558));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(455, 330));

            DMService.Instance.LeftClick(dmGuid, new WxPoint(499, 386));
            var enemy = DMService.Instance.GetWords(dmGuid, new WxRect(323, 247, 383, 269), "ffffff-000000");

            if (enemy.Contains("海潮"))
            {
                return(new WlyTaskInfo(ID, true));
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(354, 325));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(454, 328));

            // 直接结束,不再等待
            throw new InvalidOperationException();
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.场景_世界地图);

            // 确认投资冷却时间
            if (DMService.Instance.FindStr(dmGuid, new WxRect(100, 212, 145, 234), "可投资", "20ef4c-000000"))
            {
                WlyMapMgr.OpenCity(dmGuid, m_city);
                var s1 = DMService.Instance.GetWords(dmGuid, new WxRect(470, 352, 565, 370), "e9e7cf-000000");
                var v1 = int.Parse(s1.Split('/')[0]);
                WlyUtilityBiz.SystemInfo.Develop1 = v1;

                var s2 = DMService.Instance.GetWords(dmGuid, new WxRect(470, 374, 565, 939), "e9e7cf-000000");
                var v2 = int.Parse(s2.Split('/')[0]);
                WlyUtilityBiz.SystemInfo.Develop2 = v2;
                WlyUtilityBiz.SystemInfo.Save();

                var wait = FlowLogicHelper.RepeatRun(() =>
                {
                    if (DMService.Instance.FindStr(dmGuid, new WxRect(470, 214, 494, 236), "城", WlyColor.Normal))
                    {
                        return(true);
                    }

                    DMService.Instance.LeftClick(dmGuid, new WxPoint(660, 277));
                    return(false);
                }, TimeSpan.FromSeconds(5));
                if (!wait)
                {
                    throw new InvalidOperationException("无法打开城池进行开发");
                }

                if (v1 > v2)
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(583, 267));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(536, 301));
                }

                DMService.Instance.LeftClick(dmGuid, new WxPoint(440, 367), TimeSpan.FromSeconds(2));
            }

            if (!DMService.Instance.FindColor(dmGuid, "33ffff-000000", new WxRect(100, 212, 160, 234)))
            {
                return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
            }

            var coolTime = WlyUtilityBiz.GetTime(dmGuid, new WxRect(100, 212, 160, 234), "33ffff-000000");

            return(new WlyTaskInfo(ID, DateTime.Now.Add(coolTime)));
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid       = entity.DMGuid;
            var level        = Math.Min(m_level, entity.AccountInfo.GetBuildingInfo(WlyBuildingType.主城).Level);
            var currentLevel = WlyStaffMgr.GetStaffLevel(dmGuid, m_staff);
            var growLevel    = WlyStaffMgr.GetStaffGrowLevel(dmGuid, m_staff);

            if (growLevel > level && currentLevel >= level)
            {
                return(new WlyTaskInfo(ID, true));
            }

            // 先尝试一键突飞
            WlyStaffMgr.PractiseStaff(m_staff, dmGuid);
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_训练);
            WlyUtilityBiz.SelectStaffInList(dmGuid, m_staff);
            DMService.Instance.LeftClick(dmGuid, new WxPoint(376, 465));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(418, 398));


            // 如果转生等级大于需求等级,则突飞到需求等级,然后完成培养
            if (growLevel > level)
            {
                //WlyStaffMgr.Upgrade(m_staff, level, dmGuid);
                //var l = entity.AccountInfo.GetStaffInfo(m_staff).Level = WlyStaffMgr.GetStaffLevel(dmGuid, m_staff);

                //if (l == level)
                //{
                //    return new WlyTaskInfo(ID, true);
                //}

                return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
            }

            // 如果离转生等级较近则突飞到指定等级
            if ((currentLevel + 10 >= growLevel) && (currentLevel < growLevel))
            {
                WlyStaffMgr.Upgrade(m_staff, growLevel, dmGuid);
            }
            else
            {
                WlyStaffMgr.PractiseStaff(m_staff, dmGuid);
            }

            // 转生
            WlyStaffMgr.Grow(dmGuid, m_staff);
            entity.AccountInfo.GetStaffInfo(m_staff).Level     = WlyStaffMgr.GetStaffLevel(dmGuid, m_staff);
            entity.AccountInfo.GetStaffInfo(m_staff).GrowLevel = WlyStaffMgr.GetStaffGrowLevel(dmGuid, m_staff);

            return(new WlyTaskInfo(ID, DateTime.Now.Add(TimeSpan.FromHours(10))));
        }
Example #18
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_主公属性);

            // 升级经济
            var wait = FlowLogicHelper.RepeatRun(() =>
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(375, 160));
                return(DMService.Instance.FindStr(dmGuid, new WxRect(485, 188, 518, 206), "经济", "ffcc00-000000"));
            }, TimeSpan.FromSeconds(5));

            if (!wait)
            {
                throw new InvalidOperationException("无法打开主公属性经济");
            }

            var key    = false;
            var result = WlyUtilityBiz.GetAmount(dmGuid, new WxRect(659, 304, 710, 329), WlyColor.White, out var amount);

            if (result && (amount > 0))
            {
                key = true;
            }

            //result = WlyUtilityBiz.GetAmount(dmGuid, new WxRect(663, 355, 705, 379), WlyColor.White, out amount);
            //if (result && (amount > 0))
            //{
            //    key = true;
            //}

            //result = WlyUtilityBiz.GetAmount(dmGuid, new WxRect(662, 409, 706, 432), WlyColor.White, out amount);
            //if (result && (amount > 0))
            //{
            //    key = true;
            //}

            if (key)
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(507, 474));
                DMService.Instance.LeftClick(dmGuid, new WxPoint(454, 331));
                entity.AccountInfo.ResetMainLevel();
                entity.AccountInfo.Save();
                throw new InvalidOperationException();
            }

            return(new WlyTaskInfo(ID, true));
        }
Example #19
0
        /// <summary>
        /// 训练武将
        /// </summary>
        /// <param name="staff"></param>
        /// <param name="dmGuid"></param>
        public static void PractiseStaff(WlyStaffType staff, string dmGuid)
        {
            SelectStaff(dmGuid, staff, WlyViewType.功能_训练);

            // 确认是否需要开启武将训练位
            while (true)
            {
                var word = DMService.Instance.GetWords(dmGuid, new WxRect(198, 457, 236, 489), "f3f3da-000000");
                if (word.Contains("/") && (word.Split('/')[1] != "5"))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(271, 478));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(455, 355), TimeSpan.FromSeconds(2));
                    continue;
                }

                break;
            }

            // 确认武将是否正在训练
            var lastTime = WlyUtilityBiz.GetTime(dmGuid, new WxRect(566, 287, 636, 308), "33ffff-000000");

            if ((lastTime < TimeSpan.FromHours(6)) && (lastTime != TimeSpan.Zero))
            {
                // 结束训练
                DMService.Instance.LeftClick(dmGuid, new WxPoint(580, 331), TimeSpan.FromSeconds(1));
                DMService.Instance.LeftClick(dmGuid, new WxPoint(453, 331), TimeSpan.FromSeconds(1));
                lastTime = WlyUtilityBiz.GetTime(dmGuid, new WxRect(566, 287, 636, 308), "33ffff-000000");
            }

            if (lastTime == TimeSpan.Zero)
            {
                // 选择24小时训练
                if (!DMService.Instance.FindStr(dmGuid, new WxRect(410, 236, 447, 257), "24", "e9e7cf-000000"))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(475, 246));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(437, 280));
                }

                // 选择地狱训练
                if (!DMService.Instance.FindStr(dmGuid, new WxRect(408, 261, 448, 285), "地狱", "e9e7cf-000000"))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(477, 272));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(438, 338));
                }

                // 点击训练
                DMService.Instance.LeftClick(dmGuid, new WxPoint(580, 331));
            }
        }
Example #20
0
        /// <summary>
        /// 选择武将
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <param name="staff"></param>
        /// <param name="view"></param>
        public static void SelectStaff(string dmGuid, WlyStaffType staff, WlyViewType view)
        {
            // 首先跳转到训练界面
            WlyViewMgr.GoTo(dmGuid, view);
            if (!WlyUtilityBiz.SelectStaffInList(dmGuid, staff))
            {
                GetStaff(dmGuid, staff);
                WlyViewMgr.GoTo(dmGuid, view);
                WlyUtilityBiz.SelectStaffInList(dmGuid, staff);
            }

            if (DMService.Instance.FindStr(dmGuid, new WxRect(529, 321, 562, 341), "取消", WlyColor.Normal))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(546, 329));
            }
        }
Example #21
0
        /// <summary>
        /// 武将转职
        /// </summary>
        /// <param name="staff"></param>
        /// <param name="dmGuid"></param>
        public static void Evolve(WlyStaffType staff, string dmGuid)
        {
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_武将);
            var result = WlyUtilityBiz.SelectStaffInList(dmGuid, staff);

            if (!result)
            {
                throw new InvalidOperationException($"未能选择到武将{staff.ToString()}");
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(581, 341));
            if (DMService.Instance.FindStr(dmGuid, new WxRect(429, 342, 475, 371), "确定", WlyColor.Normal))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(454, 360));
            }
        }
Example #22
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_生产);
            Thread.Sleep(1000);

            // 勾选使用3金币进行暴击
            if (!DMService.Instance.FindColor(dmGuid, WlyColor.Normal, new WxRect(534, 236, 566, 255)))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(520, 245));
            }

            var wait = FlowLogicHelper.RepeatRun(() =>
            {
                var result = WlyUtilityBiz.GetAmount(dmGuid, new WxRect(575, 420, 599, 437), "f3f3da-000000", out var amount);
                if (result && (amount == 0))
                {
                    return(true);
                }

                if (DMService.Instance.FindStr(dmGuid, new WxRect(458, 260, 521, 294), "金币", "ffff00-000000"))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(545, 357));
                }

                FlowLogicHelper.RepeatRun(() => DMService.Instance.LeftClick(dmGuid, new WxPoint(554, 457), TimeSpan.FromMilliseconds(200)), amount);
                Thread.Sleep(1000);
                return(false);
            }, TimeSpan.FromSeconds(30));

            if (wait)
            {
                Thread.Sleep(1000);
                if (DMService.Instance.FindStr(dmGuid, new WxRect(531, 342, 561, 364), "取消", WlyColor.Normal))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(548, 353));
                }

                // 卖出商品
                DMService.Instance.LeftClick(dmGuid, new WxPoint(710, 456));

                return(new WlyTaskInfo(ID, true));
            }

            return(new WlyTaskInfo(ID, DateTime.Now.AddHours(1)));
        }
Example #23
0
        /// <summary>
        /// 武将下野
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <param name="staff"></param>
        /// <returns></returns>
        public static bool ThrowStaff(string dmGuid, WlyStaffType staff)
        {
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_招募);

            // 无法选中则当做下野已经成功
            if (!WlyUtilityBiz.SelectStaffInList(dmGuid, staff))
            {
                return(true);
            }

            // 点击下野
            DMService.Instance.LeftClick(dmGuid, new WxPoint(270, 476));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(453, 332));

            // 操作确认
            return(!DMService.Instance.FindStr(dmGuid, 总成_武将.武将列表, staff.ToString(), WlyColor.StaffColor));
        }
Example #24
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_委派);

            // 主城等级大于100时自动卖出
            if (entity.AccountInfo.GetBuildingInfo(WlyBuildingType.主城).Level >= 100)
            {
                // 设置自动卖出
                DMService.Instance.LeftClick(dmGuid, new WxPoint(251, 473));
                DMService.Instance.LeftClick(dmGuid, new WxPoint(442, 341));
                DMService.Instance.LeftClick(dmGuid, new WxPoint(493, 395));
            }

            // 开始委派
            var wait = FlowLogicHelper.RepeatRun(() =>
            {
                if (WlyUtilityBiz.GetAmount(dmGuid, new WxRect(294, 429, 312, 449), "fce69a-000000", out var count) && (count == 0))
                {
                    return(true);
                }

                if (DMService.Instance.FindStr(dmGuid, new WxRect(524, 338, 569, 367), "取消", WlyColor.Normal))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(548, 351));
                }

                FlowLogicHelper.RepeatRun(() => DMService.Instance.LeftClick(dmGuid, new WxPoint(257, 368), TimeSpan.FromMilliseconds(200)), count);
                Thread.Sleep(1000);
                return(false);
            }, TimeSpan.FromSeconds(30));

            if (DMService.Instance.FindStr(dmGuid, new WxRect(483, 384, 517, 409), "免费", "ffff00-000000"))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(496, 367));
            }

            if (wait)
            {
                return(new WlyTaskInfo(ID, true));
            }

            return(new WlyTaskInfo(ID, DateTime.Now.Add(TimeSpan.FromMinutes(30))));
        }
Example #25
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            // 武将除名
            entity.AccountInfo.RemoveStaffInfo(m_staff);

            // 首先卸载武将全部的装备
            WlyEquipMgr.UnequipStaff(dmGuid, m_staff);

            // 武将下野
            if (WlyStaffMgr.ThrowStaff(dmGuid, m_staff))
            {
                return(new WlyTaskInfo(ID, true));
            }

            return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
        }
Example #26
0
        /// <summary>
        /// 设置武将兵种类型
        /// </summary>
        /// <param name="staff"></param>
        /// <param name="index"></param>
        /// <param name="dmGuid"></param>
        public static void SetType(WlyStaffType staff, int index, string dmGuid)
        {
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_武将);
            if (!WlyUtilityBiz.SelectStaffInList(dmGuid, staff))
            {
                throw new InvalidOperationException($"无法选择到武将{staff}");
            }

            if (index == 1)
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(370, 254));
            }
            else
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(469, 265));
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(459, 340));
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;
            var staff  = entity.AccountInfo.GetStaffInfo(m_staff);

            staff.Level = WlyStaffMgr.GetStaffLevel(dmGuid, m_staff);
            if (staff.Level < m_level)
            {
                WlyStaffMgr.Upgrade(m_staff, m_level, dmGuid);
                staff.Level = WlyStaffMgr.GetStaffLevel(dmGuid, m_staff);
            }

            if (staff.Level < m_level)
            {
                return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
            }

            return(new WlyTaskInfo(ID, true));
        }
Example #28
0
        /// <summary>
        /// 获取装备信息
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <returns></returns>
        public static WlyEquipInfo GetEquipInfo(string dmGuid)
        {
            var info = new WlyEquipInfo
            {
                Quality = WlyUtilityBiz.GetQuality(dmGuid, new WxRect(710, 290, 801, 312))
            };

            if (info.Quality > WlyQualityType.Unknow)
            {
                info.Type = GetEquipTypeCore(dmGuid, new WxRect(712, 339, 808, 358));
                var levelStr = DMService.Instance.GetWords(dmGuid, new WxRect(713, 289, 812, 313), "e9e7cf-000000");
                info.Level = int.Parse(levelStr.Substring(0, levelStr.Length - 1));

                levelStr        = DMService.Instance.GetWords(dmGuid, new WxRect(711, 314, 807, 336), $"{WlyColor.White}|ff0000-000000", 1);
                info.EquipLevel = int.Parse(levelStr.Substring(2));
            }

            return(info);
        }
Example #29
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;
            var staff  = entity.AccountInfo.GetStaffInfo(m_staff);

            if (staff.Quality >= m_quality)
            {
                return(new WlyTaskInfo(ID, true));
            }

            WlyStaffMgr.EnvolveStaff(dmGuid, m_staff, m_quality);
            staff.Quality = WlyStaffMgr.GetStaffQuality(dmGuid, m_staff);
            if (staff.Quality >= m_quality)
            {
                return(new WlyTaskInfo(ID, true));
            }

            return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime()));
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_出航贸易);
            Thread.Sleep(1000);
            if (WlyUtilityBiz.GetAmount(dmGuid, new WxRect(642, 561, 663, 588), "31f101-000000", out var count) && (count == 0))
            {
                return(new WlyTaskInfo(ID, DateTime.Now.AddMinutes(30)));
            }

            var targets = DMService.Instance.FindPics(dmGuid, WlyPicType.打劫目标, new WxRect(110, 179, 931, 536));

            foreach (var target in targets)
            {
                DMService.Instance.LeftClick(dmGuid, target);
                var wait = DMService.Instance.FindStr(dmGuid, new WxRect(110, 179, 931, 536), "名称", WlyColor.Normal, out var x, out var y);
                if (!wait)
                {
                    continue;
                }

                if (DMService.Instance.FindStr(dmGuid, new WxRect(x - 5, y - 5, x + 150, y + 50), "墨君", WlyColor.White))
                {
                    var nextTime = WlyUtilityBiz.GetTime(dmGuid, new WxRect(x, y, x + 100, y + 100), WlyColor.Selected);
                    if (nextTime == TimeSpan.Zero)
                    {
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(706, 577));
                        nextTime = TimeSpan.FromMinutes(10);
                    }

                    if (DMService.Instance.FindStr(dmGuid, new WxRect(480, 318, 519, 342), "确定", WlyColor.Normal))
                    {
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(499, 331));
                    }

                    return(new WlyTaskInfo(ID, DateTime.Now.Add(nextTime)));
                }
            }

            return(new WlyTaskInfo(ID, DateTime.Now.AddMinutes(30)));
        }