Exemplo n.º 1
0
        /// <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(355, 214), TimeSpan.FromSeconds(2));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(506, 157), TimeSpan.FromSeconds(2));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(793, 391), TimeSpan.FromSeconds(2));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(457, 353), TimeSpan.FromSeconds(2));
            DMService.Instance.LeftClick(dmGuid, new WxPoint(863, 118), TimeSpan.FromSeconds(2));

            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_仓库);
            DMService.Instance.LeftClick(dmGuid, new WxPoint(220, 230));
            if (DMService.Instance.FindStr(dmGuid, new WxRect(475, 403, 529, 433), "使用", WlyColor.Normal))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(500, 417));
                return(new WlyTaskInfo(ID, true));
            }

            DMService.Instance.LeftClick(dmGuid, new WxPoint(278, 231));
            if (DMService.Instance.FindStr(dmGuid, new WxRect(475, 403, 529, 433), "使用", WlyColor.Normal))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(500, 417));
                return(new WlyTaskInfo(ID, true));
            }

            WlyEntityBiz.ClearEquipments(entity);
            if (entity.AccountInfo.GetStaffInfo(WlyStaffType.文凤卿).GetEquipInfo(WlyEquipType.物理防御).Quality >= WlyQualityType.Purple)
            {
                return(new WlyTaskInfo(ID, true));
            }

            return(new WlyTaskInfo(ID));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var dmGuid    = entity.DMGuid;
            var cityLevel = entity.AccountInfo.GetBuildingInfo(WlyBuildingType.主城).Level;

            foreach (var staff in entity.AccountInfo.StaffInfoDict.Values)
            {
                if ((staff.Level == cityLevel) && (staff.GrowLevel > cityLevel))
                {
                    continue;
                }

                staff.Level = WlyStaffMgr.GetStaffLevel(dmGuid, staff.Name);
                if (cityLevel >= 100 && staff.Level < 80)
                {
                    WlyStaffMgr.Upgrade(staff.Name, 80, dmGuid);
                    staff.Level = WlyStaffMgr.GetStaffLevel(dmGuid, staff.Name);
                }
            }

            WlyEntityBiz.ClearEquipments(entity);
            //WlyEntityBiz.UpgradeAllEquipmenets(entity);
            return(new WlyTaskInfo(ID, true));
        }
Exemplo n.º 3
0
 /// <summary>
 /// 升级当前拥有的装备
 /// </summary>
 private void UpgradeEquipments()
 {
     // 强化所有
     WlyEntityBiz.UpgradeAllEquipmenets(this);
 }
