/// <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)); }
/// <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)); }
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, $"错误处理完毕"); } }
/// <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)); }
/// <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)); }
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(); } }
/// <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)); }
/// <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); }
/// <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)); }
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())); }
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)); }
/// <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)); }
/// <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)))); }
/// <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)); }
/// <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)); } }
/// <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)); } }
/// <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)); } }
/// <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))); }
/// <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)); }
/// <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)))); }
/// <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())); }
/// <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)); }
/// <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); }
/// <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))); }