From 589ed88a5924a7494e21b95b6bbff5e46ff49ddd Mon Sep 17 00:00:00 2001
From: asmrobot <asmrobot@hotmail.com>
Date: Thu, 21 Nov 2019 01:08:42 +0000
Subject: [PATCH] kalete map
---
src/RichCreator.Utility/CV/LindongCVHelper.cs | 176 ++--------------------------------------------------------
1 files changed, 6 insertions(+), 170 deletions(-)
diff --git a/src/RichCreator.Utility/CV/LindongCVHelper.cs b/src/RichCreator.Utility/CV/LindongCVHelper.cs
index 8af72b7..bd62fc5 100644
--- a/src/RichCreator.Utility/CV/LindongCVHelper.cs
+++ b/src/RichCreator.Utility/CV/LindongCVHelper.cs
@@ -19,170 +19,6 @@
/// </summary>
public class LindongCVHelper
{
-
-
-
-
- private static Hsv minMonsterHsv = new Hsv(165, 247, 175);
- private static Hsv maxMonsterHsv = new Hsv(173, 255, 230);
- private static ZTSize monsterBlockSize = new ZTSize(30, 30);
- /// <summary>
- /// 查找所有怪的位置
- /// </summary>
- /// <param name="image"></param>
- /// <returns></returns>
- public static Structs.ZTPoint[] FindMonster(Image<Hsv, byte> image,ZTRectangle gameRect)
- {
- List<ZTRectangle> rects = CVHelper.FindBlocks(image, minMonsterHsv, maxMonsterHsv, monsterBlockSize);
- Structs.ZTPoint[] monsterPoints = new Structs.ZTPoint[rects.Count];
- for (int i = 0; i < rects.Count; i++)
- {
- monsterPoints[i] = rects[i].GetCenterPoint().Add(gameRect.Start);
- }
- return monsterPoints;
- }
-
-
- public static ZTSize minDoorBlockSize = new ZTSize(25, 25);//门的最小大小
- public static Hsv minUpDoorColor = new Hsv(17, 254, 254);
- public static Hsv maxUpDoorColor = new Hsv(19, 255, 255);
- public static Hsv minRightDoorColor = new Hsv(143, 254, 254);
- public static Hsv maxRightDoorColor = new Hsv(145, 255, 255);
- public static Hsv minBottomDoorColor = new Hsv(17, 254, 254);
- public static Hsv maxBottomDoorColor = new Hsv(19, 255, 255);
- public static Hsv minLeftDoorColor = new Hsv(107, 254, 254);
- public static Hsv maxLeftDoorColor = new Hsv(109, 255, 255);
- public static Hsv minRealBottomDoorColor = new Hsv(35, 254, 254);
- public static Hsv maxRealBottomDoorColor = new Hsv(37, 255, 255);
-
- /// <summary>
- /// 查找门
- /// </summary>
- /// <param name="directions"></param>
- /// <returns></returns>
- public static ZTPoint FindDoor(out Direction targetDirection, Image<Hsv, byte> image, Direction[] directions, ZTRectangle gameRect)
- {
- targetDirection = Direction.None;
- Int32 height = gameRect.End.Y - gameRect.Start.Y;
- Int32 width = gameRect.End.X - gameRect.Start.X;
- Int32 yHalf = height / 2;
- Int32 xHalf = width / 2;
- ZTRectangle limitRect = ZTRectangle.Empty;
- Hsv minDoorHsvColor = default(Hsv), maxDoorHsvColor = default(Hsv);
- for (int doorIndex = 0; doorIndex < directions.Length; doorIndex++)
- {
- targetDirection = directions[doorIndex];
-
- switch (targetDirection)
- {
- case Direction.Up:
- minDoorHsvColor = minUpDoorColor;
- maxDoorHsvColor = maxUpDoorColor;
- limitRect = new ZTRectangle(0, 0, width, yHalf);
- break;
- case Direction.Right:
- minDoorHsvColor = minRightDoorColor;
- maxDoorHsvColor = maxRightDoorColor;
- limitRect = new ZTRectangle(xHalf, 0, width, height);
- break;
- case Direction.Bottom:
- minDoorHsvColor = minBottomDoorColor;
- maxDoorHsvColor = maxBottomDoorColor;
- limitRect = new ZTRectangle(0, yHalf, width, height);
- break;
- case Direction.Left:
- minDoorHsvColor = minLeftDoorColor;
- maxDoorHsvColor = maxLeftDoorColor;
- limitRect = new ZTRectangle(0, 0, xHalf, height);
- break;
- }
-
- List<ZTRectangle> doors = CVHelper.FindBlocks(image, minDoorHsvColor, maxDoorHsvColor, minDoorBlockSize);
- if (doors.Count <= 0)
- {
- continue;
- }
- Structs.ZTPoint doorPosition = Structs.ZTPoint.Empty;
- for (int i = 0; i < doors.Count; i++)
- {
- doorPosition = new Structs.ZTPoint(doors[i].Start.X + (doors[i].End.X - doors[i].Start.X) / 2, doors[i].Start.Y + (doors[i].End.Y - doors[i].Start.Y) / 2);
- if (doorPosition.X >= limitRect.Start.X &&
- doorPosition.X <= limitRect.End.X &&
- doorPosition.Y >= limitRect.Start.Y &&
- doorPosition.Y <= limitRect.End.Y)
- {
- return doorPosition + gameRect.Start;
- }
- }
- }
-
- return Structs.ZTPoint.Empty;
- }
-
- /// <summary>
- /// 地图右上角素喃文字
- /// </summary>
- public static ColorArray MapTopSunan = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1401,72,230,200,155$1381,69,230,200,155$1380,68,0,0,0$1385,68,0,0,0$1386,68,230,200,155$1386,67,0,0,0$1387,67,0,0,0$1387,68,0,0,0$1391,68,0,0,0$1391,69,230,200,155$1392,69,0,0,0$1393,69,230,200,155$1393,68,0,0,0$1396,69,0,0,0$1395,69,230,200,155$1397,69,230,200,155$1399,68,0,0,0$1401,68,0,0,0$1404,69,0,0,0$1404,72,0,0,0$1403,72,230,200,155$1402,72,0,0,0$1400,72,0,0,0$1399,72,230,200,155$1398,72,0,0,0$1397,72,230,200,155$1396,72,0,0,0$1395,72,230,200,155$1394,72,0,0,0$1393,72,230,200,155$1392,72,0,0,0$1381,79,0,0,0$1382,79,230,200,155$1383,79,0,0,0$1385,79,230,200,155$1387,79,0,0,0$1390,79,230,200,155$1391,79,0,0,0$1396,79,0,0,0$1397,79,230,200,155$1398,79,0,0,0$1397,80,0,0,0$1401,79,0,0,0$1402,79,230,200,155$1402,80,0,0,0$1403,80,0,0,0$1403,79,230,200,155$1404,79,0,0,0$1404,80,0,0,0");
-
- /// <summary>
- /// 是否进入素喃
- /// </summary>
- /// <param name="image"></param>
- /// <param name="gameRect"></param>
- /// <returns></returns>
- public static bool IsInSunan(ZTRectangle gameRect)
- {
- Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage();
- ZTRectangle limit = new ZTRectangle(gameRect.End.X - 130, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y + 60);
- ZTRectangle position = ZTRectangle.Empty;
- return CVHelper.FindColorArray(out position, image, MapTopSunan, limit);
- }
-
-
- /// <summary>
- /// 地图右上角时空之门文字
- /// </summary>
- public static ColorArray MapTopShikongzhimen = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1187,48,230,200,155$1177,46,230,200,155$1180,46,230,200,155$1180,55,230,200,155$1177,55,230,200,155$1184,56,230,200,155$1186,56,230,200,155$1186,45,230,200,155$1189,48,230,200,155$1193,45,230,200,155$1196,48,230,200,155$1199,47,230,200,155$1199,48,230,200,155$1201,48,230,200,155$1209,48,230,200,155$1204,45,230,200,155$1212,45,230,200,155$1213,46,230,200,155$1215,45,230,200,155$1221,45,230,200,155$1221,56,230,200,155$1219,56,230,200,155$1212,56,230,200,155$1210,56,230,200,155$1205,56,230,200,155$1199,56,230,200,155$1189,56,230,200,155$1194,55,230,200,155");
-
- /// <summary>
- /// 是否进入时空之门
- /// </summary>
- /// <param name="image"></param>
- /// <param name="gameRect"></param>
- /// <returns></returns>
- public static bool IsInShikongzhimen(ZTRectangle gameRect)
- {
- Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage();
- ZTRectangle limit = new ZTRectangle(gameRect.End.X - 210, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y + 60);
- ZTRectangle position = ZTRectangle.Empty;
- return CVHelper.FindColorArray(out position, image, MapTopShikongzhimen, limit);
- }
-
- /// <summary>
- /// 选择进那个副本界面的下方space区域
- /// </summary>
- public static ColorArray ChoiceTaskPage_0 = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "873,736,201,176,126$855,736,17,15,11$854,736,17,15,11$851,736,206,181,130$858,736,206,181,130$860,736,10,9,6$862,736,17,15,11$865,736,204,178,128$868,736,17,15,11$869,736,17,15,11$876,736,17,15,11$880,736,203,178,128$883,736,17,15,11$888,736,208,182,131$888,738,208,182,131$884,738,52,45,33$879,738,179,156,113$874,738,55,48,35$871,738,12,11,8$865,738,158,139,100$862,738,208,182,131$859,738,50,43,31$854,738,52,45,33$850,738,208,182,131$850,740,208,182,131$852,740,128,112,80$854,740,208,182,131$858,740,201,176,127$859,740,50,43,31$862,740,208,182,131$867,740,89,78,56$869,740,208,182,131$876,740,208,182,131$881,740,21,18,13$884,740,208,182,131$886,740,145,127,91$887,742,208,182,131$884,742,17,15,11$880,742,208,182,131$877,742,17,15,11$874,742,158,138,99$870,742,17,15,11$865,742,208,182,131$862,742,17,15,11$859,742,50,43,31$858,742,208,182,131$855,742,17,15,11$851,742,208,182,131");
- public static ColorArray ChoiceTaskPage_1 = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "889,793,119,104,75$872,788,208,182,131$935,786,203,177,128$939,793,208,182,131$868,795,208,182,131$879,792,208,182,131$889,793,119,104,75$916,796,17,15,11$916,796,17,15,11$916,796,17,15,11$916,796,17,15,11");
-
-
- /// <summary>
- /// 是否打开选择副本界面
- /// </summary>
- /// <param name="image"></param>
- /// <param name="gameRect"></param>
- /// <returns></returns>
- public static bool IsInChoiceTaskPage(Image<Rgb, byte> image, ZTRectangle gameRect)
- {
- ZTRectangle limit = new ZTRectangle(gameRect.Start.X + 600, gameRect.End.Y - 35, gameRect.Start.X + 800, gameRect.End.Y);
- ZTRectangle position = ZTRectangle.Empty;
- if (CVHelper.FindColorArray(out position, image, ChoiceTaskPage_0, gameRect))
- {
- return true;
- }
- return CVHelper.FindColorArray(out position, image, ChoiceTaskPage_1, gameRect);
- }
-
-
/// <summary>
/// 凛冬难度选择向右的箭头
/// </summary>
@@ -223,11 +59,11 @@
/// 凛冬难度,1¬5级
/// </summary>
private static ColorArray[] LindongNandu = new ColorArray[] {
- ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "591,625,157,0,17$537,625,255,255,255$551,625,0,93,157$564,625,93,0,157$577,625,150,0,126"),
- ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "577,625,150,0,126$537,625,93,157,0$551,625,255,255,255$564,625,93,0,157$590,625,157,0,17"),
- ColorArray.FromHsvFloatString(0.002f,0.002f,0.002f,"591,625,157,0,17$538,625,93,157,0$551,625,0,93,157$564,625,255,255,255$577,625,150,0,126"),
- ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "577,625,255,255,255$538,625,93,157,0$551,625,0,93,157$564,625,93,0,157$590,625,157,0,17"),
- ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "590,625,255,255,255$537,625,93,157,0$551,625,0,93,157$564,625,93,0,157$577,625,150,0,126")
+ ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1391,650,102,0,170$1368,650,255,255,255$1380,650,0,102,170$1402,650,160,0,136$1413,650,170,0,17"),
+ ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1391,650,102,0,170$1369,650,102,170,0$1380,650,255,255,255$1402,650,160,0,136$1413,650,170,0,17"),
+ ColorArray.FromHsvFloatString(0.002f,0.002f,0.002f,"1390,650,255,255,255$1369,650,102,170,0$1380,650,0,102,170$1402,650,160,0,136$1413,650,170,0,17"),
+ ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1402,650,255,255,255$1369,650,102,170,0$1380,650,0,102,170$1391,650,102,0,170$1413,650,170,0,17"),
+ ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1391,650,102,0,170$1369,650,102,170,0$1380,650,0,102,170$1401,650,160,0,136$1412,650,255,255,255")
};
@@ -241,7 +77,7 @@
/// <returns></returns>
public static bool GetChoiceLingdongNandu(out Int32 choiceNandu,Image<Rgb, byte> image, ZTRectangle gameRect)
{
- ZTRectangle limit = new ZTRectangle(gameRect.Start.X + 400, gameRect.End.Y - 150, gameRect.Start.X + 650, gameRect.End.Y-90);
+ ZTRectangle limit = new ZTRectangle(gameRect.Start.X + 270, gameRect.Start.Y +505, gameRect.Start.X + 354, gameRect.Start.Y+519);
ZTRectangle position = ZTRectangle.Empty;
for (int i = 0; i < LindongNandu.Length; i++)
{
--
Gitblit v1.9.3