Exemplo n.º 4
0
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            // 等待周一更新后再推图
            var dmGuid = entity.DMGuid;

            try
            {
                WlyEntityBiz.UpgradeAllEquipmenets(entity);
            }
            catch (Exception ex)
            {
                WxLog.Error($"任务_推图.InternalRun Error <{ex}>");
                throw new InvalidOperationException("内部异常");
            }

            // 勾上战斗结果
            if (entity.AccountInfo.GetBuildingInfo(WlyBuildingType.主城).Level >= 20)
            {
                WlyViewMgr.GoTo(dmGuid, WlyViewType.场景_主城);
                var wait = FlowLogicHelper.RepeatRun(() =>
                {
                    if (DMService.Instance.FindStr(dmGuid, new WxRect(458, 166, 497, 195), "消费", WlyColor.Normal))
                    {
                        return(true);
                    }

                    DMService.Instance.LeftClick(dmGuid, new WxPoint(762, 14));
                    return(false);
                }, TimeSpan.FromSeconds(10));
                if (!wait)
                {
                    throw new InvalidOperationException();
                }

                DMService.Instance.LeftDown(dmGuid, new WxPoint(646, 421));
                wait = FlowLogicHelper.RepeatRun(() =>
                {
                    if (DMService.Instance.FindStr(dmGuid, new WxRect(506, 414, 540, 436), "20级", "ffffb0-000000"))
                    {
                        DMService.Instance.LeftUp(dmGuid, new WxPoint(646, 421));
                        return(true);
                    }

                    if (DMService.Instance.FindStr(dmGuid, new WxRect(376, 414, 409, 433), "20级", "ffffb0-000000"))
                    {
                        DMService.Instance.LeftUp(dmGuid, new WxPoint(646, 421));
                        return(true);
                    }

                    if (DMService.Instance.FindStr(dmGuid, new WxRect(376, 414, 409, 433), "20级", "f3f3da-000000", out var x, out var y))
                    {
                        DMService.Instance.LeftUp(dmGuid, new WxPoint(646, 421));
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(x + 10, y + 5));
                        return(false);
                    }

                    if (DMService.Instance.FindStr(dmGuid, new WxRect(506, 414, 540, 436), "20级", "f3f3da-000000", out var xx, out var yy))
                    {
                        DMService.Instance.LeftUp(dmGuid, new WxPoint(646, 421));
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(xx + 10, yy + 5));
                        return(false);
                    }

                    Thread.Sleep(500);
                    return(false);
                }, TimeSpan.FromSeconds(10));
                if (!wait)
                {
                    DMService.Instance.LeftUp(dmGuid, new WxPoint(646, 421));
                    throw new InvalidOperationException();
                }
            }

            var result = WlyProgressMgr.Attack(entity, m_progress);

            if (result && DMService.Instance.FindStr(dmGuid, new WxRect(530, 323, 565, 340), "取消", WlyColor.Normal))
            {
                DMService.Instance.LeftClick(dmGuid, new WxPoint(455, 330));
            }

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

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

            WlyEntityBiz.UpgradeAllEquipmenets(entity);
            WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_试炼塔);
            Thread.Sleep(2000);

            // 检测当前的层数
            var result = WlyUtilityBiz.GetAmount(dmGuid, new WxRect(237, 468, 256, 486), "ffffff-000000", out var level);

            if (!result)
            {
                throw new InvalidOperationException();
            }

            var current = 0;

            for (var i = (10 * (level - 1)) + 1; i <= level * 10; i++)
            {
                if (!DMService.Instance.FindStr(dmGuid, new WxRect(195, 201, 278, 455), $"第{i}层", "e9e7cf-000000", WlyColor.Normal))
                {
                    break;
                }

                current = i;
            }

            // 大于指定层时表示完成推塔
            if (current > m_floor)
            {
                return(new WlyTaskInfo(ID, true));
            }

            int x = 0;
            int y = 0;

            while (current <= m_floor)
            {
                // 开始推塔
                FlowLogicHelper.RepeatRun(() =>
                {
                    if (DMService.Instance.FindStr(dmGuid, new WxRect(195, 201, 278, 455), $"第{current}层", WlyColor.Normal))
                    {
                        return(true);
                    }

                    DMService.Instance.FindStr(dmGuid, new WxRect(195, 201, 278, 455), $"第{current}层", "e9e7cf-000000", out x, out y);
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(x + 5, y + 5));
                    return(true);
                }, TimeSpan.FromSeconds(10));

                DMService.Instance.LeftClick(dmGuid, new WxPoint(367, 470));
                DMService.Instance.LeftClick(dmGuid, new WxPoint(454, 328));

                // 等待进入塔中
                var wait = FlowLogicHelper.RepeatRun(() =>
                {
                    if (DMService.Instance.FindStr(dmGuid, new WxRect(480, 4, 519, 30), $"第{current}层", "ffff00-000000"))
                    {
                        return(true);
                    }

                    Thread.Sleep(500);
                    return(false);
                }, TimeSpan.FromSeconds(10));
                if (!wait)
                {
                    throw new InvalidOperationException();
                }

                if (!DMService.Instance.FindColor(dmGuid, WlyColor.Normal, new WxRect(636, 553, 688, 578)))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(650, 566));
                }

                if (DMService.Instance.FindColor(dmGuid, WlyColor.Normal, new WxRect(813, 550, 906, 580)))
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(846, 568));
                }

                // 等待结果
                var key = false;
                wait = FlowLogicHelper.RepeatRun(() =>
                {
                    // 点击进攻
                    if (DMService.Instance.FindPic(dmGuid, WlyPicType.试炼塔目标, WlyUtilityBiz.GameWndRect, out var xx, out var yy))
                    {
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(xx, yy));
                    }

                    if (DMService.Instance.FindStr(dmGuid, new WxRect(523, 393, 558, 422), "退出", "e9e7cf-000000"))
                    {
                        key = true;
                        return(true);
                    }

                    Thread.Sleep(2000);
                    return(false);
                }, TimeSpan.FromSeconds(30));
                if (!wait)
                {
                    throw new InvalidOperationException();
                }

                if (DMService.Instance.FindStr(dmGuid, new WxRect(452, 390, 492, 422), "挑战", "e9e7cf-000000"))
                {
                    key = false;
                }

                if (key)
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(540, 409));
                    WlyViewMgr.GoTo(dmGuid, WlyViewType.功能_试炼塔);
                    if ((current % 10) == 0)
                    {
                        DMService.Instance.LeftClick(dmGuid, new WxPoint(290, 475));
                    }

                    current++;
                }
                else
                {
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(540, 409));
                    DMService.Instance.LeftClick(dmGuid, new WxPoint(452, 331));
                    return(new WlyTaskInfo(ID, WlyUtilityBiz.GetRefreshTime().AddDays(3)));
                }
            }

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