From 2aeab450471cb80b59002da7da80faf251a0c4f4 Mon Sep 17 00:00:00 2001
From: asmrobot <asmrobot@hotmail.com>
Date: Mon, 25 Nov 2019 15:02:53 +0000
Subject: [PATCH] sigle computer
---
src/RichCreator/Maps/Kalete/KaleteMap.cs | 103 +++++++++++++++++++++++++--------------------------
1 files changed, 50 insertions(+), 53 deletions(-)
diff --git a/src/RichCreator/Maps/Kalete/KaleteMap.cs b/src/RichCreator/Maps/Kalete/KaleteMap.cs
index be2b081..b7eecb6 100644
--- a/src/RichCreator/Maps/Kalete/KaleteMap.cs
+++ b/src/RichCreator/Maps/Kalete/KaleteMap.cs
@@ -2,6 +2,7 @@
using Emgu.CV.Structure;
using RichCreator.Dnf;
using RichCreator.Jobs.StateMachines;
+using RichCreator.Models;
using RichCreator.Utility;
using RichCreator.Utility.Captures;
using RichCreator.Utility.CV;
@@ -32,29 +33,30 @@
/// NextIndex=-2,出错
/// </summary>
private static readonly HouseInfo[] Houses = new HouseInfo[] {
- new HouseInfo (0 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (1 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (2 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (3 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (4 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (5 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (6 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (7 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (8 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},new int[]{20,21,22,23 }),
- new HouseInfo (9 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (10,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (11,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (12,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (13,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (14,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (15,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (16,MapType.Kalete,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (17,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (18,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null),
- new HouseInfo (19,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null)
+ new HouseInfo (0 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,-1),
+ new HouseInfo (1 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (2 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (3 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (4 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (5 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (6 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,1),
+ new HouseInfo (7 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,6),
+ new HouseInfo (8 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},new int[]{20,21,22,23 },7),
+ new HouseInfo (9 ,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (10,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (11,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (12,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,13),
+ new HouseInfo (13,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,8),
+ new HouseInfo (14,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (15,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (16,MapType.Kalete,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,17),
+ new HouseInfo (17,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,12),
+ new HouseInfo (18,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0),
+ new HouseInfo (19,MapType.Kalete,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null,0)
};
private Int32 runningStep = RunningStep.None;
+ private DateTime startRoleTime = DateTime.Now;
/// <summary>
/// 开始
@@ -66,12 +68,8 @@
public override ZTResult Start(Int32 runningStep)
{
this.runningStep = runningStep;
-
-
- WindowUtils.SetDnfToTop();
-
-
-
+ WindowUtils.SetDnfToTop();
+
if (runningStep < RunningStep.War)
{
if (!MoveToSunan())
@@ -104,10 +102,10 @@
{
return ZTResult.Cancel;
}
-
-
- DateTime startHouse = DateTime.Now;
- ZTResult killResult = KillMonster();
+ DateTime startMapTime = DateTime.Now;
+ ZTResult killResult = KillOfMap();
+ StateProvider.Instance.RoleTimePassed = (Int32)(DateTime.Now - startRoleTime).TotalSeconds;
+ StateProvider.Instance.PreMapTime= (Int32)(DateTime.Now - startMapTime).TotalSeconds;
if (killResult == ZTResult.Success)
{
//捡东西
@@ -118,17 +116,13 @@
G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.X);
Thread.Sleep(RandomUtils.KeyPressDuration * 3);
}
-
-
+
//卖装备并关闭商店
SaleEquipment();
-
- Int32 houseTotalSecond = (Int32)(DateTime.Now - startHouse).TotalSeconds;
- G.Instance.InfoWriter("单次刷图成功,用时:" + (houseTotalSecond / 60) + "分" + (houseTotalSecond % 60) + "秒");
-
+ G.Instance.InfoWriter("单次刷图完成");
+
//查询疲劳值
Int32 pilaozhi = DnfCVHelper.GetPiLaoZhi(this.GameRect);
-
G.Instance.InfoWriter("疲劳值:" + pilaozhi);
if (pilaozhi <= 0)
{
@@ -223,28 +217,26 @@
/// 刷房间
/// </summary>
/// <returns></returns>
- private ZTResult KillMonster()
+ private ZTResult KillOfMap()
{
bool ret = false;
-
+ DateTime startMapTime = DateTime.Now;
if (!IsEntryMap())
{
- G.Instance.InfoWriter("未找到进入凛冬");
+ G.Instance.InfoWriter("未找到进入卡勒特");
return ZTResult.Failed;
}
- G.Instance.InfoWriter("进入卡勒特");
-
- Int32 preHouseIndex = -1;
- Int32 houseIndex = -1;
-
-
+ G.Instance.InfoWriter("进入卡勒特");
+ Int32 houseIndex = -1;
+
//技能加成
G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Space);
-
+
//循环刷房间
while (true)
{
- preHouseIndex = houseIndex;
+ DateTime startHouseTime = DateTime.Now;
+ Int32 fromHouseIndex = houseIndex;
//看房间号
ret = this.MiniMap.GetCurrentHouseIndexWaitTimeout(out houseIndex, null, this.CancelToken, 3 * 1000);
if (!ret)
@@ -253,15 +245,20 @@
return ZTResult.Failed;
}
- G.Instance.InfoWriter("进入房间->" + houseIndex.ToString());
+ StateProvider.Instance.HouseIndex = houseIndex;
+ G.Instance.InfoWriter($"进入房间({houseIndex})");
+
HouseInfo houseInfo = Houses[houseIndex];
this.Role.SetHouse(houseInfo);
- DateTime startTime = DateTime.Now;
+
+
KillMonsterStateMachine kmsm = new KillMonsterStateMachine(this, houseInfo,this.Role);
- ZTResult smresult = kmsm.Work(2 * 60 * 1000,preHouseIndex,this.runningStep);
- Int32 roomTotalSecond = (Int32)(DateTime.Now - startTime).TotalSeconds;
- G.Instance.InfoWriter("房间刷完,用时:" + (roomTotalSecond / 60) + "分" + (roomTotalSecond % 60) + "秒");
+ ZTResult smresult = kmsm.Work(2 * 60 * 1000,fromHouseIndex,this.runningStep);
+ G.Instance.InfoWriter($"房间刷完({houseIndex})");
+ StateProvider.Instance.RoleTimePassed = (Int32)(DateTime.Now - startRoleTime).TotalSeconds;
+ StateProvider.Instance.MapTimePassed= (Int32)(DateTime.Now - startMapTime).TotalSeconds;
+ StateProvider.Instance.PreHouseTime = (Int32)(DateTime.Now - startHouseTime).TotalSeconds;
runningStep = RunningStep.None;
if (smresult == ZTResult.Success)
--
Gitblit v1.9.3