/// <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)); }
/// <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)); }
/// <summary> /// 升级当前拥有的装备 /// </summary> private void UpgradeEquipments() { // 强化所有 WlyEntityBiz.UpgradeAllEquipmenets(this); }
/// <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)); }
/// <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)); }