80 files added
59 files deleted
388 files renamed
48 files modified
1 files copied
| | |
| | | |
| | | 1图空格加G若怪不死完补ead技能 |
| | | q 朔风牵引 |
| | | w 风卷残云 |
| | | e 双翼风刃 |
| | | r 风暴之眼 |
| | | t 九霄风雷 |
| | | y 万象风龙阵 |
| | | |
| | | a 风鸣冲击 |
| | | s 真空旋风破 |
| | | d 游离之风 |
| | | f 风暴之拳 |
| | | g 游龙惊风破 |
| | | h 无限风域 |
| | | |
| | | |
| | | 2图w补技能 |
| | | 1.御风之力 2.风神决 |
| | | |
| | | 1.第一行第一个 2.第三行第二个 3.第二行倒数第三个 4.第二行倒数第五个 5第二行倒数第一个 |
| | | |
| | | |
| | | 3图q加T若怪不死补那三个技能 |
| | | 凛冬 |
| | | 1 空格+G 补技能EAD |
| | | 2 W 补技能EAD |
| | | 3 Q+T补技能EAD |
| | | 4 E 补技能EAD |
| | | 5 W补技能EAD |
| | | 6 R+T |
| | | 7 Q 补技能EAD |
| | | 8 W 补技能EAD |
| | | 9 H+Y+T+R+F 最后一个房间就是有技能就放的那种的 |
| | | |
| | | |
| | | 卡勒特之初(第一行第一个为0房间) |
| | | 0: R E |
| | | 1: Q w |
| | | 6: g |
| | | 7: r |
| | | 8: h |
| | | 13: Q E |
| | | 12: t |
| | | 17: Q f(w) |
| | | 16: y |
| | | |
| | | |
| | | |
| | | |
| | | |
| File was renamed from doc/npk对应表.txt |
| | |
| | | sprite_item_common 装备 |
| | | sprite_item_weapon_fighter |
| | | |
| | | |
| | | 凛冬 |
| | | sprite_interface2_dungeonloading.NPK 没啥用 |
| | | sprite_map_timegate_beginning.NPK 蛋和地图 |
| | | sprite_map_timegate.NPK 一些效果不知用在哪儿 |
| | | sprite_map_cataclysm_skytower_draconiantower_object.NPK 地图物品 |
| | | sprite_monster.NPK 怪物头像和红底 |
| | | sprite_common_commoneffect_new_superarmor.NPK 怪物被攻击后的防护罩 |
| | | sprite_common_barrier.NPK 怪物被攻击后的防护罩 |
| | | sprite_monster_dragonknight.NPK 各种怪和攻击效果 |
| | | sprite_monster_common.NPK 怪自身的各种效果 |
| | | |
| | | sprite_common_commoneffect.NPK |
| | | sprite_common_hiteffect_elementalhiteffect.NPK |
| | | sprite_common_etc_damagefontskin.NPK |
| | | sprite_common_hiteffect.NPK |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | sprite_monster.NPK |
| | | sprite_item.NPK |
| | | sprite_common_digit_sp.NPK |
| | | sprite_common_commoneffect_new_superarmor.NPK |
| | | sprite_common_barrier.NPK |
| | | sprite_item_new_equipment_01_weapon_fighter_tonfa.NPK |
| | | sprite_common_commoneffect_glow.NPK |
| | | sprite_common_commoneffect_status_effect.NPK |
| | | sprite_item_new_equipment_10_support.NPK |
| | | sprite_item_new_equipment_01_weapon_mage_pole.NPK |
| | | sprite_item_new_equipment_08_necklace.NPK |
| | | sprite_item_new_equipment_03_leather_coat.NPK |
| | | sprite_common_digit_level02.NPK |
| | | sprite_item_title_event_chn_sod_2.NPK |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | 卡勒特之初 |
| | | sprite_map_timegate_formacartel.NPK |
| | | sprite_map_act7_supplycut.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_map_arden.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_map_haze.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_monster_timegate.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_monster_haze.NPK SUCCESS Offset: 1,468,628, Length: 512 |
| | | sprite_monster_snowman.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_interface2_common_digit_pvp_room_number.NPK SUCCESS Offset: 348, Length: 512 |
| | | sprite_map_minimap.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_monster_championbreak.NPK SUCCESS Offset: 316, Length: 512 |
| | | sprite_monster_ghoul.NPK SUCCESS Offset: 136,607, Length: 512 |
| | | sprite_monster_heaven_mechanicgiselle.NPK SUCCESS Offset: 883,199, Length: 512 |
| | | 打完后出现的 |
| | | |
| | | |
| | | sprite_monster_headlessknight.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_monster_apc_sand_doll.NPK SUCCESS Offset: 920,643, Length: 4,096, Priority: Normal |
| | | sprite_monster_apc.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_monster_cartel_smokegranade.NPK SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened |
| | | sprite_monster_draconian.NPK SUCCESS Offset: 816,051, Length: 512 |
| | | sprite_interface2_result_ver2.0.NPK SUCCESS Offset: 141,206, Length: 4,608 |
| | | sprite_interface2_secret_shop.NPK SUCCESS Offset: 1,572, Length: 6,144 |
| | | sprite_interface2_result_ver2.0_rank_letter.NPK SUCCESS Offset: 936, Length: 8,192, Priority: Normal |
| | | sprite_common_digit.NPK SUCCESS Offset: 128,513, Length: 512 |
| | | sprite_interface2_reward_ver2.0.NPK SUCCESS Offset: 2,751,716, Length: 1,024 |
| | | sprite_interface_digit.NPK SUCCESS Offset: 5,086, Length: 512 |
| | | sprite_interface_expertjob.NPK SUCCESS Offset: 82,109, Length: 512 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | common常见贴图 |
| | | sprite_common_activestatus.NPK 异常状态效果 |
| | | sprite_common_changedeffect.NPK 之前赛MM卖的花 |
copy from "doc/\350\241\245\344\270\201/\345\207\233\345\206\254/\345\216\237\345\247\213_\345\234\260\345\233\276/sprite_map_timegate.NPK"
copy to "doc/\350\241\245\344\270\201/\345\215\241\345\213\222\347\211\271\344\271\213\345\210\235/sprite_map_timegate.NPK"
Binary files differ
| New file |
| | |
| | | (原坐标+原宽高)-现宽高=现在应该的坐标 |
| | | 另 现宽高+现坐标应<帧域宽高 |
| | |
| | | rgb 0 0 255 |
| | | rgb 0 0 ff |
| | | hsv 0.6667 1.0 1.0 |
| | | |
| | | |
| | | 金币和装备 黄 |
| | | rgb 255 229 0 |
| | | rgb ff e5 00 |
| | | hsv 0.15 1.0 1.0 |
| | | |
| | |
| | | 使用的数字 |
| | | 左0-9 |
| | | 右10-19 |
| | | 上20-29 |
| | | 下30-39 |
| | | 右0-9 |
| | | 左10-19 |
| | | 下20-29 |
| | | 上30-39 |
| | |
| | | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| | | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| | | xmlns:local="clr-namespace:RichCreator.Editor" |
| | | StartupUri="Tools/MapEditor.xaml"> |
| | | StartupUri="MainWindow.xaml"> |
| | | <Application.Resources> |
| | | |
| | | </Application.Resources> |
| | |
| | | <Separator/> |
| | | <MenuItem Header="测试找线" Click="FindLines" /> |
| | | <Separator/> |
| | | |
| | | |
| | | |
| | | <MenuItem Header="查找关闭窗" Click="FindCloseButton_Click" /> |
| | | |
| | | </MenuItem> |
| | | <MenuItem Header="工具(T)"> |
| | | <MenuItem Header="测距" IsEnabled="False"/> |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 测试找关闭按钮 |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void FindCloseButton_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, this.targetImage, new ZTRectangle (0,0, targetImage.Width, targetImage.Height))) |
| | | { |
| | | MessageBox.Show("未找到关闭按钮"); |
| | | return; |
| | | } |
| | | DrawRectangle(closeButtonRect.Start.X, closeButtonRect.Start.Y, closeButtonRect.End.X-closeButtonRect.Start.X, closeButtonRect.End.Y-closeButtonRect.Start.Y, Colors.Yellow); |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | |
| | | window.ShowDialog(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | return; |
| | | } |
| | | string json = this.housePathInfo.ToJsonString(); |
| | | string json = this.housePathInfo.ToJsonString(image.Width,image.Height); |
| | | Clipboard.SetDataObject(json, true); |
| | | MessageBox.Show("copy success"); |
| | | } |
| | |
| | | Polygon pg = CreatePathGuideUI(info.PathGuides[i]); |
| | | this.PathGuideShapeLayer.Children.Add(pg); |
| | | } |
| | | |
| | | |
| | | |
| | | this.housePathInfo = info; |
| | | } |
| | |
| | | ZTPoint end = this.startEndFindPathPoint[1]; |
| | | |
| | | HouseInfo house = new HouseInfo(this.housePathInfo); |
| | | List<ZTPoint> path = house.FindPath(ref start, ref end); |
| | | List<ZTPoint> path = house.FindPath(start, end); |
| | | |
| | | if (path == null || path.Count <= 0) |
| | | { |
| | |
| | | this.HouseInfoLayer.Children.Remove(c); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 创建障碍物UI |
| | | /// </summary> |
| | |
| | | } |
| | | ZTRectangle zrect = new ZTRectangle(rect.X, rect.Y, rect.X + rect.Width - 1, rect.Y + rect.Height - 1); |
| | | rects.Add(zrect); |
| | | |
| | | |
| | | } |
| | | |
| | | return rects; |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查找颜色数组 |
| | | /// </summary> |
| | | /// <param name="position"></param> |
| | | /// <param name="image"></param> |
| | | /// <param name="colorArray"></param> |
| | | /// <param name="limitRectangle"></param> |
| | | /// <param name="filter"></param> |
| | | /// <param name="xSkip"></param> |
| | | /// <param name="ySkip"></param> |
| | | /// <returns></returns> |
| | | public static bool FindColorArray(out ZTRectangle position, Image<Rgb, byte> image, ColorArray colorArray, ZTRectangle limitRectangle, Func<ZTRectangle, bool> filter, Int32 xSkip = 1, Int32 ySkip = 1) |
| | | { |
| | | position = ZTRectangle.Empty; |
| | | if (xSkip < 1 || ySkip < 1) |
| | | { |
| | | throw new ArgumentOutOfRangeException("skip不能小于1"); |
| | | } |
| | | for (int y = limitRectangle.Start.Y; y <= limitRectangle.End.Y; y += ySkip) |
| | | { |
| | | //超出高度 |
| | | if ((limitRectangle.End.Y - y + 1) < colorArray.Size.Height) |
| | | { |
| | | return false; |
| | | } |
| | | for (int x = limitRectangle.Start.X; x <= limitRectangle.End.X; x += xSkip) |
| | | { |
| | | //超出宽度 |
| | | if ((limitRectangle.End.X - x + 1) < colorArray.Size.Width) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | if (colorArray.Compare(image.Data, x, y)) |
| | | { |
| | | position = new ZTRectangle(x, y, x + colorArray.Size.Width - 1, y + colorArray.Size.Height - 1); |
| | | if (filter(position)) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查找所有数组方框 |
| | | /// </summary> |
| | | /// <param name="image"></param> |
| | | /// <param name="colorArray"></param> |
| | | /// <param name="limitRectangle"></param> |
| | | /// <param name="xSkip"></param> |
| | | /// <param name="ySkip"></param> |
| | | /// <returns></returns> |
| | | public static List<ZTRectangle> FindColorArray(Image<Rgb, byte> image, ColorArray colorArray, ZTRectangle limitRectangle, Int32 xSkip = 1, Int32 ySkip = 1) |
| | | { |
| | | List<ZTRectangle> rects = new List<ZTRectangle>(); |
| | | |
| | | if (xSkip < 1 || ySkip < 1) |
| | | { |
| | | throw new ArgumentOutOfRangeException("skip不能小于1"); |
| | | } |
| | | for (int y = limitRectangle.Start.Y; y <= limitRectangle.End.Y; y += ySkip) |
| | | { |
| | | //超出高度 |
| | | if ((limitRectangle.End.Y - y + 1) < colorArray.Size.Height) |
| | | { |
| | | break; |
| | | } |
| | | for (int x = limitRectangle.Start.X; x <= limitRectangle.End.X; x += xSkip) |
| | | { |
| | | //超出宽度 |
| | | if ((limitRectangle.End.X - x + 1) < colorArray.Size.Width) |
| | | { |
| | | break; |
| | | } |
| | | |
| | | if (colorArray.Compare(image.Data, x, y)) |
| | | { |
| | | rects.Add(new ZTRectangle(x, y, x + colorArray.Size.Width - 1, y + colorArray.Size.Height - 1)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return rects; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查找数组 |
| | | /// </summary> |
| | |
| | | /// <returns></returns> |
| | | public static bool IsInJijingchengChannel(ZTRectangle gameRect) |
| | | { |
| | | ZTRectangle limit = new ZTRectangle(gameRect.End.X - 200, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y + 30); |
| | | ZTRectangle limit = new ZTRectangle(gameRect.Start.X +604, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y + 24); |
| | | return CVHelper.RectExistsArray(limit, JijingchengText); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //公告:爆满频道服务器自动连接失败,请再次连接或选择其他频道 |
| | | private static ColorArray BaomanText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "720,329,0,0,0$699,329,0,0,0$700,329,255,255,255$701,329,0,0,0$705,329,0,0,0$706,329,255,255,255$707,329,0,0,0$710,329,0,0,0$711,329,255,255,255$712,329,0,0,0$715,329,255,255,255$714,329,0,0,0$716,329,0,0,0$720,336,0,0,0$719,336,255,255,255$716,336,255,255,255$714,336,255,255,255$711,336,255,255,255$710,336,0,0,0$708,336,0,0,0$707,336,255,255,255$702,336,255,255,255$699,336,255,255,255$698,336,0,0,0$636,365,255,255,255$638,365,255,255,255$641,365,255,255,255$643,365,255,255,255$645,365,255,255,255$650,365,255,255,255$653,365,255,255,255$656,365,255,255,255$658,365,255,255,255$660,365,255,255,255$663,365,255,255,255$666,365,255,255,255$670,365,255,255,255$672,365,255,255,255$674,365,255,255,255$676,365,255,255,255$682,365,255,255,255$685,365,255,255,255$687,365,255,255,255$688,365,255,255,255$690,365,255,255,255$692,365,255,255,255$693,365,255,255,255$698,365,255,255,255$699,365,255,255,255$703,365,255,255,255$704,365,255,255,255$713,365,255,255,255$717,365,255,255,255$720,365,255,255,255$728,365,255,255,255$730,365,255,255,255$733,365,255,255,255$734,365,255,255,255$737,365,255,255,255$740,365,255,255,255$746,365,255,255,255$749,365,255,255,255$756,365,255,255,255$760,365,255,255,255$762,365,255,255,255$767,365,255,255,255$771,365,255,255,255$774,385,255,255,255$772,385,255,255,255$770,385,255,255,255$766,385,255,255,255$761,385,255,255,255$753,385,255,255,255$747,385,255,255,255$742,385,255,255,255$741,385,255,255,255$738,385,255,255,255$734,385,255,255,255$732,385,255,255,255$728,385,255,255,255$726,385,255,255,255$720,385,255,255,255$714,385,255,255,255$713,385,255,255,255$710,385,255,255,255$708,385,255,255,255$706,385,255,255,255$705,385,255,255,255$702,385,255,255,255$699,385,255,255,255$696,385,255,255,255$694,385,255,255,255$692,385,255,255,255$690,385,255,255,255$682,385,255,255,255$677,385,255,255,255$675,385,255,255,255$669,385,255,255,255$665,385,255,255,255$664,385,255,255,255$660,385,255,255,255$657,385,255,255,255$646,385,255,255,255$645,385,255,255,255$641,385,255,255,255$640,385,255,255,255$636,385,255,255,255$646,398,255,255,255$646,395,255,255,255$646,392,255,255,255$646,390,255,255,255$646,387,255,255,255$646,385,255,255,255$646,377,255,255,255$646,371,255,255,255$646,369,255,255,255"); |
| | | |
| | | /// <summary> |
| | | /// 是否切换失败 |
| | | /// </summary> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | public static bool IsChangeFailed(ZTRectangle gameRect) |
| | | { |
| | | ZTRectangle rect = ZTRectangle.Empty; |
| | | return CVHelper.RectExistsArray(out rect, gameRect, BaomanText); |
| | | } |
| | | |
| | | |
| | | //网格连接中断 |
| | | //关闭后自动打开了频道选择 |
| | |
| | | /// <summary> |
| | | /// 选择角色界面中的“开始游戏”按钮 |
| | | /// </summary> |
| | | private static ColorArray startGameButton = ColorArray.FromThresholdString(130, "1055,813,255,255,255$1034,813,0,0,0$1035,813,0,0,0$1036,813,0,0,0$1037,813,0,0,0$1038,813,0,0,0$1040,813,255,255,255$1041,813,255,255,255$1044,813,0,0,0$1045,813,0,0,0$1047,813,255,255,255$1048,813,255,255,255$1049,813,255,255,255$1051,813,0,0,0$1052,813,0,0,0$1053,813,255,255,255$1054,813,255,255,255$1057,813,0,0,0$1058,813,0,0,0$1059,813,0,0,0$1062,813,255,255,255$1063,813,255,255,255$1064,813,255,255,255$1065,813,255,255,255$1066,813,255,255,255$1067,813,255,255,255$1068,813,255,255,255$1072,813,255,255,255$1073,813,255,255,255$1074,813,255,255,255$1075,813,0,0,0$1076,813,0,0,0$1078,813,255,255,255$1082,813,255,255,255$1083,813,255,255,255$1084,813,255,255,255$1085,813,255,255,255$1086,813,255,255,255$1087,813,255,255,255$1088,813,255,255,255$1089,813,255,255,255$1090,813,255,255,255$1091,813,255,255,255$1092,813,255,255,255$1093,813,255,255,255$1094,813,255,255,255$1095,813,255,255,255$1096,813,255,255,255$1097,813,255,255,255$1098,813,255,255,255$1099,813,255,255,255$1102,813,0,0,0$1104,813,255,255,255$1105,813,255,255,255$1109,813,255,255,255$1110,813,255,255,255$1112,813,0,0,0$1113,813,0,0,0$1115,813,255,255,255$1116,813,255,255,255$1117,813,255,255,255$1119,813,0,0,0$1120,813,0,0,0$1121,813,0,0,0$1122,813,0,0,0$1123,813,0,0,0$1124,813,0,0,0$1125,813,0,0,0$1126,813,0,0,0$1127,813,0,0,0$1128,813,0,0,0$1034,814,0,0,0$1035,814,0,0,0$1036,814,0,0,0$1037,814,0,0,0$1038,814,0,0,0$1040,814,255,255,255$1041,814,255,255,255$1047,814,255,255,255$1048,814,255,255,255$1049,814,255,255,255$1053,814,255,255,255$1054,814,255,255,255$1055,814,255,255,255$1056,814,255,255,255$1057,814,255,255,255$1058,814,255,255,255$1061,814,255,255,255$1062,814,255,255,255$1063,814,255,255,255$1064,814,255,255,255$1065,814,255,255,255$1066,814,255,255,255$1067,814,255,255,255$1068,814,255,255,255$1070,814,0,0,0$1072,814,255,255,255$1073,814,255,255,255$1074,814,255,255,255$1077,814,255,255,255$1078,814,255,255,255$1082,814,255,255,255$1083,814,255,255,255$1084,814,255,255,255$1085,814,255,255,255$1086,814,255,255,255$1087,814,255,255,255$1088,814,255,255,255$1089,814,255,255,255$1090,814,255,255,255$1091,814,255,255,255$1092,814,255,255,255$1093,814,255,255,255$1094,814,255,255,255$1095,814,255,255,255$1096,814,255,255,255$1097,814,255,255,255$1098,814,255,255,255$1099,814,255,255,255$1100,814,255,255,255$1104,814,255,255,255$1105,814,255,255,255$1108,814,255,255,255$1109,814,255,255,255$1110,814,255,255,255$1112,814,0,0,0$1115,814,255,255,255$1116,814,255,255,255$1119,814,0,0,0$1120,814,0,0,0$1121,814,0,0,0$1122,814,0,0,0$1123,814,0,0,0$1124,814,0,0,0$1125,814,0,0,0$1126,814,0,0,0$1127,814,0,0,0$1128,814,0,0,0$1034,815,0,0,0$1035,815,0,0,0$1036,815,0,0,0$1037,815,0,0,0$1038,815,0,0,0$1041,815,255,255,255$1042,815,255,255,255$1045,815,255,255,255$1046,815,255,255,255$1047,815,255,255,255$1048,815,255,255,255$1049,815,255,255,255$1050,815,255,255,255$1051,815,255,255,255$1052,815,255,255,255$1053,815,255,255,255$1054,815,255,255,255$1055,815,255,255,255$1056,815,255,255,255$1057,815,255,255,255$1058,815,255,255,255$1062,815,255,255,255$1063,815,255,255,255$1064,815,255,255,255$1065,815,255,255,255$1066,815,255,255,255$1067,815,255,255,255$1068,815,255,255,255$1070,815,0,0,0$1071,815,0,0,0$1073,815,255,255,255$1074,815,255,255,255$1076,815,255,255,255$1077,815,255,255,255$1080,815,0,0,0$1083,815,255,255,255$1084,815,255,255,255$1085,815,255,255,255$1086,815,255,255,255$1096,815,255,255,255$1097,815,255,255,255$1098,815,255,255,255$1099,815,255,255,255$1104,815,255,255,255$1105,815,255,255,255$1106,815,255,255,255$1107,815,255,255,255$1108,815,255,255,255$1109,815,255,255,255$1110,815,255,255,255$1111,815,255,255,255$1114,815,255,255,255$1115,815,255,255,255$1116,815,255,255,255$1122,815,0,0,0$1123,815,0,0,0$1124,815,0,0,0$1125,815,0,0,0$1126,815,0,0,0$1127,815,0,0,0$1128,815,0,0,0$1034,816,0,0,0$1035,816,0,0,0$1036,816,0,0,0$1037,816,0,0,0$1038,816,0,0,0$1039,816,0,0,0$1041,816,255,255,255$1042,816,255,255,255$1043,816,255,255,255$1045,816,255,255,255$1046,816,255,255,255$1047,816,255,255,255$1048,816,255,255,255$1049,816,255,255,255$1050,816,255,255,255$1051,816,255,255,255$1052,816,255,255,255$1066,816,255,255,255$1067,816,255,255,255$1068,816,255,255,255$1072,816,255,255,255$1073,816,255,255,255$1074,816,255,255,255$1076,816,255,255,255$1077,816,255,255,255$1080,816,0,0,0$1081,816,0,0,0$1084,816,255,255,255$1085,816,255,255,255$1097,816,255,255,255$1098,816,255,255,255$1099,816,255,255,255$1101,816,0,0,0$1103,816,255,255,255$1104,816,255,255,255$1105,816,255,255,255$1106,816,255,255,255$1107,816,255,255,255$1108,816,255,255,255$1109,816,255,255,255$1110,816,255,255,255$1111,816,255,255,255$1114,816,255,255,255$1115,816,255,255,255$1117,816,0,0,0$1119,816,255,255,255$1120,816,255,255,255$1122,816,0,0,0$1123,816,0,0,0$1124,816,0,0,0$1125,816,0,0,0$1126,816,0,0,0$1127,816,0,0,0$1128,816,0,0,0$1034,817,0,0,0$1035,817,0,0,0$1036,817,0,0,0$1037,817,0,0,0$1038,817,0,0,0$1039,817,0,0,0$1040,817,0,0,0$1042,817,255,255,255$1046,817,255,255,255$1047,817,255,255,255$1054,817,0,0,0$1055,817,0,0,0$1056,817,0,0,0$1057,817,0,0,0$1058,817,0,0,0$1059,817,0,0,0$1060,817,0,0,0$1067,817,255,255,255$1068,817,255,255,255$1071,817,255,255,255$1072,817,255,255,255$1073,817,255,255,255$1074,817,255,255,255$1075,817,255,255,255$1076,817,255,255,255$1077,817,255,255,255$1078,817,255,255,255$1080,817,0,0,0$1081,817,0,0,0$1082,817,0,0,0$1084,817,255,255,255$1085,817,255,255,255$1087,817,0,0,0$1088,817,0,0,0$1089,817,0,0,0$1090,817,0,0,0$1091,817,0,0,0$1092,817,0,0,0$1093,817,0,0,0$1094,817,0,0,0$1095,817,0,0,0$1097,817,255,255,255$1098,817,255,255,255$1099,817,255,255,255$1100,817,0,0,0$1101,817,0,0,0$1104,817,255,255,255$1105,817,255,255,255$1106,817,255,255,255$1108,817,255,255,255$1109,817,255,255,255$1110,817,255,255,255$1113,817,255,255,255$1114,817,255,255,255$1115,817,255,255,255$1117,817,0,0,0$1119,817,255,255,255$1120,817,255,255,255$1122,817,0,0,0$1123,817,0,0,0$1124,817,0,0,0$1125,817,0,0,0$1126,817,0,0,0$1127,817,0,0,0$1128,817,0,0,0$1034,818,0,0,0$1035,818,0,0,0$1036,818,0,0,0$1037,818,0,0,0$1038,818,0,0,0$1039,818,0,0,0$1040,818,0,0,0$1041,818,0,0,0$1042,818,0,0,0$1043,818,0,0,0$1044,818,0,0,0$1046,818,255,255,255$1047,818,255,255,255$1049,818,0,0,0$1050,818,0,0,0$1051,818,0,0,0$1053,818,255,255,255$1054,818,255,255,255$1055,818,255,255,255$1056,818,255,255,255$1057,818,255,255,255$1058,818,255,255,255$1060,818,0,0,0$1062,818,255,255,255$1063,818,255,255,255$1066,818,255,255,255$1067,818,255,255,255$1069,818,0,0,0$1071,818,255,255,255$1072,818,255,255,255$1073,818,255,255,255$1074,818,255,255,255$1075,818,255,255,255$1076,818,255,255,255$1077,818,255,255,255$1078,818,255,255,255$1080,818,0,0,0$1081,818,0,0,0$1082,818,0,0,0$1084,818,255,255,255$1085,818,255,255,255$1087,818,0,0,0$1088,818,0,0,0$1089,818,0,0,0$1090,818,0,0,0$1091,818,0,0,0$1092,818,0,0,0$1093,818,0,0,0$1094,818,0,0,0$1095,818,0,0,0$1097,818,255,255,255$1098,818,255,255,255$1100,818,0,0,0$1101,818,0,0,0$1102,818,0,0,0$1104,818,255,255,255$1105,818,255,255,255$1107,818,0,0,0$1109,818,255,255,255$1110,818,255,255,255$1113,818,255,255,255$1114,818,255,255,255$1116,818,0,0,0$1117,818,0,0,0$1119,818,255,255,255$1120,818,255,255,255$1122,818,0,0,0$1123,818,0,0,0$1124,818,0,0,0$1125,818,0,0,0$1126,818,0,0,0$1127,818,0,0,0$1128,818,0,0,0$1034,819,0,0,0$1035,819,0,0,0$1036,819,0,0,0$1037,819,0,0,0$1038,819,0,0,0$1040,819,255,255,255$1041,819,255,255,255$1043,819,0,0,0$1044,819,0,0,0$1046,819,255,255,255$1047,819,255,255,255$1048,819,255,255,255$1049,819,255,255,255$1050,819,255,255,255$1052,819,255,255,255$1053,819,255,255,255$1054,819,255,255,255$1055,819,255,255,255$1056,819,255,255,255$1057,819,255,255,255$1058,819,255,255,255$1060,819,0,0,0$1062,819,255,255,255$1063,819,255,255,255$1066,819,255,255,255$1067,819,255,255,255$1069,819,0,0,0$1070,819,0,0,0$1071,819,0,0,0$1073,819,255,255,255$1074,819,255,255,255$1076,819,0,0,0$1077,819,0,0,0$1078,819,0,0,0$1079,819,0,0,0$1080,819,0,0,0$1081,819,0,0,0$1082,819,0,0,0$1084,819,255,255,255$1085,819,255,255,255$1087,819,0,0,0$1088,819,0,0,0$1089,819,0,0,0$1090,819,0,0,0$1091,819,0,0,0$1092,819,0,0,0$1093,819,0,0,0$1094,819,0,0,0$1095,819,0,0,0$1097,819,255,255,255$1098,819,255,255,255$1100,819,0,0,0$1101,819,0,0,0$1102,819,0,0,0$1104,819,255,255,255$1105,819,255,255,255$1107,819,0,0,0$1109,819,255,255,255$1110,819,255,255,255$1112,819,255,255,255$1113,819,255,255,255$1114,819,255,255,255$1119,819,255,255,255$1120,819,255,255,255$1122,819,0,0,0$1123,819,0,0,0$1124,819,0,0,0$1125,819,0,0,0$1126,819,0,0,0$1127,819,0,0,0$1128,819,0,0,0$1034,820,0,0,0$1035,820,0,0,0$1036,820,0,0,0$1037,820,0,0,0$1038,820,0,0,0$1039,820,0,0,0$1040,820,255,255,255$1041,820,255,255,255$1046,820,255,255,255$1047,820,255,255,255$1048,820,255,255,255$1049,820,255,255,255$1050,820,255,255,255$1052,820,0,0,0$1053,820,0,0,0$1054,820,0,0,0$1056,820,255,255,255$1057,820,255,255,255$1060,820,0,0,0$1063,820,255,255,255$1064,820,255,255,255$1065,820,255,255,255$1066,820,255,255,255$1069,820,0,0,0$1070,820,0,0,0$1071,820,0,0,0$1073,820,255,255,255$1074,820,255,255,255$1076,820,0,0,0$1080,820,0,0,0$1081,820,0,0,0$1082,820,0,0,0$1084,820,255,255,255$1085,820,255,255,255$1087,820,0,0,0$1088,820,0,0,0$1089,820,0,0,0$1090,820,0,0,0$1091,820,0,0,0$1092,820,0,0,0$1093,820,0,0,0$1094,820,0,0,0$1095,820,0,0,0$1097,820,255,255,255$1098,820,255,255,255$1100,820,0,0,0$1101,820,0,0,0$1102,820,0,0,0$1104,820,255,255,255$1105,820,255,255,255$1107,820,0,0,0$1109,820,255,255,255$1110,820,255,255,255$1112,820,255,255,255$1113,820,255,255,255$1114,820,255,255,255$1115,820,255,255,255$1116,820,255,255,255$1117,820,255,255,255$1118,820,255,255,255$1119,820,255,255,255$1120,820,255,255,255$1122,820,0,0,0$1123,820,0,0,0$1124,820,0,0,0$1125,820,0,0,0$1126,820,0,0,0$1127,820,0,0,0$1128,820,0,0,0$1034,821,0,0,0$1035,821,0,0,0$1036,821,0,0,0$1037,821,0,0,0$1038,821,0,0,0$1039,821,0,0,0$1041,821,255,255,255$1042,821,255,255,255$1046,821,255,255,255$1047,821,255,255,255$1050,821,255,255,255$1052,821,0,0,0$1056,821,255,255,255$1057,821,255,255,255$1059,821,0,0,0$1060,821,0,0,0$1061,821,0,0,0$1063,821,255,255,255$1064,821,255,255,255$1065,821,255,255,255$1066,821,255,255,255$1068,821,0,0,0$1069,821,0,0,0$1070,821,0,0,0$1071,821,0,0,0$1074,821,255,255,255$1077,821,255,255,255$1080,821,0,0,0$1081,821,0,0,0$1083,821,255,255,255$1084,821,255,255,255$1085,821,255,255,255$1086,821,255,255,255$1096,821,255,255,255$1097,821,255,255,255$1098,821,255,255,255$1099,821,255,255,255$1101,821,0,0,0$1102,821,0,0,0$1104,821,255,255,255$1105,821,255,255,255$1107,821,0,0,0$1109,821,255,255,255$1110,821,255,255,255$1112,821,255,255,255$1113,821,255,255,255$1114,821,255,255,255$1115,821,255,255,255$1116,821,255,255,255$1117,821,255,255,255$1118,821,255,255,255$1119,821,255,255,255$1122,821,0,0,0$1123,821,0,0,0$1124,821,0,0,0$1125,821,0,0,0$1126,821,0,0,0$1127,821,0,0,0$1128,821,0,0,0$1034,822,0,0,0$1035,822,0,0,0$1036,822,0,0,0$1037,822,0,0,0$1038,822,0,0,0$1039,822,0,0,0$1040,822,0,0,0$1046,822,255,255,255$1050,822,255,255,255$1052,822,0,0,0$1054,822,255,255,255$1055,822,255,255,255$1056,822,255,255,255$1057,822,255,255,255$1058,822,0,0,0$1059,822,0,0,0$1060,822,0,0,0$1061,822,0,0,0$1063,822,255,255,255$1064,822,255,255,255$1065,822,255,255,255$1066,822,255,255,255$1068,822,0,0,0$1069,822,0,0,0$1070,822,0,0,0$1071,822,0,0,0$1074,822,255,255,255$1075,822,255,255,255$1077,822,255,255,255$1080,822,0,0,0$1081,822,0,0,0$1082,822,255,255,255$1083,822,255,255,255$1084,822,255,255,255$1085,822,255,255,255$1086,822,255,255,255$1087,822,255,255,255$1088,822,255,255,255$1089,822,255,255,255$1090,822,255,255,255$1091,822,255,255,255$1092,822,255,255,255$1093,822,255,255,255$1094,822,255,255,255$1095,822,255,255,255$1096,822,255,255,255$1097,822,255,255,255$1098,822,255,255,255$1099,822,255,255,255$1100,822,255,255,255$1102,822,0,0,0$1104,822,255,255,255$1105,822,255,255,255$1107,822,0,0,0$1109,822,255,255,255$1110,822,255,255,255$1122,822,0,0,0$1123,822,0,0,0$1124,822,0,0,0$1125,822,0,0,0$1126,822,0,0,0$1127,822,0,0,0$1128,822,0,0,0$1034,823,0,0,0$1035,823,0,0,0$1036,823,0,0,0$1037,823,0,0,0$1038,823,0,0,0$1039,823,0,0,0$1040,823,0,0,0$1046,823,255,255,255$1050,823,255,255,255$1052,823,0,0,0$1056,823,255,255,255$1057,823,255,255,255$1058,823,0,0,0$1059,823,0,0,0$1060,823,0,0,0$1061,823,0,0,0$1062,823,0,0,0$1064,823,255,255,255$1065,823,255,255,255$1068,823,0,0,0$1069,823,0,0,0$1070,823,0,0,0$1071,823,0,0,0$1072,823,0,0,0$1074,823,255,255,255$1075,823,255,255,255$1077,823,255,255,255$1079,823,0,0,0$1080,823,0,0,0$1081,823,0,0,0$1083,823,255,255,255$1084,823,255,255,255$1085,823,255,255,255$1086,823,255,255,255$1096,823,255,255,255$1097,823,255,255,255$1098,823,255,255,255$1099,823,255,255,255$1101,823,0,0,0$1102,823,0,0,0$1104,823,255,255,255$1105,823,255,255,255$1107,823,0,0,0$1109,823,255,255,255$1122,823,0,0,0$1123,823,0,0,0$1124,823,0,0,0$1125,823,0,0,0$1126,823,0,0,0$1127,823,0,0,0$1128,823,0,0,0$1034,824,0,0,0$1035,824,0,0,0$1036,824,0,0,0$1037,824,0,0,0$1038,824,0,0,0$1039,824,0,0,0$1040,824,0,0,0$1041,824,0,0,0$1046,824,255,255,255$1050,824,255,255,255$1052,824,0,0,0$1053,824,0,0,0$1054,824,0,0,0$1056,824,255,255,255$1057,824,255,255,255$1058,824,0,0,0$1059,824,0,0,0$1060,824,0,0,0$1061,824,0,0,0$1062,824,0,0,0$1064,824,255,255,255$1065,824,255,255,255$1067,824,0,0,0$1068,824,0,0,0$1069,824,0,0,0$1070,824,0,0,0$1071,824,0,0,0$1072,824,0,0,0$1074,824,255,255,255$1075,824,255,255,255$1077,824,255,255,255$1079,824,0,0,0$1080,824,0,0,0$1081,824,0,0,0$1082,824,0,0,0$1084,824,255,255,255$1085,824,255,255,255$1087,824,0,0,0$1088,824,0,0,0$1089,824,0,0,0$1090,824,0,0,0$1091,824,0,0,0$1092,824,0,0,0$1093,824,0,0,0$1094,824,0,0,0$1095,824,0,0,0$1097,824,255,255,255$1098,824,255,255,255$1100,824,0,0,0$1101,824,0,0,0$1102,824,0,0,0$1104,824,255,255,255$1105,824,255,255,255$1107,824,0,0,0$1109,824,255,255,255$1113,824,255,255,255$1114,824,255,255,255$1115,824,255,255,255$1116,824,255,255,255$1117,824,255,255,255$1118,824,255,255,255$1119,824,255,255,255$1120,824,255,255,255$1122,824,0,0,0$1123,824,0,0,0$1124,824,0,0,0$1125,824,0,0,0$1126,824,0,0,0$1127,824,0,0,0$1128,824,0,0,0$1034,825,0,0,0$1035,825,0,0,0$1036,825,0,0,0$1037,825,0,0,0$1038,825,0,0,0$1039,825,0,0,0$1040,825,0,0,0$1046,825,255,255,255$1050,825,255,255,255$1056,825,255,255,255$1057,825,255,255,255$1059,825,0,0,0$1060,825,0,0,0$1061,825,0,0,0$1062,825,0,0,0$1064,825,255,255,255$1065,825,255,255,255$1067,825,0,0,0$1068,825,0,0,0$1069,825,0,0,0$1070,825,0,0,0$1071,825,0,0,0$1072,825,0,0,0$1074,825,255,255,255$1075,825,255,255,255$1076,825,255,255,255$1079,825,0,0,0$1080,825,0,0,0$1081,825,0,0,0$1082,825,0,0,0$1084,825,255,255,255$1085,825,255,255,255$1087,825,0,0,0$1088,825,0,0,0$1089,825,0,0,0$1090,825,0,0,0$1091,825,0,0,0$1092,825,0,0,0$1093,825,0,0,0$1094,825,0,0,0$1095,825,0,0,0$1097,825,255,255,255$1098,825,255,255,255$1100,825,0,0,0$1101,825,0,0,0$1102,825,0,0,0$1104,825,255,255,255$1105,825,255,255,255$1109,825,255,255,255$1111,825,0,0,0$1113,825,255,255,255$1114,825,255,255,255$1119,825,255,255,255$1120,825,255,255,255$1122,825,0,0,0$1123,825,0,0,0$1124,825,0,0,0$1125,825,0,0,0$1126,825,0,0,0$1127,825,0,0,0$1128,825,0,0,0$1034,826,0,0,0$1035,826,0,0,0$1036,826,0,0,0$1037,826,0,0,0$1038,826,0,0,0$1039,826,0,0,0$1040,826,0,0,0$1042,826,255,255,255$1046,826,255,255,255$1050,826,255,255,255$1055,826,255,255,255$1056,826,255,255,255$1057,826,255,255,255$1059,826,0,0,0$1060,826,0,0,0$1061,826,0,0,0$1062,826,0,0,0$1064,826,255,255,255$1065,826,255,255,255$1067,826,0,0,0$1068,826,0,0,0$1069,826,0,0,0$1074,826,255,255,255$1075,826,255,255,255$1076,826,255,255,255$1078,826,0,0,0$1079,826,0,0,0$1080,826,0,0,0$1081,826,0,0,0$1082,826,0,0,0$1087,826,0,0,0$1088,826,0,0,0$1089,826,0,0,0$1090,826,0,0,0$1091,826,0,0,0$1092,826,0,0,0$1093,826,0,0,0$1094,826,0,0,0$1095,826,0,0,0$1097,826,255,255,255$1098,826,255,255,255$1100,826,0,0,0$1101,826,0,0,0$1102,826,0,0,0$1103,826,0,0,0$1105,826,255,255,255$1106,826,255,255,255$1108,826,255,255,255$1111,826,0,0,0$1116,826,0,0,0$1117,826,0,0,0$1118,826,0,0,0$1120,826,255,255,255$1122,826,0,0,0$1123,826,0,0,0$1124,826,0,0,0$1125,826,0,0,0$1126,826,0,0,0$1127,826,0,0,0$1128,826,0,0,0$1034,827,0,0,0$1035,827,0,0,0$1036,827,0,0,0$1037,827,0,0,0$1038,827,0,0,0$1039,827,0,0,0$1040,827,0,0,0$1042,827,255,255,255$1044,827,0,0,0$1046,827,255,255,255$1056,827,255,255,255$1057,827,255,255,255$1059,827,0,0,0$1060,827,0,0,0$1061,827,0,0,0$1062,827,0,0,0$1064,827,255,255,255$1065,827,255,255,255$1068,827,0,0,0$1069,827,0,0,0$1073,827,255,255,255$1074,827,255,255,255$1075,827,255,255,255$1076,827,255,255,255$1078,827,0,0,0$1079,827,0,0,0$1080,827,0,0,0$1081,827,0,0,0$1082,827,0,0,0$1087,827,0,0,0$1088,827,0,0,0$1089,827,0,0,0$1090,827,0,0,0$1091,827,0,0,0$1092,827,0,0,0$1093,827,0,0,0$1094,827,0,0,0$1095,827,0,0,0$1097,827,255,255,255$1098,827,255,255,255$1100,827,0,0,0$1101,827,0,0,0$1102,827,0,0,0$1103,827,0,0,0$1106,827,255,255,255$1107,827,255,255,255$1108,827,255,255,255$1110,827,0,0,0$1111,827,0,0,0$1116,827,0,0,0$1117,827,0,0,0$1118,827,0,0,0$1120,827,255,255,255$1122,827,0,0,0$1123,827,0,0,0$1124,827,0,0,0$1125,827,0,0,0$1126,827,0,0,0$1127,827,0,0,0$1128,827,0,0,0$1034,828,0,0,0$1035,828,0,0,0$1036,828,0,0,0$1037,828,0,0,0$1038,828,0,0,0$1039,828,0,0,0$1040,828,0,0,0$1044,828,0,0,0$1052,828,0,0,0$1053,828,0,0,0$1056,828,255,255,255$1059,828,0,0,0$1060,828,0,0,0$1061,828,0,0,0$1062,828,0,0,0$1063,828,255,255,255$1064,828,255,255,255$1065,828,255,255,255$1066,828,255,255,255$1068,828,0,0,0$1069,828,0,0,0$1075,828,255,255,255$1077,828,0,0,0$1078,828,0,0,0$1079,828,0,0,0$1080,828,0,0,0$1081,828,0,0,0$1082,828,0,0,0$1087,828,0,0,0$1088,828,0,0,0$1089,828,0,0,0$1090,828,0,0,0$1091,828,0,0,0$1092,828,0,0,0$1093,828,0,0,0$1094,828,0,0,0$1095,828,0,0,0$1097,828,255,255,255$1100,828,0,0,0$1101,828,0,0,0$1102,828,0,0,0$1103,828,0,0,0$1104,828,0,0,0$1106,828,255,255,255$1107,828,255,255,255$1108,828,255,255,255$1110,828,0,0,0$1111,828,0,0,0$1116,828,0,0,0$1117,828,0,0,0$1118,828,0,0,0$1120,828,255,255,255$1122,828,0,0,0$1123,828,0,0,0$1124,828,0,0,0$1125,828,0,0,0$1126,828,0,0,0$1127,828,0,0,0$1128,828,0,0,0$1034,829,0,0,0$1035,829,0,0,0$1036,829,0,0,0$1037,829,0,0,0$1038,829,0,0,0$1039,829,0,0,0$1044,829,0,0,0$1052,829,0,0,0$1053,829,0,0,0$1054,829,0,0,0$1056,829,255,255,255$1058,829,0,0,0$1059,829,0,0,0$1060,829,0,0,0$1061,829,0,0,0$1063,829,255,255,255$1064,829,255,255,255$1065,829,255,255,255$1066,829,255,255,255$1068,829,0,0,0$1069,829,0,0,0$1070,829,0,0,0$1071,829,0,0,0$1072,829,0,0,0$1075,829,255,255,255$1077,829,0,0,0$1078,829,0,0,0$1079,829,0,0,0$1080,829,0,0,0$1081,829,0,0,0$1082,829,0,0,0$1087,829,0,0,0$1088,829,0,0,0$1089,829,0,0,0$1090,829,0,0,0$1091,829,0,0,0$1092,829,0,0,0$1093,829,0,0,0$1094,829,0,0,0$1095,829,0,0,0$1097,829,255,255,255$1100,829,0,0,0$1101,829,0,0,0$1102,829,0,0,0$1103,829,0,0,0$1104,829,0,0,0$1106,829,255,255,255$1107,829,255,255,255$1108,829,255,255,255$1111,829,0,0,0$1116,829,0,0,0$1117,829,0,0,0$1118,829,0,0,0$1120,829,255,255,255$1122,829,0,0,0$1123,829,0,0,0$1124,829,0,0,0$1125,829,0,0,0$1126,829,0,0,0$1127,829,0,0,0$1128,829,0,0,0$1034,830,0,0,0$1035,830,0,0,0$1036,830,0,0,0$1037,830,0,0,0$1038,830,0,0,0$1039,830,0,0,0$1041,830,255,255,255$1044,830,0,0,0$1046,830,255,255,255$1052,830,0,0,0$1056,830,255,255,255$1058,830,0,0,0$1059,830,0,0,0$1060,830,0,0,0$1063,830,255,255,255$1069,830,0,0,0$1070,830,0,0,0$1071,830,0,0,0$1072,830,0,0,0$1073,830,0,0,0$1075,830,255,255,255$1079,830,0,0,0$1080,830,0,0,0$1081,830,0,0,0$1084,830,255,255,255$1087,830,0,0,0$1088,830,0,0,0$1089,830,0,0,0$1090,830,0,0,0$1091,830,0,0,0$1092,830,0,0,0$1093,830,0,0,0$1094,830,0,0,0$1095,830,0,0,0$1097,830,255,255,255$1100,830,0,0,0$1101,830,0,0,0$1102,830,0,0,0$1105,830,255,255,255$1109,830,255,255,255$1120,830,255,255,255$1122,830,0,0,0$1123,830,0,0,0$1124,830,0,0,0$1125,830,0,0,0$1126,830,0,0,0$1127,830,0,0,0$1128,830,0,0,0$1034,831,0,0,0$1035,831,0,0,0$1036,831,0,0,0$1037,831,0,0,0$1038,831,0,0,0$1043,831,0,0,0$1052,831,0,0,0$1058,831,0,0,0$1059,831,0,0,0$1060,831,0,0,0$1070,831,0,0,0$1071,831,0,0,0$1072,831,0,0,0$1073,831,0,0,0$1080,831,0,0,0$1087,831,0,0,0$1088,831,0,0,0$1089,831,0,0,0$1090,831,0,0,0$1091,831,0,0,0$1092,831,0,0,0$1093,831,0,0,0$1094,831,0,0,0$1095,831,0,0,0$1100,831,0,0,0$1101,831,0,0,0$1102,831,0,0,0$1107,831,0,0,0$1122,831,0,0,0$1123,831,0,0,0$1124,831,0,0,0$1125,831,0,0,0$1126,831,0,0,0$1127,831,0,0,0$1128,831,0,0,0$1034,832,0,0,0$1035,832,0,0,0$1036,832,0,0,0$1037,832,0,0,0$1038,832,0,0,0$1039,832,0,0,0$1041,832,0,0,0$1042,832,0,0,0$1043,832,0,0,0$1044,832,0,0,0$1046,832,0,0,0$1047,832,0,0,0$1048,832,0,0,0$1050,832,0,0,0$1051,832,0,0,0$1052,832,0,0,0$1057,832,0,0,0$1058,832,0,0,0$1059,832,0,0,0$1060,832,0,0,0$1064,832,0,0,0$1065,832,0,0,0$1066,832,0,0,0$1069,832,0,0,0$1070,832,0,0,0$1071,832,0,0,0$1072,832,0,0,0$1073,832,0,0,0$1074,832,0,0,0$1075,832,0,0,0$1079,832,0,0,0$1080,832,0,0,0$1081,832,0,0,0$1085,832,0,0,0$1086,832,0,0,0$1087,832,0,0,0$1088,832,0,0,0$1089,832,0,0,0$1090,832,0,0,0$1091,832,0,0,0$1092,832,0,0,0$1093,832,0,0,0$1094,832,0,0,0$1095,832,0,0,0$1096,832,0,0,0$1097,832,0,0,0$1098,832,0,0,0$1099,832,0,0,0$1100,832,0,0,0$1101,832,0,0,0$1102,832,0,0,0$1106,832,0,0,0$1107,832,0,0,0$1108,832,0,0,0$1109,832,0,0,0$1120,832,0,0,0$1121,832,0,0,0$1122,832,0,0,0$1123,832,0,0,0$1124,832,0,0,0$1125,832,0,0,0$1126,832,0,0,0$1127,832,0,0,0$1128,832,0,0,0$1034,833,0,0,0$1035,833,0,0,0$1036,833,0,0,0$1037,833,0,0,0$1038,833,0,0,0$1039,833,0,0,0$1040,833,0,0,0$1041,833,0,0,0$1042,833,0,0,0$1043,833,0,0,0$1044,833,0,0,0$1045,833,0,0,0$1046,833,0,0,0$1047,833,0,0,0$1048,833,0,0,0$1049,833,0,0,0$1050,833,0,0,0$1051,833,0,0,0$1052,833,0,0,0$1053,833,0,0,0$1054,833,0,0,0$1055,833,0,0,0$1056,833,0,0,0$1057,833,0,0,0$1058,833,0,0,0$1059,833,0,0,0$1060,833,0,0,0$1061,833,0,0,0$1062,833,0,0,0$1063,833,0,0,0$1064,833,0,0,0$1065,833,0,0,0$1066,833,0,0,0$1067,833,0,0,0$1068,833,0,0,0$1069,833,0,0,0$1070,833,0,0,0$1071,833,0,0,0$1072,833,0,0,0$1073,833,0,0,0$1074,833,0,0,0$1075,833,0,0,0$1076,833,0,0,0$1077,833,0,0,0$1078,833,0,0,0$1079,833,0,0,0$1080,833,0,0,0$1081,833,0,0,0$1082,833,0,0,0$1083,833,0,0,0$1084,833,0,0,0$1085,833,0,0,0$1086,833,0,0,0$1087,833,0,0,0$1088,833,0,0,0$1089,833,0,0,0$1090,833,0,0,0$1091,833,0,0,0$1092,833,0,0,0$1093,833,0,0,0$1094,833,0,0,0$1095,833,0,0,0$1096,833,0,0,0$1097,833,0,0,0$1098,833,0,0,0$1099,833,0,0,0$1100,833,0,0,0$1101,833,0,0,0$1102,833,0,0,0$1103,833,0,0,0$1104,833,0,0,0$1105,833,0,0,0$1106,833,0,0,0$1107,833,0,0,0$1108,833,0,0,0$1109,833,0,0,0$1110,833,0,0,0$1111,833,0,0,0$1112,833,0,0,0$1113,833,0,0,0$1114,833,0,0,0$1115,833,0,0,0$1116,833,0,0,0$1117,833,0,0,0$1118,833,0,0,0$1119,833,0,0,0$1120,833,0,0,0$1121,833,0,0,0$1122,833,0,0,0$1123,833,0,0,0$1124,833,0,0,0$1125,833,0,0,0$1126,833,0,0,0$1127,833,0,0,0$1128,833,0,0,0"); |
| | | private static ColorArray startGameButton = ColorArray.FromThresholdString(130, "756,744,0,0,0$749,744,0,0,0$750,744,0,0,0$752,744,255,255,255$753,744,255,255,255$755,744,0,0,0$757,744,255,255,255$758,744,255,255,255$760,744,0,0,0$761,744,0,0,0$762,744,0,0,0$764,744,255,255,255$765,744,255,255,255$766,744,255,255,255$767,744,255,255,255$768,744,255,255,255$769,744,255,255,255$771,744,0,0,0$773,744,255,255,255$774,744,255,255,255$775,744,0,0,0$776,744,0,0,0$777,744,255,255,255$778,744,255,255,255$779,744,0,0,0$781,744,255,255,255$782,744,255,255,255$783,744,255,255,255$784,744,255,255,255$785,744,255,255,255$786,744,255,255,255$787,744,255,255,255$788,744,255,255,255$789,744,255,255,255$790,744,255,255,255$791,744,255,255,255$792,744,255,255,255$793,744,255,255,255$794,744,255,255,255$795,744,255,255,255$796,744,255,255,255$797,744,0,0,0$798,744,0,0,0$799,744,255,255,255$800,744,255,255,255$802,744,0,0,0$803,744,255,255,255$804,744,255,255,255$806,744,0,0,0$807,744,0,0,0$749,745,0,0,0$751,745,255,255,255$752,745,255,255,255$753,745,255,255,255$754,745,255,255,255$756,745,255,255,255$757,745,255,255,255$758,745,255,255,255$759,745,255,255,255$760,745,255,255,255$761,745,255,255,255$762,745,0,0,0$764,745,255,255,255$765,745,255,255,255$766,745,255,255,255$767,745,255,255,255$768,745,255,255,255$769,745,255,255,255$771,745,0,0,0$773,745,255,255,255$774,745,255,255,255$776,745,255,255,255$777,745,255,255,255$778,745,255,255,255$779,745,0,0,0$781,745,255,255,255$782,745,255,255,255$783,745,255,255,255$784,745,255,255,255$785,745,255,255,255$786,745,255,255,255$787,745,255,255,255$788,745,255,255,255$789,745,255,255,255$790,745,255,255,255$791,745,255,255,255$792,745,255,255,255$793,745,255,255,255$794,745,255,255,255$795,745,255,255,255$796,745,255,255,255$797,745,0,0,0$799,745,255,255,255$800,745,255,255,255$803,745,255,255,255$804,745,255,255,255$806,745,0,0,0$808,745,255,255,255$750,746,255,255,255$751,746,255,255,255$752,746,255,255,255$753,746,255,255,255$754,746,255,255,255$755,746,255,255,255$756,746,255,255,255$757,746,255,255,255$758,746,255,255,255$759,746,255,255,255$760,746,255,255,255$761,746,255,255,255$762,746,0,0,0$768,746,255,255,255$769,746,255,255,255$771,746,0,0,0$772,746,0,0,0$773,746,255,255,255$774,746,255,255,255$776,746,255,255,255$779,746,0,0,0$780,746,0,0,0$782,746,255,255,255$783,746,255,255,255$784,746,255,255,255$793,746,255,255,255$794,746,255,255,255$795,746,255,255,255$797,746,0,0,0$799,746,255,255,255$800,746,255,255,255$801,746,255,255,255$802,746,255,255,255$803,746,255,255,255$804,746,255,255,255$805,746,255,255,255$806,746,0,0,0$808,746,255,255,255$751,747,255,255,255$752,747,255,255,255$757,747,0,0,0$758,747,0,0,0$759,747,0,0,0$760,747,0,0,0$761,747,0,0,0$762,747,0,0,0$766,747,0,0,0$767,747,0,0,0$768,747,255,255,255$769,747,255,255,255$770,747,0,0,0$772,747,255,255,255$773,747,255,255,255$774,747,255,255,255$775,747,255,255,255$776,747,255,255,255$777,747,255,255,255$778,747,255,255,255$779,747,0,0,0$780,747,0,0,0$781,747,0,0,0$782,747,255,255,255$783,747,255,255,255$784,747,255,255,255$785,747,0,0,0$786,747,0,0,0$787,747,0,0,0$788,747,0,0,0$789,747,0,0,0$790,747,0,0,0$791,747,0,0,0$792,747,0,0,0$793,747,255,255,255$794,747,255,255,255$795,747,255,255,255$796,747,0,0,0$797,747,0,0,0$799,747,255,255,255$800,747,255,255,255$801,747,255,255,255$802,747,255,255,255$803,747,255,255,255$804,747,255,255,255$805,747,255,255,255$806,747,0,0,0$807,747,255,255,255$808,747,255,255,255$749,748,0,0,0$750,748,0,0,0$751,748,255,255,255$752,748,255,255,255$753,748,0,0,0$754,748,0,0,0$755,748,0,0,0$757,748,255,255,255$758,748,255,255,255$759,748,255,255,255$760,748,255,255,255$761,748,255,255,255$762,748,0,0,0$763,748,0,0,0$764,748,255,255,255$765,748,255,255,255$768,748,255,255,255$769,748,255,255,255$770,748,0,0,0$771,748,255,255,255$772,748,255,255,255$773,748,255,255,255$774,748,255,255,255$775,748,255,255,255$776,748,255,255,255$777,748,255,255,255$778,748,255,255,255$779,748,0,0,0$780,748,0,0,0$781,748,0,0,0$782,748,255,255,255$783,748,255,255,255$784,748,255,255,255$785,748,0,0,0$786,748,0,0,0$787,748,0,0,0$788,748,0,0,0$789,748,0,0,0$790,748,0,0,0$791,748,0,0,0$792,748,0,0,0$793,748,255,255,255$794,748,255,255,255$795,748,255,255,255$796,748,0,0,0$797,748,0,0,0$798,748,0,0,0$799,748,255,255,255$800,748,255,255,255$802,748,0,0,0$803,748,255,255,255$804,748,255,255,255$807,748,255,255,255$808,748,255,255,255$749,749,0,0,0$751,749,255,255,255$752,749,255,255,255$753,749,255,255,255$754,749,255,255,255$755,749,255,255,255$756,749,255,255,255$757,749,255,255,255$758,749,255,255,255$759,749,255,255,255$760,749,255,255,255$761,749,255,255,255$762,749,0,0,0$763,749,0,0,0$765,749,255,255,255$767,749,255,255,255$768,749,255,255,255$770,749,0,0,0$771,749,0,0,0$772,749,0,0,0$773,749,255,255,255$774,749,255,255,255$776,749,0,0,0$777,749,0,0,0$778,749,0,0,0$779,749,0,0,0$780,749,0,0,0$781,749,0,0,0$782,749,255,255,255$783,749,255,255,255$784,749,255,255,255$785,749,0,0,0$786,749,0,0,0$787,749,0,0,0$788,749,0,0,0$789,749,0,0,0$790,749,0,0,0$791,749,0,0,0$792,749,0,0,0$793,749,255,255,255$794,749,255,255,255$795,749,255,255,255$796,749,0,0,0$797,749,0,0,0$798,749,0,0,0$799,749,255,255,255$800,749,255,255,255$802,749,0,0,0$803,749,255,255,255$804,749,255,255,255$806,749,255,255,255$807,749,255,255,255$808,749,255,255,255$751,750,255,255,255$752,750,255,255,255$753,750,255,255,255$754,750,255,255,255$755,750,255,255,255$756,750,0,0,0$757,750,0,0,0$758,750,0,0,0$759,750,255,255,255$760,750,255,255,255$762,750,0,0,0$763,750,0,0,0$765,750,255,255,255$766,750,255,255,255$767,750,255,255,255$768,750,255,255,255$770,750,0,0,0$771,750,0,0,0$772,750,0,0,0$774,750,255,255,255$775,750,255,255,255$777,750,255,255,255$779,750,0,0,0$780,750,0,0,0$781,750,0,0,0$782,750,255,255,255$783,750,255,255,255$784,750,255,255,255$785,750,0,0,0$786,750,0,0,0$787,750,0,0,0$788,750,0,0,0$789,750,0,0,0$790,750,0,0,0$791,750,0,0,0$792,750,0,0,0$793,750,255,255,255$794,750,255,255,255$795,750,255,255,255$796,750,0,0,0$797,750,0,0,0$798,750,0,0,0$799,750,255,255,255$800,750,255,255,255$802,750,0,0,0$803,750,255,255,255$804,750,255,255,255$806,750,255,255,255$807,750,255,255,255$808,750,255,255,255$751,751,255,255,255$754,751,255,255,255$756,751,0,0,0$757,751,255,255,255$758,751,255,255,255$759,751,255,255,255$760,751,255,255,255$761,751,0,0,0$762,751,0,0,0$763,751,0,0,0$764,751,0,0,0$765,751,255,255,255$766,751,255,255,255$767,751,255,255,255$768,751,255,255,255$769,751,0,0,0$770,751,0,0,0$771,751,0,0,0$772,751,0,0,0$774,751,255,255,255$775,751,255,255,255$777,751,255,255,255$779,751,0,0,0$780,751,0,0,0$781,751,255,255,255$782,751,255,255,255$783,751,255,255,255$784,751,255,255,255$785,751,255,255,255$786,751,255,255,255$787,751,255,255,255$788,751,255,255,255$789,751,255,255,255$790,751,255,255,255$791,751,255,255,255$792,751,255,255,255$793,751,255,255,255$794,751,255,255,255$795,751,255,255,255$796,751,255,255,255$797,751,0,0,0$798,751,0,0,0$799,751,255,255,255$800,751,255,255,255$802,751,0,0,0$803,751,255,255,255$804,751,255,255,255$751,752,255,255,255$754,752,255,255,255$756,752,0,0,0$758,752,255,255,255$759,752,255,255,255$760,752,255,255,255$761,752,0,0,0$762,752,0,0,0$763,752,0,0,0$764,752,0,0,0$765,752,255,255,255$766,752,255,255,255$767,752,255,255,255$769,752,0,0,0$770,752,0,0,0$771,752,0,0,0$772,752,0,0,0$774,752,255,255,255$775,752,255,255,255$777,752,255,255,255$779,752,0,0,0$780,752,0,0,0$781,752,255,255,255$782,752,255,255,255$783,752,255,255,255$784,752,255,255,255$785,752,255,255,255$786,752,255,255,255$787,752,255,255,255$788,752,255,255,255$789,752,255,255,255$790,752,255,255,255$791,752,255,255,255$792,752,255,255,255$793,752,255,255,255$794,752,255,255,255$795,752,255,255,255$797,752,0,0,0$798,752,0,0,0$799,752,255,255,255$800,752,255,255,255$802,752,0,0,0$803,752,255,255,255$804,752,255,255,255$749,753,0,0,0$751,753,255,255,255$754,753,255,255,255$756,753,0,0,0$757,753,0,0,0$759,753,255,255,255$760,753,255,255,255$761,753,0,0,0$762,753,0,0,0$763,753,0,0,0$764,753,0,0,0$766,753,255,255,255$767,753,255,255,255$769,753,0,0,0$770,753,0,0,0$771,753,0,0,0$772,753,0,0,0$774,753,255,255,255$775,753,255,255,255$777,753,255,255,255$778,753,0,0,0$779,753,0,0,0$780,753,0,0,0$781,753,0,0,0$783,753,255,255,255$785,753,0,0,0$786,753,0,0,0$787,753,0,0,0$788,753,0,0,0$789,753,0,0,0$790,753,0,0,0$791,753,0,0,0$792,753,0,0,0$793,753,255,255,255$794,753,255,255,255$796,753,0,0,0$797,753,0,0,0$798,753,0,0,0$799,753,255,255,255$800,753,255,255,255$802,753,0,0,0$803,753,255,255,255$804,753,255,255,255$807,753,255,255,255$808,753,255,255,255$751,754,255,255,255$754,754,255,255,255$759,754,255,255,255$760,754,255,255,255$762,754,0,0,0$763,754,0,0,0$764,754,0,0,0$766,754,255,255,255$767,754,255,255,255$768,754,0,0,0$769,754,0,0,0$770,754,0,0,0$771,754,0,0,0$772,754,0,0,0$773,754,0,0,0$774,754,255,255,255$775,754,255,255,255$776,754,255,255,255$778,754,0,0,0$779,754,0,0,0$780,754,0,0,0$781,754,0,0,0$783,754,255,255,255$785,754,0,0,0$786,754,0,0,0$787,754,0,0,0$788,754,0,0,0$789,754,0,0,0$790,754,0,0,0$791,754,0,0,0$792,754,0,0,0$793,754,255,255,255$794,754,255,255,255$796,754,0,0,0$797,754,0,0,0$798,754,0,0,0$799,754,255,255,255$800,754,255,255,255$803,754,255,255,255$804,754,255,255,255$805,754,0,0,0$807,754,255,255,255$808,754,255,255,255$749,755,0,0,0$751,755,255,255,255$754,755,255,255,255$756,755,255,255,255$757,755,255,255,255$758,755,255,255,255$759,755,255,255,255$760,755,255,255,255$761,755,255,255,255$762,755,0,0,0$763,755,0,0,0$764,755,0,0,0$766,755,255,255,255$767,755,255,255,255$769,755,0,0,0$770,755,0,0,0$774,755,255,255,255$775,755,255,255,255$776,755,255,255,255$778,755,0,0,0$779,755,0,0,0$780,755,0,0,0$781,755,0,0,0$783,755,255,255,255$785,755,0,0,0$786,755,0,0,0$787,755,0,0,0$788,755,0,0,0$789,755,0,0,0$790,755,0,0,0$791,755,0,0,0$792,755,0,0,0$793,755,255,255,255$794,755,255,255,255$796,755,0,0,0$797,755,0,0,0$798,755,0,0,0$800,755,255,255,255$801,755,255,255,255$802,755,255,255,255$803,755,255,255,255$805,755,0,0,0$807,755,255,255,255$749,756,0,0,0$751,756,255,255,255$754,756,255,255,255$759,756,255,255,255$760,756,255,255,255$762,756,0,0,0$763,756,0,0,0$764,756,0,0,0$766,756,255,255,255$767,756,255,255,255$769,756,0,0,0$770,756,0,0,0$771,756,255,255,255$772,756,255,255,255$773,756,255,255,255$774,756,255,255,255$775,756,255,255,255$776,756,255,255,255$777,756,0,0,0$778,756,0,0,0$779,756,0,0,0$780,756,0,0,0$781,756,0,0,0$783,756,255,255,255$785,756,0,0,0$786,756,0,0,0$787,756,0,0,0$788,756,0,0,0$789,756,0,0,0$790,756,0,0,0$791,756,0,0,0$792,756,0,0,0$793,756,255,255,255$794,756,255,255,255$796,756,0,0,0$797,756,0,0,0$798,756,0,0,0$799,756,0,0,0$801,756,255,255,255$802,756,255,255,255$804,756,0,0,0$805,756,0,0,0$807,756,255,255,255$749,757,0,0,0$750,757,0,0,0$751,757,255,255,255$753,757,0,0,0$754,757,255,255,255$756,757,0,0,0$757,757,0,0,0$758,757,0,0,0$759,757,255,255,255$760,757,255,255,255$761,757,0,0,0$762,757,0,0,0$763,757,0,0,0$764,757,0,0,0$765,757,255,255,255$766,757,255,255,255$767,757,255,255,255$768,757,255,255,255$769,757,0,0,0$770,757,0,0,0$771,757,0,0,0$772,757,0,0,0$773,757,0,0,0$775,757,255,255,255$777,757,0,0,0$778,757,0,0,0$779,757,0,0,0$780,757,0,0,0$781,757,0,0,0$783,757,255,255,255$785,757,0,0,0$786,757,0,0,0$787,757,0,0,0$788,757,0,0,0$789,757,0,0,0$790,757,0,0,0$791,757,0,0,0$792,757,0,0,0$793,757,255,255,255$794,757,255,255,255$796,757,0,0,0$797,757,0,0,0$798,757,0,0,0$799,757,0,0,0$801,757,255,255,255$802,757,255,255,255$803,757,255,255,255$805,757,0,0,0$807,757,255,255,255"); |
| | | /// <summary> |
| | | /// 查找DNF窗口 |
| | | /// </summary> |
| | |
| | | public static bool IsInSaiLiYaHouse(ZTRectangle gameRect) |
| | | { |
| | | ZTRectangle mailText = ZTRectangle.Empty; |
| | | Structs.ZTPoint limitPoint = gameRect.GetRatioPoint(0.667f); |
| | | ZTRectangle limit = new ZTRectangle(limitPoint.X, gameRect.Start.Y, gameRect.End.X, gameRect.End.Y); |
| | | |
| | | ZTRectangle limit = new ZTRectangle(gameRect.End.X-210, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y+60); |
| | | //截图 |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | //查找地图右上边的艾尔文防线文字 |
| | | if (CVHelper.FindColorArray(out mailText, image, AierwenText, gameRect)) |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | private static ColorArray UpButton = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "960,295,221,197,147$953,296,221,197,147$953,300,221,197,147$953,305,221,197,147$954,306,221,197,147$957,306,221,197,147$960,306,221,197,147$961,305,221,197,147$961,301,221,197,147$961,296,221,197,147$957,295,221,197,147$954,295,221,197,147$957,299,221,197,147$956,300,221,197,147$958,300,221,197,147$958,301,221,197,147$957,301,221,197,147$956,301,221,197,147$955,302,221,197,147$957,302,221,197,147$959,302,221,197,147"); |
| | | private static ColorArray DownButton = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "953,700,221,197,147$954,699,221,197,147$957,699,221,197,147$960,699,221,197,147$961,700,221,197,147$961,704,221,197,147$961,709,221,197,147$960,710,221,197,147$957,710,221,197,147$954,710,221,197,147$953,709,221,197,147$953,705,221,197,147$955,703,221,197,147$957,703,221,197,147$959,703,221,197,147$958,704,221,197,147$956,704,221,197,147$957,704,221,197,147$957,705,221,197,147$957,706,221,197,147$956,705,221,197,147$958,705,221,197,147"); |
| | | private static ColorArray ScrollButton = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "961,452,221,197,147$954,328,221,197,147$957,328,221,197,147$960,328,221,197,147$961,329,221,197,147$961,333,221,197,147$961,337,221,197,147$961,341,221,197,147$961,345,221,197,147$961,349,221,197,147$961,353,221,197,147$961,451,221,197,147$961,504,221,197,147$961,505,221,197,147$961,549,221,197,147$961,550,221,197,147$961,576,221,197,147$961,575,221,197,147$961,574,221,197,147$961,569,221,197,147$961,567,221,197,147$960,577,221,197,147$958,577,221,197,147$956,577,221,197,147$954,577,221,197,147$953,576,221,197,147$953,575,221,197,147$953,558,221,197,147$953,516,221,197,147$953,515,221,197,147$953,432,221,197,147$953,431,221,197,147$953,388,221,197,147$953,387,221,197,147$953,336,221,197,147$953,331,221,197,147$953,330,221,197,147$953,329,221,197,147"); |
| | | |
| | | /// <summary> |
| | | /// 查找选择角色界面的滚动条 |
| | | /// </summary> |
| | | /// <param name="upButtonRect"></param> |
| | | /// <param name="downButtonRect"></param> |
| | | /// <param name="scrollButtonRect"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | public static bool FindSelectRoleScroll(out ZTRectangle upButtonRect, out ZTRectangle downButtonRect, out ZTRectangle scrollButtonRect, ZTRectangle gameRect) |
| | | { |
| | | upButtonRect = ZTRectangle.Empty; |
| | | downButtonRect = ZTRectangle.Empty; |
| | | scrollButtonRect = ZTRectangle.Empty; |
| | | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | //查找向上按钮 |
| | | if (!CVHelper.FindColorArray(out upButtonRect, image, UpButton, gameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //查找向下按钮 |
| | | if (!CVHelper.FindColorArray(out downButtonRect, image, DownButton, gameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //查找滚动条 |
| | | if (!CVHelper.FindColorArray(out scrollButtonRect, image, ScrollButton, gameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 弹出窗关闭按钮 |
| | | /// </summary> |
| | | private static ColorArray AlterWindowCloseButton = ColorArray.FromThresholdString(107, "1153,291,255,255,255$1151,289,255,255,255$1152,289,255,255,255$1161,289,255,255,255$1162,289,255,255,255$1151,290,0,0,0$1152,290,255,255,255$1153,290,255,255,255$1160,290,255,255,255$1161,290,255,255,255$1152,291,0,0,0$1154,291,255,255,255$1159,291,255,255,255$1160,291,255,255,255$1161,291,0,0,0$1153,292,0,0,0$1154,292,255,255,255$1155,292,255,255,255$1158,292,255,255,255$1159,292,255,255,255$1160,292,0,0,0$1154,293,0,0,0$1155,293,255,255,255$1156,293,255,255,255$1157,293,255,255,255$1158,293,255,255,255$1159,293,0,0,0$1155,294,0,0,0$1156,294,255,255,255$1157,294,255,255,255$1158,294,0,0,0$1148,295,0,0,0$1149,295,0,0,0$1150,295,0,0,0$1151,295,0,0,0$1152,295,0,0,0$1153,295,0,0,0$1155,295,255,255,255$1156,295,255,255,255$1157,295,255,255,255$1158,295,255,255,255$1159,295,0,0,0$1160,295,0,0,0$1161,295,0,0,0$1162,295,0,0,0$1148,296,0,0,0$1149,296,0,0,0$1150,296,0,0,0$1151,296,0,0,0$1152,296,0,0,0$1154,296,255,255,255$1155,296,255,255,255$1156,296,0,0,0$1157,296,0,0,0$1158,296,255,255,255$1159,296,255,255,255$1161,296,0,0,0$1162,296,0,0,0$1148,297,0,0,0$1149,297,0,0,0$1150,297,0,0,0$1151,297,0,0,0$1153,297,255,255,255$1154,297,255,255,255$1155,297,0,0,0$1156,297,0,0,0$1157,297,0,0,0$1158,297,0,0,0$1159,297,255,255,255$1160,297,255,255,255$1162,297,0,0,0$1152,298,255,255,255$1153,298,255,255,255$1154,298,0,0,0$1159,298,0,0,0$1160,298,255,255,255$1161,298,255,255,255$1151,299,255,255,255$1152,299,255,255,255$1153,299,0,0,0$1160,299,0,0,0$1161,299,255,255,255$1162,299,255,255,255$1151,300,0,0,0$1152,300,0,0,0$1161,300,0,0,0$1162,300,0,0,0"); |
| | | private static ColorArray AlterWindowCloseButton = ColorArray.FromThresholdString(107, "965,236,0,0,0$964,234,255,255,255$965,234,255,255,255$970,234,255,255,255$971,234,255,255,255$964,235,0,0,0$965,235,255,255,255$966,235,255,255,255$969,235,255,255,255$970,235,255,255,255$971,235,0,0,0$966,236,255,255,255$967,236,255,255,255$968,236,255,255,255$969,236,255,255,255$970,236,0,0,0$963,237,0,0,0$964,237,0,0,0$965,237,0,0,0$966,237,0,0,0$967,237,255,255,255$968,237,255,255,255$969,237,0,0,0$970,237,0,0,0$971,237,0,0,0$972,237,0,0,0$973,237,0,0,0$974,237,0,0,0$966,238,255,255,255$967,238,255,255,255$968,238,255,255,255$969,238,255,255,255$965,239,255,255,255$966,239,255,255,255$967,239,0,0,0$968,239,0,0,0$969,239,255,255,255$970,239,255,255,255$964,240,255,255,255$965,240,255,255,255$966,240,0,0,0$969,240,0,0,0$970,240,255,255,255$971,240,255,255,255$964,241,0,0,0$965,241,0,0,0$970,241,0,0,0$971,241,0,0,0"); |
| | | |
| | | /// <summary> |
| | | /// 弹出公告的关闭按钮,比弹出窗的关闭按钮小一点 |
| | |
| | | } |
| | | |
| | | ZTLine rightLine = ZTLine.Empty; |
| | | limit = new ZTRectangle(upLine.X + upLine.Length, upLine.Y, upLine.X + upLine.Length + 8, upLine.Y + 30); |
| | | limit = new ZTRectangle(upLine.X + upLine.Length, upLine.Y, upLine.X + upLine.Length + 3, upLine.Y + 30); |
| | | //找右线 |
| | | if (!CVHelper.FindLine(out rightLine, image, 10, limit, Orientation.Vertical, new ZTColor(0, 0, 0))) |
| | | { |
| | |
| | | } |
| | | |
| | | ZTLine downLine = ZTLine.Empty; |
| | | limit = new ZTRectangle(upLine.X, rightLine.Y + rightLine.Length, rightLine.X, rightLine.Y + rightLine.Length + 14); |
| | | limit = new ZTRectangle(upLine.X, rightLine.Y + rightLine.Length, rightLine.X, rightLine.Y + rightLine.Length + 10); |
| | | //找下线 |
| | | if (!CVHelper.FindLine(out downLine, image, 10, limit, Orientation.Horizontal, new ZTColor(0, 0, 0))) |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | private static ZTHsvFloatColor minPilaozhi = new ZTHsvFloatColor(0.566f, 0.998f, 0.943f); |
| | | private static ZTHsvFloatColor maxPilaozhi = new ZTHsvFloatColor(0.570f, 1.0f, 0.947f); |
| | | private static ZTHsvFloatColor minPilaozhi = new ZTHsvFloatColor(0.498f, 0.998f, 0.898f); |
| | | private static ZTHsvFloatColor maxPilaozhi = new ZTHsvFloatColor(0.504f, 1.0f, 0.904f); |
| | | |
| | | private static ZTHsvFloatColor minPilaozhi_last = new ZTHsvFloatColor(0.963f, 0.998f, 0.700f); |
| | | private static ZTHsvFloatColor maxPilaozhi_last = new ZTHsvFloatColor(0.967f, 1.0f, 0.704f); |
| | |
| | | public static Int32 GetPiLaoZhi(ZTRectangle gameRect) |
| | | { |
| | | //疲劳值范围 |
| | | ZTRectangle findLimitRect = new ZTRectangle(gameRect.Start.X + 550, gameRect.End.Y - 55, gameRect.Start.X + 750, gameRect.End.Y - 35); |
| | | ZTRectangle findLimitRect = new ZTRectangle(gameRect.Start.X + 331, gameRect.Start.Y+546, gameRect.Start.X + 500, gameRect.Start.Y+565); |
| | | |
| | | |
| | | //截图 |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | ZTLine line = ZTLine.Empty; |
| | | |
| | | |
| | |
| | | /// <summary> |
| | | /// 所有房间刷完之后奖励文字 |
| | | /// </summary> |
| | | public static ColorArray Jiangli = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "649,65,255,255,255$672,66,255,255,255$600,62,255,255,255$608,67,255,255,255$630,67,255,255,255$669,94,255,255,255$645,90,255,255,255$620,92,255,255,255$654,79,255,255,255"); |
| | | public static ColorArray JiangliText = ColorArray.FromThresholdString(180, "1488,185,255,255,255$1475,185,0,0,0$1476,185,0,0,0$1477,185,0,0,0$1479,185,255,255,255$1480,185,255,255,255$1481,185,255,255,255$1482,185,255,255,255$1484,185,0,0,0$1486,185,255,255,255$1487,185,255,255,255$1489,185,255,255,255$1490,185,255,255,255$1492,185,0,0,0$1493,185,0,0,0$1496,185,255,255,255$1497,185,255,255,255$1498,185,255,255,255$1499,185,255,255,255$1500,185,255,255,255$1501,185,255,255,255$1502,185,255,255,255$1503,185,255,255,255$1504,185,255,255,255$1505,185,255,255,255$1506,185,255,255,255$1507,185,255,255,255$1508,185,255,255,255$1509,185,255,255,255$1510,185,0,0,0$1511,185,0,0,0$1512,185,0,0,0$1513,185,0,0,0$1514,185,0,0,0$1515,185,0,0,0$1516,185,0,0,0$1517,185,0,0,0$1518,185,0,0,0$1519,185,0,0,0$1520,185,255,255,255$1521,185,255,255,255$1522,185,255,255,255$1523,185,255,255,255$1524,185,255,255,255$1525,185,255,255,255$1526,185,255,255,255$1527,185,255,255,255$1528,185,255,255,255$1529,185,255,255,255$1530,185,255,255,255$1531,185,255,255,255$1532,185,255,255,255$1533,185,255,255,255$1534,185,255,255,255$1535,185,255,255,255$1536,185,255,255,255$1538,185,0,0,0$1540,185,255,255,255$1541,185,255,255,255$1542,185,255,255,255$1543,185,255,255,255$1475,186,0,0,0$1476,186,0,0,0$1478,186,255,255,255$1479,186,255,255,255$1480,186,255,255,255$1481,186,255,255,255$1482,186,255,255,255$1483,186,255,255,255$1485,186,255,255,255$1486,186,255,255,255$1487,186,255,255,255$1488,186,255,255,255$1489,186,255,255,255$1490,186,255,255,255$1492,186,0,0,0$1495,186,255,255,255$1496,186,255,255,255$1497,186,255,255,255$1498,186,255,255,255$1499,186,255,255,255$1500,186,255,255,255$1501,186,255,255,255$1502,186,255,255,255$1503,186,255,255,255$1504,186,255,255,255$1505,186,255,255,255$1506,186,255,255,255$1507,186,255,255,255$1508,186,255,255,255$1509,186,255,255,255$1510,186,0,0,0$1511,186,0,0,0$1512,186,0,0,0$1513,186,0,0,0$1514,186,0,0,0$1515,186,0,0,0$1516,186,0,0,0$1517,186,0,0,0$1518,186,0,0,0$1520,186,255,255,255$1521,186,255,255,255$1522,186,255,255,255$1523,186,255,255,255$1524,186,255,255,255$1525,186,255,255,255$1526,186,255,255,255$1527,186,255,255,255$1528,186,255,255,255$1529,186,255,255,255$1530,186,255,255,255$1531,186,255,255,255$1532,186,255,255,255$1533,186,255,255,255$1534,186,255,255,255$1535,186,255,255,255$1536,186,255,255,255$1538,186,0,0,0$1540,186,255,255,255$1541,186,255,255,255$1542,186,255,255,255$1543,186,255,255,255$1475,187,0,0,0$1476,187,0,0,0$1478,187,255,255,255$1479,187,255,255,255$1480,187,255,255,255$1481,187,255,255,255$1482,187,255,255,255$1483,187,255,255,255$1484,187,255,255,255$1485,187,255,255,255$1486,187,255,255,255$1487,187,255,255,255$1488,187,255,255,255$1489,187,255,255,255$1490,187,255,255,255$1494,187,255,255,255$1495,187,255,255,255$1496,187,255,255,255$1497,187,255,255,255$1498,187,255,255,255$1499,187,255,255,255$1500,187,255,255,255$1501,187,255,255,255$1502,187,255,255,255$1503,187,255,255,255$1504,187,255,255,255$1505,187,255,255,255$1506,187,255,255,255$1507,187,255,255,255$1508,187,255,255,255$1510,187,0,0,0$1511,187,0,0,0$1512,187,0,0,0$1513,187,0,0,0$1514,187,0,0,0$1515,187,0,0,0$1516,187,0,0,0$1517,187,0,0,0$1518,187,0,0,0$1520,187,255,255,255$1521,187,255,255,255$1522,187,255,255,255$1523,187,255,255,255$1524,187,255,255,255$1525,187,255,255,255$1526,187,255,255,255$1527,187,255,255,255$1528,187,255,255,255$1529,187,255,255,255$1530,187,255,255,255$1531,187,255,255,255$1532,187,255,255,255$1533,187,255,255,255$1534,187,255,255,255$1535,187,255,255,255$1536,187,255,255,255$1538,187,0,0,0$1539,187,255,255,255$1540,187,255,255,255$1541,187,255,255,255$1542,187,255,255,255$1543,187,255,255,255$1475,188,0,0,0$1476,188,0,0,0$1477,188,0,0,0$1479,188,255,255,255$1480,188,255,255,255$1481,188,255,255,255$1482,188,255,255,255$1483,188,255,255,255$1484,188,255,255,255$1485,188,255,255,255$1486,188,255,255,255$1487,188,255,255,255$1488,188,255,255,255$1489,188,255,255,255$1490,188,255,255,255$1493,188,255,255,255$1494,188,255,255,255$1495,188,255,255,255$1496,188,255,255,255$1497,188,255,255,255$1498,188,255,255,255$1499,188,255,255,255$1500,188,255,255,255$1501,188,255,255,255$1502,188,255,255,255$1503,188,255,255,255$1504,188,255,255,255$1505,188,255,255,255$1506,188,255,255,255$1507,188,255,255,255$1508,188,255,255,255$1510,188,0,0,0$1511,188,0,0,0$1512,188,0,0,0$1513,188,0,0,0$1514,188,0,0,0$1515,188,0,0,0$1516,188,0,0,0$1517,188,0,0,0$1518,188,0,0,0$1520,188,255,255,255$1521,188,255,255,255$1522,188,255,255,255$1523,188,255,255,255$1524,188,255,255,255$1525,188,255,255,255$1526,188,255,255,255$1527,188,255,255,255$1528,188,255,255,255$1529,188,255,255,255$1530,188,255,255,255$1531,188,255,255,255$1532,188,255,255,255$1533,188,255,255,255$1534,188,255,255,255$1535,188,255,255,255$1536,188,255,255,255$1539,188,255,255,255$1540,188,255,255,255$1541,188,255,255,255$1542,188,255,255,255$1543,188,255,255,255$1475,189,0,0,0$1476,189,0,0,0$1477,189,0,0,0$1479,189,255,255,255$1480,189,255,255,255$1481,189,255,255,255$1482,189,255,255,255$1483,189,255,255,255$1484,189,255,255,255$1485,189,255,255,255$1486,189,255,255,255$1487,189,255,255,255$1488,189,255,255,255$1489,189,255,255,255$1492,189,255,255,255$1493,189,255,255,255$1494,189,255,255,255$1495,189,255,255,255$1496,189,255,255,255$1497,189,255,255,255$1498,189,255,255,255$1499,189,255,255,255$1500,189,255,255,255$1501,189,255,255,255$1502,189,255,255,255$1503,189,255,255,255$1504,189,255,255,255$1505,189,255,255,255$1506,189,255,255,255$1507,189,255,255,255$1508,189,255,255,255$1510,189,0,0,0$1511,189,0,0,0$1512,189,0,0,0$1513,189,0,0,0$1514,189,0,0,0$1515,189,0,0,0$1516,189,0,0,0$1517,189,0,0,0$1518,189,0,0,0$1520,189,255,255,255$1521,189,255,255,255$1522,189,255,255,255$1523,189,255,255,255$1537,189,255,255,255$1538,189,255,255,255$1539,189,255,255,255$1540,189,255,255,255$1541,189,255,255,255$1542,189,255,255,255$1543,189,255,255,255$1544,189,255,255,255$1475,190,0,0,0$1476,190,0,0,0$1477,190,0,0,0$1478,190,0,0,0$1480,190,255,255,255$1481,190,255,255,255$1482,190,255,255,255$1485,190,255,255,255$1486,190,255,255,255$1487,190,255,255,255$1488,190,255,255,255$1489,190,255,255,255$1490,190,255,255,255$1491,190,255,255,255$1492,190,255,255,255$1493,190,255,255,255$1494,190,255,255,255$1495,190,255,255,255$1496,190,255,255,255$1497,190,255,255,255$1503,190,255,255,255$1504,190,255,255,255$1505,190,255,255,255$1506,190,255,255,255$1507,190,255,255,255$1508,190,255,255,255$1510,190,0,0,0$1511,190,0,0,0$1512,190,0,0,0$1513,190,0,0,0$1514,190,0,0,0$1515,190,0,0,0$1516,190,0,0,0$1517,190,0,0,0$1518,190,0,0,0$1519,190,255,255,255$1520,190,255,255,255$1521,190,255,255,255$1522,190,255,255,255$1523,190,255,255,255$1525,190,0,0,0$1526,190,0,0,0$1527,190,0,0,0$1528,190,0,0,0$1529,190,0,0,0$1530,190,0,0,0$1531,190,0,0,0$1532,190,0,0,0$1533,190,0,0,0$1534,190,0,0,0$1535,190,0,0,0$1537,190,255,255,255$1538,190,255,255,255$1539,190,255,255,255$1540,190,255,255,255$1541,190,255,255,255$1542,190,255,255,255$1543,190,255,255,255$1544,190,255,255,255$1475,191,0,0,0$1476,191,0,0,0$1477,191,0,0,0$1478,191,0,0,0$1480,191,255,255,255$1481,191,255,255,255$1483,191,0,0,0$1485,191,255,255,255$1486,191,255,255,255$1487,191,255,255,255$1488,191,255,255,255$1489,191,255,255,255$1490,191,255,255,255$1491,191,255,255,255$1492,191,255,255,255$1493,191,255,255,255$1494,191,255,255,255$1495,191,255,255,255$1499,191,0,0,0$1500,191,0,0,0$1501,191,0,0,0$1503,191,255,255,255$1504,191,255,255,255$1505,191,255,255,255$1506,191,255,255,255$1507,191,255,255,255$1509,191,0,0,0$1510,191,0,0,0$1511,191,0,0,0$1512,191,0,0,0$1513,191,0,0,0$1514,191,0,0,0$1515,191,0,0,0$1516,191,0,0,0$1517,191,0,0,0$1519,191,255,255,255$1520,191,255,255,255$1521,191,255,255,255$1522,191,255,255,255$1523,191,255,255,255$1524,191,255,255,255$1525,191,255,255,255$1526,191,255,255,255$1527,191,255,255,255$1528,191,255,255,255$1529,191,255,255,255$1530,191,255,255,255$1531,191,255,255,255$1532,191,255,255,255$1533,191,255,255,255$1534,191,255,255,255$1535,191,255,255,255$1537,191,255,255,255$1538,191,255,255,255$1539,191,255,255,255$1540,191,255,255,255$1541,191,255,255,255$1542,191,255,255,255$1543,191,255,255,255$1544,191,255,255,255$1475,192,0,0,0$1476,192,0,0,0$1477,192,0,0,0$1478,192,0,0,0$1479,192,0,0,0$1484,192,255,255,255$1485,192,255,255,255$1486,192,255,255,255$1487,192,255,255,255$1488,192,255,255,255$1489,192,255,255,255$1490,192,255,255,255$1491,192,255,255,255$1492,192,255,255,255$1493,192,255,255,255$1494,192,255,255,255$1495,192,255,255,255$1496,192,255,255,255$1497,192,255,255,255$1498,192,255,255,255$1502,192,255,255,255$1503,192,255,255,255$1504,192,255,255,255$1505,192,255,255,255$1506,192,255,255,255$1508,192,0,0,0$1509,192,0,0,0$1510,192,0,0,0$1511,192,0,0,0$1512,192,0,0,0$1513,192,0,0,0$1514,192,0,0,0$1515,192,0,0,0$1516,192,0,0,0$1517,192,0,0,0$1519,192,255,255,255$1520,192,255,255,255$1521,192,255,255,255$1522,192,255,255,255$1523,192,255,255,255$1524,192,255,255,255$1525,192,255,255,255$1526,192,255,255,255$1527,192,255,255,255$1528,192,255,255,255$1529,192,255,255,255$1530,192,255,255,255$1531,192,255,255,255$1532,192,255,255,255$1533,192,255,255,255$1534,192,255,255,255$1535,192,255,255,255$1537,192,255,255,255$1538,192,255,255,255$1539,192,255,255,255$1540,192,255,255,255$1541,192,255,255,255$1542,192,255,255,255$1543,192,255,255,255$1544,192,255,255,255$1475,193,0,0,0$1476,193,0,0,0$1477,193,0,0,0$1478,193,0,0,0$1479,193,0,0,0$1482,193,255,255,255$1483,193,255,255,255$1484,193,255,255,255$1485,193,255,255,255$1486,193,255,255,255$1487,193,255,255,255$1488,193,255,255,255$1489,193,255,255,255$1490,193,255,255,255$1491,193,255,255,255$1492,193,255,255,255$1493,193,255,255,255$1494,193,255,255,255$1495,193,255,255,255$1496,193,255,255,255$1497,193,255,255,255$1498,193,255,255,255$1501,193,255,255,255$1502,193,255,255,255$1503,193,255,255,255$1504,193,255,255,255$1505,193,255,255,255$1506,193,255,255,255$1508,193,0,0,0$1509,193,0,0,0$1510,193,0,0,0$1511,193,0,0,0$1512,193,0,0,0$1513,193,0,0,0$1514,193,0,0,0$1515,193,0,0,0$1516,193,0,0,0$1517,193,0,0,0$1519,193,255,255,255$1520,193,255,255,255$1521,193,255,255,255$1522,193,255,255,255$1523,193,255,255,255$1524,193,255,255,255$1525,193,255,255,255$1526,193,255,255,255$1527,193,255,255,255$1528,193,255,255,255$1529,193,255,255,255$1530,193,255,255,255$1531,193,255,255,255$1532,193,255,255,255$1533,193,255,255,255$1534,193,255,255,255$1537,193,255,255,255$1538,193,255,255,255$1539,193,255,255,255$1540,193,255,255,255$1541,193,255,255,255$1542,193,255,255,255$1543,193,255,255,255$1544,193,255,255,255$1475,194,0,0,0$1476,194,0,0,0$1477,194,0,0,0$1480,194,255,255,255$1481,194,255,255,255$1482,194,255,255,255$1483,194,255,255,255$1484,194,255,255,255$1485,194,255,255,255$1486,194,255,255,255$1487,194,255,255,255$1488,194,255,255,255$1491,194,255,255,255$1494,194,255,255,255$1495,194,255,255,255$1496,194,255,255,255$1497,194,255,255,255$1498,194,255,255,255$1499,194,255,255,255$1500,194,255,255,255$1501,194,255,255,255$1502,194,255,255,255$1503,194,255,255,255$1504,194,255,255,255$1505,194,255,255,255$1507,194,0,0,0$1508,194,0,0,0$1509,194,0,0,0$1510,194,0,0,0$1511,194,0,0,0$1512,194,0,0,0$1513,194,0,0,0$1514,194,0,0,0$1515,194,0,0,0$1516,194,0,0,0$1517,194,0,0,0$1519,194,255,255,255$1520,194,255,255,255$1521,194,255,255,255$1522,194,255,255,255$1523,194,255,255,255$1524,194,255,255,255$1525,194,255,255,255$1526,194,255,255,255$1527,194,255,255,255$1528,194,255,255,255$1529,194,255,255,255$1530,194,255,255,255$1531,194,255,255,255$1532,194,255,255,255$1533,194,255,255,255$1534,194,255,255,255$1538,194,255,255,255$1539,194,255,255,255$1540,194,255,255,255$1541,194,255,255,255$1542,194,255,255,255$1544,194,255,255,255$1475,195,0,0,0$1477,195,255,255,255$1478,195,255,255,255$1479,195,255,255,255$1480,195,255,255,255$1481,195,255,255,255$1482,195,255,255,255$1483,195,255,255,255$1484,195,255,255,255$1485,195,255,255,255$1486,195,255,255,255$1487,195,255,255,255$1488,195,255,255,255$1490,195,0,0,0$1492,195,0,0,0$1494,195,255,255,255$1495,195,255,255,255$1496,195,255,255,255$1497,195,255,255,255$1498,195,255,255,255$1499,195,255,255,255$1500,195,255,255,255$1501,195,255,255,255$1502,195,255,255,255$1503,195,255,255,255$1504,195,255,255,255$1506,195,0,0,0$1507,195,0,0,0$1508,195,0,0,0$1509,195,0,0,0$1510,195,0,0,0$1511,195,0,0,0$1512,195,0,0,0$1513,195,0,0,0$1514,195,0,0,0$1515,195,0,0,0$1516,195,0,0,0$1517,195,0,0,0$1519,195,255,255,255$1520,195,255,255,255$1521,195,255,255,255$1522,195,255,255,255$1523,195,255,255,255$1524,195,255,255,255$1525,195,255,255,255$1526,195,255,255,255$1527,195,255,255,255$1528,195,255,255,255$1529,195,255,255,255$1530,195,255,255,255$1531,195,255,255,255$1532,195,255,255,255$1533,195,255,255,255$1534,195,255,255,255$1536,195,0,0,0$1538,195,255,255,255$1539,195,255,255,255$1540,195,255,255,255$1541,195,255,255,255$1544,195,255,255,255$1475,196,0,0,0$1476,196,255,255,255$1477,196,255,255,255$1478,196,255,255,255$1479,196,255,255,255$1480,196,255,255,255$1481,196,255,255,255$1482,196,255,255,255$1483,196,255,255,255$1484,196,255,255,255$1485,196,255,255,255$1486,196,255,255,255$1487,196,255,255,255$1488,196,255,255,255$1490,196,0,0,0$1491,196,0,0,0$1492,196,0,0,0$1493,196,0,0,0$1495,196,255,255,255$1496,196,255,255,255$1497,196,255,255,255$1498,196,255,255,255$1499,196,255,255,255$1500,196,255,255,255$1501,196,255,255,255$1502,196,255,255,255$1503,196,255,255,255$1505,196,0,0,0$1506,196,0,0,0$1507,196,0,0,0$1508,196,0,0,0$1509,196,0,0,0$1510,196,0,0,0$1511,196,0,0,0$1512,196,0,0,0$1513,196,0,0,0$1514,196,0,0,0$1515,196,0,0,0$1516,196,0,0,0$1517,196,0,0,0$1518,196,255,255,255$1519,196,255,255,255$1520,196,255,255,255$1521,196,255,255,255$1522,196,255,255,255$1525,196,255,255,255$1526,196,255,255,255$1527,196,255,255,255$1528,196,255,255,255$1536,196,0,0,0$1538,196,255,255,255$1539,196,255,255,255$1540,196,255,255,255$1541,196,255,255,255$1544,196,255,255,255$1475,197,0,0,0$1477,197,255,255,255$1478,197,255,255,255$1479,197,255,255,255$1480,197,255,255,255$1481,197,255,255,255$1482,197,255,255,255$1483,197,255,255,255$1484,197,255,255,255$1485,197,255,255,255$1486,197,255,255,255$1487,197,255,255,255$1488,197,255,255,255$1490,197,0,0,0$1494,197,255,255,255$1495,197,255,255,255$1496,197,255,255,255$1497,197,255,255,255$1498,197,255,255,255$1499,197,255,255,255$1500,197,255,255,255$1501,197,255,255,255$1502,197,255,255,255$1504,197,0,0,0$1505,197,0,0,0$1506,197,0,0,0$1507,197,0,0,0$1508,197,0,0,0$1509,197,0,0,0$1510,197,0,0,0$1511,197,0,0,0$1512,197,0,0,0$1513,197,0,0,0$1514,197,0,0,0$1515,197,0,0,0$1516,197,0,0,0$1518,197,255,255,255$1519,197,255,255,255$1520,197,255,255,255$1521,197,255,255,255$1522,197,255,255,255$1525,197,255,255,255$1526,197,255,255,255$1527,197,255,255,255$1528,197,255,255,255$1530,197,0,0,0$1531,197,0,0,0$1532,197,0,0,0$1533,197,0,0,0$1534,197,0,0,0$1535,197,0,0,0$1536,197,0,0,0$1537,197,255,255,255$1538,197,255,255,255$1539,197,255,255,255$1540,197,255,255,255$1541,197,255,255,255$1544,197,255,255,255$1475,198,0,0,0$1477,198,255,255,255$1478,198,255,255,255$1479,198,255,255,255$1480,198,255,255,255$1481,198,255,255,255$1482,198,255,255,255$1483,198,255,255,255$1484,198,255,255,255$1485,198,255,255,255$1486,198,255,255,255$1487,198,255,255,255$1488,198,255,255,255$1491,198,255,255,255$1492,198,255,255,255$1493,198,255,255,255$1494,198,255,255,255$1495,198,255,255,255$1496,198,255,255,255$1497,198,255,255,255$1498,198,255,255,255$1499,198,255,255,255$1500,198,255,255,255$1501,198,255,255,255$1503,198,0,0,0$1504,198,0,0,0$1505,198,0,0,0$1506,198,0,0,0$1507,198,0,0,0$1508,198,0,0,0$1509,198,0,0,0$1510,198,0,0,0$1511,198,0,0,0$1512,198,0,0,0$1513,198,0,0,0$1514,198,0,0,0$1515,198,0,0,0$1516,198,0,0,0$1518,198,255,255,255$1519,198,255,255,255$1520,198,255,255,255$1521,198,255,255,255$1522,198,255,255,255$1523,198,0,0,0$1524,198,255,255,255$1525,198,255,255,255$1526,198,255,255,255$1527,198,255,255,255$1528,198,255,255,255$1529,198,255,255,255$1530,198,255,255,255$1531,198,255,255,255$1532,198,255,255,255$1533,198,255,255,255$1535,198,0,0,0$1537,198,255,255,255$1538,198,255,255,255$1539,198,255,255,255$1540,198,255,255,255$1541,198,255,255,255$1543,198,255,255,255$1544,198,255,255,255$1475,199,0,0,0$1477,199,255,255,255$1478,199,255,255,255$1479,199,255,255,255$1483,199,255,255,255$1484,199,255,255,255$1485,199,255,255,255$1486,199,255,255,255$1487,199,255,255,255$1488,199,255,255,255$1489,199,0,0,0$1491,199,255,255,255$1492,199,255,255,255$1493,199,255,255,255$1494,199,255,255,255$1495,199,255,255,255$1496,199,255,255,255$1497,199,255,255,255$1498,199,255,255,255$1499,199,255,255,255$1502,199,0,0,0$1503,199,0,0,0$1504,199,0,0,0$1505,199,0,0,0$1506,199,0,0,0$1507,199,0,0,0$1508,199,0,0,0$1509,199,0,0,0$1510,199,0,0,0$1511,199,0,0,0$1512,199,0,0,0$1513,199,0,0,0$1514,199,0,0,0$1515,199,0,0,0$1516,199,0,0,0$1518,199,255,255,255$1519,199,255,255,255$1520,199,255,255,255$1521,199,255,255,255$1524,199,255,255,255$1525,199,255,255,255$1526,199,255,255,255$1527,199,255,255,255$1528,199,255,255,255$1529,199,255,255,255$1530,199,255,255,255$1531,199,255,255,255$1532,199,255,255,255$1533,199,255,255,255$1535,199,0,0,0$1537,199,255,255,255$1538,199,255,255,255$1539,199,255,255,255$1540,199,255,255,255$1541,199,255,255,255$1543,199,255,255,255$1544,199,255,255,255$1475,200,0,0,0$1476,200,0,0,0$1480,200,0,0,0$1481,200,0,0,0$1483,200,255,255,255$1484,200,255,255,255$1485,200,255,255,255$1486,200,255,255,255$1487,200,255,255,255$1492,200,255,255,255$1493,200,255,255,255$1494,200,255,255,255$1495,200,255,255,255$1496,200,255,255,255$1497,200,255,255,255$1500,200,0,0,0$1501,200,0,0,0$1502,200,0,0,0$1503,200,0,0,0$1504,200,0,0,0$1505,200,0,0,0$1506,200,0,0,0$1507,200,0,0,0$1508,200,0,0,0$1509,200,0,0,0$1510,200,0,0,0$1511,200,0,0,0$1512,200,0,0,0$1513,200,0,0,0$1514,200,0,0,0$1515,200,0,0,0$1516,200,0,0,0$1518,200,255,255,255$1519,200,255,255,255$1520,200,255,255,255$1521,200,255,255,255$1524,200,255,255,255$1525,200,255,255,255$1526,200,255,255,255$1527,200,255,255,255$1528,200,255,255,255$1529,200,255,255,255$1530,200,255,255,255$1531,200,255,255,255$1532,200,255,255,255$1533,200,255,255,255$1535,200,0,0,0$1537,200,255,255,255$1538,200,255,255,255$1539,200,255,255,255$1540,200,255,255,255$1543,200,255,255,255$1544,200,255,255,255$1475,201,0,0,0$1476,201,0,0,0$1478,201,0,0,0$1479,201,0,0,0$1480,201,0,0,0$1481,201,0,0,0$1483,201,255,255,255$1484,201,255,255,255$1485,201,255,255,255$1486,201,255,255,255$1487,201,255,255,255$1488,201,255,255,255$1489,201,255,255,255$1490,201,255,255,255$1491,201,255,255,255$1492,201,255,255,255$1493,201,255,255,255$1494,201,255,255,255$1495,201,255,255,255$1498,201,0,0,0$1499,201,0,0,0$1500,201,0,0,0$1501,201,0,0,0$1502,201,0,0,0$1503,201,0,0,0$1504,201,0,0,0$1505,201,0,0,0$1506,201,0,0,0$1507,201,0,0,0$1508,201,0,0,0$1509,201,0,0,0$1510,201,0,0,0$1511,201,0,0,0$1512,201,0,0,0$1513,201,0,0,0$1514,201,0,0,0$1515,201,0,0,0$1516,201,0,0,0$1517,201,255,255,255$1518,201,255,255,255$1519,201,255,255,255$1520,201,255,255,255$1521,201,255,255,255$1524,201,255,255,255$1525,201,255,255,255$1526,201,255,255,255$1527,201,255,255,255$1528,201,255,255,255$1529,201,255,255,255$1530,201,255,255,255$1531,201,255,255,255$1532,201,255,255,255$1533,201,255,255,255$1535,201,0,0,0$1536,201,255,255,255$1537,201,255,255,255$1538,201,255,255,255$1539,201,255,255,255$1540,201,255,255,255$1543,201,255,255,255$1544,201,255,255,255$1475,202,0,0,0$1476,202,0,0,0$1477,202,0,0,0$1478,202,0,0,0$1479,202,0,0,0$1480,202,0,0,0$1481,202,0,0,0$1482,202,0,0,0$1483,202,0,0,0$1484,202,0,0,0$1485,202,0,0,0$1486,202,0,0,0$1488,202,255,255,255$1489,202,255,255,255$1490,202,255,255,255$1491,202,255,255,255$1492,202,255,255,255$1493,202,255,255,255$1496,202,0,0,0$1497,202,0,0,0$1498,202,0,0,0$1499,202,0,0,0$1500,202,0,0,0$1501,202,0,0,0$1502,202,0,0,0$1503,202,0,0,0$1504,202,0,0,0$1505,202,0,0,0$1506,202,0,0,0$1507,202,0,0,0$1508,202,0,0,0$1509,202,0,0,0$1510,202,0,0,0$1511,202,0,0,0$1512,202,0,0,0$1513,202,0,0,0$1514,202,0,0,0$1515,202,0,0,0$1517,202,255,255,255$1518,202,255,255,255$1519,202,255,255,255$1520,202,255,255,255$1521,202,255,255,255$1524,202,255,255,255$1525,202,255,255,255$1526,202,255,255,255$1527,202,255,255,255$1528,202,255,255,255$1529,202,255,255,255$1530,202,255,255,255$1531,202,255,255,255$1532,202,255,255,255$1533,202,255,255,255$1536,202,255,255,255$1537,202,255,255,255$1538,202,255,255,255$1539,202,255,255,255$1540,202,255,255,255$1543,202,255,255,255$1544,202,255,255,255$1475,203,255,255,255$1476,203,255,255,255$1477,203,255,255,255$1478,203,255,255,255$1479,203,255,255,255$1480,203,255,255,255$1481,203,255,255,255$1482,203,255,255,255$1483,203,255,255,255$1484,203,255,255,255$1485,203,255,255,255$1486,203,255,255,255$1487,203,255,255,255$1488,203,255,255,255$1489,203,255,255,255$1490,203,255,255,255$1491,203,255,255,255$1492,203,255,255,255$1493,203,255,255,255$1494,203,255,255,255$1495,203,255,255,255$1496,203,255,255,255$1497,203,255,255,255$1498,203,255,255,255$1499,203,255,255,255$1500,203,255,255,255$1501,203,255,255,255$1502,203,255,255,255$1503,203,255,255,255$1504,203,255,255,255$1505,203,255,255,255$1507,203,0,0,0$1508,203,0,0,0$1509,203,0,0,0$1510,203,0,0,0$1511,203,0,0,0$1512,203,0,0,0$1513,203,0,0,0$1514,203,0,0,0$1515,203,0,0,0$1517,203,255,255,255$1518,203,255,255,255$1519,203,255,255,255$1520,203,255,255,255$1521,203,255,255,255$1523,203,255,255,255$1524,203,255,255,255$1525,203,255,255,255$1526,203,255,255,255$1527,203,255,255,255$1529,203,255,255,255$1530,203,255,255,255$1531,203,255,255,255$1532,203,255,255,255$1533,203,255,255,255$1534,203,0,0,0$1536,203,255,255,255$1537,203,255,255,255$1538,203,255,255,255$1539,203,255,255,255$1540,203,255,255,255$1541,203,0,0,0$1543,203,255,255,255$1544,203,255,255,255$1475,204,255,255,255$1476,204,255,255,255$1477,204,255,255,255$1478,204,255,255,255$1479,204,255,255,255$1480,204,255,255,255$1481,204,255,255,255$1482,204,255,255,255$1483,204,255,255,255$1484,204,255,255,255$1485,204,255,255,255$1486,204,255,255,255$1487,204,255,255,255$1488,204,255,255,255$1489,204,255,255,255$1490,204,255,255,255$1491,204,255,255,255$1492,204,255,255,255$1493,204,255,255,255$1494,204,255,255,255$1495,204,255,255,255$1496,204,255,255,255$1497,204,255,255,255$1498,204,255,255,255$1499,204,255,255,255$1500,204,255,255,255$1501,204,255,255,255$1502,204,255,255,255$1503,204,255,255,255$1504,204,255,255,255$1505,204,255,255,255$1507,204,0,0,0$1508,204,0,0,0$1509,204,0,0,0$1510,204,0,0,0$1511,204,0,0,0$1512,204,0,0,0$1513,204,0,0,0$1514,204,0,0,0$1515,204,0,0,0$1517,204,255,255,255$1518,204,255,255,255$1519,204,255,255,255$1520,204,255,255,255$1523,204,255,255,255$1524,204,255,255,255$1525,204,255,255,255$1526,204,255,255,255$1527,204,255,255,255$1529,204,255,255,255$1530,204,255,255,255$1531,204,255,255,255$1532,204,255,255,255$1534,204,0,0,0$1535,204,255,255,255$1536,204,255,255,255$1537,204,255,255,255$1538,204,255,255,255$1539,204,255,255,255$1541,204,0,0,0$1542,204,255,255,255$1543,204,255,255,255$1544,204,255,255,255$1475,205,255,255,255$1476,205,255,255,255$1477,205,255,255,255$1478,205,255,255,255$1479,205,255,255,255$1480,205,255,255,255$1481,205,255,255,255$1482,205,255,255,255$1483,205,255,255,255$1484,205,255,255,255$1485,205,255,255,255$1486,205,255,255,255$1487,205,255,255,255$1488,205,255,255,255$1489,205,255,255,255$1490,205,255,255,255$1491,205,255,255,255$1492,205,255,255,255$1493,205,255,255,255$1494,205,255,255,255$1495,205,255,255,255$1496,205,255,255,255$1497,205,255,255,255$1498,205,255,255,255$1499,205,255,255,255$1500,205,255,255,255$1501,205,255,255,255$1502,205,255,255,255$1503,205,255,255,255$1504,205,255,255,255$1505,205,255,255,255$1507,205,0,0,0$1508,205,0,0,0$1509,205,0,0,0$1510,205,0,0,0$1511,205,0,0,0$1512,205,0,0,0$1513,205,0,0,0$1514,205,0,0,0$1515,205,0,0,0$1516,205,255,255,255$1517,205,255,255,255$1518,205,255,255,255$1519,205,255,255,255$1520,205,255,255,255$1523,205,255,255,255$1524,205,255,255,255$1525,205,255,255,255$1526,205,255,255,255$1529,205,255,255,255$1530,205,255,255,255$1531,205,255,255,255$1532,205,255,255,255$1535,205,255,255,255$1536,205,255,255,255$1537,205,255,255,255$1538,205,255,255,255$1539,205,255,255,255$1542,205,255,255,255$1543,205,255,255,255$1544,205,255,255,255$1475,206,255,255,255$1476,206,255,255,255$1477,206,255,255,255$1478,206,255,255,255$1479,206,255,255,255$1480,206,255,255,255$1481,206,255,255,255$1482,206,255,255,255$1483,206,255,255,255$1484,206,255,255,255$1485,206,255,255,255$1486,206,255,255,255$1487,206,255,255,255$1488,206,255,255,255$1489,206,255,255,255$1490,206,255,255,255$1491,206,255,255,255$1492,206,255,255,255$1493,206,255,255,255$1494,206,255,255,255$1495,206,255,255,255$1496,206,255,255,255$1497,206,255,255,255$1498,206,255,255,255$1499,206,255,255,255$1500,206,255,255,255$1501,206,255,255,255$1502,206,255,255,255$1503,206,255,255,255$1504,206,255,255,255$1505,206,255,255,255$1507,206,0,0,0$1508,206,0,0,0$1509,206,0,0,0$1510,206,0,0,0$1511,206,0,0,0$1512,206,0,0,0$1513,206,0,0,0$1514,206,0,0,0$1516,206,255,255,255$1517,206,255,255,255$1518,206,255,255,255$1519,206,255,255,255$1520,206,255,255,255$1522,206,255,255,255$1523,206,255,255,255$1524,206,255,255,255$1525,206,255,255,255$1526,206,255,255,255$1529,206,255,255,255$1530,206,255,255,255$1531,206,255,255,255$1532,206,255,255,255$1535,206,255,255,255$1536,206,255,255,255$1537,206,255,255,255$1538,206,255,255,255$1539,206,255,255,255$1540,206,0,0,0$1542,206,255,255,255$1543,206,255,255,255$1544,206,255,255,255$1475,207,255,255,255$1476,207,255,255,255$1477,207,255,255,255$1478,207,255,255,255$1479,207,255,255,255$1480,207,255,255,255$1481,207,255,255,255$1482,207,255,255,255$1483,207,255,255,255$1484,207,255,255,255$1485,207,255,255,255$1486,207,255,255,255$1487,207,255,255,255$1488,207,255,255,255$1489,207,255,255,255$1490,207,255,255,255$1491,207,255,255,255$1492,207,255,255,255$1493,207,255,255,255$1494,207,255,255,255$1495,207,255,255,255$1496,207,255,255,255$1497,207,255,255,255$1498,207,255,255,255$1499,207,255,255,255$1500,207,255,255,255$1501,207,255,255,255$1502,207,255,255,255$1503,207,255,255,255$1504,207,255,255,255$1505,207,255,255,255$1507,207,0,0,0$1508,207,0,0,0$1509,207,0,0,0$1510,207,0,0,0$1511,207,0,0,0$1512,207,0,0,0$1513,207,0,0,0$1514,207,0,0,0$1516,207,255,255,255$1517,207,255,255,255$1518,207,255,255,255$1519,207,255,255,255$1520,207,255,255,255$1522,207,255,255,255$1523,207,255,255,255$1524,207,255,255,255$1525,207,255,255,255$1526,207,255,255,255$1527,207,0,0,0$1528,207,255,255,255$1529,207,255,255,255$1530,207,255,255,255$1531,207,255,255,255$1532,207,255,255,255$1534,207,255,255,255$1535,207,255,255,255$1536,207,255,255,255$1537,207,255,255,255$1538,207,255,255,255$1540,207,0,0,0$1542,207,255,255,255$1543,207,255,255,255$1544,207,255,255,255$1484,208,255,255,255$1485,208,255,255,255$1486,208,255,255,255$1487,208,255,255,255$1488,208,255,255,255$1489,208,255,255,255$1490,208,255,255,255$1491,208,255,255,255$1492,208,255,255,255$1493,208,255,255,255$1494,208,255,255,255$1495,208,255,255,255$1506,208,0,0,0$1507,208,0,0,0$1508,208,0,0,0$1509,208,0,0,0$1510,208,0,0,0$1511,208,0,0,0$1512,208,0,0,0$1513,208,0,0,0$1515,208,255,255,255$1516,208,255,255,255$1517,208,255,255,255$1518,208,255,255,255$1519,208,255,255,255$1520,208,255,255,255$1521,208,255,255,255$1522,208,255,255,255$1523,208,255,255,255$1524,208,255,255,255$1525,208,255,255,255$1528,208,255,255,255$1529,208,255,255,255$1530,208,255,255,255$1531,208,255,255,255$1532,208,255,255,255$1533,208,255,255,255$1534,208,255,255,255$1535,208,255,255,255$1536,208,255,255,255$1537,208,255,255,255$1538,208,255,255,255$1541,208,255,255,255$1542,208,255,255,255$1543,208,255,255,255$1544,208,255,255,255$1475,209,0,0,0$1476,209,0,0,0$1477,209,0,0,0$1478,209,0,0,0$1483,209,255,255,255$1484,209,255,255,255$1485,209,255,255,255$1486,209,255,255,255$1487,209,255,255,255$1488,209,255,255,255$1489,209,255,255,255$1490,209,255,255,255$1491,209,255,255,255$1492,209,255,255,255$1493,209,255,255,255$1494,209,255,255,255$1495,209,255,255,255$1496,209,255,255,255$1503,209,0,0,0$1504,209,0,0,0$1505,209,0,0,0$1506,209,0,0,0$1507,209,0,0,0$1508,209,0,0,0$1509,209,0,0,0$1510,209,0,0,0$1511,209,0,0,0$1512,209,0,0,0$1513,209,0,0,0$1515,209,255,255,255$1516,209,255,255,255$1517,209,255,255,255$1518,209,255,255,255$1519,209,255,255,255$1520,209,255,255,255$1521,209,255,255,255$1522,209,255,255,255$1523,209,255,255,255$1524,209,255,255,255$1525,209,255,255,255$1528,209,255,255,255$1529,209,255,255,255$1530,209,255,255,255$1531,209,255,255,255$1532,209,255,255,255$1533,209,255,255,255$1534,209,255,255,255$1535,209,255,255,255$1536,209,255,255,255$1537,209,255,255,255$1540,209,255,255,255$1541,209,255,255,255$1542,209,255,255,255$1543,209,255,255,255$1544,209,255,255,255$1475,210,255,255,255$1476,210,255,255,255$1477,210,255,255,255$1478,210,255,255,255$1479,210,255,255,255$1480,210,255,255,255$1481,210,255,255,255$1482,210,255,255,255$1483,210,255,255,255$1484,210,255,255,255$1485,210,255,255,255$1486,210,255,255,255$1487,210,255,255,255$1488,210,255,255,255$1489,210,255,255,255$1490,210,255,255,255$1491,210,255,255,255$1492,210,255,255,255$1493,210,255,255,255$1494,210,255,255,255$1495,210,255,255,255$1496,210,255,255,255$1497,210,255,255,255$1498,210,255,255,255$1499,210,255,255,255$1500,210,255,255,255$1501,210,255,255,255$1502,210,255,255,255$1503,210,255,255,255$1504,210,255,255,255$1506,210,0,0,0$1507,210,0,0,0$1508,210,0,0,0$1509,210,0,0,0$1510,210,0,0,0$1511,210,0,0,0$1512,210,0,0,0$1514,210,255,255,255$1515,210,255,255,255$1516,210,255,255,255$1517,210,255,255,255$1518,210,255,255,255$1519,210,255,255,255$1520,210,255,255,255$1521,210,255,255,255$1522,210,255,255,255$1523,210,255,255,255$1524,210,255,255,255$1525,210,255,255,255$1526,210,255,255,255$1527,210,255,255,255$1528,210,255,255,255$1529,210,255,255,255$1530,210,255,255,255$1531,210,255,255,255$1532,210,255,255,255$1533,210,255,255,255$1534,210,255,255,255$1535,210,255,255,255$1536,210,255,255,255$1537,210,255,255,255$1538,210,255,255,255$1539,210,255,255,255$1540,210,255,255,255$1541,210,255,255,255$1542,210,255,255,255$1543,210,255,255,255$1544,210,255,255,255$1475,211,255,255,255$1476,211,255,255,255$1477,211,255,255,255$1478,211,255,255,255$1479,211,255,255,255$1480,211,255,255,255$1481,211,255,255,255$1482,211,255,255,255$1483,211,255,255,255$1484,211,255,255,255$1485,211,255,255,255$1486,211,255,255,255$1487,211,255,255,255$1488,211,255,255,255$1490,211,255,255,255$1491,211,255,255,255$1492,211,255,255,255$1493,211,255,255,255$1494,211,255,255,255$1495,211,255,255,255$1496,211,255,255,255$1497,211,255,255,255$1498,211,255,255,255$1499,211,255,255,255$1500,211,255,255,255$1501,211,255,255,255$1502,211,255,255,255$1503,211,255,255,255$1504,211,255,255,255$1506,211,0,0,0$1507,211,0,0,0$1508,211,0,0,0$1509,211,0,0,0$1510,211,0,0,0$1511,211,0,0,0$1512,211,0,0,0$1513,211,255,255,255$1514,211,255,255,255$1515,211,255,255,255$1516,211,255,255,255$1517,211,255,255,255$1518,211,255,255,255$1519,211,255,255,255$1520,211,255,255,255$1521,211,255,255,255$1522,211,255,255,255$1523,211,255,255,255$1524,211,255,255,255$1525,211,255,255,255$1526,211,255,255,255$1527,211,255,255,255$1528,211,255,255,255$1529,211,255,255,255$1530,211,255,255,255$1531,211,255,255,255$1532,211,255,255,255$1533,211,255,255,255$1534,211,255,255,255$1535,211,255,255,255$1536,211,255,255,255$1537,211,255,255,255$1538,211,255,255,255$1539,211,255,255,255$1540,211,255,255,255$1541,211,255,255,255$1542,211,255,255,255$1543,211,255,255,255$1544,211,255,255,255$1475,212,255,255,255$1476,212,255,255,255$1477,212,255,255,255$1478,212,255,255,255$1479,212,255,255,255$1480,212,255,255,255$1481,212,255,255,255$1482,212,255,255,255$1483,212,255,255,255$1484,212,255,255,255$1485,212,255,255,255$1486,212,255,255,255$1489,212,0,0,0$1491,212,255,255,255$1492,212,255,255,255$1493,212,255,255,255$1494,212,255,255,255$1495,212,255,255,255$1496,212,255,255,255$1497,212,255,255,255$1498,212,255,255,255$1499,212,255,255,255$1500,212,255,255,255$1501,212,255,255,255$1502,212,255,255,255$1503,212,255,255,255$1505,212,0,0,0$1506,212,0,0,0$1507,212,0,0,0$1508,212,0,0,0$1509,212,0,0,0$1510,212,0,0,0$1511,212,0,0,0$1512,212,0,0,0$1514,212,255,255,255$1515,212,255,255,255$1516,212,255,255,255$1517,212,255,255,255$1518,212,255,255,255$1519,212,255,255,255$1520,212,255,255,255$1521,212,255,255,255$1522,212,255,255,255$1523,212,255,255,255$1524,212,255,255,255$1525,212,255,255,255$1526,212,255,255,255$1527,212,255,255,255$1528,212,255,255,255$1529,212,255,255,255$1530,212,255,255,255$1531,212,255,255,255$1532,212,255,255,255$1533,212,255,255,255$1534,212,255,255,255$1535,212,255,255,255$1536,212,255,255,255$1537,212,255,255,255$1538,212,255,255,255$1539,212,255,255,255$1540,212,255,255,255$1541,212,255,255,255$1542,212,255,255,255$1543,212,255,255,255$1544,212,255,255,255$1475,213,255,255,255$1476,213,255,255,255$1477,213,255,255,255$1478,213,255,255,255$1479,213,255,255,255$1480,213,255,255,255$1481,213,255,255,255$1482,213,255,255,255$1483,213,255,255,255$1484,213,255,255,255$1485,213,255,255,255$1487,213,0,0,0$1488,213,0,0,0$1489,213,0,0,0$1490,213,0,0,0$1493,213,255,255,255$1494,213,255,255,255$1495,213,255,255,255$1496,213,255,255,255$1497,213,255,255,255$1498,213,255,255,255$1499,213,255,255,255$1500,213,255,255,255$1501,213,255,255,255$1502,213,255,255,255$1503,213,255,255,255$1505,213,0,0,0$1506,213,0,0,0$1507,213,0,0,0$1508,213,0,0,0$1509,213,0,0,0$1510,213,0,0,0$1511,213,0,0,0$1512,213,0,0,0$1515,213,255,255,255$1516,213,255,255,255$1517,213,255,255,255$1518,213,255,255,255$1519,213,255,255,255$1520,213,255,255,255$1521,213,255,255,255$1522,213,255,255,255$1525,213,255,255,255$1526,213,255,255,255$1527,213,255,255,255$1528,213,255,255,255$1529,213,255,255,255$1530,213,255,255,255$1531,213,255,255,255$1532,213,255,255,255$1533,213,255,255,255$1534,213,255,255,255$1535,213,255,255,255$1538,213,255,255,255$1539,213,255,255,255$1540,213,255,255,255$1541,213,255,255,255$1542,213,255,255,255$1543,213,255,255,255$1476,214,255,255,255$1477,214,255,255,255$1478,214,255,255,255$1479,214,255,255,255$1480,214,255,255,255$1481,214,255,255,255$1482,214,255,255,255$1486,214,0,0,0$1487,214,0,0,0$1488,214,0,0,0$1489,214,0,0,0$1490,214,0,0,0$1491,214,0,0,0$1492,214,0,0,0$1495,214,255,255,255$1496,214,255,255,255$1497,214,255,255,255$1498,214,255,255,255$1499,214,255,255,255$1500,214,255,255,255$1501,214,255,255,255$1502,214,255,255,255$1504,214,0,0,0$1505,214,0,0,0$1506,214,0,0,0$1507,214,0,0,0$1508,214,0,0,0$1509,214,0,0,0$1510,214,0,0,0$1511,214,0,0,0$1512,214,0,0,0$1513,214,0,0,0$1515,214,255,255,255$1516,214,255,255,255$1519,214,255,255,255$1520,214,255,255,255$1521,214,255,255,255$1523,214,0,0,0$1525,214,255,255,255$1526,214,255,255,255$1527,214,255,255,255$1528,214,255,255,255$1529,214,255,255,255$1532,214,255,255,255$1533,214,255,255,255$1534,214,255,255,255$1535,214,255,255,255$1538,214,255,255,255$1539,214,255,255,255$1540,214,255,255,255$1541,214,255,255,255$1542,214,255,255,255$1543,214,255,255,255"); |
| | | public static bool IsJiangli(Image<Rgb, byte> image, ZTRectangle gameRect) |
| | | { |
| | | ZTRectangle limit = new ZTRectangle(gameRect.Start.X + 575, gameRect.Start.Y + 35, gameRect.Start.X + 700, gameRect.Start.Y + 110); |
| | | ZTRectangle limit = new ZTRectangle(300,20, 455, 100); |
| | | ZTRectangle position = ZTRectangle.Empty; |
| | | return CVHelper.FindColorArray(out position, image, Jiangli, limit); |
| | | return CVHelper.FindColorArrayForThreshold(out position, image, JiangliText, limit); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | public static bool IsCompleteRoom(Image<Rgb, byte> image, ZTRectangle gameRect) |
| | | { |
| | | ZTRectangle limit = new ZTRectangle(gameRect.End.X - 185, gameRect.Start.Y + 150, gameRect.End.X - 85, gameRect.Start.Y + 205); |
| | | ZTRectangle limit = new ZTRectangle(gameRect.Start.X +630, gameRect.Start.Y + 162, gameRect.Start.X +700, gameRect.Start.Y + 200); |
| | | ZTRectangle position = ZTRectangle.Empty; |
| | | return CVHelper.FindColorArray(out position, image, LindongPlus, limit); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加百利关闭按钮 |
| | | /// 出售物品的关闭按钮 |
| | | /// </summary> |
| | | public static ColorArray shopCloseButton = ColorArray.FromThresholdString(130, "550,457,255,255,255$542,450,255,255,255$543,450,255,255,255$552,450,255,255,255$553,450,255,255,255$542,451,0,0,0$543,451,255,255,255$544,451,255,255,255$551,451,255,255,255$552,451,255,255,255$553,451,0,0,0$543,452,0,0,0$544,452,255,255,255$545,452,255,255,255$550,452,255,255,255$551,452,255,255,255$552,452,0,0,0$544,453,0,0,0$545,453,255,255,255$546,453,255,255,255$549,453,255,255,255$550,453,255,255,255$551,453,0,0,0$545,454,0,0,0$546,454,255,255,255$547,454,255,255,255$548,454,255,255,255$549,454,255,255,255$550,454,0,0,0$546,455,0,0,0$547,455,255,255,255$548,455,255,255,255$549,455,0,0,0$546,456,255,255,255$547,456,255,255,255$548,456,255,255,255$549,456,255,255,255$545,457,255,255,255$546,457,255,255,255$547,457,0,0,0$548,457,0,0,0$549,457,255,255,255$544,458,255,255,255$545,458,255,255,255$546,458,0,0,0$549,458,0,0,0$550,458,255,255,255$551,458,255,255,255$543,459,255,255,255$544,459,255,255,255$545,459,0,0,0$550,459,0,0,0$551,459,255,255,255$552,459,255,255,255$542,460,255,255,255$543,460,255,255,255$544,460,0,0,0$551,460,0,0,0$552,460,255,255,255$553,460,255,255,255$542,461,0,0,0$543,461,0,0,0$552,461,0,0,0$553,461,0,0,0"); |
| | | /// <summary> |
| | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加百利对话框的出售按钮 |
| | | /// </summary> |
| | | |
| | | public static bool HasJiabailiSaleButton(out ZTRectangle buttonPosition, Image<Rgb, byte> image, ZTRectangle gameRect) |
| | | { |
| | | return CVHelper.FindColorArray(out buttonPosition, image, shopSaleButton, gameRect); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 魔王的契约黄金牌 |
| | | /// </summary> |
| | | public static ColorArray glodMowangdeqiyueText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "373,624,254,252,88$355,612,246,238,83$363,612,243,238,83$369,624,250,242,85$377,624,250,242,84$371,612,242,236,83$378,612,242,237,83$430,619,253,251,88"); |
| | | public static ColorArray glodMowangdeqiyueText = ColorArray.FromThresholdString(160, "1422,632,0,0,0$1410,632,0,0,0$1411,632,0,0,0$1412,632,0,0,0$1413,632,0,0,0$1414,632,0,0,0$1415,632,0,0,0$1416,632,0,0,0$1417,632,0,0,0$1418,632,0,0,0$1419,632,0,0,0$1420,632,0,0,0$1421,632,0,0,0$1423,632,0,0,0$1424,632,0,0,0$1425,632,0,0,0$1426,632,0,0,0$1427,632,0,0,0$1428,632,0,0,0$1429,632,0,0,0$1430,632,0,0,0$1431,632,0,0,0$1432,632,0,0,0$1433,632,0,0,0$1434,632,0,0,0$1435,632,0,0,0$1436,632,0,0,0$1437,632,0,0,0$1438,632,0,0,0$1439,632,0,0,0$1440,632,0,0,0$1441,632,0,0,0$1442,632,0,0,0$1443,632,0,0,0$1444,632,0,0,0$1445,632,0,0,0$1446,632,0,0,0$1447,632,0,0,0$1448,632,0,0,0$1449,632,0,0,0$1450,632,0,0,0$1451,632,0,0,0$1452,632,0,0,0$1453,632,0,0,0$1454,632,0,0,0$1455,632,0,0,0$1456,632,0,0,0$1457,632,0,0,0$1458,632,0,0,0$1459,632,0,0,0$1460,632,0,0,0$1461,632,0,0,0$1462,632,0,0,0$1463,632,0,0,0$1464,632,0,0,0$1465,632,0,0,0$1466,632,0,0,0$1467,632,0,0,0$1468,632,0,0,0$1469,632,0,0,0$1470,632,0,0,0$1471,632,0,0,0$1472,632,0,0,0$1473,632,0,0,0$1474,632,0,0,0$1410,633,0,0,0$1411,633,0,0,0$1412,633,0,0,0$1413,633,0,0,0$1414,633,0,0,0$1415,633,0,0,0$1416,633,0,0,0$1417,633,0,0,0$1418,633,0,0,0$1419,633,0,0,0$1420,633,0,0,0$1421,633,0,0,0$1422,633,0,0,0$1423,633,0,0,0$1424,633,0,0,0$1425,633,0,0,0$1426,633,0,0,0$1427,633,0,0,0$1428,633,0,0,0$1429,633,0,0,0$1430,633,0,0,0$1431,633,0,0,0$1432,633,0,0,0$1433,633,0,0,0$1434,633,0,0,0$1435,633,0,0,0$1436,633,0,0,0$1437,633,0,0,0$1438,633,0,0,0$1439,633,0,0,0$1440,633,0,0,0$1441,633,0,0,0$1442,633,0,0,0$1443,633,0,0,0$1444,633,0,0,0$1445,633,0,0,0$1446,633,0,0,0$1447,633,0,0,0$1448,633,0,0,0$1449,633,0,0,0$1450,633,0,0,0$1451,633,0,0,0$1452,633,0,0,0$1453,633,0,0,0$1454,633,0,0,0$1455,633,0,0,0$1456,633,0,0,0$1457,633,0,0,0$1458,633,0,0,0$1459,633,0,0,0$1460,633,0,0,0$1461,633,0,0,0$1462,633,0,0,0$1463,633,0,0,0$1464,633,0,0,0$1465,633,0,0,0$1466,633,0,0,0$1467,633,0,0,0$1468,633,0,0,0$1469,633,0,0,0$1470,633,0,0,0$1471,633,0,0,0$1472,633,0,0,0$1473,633,0,0,0$1474,633,0,0,0$1410,634,0,0,0$1411,634,0,0,0$1412,634,0,0,0$1413,634,0,0,0$1414,634,0,0,0$1415,634,0,0,0$1416,634,0,0,0$1417,634,0,0,0$1418,634,0,0,0$1419,634,0,0,0$1420,634,0,0,0$1421,634,0,0,0$1422,634,0,0,0$1423,634,0,0,0$1424,634,0,0,0$1425,634,0,0,0$1426,634,0,0,0$1427,634,0,0,0$1428,634,0,0,0$1429,634,0,0,0$1430,634,0,0,0$1431,634,0,0,0$1432,634,0,0,0$1433,634,0,0,0$1434,634,0,0,0$1435,634,0,0,0$1436,634,0,0,0$1437,634,0,0,0$1438,634,0,0,0$1439,634,0,0,0$1440,634,0,0,0$1441,634,0,0,0$1442,634,0,0,0$1443,634,0,0,0$1444,634,0,0,0$1445,634,0,0,0$1446,634,0,0,0$1447,634,0,0,0$1448,634,0,0,0$1449,634,0,0,0$1450,634,0,0,0$1451,634,0,0,0$1452,634,0,0,0$1453,634,0,0,0$1454,634,0,0,0$1455,634,0,0,0$1456,634,0,0,0$1457,634,0,0,0$1458,634,0,0,0$1459,634,0,0,0$1460,634,0,0,0$1461,634,0,0,0$1462,634,0,0,0$1463,634,0,0,0$1464,634,0,0,0$1465,634,0,0,0$1466,634,0,0,0$1467,634,0,0,0$1468,634,0,0,0$1469,634,0,0,0$1470,634,0,0,0$1471,634,0,0,0$1472,634,0,0,0$1473,634,0,0,0$1474,634,0,0,0$1410,635,0,0,0$1411,635,0,0,0$1412,635,0,0,0$1413,635,0,0,0$1414,635,0,0,0$1417,635,0,0,0$1418,635,0,0,0$1419,635,0,0,0$1420,635,0,0,0$1421,635,0,0,0$1422,635,0,0,0$1423,635,0,0,0$1424,635,0,0,0$1425,635,0,0,0$1426,635,0,0,0$1427,635,0,0,0$1428,635,0,0,0$1429,635,0,0,0$1430,635,0,0,0$1431,635,0,0,0$1432,635,0,0,0$1433,635,0,0,0$1434,635,0,0,0$1435,635,0,0,0$1436,635,0,0,0$1437,635,0,0,0$1438,635,0,0,0$1439,635,0,0,0$1440,635,0,0,0$1441,635,0,0,0$1443,635,255,255,255$1444,635,0,0,0$1445,635,0,0,0$1446,635,0,0,0$1447,635,0,0,0$1448,635,0,0,0$1449,635,0,0,0$1450,635,0,0,0$1451,635,0,0,0$1452,635,0,0,0$1453,635,0,0,0$1456,635,0,0,0$1457,635,0,0,0$1461,635,0,0,0$1462,635,0,0,0$1463,635,0,0,0$1464,635,0,0,0$1465,635,0,0,0$1466,635,0,0,0$1469,635,0,0,0$1470,635,0,0,0$1471,635,0,0,0$1472,635,0,0,0$1474,635,0,0,0$1411,636,255,255,255$1412,636,255,255,255$1413,636,255,255,255$1414,636,255,255,255$1415,636,255,255,255$1416,636,255,255,255$1417,636,255,255,255$1418,636,255,255,255$1419,636,255,255,255$1420,636,255,255,255$1422,636,0,0,0$1423,636,0,0,0$1424,636,255,255,255$1425,636,255,255,255$1426,636,255,255,255$1427,636,255,255,255$1428,636,255,255,255$1429,636,255,255,255$1430,636,255,255,255$1431,636,255,255,255$1432,636,255,255,255$1433,636,255,255,255$1435,636,0,0,0$1436,636,0,0,0$1437,636,0,0,0$1438,636,0,0,0$1439,636,0,0,0$1440,636,0,0,0$1441,636,0,0,0$1443,636,255,255,255$1444,636,0,0,0$1445,636,0,0,0$1446,636,0,0,0$1447,636,0,0,0$1448,636,0,0,0$1449,636,0,0,0$1450,636,0,0,0$1454,636,255,255,255$1455,636,255,255,255$1459,636,255,255,255$1460,636,255,255,255$1462,636,255,255,255$1463,636,0,0,0$1464,636,0,0,0$1465,636,0,0,0$1466,636,0,0,0$1467,636,255,255,255$1469,636,0,0,0$1470,636,0,0,0$1471,636,0,0,0$1473,636,255,255,255$1474,636,0,0,0$1418,637,255,255,255$1420,637,0,0,0$1421,637,0,0,0$1422,637,0,0,0$1423,637,0,0,0$1424,637,0,0,0$1429,637,255,255,255$1432,637,0,0,0$1433,637,0,0,0$1434,637,0,0,0$1435,637,0,0,0$1436,637,0,0,0$1437,637,0,0,0$1438,637,0,0,0$1439,637,0,0,0$1440,637,0,0,0$1441,637,0,0,0$1444,637,0,0,0$1445,637,0,0,0$1446,637,0,0,0$1447,637,0,0,0$1448,637,0,0,0$1449,637,0,0,0$1450,637,0,0,0$1451,637,0,0,0$1454,637,255,255,255$1458,637,0,0,0$1459,637,255,255,255$1462,637,255,255,255$1463,637,0,0,0$1464,637,0,0,0$1465,637,0,0,0$1467,637,255,255,255$1468,637,0,0,0$1470,637,0,0,0$1471,637,0,0,0$1472,637,255,255,255$1410,638,255,255,255$1412,638,255,255,255$1413,638,255,255,255$1414,638,255,255,255$1417,638,255,255,255$1418,638,255,255,255$1421,638,0,0,0$1422,638,0,0,0$1423,638,0,0,0$1424,638,0,0,0$1425,638,0,0,0$1426,638,0,0,0$1427,638,0,0,0$1430,638,0,0,0$1431,638,0,0,0$1432,638,0,0,0$1433,638,0,0,0$1434,638,0,0,0$1435,638,0,0,0$1436,638,0,0,0$1437,638,0,0,0$1438,638,255,255,255$1439,638,255,255,255$1440,638,255,255,255$1441,638,255,255,255$1442,638,255,255,255$1443,638,255,255,255$1444,638,255,255,255$1445,638,255,255,255$1446,638,255,255,255$1447,638,255,255,255$1448,638,0,0,0$1449,638,0,0,0$1450,638,0,0,0$1454,638,255,255,255$1456,638,255,255,255$1457,638,0,0,0$1459,638,255,255,255$1463,638,0,0,0$1464,638,0,0,0$1466,638,255,255,255$1469,638,255,255,255$1472,638,255,255,255$1410,639,255,255,255$1412,639,255,255,255$1413,639,255,255,255$1414,639,255,255,255$1417,639,255,255,255$1418,639,255,255,255$1420,639,0,0,0$1421,639,0,0,0$1422,639,0,0,0$1423,639,0,0,0$1424,639,0,0,0$1425,639,0,0,0$1426,639,0,0,0$1427,639,0,0,0$1430,639,0,0,0$1431,639,0,0,0$1432,639,0,0,0$1433,639,0,0,0$1434,639,0,0,0$1435,639,0,0,0$1436,639,0,0,0$1437,639,0,0,0$1438,639,0,0,0$1445,639,255,255,255$1446,639,255,255,255$1448,639,0,0,0$1449,639,0,0,0$1450,639,0,0,0$1451,639,0,0,0$1458,639,255,255,255$1461,639,255,255,255$1463,639,0,0,0$1465,639,255,255,255$1466,639,255,255,255$1468,639,255,255,255$1471,639,255,255,255$1473,639,0,0,0$1474,639,0,0,0$1410,640,255,255,255$1411,640,255,255,255$1413,640,255,255,255$1415,640,255,255,255$1417,640,255,255,255$1421,640,0,0,0$1422,640,0,0,0$1423,640,0,0,0$1428,640,255,255,255$1433,640,0,0,0$1434,640,0,0,0$1435,640,0,0,0$1436,640,0,0,0$1437,640,0,0,0$1438,640,0,0,0$1439,640,0,0,0$1440,640,0,0,0$1441,640,0,0,0$1442,640,0,0,0$1444,640,255,255,255$1446,640,0,0,0$1447,640,0,0,0$1448,640,0,0,0$1449,640,0,0,0$1451,640,255,255,255$1452,640,255,255,255$1453,640,255,255,255$1454,640,255,255,255$1455,640,255,255,255$1456,640,255,255,255$1457,640,255,255,255$1461,640,255,255,255$1462,640,0,0,0$1463,640,0,0,0$1464,640,0,0,0$1467,640,255,255,255$1470,640,255,255,255$1473,640,0,0,0$1474,640,0,0,0$1412,641,255,255,255$1413,641,255,255,255$1414,641,255,255,255$1415,641,255,255,255$1416,641,255,255,255$1417,641,255,255,255$1418,641,255,255,255$1420,641,0,0,0$1421,641,0,0,0$1422,641,0,0,0$1423,641,0,0,0$1428,641,255,255,255$1433,641,0,0,0$1434,641,0,0,0$1435,641,0,0,0$1436,641,0,0,0$1437,641,0,0,0$1438,641,0,0,0$1439,641,0,0,0$1440,641,0,0,0$1442,641,255,255,255$1443,641,255,255,255$1445,641,0,0,0$1446,641,0,0,0$1447,641,0,0,0$1448,641,0,0,0$1449,641,0,0,0$1450,641,0,0,0$1451,641,0,0,0$1452,641,0,0,0$1453,641,255,255,255$1462,641,0,0,0$1463,641,0,0,0$1464,641,0,0,0$1465,641,0,0,0$1469,641,0,0,0$1472,641,255,255,255$1473,641,0,0,0$1474,641,0,0,0$1412,642,255,255,255$1414,642,255,255,255$1415,642,255,255,255$1418,642,255,255,255$1420,642,0,0,0$1421,642,0,0,0$1422,642,0,0,0$1423,642,0,0,0$1424,642,0,0,0$1425,642,0,0,0$1426,642,0,0,0$1428,642,255,255,255$1429,642,0,0,0$1430,642,0,0,0$1431,642,0,0,0$1432,642,0,0,0$1433,642,0,0,0$1434,642,0,0,0$1435,642,0,0,0$1436,642,0,0,0$1437,642,0,0,0$1438,642,0,0,0$1439,642,0,0,0$1441,642,255,255,255$1443,642,0,0,0$1444,642,0,0,0$1445,642,0,0,0$1446,642,0,0,0$1447,642,0,0,0$1448,642,0,0,0$1449,642,0,0,0$1450,642,0,0,0$1451,642,0,0,0$1452,642,0,0,0$1456,642,255,255,255$1458,642,0,0,0$1460,642,0,0,0$1461,642,0,0,0$1462,642,0,0,0$1463,642,0,0,0$1464,642,0,0,0$1466,642,255,255,255$1470,642,0,0,0$1472,642,255,255,255$1411,643,255,255,255$1414,643,255,255,255$1418,643,255,255,255$1419,643,0,0,0$1420,643,0,0,0$1421,643,0,0,0$1422,643,0,0,0$1423,643,0,0,0$1424,643,0,0,0$1425,643,0,0,0$1426,643,0,0,0$1428,643,255,255,255$1429,643,0,0,0$1430,643,0,0,0$1431,643,0,0,0$1432,643,0,0,0$1433,643,0,0,0$1434,643,0,0,0$1435,643,0,0,0$1436,643,0,0,0$1437,643,0,0,0$1438,643,0,0,0$1440,643,255,255,255$1442,643,0,0,0$1443,643,0,0,0$1444,643,0,0,0$1445,643,0,0,0$1446,643,0,0,0$1447,643,0,0,0$1448,643,0,0,0$1449,643,0,0,0$1450,643,255,255,255$1451,643,255,255,255$1452,643,255,255,255$1453,643,255,255,255$1454,643,255,255,255$1455,643,255,255,255$1456,643,255,255,255$1457,643,255,255,255$1458,643,255,255,255$1459,643,255,255,255$1460,643,255,255,255$1461,643,255,255,255$1463,643,0,0,0$1464,643,0,0,0$1465,643,255,255,255$1466,643,255,255,255$1470,643,0,0,0$1471,643,0,0,0$1473,643,0,0,0$1410,644,0,0,0$1413,644,255,255,255$1414,644,255,255,255$1415,644,255,255,255$1417,644,255,255,255$1419,644,0,0,0$1420,644,0,0,0$1421,644,0,0,0$1422,644,0,0,0$1423,644,0,0,0$1424,644,0,0,0$1425,644,0,0,0$1426,644,0,0,0$1429,644,0,0,0$1430,644,0,0,0$1431,644,0,0,0$1432,644,0,0,0$1433,644,0,0,0$1434,644,0,0,0$1435,644,0,0,0$1436,644,0,0,0$1438,644,255,255,255$1439,644,255,255,255$1441,644,0,0,0$1442,644,0,0,0$1443,644,0,0,0$1444,644,0,0,0$1445,644,0,0,0$1446,644,0,0,0$1447,644,0,0,0$1448,644,0,0,0$1449,644,0,0,0$1454,644,255,255,255$1456,644,255,255,255$1457,644,255,255,255$1462,644,0,0,0$1463,644,0,0,0$1464,644,0,0,0$1465,644,0,0,0$1466,644,0,0,0$1467,644,0,0,0$1470,644,0,0,0$1471,644,0,0,0$1472,644,0,0,0$1473,644,0,0,0$1410,645,0,0,0$1411,645,0,0,0$1413,645,255,255,255$1415,645,255,255,255$1416,645,255,255,255$1417,645,255,255,255$1418,645,255,255,255$1420,645,0,0,0$1421,645,0,0,0$1427,645,255,255,255$1431,645,0,0,0$1432,645,0,0,0$1433,645,0,0,0$1434,645,0,0,0$1436,645,255,255,255$1437,645,255,255,255$1439,645,255,255,255$1440,645,255,255,255$1445,645,0,0,0$1446,645,0,0,0$1448,645,0,0,0$1449,645,0,0,0$1450,645,0,0,0$1451,645,0,0,0$1457,645,255,255,255$1460,645,0,0,0$1461,645,0,0,0$1462,645,0,0,0$1463,645,0,0,0$1466,645,255,255,255$1467,645,255,255,255$1468,645,255,255,255$1470,645,0,0,0$1471,645,0,0,0$1472,645,0,0,0$1473,645,0,0,0$1474,645,255,255,255$1411,646,255,255,255$1412,646,255,255,255$1415,646,255,255,255$1419,646,255,255,255$1420,646,0,0,0$1422,646,255,255,255$1423,646,255,255,255$1424,646,255,255,255$1425,646,255,255,255$1426,646,255,255,255$1427,646,255,255,255$1428,646,255,255,255$1429,646,255,255,255$1430,646,255,255,255$1431,646,255,255,255$1432,646,255,255,255$1434,646,0,0,0$1436,646,255,255,255$1437,646,0,0,0$1438,646,0,0,0$1439,646,0,0,0$1441,646,255,255,255$1442,646,255,255,255$1443,646,255,255,255$1444,646,255,255,255$1445,646,255,255,255$1446,646,255,255,255$1448,646,0,0,0$1451,646,255,255,255$1452,646,255,255,255$1454,646,0,0,0$1455,646,0,0,0$1456,646,0,0,0$1458,646,255,255,255$1459,646,255,255,255$1460,646,255,255,255$1462,646,0,0,0$1463,646,0,0,0$1464,646,255,255,255$1467,646,0,0,0$1468,646,0,0,0$1469,646,0,0,0$1470,646,0,0,0$1471,646,0,0,0$1473,646,255,255,255$1474,646,255,255,255$1410,647,255,255,255$1412,647,0,0,0$1413,647,0,0,0$1414,647,0,0,0$1419,647,0,0,0$1420,647,0,0,0$1421,647,0,0,0$1422,647,0,0,0$1423,647,0,0,0$1424,647,0,0,0$1425,647,0,0,0$1426,647,0,0,0$1427,647,0,0,0$1428,647,0,0,0$1429,647,0,0,0$1430,647,0,0,0$1431,647,0,0,0$1432,647,0,0,0$1433,647,0,0,0$1434,647,0,0,0$1435,647,0,0,0$1436,647,0,0,0$1437,647,0,0,0$1438,647,0,0,0$1439,647,0,0,0$1440,647,0,0,0$1441,647,0,0,0$1442,647,0,0,0$1443,647,0,0,0$1444,647,0,0,0$1445,647,0,0,0$1446,647,0,0,0$1447,647,0,0,0$1448,647,0,0,0$1452,647,0,0,0$1453,647,0,0,0$1454,647,0,0,0$1455,647,0,0,0$1456,647,0,0,0$1457,647,0,0,0$1458,647,0,0,0$1462,647,0,0,0$1463,647,0,0,0$1464,647,0,0,0$1465,647,0,0,0$1466,647,0,0,0$1467,647,0,0,0$1468,647,0,0,0$1469,647,0,0,0$1470,647,0,0,0$1471,647,0,0,0$1410,648,0,0,0$1411,648,0,0,0$1412,648,0,0,0$1413,648,0,0,0$1414,648,0,0,0$1415,648,0,0,0$1416,648,0,0,0$1417,648,0,0,0$1418,648,0,0,0$1419,648,0,0,0$1420,648,0,0,0$1421,648,0,0,0$1422,648,0,0,0$1423,648,0,0,0$1424,648,0,0,0$1425,648,0,0,0$1426,648,0,0,0$1427,648,0,0,0$1428,648,0,0,0$1429,648,0,0,0$1430,648,0,0,0$1431,648,0,0,0$1432,648,0,0,0$1433,648,0,0,0$1434,648,0,0,0$1435,648,0,0,0$1436,648,0,0,0$1437,648,0,0,0$1438,648,0,0,0$1439,648,0,0,0$1440,648,0,0,0$1441,648,0,0,0$1442,648,0,0,0$1443,648,0,0,0$1444,648,0,0,0$1445,648,0,0,0$1446,648,0,0,0$1447,648,0,0,0$1448,648,0,0,0$1449,648,0,0,0$1450,648,0,0,0$1451,648,0,0,0$1452,648,0,0,0$1453,648,0,0,0$1454,648,0,0,0$1455,648,0,0,0$1456,648,0,0,0$1457,648,0,0,0$1458,648,0,0,0$1459,648,0,0,0$1460,648,0,0,0$1461,648,0,0,0$1462,648,0,0,0$1463,648,0,0,0$1464,648,0,0,0$1465,648,0,0,0$1466,648,0,0,0$1467,648,0,0,0$1468,648,0,0,0$1469,648,0,0,0$1470,648,0,0,0$1471,648,0,0,0$1472,648,0,0,0$1473,648,0,0,0$1474,648,0,0,0$1410,649,0,0,0$1411,649,0,0,0$1412,649,0,0,0$1413,649,0,0,0$1414,649,0,0,0$1415,649,0,0,0$1416,649,0,0,0$1417,649,0,0,0$1418,649,0,0,0$1419,649,0,0,0$1420,649,0,0,0$1421,649,0,0,0$1422,649,0,0,0$1423,649,0,0,0$1424,649,0,0,0$1425,649,0,0,0$1426,649,0,0,0$1427,649,0,0,0$1428,649,0,0,0$1429,649,0,0,0$1430,649,0,0,0$1431,649,0,0,0$1432,649,0,0,0$1433,649,0,0,0$1434,649,0,0,0$1435,649,0,0,0$1436,649,0,0,0$1437,649,0,0,0$1438,649,0,0,0$1439,649,0,0,0$1440,649,0,0,0$1441,649,0,0,0$1442,649,0,0,0$1443,649,0,0,0$1444,649,0,0,0$1445,649,0,0,0$1446,649,0,0,0$1447,649,0,0,0$1448,649,0,0,0$1449,649,0,0,0$1450,649,0,0,0$1451,649,0,0,0$1452,649,0,0,0$1453,649,0,0,0$1454,649,0,0,0$1455,649,0,0,0$1456,649,0,0,0$1457,649,0,0,0$1458,649,0,0,0$1459,649,0,0,0$1460,649,0,0,0$1461,649,0,0,0$1462,649,0,0,0$1463,649,0,0,0$1464,649,0,0,0$1465,649,0,0,0$1466,649,0,0,0$1467,649,0,0,0$1468,649,0,0,0$1469,649,0,0,0$1470,649,0,0,0$1471,649,0,0,0$1472,649,0,0,0$1473,649,0,0,0$1474,649,0,0,0"); |
| | | |
| | | /// <summary> |
| | | /// 是否有魔王契约卡牌 |
| | |
| | | /// <param name="image"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | public static bool HasMowangqiyueCard(ZTRectangle gameRect) |
| | | public static bool HasGoldCard(ZTRectangle gameRect) |
| | | { |
| | | using (Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage()) |
| | | { |
| | | ZTRectangle o = ZTRectangle.Empty; |
| | | return CVHelper.FindColorArray(out o, image, glodMowangdeqiyueText, new ZTRectangle(gameRect.Start.X, gameRect.Start.Y + (gameRect.End.Y - gameRect.Start.Y) / 2, gameRect.End.X, gameRect.End.Y)); |
| | | ZTRectangle tempRect = ZTRectangle.Empty; |
| | | return CVHelper.FindColorArrayForThreshold(out tempRect, image, glodMowangdeqiyueText, new ZTRectangle(gameRect.Start.X+89,gameRect.Start.Y+469,gameRect.Start.X+723,gameRect.Start.Y+543)); |
| | | } |
| | | |
| | | } |
| | |
| | | /// <summary> |
| | | /// 系统菜单面板 |
| | | /// </summary> |
| | | public static ColorArray SystemPanelTitle = ColorArray.FromThresholdString(60, "674,173,0,0,0$627,173,0,0,0$628,173,0,0,0$629,173,0,0,0$630,173,0,0,0$647,173,0,0,0$648,173,0,0,0$661,173,0,0,0$662,173,0,0,0$673,173,0,0,0$675,173,0,0,0$682,173,0,0,0$683,173,0,0,0$684,173,0,0,0$685,173,0,0,0$686,173,0,0,0$697,173,0,0,0$698,173,0,0,0$699,173,0,0,0$700,173,0,0,0$701,173,0,0,0$609,174,0,0,0$610,174,0,0,0$611,174,0,0,0$612,174,0,0,0$613,174,0,0,0$614,174,0,0,0$615,174,0,0,0$616,174,0,0,0$617,174,0,0,0$618,174,0,0,0$619,174,0,0,0$620,174,0,0,0$621,174,0,0,0$622,174,0,0,0$623,174,0,0,0$624,174,0,0,0$625,174,0,0,0$626,174,0,0,0$627,174,0,0,0$628,174,0,0,0$629,174,0,0,0$630,174,0,0,0$631,174,0,0,0$635,174,0,0,0$636,174,0,0,0$637,174,0,0,0$638,174,0,0,0$639,174,0,0,0$640,174,0,0,0$645,174,0,0,0$646,174,0,0,0$647,174,0,0,0$648,174,0,0,0$649,174,0,0,0$650,174,0,0,0$659,174,0,0,0$660,174,0,0,0$661,174,0,0,0$662,174,0,0,0$663,174,0,0,0$664,174,0,0,0$671,174,0,0,0$672,174,0,0,0$673,174,0,0,0$674,174,0,0,0$675,174,0,0,0$676,174,0,0,0$677,174,0,0,0$681,174,0,0,0$682,174,0,0,0$683,174,0,0,0$684,174,0,0,0$685,174,0,0,0$686,174,0,0,0$687,174,0,0,0$696,174,0,0,0$697,174,0,0,0$698,174,0,0,0$699,174,0,0,0$700,174,0,0,0$701,174,0,0,0$702,174,0,0,0$608,175,0,0,0$609,175,0,0,0$610,175,0,0,0$611,175,0,0,0$612,175,0,0,0$613,175,0,0,0$614,175,0,0,0$615,175,0,0,0$616,175,0,0,0$617,175,0,0,0$618,175,0,0,0$619,175,0,0,0$620,175,0,0,0$621,175,0,0,0$622,175,0,0,0$623,175,0,0,0$624,175,0,0,0$625,175,0,0,0$626,175,0,0,0$631,175,0,0,0$632,175,0,0,0$634,175,0,0,0$635,175,0,0,0$636,175,0,0,0$637,175,0,0,0$638,175,0,0,0$639,175,0,0,0$640,175,0,0,0$641,175,0,0,0$642,175,0,0,0$643,175,0,0,0$644,175,0,0,0$645,175,0,0,0$646,175,0,0,0$647,175,0,0,0$648,175,0,0,0$649,175,0,0,0$650,175,0,0,0$651,175,0,0,0$652,175,0,0,0$653,175,0,0,0$654,175,0,0,0$655,175,0,0,0$656,175,0,0,0$657,175,0,0,0$658,175,0,0,0$659,175,0,0,0$660,175,0,0,0$661,175,0,0,0$662,175,0,0,0$663,175,0,0,0$664,175,0,0,0$665,175,0,0,0$666,175,0,0,0$667,175,0,0,0$668,175,0,0,0$669,175,0,0,0$670,175,0,0,0$671,175,0,0,0$672,175,0,0,0$673,175,0,0,0$674,175,0,0,0$675,175,0,0,0$676,175,0,0,0$677,175,0,0,0$678,175,0,0,0$679,175,0,0,0$680,175,0,0,0$681,175,0,0,0$686,175,0,0,0$687,175,0,0,0$688,175,0,0,0$689,175,0,0,0$690,175,0,0,0$691,175,0,0,0$692,175,0,0,0$693,175,0,0,0$694,175,0,0,0$695,175,0,0,0$696,175,0,0,0$697,175,0,0,0$702,175,0,0,0$703,175,0,0,0$607,176,0,0,0$608,176,0,0,0$628,176,255,255,255$629,176,255,255,255$631,176,0,0,0$632,176,0,0,0$633,176,0,0,0$634,176,0,0,0$635,176,0,0,0$636,176,255,255,255$637,176,255,255,255$638,176,255,255,255$640,176,0,0,0$641,176,0,0,0$642,176,0,0,0$643,176,0,0,0$644,176,0,0,0$645,176,0,0,0$646,176,255,255,255$647,176,255,255,255$648,176,255,255,255$649,176,255,255,255$650,176,0,0,0$651,176,0,0,0$652,176,0,0,0$653,176,0,0,0$654,176,0,0,0$655,176,0,0,0$656,176,0,0,0$657,176,0,0,0$658,176,0,0,0$659,176,0,0,0$660,176,255,255,255$661,176,255,255,255$662,176,255,255,255$663,176,255,255,255$664,176,0,0,0$665,176,0,0,0$666,176,0,0,0$667,176,0,0,0$668,176,0,0,0$669,176,0,0,0$670,176,0,0,0$671,176,0,0,0$673,176,255,255,255$674,176,255,255,255$675,176,255,255,255$676,176,0,0,0$677,176,0,0,0$678,176,0,0,0$679,176,0,0,0$680,176,0,0,0$681,176,0,0,0$683,176,255,255,255$684,176,255,255,255$685,176,255,255,255$687,176,0,0,0$688,176,0,0,0$689,176,0,0,0$690,176,0,0,0$691,176,0,0,0$692,176,0,0,0$693,176,0,0,0$694,176,0,0,0$695,176,0,0,0$696,176,0,0,0$698,176,255,255,255$699,176,255,255,255$700,176,255,255,255$702,176,0,0,0$703,176,0,0,0$607,177,0,0,0$608,177,0,0,0$610,177,255,255,255$611,177,255,255,255$612,177,255,255,255$613,177,255,255,255$614,177,255,255,255$615,177,255,255,255$616,177,255,255,255$617,177,255,255,255$618,177,255,255,255$619,177,255,255,255$620,177,255,255,255$621,177,255,255,255$622,177,255,255,255$623,177,255,255,255$624,177,255,255,255$625,177,255,255,255$626,177,255,255,255$627,177,255,255,255$628,177,255,255,255$629,177,255,255,255$631,177,0,0,0$632,177,0,0,0$633,177,0,0,0$634,177,0,0,0$636,177,255,255,255$637,177,255,255,255$638,177,255,255,255$640,177,0,0,0$642,177,255,255,255$643,177,255,255,255$644,177,255,255,255$645,177,255,255,255$646,177,255,255,255$647,177,255,255,255$648,177,255,255,255$649,177,255,255,255$650,177,255,255,255$651,177,255,255,255$652,177,255,255,255$653,177,255,255,255$654,177,255,255,255$655,177,0,0,0$656,177,0,0,0$658,177,255,255,255$659,177,255,255,255$660,177,255,255,255$661,177,255,255,255$662,177,255,255,255$663,177,255,255,255$664,177,255,255,255$665,177,255,255,255$666,177,255,255,255$667,177,255,255,255$668,177,255,255,255$669,177,255,255,255$670,177,255,255,255$671,177,255,255,255$672,177,255,255,255$673,177,255,255,255$674,177,255,255,255$675,177,255,255,255$676,177,255,255,255$677,177,255,255,255$679,177,0,0,0$680,177,0,0,0$682,177,255,255,255$683,177,255,255,255$684,177,255,255,255$685,177,255,255,255$686,177,255,255,255$687,177,255,255,255$688,177,255,255,255$689,177,255,255,255$690,177,255,255,255$691,177,255,255,255$692,177,255,255,255$693,177,255,255,255$694,177,255,255,255$695,177,255,255,255$696,177,255,255,255$697,177,255,255,255$698,177,255,255,255$699,177,255,255,255$700,177,255,255,255$701,177,255,255,255$703,177,0,0,0$607,178,0,0,0$608,178,0,0,0$610,178,255,255,255$611,178,255,255,255$612,178,255,255,255$613,178,255,255,255$614,178,255,255,255$615,178,255,255,255$616,178,255,255,255$617,178,255,255,255$618,178,255,255,255$619,178,255,255,255$620,178,255,255,255$621,178,255,255,255$622,178,255,255,255$623,178,255,255,255$624,178,255,255,255$625,178,255,255,255$626,178,255,255,255$627,178,255,255,255$628,178,255,255,255$629,178,255,255,255$631,178,0,0,0$632,178,0,0,0$633,178,0,0,0$634,178,0,0,0$635,178,255,255,255$636,178,255,255,255$637,178,255,255,255$639,178,0,0,0$640,178,0,0,0$642,178,255,255,255$643,178,255,255,255$644,178,255,255,255$645,178,255,255,255$646,178,255,255,255$647,178,255,255,255$648,178,255,255,255$649,178,255,255,255$650,178,255,255,255$651,178,255,255,255$652,178,255,255,255$653,178,255,255,255$654,178,255,255,255$655,178,0,0,0$656,178,0,0,0$658,178,255,255,255$659,178,255,255,255$660,178,255,255,255$661,178,255,255,255$662,178,255,255,255$663,178,255,255,255$664,178,255,255,255$665,178,255,255,255$666,178,255,255,255$667,178,255,255,255$668,178,255,255,255$669,178,255,255,255$670,178,255,255,255$671,178,255,255,255$672,178,255,255,255$673,178,255,255,255$674,178,255,255,255$675,178,255,255,255$676,178,255,255,255$677,178,255,255,255$679,178,0,0,0$680,178,0,0,0$682,178,255,255,255$683,178,255,255,255$684,178,255,255,255$685,178,255,255,255$686,178,255,255,255$687,178,255,255,255$688,178,255,255,255$689,178,255,255,255$690,178,255,255,255$691,178,255,255,255$692,178,255,255,255$693,178,255,255,255$694,178,255,255,255$695,178,255,255,255$696,178,255,255,255$697,178,255,255,255$698,178,255,255,255$699,178,255,255,255$700,178,255,255,255$701,178,255,255,255$703,178,0,0,0$607,179,0,0,0$608,179,0,0,0$613,179,255,255,255$614,179,255,255,255$615,179,255,255,255$616,179,255,255,255$617,179,255,255,255$618,179,255,255,255$630,179,0,0,0$631,179,0,0,0$632,179,0,0,0$633,179,0,0,0$635,179,255,255,255$636,179,255,255,255$637,179,255,255,255$638,179,0,0,0$639,179,0,0,0$640,179,0,0,0$642,179,255,255,255$643,179,255,255,255$644,179,255,255,255$645,179,255,255,255$646,179,255,255,255$647,179,255,255,255$648,179,255,255,255$649,179,255,255,255$650,179,255,255,255$651,179,255,255,255$652,179,255,255,255$653,179,255,255,255$654,179,255,255,255$655,179,0,0,0$656,179,0,0,0$658,179,255,255,255$659,179,255,255,255$660,179,255,255,255$661,179,255,255,255$662,179,255,255,255$663,179,255,255,255$664,179,255,255,255$665,179,255,255,255$666,179,255,255,255$667,179,255,255,255$668,179,255,255,255$669,179,255,255,255$670,179,255,255,255$671,179,255,255,255$672,179,255,255,255$673,179,255,255,255$674,179,255,255,255$675,179,255,255,255$676,179,255,255,255$677,179,255,255,255$679,179,0,0,0$680,179,0,0,0$682,179,255,255,255$683,179,255,255,255$684,179,255,255,255$685,179,255,255,255$686,179,255,255,255$687,179,255,255,255$688,179,255,255,255$689,179,255,255,255$690,179,255,255,255$691,179,255,255,255$692,179,255,255,255$693,179,255,255,255$694,179,255,255,255$695,179,255,255,255$696,179,255,255,255$697,179,255,255,255$698,179,255,255,255$699,179,255,255,255$700,179,255,255,255$701,179,255,255,255$703,179,0,0,0$607,180,0,0,0$608,180,0,0,0$609,180,0,0,0$610,180,0,0,0$613,180,255,255,255$614,180,255,255,255$615,180,255,255,255$616,180,255,255,255$619,180,0,0,0$620,180,0,0,0$621,180,0,0,0$622,180,0,0,0$623,180,0,0,0$624,180,0,0,0$625,180,0,0,0$626,180,0,0,0$627,180,0,0,0$628,180,0,0,0$629,180,0,0,0$630,180,0,0,0$631,180,0,0,0$632,180,0,0,0$633,180,0,0,0$634,180,255,255,255$635,180,255,255,255$636,180,255,255,255$642,180,0,0,0$644,180,255,255,255$645,180,255,255,255$646,180,255,255,255$647,180,0,0,0$648,180,0,0,0$649,180,0,0,0$650,180,0,0,0$651,180,0,0,0$652,180,0,0,0$653,180,0,0,0$654,180,0,0,0$655,180,0,0,0$656,180,0,0,0$657,180,0,0,0$658,180,0,0,0$659,180,0,0,0$660,180,255,255,255$661,180,255,255,255$662,180,255,255,255$663,180,255,255,255$664,180,0,0,0$665,180,0,0,0$666,180,0,0,0$667,180,0,0,0$668,180,0,0,0$669,180,0,0,0$670,180,0,0,0$671,180,0,0,0$673,180,255,255,255$674,180,255,255,255$675,180,255,255,255$676,180,0,0,0$677,180,0,0,0$678,180,0,0,0$679,180,0,0,0$680,180,0,0,0$682,180,255,255,255$683,180,255,255,255$685,180,0,0,0$686,180,0,0,0$687,180,0,0,0$688,180,0,0,0$689,180,0,0,0$691,180,255,255,255$692,180,255,255,255$694,180,0,0,0$695,180,0,0,0$696,180,0,0,0$697,180,0,0,0$698,180,0,0,0$700,180,255,255,255$701,180,255,255,255$703,180,0,0,0$607,181,0,0,0$608,181,0,0,0$611,181,255,255,255$612,181,255,255,255$613,181,255,255,255$614,181,255,255,255$615,181,255,255,255$617,181,0,0,0$618,181,0,0,0$619,181,0,0,0$620,181,0,0,0$621,181,0,0,0$623,181,255,255,255$624,181,255,255,255$625,181,255,255,255$626,181,255,255,255$627,181,255,255,255$629,181,0,0,0$630,181,0,0,0$631,181,0,0,0$632,181,0,0,0$634,181,255,255,255$635,181,255,255,255$636,181,255,255,255$637,181,0,0,0$638,181,255,255,255$639,181,255,255,255$640,181,255,255,255$642,181,0,0,0$643,181,255,255,255$644,181,255,255,255$645,181,255,255,255$647,181,0,0,0$648,181,0,0,0$649,181,0,0,0$650,181,0,0,0$651,181,0,0,0$652,181,255,255,255$653,181,255,255,255$654,181,255,255,255$655,181,0,0,0$656,181,0,0,0$657,181,0,0,0$658,181,0,0,0$659,181,0,0,0$664,181,0,0,0$665,181,0,0,0$666,181,0,0,0$667,181,0,0,0$668,181,0,0,0$669,181,0,0,0$670,181,0,0,0$671,181,0,0,0$679,181,0,0,0$680,181,0,0,0$682,181,255,255,255$683,181,255,255,255$685,181,0,0,0$686,181,0,0,0$687,181,0,0,0$688,181,0,0,0$689,181,0,0,0$691,181,255,255,255$692,181,255,255,255$694,181,0,0,0$695,181,0,0,0$696,181,0,0,0$697,181,0,0,0$698,181,0,0,0$700,181,255,255,255$701,181,255,255,255$703,181,0,0,0$607,182,0,0,0$608,182,0,0,0$610,182,255,255,255$611,182,255,255,255$612,182,255,255,255$613,182,255,255,255$614,182,255,255,255$615,182,255,255,255$616,182,255,255,255$617,182,255,255,255$618,182,255,255,255$619,182,255,255,255$620,182,255,255,255$621,182,255,255,255$622,182,255,255,255$623,182,255,255,255$624,182,255,255,255$625,182,255,255,255$627,182,0,0,0$628,182,0,0,0$629,182,0,0,0$630,182,0,0,0$631,182,0,0,0$632,182,0,0,0$633,182,255,255,255$634,182,255,255,255$635,182,255,255,255$636,182,255,255,255$637,182,255,255,255$638,182,255,255,255$639,182,255,255,255$640,182,255,255,255$641,182,0,0,0$643,182,255,255,255$644,182,255,255,255$645,182,255,255,255$646,182,0,0,0$647,182,0,0,0$648,182,0,0,0$649,182,0,0,0$650,182,0,0,0$651,182,0,0,0$652,182,255,255,255$653,182,255,255,255$654,182,255,255,255$655,182,0,0,0$656,182,0,0,0$675,182,255,255,255$676,182,255,255,255$677,182,255,255,255$679,182,0,0,0$680,182,0,0,0$682,182,255,255,255$683,182,255,255,255$684,182,255,255,255$690,182,255,255,255$691,182,255,255,255$692,182,255,255,255$693,182,255,255,255$699,182,255,255,255$700,182,255,255,255$701,182,255,255,255$703,182,0,0,0$607,183,0,0,0$608,183,0,0,0$610,183,255,255,255$611,183,255,255,255$612,183,255,255,255$613,183,255,255,255$614,183,255,255,255$615,183,255,255,255$616,183,255,255,255$617,183,255,255,255$618,183,255,255,255$619,183,255,255,255$620,183,255,255,255$621,183,255,255,255$622,183,255,255,255$623,183,255,255,255$625,183,0,0,0$626,183,0,0,0$627,183,0,0,0$628,183,0,0,0$629,183,0,0,0$630,183,0,0,0$631,183,0,0,0$632,183,0,0,0$633,183,255,255,255$634,183,255,255,255$635,183,255,255,255$636,183,255,255,255$637,183,255,255,255$638,183,255,255,255$639,183,255,255,255$641,183,0,0,0$642,183,255,255,255$643,183,255,255,255$644,183,255,255,255$646,183,0,0,0$647,183,0,0,0$648,183,0,0,0$649,183,0,0,0$650,183,0,0,0$651,183,0,0,0$652,183,255,255,255$653,183,255,255,255$654,183,255,255,255$655,183,0,0,0$656,183,0,0,0$658,183,255,255,255$659,183,255,255,255$660,183,255,255,255$661,183,255,255,255$662,183,255,255,255$663,183,255,255,255$664,183,255,255,255$665,183,255,255,255$666,183,255,255,255$667,183,255,255,255$668,183,255,255,255$669,183,255,255,255$670,183,255,255,255$671,183,255,255,255$672,183,255,255,255$673,183,255,255,255$674,183,255,255,255$675,183,255,255,255$676,183,255,255,255$677,183,255,255,255$679,183,0,0,0$680,183,0,0,0$682,183,255,255,255$683,183,255,255,255$684,183,255,255,255$685,183,255,255,255$686,183,255,255,255$687,183,255,255,255$688,183,255,255,255$689,183,255,255,255$690,183,255,255,255$691,183,255,255,255$692,183,255,255,255$693,183,255,255,255$694,183,255,255,255$695,183,255,255,255$696,183,255,255,255$697,183,255,255,255$698,183,255,255,255$699,183,255,255,255$700,183,255,255,255$701,183,255,255,255$703,183,0,0,0$607,184,0,0,0$608,184,0,0,0$616,184,255,255,255$617,184,255,255,255$618,184,255,255,255$619,184,255,255,255$620,184,255,255,255$621,184,255,255,255$623,184,0,0,0$624,184,0,0,0$625,184,0,0,0$626,184,0,0,0$628,184,255,255,255$629,184,255,255,255$631,184,0,0,0$632,184,0,0,0$633,184,255,255,255$634,184,255,255,255$635,184,255,255,255$636,184,255,255,255$637,184,255,255,255$638,184,255,255,255$639,184,255,255,255$640,184,0,0,0$642,184,255,255,255$643,184,255,255,255$644,184,255,255,255$645,184,255,255,255$646,184,255,255,255$647,184,255,255,255$648,184,255,255,255$649,184,255,255,255$650,184,255,255,255$651,184,255,255,255$652,184,255,255,255$653,184,255,255,255$654,184,255,255,255$655,184,0,0,0$656,184,0,0,0$658,184,255,255,255$659,184,255,255,255$660,184,255,255,255$661,184,255,255,255$662,184,255,255,255$663,184,255,255,255$664,184,255,255,255$665,184,255,255,255$666,184,255,255,255$667,184,255,255,255$668,184,255,255,255$669,184,255,255,255$670,184,255,255,255$671,184,255,255,255$672,184,255,255,255$673,184,255,255,255$674,184,255,255,255$675,184,255,255,255$676,184,255,255,255$677,184,255,255,255$678,184,0,0,0$679,184,0,0,0$680,184,0,0,0$682,184,255,255,255$683,184,255,255,255$684,184,255,255,255$685,184,255,255,255$686,184,255,255,255$687,184,255,255,255$688,184,255,255,255$689,184,255,255,255$690,184,255,255,255$691,184,255,255,255$692,184,255,255,255$693,184,255,255,255$694,184,255,255,255$695,184,255,255,255$696,184,255,255,255$697,184,255,255,255$698,184,255,255,255$699,184,255,255,255$700,184,255,255,255$701,184,255,255,255$703,184,0,0,0$607,185,0,0,0$608,185,0,0,0$609,185,0,0,0$610,185,0,0,0$611,185,0,0,0$612,185,0,0,0$614,185,255,255,255$615,185,255,255,255$616,185,255,255,255$617,185,255,255,255$618,185,255,255,255$619,185,255,255,255$621,185,0,0,0$622,185,0,0,0$623,185,0,0,0$624,185,0,0,0$625,185,0,0,0$626,185,0,0,0$628,185,255,255,255$629,185,255,255,255$631,185,0,0,0$632,185,0,0,0$636,185,255,255,255$637,185,255,255,255$638,185,255,255,255$640,185,0,0,0$642,185,255,255,255$643,185,255,255,255$644,185,255,255,255$645,185,255,255,255$646,185,255,255,255$647,185,255,255,255$648,185,255,255,255$649,185,255,255,255$650,185,255,255,255$651,185,255,255,255$652,185,255,255,255$653,185,255,255,255$654,185,255,255,255$655,185,0,0,0$656,185,0,0,0$657,185,0,0,0$658,185,0,0,0$659,185,0,0,0$660,185,255,255,255$661,185,255,255,255$662,185,255,255,255$663,185,255,255,255$665,185,255,255,255$669,185,0,0,0$670,185,0,0,0$671,185,0,0,0$672,185,255,255,255$673,185,255,255,255$674,185,255,255,255$676,185,0,0,0$677,185,0,0,0$678,185,0,0,0$679,185,0,0,0$680,185,0,0,0$682,185,255,255,255$683,185,255,255,255$684,185,255,255,255$690,185,255,255,255$691,185,255,255,255$692,185,255,255,255$693,185,255,255,255$699,185,255,255,255$700,185,255,255,255$701,185,255,255,255$703,185,0,0,0$607,186,0,0,0$608,186,0,0,0$609,186,0,0,0$612,186,255,255,255$613,186,255,255,255$614,186,255,255,255$615,186,255,255,255$616,186,255,255,255$617,186,255,255,255$620,186,0,0,0$621,186,0,0,0$622,186,0,0,0$623,186,0,0,0$624,186,0,0,0$625,186,0,0,0$627,186,255,255,255$628,186,255,255,255$629,186,255,255,255$631,186,0,0,0$632,186,0,0,0$633,186,0,0,0$634,186,0,0,0$635,186,255,255,255$636,186,255,255,255$637,186,255,255,255$639,186,0,0,0$640,186,0,0,0$642,186,255,255,255$643,186,255,255,255$644,186,255,255,255$645,186,255,255,255$646,186,255,255,255$647,186,255,255,255$648,186,255,255,255$649,186,255,255,255$650,186,255,255,255$651,186,255,255,255$652,186,255,255,255$653,186,255,255,255$655,186,0,0,0$656,186,0,0,0$659,186,255,255,255$660,186,255,255,255$661,186,255,255,255$662,186,255,255,255$664,186,0,0,0$666,186,255,255,255$667,186,255,255,255$668,186,255,255,255$669,186,255,255,255$673,186,255,255,255$674,186,255,255,255$675,186,255,255,255$676,186,255,255,255$679,186,0,0,0$680,186,0,0,0$682,186,255,255,255$683,186,255,255,255$685,186,0,0,0$686,186,0,0,0$687,186,0,0,0$688,186,0,0,0$689,186,0,0,0$691,186,255,255,255$692,186,255,255,255$694,186,0,0,0$695,186,0,0,0$696,186,0,0,0$697,186,0,0,0$698,186,0,0,0$700,186,255,255,255$701,186,255,255,255$703,186,0,0,0$607,187,0,0,0$608,187,0,0,0$610,187,255,255,255$611,187,255,255,255$612,187,255,255,255$613,187,255,255,255$614,187,255,255,255$615,187,255,255,255$616,187,255,255,255$617,187,255,255,255$618,187,255,255,255$619,187,255,255,255$620,187,255,255,255$621,187,255,255,255$622,187,255,255,255$623,187,255,255,255$624,187,255,255,255$625,187,255,255,255$626,187,255,255,255$627,187,255,255,255$628,187,255,255,255$629,187,255,255,255$631,187,0,0,0$632,187,0,0,0$633,187,0,0,0$635,187,255,255,255$636,187,255,255,255$637,187,255,255,255$638,187,0,0,0$639,187,0,0,0$640,187,0,0,0$641,187,0,0,0$642,187,0,0,0$643,187,0,0,0$648,187,0,0,0$649,187,255,255,255$650,187,255,255,255$651,187,255,255,255$652,187,0,0,0$653,187,0,0,0$654,187,0,0,0$655,187,0,0,0$656,187,0,0,0$657,187,255,255,255$658,187,255,255,255$659,187,255,255,255$660,187,255,255,255$661,187,255,255,255$663,187,0,0,0$664,187,0,0,0$665,187,0,0,0$666,187,255,255,255$667,187,255,255,255$668,187,255,255,255$669,187,255,255,255$670,187,255,255,255$672,187,0,0,0$673,187,255,255,255$674,187,255,255,255$675,187,255,255,255$676,187,255,255,255$677,187,255,255,255$679,187,0,0,0$680,187,0,0,0$682,187,255,255,255$683,187,255,255,255$685,187,0,0,0$686,187,0,0,0$687,187,0,0,0$688,187,0,0,0$689,187,0,0,0$691,187,255,255,255$692,187,255,255,255$694,187,0,0,0$695,187,0,0,0$696,187,0,0,0$697,187,0,0,0$698,187,0,0,0$699,187,255,255,255$700,187,255,255,255$701,187,255,255,255$703,187,0,0,0$607,188,0,0,0$608,188,0,0,0$610,188,255,255,255$611,188,255,255,255$612,188,255,255,255$613,188,255,255,255$614,188,255,255,255$615,188,255,255,255$616,188,255,255,255$617,188,255,255,255$618,188,255,255,255$619,188,255,255,255$620,188,255,255,255$621,188,255,255,255$622,188,255,255,255$623,188,255,255,255$624,188,255,255,255$625,188,255,255,255$626,188,255,255,255$627,188,255,255,255$628,188,255,255,255$629,188,255,255,255$631,188,0,0,0$632,188,0,0,0$634,188,255,255,255$635,188,255,255,255$636,188,255,255,255$638,188,0,0,0$639,188,0,0,0$640,188,0,0,0$641,188,0,0,0$642,188,0,0,0$643,188,0,0,0$644,188,255,255,255$645,188,255,255,255$646,188,255,255,255$648,188,0,0,0$649,188,255,255,255$650,188,255,255,255$651,188,255,255,255$652,188,0,0,0$653,188,0,0,0$654,188,0,0,0$655,188,0,0,0$656,188,0,0,0$658,188,255,255,255$659,188,255,255,255$660,188,255,255,255$662,188,0,0,0$663,188,0,0,0$664,188,0,0,0$665,188,0,0,0$668,188,255,255,255$669,188,255,255,255$670,188,255,255,255$672,188,0,0,0$673,188,0,0,0$675,188,255,255,255$676,188,255,255,255$677,188,255,255,255$679,188,0,0,0$680,188,0,0,0$682,188,255,255,255$683,188,255,255,255$684,188,255,255,255$685,188,255,255,255$686,188,255,255,255$687,188,255,255,255$688,188,255,255,255$689,188,255,255,255$690,188,255,255,255$691,188,255,255,255$692,188,255,255,255$693,188,255,255,255$694,188,255,255,255$695,188,255,255,255$696,188,255,255,255$697,188,255,255,255$698,188,255,255,255$699,188,255,255,255$700,188,255,255,255$701,188,255,255,255$703,188,0,0,0$607,189,0,0,0$608,189,0,0,0$618,189,255,255,255$619,189,255,255,255$620,189,255,255,255$621,189,255,255,255$630,189,0,0,0$631,189,0,0,0$632,189,0,0,0$633,189,255,255,255$634,189,255,255,255$635,189,255,255,255$636,189,255,255,255$642,189,0,0,0$643,189,0,0,0$644,189,255,255,255$645,189,255,255,255$646,189,255,255,255$648,189,0,0,0$649,189,255,255,255$650,189,255,255,255$651,189,255,255,255$652,189,0,0,0$653,189,0,0,0$654,189,0,0,0$655,189,0,0,0$656,189,0,0,0$657,189,0,0,0$658,189,0,0,0$659,189,0,0,0$660,189,0,0,0$661,189,0,0,0$662,189,0,0,0$663,189,0,0,0$664,189,0,0,0$665,189,0,0,0$667,189,255,255,255$668,189,255,255,255$670,189,0,0,0$671,189,0,0,0$672,189,0,0,0$673,189,0,0,0$674,189,0,0,0$675,189,0,0,0$676,189,0,0,0$677,189,0,0,0$678,189,0,0,0$679,189,0,0,0$680,189,0,0,0$682,189,255,255,255$683,189,255,255,255$684,189,255,255,255$685,189,255,255,255$686,189,255,255,255$687,189,255,255,255$688,189,255,255,255$689,189,255,255,255$690,189,255,255,255$691,189,255,255,255$692,189,255,255,255$693,189,255,255,255$694,189,255,255,255$695,189,255,255,255$696,189,255,255,255$697,189,255,255,255$698,189,255,255,255$699,189,255,255,255$700,189,255,255,255$701,189,255,255,255$703,189,0,0,0$607,190,0,0,0$608,190,0,0,0$609,190,0,0,0$610,190,0,0,0$611,190,0,0,0$612,190,0,0,0$617,190,0,0,0$618,190,255,255,255$619,190,255,255,255$620,190,255,255,255$622,190,0,0,0$627,190,0,0,0$628,190,0,0,0$629,190,0,0,0$630,190,0,0,0$631,190,0,0,0$632,190,0,0,0$633,190,255,255,255$634,190,255,255,255$635,190,255,255,255$636,190,255,255,255$637,190,255,255,255$638,190,255,255,255$639,190,255,255,255$640,190,255,255,255$642,190,0,0,0$643,190,0,0,0$644,190,255,255,255$645,190,255,255,255$646,190,255,255,255$647,190,0,0,0$648,190,0,0,0$649,190,255,255,255$650,190,255,255,255$651,190,255,255,255$652,190,0,0,0$653,190,0,0,0$654,190,0,0,0$655,190,0,0,0$656,190,0,0,0$658,190,255,255,255$659,190,255,255,255$660,190,255,255,255$661,190,255,255,255$662,190,255,255,255$663,190,255,255,255$664,190,255,255,255$665,190,255,255,255$666,190,255,255,255$667,190,255,255,255$668,190,255,255,255$669,190,255,255,255$670,190,255,255,255$671,190,255,255,255$672,190,255,255,255$673,190,255,255,255$674,190,255,255,255$675,190,255,255,255$676,190,255,255,255$677,190,255,255,255$679,190,0,0,0$680,190,0,0,0$690,190,255,255,255$691,190,255,255,255$692,190,255,255,255$693,190,255,255,255$702,190,0,0,0$703,190,0,0,0$608,191,0,0,0$609,191,0,0,0$610,191,0,0,0$611,191,0,0,0$612,191,0,0,0$613,191,255,255,255$614,191,255,255,255$615,191,255,255,255$617,191,0,0,0$618,191,255,255,255$619,191,255,255,255$620,191,255,255,255$622,191,0,0,0$624,191,255,255,255$625,191,255,255,255$626,191,255,255,255$627,191,0,0,0$628,191,0,0,0$629,191,0,0,0$630,191,0,0,0$631,191,0,0,0$632,191,0,0,0$633,191,255,255,255$634,191,255,255,255$635,191,255,255,255$636,191,255,255,255$637,191,255,255,255$638,191,255,255,255$639,191,255,255,255$640,191,255,255,255$642,191,0,0,0$644,191,255,255,255$645,191,255,255,255$646,191,255,255,255$647,191,0,0,0$648,191,0,0,0$649,191,255,255,255$650,191,255,255,255$651,191,255,255,255$652,191,0,0,0$653,191,0,0,0$654,191,0,0,0$655,191,0,0,0$656,191,0,0,0$658,191,255,255,255$659,191,255,255,255$660,191,255,255,255$661,191,255,255,255$662,191,255,255,255$663,191,255,255,255$664,191,255,255,255$665,191,255,255,255$666,191,255,255,255$667,191,255,255,255$668,191,255,255,255$669,191,255,255,255$670,191,255,255,255$671,191,255,255,255$672,191,255,255,255$673,191,255,255,255$674,191,255,255,255$675,191,255,255,255$676,191,255,255,255$677,191,255,255,255$679,191,0,0,0$680,191,0,0,0$681,191,0,0,0$682,191,0,0,0$683,191,0,0,0$684,191,0,0,0$685,191,0,0,0$686,191,0,0,0$687,191,0,0,0$688,191,0,0,0$689,191,0,0,0$691,191,255,255,255$692,191,255,255,255$694,191,0,0,0$695,191,0,0,0$696,191,0,0,0$697,191,0,0,0$698,191,0,0,0$699,191,0,0,0$700,191,0,0,0$701,191,0,0,0$702,191,0,0,0$703,191,0,0,0$609,192,0,0,0$610,192,0,0,0$611,192,0,0,0$613,192,255,255,255$614,192,255,255,255$615,192,255,255,255$617,192,0,0,0$618,192,255,255,255$619,192,255,255,255$620,192,255,255,255$622,192,0,0,0$624,192,255,255,255$625,192,255,255,255$626,192,255,255,255$628,192,0,0,0$629,192,0,0,0$631,192,0,0,0$632,192,0,0,0$642,192,0,0,0$644,192,255,255,255$645,192,255,255,255$647,192,0,0,0$648,192,0,0,0$649,192,255,255,255$650,192,255,255,255$651,192,255,255,255$652,192,0,0,0$653,192,0,0,0$654,192,0,0,0$655,192,0,0,0$656,192,0,0,0$667,192,255,255,255$668,192,255,255,255$669,192,255,255,255$679,192,0,0,0$680,192,0,0,0$691,192,255,255,255$692,192,255,255,255$703,192,0,0,0$608,193,0,0,0$609,193,0,0,0$610,193,0,0,0$611,193,0,0,0$613,193,255,255,255$614,193,255,255,255$616,193,0,0,0$617,193,0,0,0$619,193,255,255,255$620,193,255,255,255$622,193,0,0,0$623,193,0,0,0$624,193,255,255,255$625,193,255,255,255$626,193,255,255,255$628,193,0,0,0$629,193,0,0,0$630,193,0,0,0$631,193,0,0,0$632,193,0,0,0$633,193,0,0,0$634,193,0,0,0$635,193,0,0,0$636,193,0,0,0$637,193,0,0,0$638,193,0,0,0$639,193,0,0,0$640,193,0,0,0$641,193,0,0,0$642,193,0,0,0$644,193,255,255,255$645,193,255,255,255$647,193,0,0,0$648,193,0,0,0$649,193,255,255,255$650,193,255,255,255$651,193,255,255,255$652,193,0,0,0$653,193,0,0,0$654,193,0,0,0$655,193,0,0,0$656,193,0,0,0$657,193,0,0,0$658,193,0,0,0$659,193,0,0,0$660,193,0,0,0$662,193,255,255,255$663,193,255,255,255$664,193,255,255,255$667,193,255,255,255$668,193,255,255,255$670,193,0,0,0$671,193,255,255,255$672,193,255,255,255$673,193,255,255,255$674,193,255,255,255$675,193,0,0,0$676,193,0,0,0$677,193,0,0,0$678,193,0,0,0$679,193,0,0,0$680,193,0,0,0$682,193,255,255,255$683,193,255,255,255$684,193,255,255,255$685,193,255,255,255$686,193,255,255,255$687,193,255,255,255$688,193,255,255,255$689,193,255,255,255$690,193,255,255,255$691,193,255,255,255$692,193,255,255,255$693,193,255,255,255$694,193,255,255,255$695,193,255,255,255$696,193,255,255,255$697,193,255,255,255$698,193,255,255,255$699,193,255,255,255$700,193,255,255,255$701,193,255,255,255$703,193,0,0,0$607,194,0,0,0$608,194,0,0,0$613,194,255,255,255$614,194,255,255,255$616,194,0,0,0$617,194,0,0,0$619,194,255,255,255$620,194,255,255,255$622,194,0,0,0$623,194,0,0,0$625,194,255,255,255$626,194,255,255,255$628,194,0,0,0$629,194,0,0,0$630,194,0,0,0$631,194,0,0,0$632,194,0,0,0$633,194,0,0,0$634,194,0,0,0$635,194,0,0,0$636,194,0,0,0$637,194,0,0,0$638,194,0,0,0$639,194,0,0,0$640,194,0,0,0$641,194,0,0,0$644,194,255,255,255$645,194,255,255,255$647,194,0,0,0$648,194,0,0,0$649,194,255,255,255$651,194,255,255,255$655,194,0,0,0$656,194,0,0,0$657,194,0,0,0$658,194,0,0,0$659,194,0,0,0$662,194,255,255,255$663,194,255,255,255$665,194,0,0,0$667,194,255,255,255$668,194,255,255,255$670,194,0,0,0$672,194,255,255,255$674,194,255,255,255$676,194,0,0,0$677,194,0,0,0$678,194,0,0,0$679,194,0,0,0$680,194,0,0,0$682,194,255,255,255$683,194,255,255,255$684,194,255,255,255$685,194,255,255,255$686,194,255,255,255$687,194,255,255,255$688,194,255,255,255$689,194,255,255,255$690,194,255,255,255$693,194,255,255,255$694,194,255,255,255$695,194,255,255,255$696,194,255,255,255$697,194,255,255,255$698,194,255,255,255$699,194,255,255,255$700,194,255,255,255$701,194,255,255,255$703,194,0,0,0$607,195,0,0,0$608,195,0,0,0$610,195,255,255,255$614,195,255,255,255$616,195,0,0,0$617,195,0,0,0$622,195,0,0,0$623,195,0,0,0$629,195,255,255,255$631,195,0,0,0$632,195,0,0,0$633,195,255,255,255$634,195,255,255,255$635,195,255,255,255$636,195,255,255,255$637,195,255,255,255$638,195,255,255,255$639,195,255,255,255$640,195,255,255,255$642,195,255,255,255$645,195,255,255,255$647,195,0,0,0$648,195,0,0,0$649,195,255,255,255$654,195,255,255,255$655,195,0,0,0$656,195,0,0,0$665,195,0,0,0$670,195,0,0,0$671,195,0,0,0$679,195,0,0,0$680,195,0,0,0$703,195,0,0,0$607,196,0,0,0$608,196,0,0,0$615,196,0,0,0$616,196,0,0,0$617,196,0,0,0$622,196,0,0,0$623,196,0,0,0$624,196,0,0,0$631,196,0,0,0$632,196,0,0,0$633,196,255,255,255$646,196,0,0,0$647,196,0,0,0$648,196,0,0,0$654,196,255,255,255$655,196,0,0,0$656,196,0,0,0$658,196,255,255,255$664,196,0,0,0$665,196,0,0,0$670,196,0,0,0$671,196,0,0,0$673,196,255,255,255$679,196,0,0,0$680,196,0,0,0$681,196,0,0,0$682,196,0,0,0$683,196,0,0,0$684,196,0,0,0$685,196,0,0,0$686,196,0,0,0$687,196,0,0,0$688,196,0,0,0$689,196,0,0,0$694,196,0,0,0$695,196,0,0,0$696,196,0,0,0$697,196,0,0,0$698,196,0,0,0$699,196,0,0,0$700,196,0,0,0$701,196,0,0,0$702,196,0,0,0$703,196,0,0,0$607,197,0,0,0$608,197,0,0,0$615,197,0,0,0$616,197,0,0,0$617,197,0,0,0$622,197,0,0,0$623,197,0,0,0$624,197,0,0,0$631,197,0,0,0$632,197,0,0,0$646,197,0,0,0$647,197,0,0,0$648,197,0,0,0$655,197,0,0,0$656,197,0,0,0$664,197,0,0,0$665,197,0,0,0$670,197,0,0,0$671,197,0,0,0$672,197,0,0,0$679,197,0,0,0$680,197,0,0,0$681,197,0,0,0$682,197,0,0,0$683,197,0,0,0$684,197,0,0,0$685,197,0,0,0$686,197,0,0,0$687,197,0,0,0$688,197,0,0,0$689,197,0,0,0$694,197,0,0,0$695,197,0,0,0$696,197,0,0,0$697,197,0,0,0$698,197,0,0,0$699,197,0,0,0$700,197,0,0,0$701,197,0,0,0$702,197,0,0,0$607,198,0,0,0$608,198,0,0,0$609,198,0,0,0$610,198,0,0,0$611,198,0,0,0$612,198,0,0,0$613,198,0,0,0$614,198,0,0,0$615,198,0,0,0$616,198,0,0,0$617,198,0,0,0$618,198,0,0,0$619,198,0,0,0$620,198,0,0,0$621,198,0,0,0$622,198,0,0,0$623,198,0,0,0$624,198,0,0,0$625,198,0,0,0$626,198,0,0,0$627,198,0,0,0$628,198,0,0,0$629,198,0,0,0$630,198,0,0,0$631,198,0,0,0$632,198,0,0,0$633,198,0,0,0$634,198,0,0,0$635,198,0,0,0$636,198,0,0,0$637,198,0,0,0$638,198,0,0,0$639,198,0,0,0$640,198,0,0,0$641,198,0,0,0$642,198,0,0,0$643,198,0,0,0$644,198,0,0,0$645,198,0,0,0$646,198,0,0,0$647,198,0,0,0$648,198,0,0,0$649,198,0,0,0$650,198,0,0,0$651,198,0,0,0$652,198,0,0,0$653,198,0,0,0$654,198,0,0,0$655,198,0,0,0$656,198,0,0,0$657,198,0,0,0$658,198,0,0,0$659,198,0,0,0$660,198,0,0,0$661,198,0,0,0$662,198,0,0,0$663,198,0,0,0$664,198,0,0,0$665,198,0,0,0$666,198,0,0,0$667,198,0,0,0$668,198,0,0,0$669,198,0,0,0$670,198,0,0,0$671,198,0,0,0$672,198,0,0,0$673,198,0,0,0$674,198,0,0,0$675,198,0,0,0$676,198,0,0,0$677,198,0,0,0$678,198,0,0,0$679,198,0,0,0$680,198,0,0,0$688,198,0,0,0$689,198,0,0,0$690,198,0,0,0$691,198,0,0,0$692,198,0,0,0$693,198,0,0,0$694,198,0,0,0$695,198,0,0,0$608,199,0,0,0$609,199,0,0,0$610,199,0,0,0$611,199,0,0,0$612,199,0,0,0$613,199,0,0,0$614,199,0,0,0$615,199,0,0,0$617,199,0,0,0$618,199,0,0,0$619,199,0,0,0$620,199,0,0,0$621,199,0,0,0$622,199,0,0,0$625,199,0,0,0$626,199,0,0,0$627,199,0,0,0$628,199,0,0,0$629,199,0,0,0$630,199,0,0,0$631,199,0,0,0$632,199,0,0,0$633,199,0,0,0$634,199,0,0,0$635,199,0,0,0$636,199,0,0,0$637,199,0,0,0$638,199,0,0,0$639,199,0,0,0$640,199,0,0,0$641,199,0,0,0$642,199,0,0,0$643,199,0,0,0$644,199,0,0,0$645,199,0,0,0$649,199,0,0,0$650,199,0,0,0$651,199,0,0,0$652,199,0,0,0$653,199,0,0,0$654,199,0,0,0$655,199,0,0,0$656,199,0,0,0$657,199,0,0,0$658,199,0,0,0$659,199,0,0,0$660,199,0,0,0$661,199,0,0,0$662,199,0,0,0$663,199,0,0,0$665,199,0,0,0$666,199,0,0,0$667,199,0,0,0$668,199,0,0,0$669,199,0,0,0$670,199,0,0,0$673,199,0,0,0$674,199,0,0,0$675,199,0,0,0$676,199,0,0,0$677,199,0,0,0$678,199,0,0,0$679,199,0,0,0$680,199,0,0,0$689,199,0,0,0$690,199,0,0,0$691,199,0,0,0$692,199,0,0,0$693,199,0,0,0$694,199,0,0,0$610,200,0,0,0$651,200,0,0,0$652,200,0,0,0$656,200,0,0,0$660,200,0,0,0$667,200,0,0,0$668,200,0,0,0$669,200,0,0,0$670,200,0,0,0$674,200,0,0,0$675,200,0,0,0$676,200,0,0,0$677,200,0,0,0$678,200,0,0,0$679,200,0,0,0$680,200,0,0,0$681,200,0,0,0$645,201,0,0,0$646,201,0,0,0$651,201,0,0,0$652,201,0,0,0$656,201,0,0,0$662,201,0,0,0$681,201,0,0,0$682,201,0,0,0$687,201,0,0,0$688,201,0,0,0$627,202,0,0,0$628,202,0,0,0$644,202,0,0,0$650,202,0,0,0$681,202,0,0,0$682,202,0,0,0"); |
| | | private static ColorArray SystemPanelTitle = ColorArray.FromThresholdString(60, "674,173,0,0,0$627,173,0,0,0$628,173,0,0,0$629,173,0,0,0$630,173,0,0,0$647,173,0,0,0$648,173,0,0,0$661,173,0,0,0$662,173,0,0,0$673,173,0,0,0$675,173,0,0,0$682,173,0,0,0$683,173,0,0,0$684,173,0,0,0$685,173,0,0,0$686,173,0,0,0$697,173,0,0,0$698,173,0,0,0$699,173,0,0,0$700,173,0,0,0$701,173,0,0,0$609,174,0,0,0$610,174,0,0,0$611,174,0,0,0$612,174,0,0,0$613,174,0,0,0$614,174,0,0,0$615,174,0,0,0$616,174,0,0,0$617,174,0,0,0$618,174,0,0,0$619,174,0,0,0$620,174,0,0,0$621,174,0,0,0$622,174,0,0,0$623,174,0,0,0$624,174,0,0,0$625,174,0,0,0$626,174,0,0,0$627,174,0,0,0$628,174,0,0,0$629,174,0,0,0$630,174,0,0,0$631,174,0,0,0$635,174,0,0,0$636,174,0,0,0$637,174,0,0,0$638,174,0,0,0$639,174,0,0,0$640,174,0,0,0$645,174,0,0,0$646,174,0,0,0$647,174,0,0,0$648,174,0,0,0$649,174,0,0,0$650,174,0,0,0$659,174,0,0,0$660,174,0,0,0$661,174,0,0,0$662,174,0,0,0$663,174,0,0,0$664,174,0,0,0$671,174,0,0,0$672,174,0,0,0$673,174,0,0,0$674,174,0,0,0$675,174,0,0,0$676,174,0,0,0$677,174,0,0,0$681,174,0,0,0$682,174,0,0,0$683,174,0,0,0$684,174,0,0,0$685,174,0,0,0$686,174,0,0,0$687,174,0,0,0$696,174,0,0,0$697,174,0,0,0$698,174,0,0,0$699,174,0,0,0$700,174,0,0,0$701,174,0,0,0$702,174,0,0,0$608,175,0,0,0$609,175,0,0,0$610,175,0,0,0$611,175,0,0,0$612,175,0,0,0$613,175,0,0,0$614,175,0,0,0$615,175,0,0,0$616,175,0,0,0$617,175,0,0,0$618,175,0,0,0$619,175,0,0,0$620,175,0,0,0$621,175,0,0,0$622,175,0,0,0$623,175,0,0,0$624,175,0,0,0$625,175,0,0,0$626,175,0,0,0$631,175,0,0,0$632,175,0,0,0$634,175,0,0,0$635,175,0,0,0$636,175,0,0,0$637,175,0,0,0$638,175,0,0,0$639,175,0,0,0$640,175,0,0,0$641,175,0,0,0$642,175,0,0,0$643,175,0,0,0$644,175,0,0,0$645,175,0,0,0$646,175,0,0,0$647,175,0,0,0$648,175,0,0,0$649,175,0,0,0$650,175,0,0,0$651,175,0,0,0$652,175,0,0,0$653,175,0,0,0$654,175,0,0,0$655,175,0,0,0$656,175,0,0,0$657,175,0,0,0$658,175,0,0,0$659,175,0,0,0$660,175,0,0,0$661,175,0,0,0$662,175,0,0,0$663,175,0,0,0$664,175,0,0,0$665,175,0,0,0$666,175,0,0,0$667,175,0,0,0$668,175,0,0,0$669,175,0,0,0$670,175,0,0,0$671,175,0,0,0$672,175,0,0,0$673,175,0,0,0$674,175,0,0,0$675,175,0,0,0$676,175,0,0,0$677,175,0,0,0$678,175,0,0,0$679,175,0,0,0$680,175,0,0,0$681,175,0,0,0$686,175,0,0,0$687,175,0,0,0$688,175,0,0,0$689,175,0,0,0$690,175,0,0,0$691,175,0,0,0$692,175,0,0,0$693,175,0,0,0$694,175,0,0,0$695,175,0,0,0$696,175,0,0,0$697,175,0,0,0$702,175,0,0,0$703,175,0,0,0$607,176,0,0,0$608,176,0,0,0$628,176,255,255,255$629,176,255,255,255$631,176,0,0,0$632,176,0,0,0$633,176,0,0,0$634,176,0,0,0$635,176,0,0,0$636,176,255,255,255$637,176,255,255,255$638,176,255,255,255$640,176,0,0,0$641,176,0,0,0$642,176,0,0,0$643,176,0,0,0$644,176,0,0,0$645,176,0,0,0$646,176,255,255,255$647,176,255,255,255$648,176,255,255,255$649,176,255,255,255$650,176,0,0,0$651,176,0,0,0$652,176,0,0,0$653,176,0,0,0$654,176,0,0,0$655,176,0,0,0$656,176,0,0,0$657,176,0,0,0$658,176,0,0,0$659,176,0,0,0$660,176,255,255,255$661,176,255,255,255$662,176,255,255,255$663,176,255,255,255$664,176,0,0,0$665,176,0,0,0$666,176,0,0,0$667,176,0,0,0$668,176,0,0,0$669,176,0,0,0$670,176,0,0,0$671,176,0,0,0$673,176,255,255,255$674,176,255,255,255$675,176,255,255,255$676,176,0,0,0$677,176,0,0,0$678,176,0,0,0$679,176,0,0,0$680,176,0,0,0$681,176,0,0,0$683,176,255,255,255$684,176,255,255,255$685,176,255,255,255$687,176,0,0,0$688,176,0,0,0$689,176,0,0,0$690,176,0,0,0$691,176,0,0,0$692,176,0,0,0$693,176,0,0,0$694,176,0,0,0$695,176,0,0,0$696,176,0,0,0$698,176,255,255,255$699,176,255,255,255$700,176,255,255,255$702,176,0,0,0$703,176,0,0,0$607,177,0,0,0$608,177,0,0,0$610,177,255,255,255$611,177,255,255,255$612,177,255,255,255$613,177,255,255,255$614,177,255,255,255$615,177,255,255,255$616,177,255,255,255$617,177,255,255,255$618,177,255,255,255$619,177,255,255,255$620,177,255,255,255$621,177,255,255,255$622,177,255,255,255$623,177,255,255,255$624,177,255,255,255$625,177,255,255,255$626,177,255,255,255$627,177,255,255,255$628,177,255,255,255$629,177,255,255,255$631,177,0,0,0$632,177,0,0,0$633,177,0,0,0$634,177,0,0,0$636,177,255,255,255$637,177,255,255,255$638,177,255,255,255$640,177,0,0,0$642,177,255,255,255$643,177,255,255,255$644,177,255,255,255$645,177,255,255,255$646,177,255,255,255$647,177,255,255,255$648,177,255,255,255$649,177,255,255,255$650,177,255,255,255$651,177,255,255,255$652,177,255,255,255$653,177,255,255,255$654,177,255,255,255$655,177,0,0,0$656,177,0,0,0$658,177,255,255,255$659,177,255,255,255$660,177,255,255,255$661,177,255,255,255$662,177,255,255,255$663,177,255,255,255$664,177,255,255,255$665,177,255,255,255$666,177,255,255,255$667,177,255,255,255$668,177,255,255,255$669,177,255,255,255$670,177,255,255,255$671,177,255,255,255$672,177,255,255,255$673,177,255,255,255$674,177,255,255,255$675,177,255,255,255$676,177,255,255,255$677,177,255,255,255$679,177,0,0,0$680,177,0,0,0$682,177,255,255,255$683,177,255,255,255$684,177,255,255,255$685,177,255,255,255$686,177,255,255,255$687,177,255,255,255$688,177,255,255,255$689,177,255,255,255$690,177,255,255,255$691,177,255,255,255$692,177,255,255,255$693,177,255,255,255$694,177,255,255,255$695,177,255,255,255$696,177,255,255,255$697,177,255,255,255$698,177,255,255,255$699,177,255,255,255$700,177,255,255,255$701,177,255,255,255$703,177,0,0,0$607,178,0,0,0$608,178,0,0,0$610,178,255,255,255$611,178,255,255,255$612,178,255,255,255$613,178,255,255,255$614,178,255,255,255$615,178,255,255,255$616,178,255,255,255$617,178,255,255,255$618,178,255,255,255$619,178,255,255,255$620,178,255,255,255$621,178,255,255,255$622,178,255,255,255$623,178,255,255,255$624,178,255,255,255$625,178,255,255,255$626,178,255,255,255$627,178,255,255,255$628,178,255,255,255$629,178,255,255,255$631,178,0,0,0$632,178,0,0,0$633,178,0,0,0$634,178,0,0,0$635,178,255,255,255$636,178,255,255,255$637,178,255,255,255$639,178,0,0,0$640,178,0,0,0$642,178,255,255,255$643,178,255,255,255$644,178,255,255,255$645,178,255,255,255$646,178,255,255,255$647,178,255,255,255$648,178,255,255,255$649,178,255,255,255$650,178,255,255,255$651,178,255,255,255$652,178,255,255,255$653,178,255,255,255$654,178,255,255,255$655,178,0,0,0$656,178,0,0,0$658,178,255,255,255$659,178,255,255,255$660,178,255,255,255$661,178,255,255,255$662,178,255,255,255$663,178,255,255,255$664,178,255,255,255$665,178,255,255,255$666,178,255,255,255$667,178,255,255,255$668,178,255,255,255$669,178,255,255,255$670,178,255,255,255$671,178,255,255,255$672,178,255,255,255$673,178,255,255,255$674,178,255,255,255$675,178,255,255,255$676,178,255,255,255$677,178,255,255,255$679,178,0,0,0$680,178,0,0,0$682,178,255,255,255$683,178,255,255,255$684,178,255,255,255$685,178,255,255,255$686,178,255,255,255$687,178,255,255,255$688,178,255,255,255$689,178,255,255,255$690,178,255,255,255$691,178,255,255,255$692,178,255,255,255$693,178,255,255,255$694,178,255,255,255$695,178,255,255,255$696,178,255,255,255$697,178,255,255,255$698,178,255,255,255$699,178,255,255,255$700,178,255,255,255$701,178,255,255,255$703,178,0,0,0$607,179,0,0,0$608,179,0,0,0$613,179,255,255,255$614,179,255,255,255$615,179,255,255,255$616,179,255,255,255$617,179,255,255,255$618,179,255,255,255$630,179,0,0,0$631,179,0,0,0$632,179,0,0,0$633,179,0,0,0$635,179,255,255,255$636,179,255,255,255$637,179,255,255,255$638,179,0,0,0$639,179,0,0,0$640,179,0,0,0$642,179,255,255,255$643,179,255,255,255$644,179,255,255,255$645,179,255,255,255$646,179,255,255,255$647,179,255,255,255$648,179,255,255,255$649,179,255,255,255$650,179,255,255,255$651,179,255,255,255$652,179,255,255,255$653,179,255,255,255$654,179,255,255,255$655,179,0,0,0$656,179,0,0,0$658,179,255,255,255$659,179,255,255,255$660,179,255,255,255$661,179,255,255,255$662,179,255,255,255$663,179,255,255,255$664,179,255,255,255$665,179,255,255,255$666,179,255,255,255$667,179,255,255,255$668,179,255,255,255$669,179,255,255,255$670,179,255,255,255$671,179,255,255,255$672,179,255,255,255$673,179,255,255,255$674,179,255,255,255$675,179,255,255,255$676,179,255,255,255$677,179,255,255,255$679,179,0,0,0$680,179,0,0,0$682,179,255,255,255$683,179,255,255,255$684,179,255,255,255$685,179,255,255,255$686,179,255,255,255$687,179,255,255,255$688,179,255,255,255$689,179,255,255,255$690,179,255,255,255$691,179,255,255,255$692,179,255,255,255$693,179,255,255,255$694,179,255,255,255$695,179,255,255,255$696,179,255,255,255$697,179,255,255,255$698,179,255,255,255$699,179,255,255,255$700,179,255,255,255$701,179,255,255,255$703,179,0,0,0$607,180,0,0,0$608,180,0,0,0$609,180,0,0,0$610,180,0,0,0$613,180,255,255,255$614,180,255,255,255$615,180,255,255,255$616,180,255,255,255$619,180,0,0,0$620,180,0,0,0$621,180,0,0,0$622,180,0,0,0$623,180,0,0,0$624,180,0,0,0$625,180,0,0,0$626,180,0,0,0$627,180,0,0,0$628,180,0,0,0$629,180,0,0,0$630,180,0,0,0$631,180,0,0,0$632,180,0,0,0$633,180,0,0,0$634,180,255,255,255$635,180,255,255,255$636,180,255,255,255$642,180,0,0,0$644,180,255,255,255$645,180,255,255,255$646,180,255,255,255$647,180,0,0,0$648,180,0,0,0$649,180,0,0,0$650,180,0,0,0$651,180,0,0,0$652,180,0,0,0$653,180,0,0,0$654,180,0,0,0$655,180,0,0,0$656,180,0,0,0$657,180,0,0,0$658,180,0,0,0$659,180,0,0,0$660,180,255,255,255$661,180,255,255,255$662,180,255,255,255$663,180,255,255,255$664,180,0,0,0$665,180,0,0,0$666,180,0,0,0$667,180,0,0,0$668,180,0,0,0$669,180,0,0,0$670,180,0,0,0$671,180,0,0,0$673,180,255,255,255$674,180,255,255,255$675,180,255,255,255$676,180,0,0,0$677,180,0,0,0$678,180,0,0,0$679,180,0,0,0$680,180,0,0,0$682,180,255,255,255$683,180,255,255,255$685,180,0,0,0$686,180,0,0,0$687,180,0,0,0$688,180,0,0,0$689,180,0,0,0$691,180,255,255,255$692,180,255,255,255$694,180,0,0,0$695,180,0,0,0$696,180,0,0,0$697,180,0,0,0$698,180,0,0,0$700,180,255,255,255$701,180,255,255,255$703,180,0,0,0$607,181,0,0,0$608,181,0,0,0$611,181,255,255,255$612,181,255,255,255$613,181,255,255,255$614,181,255,255,255$615,181,255,255,255$617,181,0,0,0$618,181,0,0,0$619,181,0,0,0$620,181,0,0,0$621,181,0,0,0$623,181,255,255,255$624,181,255,255,255$625,181,255,255,255$626,181,255,255,255$627,181,255,255,255$629,181,0,0,0$630,181,0,0,0$631,181,0,0,0$632,181,0,0,0$634,181,255,255,255$635,181,255,255,255$636,181,255,255,255$637,181,0,0,0$638,181,255,255,255$639,181,255,255,255$640,181,255,255,255$642,181,0,0,0$643,181,255,255,255$644,181,255,255,255$645,181,255,255,255$647,181,0,0,0$648,181,0,0,0$649,181,0,0,0$650,181,0,0,0$651,181,0,0,0$652,181,255,255,255$653,181,255,255,255$654,181,255,255,255$655,181,0,0,0$656,181,0,0,0$657,181,0,0,0$658,181,0,0,0$659,181,0,0,0$664,181,0,0,0$665,181,0,0,0$666,181,0,0,0$667,181,0,0,0$668,181,0,0,0$669,181,0,0,0$670,181,0,0,0$671,181,0,0,0$679,181,0,0,0$680,181,0,0,0$682,181,255,255,255$683,181,255,255,255$685,181,0,0,0$686,181,0,0,0$687,181,0,0,0$688,181,0,0,0$689,181,0,0,0$691,181,255,255,255$692,181,255,255,255$694,181,0,0,0$695,181,0,0,0$696,181,0,0,0$697,181,0,0,0$698,181,0,0,0$700,181,255,255,255$701,181,255,255,255$703,181,0,0,0$607,182,0,0,0$608,182,0,0,0$610,182,255,255,255$611,182,255,255,255$612,182,255,255,255$613,182,255,255,255$614,182,255,255,255$615,182,255,255,255$616,182,255,255,255$617,182,255,255,255$618,182,255,255,255$619,182,255,255,255$620,182,255,255,255$621,182,255,255,255$622,182,255,255,255$623,182,255,255,255$624,182,255,255,255$625,182,255,255,255$627,182,0,0,0$628,182,0,0,0$629,182,0,0,0$630,182,0,0,0$631,182,0,0,0$632,182,0,0,0$633,182,255,255,255$634,182,255,255,255$635,182,255,255,255$636,182,255,255,255$637,182,255,255,255$638,182,255,255,255$639,182,255,255,255$640,182,255,255,255$641,182,0,0,0$643,182,255,255,255$644,182,255,255,255$645,182,255,255,255$646,182,0,0,0$647,182,0,0,0$648,182,0,0,0$649,182,0,0,0$650,182,0,0,0$651,182,0,0,0$652,182,255,255,255$653,182,255,255,255$654,182,255,255,255$655,182,0,0,0$656,182,0,0,0$675,182,255,255,255$676,182,255,255,255$677,182,255,255,255$679,182,0,0,0$680,182,0,0,0$682,182,255,255,255$683,182,255,255,255$684,182,255,255,255$690,182,255,255,255$691,182,255,255,255$692,182,255,255,255$693,182,255,255,255$699,182,255,255,255$700,182,255,255,255$701,182,255,255,255$703,182,0,0,0$607,183,0,0,0$608,183,0,0,0$610,183,255,255,255$611,183,255,255,255$612,183,255,255,255$613,183,255,255,255$614,183,255,255,255$615,183,255,255,255$616,183,255,255,255$617,183,255,255,255$618,183,255,255,255$619,183,255,255,255$620,183,255,255,255$621,183,255,255,255$622,183,255,255,255$623,183,255,255,255$625,183,0,0,0$626,183,0,0,0$627,183,0,0,0$628,183,0,0,0$629,183,0,0,0$630,183,0,0,0$631,183,0,0,0$632,183,0,0,0$633,183,255,255,255$634,183,255,255,255$635,183,255,255,255$636,183,255,255,255$637,183,255,255,255$638,183,255,255,255$639,183,255,255,255$641,183,0,0,0$642,183,255,255,255$643,183,255,255,255$644,183,255,255,255$646,183,0,0,0$647,183,0,0,0$648,183,0,0,0$649,183,0,0,0$650,183,0,0,0$651,183,0,0,0$652,183,255,255,255$653,183,255,255,255$654,183,255,255,255$655,183,0,0,0$656,183,0,0,0$658,183,255,255,255$659,183,255,255,255$660,183,255,255,255$661,183,255,255,255$662,183,255,255,255$663,183,255,255,255$664,183,255,255,255$665,183,255,255,255$666,183,255,255,255$667,183,255,255,255$668,183,255,255,255$669,183,255,255,255$670,183,255,255,255$671,183,255,255,255$672,183,255,255,255$673,183,255,255,255$674,183,255,255,255$675,183,255,255,255$676,183,255,255,255$677,183,255,255,255$679,183,0,0,0$680,183,0,0,0$682,183,255,255,255$683,183,255,255,255$684,183,255,255,255$685,183,255,255,255$686,183,255,255,255$687,183,255,255,255$688,183,255,255,255$689,183,255,255,255$690,183,255,255,255$691,183,255,255,255$692,183,255,255,255$693,183,255,255,255$694,183,255,255,255$695,183,255,255,255$696,183,255,255,255$697,183,255,255,255$698,183,255,255,255$699,183,255,255,255$700,183,255,255,255$701,183,255,255,255$703,183,0,0,0$607,184,0,0,0$608,184,0,0,0$616,184,255,255,255$617,184,255,255,255$618,184,255,255,255$619,184,255,255,255$620,184,255,255,255$621,184,255,255,255$623,184,0,0,0$624,184,0,0,0$625,184,0,0,0$626,184,0,0,0$628,184,255,255,255$629,184,255,255,255$631,184,0,0,0$632,184,0,0,0$633,184,255,255,255$634,184,255,255,255$635,184,255,255,255$636,184,255,255,255$637,184,255,255,255$638,184,255,255,255$639,184,255,255,255$640,184,0,0,0$642,184,255,255,255$643,184,255,255,255$644,184,255,255,255$645,184,255,255,255$646,184,255,255,255$647,184,255,255,255$648,184,255,255,255$649,184,255,255,255$650,184,255,255,255$651,184,255,255,255$652,184,255,255,255$653,184,255,255,255$654,184,255,255,255$655,184,0,0,0$656,184,0,0,0$658,184,255,255,255$659,184,255,255,255$660,184,255,255,255$661,184,255,255,255$662,184,255,255,255$663,184,255,255,255$664,184,255,255,255$665,184,255,255,255$666,184,255,255,255$667,184,255,255,255$668,184,255,255,255$669,184,255,255,255$670,184,255,255,255$671,184,255,255,255$672,184,255,255,255$673,184,255,255,255$674,184,255,255,255$675,184,255,255,255$676,184,255,255,255$677,184,255,255,255$678,184,0,0,0$679,184,0,0,0$680,184,0,0,0$682,184,255,255,255$683,184,255,255,255$684,184,255,255,255$685,184,255,255,255$686,184,255,255,255$687,184,255,255,255$688,184,255,255,255$689,184,255,255,255$690,184,255,255,255$691,184,255,255,255$692,184,255,255,255$693,184,255,255,255$694,184,255,255,255$695,184,255,255,255$696,184,255,255,255$697,184,255,255,255$698,184,255,255,255$699,184,255,255,255$700,184,255,255,255$701,184,255,255,255$703,184,0,0,0$607,185,0,0,0$608,185,0,0,0$609,185,0,0,0$610,185,0,0,0$611,185,0,0,0$612,185,0,0,0$614,185,255,255,255$615,185,255,255,255$616,185,255,255,255$617,185,255,255,255$618,185,255,255,255$619,185,255,255,255$621,185,0,0,0$622,185,0,0,0$623,185,0,0,0$624,185,0,0,0$625,185,0,0,0$626,185,0,0,0$628,185,255,255,255$629,185,255,255,255$631,185,0,0,0$632,185,0,0,0$636,185,255,255,255$637,185,255,255,255$638,185,255,255,255$640,185,0,0,0$642,185,255,255,255$643,185,255,255,255$644,185,255,255,255$645,185,255,255,255$646,185,255,255,255$647,185,255,255,255$648,185,255,255,255$649,185,255,255,255$650,185,255,255,255$651,185,255,255,255$652,185,255,255,255$653,185,255,255,255$654,185,255,255,255$655,185,0,0,0$656,185,0,0,0$657,185,0,0,0$658,185,0,0,0$659,185,0,0,0$660,185,255,255,255$661,185,255,255,255$662,185,255,255,255$663,185,255,255,255$665,185,255,255,255$669,185,0,0,0$670,185,0,0,0$671,185,0,0,0$672,185,255,255,255$673,185,255,255,255$674,185,255,255,255$676,185,0,0,0$677,185,0,0,0$678,185,0,0,0$679,185,0,0,0$680,185,0,0,0$682,185,255,255,255$683,185,255,255,255$684,185,255,255,255$690,185,255,255,255$691,185,255,255,255$692,185,255,255,255$693,185,255,255,255$699,185,255,255,255$700,185,255,255,255$701,185,255,255,255$703,185,0,0,0$607,186,0,0,0$608,186,0,0,0$609,186,0,0,0$612,186,255,255,255$613,186,255,255,255$614,186,255,255,255$615,186,255,255,255$616,186,255,255,255$617,186,255,255,255$620,186,0,0,0$621,186,0,0,0$622,186,0,0,0$623,186,0,0,0$624,186,0,0,0$625,186,0,0,0$627,186,255,255,255$628,186,255,255,255$629,186,255,255,255$631,186,0,0,0$632,186,0,0,0$633,186,0,0,0$634,186,0,0,0$635,186,255,255,255$636,186,255,255,255$637,186,255,255,255$639,186,0,0,0$640,186,0,0,0$642,186,255,255,255$643,186,255,255,255$644,186,255,255,255$645,186,255,255,255$646,186,255,255,255$647,186,255,255,255$648,186,255,255,255$649,186,255,255,255$650,186,255,255,255$651,186,255,255,255$652,186,255,255,255$653,186,255,255,255$655,186,0,0,0$656,186,0,0,0$659,186,255,255,255$660,186,255,255,255$661,186,255,255,255$662,186,255,255,255$664,186,0,0,0$666,186,255,255,255$667,186,255,255,255$668,186,255,255,255$669,186,255,255,255$673,186,255,255,255$674,186,255,255,255$675,186,255,255,255$676,186,255,255,255$679,186,0,0,0$680,186,0,0,0$682,186,255,255,255$683,186,255,255,255$685,186,0,0,0$686,186,0,0,0$687,186,0,0,0$688,186,0,0,0$689,186,0,0,0$691,186,255,255,255$692,186,255,255,255$694,186,0,0,0$695,186,0,0,0$696,186,0,0,0$697,186,0,0,0$698,186,0,0,0$700,186,255,255,255$701,186,255,255,255$703,186,0,0,0$607,187,0,0,0$608,187,0,0,0$610,187,255,255,255$611,187,255,255,255$612,187,255,255,255$613,187,255,255,255$614,187,255,255,255$615,187,255,255,255$616,187,255,255,255$617,187,255,255,255$618,187,255,255,255$619,187,255,255,255$620,187,255,255,255$621,187,255,255,255$622,187,255,255,255$623,187,255,255,255$624,187,255,255,255$625,187,255,255,255$626,187,255,255,255$627,187,255,255,255$628,187,255,255,255$629,187,255,255,255$631,187,0,0,0$632,187,0,0,0$633,187,0,0,0$635,187,255,255,255$636,187,255,255,255$637,187,255,255,255$638,187,0,0,0$639,187,0,0,0$640,187,0,0,0$641,187,0,0,0$642,187,0,0,0$643,187,0,0,0$648,187,0,0,0$649,187,255,255,255$650,187,255,255,255$651,187,255,255,255$652,187,0,0,0$653,187,0,0,0$654,187,0,0,0$655,187,0,0,0$656,187,0,0,0$657,187,255,255,255$658,187,255,255,255$659,187,255,255,255$660,187,255,255,255$661,187,255,255,255$663,187,0,0,0$664,187,0,0,0$665,187,0,0,0$666,187,255,255,255$667,187,255,255,255$668,187,255,255,255$669,187,255,255,255$670,187,255,255,255$672,187,0,0,0$673,187,255,255,255$674,187,255,255,255$675,187,255,255,255$676,187,255,255,255$677,187,255,255,255$679,187,0,0,0$680,187,0,0,0$682,187,255,255,255$683,187,255,255,255$685,187,0,0,0$686,187,0,0,0$687,187,0,0,0$688,187,0,0,0$689,187,0,0,0$691,187,255,255,255$692,187,255,255,255$694,187,0,0,0$695,187,0,0,0$696,187,0,0,0$697,187,0,0,0$698,187,0,0,0$699,187,255,255,255$700,187,255,255,255$701,187,255,255,255$703,187,0,0,0$607,188,0,0,0$608,188,0,0,0$610,188,255,255,255$611,188,255,255,255$612,188,255,255,255$613,188,255,255,255$614,188,255,255,255$615,188,255,255,255$616,188,255,255,255$617,188,255,255,255$618,188,255,255,255$619,188,255,255,255$620,188,255,255,255$621,188,255,255,255$622,188,255,255,255$623,188,255,255,255$624,188,255,255,255$625,188,255,255,255$626,188,255,255,255$627,188,255,255,255$628,188,255,255,255$629,188,255,255,255$631,188,0,0,0$632,188,0,0,0$634,188,255,255,255$635,188,255,255,255$636,188,255,255,255$638,188,0,0,0$639,188,0,0,0$640,188,0,0,0$641,188,0,0,0$642,188,0,0,0$643,188,0,0,0$644,188,255,255,255$645,188,255,255,255$646,188,255,255,255$648,188,0,0,0$649,188,255,255,255$650,188,255,255,255$651,188,255,255,255$652,188,0,0,0$653,188,0,0,0$654,188,0,0,0$655,188,0,0,0$656,188,0,0,0$658,188,255,255,255$659,188,255,255,255$660,188,255,255,255$662,188,0,0,0$663,188,0,0,0$664,188,0,0,0$665,188,0,0,0$668,188,255,255,255$669,188,255,255,255$670,188,255,255,255$672,188,0,0,0$673,188,0,0,0$675,188,255,255,255$676,188,255,255,255$677,188,255,255,255$679,188,0,0,0$680,188,0,0,0$682,188,255,255,255$683,188,255,255,255$684,188,255,255,255$685,188,255,255,255$686,188,255,255,255$687,188,255,255,255$688,188,255,255,255$689,188,255,255,255$690,188,255,255,255$691,188,255,255,255$692,188,255,255,255$693,188,255,255,255$694,188,255,255,255$695,188,255,255,255$696,188,255,255,255$697,188,255,255,255$698,188,255,255,255$699,188,255,255,255$700,188,255,255,255$701,188,255,255,255$703,188,0,0,0$607,189,0,0,0$608,189,0,0,0$618,189,255,255,255$619,189,255,255,255$620,189,255,255,255$621,189,255,255,255$630,189,0,0,0$631,189,0,0,0$632,189,0,0,0$633,189,255,255,255$634,189,255,255,255$635,189,255,255,255$636,189,255,255,255$642,189,0,0,0$643,189,0,0,0$644,189,255,255,255$645,189,255,255,255$646,189,255,255,255$648,189,0,0,0$649,189,255,255,255$650,189,255,255,255$651,189,255,255,255$652,189,0,0,0$653,189,0,0,0$654,189,0,0,0$655,189,0,0,0$656,189,0,0,0$657,189,0,0,0$658,189,0,0,0$659,189,0,0,0$660,189,0,0,0$661,189,0,0,0$662,189,0,0,0$663,189,0,0,0$664,189,0,0,0$665,189,0,0,0$667,189,255,255,255$668,189,255,255,255$670,189,0,0,0$671,189,0,0,0$672,189,0,0,0$673,189,0,0,0$674,189,0,0,0$675,189,0,0,0$676,189,0,0,0$677,189,0,0,0$678,189,0,0,0$679,189,0,0,0$680,189,0,0,0$682,189,255,255,255$683,189,255,255,255$684,189,255,255,255$685,189,255,255,255$686,189,255,255,255$687,189,255,255,255$688,189,255,255,255$689,189,255,255,255$690,189,255,255,255$691,189,255,255,255$692,189,255,255,255$693,189,255,255,255$694,189,255,255,255$695,189,255,255,255$696,189,255,255,255$697,189,255,255,255$698,189,255,255,255$699,189,255,255,255$700,189,255,255,255$701,189,255,255,255$703,189,0,0,0$607,190,0,0,0$608,190,0,0,0$609,190,0,0,0$610,190,0,0,0$611,190,0,0,0$612,190,0,0,0$617,190,0,0,0$618,190,255,255,255$619,190,255,255,255$620,190,255,255,255$622,190,0,0,0$627,190,0,0,0$628,190,0,0,0$629,190,0,0,0$630,190,0,0,0$631,190,0,0,0$632,190,0,0,0$633,190,255,255,255$634,190,255,255,255$635,190,255,255,255$636,190,255,255,255$637,190,255,255,255$638,190,255,255,255$639,190,255,255,255$640,190,255,255,255$642,190,0,0,0$643,190,0,0,0$644,190,255,255,255$645,190,255,255,255$646,190,255,255,255$647,190,0,0,0$648,190,0,0,0$649,190,255,255,255$650,190,255,255,255$651,190,255,255,255$652,190,0,0,0$653,190,0,0,0$654,190,0,0,0$655,190,0,0,0$656,190,0,0,0$658,190,255,255,255$659,190,255,255,255$660,190,255,255,255$661,190,255,255,255$662,190,255,255,255$663,190,255,255,255$664,190,255,255,255$665,190,255,255,255$666,190,255,255,255$667,190,255,255,255$668,190,255,255,255$669,190,255,255,255$670,190,255,255,255$671,190,255,255,255$672,190,255,255,255$673,190,255,255,255$674,190,255,255,255$675,190,255,255,255$676,190,255,255,255$677,190,255,255,255$679,190,0,0,0$680,190,0,0,0$690,190,255,255,255$691,190,255,255,255$692,190,255,255,255$693,190,255,255,255$702,190,0,0,0$703,190,0,0,0$608,191,0,0,0$609,191,0,0,0$610,191,0,0,0$611,191,0,0,0$612,191,0,0,0$613,191,255,255,255$614,191,255,255,255$615,191,255,255,255$617,191,0,0,0$618,191,255,255,255$619,191,255,255,255$620,191,255,255,255$622,191,0,0,0$624,191,255,255,255$625,191,255,255,255$626,191,255,255,255$627,191,0,0,0$628,191,0,0,0$629,191,0,0,0$630,191,0,0,0$631,191,0,0,0$632,191,0,0,0$633,191,255,255,255$634,191,255,255,255$635,191,255,255,255$636,191,255,255,255$637,191,255,255,255$638,191,255,255,255$639,191,255,255,255$640,191,255,255,255$642,191,0,0,0$644,191,255,255,255$645,191,255,255,255$646,191,255,255,255$647,191,0,0,0$648,191,0,0,0$649,191,255,255,255$650,191,255,255,255$651,191,255,255,255$652,191,0,0,0$653,191,0,0,0$654,191,0,0,0$655,191,0,0,0$656,191,0,0,0$658,191,255,255,255$659,191,255,255,255$660,191,255,255,255$661,191,255,255,255$662,191,255,255,255$663,191,255,255,255$664,191,255,255,255$665,191,255,255,255$666,191,255,255,255$667,191,255,255,255$668,191,255,255,255$669,191,255,255,255$670,191,255,255,255$671,191,255,255,255$672,191,255,255,255$673,191,255,255,255$674,191,255,255,255$675,191,255,255,255$676,191,255,255,255$677,191,255,255,255$679,191,0,0,0$680,191,0,0,0$681,191,0,0,0$682,191,0,0,0$683,191,0,0,0$684,191,0,0,0$685,191,0,0,0$686,191,0,0,0$687,191,0,0,0$688,191,0,0,0$689,191,0,0,0$691,191,255,255,255$692,191,255,255,255$694,191,0,0,0$695,191,0,0,0$696,191,0,0,0$697,191,0,0,0$698,191,0,0,0$699,191,0,0,0$700,191,0,0,0$701,191,0,0,0$702,191,0,0,0$703,191,0,0,0$609,192,0,0,0$610,192,0,0,0$611,192,0,0,0$613,192,255,255,255$614,192,255,255,255$615,192,255,255,255$617,192,0,0,0$618,192,255,255,255$619,192,255,255,255$620,192,255,255,255$622,192,0,0,0$624,192,255,255,255$625,192,255,255,255$626,192,255,255,255$628,192,0,0,0$629,192,0,0,0$631,192,0,0,0$632,192,0,0,0$642,192,0,0,0$644,192,255,255,255$645,192,255,255,255$647,192,0,0,0$648,192,0,0,0$649,192,255,255,255$650,192,255,255,255$651,192,255,255,255$652,192,0,0,0$653,192,0,0,0$654,192,0,0,0$655,192,0,0,0$656,192,0,0,0$667,192,255,255,255$668,192,255,255,255$669,192,255,255,255$679,192,0,0,0$680,192,0,0,0$691,192,255,255,255$692,192,255,255,255$703,192,0,0,0$608,193,0,0,0$609,193,0,0,0$610,193,0,0,0$611,193,0,0,0$613,193,255,255,255$614,193,255,255,255$616,193,0,0,0$617,193,0,0,0$619,193,255,255,255$620,193,255,255,255$622,193,0,0,0$623,193,0,0,0$624,193,255,255,255$625,193,255,255,255$626,193,255,255,255$628,193,0,0,0$629,193,0,0,0$630,193,0,0,0$631,193,0,0,0$632,193,0,0,0$633,193,0,0,0$634,193,0,0,0$635,193,0,0,0$636,193,0,0,0$637,193,0,0,0$638,193,0,0,0$639,193,0,0,0$640,193,0,0,0$641,193,0,0,0$642,193,0,0,0$644,193,255,255,255$645,193,255,255,255$647,193,0,0,0$648,193,0,0,0$649,193,255,255,255$650,193,255,255,255$651,193,255,255,255$652,193,0,0,0$653,193,0,0,0$654,193,0,0,0$655,193,0,0,0$656,193,0,0,0$657,193,0,0,0$658,193,0,0,0$659,193,0,0,0$660,193,0,0,0$662,193,255,255,255$663,193,255,255,255$664,193,255,255,255$667,193,255,255,255$668,193,255,255,255$670,193,0,0,0$671,193,255,255,255$672,193,255,255,255$673,193,255,255,255$674,193,255,255,255$675,193,0,0,0$676,193,0,0,0$677,193,0,0,0$678,193,0,0,0$679,193,0,0,0$680,193,0,0,0$682,193,255,255,255$683,193,255,255,255$684,193,255,255,255$685,193,255,255,255$686,193,255,255,255$687,193,255,255,255$688,193,255,255,255$689,193,255,255,255$690,193,255,255,255$691,193,255,255,255$692,193,255,255,255$693,193,255,255,255$694,193,255,255,255$695,193,255,255,255$696,193,255,255,255$697,193,255,255,255$698,193,255,255,255$699,193,255,255,255$700,193,255,255,255$701,193,255,255,255$703,193,0,0,0$607,194,0,0,0$608,194,0,0,0$613,194,255,255,255$614,194,255,255,255$616,194,0,0,0$617,194,0,0,0$619,194,255,255,255$620,194,255,255,255$622,194,0,0,0$623,194,0,0,0$625,194,255,255,255$626,194,255,255,255$628,194,0,0,0$629,194,0,0,0$630,194,0,0,0$631,194,0,0,0$632,194,0,0,0$633,194,0,0,0$634,194,0,0,0$635,194,0,0,0$636,194,0,0,0$637,194,0,0,0$638,194,0,0,0$639,194,0,0,0$640,194,0,0,0$641,194,0,0,0$644,194,255,255,255$645,194,255,255,255$647,194,0,0,0$648,194,0,0,0$649,194,255,255,255$651,194,255,255,255$655,194,0,0,0$656,194,0,0,0$657,194,0,0,0$658,194,0,0,0$659,194,0,0,0$662,194,255,255,255$663,194,255,255,255$665,194,0,0,0$667,194,255,255,255$668,194,255,255,255$670,194,0,0,0$672,194,255,255,255$674,194,255,255,255$676,194,0,0,0$677,194,0,0,0$678,194,0,0,0$679,194,0,0,0$680,194,0,0,0$682,194,255,255,255$683,194,255,255,255$684,194,255,255,255$685,194,255,255,255$686,194,255,255,255$687,194,255,255,255$688,194,255,255,255$689,194,255,255,255$690,194,255,255,255$693,194,255,255,255$694,194,255,255,255$695,194,255,255,255$696,194,255,255,255$697,194,255,255,255$698,194,255,255,255$699,194,255,255,255$700,194,255,255,255$701,194,255,255,255$703,194,0,0,0$607,195,0,0,0$608,195,0,0,0$610,195,255,255,255$614,195,255,255,255$616,195,0,0,0$617,195,0,0,0$622,195,0,0,0$623,195,0,0,0$629,195,255,255,255$631,195,0,0,0$632,195,0,0,0$633,195,255,255,255$634,195,255,255,255$635,195,255,255,255$636,195,255,255,255$637,195,255,255,255$638,195,255,255,255$639,195,255,255,255$640,195,255,255,255$642,195,255,255,255$645,195,255,255,255$647,195,0,0,0$648,195,0,0,0$649,195,255,255,255$654,195,255,255,255$655,195,0,0,0$656,195,0,0,0$665,195,0,0,0$670,195,0,0,0$671,195,0,0,0$679,195,0,0,0$680,195,0,0,0$703,195,0,0,0$607,196,0,0,0$608,196,0,0,0$615,196,0,0,0$616,196,0,0,0$617,196,0,0,0$622,196,0,0,0$623,196,0,0,0$624,196,0,0,0$631,196,0,0,0$632,196,0,0,0$633,196,255,255,255$646,196,0,0,0$647,196,0,0,0$648,196,0,0,0$654,196,255,255,255$655,196,0,0,0$656,196,0,0,0$658,196,255,255,255$664,196,0,0,0$665,196,0,0,0$670,196,0,0,0$671,196,0,0,0$673,196,255,255,255$679,196,0,0,0$680,196,0,0,0$681,196,0,0,0$682,196,0,0,0$683,196,0,0,0$684,196,0,0,0$685,196,0,0,0$686,196,0,0,0$687,196,0,0,0$688,196,0,0,0$689,196,0,0,0$694,196,0,0,0$695,196,0,0,0$696,196,0,0,0$697,196,0,0,0$698,196,0,0,0$699,196,0,0,0$700,196,0,0,0$701,196,0,0,0$702,196,0,0,0$703,196,0,0,0$607,197,0,0,0$608,197,0,0,0$615,197,0,0,0$616,197,0,0,0$617,197,0,0,0$622,197,0,0,0$623,197,0,0,0$624,197,0,0,0$631,197,0,0,0$632,197,0,0,0$646,197,0,0,0$647,197,0,0,0$648,197,0,0,0$655,197,0,0,0$656,197,0,0,0$664,197,0,0,0$665,197,0,0,0$670,197,0,0,0$671,197,0,0,0$672,197,0,0,0$679,197,0,0,0$680,197,0,0,0$681,197,0,0,0$682,197,0,0,0$683,197,0,0,0$684,197,0,0,0$685,197,0,0,0$686,197,0,0,0$687,197,0,0,0$688,197,0,0,0$689,197,0,0,0$694,197,0,0,0$695,197,0,0,0$696,197,0,0,0$697,197,0,0,0$698,197,0,0,0$699,197,0,0,0$700,197,0,0,0$701,197,0,0,0$702,197,0,0,0$607,198,0,0,0$608,198,0,0,0$609,198,0,0,0$610,198,0,0,0$611,198,0,0,0$612,198,0,0,0$613,198,0,0,0$614,198,0,0,0$615,198,0,0,0$616,198,0,0,0$617,198,0,0,0$618,198,0,0,0$619,198,0,0,0$620,198,0,0,0$621,198,0,0,0$622,198,0,0,0$623,198,0,0,0$624,198,0,0,0$625,198,0,0,0$626,198,0,0,0$627,198,0,0,0$628,198,0,0,0$629,198,0,0,0$630,198,0,0,0$631,198,0,0,0$632,198,0,0,0$633,198,0,0,0$634,198,0,0,0$635,198,0,0,0$636,198,0,0,0$637,198,0,0,0$638,198,0,0,0$639,198,0,0,0$640,198,0,0,0$641,198,0,0,0$642,198,0,0,0$643,198,0,0,0$644,198,0,0,0$645,198,0,0,0$646,198,0,0,0$647,198,0,0,0$648,198,0,0,0$649,198,0,0,0$650,198,0,0,0$651,198,0,0,0$652,198,0,0,0$653,198,0,0,0$654,198,0,0,0$655,198,0,0,0$656,198,0,0,0$657,198,0,0,0$658,198,0,0,0$659,198,0,0,0$660,198,0,0,0$661,198,0,0,0$662,198,0,0,0$663,198,0,0,0$664,198,0,0,0$665,198,0,0,0$666,198,0,0,0$667,198,0,0,0$668,198,0,0,0$669,198,0,0,0$670,198,0,0,0$671,198,0,0,0$672,198,0,0,0$673,198,0,0,0$674,198,0,0,0$675,198,0,0,0$676,198,0,0,0$677,198,0,0,0$678,198,0,0,0$679,198,0,0,0$680,198,0,0,0$688,198,0,0,0$689,198,0,0,0$690,198,0,0,0$691,198,0,0,0$692,198,0,0,0$693,198,0,0,0$694,198,0,0,0$695,198,0,0,0$608,199,0,0,0$609,199,0,0,0$610,199,0,0,0$611,199,0,0,0$612,199,0,0,0$613,199,0,0,0$614,199,0,0,0$615,199,0,0,0$617,199,0,0,0$618,199,0,0,0$619,199,0,0,0$620,199,0,0,0$621,199,0,0,0$622,199,0,0,0$625,199,0,0,0$626,199,0,0,0$627,199,0,0,0$628,199,0,0,0$629,199,0,0,0$630,199,0,0,0$631,199,0,0,0$632,199,0,0,0$633,199,0,0,0$634,199,0,0,0$635,199,0,0,0$636,199,0,0,0$637,199,0,0,0$638,199,0,0,0$639,199,0,0,0$640,199,0,0,0$641,199,0,0,0$642,199,0,0,0$643,199,0,0,0$644,199,0,0,0$645,199,0,0,0$649,199,0,0,0$650,199,0,0,0$651,199,0,0,0$652,199,0,0,0$653,199,0,0,0$654,199,0,0,0$655,199,0,0,0$656,199,0,0,0$657,199,0,0,0$658,199,0,0,0$659,199,0,0,0$660,199,0,0,0$661,199,0,0,0$662,199,0,0,0$663,199,0,0,0$665,199,0,0,0$666,199,0,0,0$667,199,0,0,0$668,199,0,0,0$669,199,0,0,0$670,199,0,0,0$673,199,0,0,0$674,199,0,0,0$675,199,0,0,0$676,199,0,0,0$677,199,0,0,0$678,199,0,0,0$679,199,0,0,0$680,199,0,0,0$689,199,0,0,0$690,199,0,0,0$691,199,0,0,0$692,199,0,0,0$693,199,0,0,0$694,199,0,0,0$610,200,0,0,0$651,200,0,0,0$652,200,0,0,0$656,200,0,0,0$660,200,0,0,0$667,200,0,0,0$668,200,0,0,0$669,200,0,0,0$670,200,0,0,0$674,200,0,0,0$675,200,0,0,0$676,200,0,0,0$677,200,0,0,0$678,200,0,0,0$679,200,0,0,0$680,200,0,0,0$681,200,0,0,0$645,201,0,0,0$646,201,0,0,0$651,201,0,0,0$652,201,0,0,0$656,201,0,0,0$662,201,0,0,0$681,201,0,0,0$682,201,0,0,0$687,201,0,0,0$688,201,0,0,0$627,202,0,0,0$628,202,0,0,0$644,202,0,0,0$650,202,0,0,0$681,202,0,0,0$682,202,0,0,0"); |
| | | public static bool IsOpenSystemPanel(ZTRectangle gameRect) |
| | | { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | |
| | | } |
| | | |
| | | |
| | | public static ColorArray ExitPanelOkButtonText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "647,448,221,197,147$637,443,221,197,147$640,443,221,197,147$640,447,221,197,147$638,447,221,197,147$638,451,221,197,147$640,451,221,197,147$642,450,221,197,147$642,452,221,197,147$644,452,221,197,147$647,452,221,197,147$647,450,221,197,147$644,450,221,197,147$644,448,221,197,147$647,446,221,197,147$642,446,221,197,147$643,443,221,197,147$646,443,221,197,147$651,443,221,197,147$651,446,221,197,147$651,452,221,197,147$653,453,221,197,147$659,453,221,197,147$656,442,221,197,147"); |
| | | private static ColorArray ExitPanelOkButtonText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "647,448,221,197,147$637,443,221,197,147$640,443,221,197,147$640,447,221,197,147$638,447,221,197,147$638,451,221,197,147$640,451,221,197,147$642,450,221,197,147$642,452,221,197,147$644,452,221,197,147$647,452,221,197,147$647,450,221,197,147$644,450,221,197,147$644,448,221,197,147$647,446,221,197,147$642,446,221,197,147$643,443,221,197,147$646,443,221,197,147$651,443,221,197,147$651,446,221,197,147$651,452,221,197,147$653,453,221,197,147$659,453,221,197,147$656,442,221,197,147"); |
| | | /// <summary> |
| | | /// 查找退出时的确认按钮 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 个人面板右下角的金币文字 |
| | | /// </summary> |
| | | public static ColorArray GoldText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "957,616,230,200,155$957,609,230,200,155$967,609,230,200,155$962,605,230,200,155$962,609,230,200,155$962,612,230,200,155$966,612,230,200,155$958,612,230,200,155$967,616,230,200,155$970,615,230,200,155$974,616,230,200,155$977,615,230,200,155$978,615,230,200,155$978,609,230,200,155$974,609,230,200,155$974,606,230,200,155$969,606,230,200,155$979,605,230,200,155"); |
| | | private static ColorArray GoldText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "957,616,230,200,155$957,609,230,200,155$967,609,230,200,155$962,605,230,200,155$962,609,230,200,155$962,612,230,200,155$966,612,230,200,155$958,612,230,200,155$967,616,230,200,155$970,615,230,200,155$974,616,230,200,155$977,615,230,200,155$978,615,230,200,155$978,609,230,200,155$974,609,230,200,155$974,606,230,200,155$969,606,230,200,155$979,605,230,200,155"); |
| | | public static bool GetGoldTextPosition(out ZTRectangle goldTextRect, ZTRectangle gameRect) |
| | | { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | |
| | | /// <summary> |
| | | /// 已选中的武器文字 |
| | | /// </summary> |
| | | public static ColorArray SelectedEquipmentText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "711,333,255,255,184$722,336,255,255,184$722,334,255,255,184$722,332,255,255,184$722,329,255,255,184$722,327,255,255,184$721,327,255,255,184$720,327,255,255,184$719,327,255,255,184$708,327,255,255,184$708,331,255,255,184$708,333,255,255,184$712,333,255,255,184$713,333,255,255,184$715,333,255,255,184$715,337,255,255,184$714,337,255,255,184$709,337,255,255,184$708,337,255,255,184$708,336,255,255,184$708,335,255,255,184$707,335,255,255,184$710,328,255,255,184$712,328,255,255,184$714,328,255,255,184$712,327,255,255,184$712,330,255,255,184$712,331,255,255,184$713,331,255,255,184$711,331,255,255,184"); |
| | | private static ColorArray SelectedEquipmentText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "711,333,255,255,184$722,336,255,255,184$722,334,255,255,184$722,332,255,255,184$722,329,255,255,184$722,327,255,255,184$721,327,255,255,184$720,327,255,255,184$719,327,255,255,184$708,327,255,255,184$708,331,255,255,184$708,333,255,255,184$712,333,255,255,184$713,333,255,255,184$715,333,255,255,184$715,337,255,255,184$714,337,255,255,184$709,337,255,255,184$708,337,255,255,184$708,336,255,255,184$708,335,255,255,184$707,335,255,255,184$710,328,255,255,184$712,328,255,255,184$714,328,255,255,184$712,327,255,255,184$712,330,255,255,184$712,331,255,255,184$713,331,255,255,184$711,331,255,255,184"); |
| | | /// <summary> |
| | | /// 未选中的武器文字 |
| | | /// </summary> |
| | | public static ColorArray UnSelectedEquipmentText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "710,331,221,197,147$708,326,221,197,147$708,328,221,197,147$708,331,221,197,147$710,328,221,197,147$712,328,221,197,147$715,328,221,197,147$712,326,221,197,147$712,331,221,197,147$714,331,221,197,147$710,332,221,197,147$710,333,221,197,147$712,333,221,197,147$715,333,221,197,147$705,333,221,197,147$709,334,221,197,147$709,337,221,197,147$708,337,221,197,147$714,337,221,197,147$715,337,221,197,147$719,336,221,197,147$722,336,221,197,147$725,336,221,197,147$725,334,221,197,147$722,334,221,197,147$719,334,221,197,147$719,332,221,197,147$722,332,221,197,147$725,332,221,197,147$725,330,221,197,147$724,330,221,197,147$723,329,221,197,147$721,329,221,197,147$722,329,221,197,147$725,327,221,197,147$723,327,221,197,147$721,327,221,197,147$720,327,221,197,147"); |
| | | private static ColorArray UnSelectedEquipmentText = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "710,331,221,197,147$708,326,221,197,147$708,328,221,197,147$708,331,221,197,147$710,328,221,197,147$712,328,221,197,147$715,328,221,197,147$712,326,221,197,147$712,331,221,197,147$714,331,221,197,147$710,332,221,197,147$710,333,221,197,147$712,333,221,197,147$715,333,221,197,147$705,333,221,197,147$709,334,221,197,147$709,337,221,197,147$708,337,221,197,147$714,337,221,197,147$715,337,221,197,147$719,336,221,197,147$722,336,221,197,147$725,336,221,197,147$725,334,221,197,147$722,334,221,197,147$719,334,221,197,147$719,332,221,197,147$722,332,221,197,147$725,332,221,197,147$725,330,221,197,147$724,330,221,197,147$723,329,221,197,147$721,329,221,197,147$722,329,221,197,147$725,327,221,197,147$723,327,221,197,147$721,327,221,197,147$720,327,221,197,147"); |
| | | |
| | | /// <summary> |
| | | /// 获取装备的选择状态 |
| | |
| | | |
| | | private static Hsv minRoleHsv = new Hsv(118, 250, 250); |
| | | private static Hsv maxRoleHsv = new Hsv(122, 255, 255); |
| | | //private static ZTSize roleBlockSize = new ZTSize(60, 22); |
| | | |
| | | private static ZTSize roleBlockSize = new ZTSize(40, 20); |
| | | private static ZTSize rolePositionOffset = new ZTSize(60, 145);//查找到角色色块后,角色的水平和垂直偏移 |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查找主角 |
| | |
| | | } |
| | | |
| | | //主角位置 |
| | | ZTPoint rolePosition = gameRect.Start.Add(rects[0].Start.X + rolePositionOffset.Width, rects[0].Start.Y + rolePositionOffset.Height); |
| | | |
| | | return rolePosition; |
| | | return gameRect.Start.Add(rects[0].GetCenterPoint()); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取定位点 |
| | | /// </summary> |
| | | /// <param name="image"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | public static ParametersPoint GetLocationPoint(Image<Rgb, byte> image, ZTRectangle gameRect,Dictionary<Int32,bool> withoutNumber) |
| | | { |
| | | if (withoutNumber.Count <= 0) |
| | | { |
| | | return GetLocationPoint(image, gameRect); |
| | | } |
| | | |
| | | ZTRectangle rect = ZTRectangle.Empty; |
| | | |
| | | bool result = CVHelper.FindColorArray(out rect, image, LocationPoint, gameRect, (lpRect) => { |
| | | ParametersPoint pp = GetLocationPointParameter(image, lpRect); |
| | | if (withoutNumber.ContainsKey(pp.Parameter)) |
| | | { |
| | | return false; |
| | | } |
| | | return true; |
| | | }); |
| | | |
| | | if (result) |
| | | { |
| | | return GetLocationPointParameter(image, rect); |
| | | } |
| | | |
| | | return ParametersPoint.Empty; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取定位点参数 |
| | | /// </summary> |
| | | /// <param name="image"></param> |
| | | /// <param name="rect"></param> |
| | | /// <returns></returns> |
| | | private static ParametersPoint GetLocationPointParameter(Image<Rgb,byte> image,ZTRectangle rect) |
| | | { |
| | | //获取定位标记,解析参数 |
| | | byte number = 0; |
| | | bool bitValue = true; |
| | | |
| | | Int32 x = 0, y = 0; |
| | | for (int bitIndex = 0; bitIndex <= 7; bitIndex++) |
| | | { |
| | | //获取图像中存值的坐标 |
| | | GetBitCoordinate(out x, out y, bitIndex); |
| | | |
| | | //解析并设置值 |
| | | if (!ParseBit(out bitValue, image, rect.Start.Add(x, y))) |
| | | { |
| | | return ParametersPoint.Empty; |
| | | } |
| | | else |
| | | { |
| | | number = SetBit(number, bitIndex, bitValue); |
| | | } |
| | | } |
| | | |
| | | return new ParametersPoint(rect.GetCenterPoint(), number); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 设置指定位 |
| | | /// </summary> |
| | | /// <param name="number"></param> |
| | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region minimap |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region Monsters |
| | | 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; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | /// 卡勒特难度,1¬5级 |
| | | /// </summary> |
| | | private static ColorArray[] KaleteNandu = new ColorArray[] { |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "835,221,0,88,149$821,221,255,255,255$822,221,255,255,255$834,221,0,88,149$861,221,143,0,119$862,221,143,0,119$874,221,149,0,17$875,221,149,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "848,221,88,0,149$821,221,88,149,0$822,221,88,149,0$834,221,255,255,255$835,221,255,255,255$849,221,88,0,149$861,221,143,0,119$862,221,143,0,119$874,221,149,0,17$875,221,149,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f,0.002f,0.002f,"848,221,255,255,255$822,221,88,149,0$835,221,0,88,149$862,221,143,0,119$875,221,149,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "848,221,88,0,149$822,221,88,149,0$835,221,0,88,149$862,221,255,255,255$875,221,149,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "848,221,88,0,149$822,221,88,149,0$835,221,0,88,149$862,221,143,0,119$874,221,255,255,255") |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1579,344,102,0,170$1557,344,255,255,255$1567,344,0,102,170$1590,344,160,0,136$1600,344,170,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1579,344,102,0,170$1557,344,102,170,0$1568,344,255,255,255$1590,344,160,0,136$1601,344,170,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f,0.002f,0.002f,"1579,344,255,255,255$1557,344,102,170,0$1568,344,0,102,170$1590,344,160,0,136$1601,344,170,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1568,344,0,102,170$1557,344,102,170,0$1579,344,102,0,170$1590,344,255,255,255$1601,344,170,0,17"), |
| | | ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1590,344,160,0,136$1557,344,102,170,0$1568,344,0,102,170$1579,344,102,0,170$1601,344,255,255,255") |
| | | }; |
| | | |
| | | |
| | |
| | | /// <returns></returns> |
| | | public static bool GetChoiceKaleteNandu(out Int32 choiceNandu, Image<Rgb, byte> image, ZTRectangle gameRect) |
| | | { |
| | | ZTRectangle limit = new ZTRectangle(gameRect.Start.X + 780, gameRect.Start.Y + 191, gameRect.Start.X + 911, gameRect.Start.Y + 234); |
| | | ZTRectangle limit = new ZTRectangle(gameRect.Start.X + 533, gameRect.Start.Y + 171, gameRect.Start.X + 607, gameRect.Start.Y + 193); |
| | | ZTRectangle position = ZTRectangle.Empty; |
| | | for (int i = 0; i < KaleteNandu.Length; i++) |
| | | { |
| | |
| | | /// </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> |
| | |
| | | /// 凛冬难度,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") |
| | | }; |
| | | |
| | | |
| | |
| | | /// <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++) |
| | | { |
| New file |
| | |
| | | using Emgu.CV; |
| | | using Emgu.CV.Structure; |
| | | using RichCreator.Utility.Captures; |
| | | using RichCreator.Utility.Structs; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace RichCreator.Utility.CV |
| | | { |
| | | public class ShikongzhimenCVHelper |
| | | { |
| | | |
| | | 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 Dictionary<ZTPoint,Direction> FindDoor(Image<Hsv, byte> image, Direction[] directions, ZTRectangle gameRect) |
| | | { |
| | | Dictionary<ZTPoint,Direction> doorDir = new Dictionary<ZTPoint,Direction>(); |
| | | Direction 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) |
| | | { |
| | | ZTPoint door = doorPosition + gameRect.Start; |
| | | if (!doorDir.ContainsKey(door)) |
| | | { |
| | | doorDir.Add(door, targetDirection); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return doorDir; |
| | | } |
| | | |
| | | /// <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.Start.X + 716, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y + 54); |
| | | 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.Start.X + 662, gameRect.Start.Y, gameRect.End.X, gameRect.Start.Y + 54); |
| | | ZTRectangle position = ZTRectangle.Empty; |
| | | return CVHelper.FindColorArray(out position, image, MapTopShikongzhimen, limit); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择进那个副本界面的下方"space"文字 |
| | | /// </summary> |
| | | public static ColorArray ChoiceTaskPage_Space = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "1522,728,0,0,0$1505,728,208,182,131$1506,728,0,0,0$1508,728,0,0,0$1509,728,208,182,131$1510,728,208,182,131$1511,728,0,0,0$1513,728,0,0,0$1514,728,0,0,0$1515,728,208,182,131$1517,728,208,182,131$1518,728,0,0,0$1519,728,0,0,0$1520,728,0,0,0$1521,728,208,182,131$1523,728,208,182,131$1524,728,0,0,0$1526,728,0,0,0$1527,728,208,182,131$1529,728,208,182,131$1530,728,0,0,0$1532,728,0,0,0$1533,728,208,182,131$1533,727,0,0,0$1532,727,208,182,131$1530,727,208,182,131$1529,727,0,0,0$1528,727,208,182,131$1527,727,0,0,0$1524,727,208,182,131$1523,727,0,0,0$1522,727,208,182,131$1521,727,0,0,0$1520,727,208,182,131$1518,727,208,182,131$1517,727,0,0,0$1516,727,208,182,131$1515,727,0,0,0$1514,727,208,182,131$1512,727,208,182,131$1511,727,0,0,0$1510,727,208,182,131$1509,727,0,0,0$1508,727,208,182,131$1506,727,208,182,131$1505,727,0,0,0$1505,725,208,182,131$1506,725,0,0,0$1507,725,0,0,0$1508,725,208,182,131$1510,725,208,182,131$1511,725,0,0,0$1512,725,208,182,131$1514,725,208,182,131$1515,725,0,0,0$1517,725,208,182,131$1518,725,0,0,0$1520,725,0,0,0$1521,725,0,0,0$1522,725,208,182,131$1523,725,0,0,0$1524,725,208,182,131$1528,725,208,182,131$1529,725,0,0,0$1531,725,0,0,0$1533,725,0,0,0$1534,725,208,182,131$1533,723,208,182,131$1532,723,0,0,0$1530,723,0,0,0$1529,723,208,182,131$1527,723,208,182,131$1526,723,0,0,0$1524,723,0,0,0$1523,723,208,182,131$1521,723,208,182,131$1520,723,0,0,0$1518,723,0,0,0$1517,723,208,182,131$1515,723,208,182,131$1514,723,0,0,0$1511,723,0,0,0$1510,723,208,182,131$1509,723,208,182,131$1508,723,0,0,0$1506,723,0,0,0$1505,723,208,182,131"); |
| | | |
| | | /// <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 + 420, gameRect.Start.Y + 576, gameRect.Start.X + 467, 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_Space, limit); |
| | | } |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | private static ColorArray skillTitleTextWhite = ColorArray.FromHsvFloatString(0.002f,0.002f,0.002f, "633,93,0,0,0$619,93,0,0,0$620,93,255,255,255$621,93,0,0,0$624,93,0,0,0$625,93,255,255,255$626,93,0,0,0$631,93,0,0,0$632,93,255,255,255$635,93,0,0,0$636,93,255,255,255$637,93,0,0,0$638,93,0,0,0$639,93,255,255,255$640,93,0,0,0$643,93,0,0,0$644,93,255,255,255$645,93,0,0,0$646,93,0,0,0$647,93,255,255,255$648,93,0,0,0$650,93,0,0,0$651,93,255,255,255$652,93,0,0,0$652,100,0,0,0$651,100,255,255,255$648,100,255,255,255$647,100,255,255,255$646,100,0,0,0$645,100,0,0,0$644,100,255,255,255$643,100,0,0,0$642,100,255,255,255$641,100,0,0,0$640,100,0,0,0$639,100,255,255,255$638,100,0,0,0$637,100,0,0,0$636,100,255,255,255$635,100,0,0,0$634,100,255,255,255$633,100,0,0,0$632,100,0,0,0$631,100,255,255,255$630,100,0,0,0$628,100,0,0,0$627,100,255,255,255$626,100,0,0,0$624,100,0,0,0$623,100,255,255,255$622,100,0,0,0$621,100,0,0,0$620,100,255,255,255$619,100,255,255,255$618,100,255,255,255$617,100,0,0,0$618,104,0,0,0$619,104,255,255,255$620,104,255,255,255$621,104,0,0,0$622,104,255,255,255$623,104,255,255,255$624,104,0,0,0$624,103,255,255,255$625,103,0,0,0$626,103,255,255,255$627,103,0,0,0$630,103,0,0,0$631,103,255,255,255$632,103,0,0,0$633,103,0,0,0$634,103,255,255,255$635,103,0,0,0$636,103,255,255,255$644,103,255,255,255$645,103,0,0,0$645,104,0,0,0$646,104,255,255,255$648,104,255,255,255$650,104,255,255,255$652,104,255,255,255$653,104,0,0,0"); |
| | | private static ColorArray skillTitleTextGray = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "633,103,0,0,0$619,93,0,0,0$620,93,170,170,170$621,93,0,0,0$624,93,0,0,0$625,93,170,170,170$626,93,0,0,0$631,93,0,0,0$632,93,170,170,170$633,93,0,0,0$635,93,0,0,0$636,93,170,170,170$637,93,0,0,0$638,93,0,0,0$639,93,170,170,170$640,93,0,0,0$643,93,0,0,0$644,93,170,170,170$645,93,0,0,0$646,93,0,0,0$647,93,170,170,170$648,93,0,0,0$650,93,0,0,0$651,93,170,170,170$652,93,0,0,0$652,100,0,0,0$651,100,170,170,170$649,100,170,170,170$647,100,170,170,170$646,100,0,0,0$645,100,0,0,0$644,100,170,170,170$643,100,0,0,0$642,100,170,170,170$641,100,0,0,0$640,100,0,0,0$639,100,170,170,170$638,100,0,0,0$637,100,0,0,0$636,100,170,170,170$635,100,0,0,0$634,100,170,170,170$633,100,0,0,0$632,100,0,0,0$631,100,170,170,170$630,100,0,0,0$628,100,0,0,0$627,100,170,170,170$618,104,0,0,0$619,104,170,170,170$620,104,170,170,170$621,104,0,0,0$622,104,170,170,170$623,104,170,170,170$624,104,0,0,0$626,104,0,0,0$627,104,170,170,170$628,104,170,170,170$630,104,0,0,0$631,104,170,170,170$632,104,0,0,0$633,104,170,170,170$634,103,170,170,170$635,103,0,0,0$636,103,170,170,170$637,103,0,0,0$638,103,0,0,0$638,104,170,170,170$640,104,170,170,170$641,104,0,0,0$643,104,0,0,0$644,104,170,170,170$645,104,0,0,0$646,104,170,170,170$648,104,170,170,170$650,104,170,170,170$652,104,170,170,170$653,104,0,0,0"); |
| | | |
| | | /// <summary> |
| | | /// lv文字 |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | |
| | | public static bool FindCommonUpDownKey(out ZTRectangle upKeyRect, out ZTRectangle downKeyRect, ZTRectangle titleRect, ZTRectangle gameRect) |
| | | public static bool FindCommonUpDownKey(out ZTRectangle upKeyRect, out ZTRectangle downKeyRect,ZTRectangle gameRect) |
| | | { |
| | | upKeyRect = downKeyRect = ZTRectangle.Empty; |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle updownkeylimit = new ZTRectangle(titleRect.Start.X, titleRect.Start.Y, titleRect.Start.X + 222, gameRect.End.Y); |
| | | ZTRectangle updownkeylimit = new ZTRectangle(gameRect.Start.X+535,gameRect.Start.Y+180,gameRect.Start.X+562,gameRect.Start.Y+535); |
| | | |
| | | if (!CVHelper.FindColorArray(out upKeyRect, image, upKey, updownkeylimit)) |
| | | { |
| | |
| | | return false; |
| | | } |
| | | |
| | | private static Int32 tt = 0; |
| | | |
| | | ///// <summary> |
| | | ///// 灰色学习按钮 |
| | | ///// </summary> |
| | |
| | | private static ColorArray loginByQQFastText = ColorArray.FromThresholdString(122, "1422,674,0,0,0$1410,674,0,0,0$1411,674,0,0,0$1412,674,0,0,0$1413,674,0,0,0$1414,674,0,0,0$1415,674,0,0,0$1416,674,0,0,0$1417,674,0,0,0$1418,674,0,0,0$1419,674,0,0,0$1420,674,0,0,0$1421,674,0,0,0$1423,674,0,0,0$1424,674,0,0,0$1425,674,0,0,0$1426,674,0,0,0$1427,674,0,0,0$1428,674,0,0,0$1429,674,0,0,0$1430,674,0,0,0$1431,674,0,0,0$1432,674,0,0,0$1433,674,0,0,0$1434,674,0,0,0$1435,674,0,0,0$1436,674,0,0,0$1437,674,0,0,0$1438,674,0,0,0$1439,674,0,0,0$1440,674,0,0,0$1441,674,0,0,0$1442,674,0,0,0$1443,674,0,0,0$1444,674,0,0,0$1445,674,0,0,0$1446,674,0,0,0$1447,674,0,0,0$1448,674,0,0,0$1449,674,0,0,0$1450,674,0,0,0$1451,674,0,0,0$1452,674,0,0,0$1453,674,0,0,0$1454,674,0,0,0$1455,674,0,0,0$1456,674,0,0,0$1457,674,0,0,0$1458,674,0,0,0$1459,674,0,0,0$1460,674,0,0,0$1461,674,0,0,0$1462,674,0,0,0$1463,674,0,0,0$1464,674,0,0,0$1465,674,0,0,0$1466,674,0,0,0$1467,674,0,0,0$1468,674,0,0,0$1469,674,0,0,0$1470,674,0,0,0$1471,674,0,0,0$1472,674,0,0,0$1473,674,0,0,0$1474,674,0,0,0$1475,674,0,0,0$1476,674,0,0,0$1477,674,0,0,0$1478,674,0,0,0$1479,674,0,0,0$1480,674,0,0,0$1481,674,0,0,0$1482,674,0,0,0$1483,674,0,0,0$1484,674,0,0,0$1485,674,0,0,0$1410,675,0,0,0$1411,675,0,0,0$1412,675,0,0,0$1413,675,0,0,0$1414,675,0,0,0$1415,675,0,0,0$1416,675,0,0,0$1417,675,0,0,0$1418,675,0,0,0$1419,675,0,0,0$1420,675,0,0,0$1421,675,0,0,0$1422,675,0,0,0$1423,675,0,0,0$1424,675,0,0,0$1425,675,0,0,0$1426,675,0,0,0$1427,675,0,0,0$1428,675,0,0,0$1429,675,0,0,0$1430,675,0,0,0$1431,675,0,0,0$1432,675,0,0,0$1433,675,0,0,0$1434,675,0,0,0$1435,675,0,0,0$1436,675,0,0,0$1437,675,0,0,0$1438,675,0,0,0$1439,675,0,0,0$1440,675,0,0,0$1441,675,0,0,0$1442,675,0,0,0$1443,675,0,0,0$1444,675,0,0,0$1445,675,0,0,0$1446,675,0,0,0$1447,675,0,0,0$1448,675,0,0,0$1449,675,0,0,0$1450,675,0,0,0$1451,675,0,0,0$1452,675,0,0,0$1453,675,0,0,0$1454,675,0,0,0$1455,675,0,0,0$1456,675,0,0,0$1457,675,0,0,0$1458,675,0,0,0$1459,675,0,0,0$1460,675,0,0,0$1461,675,0,0,0$1462,675,0,0,0$1463,675,0,0,0$1464,675,0,0,0$1465,675,0,0,0$1466,675,0,0,0$1467,675,0,0,0$1468,675,0,0,0$1469,675,0,0,0$1470,675,0,0,0$1471,675,0,0,0$1472,675,0,0,0$1473,675,0,0,0$1474,675,0,0,0$1475,675,0,0,0$1476,675,0,0,0$1477,675,0,0,0$1478,675,0,0,0$1479,675,0,0,0$1480,675,0,0,0$1481,675,0,0,0$1482,675,0,0,0$1483,675,0,0,0$1484,675,0,0,0$1485,675,0,0,0$1410,676,0,0,0$1411,676,0,0,0$1413,676,0,0,0$1414,676,0,0,0$1416,676,0,0,0$1417,676,0,0,0$1419,676,0,0,0$1420,676,0,0,0$1422,676,0,0,0$1423,676,0,0,0$1425,676,0,0,0$1426,676,0,0,0$1428,676,0,0,0$1429,676,0,0,0$1431,676,0,0,0$1432,676,0,0,0$1434,676,0,0,0$1437,676,0,0,0$1438,676,0,0,0$1443,676,0,0,0$1444,676,0,0,0$1449,676,0,0,0$1450,676,0,0,0$1452,676,0,0,0$1455,676,0,0,0$1456,676,0,0,0$1460,676,255,255,255$1461,676,255,255,255$1462,676,255,255,255$1470,676,0,0,0$1472,676,255,255,255$1473,676,255,255,255$1474,676,255,255,255$1475,676,255,255,255$1476,676,255,255,255$1477,676,255,255,255$1478,676,255,255,255$1479,676,255,255,255$1482,676,0,0,0$1483,676,0,0,0$1485,676,0,0,0$1410,677,0,0,0$1411,677,0,0,0$1412,677,0,0,0$1413,677,0,0,0$1414,677,0,0,0$1415,677,0,0,0$1418,677,255,255,255$1419,677,255,255,255$1420,677,255,255,255$1422,677,0,0,0$1423,677,0,0,0$1424,677,0,0,0$1425,677,0,0,0$1428,677,255,255,255$1429,677,255,255,255$1430,677,255,255,255$1432,677,0,0,0$1433,677,0,0,0$1434,677,0,0,0$1437,677,0,0,0$1438,677,0,0,0$1439,677,0,0,0$1442,677,0,0,0$1443,677,0,0,0$1444,677,0,0,0$1445,677,0,0,0$1446,677,0,0,0$1450,677,255,255,255$1451,677,255,255,255$1452,677,255,255,255$1453,677,255,255,255$1454,677,255,255,255$1455,677,255,255,255$1456,677,255,255,255$1459,677,0,0,0$1460,677,0,0,0$1466,677,255,255,255$1468,677,0,0,0$1469,677,0,0,0$1470,677,0,0,0$1471,677,0,0,0$1472,677,0,0,0$1473,677,0,0,0$1474,677,0,0,0$1475,677,0,0,0$1476,677,0,0,0$1477,677,0,0,0$1481,677,0,0,0$1482,677,0,0,0$1483,677,0,0,0$1484,677,0,0,0$1485,677,0,0,0$1410,678,0,0,0$1411,678,0,0,0$1412,678,0,0,0$1413,678,0,0,0$1414,678,0,0,0$1416,678,255,255,255$1418,678,0,0,0$1419,678,0,0,0$1423,678,0,0,0$1424,678,0,0,0$1426,678,255,255,255$1428,678,0,0,0$1429,678,0,0,0$1433,678,0,0,0$1439,678,255,255,255$1440,678,255,255,255$1441,678,255,255,255$1442,678,255,255,255$1443,678,255,255,255$1445,678,0,0,0$1446,678,0,0,0$1447,678,0,0,0$1450,678,0,0,0$1451,678,0,0,0$1452,678,0,0,0$1455,678,0,0,0$1456,678,0,0,0$1457,678,0,0,0$1459,678,255,255,255$1463,678,0,0,0$1464,678,0,0,0$1467,678,0,0,0$1470,678,0,0,0$1473,678,255,255,255$1474,678,255,255,255$1475,678,255,255,255$1476,678,255,255,255$1477,678,255,255,255$1478,678,255,255,255$1479,678,255,255,255$1481,678,0,0,0$1482,678,0,0,0$1483,678,0,0,0$1484,678,0,0,0$1485,678,0,0,0$1410,679,0,0,0$1411,679,0,0,0$1413,679,0,0,0$1417,679,0,0,0$1419,679,0,0,0$1420,679,0,0,0$1422,679,255,255,255$1428,679,0,0,0$1429,679,0,0,0$1432,679,255,255,255$1446,679,0,0,0$1447,679,0,0,0$1449,679,0,0,0$1451,679,255,255,255$1452,679,255,255,255$1453,679,255,255,255$1454,679,255,255,255$1455,679,255,255,255$1456,679,255,255,255$1458,679,0,0,0$1460,679,255,255,255$1463,679,255,255,255$1464,679,255,255,255$1465,679,255,255,255$1466,679,255,255,255$1467,679,255,255,255$1470,679,0,0,0$1471,679,0,0,0$1473,679,0,0,0$1474,679,0,0,0$1476,679,0,0,0$1477,679,0,0,0$1482,679,0,0,0$1483,679,0,0,0$1485,679,0,0,0$1410,680,0,0,0$1411,680,0,0,0$1412,680,0,0,0$1413,680,0,0,0$1417,680,0,0,0$1418,680,0,0,0$1419,680,0,0,0$1420,680,0,0,0$1427,680,0,0,0$1428,680,0,0,0$1429,680,0,0,0$1430,680,0,0,0$1437,680,0,0,0$1438,680,0,0,0$1439,680,0,0,0$1442,680,0,0,0$1445,680,0,0,0$1447,680,255,255,255$1449,680,0,0,0$1452,680,0,0,0$1455,680,0,0,0$1458,680,0,0,0$1461,680,0,0,0$1462,680,0,0,0$1463,680,0,0,0$1464,680,0,0,0$1465,680,0,0,0$1469,680,0,0,0$1471,680,255,255,255$1472,680,255,255,255$1473,680,255,255,255$1474,680,255,255,255$1475,680,255,255,255$1476,680,255,255,255$1477,680,255,255,255$1478,680,255,255,255$1479,680,255,255,255$1480,680,255,255,255$1482,680,0,0,0$1483,680,0,0,0$1484,680,0,0,0$1485,680,0,0,0$1410,681,0,0,0$1411,681,0,0,0$1412,681,0,0,0$1413,681,0,0,0$1417,681,0,0,0$1418,681,0,0,0$1419,681,0,0,0$1420,681,0,0,0$1427,681,0,0,0$1428,681,0,0,0$1429,681,0,0,0$1430,681,0,0,0$1437,681,0,0,0$1438,681,0,0,0$1439,681,0,0,0$1442,681,0,0,0$1445,681,0,0,0$1446,681,0,0,0$1449,681,0,0,0$1451,681,255,255,255$1452,681,255,255,255$1453,681,255,255,255$1454,681,255,255,255$1455,681,255,255,255$1456,681,255,255,255$1461,681,255,255,255$1462,681,255,255,255$1463,681,255,255,255$1464,681,255,255,255$1465,681,255,255,255$1466,681,255,255,255$1471,681,0,0,0$1472,681,0,0,0$1473,681,0,0,0$1474,681,0,0,0$1477,681,0,0,0$1478,681,0,0,0$1479,681,0,0,0$1480,681,0,0,0$1481,681,0,0,0$1482,681,0,0,0$1483,681,0,0,0$1484,681,0,0,0$1485,681,0,0,0$1410,682,0,0,0$1411,682,0,0,0$1413,682,0,0,0$1417,682,0,0,0$1419,682,0,0,0$1420,682,0,0,0$1428,682,0,0,0$1429,682,0,0,0$1434,682,0,0,0$1439,682,255,255,255$1440,682,255,255,255$1441,682,255,255,255$1442,682,255,255,255$1443,682,255,255,255$1444,682,255,255,255$1446,682,0,0,0$1449,682,0,0,0$1450,682,0,0,0$1453,682,255,255,255$1455,682,0,0,0$1456,682,0,0,0$1458,682,0,0,0$1459,682,0,0,0$1462,682,0,0,0$1464,682,0,0,0$1465,682,0,0,0$1470,682,0,0,0$1472,682,255,255,255$1474,682,0,0,0$1482,682,0,0,0$1483,682,0,0,0$1485,682,0,0,0$1410,683,0,0,0$1411,683,0,0,0$1412,683,0,0,0$1413,683,0,0,0$1417,683,0,0,0$1418,683,0,0,0$1419,683,0,0,0$1420,683,0,0,0$1422,683,255,255,255$1427,683,0,0,0$1428,683,0,0,0$1429,683,0,0,0$1430,683,0,0,0$1432,683,255,255,255$1434,683,0,0,0$1437,683,0,0,0$1438,683,0,0,0$1439,683,0,0,0$1441,683,255,255,255$1443,683,0,0,0$1444,683,0,0,0$1445,683,0,0,0$1446,683,0,0,0$1449,683,0,0,0$1454,683,255,255,255$1455,683,255,255,255$1457,683,0,0,0$1458,683,0,0,0$1459,683,0,0,0$1461,683,255,255,255$1462,683,255,255,255$1463,683,255,255,255$1464,683,255,255,255$1465,683,255,255,255$1466,683,255,255,255$1469,683,0,0,0$1470,683,0,0,0$1471,683,0,0,0$1476,683,255,255,255$1481,683,0,0,0$1482,683,0,0,0$1483,683,0,0,0$1484,683,0,0,0$1485,683,0,0,0$1410,684,0,0,0$1411,684,0,0,0$1412,684,0,0,0$1413,684,0,0,0$1414,684,0,0,0$1416,684,255,255,255$1418,684,0,0,0$1419,684,0,0,0$1423,684,0,0,0$1424,684,0,0,0$1426,684,255,255,255$1428,684,0,0,0$1429,684,0,0,0$1433,684,0,0,0$1434,684,0,0,0$1437,684,0,0,0$1438,684,0,0,0$1444,684,0,0,0$1445,684,0,0,0$1446,684,0,0,0$1452,684,0,0,0$1458,684,0,0,0$1459,684,0,0,0$1463,684,0,0,0$1464,684,0,0,0$1468,684,0,0,0$1469,684,0,0,0$1470,684,0,0,0$1471,684,0,0,0$1479,684,0,0,0$1480,684,0,0,0$1481,684,0,0,0$1482,684,0,0,0$1483,684,0,0,0$1484,684,0,0,0$1485,684,0,0,0$1410,685,0,0,0$1411,685,0,0,0$1413,685,0,0,0$1414,685,0,0,0$1418,685,255,255,255$1419,685,255,255,255$1420,685,255,255,255$1423,685,0,0,0$1425,685,0,0,0$1427,685,255,255,255$1428,685,255,255,255$1429,685,255,255,255$1430,685,255,255,255$1434,685,0,0,0$1437,685,0,0,0$1439,685,255,255,255$1441,685,0,0,0$1443,685,255,255,255$1447,685,255,255,255$1448,685,255,255,255$1450,685,0,0,0$1452,685,0,0,0$1453,685,0,0,0$1455,685,0,0,0$1456,685,0,0,0$1458,685,0,0,0$1459,685,0,0,0$1467,685,0,0,0$1468,685,0,0,0$1470,685,0,0,0$1472,685,255,255,255$1474,685,0,0,0$1477,685,0,0,0$1482,685,0,0,0$1483,685,0,0,0$1485,685,0,0,0$1410,686,0,0,0$1411,686,0,0,0$1412,686,0,0,0$1413,686,0,0,0$1414,686,0,0,0$1415,686,0,0,0$1416,686,0,0,0$1417,686,0,0,0$1418,686,0,0,0$1419,686,0,0,0$1420,686,0,0,0$1422,686,255,255,255$1425,686,0,0,0$1426,686,0,0,0$1427,686,0,0,0$1428,686,0,0,0$1429,686,0,0,0$1430,686,0,0,0$1432,686,255,255,255$1439,686,0,0,0$1440,686,0,0,0$1441,686,0,0,0$1442,686,0,0,0$1450,686,255,255,255$1451,686,255,255,255$1452,686,255,255,255$1453,686,255,255,255$1454,686,255,255,255$1455,686,255,255,255$1456,686,255,255,255$1459,686,255,255,255$1460,686,255,255,255$1461,686,255,255,255$1462,686,255,255,255$1463,686,255,255,255$1464,686,255,255,255$1465,686,255,255,255$1466,686,255,255,255$1467,686,255,255,255$1468,686,255,255,255$1472,686,0,0,0$1474,686,255,255,255$1475,686,255,255,255$1477,686,0,0,0$1478,686,0,0,0$1482,686,0,0,0$1483,686,0,0,0$1484,686,0,0,0$1485,686,0,0,0$1410,687,0,0,0$1411,687,0,0,0$1412,687,0,0,0$1413,687,0,0,0$1414,687,0,0,0$1415,687,0,0,0$1416,687,0,0,0$1417,687,0,0,0$1418,687,0,0,0$1419,687,0,0,0$1420,687,0,0,0$1421,687,0,0,0$1422,687,0,0,0$1423,687,0,0,0$1424,687,0,0,0$1425,687,0,0,0$1426,687,0,0,0$1427,687,0,0,0$1428,687,0,0,0$1429,687,0,0,0$1430,687,0,0,0$1431,687,0,0,0$1432,687,0,0,0$1433,687,0,0,0$1434,687,0,0,0$1435,687,0,0,0$1436,687,0,0,0$1437,687,0,0,0$1438,687,0,0,0$1439,687,0,0,0$1440,687,0,0,0$1441,687,0,0,0$1442,687,0,0,0$1443,687,0,0,0$1444,687,0,0,0$1445,687,0,0,0$1446,687,0,0,0$1447,687,0,0,0$1448,687,0,0,0$1449,687,0,0,0$1450,687,0,0,0$1451,687,0,0,0$1452,687,0,0,0$1453,687,0,0,0$1454,687,0,0,0$1455,687,0,0,0$1456,687,0,0,0$1457,687,0,0,0$1458,687,0,0,0$1459,687,0,0,0$1460,687,0,0,0$1461,687,0,0,0$1462,687,0,0,0$1463,687,0,0,0$1464,687,0,0,0$1465,687,0,0,0$1466,687,0,0,0$1467,687,0,0,0$1468,687,0,0,0$1469,687,0,0,0$1470,687,0,0,0$1471,687,0,0,0$1472,687,0,0,0$1473,687,0,0,0$1474,687,0,0,0$1475,687,0,0,0$1476,687,0,0,0$1477,687,0,0,0$1478,687,0,0,0$1479,687,0,0,0$1480,687,0,0,0$1481,687,0,0,0$1482,687,0,0,0$1483,687,0,0,0$1484,687,0,0,0$1485,687,0,0,0$1410,688,0,0,0$1411,688,0,0,0$1413,688,0,0,0$1414,688,0,0,0$1416,688,0,0,0$1417,688,0,0,0$1419,688,0,0,0$1420,688,0,0,0$1422,688,0,0,0$1423,688,0,0,0$1425,688,0,0,0$1426,688,0,0,0$1428,688,0,0,0$1429,688,0,0,0$1431,688,0,0,0$1432,688,0,0,0$1434,688,0,0,0$1435,688,0,0,0$1437,688,0,0,0$1438,688,0,0,0$1440,688,0,0,0$1441,688,0,0,0$1443,688,0,0,0$1444,688,0,0,0$1446,688,0,0,0$1447,688,0,0,0$1449,688,0,0,0$1450,688,0,0,0$1452,688,0,0,0$1453,688,0,0,0$1455,688,0,0,0$1456,688,0,0,0$1458,688,0,0,0$1459,688,0,0,0$1461,688,0,0,0$1462,688,0,0,0$1464,688,0,0,0$1465,688,0,0,0$1467,688,0,0,0$1468,688,0,0,0$1470,688,0,0,0$1471,688,0,0,0$1473,688,0,0,0$1474,688,0,0,0$1476,688,0,0,0$1477,688,0,0,0$1479,688,0,0,0$1480,688,0,0,0$1482,688,0,0,0$1483,688,0,0,0$1485,688,0,0,0"); |
| | | |
| | | //通过用户名登陆字的颜色数组 |
| | | private static ColorArray loginByUserName = ColorArray.FromThresholdString(103, "1254,634,0,0,0$1237,634,0,0,0$1238,634,0,0,0$1239,634,0,0,0$1240,634,0,0,0$1241,634,0,0,0$1242,634,0,0,0$1243,634,0,0,0$1244,634,0,0,0$1245,634,0,0,0$1246,634,0,0,0$1247,634,0,0,0$1248,634,0,0,0$1249,634,0,0,0$1250,634,0,0,0$1251,634,0,0,0$1252,634,0,0,0$1253,634,0,0,0$1255,634,0,0,0$1256,634,0,0,0$1257,634,0,0,0$1258,634,0,0,0$1259,634,0,0,0$1260,634,0,0,0$1261,634,0,0,0$1262,634,0,0,0$1263,634,0,0,0$1264,634,0,0,0$1265,634,0,0,0$1266,634,0,0,0$1267,634,0,0,0$1268,634,0,0,0$1269,634,0,0,0$1270,634,0,0,0$1271,634,0,0,0$1272,634,0,0,0$1273,634,0,0,0$1274,634,0,0,0$1275,634,0,0,0$1276,634,0,0,0$1277,634,0,0,0$1278,634,0,0,0$1279,634,0,0,0$1280,634,0,0,0$1281,634,0,0,0$1282,634,0,0,0$1283,634,0,0,0$1284,634,0,0,0$1285,634,0,0,0$1286,634,0,0,0$1287,634,0,0,0$1288,634,0,0,0$1289,634,0,0,0$1290,634,0,0,0$1291,634,0,0,0$1292,634,0,0,0$1293,634,0,0,0$1294,634,0,0,0$1295,634,0,0,0$1296,634,0,0,0$1297,634,0,0,0$1298,634,0,0,0$1299,634,0,0,0$1300,634,0,0,0$1301,634,0,0,0$1302,634,0,0,0$1303,634,0,0,0$1304,634,0,0,0$1305,634,0,0,0$1306,634,0,0,0$1307,634,0,0,0$1308,634,0,0,0$1309,634,0,0,0$1310,634,0,0,0$1311,634,0,0,0$1237,635,0,0,0$1239,635,0,0,0$1240,635,0,0,0$1242,635,0,0,0$1243,635,0,0,0$1245,635,0,0,0$1246,635,0,0,0$1248,635,0,0,0$1249,635,0,0,0$1251,635,0,0,0$1252,635,0,0,0$1254,635,0,0,0$1255,635,0,0,0$1257,635,0,0,0$1258,635,0,0,0$1260,635,0,0,0$1261,635,0,0,0$1263,635,0,0,0$1264,635,0,0,0$1266,635,0,0,0$1267,635,0,0,0$1269,635,0,0,0$1270,635,0,0,0$1272,635,0,0,0$1273,635,0,0,0$1275,635,0,0,0$1276,635,0,0,0$1278,635,0,0,0$1279,635,0,0,0$1281,635,0,0,0$1282,635,0,0,0$1284,635,0,0,0$1285,635,0,0,0$1287,635,0,0,0$1288,635,0,0,0$1290,635,0,0,0$1291,635,0,0,0$1293,635,0,0,0$1294,635,0,0,0$1296,635,0,0,0$1297,635,0,0,0$1299,635,0,0,0$1300,635,0,0,0$1302,635,0,0,0$1303,635,0,0,0$1305,635,0,0,0$1306,635,0,0,0$1308,635,0,0,0$1309,635,0,0,0$1311,635,0,0,0$1237,636,0,0,0$1238,636,0,0,0$1239,636,0,0,0$1240,636,0,0,0$1241,636,0,0,0$1242,636,0,0,0$1243,636,0,0,0$1244,636,0,0,0$1245,636,0,0,0$1246,636,0,0,0$1247,636,0,0,0$1248,636,0,0,0$1249,636,0,0,0$1250,636,0,0,0$1251,636,0,0,0$1252,636,0,0,0$1253,636,0,0,0$1254,636,0,0,0$1255,636,0,0,0$1256,636,0,0,0$1257,636,0,0,0$1258,636,0,0,0$1259,636,0,0,0$1260,636,0,0,0$1261,636,0,0,0$1262,636,0,0,0$1263,636,0,0,0$1264,636,0,0,0$1265,636,0,0,0$1266,636,0,0,0$1267,636,0,0,0$1268,636,0,0,0$1269,636,0,0,0$1270,636,0,0,0$1271,636,0,0,0$1272,636,0,0,0$1273,636,0,0,0$1274,636,0,0,0$1275,636,0,0,0$1276,636,0,0,0$1277,636,0,0,0$1278,636,0,0,0$1279,636,0,0,0$1280,636,0,0,0$1281,636,0,0,0$1282,636,0,0,0$1283,636,0,0,0$1284,636,0,0,0$1285,636,0,0,0$1286,636,0,0,0$1287,636,0,0,0$1288,636,0,0,0$1289,636,0,0,0$1290,636,0,0,0$1291,636,0,0,0$1292,636,0,0,0$1293,636,0,0,0$1294,636,0,0,0$1295,636,0,0,0$1296,636,0,0,0$1297,636,0,0,0$1298,636,0,0,0$1299,636,0,0,0$1300,636,0,0,0$1301,636,0,0,0$1302,636,0,0,0$1303,636,0,0,0$1304,636,0,0,0$1305,636,0,0,0$1306,636,0,0,0$1307,636,0,0,0$1308,636,0,0,0$1309,636,0,0,0$1310,636,0,0,0$1311,636,0,0,0$1237,637,0,0,0$1238,637,0,0,0$1239,637,0,0,0$1240,637,255,255,255$1242,637,0,0,0$1244,637,255,255,255$1246,637,0,0,0$1247,637,0,0,0$1250,637,0,0,0$1252,637,255,255,255$1253,637,255,255,255$1254,637,255,255,255$1255,637,255,255,255$1256,637,255,255,255$1257,637,255,255,255$1258,637,255,255,255$1259,637,255,255,255$1261,637,0,0,0$1262,637,0,0,0$1263,637,0,0,0$1264,637,0,0,0$1265,637,0,0,0$1266,637,0,0,0$1267,637,255,255,255$1268,637,255,255,255$1269,637,0,0,0$1270,637,0,0,0$1271,637,0,0,0$1272,637,0,0,0$1273,637,0,0,0$1275,637,255,255,255$1276,637,255,255,255$1277,637,255,255,255$1278,637,255,255,255$1279,637,255,255,255$1280,637,255,255,255$1281,637,255,255,255$1282,637,255,255,255$1283,637,255,255,255$1284,637,255,255,255$1287,637,255,255,255$1288,637,255,255,255$1289,637,255,255,255$1290,637,255,255,255$1292,637,255,255,255$1294,637,0,0,0$1295,637,255,255,255$1297,637,0,0,0$1298,637,0,0,0$1300,637,255,255,255$1301,637,255,255,255$1302,637,255,255,255$1303,637,255,255,255$1304,637,255,255,255$1305,637,255,255,255$1306,637,255,255,255$1307,637,255,255,255$1309,637,0,0,0$1310,637,0,0,0$1311,637,0,0,0$1237,638,0,0,0$1239,638,0,0,0$1240,638,255,255,255$1242,638,0,0,0$1243,638,0,0,0$1244,638,255,255,255$1246,638,0,0,0$1247,638,255,255,255$1249,638,0,0,0$1252,638,255,255,255$1254,638,0,0,0$1255,638,0,0,0$1257,638,0,0,0$1259,638,255,255,255$1261,638,0,0,0$1263,638,255,255,255$1264,638,255,255,255$1265,638,255,255,255$1266,638,255,255,255$1267,638,255,255,255$1268,638,255,255,255$1269,638,255,255,255$1270,638,255,255,255$1271,638,255,255,255$1272,638,255,255,255$1275,638,0,0,0$1278,638,0,0,0$1279,638,0,0,0$1281,638,0,0,0$1282,638,0,0,0$1284,638,255,255,255$1285,638,0,0,0$1287,638,0,0,0$1288,638,0,0,0$1290,638,255,255,255$1293,638,255,255,255$1294,638,255,255,255$1296,638,0,0,0$1297,638,0,0,0$1299,638,0,0,0$1300,638,0,0,0$1302,638,0,0,0$1303,638,0,0,0$1305,638,0,0,0$1307,638,255,255,255$1309,638,0,0,0$1311,638,0,0,0$1237,639,0,0,0$1239,639,255,255,255$1240,639,255,255,255$1241,639,255,255,255$1242,639,255,255,255$1244,639,255,255,255$1246,639,255,255,255$1248,639,0,0,0$1249,639,0,0,0$1250,639,0,0,0$1252,639,255,255,255$1253,639,255,255,255$1254,639,255,255,255$1255,639,255,255,255$1256,639,255,255,255$1257,639,255,255,255$1258,639,255,255,255$1259,639,255,255,255$1261,639,0,0,0$1264,639,0,0,0$1265,639,0,0,0$1267,639,255,255,255$1269,639,0,0,0$1274,639,0,0,0$1275,639,0,0,0$1276,639,255,255,255$1278,639,0,0,0$1280,639,255,255,255$1282,639,0,0,0$1285,639,0,0,0$1287,639,255,255,255$1289,639,255,255,255$1291,639,0,0,0$1292,639,0,0,0$1293,639,255,255,255$1295,639,0,0,0$1296,639,255,255,255$1298,639,0,0,0$1300,639,255,255,255$1301,639,255,255,255$1302,639,255,255,255$1303,639,255,255,255$1304,639,255,255,255$1305,639,255,255,255$1306,639,255,255,255$1307,639,255,255,255$1309,639,0,0,0$1310,639,0,0,0$1311,639,0,0,0$1237,640,0,0,0$1240,640,255,255,255$1242,640,255,255,255$1244,640,255,255,255$1247,640,0,0,0$1248,640,0,0,0$1249,640,0,0,0$1250,640,0,0,0$1252,640,255,255,255$1254,640,0,0,0$1255,640,0,0,0$1256,640,0,0,0$1257,640,0,0,0$1259,640,255,255,255$1261,640,0,0,0$1262,640,0,0,0$1264,640,255,255,255$1268,640,255,255,255$1269,640,255,255,255$1271,640,0,0,0$1272,640,0,0,0$1273,640,0,0,0$1274,640,0,0,0$1277,640,0,0,0$1278,640,0,0,0$1280,640,255,255,255$1281,640,0,0,0$1282,640,0,0,0$1285,640,0,0,0$1286,640,0,0,0$1288,640,255,255,255$1289,640,255,255,255$1290,640,255,255,255$1291,640,255,255,255$1292,640,255,255,255$1293,640,255,255,255$1294,640,255,255,255$1295,640,255,255,255$1297,640,0,0,0$1298,640,0,0,0$1299,640,0,0,0$1300,640,0,0,0$1301,640,0,0,0$1302,640,0,0,0$1303,640,0,0,0$1304,640,0,0,0$1305,640,0,0,0$1307,640,255,255,255$1309,640,0,0,0$1310,640,0,0,0$1311,640,0,0,0$1237,641,0,0,0$1240,641,255,255,255$1242,641,255,255,255$1244,641,255,255,255$1246,641,0,0,0$1248,641,0,0,0$1249,641,0,0,0$1251,641,0,0,0$1252,641,0,0,0$1254,641,0,0,0$1255,641,0,0,0$1257,641,0,0,0$1258,641,0,0,0$1260,641,0,0,0$1261,641,0,0,0$1263,641,255,255,255$1267,641,255,255,255$1268,641,255,255,255$1272,641,255,255,255$1275,641,255,255,255$1276,641,255,255,255$1277,641,255,255,255$1280,641,255,255,255$1281,641,0,0,0$1282,641,0,0,0$1283,641,255,255,255$1285,641,0,0,0$1287,641,255,255,255$1288,641,255,255,255$1290,641,0,0,0$1291,641,0,0,0$1293,641,0,0,0$1295,641,255,255,255$1297,641,0,0,0$1298,641,255,255,255$1299,641,255,255,255$1300,641,255,255,255$1301,641,255,255,255$1302,641,255,255,255$1303,641,255,255,255$1304,641,255,255,255$1305,641,255,255,255$1306,641,255,255,255$1307,641,255,255,255$1308,641,255,255,255$1309,641,255,255,255$1311,641,0,0,0$1237,642,0,0,0$1240,642,255,255,255$1242,642,255,255,255$1243,642,255,255,255$1244,642,255,255,255$1245,642,255,255,255$1246,642,255,255,255$1247,642,255,255,255$1248,642,255,255,255$1250,642,255,255,255$1251,642,255,255,255$1252,642,255,255,255$1253,642,255,255,255$1254,642,255,255,255$1255,642,255,255,255$1256,642,255,255,255$1257,642,255,255,255$1258,642,255,255,255$1259,642,255,255,255$1260,642,255,255,255$1261,642,255,255,255$1263,642,0,0,0$1265,642,255,255,255$1266,642,255,255,255$1268,642,0,0,0$1269,642,0,0,0$1273,642,255,255,255$1275,642,255,255,255$1280,642,255,255,255$1281,642,255,255,255$1282,642,255,255,255$1283,642,255,255,255$1284,642,255,255,255$1286,642,255,255,255$1288,642,255,255,255$1289,642,255,255,255$1290,642,255,255,255$1291,642,255,255,255$1292,642,255,255,255$1293,642,255,255,255$1294,642,255,255,255$1295,642,255,255,255$1296,642,255,255,255$1297,642,255,255,255$1299,642,0,0,0$1300,642,0,0,0$1301,642,0,0,0$1302,642,0,0,0$1305,642,0,0,0$1306,642,0,0,0$1307,642,0,0,0$1308,642,0,0,0$1309,642,0,0,0$1310,642,0,0,0$1311,642,0,0,0$1237,643,0,0,0$1240,643,255,255,255$1242,643,255,255,255$1244,643,255,255,255$1246,643,255,255,255$1248,643,0,0,0$1249,643,0,0,0$1250,643,0,0,0$1251,643,0,0,0$1254,643,0,0,0$1255,643,0,0,0$1256,643,0,0,0$1257,643,0,0,0$1258,643,0,0,0$1259,643,0,0,0$1260,643,0,0,0$1261,643,0,0,0$1263,643,255,255,255$1264,643,255,255,255$1266,643,255,255,255$1267,643,255,255,255$1268,643,255,255,255$1269,643,255,255,255$1270,643,255,255,255$1272,643,0,0,0$1273,643,0,0,0$1275,643,255,255,255$1279,643,0,0,0$1280,643,0,0,0$1281,643,0,0,0$1282,643,0,0,0$1283,643,0,0,0$1286,643,0,0,0$1287,643,0,0,0$1288,643,255,255,255$1290,643,0,0,0$1291,643,0,0,0$1292,643,0,0,0$1293,643,0,0,0$1295,643,255,255,255$1297,643,0,0,0$1298,643,0,0,0$1300,643,255,255,255$1302,643,0,0,0$1304,643,255,255,255$1306,643,0,0,0$1308,643,255,255,255$1309,643,0,0,0$1310,643,0,0,0$1311,643,0,0,0$1237,644,0,0,0$1240,644,255,255,255$1241,644,255,255,255$1242,644,255,255,255$1244,644,255,255,255$1247,644,255,255,255$1248,644,0,0,0$1249,644,0,0,0$1252,644,255,255,255$1253,644,255,255,255$1254,644,255,255,255$1255,644,255,255,255$1256,644,255,255,255$1257,644,255,255,255$1258,644,255,255,255$1259,644,255,255,255$1261,644,0,0,0$1266,644,0,0,0$1268,644,255,255,255$1269,644,0,0,0$1270,644,0,0,0$1273,644,0,0,0$1278,644,255,255,255$1279,644,255,255,255$1280,644,255,255,255$1281,644,255,255,255$1282,644,255,255,255$1283,644,255,255,255$1284,644,255,255,255$1287,644,0,0,0$1288,644,255,255,255$1289,644,255,255,255$1290,644,255,255,255$1291,644,255,255,255$1292,644,255,255,255$1293,644,255,255,255$1294,644,255,255,255$1295,644,255,255,255$1297,644,0,0,0$1299,644,0,0,0$1301,644,255,255,255$1302,644,255,255,255$1303,644,255,255,255$1304,644,255,255,255$1306,644,255,255,255$1307,644,255,255,255$1309,644,0,0,0$1311,644,0,0,0$1237,645,0,0,0$1238,645,0,0,0$1239,645,0,0,0$1240,645,255,255,255$1242,645,0,0,0$1243,645,0,0,0$1244,645,255,255,255$1246,645,255,255,255$1247,645,255,255,255$1249,645,0,0,0$1250,645,0,0,0$1251,645,0,0,0$1252,645,0,0,0$1253,645,0,0,0$1254,645,0,0,0$1255,645,0,0,0$1256,645,0,0,0$1257,645,0,0,0$1258,645,0,0,0$1259,645,255,255,255$1261,645,0,0,0$1262,645,0,0,0$1265,645,0,0,0$1266,645,0,0,0$1269,645,0,0,0$1270,645,0,0,0$1273,645,0,0,0$1274,645,0,0,0$1279,645,0,0,0$1280,645,0,0,0$1281,645,0,0,0$1282,645,0,0,0$1283,645,0,0,0$1284,645,255,255,255$1286,645,0,0,0$1287,645,0,0,0$1289,645,255,255,255$1291,645,0,0,0$1292,645,0,0,0$1294,645,255,255,255$1296,645,0,0,0$1297,645,0,0,0$1298,645,0,0,0$1299,645,0,0,0$1301,645,255,255,255$1304,645,255,255,255$1305,645,255,255,255$1307,645,0,0,0$1308,645,0,0,0$1309,645,0,0,0$1310,645,0,0,0$1311,645,0,0,0$1237,646,0,0,0$1238,646,0,0,0$1239,646,0,0,0$1240,646,255,255,255$1242,646,0,0,0$1243,646,0,0,0$1244,646,255,255,255$1245,646,255,255,255$1247,646,0,0,0$1248,646,255,255,255$1249,646,255,255,255$1251,646,0,0,0$1252,646,0,0,0$1253,646,0,0,0$1254,646,0,0,0$1255,646,0,0,0$1256,646,0,0,0$1257,646,0,0,0$1259,646,255,255,255$1261,646,0,0,0$1262,646,0,0,0$1264,646,255,255,255$1265,646,255,255,255$1266,646,255,255,255$1267,646,255,255,255$1268,646,255,255,255$1269,646,255,255,255$1270,646,255,255,255$1271,646,255,255,255$1273,646,0,0,0$1274,646,0,0,0$1275,646,255,255,255$1276,646,255,255,255$1277,646,255,255,255$1279,646,0,0,0$1280,646,0,0,0$1281,646,0,0,0$1282,646,0,0,0$1283,646,0,0,0$1284,646,255,255,255$1286,646,0,0,0$1287,646,0,0,0$1288,646,0,0,0$1290,646,255,255,255$1293,646,255,255,255$1295,646,0,0,0$1296,646,0,0,0$1297,646,0,0,0$1298,646,0,0,0$1299,646,255,255,255$1300,646,255,255,255$1302,646,0,0,0$1305,646,0,0,0$1306,646,255,255,255$1307,646,255,255,255$1309,646,0,0,0$1310,646,0,0,0$1311,646,0,0,0$1237,647,0,0,0$1239,647,0,0,0$1240,647,255,255,255$1242,647,0,0,0$1244,647,255,255,255$1246,647,0,0,0$1248,647,0,0,0$1249,647,0,0,0$1251,647,0,0,0$1252,647,0,0,0$1255,647,255,255,255$1256,647,255,255,255$1257,647,255,255,255$1258,647,255,255,255$1259,647,255,255,255$1260,647,0,0,0$1261,647,0,0,0$1263,647,0,0,0$1264,647,0,0,0$1266,647,0,0,0$1267,647,0,0,0$1269,647,0,0,0$1270,647,0,0,0$1273,647,0,0,0$1279,647,0,0,0$1282,647,255,255,255$1283,647,255,255,255$1284,647,255,255,255$1286,647,255,255,255$1287,647,255,255,255$1288,647,255,255,255$1289,647,255,255,255$1290,647,255,255,255$1291,647,255,255,255$1292,647,255,255,255$1293,647,255,255,255$1294,647,255,255,255$1295,647,255,255,255$1296,647,255,255,255$1297,647,255,255,255$1298,647,255,255,255$1300,647,0,0,0$1301,647,255,255,255$1302,647,255,255,255$1303,647,255,255,255$1305,647,0,0,0$1306,647,0,0,0$1308,647,255,255,255$1309,647,255,255,255$1311,647,0,0,0$1237,648,0,0,0$1238,648,0,0,0$1239,648,0,0,0$1240,648,0,0,0$1241,648,0,0,0$1242,648,0,0,0$1243,648,0,0,0$1244,648,0,0,0$1245,648,0,0,0$1246,648,0,0,0$1247,648,0,0,0$1248,648,0,0,0$1249,648,0,0,0$1250,648,0,0,0$1251,648,0,0,0$1252,648,0,0,0$1253,648,0,0,0$1254,648,0,0,0$1255,648,0,0,0$1256,648,0,0,0$1257,648,0,0,0$1258,648,0,0,0$1259,648,0,0,0$1260,648,0,0,0$1261,648,0,0,0$1262,648,0,0,0$1263,648,0,0,0$1264,648,0,0,0$1265,648,0,0,0$1266,648,0,0,0$1267,648,0,0,0$1268,648,0,0,0$1269,648,0,0,0$1270,648,0,0,0$1271,648,0,0,0$1272,648,0,0,0$1273,648,0,0,0$1274,648,0,0,0$1275,648,0,0,0$1276,648,0,0,0$1277,648,0,0,0$1278,648,0,0,0$1279,648,0,0,0$1280,648,0,0,0$1281,648,0,0,0$1282,648,0,0,0$1283,648,0,0,0$1284,648,0,0,0$1285,648,0,0,0$1286,648,0,0,0$1287,648,0,0,0$1288,648,0,0,0$1289,648,0,0,0$1290,648,0,0,0$1291,648,0,0,0$1292,648,0,0,0$1293,648,0,0,0$1294,648,0,0,0$1295,648,0,0,0$1296,648,0,0,0$1297,648,0,0,0$1298,648,0,0,0$1299,648,0,0,0$1300,648,0,0,0$1301,648,0,0,0$1302,648,0,0,0$1303,648,0,0,0$1304,648,0,0,0$1305,648,0,0,0$1306,648,0,0,0$1307,648,0,0,0$1308,648,0,0,0$1309,648,0,0,0$1310,648,0,0,0$1311,648,0,0,0$1237,649,0,0,0$1238,649,0,0,0$1239,649,0,0,0$1240,649,0,0,0$1241,649,0,0,0$1242,649,0,0,0$1243,649,0,0,0$1244,649,0,0,0$1245,649,0,0,0$1246,649,0,0,0$1247,649,0,0,0$1248,649,0,0,0$1249,649,0,0,0$1250,649,0,0,0$1251,649,0,0,0$1252,649,0,0,0$1253,649,0,0,0$1254,649,0,0,0$1255,649,0,0,0$1256,649,0,0,0$1257,649,0,0,0$1258,649,0,0,0$1259,649,0,0,0$1260,649,0,0,0$1261,649,0,0,0$1262,649,0,0,0$1263,649,0,0,0$1264,649,0,0,0$1265,649,0,0,0$1266,649,0,0,0$1267,649,0,0,0$1268,649,0,0,0$1269,649,0,0,0$1270,649,0,0,0$1271,649,0,0,0$1272,649,0,0,0$1273,649,0,0,0$1274,649,0,0,0$1275,649,0,0,0$1276,649,0,0,0$1277,649,0,0,0$1278,649,0,0,0$1279,649,0,0,0$1280,649,0,0,0$1281,649,0,0,0$1282,649,0,0,0$1283,649,0,0,0$1284,649,0,0,0$1285,649,0,0,0$1286,649,0,0,0$1287,649,0,0,0$1288,649,0,0,0$1289,649,0,0,0$1290,649,0,0,0$1291,649,0,0,0$1292,649,0,0,0$1293,649,0,0,0$1294,649,0,0,0$1295,649,0,0,0$1296,649,0,0,0$1297,649,0,0,0$1298,649,0,0,0$1299,649,0,0,0$1300,649,0,0,0$1301,649,0,0,0$1302,649,0,0,0$1303,649,0,0,0$1304,649,0,0,0$1305,649,0,0,0$1306,649,0,0,0$1307,649,0,0,0$1308,649,0,0,0$1309,649,0,0,0$1310,649,0,0,0$1311,649,0,0,0"); |
| | | private static ColorArray loginByAccount = ColorArray.FromThresholdString(70, "1282,639,0,0,0$1245,634,0,0,0$1246,634,0,0,0$1247,634,0,0,0$1248,634,0,0,0$1249,634,0,0,0$1250,634,0,0,0$1251,634,0,0,0$1252,634,0,0,0$1253,634,0,0,0$1254,634,0,0,0$1255,634,0,0,0$1256,634,0,0,0$1257,634,0,0,0$1258,634,0,0,0$1259,634,0,0,0$1260,634,0,0,0$1261,634,0,0,0$1262,634,0,0,0$1263,634,0,0,0$1264,634,0,0,0$1265,634,0,0,0$1266,634,0,0,0$1267,634,0,0,0$1268,634,0,0,0$1269,634,0,0,0$1270,634,0,0,0$1271,634,0,0,0$1272,634,0,0,0$1273,634,0,0,0$1274,634,0,0,0$1275,634,0,0,0$1276,634,0,0,0$1277,634,0,0,0$1278,634,0,0,0$1279,634,0,0,0$1280,634,0,0,0$1281,634,0,0,0$1282,634,0,0,0$1283,634,0,0,0$1284,634,0,0,0$1285,634,0,0,0$1286,634,0,0,0$1287,634,0,0,0$1288,634,0,0,0$1289,634,0,0,0$1290,634,0,0,0$1291,634,0,0,0$1292,634,0,0,0$1293,634,0,0,0$1294,634,0,0,0$1295,634,0,0,0$1296,634,0,0,0$1297,634,0,0,0$1298,634,0,0,0$1299,634,0,0,0$1300,634,0,0,0$1301,634,0,0,0$1302,634,0,0,0$1303,634,0,0,0$1304,634,0,0,0$1245,635,0,0,0$1246,635,0,0,0$1248,635,0,0,0$1249,635,0,0,0$1251,635,0,0,0$1252,635,0,0,0$1254,635,0,0,0$1255,635,0,0,0$1257,635,0,0,0$1258,635,0,0,0$1260,635,0,0,0$1261,635,0,0,0$1263,635,0,0,0$1264,635,0,0,0$1266,635,0,0,0$1267,635,0,0,0$1269,635,0,0,0$1270,635,0,0,0$1272,635,0,0,0$1273,635,0,0,0$1275,635,0,0,0$1276,635,0,0,0$1278,635,0,0,0$1279,635,0,0,0$1281,635,0,0,0$1282,635,0,0,0$1284,635,0,0,0$1285,635,0,0,0$1287,635,0,0,0$1288,635,0,0,0$1290,635,0,0,0$1291,635,0,0,0$1293,635,0,0,0$1294,635,0,0,0$1296,635,0,0,0$1297,635,0,0,0$1299,635,0,0,0$1300,635,0,0,0$1302,635,0,0,0$1303,635,0,0,0$1245,636,0,0,0$1246,636,0,0,0$1247,636,0,0,0$1248,636,0,0,0$1249,636,0,0,0$1250,636,0,0,0$1251,636,0,0,0$1252,636,0,0,0$1253,636,0,0,0$1254,636,0,0,0$1255,636,0,0,0$1256,636,0,0,0$1257,636,0,0,0$1258,636,0,0,0$1259,636,0,0,0$1260,636,0,0,0$1261,636,0,0,0$1262,636,0,0,0$1263,636,0,0,0$1264,636,0,0,0$1265,636,0,0,0$1266,636,0,0,0$1267,636,0,0,0$1268,636,0,0,0$1269,636,0,0,0$1270,636,0,0,0$1271,636,0,0,0$1272,636,0,0,0$1273,636,0,0,0$1274,636,0,0,0$1275,636,0,0,0$1276,636,0,0,0$1277,636,0,0,0$1278,636,0,0,0$1279,636,0,0,0$1280,636,0,0,0$1281,636,0,0,0$1282,636,0,0,0$1283,636,0,0,0$1284,636,0,0,0$1285,636,0,0,0$1286,636,0,0,0$1287,636,0,0,0$1288,636,0,0,0$1289,636,0,0,0$1290,636,0,0,0$1291,636,0,0,0$1292,636,0,0,0$1293,636,0,0,0$1294,636,0,0,0$1295,636,0,0,0$1296,636,0,0,0$1297,636,0,0,0$1298,636,0,0,0$1299,636,0,0,0$1300,636,0,0,0$1301,636,0,0,0$1302,636,0,0,0$1303,636,0,0,0$1304,636,0,0,0$1246,637,0,0,0$1247,637,0,0,0$1250,637,0,0,0$1252,637,255,255,255$1253,637,255,255,255$1254,637,255,255,255$1255,637,255,255,255$1256,637,255,255,255$1257,637,255,255,255$1258,637,255,255,255$1259,637,255,255,255$1261,637,0,0,0$1262,637,0,0,0$1263,637,0,0,0$1264,637,0,0,0$1265,637,0,0,0$1266,637,0,0,0$1269,637,0,0,0$1270,637,0,0,0$1271,637,0,0,0$1272,637,0,0,0$1273,637,0,0,0$1275,637,255,255,255$1276,637,255,255,255$1277,637,255,255,255$1278,637,255,255,255$1280,637,255,255,255$1281,637,255,255,255$1282,637,255,255,255$1283,637,255,255,255$1284,637,255,255,255$1287,637,255,255,255$1288,637,255,255,255$1289,637,255,255,255$1290,637,255,255,255$1292,637,255,255,255$1295,637,255,255,255$1297,637,0,0,0$1298,637,0,0,0$1300,637,255,255,255$1301,637,255,255,255$1302,637,255,255,255$1303,637,255,255,255$1304,637,255,255,255$1246,638,0,0,0$1249,638,0,0,0$1252,638,255,255,255$1254,638,0,0,0$1255,638,0,0,0$1257,638,0,0,0$1259,638,255,255,255$1261,638,0,0,0$1263,638,255,255,255$1264,638,255,255,255$1265,638,255,255,255$1266,638,255,255,255$1267,638,255,255,255$1268,638,255,255,255$1269,638,255,255,255$1270,638,255,255,255$1271,638,255,255,255$1272,638,255,255,255$1275,638,0,0,0$1278,638,0,0,0$1279,638,0,0,0$1281,638,0,0,0$1282,638,0,0,0$1285,638,0,0,0$1287,638,0,0,0$1288,638,0,0,0$1290,638,255,255,255$1293,638,255,255,255$1294,638,255,255,255$1296,638,0,0,0$1297,638,0,0,0$1299,638,0,0,0$1300,638,0,0,0$1302,638,0,0,0$1303,638,0,0,0$1246,639,255,255,255$1248,639,0,0,0$1249,639,0,0,0$1250,639,0,0,0$1252,639,255,255,255$1253,639,255,255,255$1254,639,255,255,255$1255,639,255,255,255$1256,639,255,255,255$1257,639,255,255,255$1258,639,255,255,255$1259,639,255,255,255$1261,639,0,0,0$1264,639,0,0,0$1265,639,0,0,0$1267,639,255,255,255$1269,639,0,0,0$1274,639,0,0,0$1278,639,0,0,0$1280,639,255,255,255$1285,639,0,0,0$1287,639,255,255,255$1289,639,255,255,255$1291,639,0,0,0$1293,639,255,255,255$1296,639,255,255,255$1298,639,0,0,0$1300,639,255,255,255$1301,639,255,255,255$1302,639,255,255,255$1303,639,255,255,255$1304,639,255,255,255$1247,640,0,0,0$1248,640,0,0,0$1249,640,0,0,0$1250,640,0,0,0$1252,640,255,255,255$1254,640,0,0,0$1255,640,0,0,0$1256,640,0,0,0$1257,640,0,0,0$1259,640,255,255,255$1261,640,0,0,0$1262,640,0,0,0$1269,640,255,255,255$1271,640,0,0,0$1272,640,0,0,0$1273,640,0,0,0$1274,640,0,0,0$1277,640,0,0,0$1278,640,0,0,0$1281,640,0,0,0$1282,640,0,0,0$1285,640,0,0,0$1286,640,0,0,0$1288,640,255,255,255$1289,640,255,255,255$1290,640,255,255,255$1291,640,255,255,255$1292,640,255,255,255$1293,640,255,255,255$1294,640,255,255,255$1295,640,255,255,255$1297,640,0,0,0$1298,640,0,0,0$1299,640,0,0,0$1300,640,0,0,0$1301,640,0,0,0$1302,640,0,0,0$1303,640,0,0,0$1304,640,0,0,0$1246,641,0,0,0$1248,641,0,0,0$1249,641,0,0,0$1251,641,0,0,0$1252,641,0,0,0$1254,641,0,0,0$1255,641,0,0,0$1257,641,0,0,0$1258,641,0,0,0$1260,641,0,0,0$1261,641,0,0,0$1263,641,255,255,255$1268,641,255,255,255$1272,641,255,255,255$1275,641,255,255,255$1276,641,255,255,255$1277,641,255,255,255$1281,641,0,0,0$1283,641,255,255,255$1285,641,0,0,0$1287,641,255,255,255$1290,641,0,0,0$1291,641,0,0,0$1293,641,0,0,0$1295,641,255,255,255$1297,641,0,0,0$1299,641,255,255,255$1300,641,255,255,255$1301,641,255,255,255$1302,641,255,255,255$1303,641,255,255,255$1304,641,255,255,255$1245,642,255,255,255$1246,642,255,255,255$1247,642,255,255,255$1248,642,255,255,255$1250,642,255,255,255$1251,642,255,255,255$1252,642,255,255,255$1253,642,255,255,255$1254,642,255,255,255$1255,642,255,255,255$1256,642,255,255,255$1257,642,255,255,255$1258,642,255,255,255$1259,642,255,255,255$1260,642,255,255,255$1261,642,255,255,255$1263,642,0,0,0$1265,642,255,255,255$1266,642,255,255,255$1268,642,0,0,0$1269,642,0,0,0$1275,642,255,255,255$1280,642,255,255,255$1281,642,255,255,255$1282,642,255,255,255$1283,642,255,255,255$1284,642,255,255,255$1286,642,255,255,255$1288,642,255,255,255$1289,642,255,255,255$1290,642,255,255,255$1291,642,255,255,255$1292,642,255,255,255$1293,642,255,255,255$1294,642,255,255,255$1295,642,255,255,255$1296,642,255,255,255$1297,642,255,255,255$1299,642,0,0,0$1300,642,0,0,0$1301,642,0,0,0$1302,642,0,0,0$1246,643,255,255,255$1248,643,0,0,0$1249,643,0,0,0$1250,643,0,0,0$1251,643,0,0,0$1254,643,0,0,0$1255,643,0,0,0$1256,643,0,0,0$1257,643,0,0,0$1258,643,0,0,0$1259,643,0,0,0$1260,643,0,0,0$1261,643,0,0,0$1263,643,255,255,255$1264,643,255,255,255$1266,643,255,255,255$1267,643,255,255,255$1268,643,255,255,255$1269,643,255,255,255$1270,643,255,255,255$1272,643,0,0,0$1273,643,0,0,0$1279,643,0,0,0$1280,643,0,0,0$1281,643,0,0,0$1282,643,0,0,0$1283,643,0,0,0$1286,643,0,0,0$1290,643,0,0,0$1291,643,0,0,0$1292,643,0,0,0$1293,643,0,0,0$1295,643,255,255,255$1297,643,0,0,0$1298,643,0,0,0$1300,643,255,255,255$1302,643,0,0,0$1304,643,255,255,255$1248,644,0,0,0$1249,644,0,0,0$1252,644,255,255,255$1253,644,255,255,255$1254,644,255,255,255$1255,644,255,255,255$1256,644,255,255,255$1257,644,255,255,255$1258,644,255,255,255$1259,644,255,255,255$1261,644,0,0,0$1266,644,0,0,0$1269,644,0,0,0$1270,644,0,0,0$1273,644,0,0,0$1279,644,255,255,255$1280,644,255,255,255$1281,644,255,255,255$1282,644,255,255,255$1283,644,255,255,255$1288,644,255,255,255$1289,644,255,255,255$1290,644,255,255,255$1291,644,255,255,255$1292,644,255,255,255$1293,644,255,255,255$1294,644,255,255,255$1295,644,255,255,255$1297,644,0,0,0$1299,644,0,0,0$1301,644,255,255,255$1304,644,255,255,255$1247,645,255,255,255$1249,645,0,0,0$1250,645,0,0,0$1251,645,0,0,0$1252,645,0,0,0$1253,645,0,0,0$1254,645,0,0,0$1255,645,0,0,0$1256,645,0,0,0$1257,645,0,0,0$1258,645,0,0,0$1261,645,0,0,0$1262,645,0,0,0$1265,645,0,0,0$1266,645,0,0,0$1269,645,0,0,0$1270,645,0,0,0$1273,645,0,0,0$1274,645,0,0,0$1279,645,0,0,0$1280,645,0,0,0$1281,645,0,0,0$1282,645,0,0,0$1283,645,0,0,0$1286,645,0,0,0$1287,645,0,0,0$1289,645,255,255,255$1291,645,0,0,0$1292,645,0,0,0$1294,645,255,255,255$1296,645,0,0,0$1297,645,0,0,0$1298,645,0,0,0$1299,645,0,0,0$1301,645,255,255,255$1245,646,255,255,255$1248,646,255,255,255$1249,646,255,255,255$1251,646,0,0,0$1252,646,0,0,0$1253,646,0,0,0$1254,646,0,0,0$1255,646,0,0,0$1256,646,0,0,0$1257,646,0,0,0$1259,646,255,255,255$1261,646,0,0,0$1262,646,0,0,0$1264,646,255,255,255$1265,646,255,255,255$1266,646,255,255,255$1267,646,255,255,255$1268,646,255,255,255$1269,646,255,255,255$1270,646,255,255,255$1271,646,255,255,255$1273,646,0,0,0$1274,646,0,0,0$1276,646,255,255,255$1277,646,255,255,255$1279,646,0,0,0$1280,646,0,0,0$1281,646,0,0,0$1282,646,0,0,0$1284,646,255,255,255$1286,646,0,0,0$1287,646,0,0,0$1288,646,0,0,0$1290,646,255,255,255$1293,646,255,255,255$1295,646,0,0,0$1296,646,0,0,0$1297,646,0,0,0$1299,646,255,255,255$1300,646,255,255,255$1302,646,0,0,0$1246,647,0,0,0$1248,647,0,0,0$1249,647,0,0,0$1251,647,0,0,0$1252,647,0,0,0$1255,647,255,255,255$1256,647,255,255,255$1257,647,255,255,255$1258,647,255,255,255$1260,647,0,0,0$1261,647,0,0,0$1263,647,0,0,0$1264,647,0,0,0$1266,647,0,0,0$1267,647,0,0,0$1269,647,0,0,0$1270,647,0,0,0$1273,647,0,0,0$1279,647,0,0,0$1282,647,255,255,255$1283,647,255,255,255$1284,647,255,255,255$1287,647,255,255,255$1288,647,255,255,255$1289,647,255,255,255$1290,647,255,255,255$1291,647,255,255,255$1292,647,255,255,255$1293,647,255,255,255$1294,647,255,255,255$1295,647,255,255,255$1296,647,255,255,255$1297,647,255,255,255$1300,647,0,0,0$1302,647,255,255,255$1303,647,255,255,255$1245,648,0,0,0$1246,648,0,0,0$1247,648,0,0,0$1248,648,0,0,0$1249,648,0,0,0$1250,648,0,0,0$1251,648,0,0,0$1252,648,0,0,0$1253,648,0,0,0$1254,648,0,0,0$1255,648,0,0,0$1256,648,0,0,0$1257,648,0,0,0$1258,648,0,0,0$1259,648,0,0,0$1260,648,0,0,0$1261,648,0,0,0$1262,648,0,0,0$1263,648,0,0,0$1264,648,0,0,0$1265,648,0,0,0$1266,648,0,0,0$1267,648,0,0,0$1268,648,0,0,0$1269,648,0,0,0$1270,648,0,0,0$1271,648,0,0,0$1272,648,0,0,0$1273,648,0,0,0$1274,648,0,0,0$1275,648,0,0,0$1276,648,0,0,0$1277,648,0,0,0$1278,648,0,0,0$1279,648,0,0,0$1280,648,0,0,0$1281,648,0,0,0$1282,648,0,0,0$1283,648,0,0,0$1284,648,0,0,0$1285,648,0,0,0$1286,648,0,0,0$1287,648,0,0,0$1288,648,0,0,0$1289,648,0,0,0$1290,648,0,0,0$1291,648,0,0,0$1292,648,0,0,0$1293,648,0,0,0$1294,648,0,0,0$1295,648,0,0,0$1296,648,0,0,0$1297,648,0,0,0$1298,648,0,0,0$1299,648,0,0,0$1300,648,0,0,0$1301,648,0,0,0$1302,648,0,0,0$1303,648,0,0,0$1304,648,0,0,0"); |
| | | |
| | | //未选中WeGame主页 |
| | | private static ColorArray UnSelectHome = ColorArray.FromThresholdString(160, "844,130,255,255,255$844,129,0,0,0$845,129,255,255,255$846,129,255,255,255$847,129,0,0,0$847,128,0,0,0$846,128,0,0,0$845,128,0,0,0$843,130,0,0,0$845,130,255,255,255$846,130,255,255,255$847,130,255,255,255$848,130,0,0,0$848,131,255,255,255$849,131,0,0,0$849,132,255,255,255$850,132,0,0,0$851,133,255,255,255$852,133,0,0,0$852,134,255,255,255$853,134,0,0,0$853,135,255,255,255$854,135,0,0,0$854,136,255,255,255$855,136,0,0,0$855,137,255,255,255$856,137,255,255,255$857,137,0,0,0$857,138,255,255,255$858,138,0,0,0$858,139,255,255,255$859,139,0,0,0$859,140,255,255,255$860,140,0,0,0$860,141,255,255,255$861,141,0,0,0$861,142,255,255,255$862,142,0,0,0$862,143,0,0,0$861,143,255,255,255$861,144,255,255,255$862,144,0,0,0$862,145,0,0,0$861,145,255,255,255$861,146,255,255,255$862,146,0,0,0$862,147,0,0,0$861,147,255,255,255$861,148,255,255,255$862,148,0,0,0$862,149,0,0,0$861,149,255,255,255$861,150,255,255,255$862,150,0,0,0$862,151,0,0,0$861,151,255,255,255$861,152,255,255,255$862,152,0,0,0$862,153,0,0,0$861,153,255,255,255$861,154,0,0,0$860,154,255,255,255$860,155,0,0,0$859,155,255,255,255$859,156,0,0,0$858,156,0,0,0$858,155,255,255,255$857,155,255,255,255$857,156,0,0,0$856,156,0,0,0$856,155,255,255,255$855,155,255,255,255$855,156,0,0,0$854,156,0,0,0$854,155,255,255,255$853,155,255,255,255$853,156,0,0,0$852,156,0,0,0$852,155,255,255,255$851,155,255,255,255$851,156,0,0,0$850,156,0,0,0$850,155,255,255,255$849,155,255,255,255$849,156,0,0,0$848,156,0,0,0$848,155,255,255,255$847,155,255,255,255$847,156,0,0,0$846,156,0,0,0$846,155,255,255,255$845,155,255,255,255$845,156,0,0,0$844,156,0,0,0$844,155,255,255,255$843,155,255,255,255$843,156,0,0,0$842,156,0,0,0$842,155,255,255,255$841,155,255,255,255$841,156,0,0,0$840,156,0,0,0$840,155,255,255,255$839,155,255,255,255$839,156,0,0,0$838,156,0,0,0$838,155,255,255,255$837,155,255,255,255$837,156,0,0,0$836,156,0,0,0$836,155,255,255,255$835,155,255,255,255$835,156,0,0,0$834,156,0,0,0$834,155,255,255,255$833,155,255,255,255$833,156,0,0,0$832,156,0,0,0$832,155,255,255,255$831,155,255,255,255$831,156,0,0,0$830,156,0,0,0$830,155,0,0,0$831,155,255,255,255$831,154,255,255,255$830,154,0,0,0$830,153,255,255,255$829,153,0,0,0$829,152,0,0,0$830,152,255,255,255$830,151,255,255,255$829,151,0,0,0$829,150,0,0,0$830,150,255,255,255$830,149,255,255,255$829,149,0,0,0$829,148,0,0,0$830,148,255,255,255$830,147,255,255,255$829,147,0,0,0$829,146,0,0,0$830,146,255,255,255$830,145,255,255,255$829,145,0,0,0$829,144,0,0,0$830,144,255,255,255$830,143,255,255,255$829,143,0,0,0$829,142,0,0,0$830,142,255,255,255$830,141,0,0,0$831,141,255,255,255$831,140,0,0,0$832,140,255,255,255$832,139,0,0,0$833,139,255,255,255$833,138,0,0,0$834,138,255,255,255$834,137,0,0,0$835,137,255,255,255$835,136,0,0,0$836,136,0,0,0$836,137,255,255,255$837,136,255,255,255$837,135,0,0,0$838,135,255,255,255$838,134,0,0,0$839,134,255,255,255$839,133,0,0,0$840,133,255,255,255$841,132,0,0,0$842,132,255,255,255$842,131,0,0,0"); |
| | |
| | | //DNF游戏项 |
| | | private static ColorArray DNFItem = ColorArray.FromThresholdString(126, "932,316,0,0,0$931,312,0,0,0$931,313,255,255,255$932,313,0,0,0$932,312,0,0,0$932,314,0,0,0$931,314,255,255,255$931,315,255,255,255$932,315,0,0,0$932,316,0,0,0$931,316,255,255,255$931,317,255,255,255$932,317,255,255,255$933,316,0,0,0$934,316,0,0,0$935,316,0,0,0$936,316,0,0,0$937,316,0,0,0$938,316,0,0,0$938,317,0,0,0$937,317,255,255,255$936,317,255,255,255$935,317,255,255,255$934,317,255,255,255$933,317,255,255,255$932,318,0,0,0$933,318,0,0,0$934,318,0,0,0$935,318,0,0,0$936,318,0,0,0$937,318,0,0,0$932,319,0,0,0$931,319,255,255,255$931,320,255,255,255$932,320,0,0,0$932,321,0,0,0$931,321,255,255,255$931,322,255,255,255$932,322,0,0,0$932,323,0,0,0$933,323,0,0,0$934,323,0,0,0$935,323,0,0,0$936,323,0,0,0$937,323,0,0,0$937,324,0,0,0$936,324,255,255,255$935,324,255,255,255$934,324,255,255,255$933,324,255,255,255$932,324,255,255,255$932,325,0,0,0$933,325,0,0,0$934,325,0,0,0$935,325,0,0,0$936,325,0,0,0$929,325,0,0,0$929,324,255,255,255$928,324,255,255,255$928,325,0,0,0$927,325,0,0,0$927,324,255,255,255$926,324,255,255,255$926,325,0,0,0$925,325,0,0,0$925,324,255,255,255$924,324,0,0,0$924,323,0,0,0$925,323,0,0,0$926,323,0,0,0$927,323,0,0,0$928,323,0,0,0$929,323,0,0,0$929,322,0,0,0$929,321,0,0,0$930,321,255,255,255$930,320,255,255,255$929,320,0,0,0$929,319,0,0,0$930,319,255,255,255$930,318,255,255,255$929,318,0,0,0$929,317,255,255,255$928,317,255,255,255$928,318,0,0,0$927,318,0,0,0$927,317,255,255,255$926,317,255,255,255$926,318,0,0,0$925,318,0,0,0$925,317,255,255,255$924,317,255,255,255$924,318,0,0,0$923,318,0,0,0$923,317,0,0,0$923,316,0,0,0$924,316,0,0,0$925,316,0,0,0$926,316,0,0,0$927,316,0,0,0$928,316,0,0,0$929,316,0,0,0$930,316,255,255,255$930,315,255,255,255$929,315,0,0,0$929,314,0,0,0$930,314,255,255,255$930,313,255,255,255$929,313,0,0,0$929,312,0,0,0$930,312,0,0,0$824,312,255,255,255$820,312,0,0,0$821,312,255,255,255$822,312,0,0,0$823,312,0,0,0$824,312,255,255,255$825,312,255,255,255$826,312,255,255,255$827,312,0,0,0$828,312,0,0,0$829,312,0,0,0$830,312,0,0,0$843,312,0,0,0$845,312,0,0,0$844,312,255,255,255$845,313,0,0,0$843,313,0,0,0$829,313,0,0,0$828,313,255,255,255$826,313,255,255,255$825,313,0,0,0$822,313,0,0,0$821,313,255,255,255$820,313,0,0,0$820,314,0,0,0$821,314,255,255,255$822,314,0,0,0$826,314,0,0,0$827,314,255,255,255$829,314,255,255,255$830,314,0,0,0$843,314,0,0,0$844,314,255,255,255$845,314,0,0,0$845,315,0,0,0$844,315,255,255,255$843,315,0,0,0$842,315,0,0,0$841,315,255,255,255$839,315,255,255,255$838,315,0,0,0$831,315,0,0,0$830,315,255,255,255$827,315,255,255,255$826,315,0,0,0$822,315,0,0,0$821,315,255,255,255$820,315,0,0,0$820,316,0,0,0$821,316,255,255,255$822,316,0,0,0$825,316,0,0,0$826,316,255,255,255$827,316,255,255,255$828,316,0,0,0$829,316,255,255,255$830,316,255,255,255$831,316,0,0,0$834,316,0,0,0$835,316,255,255,255$836,316,0,0,0$837,316,0,0,0$838,316,255,255,255$839,316,255,255,255$841,316,255,255,255$842,316,0,0,0$843,316,0,0,0$844,316,255,255,255$845,316,0,0,0$845,317,0,0,0$844,317,255,255,255$843,317,0,0,0$841,317,0,0,0$834,317,255,255,255$833,317,0,0,0$832,317,255,255,255$829,317,255,255,255$828,317,0,0,0$827,317,0,0,0$826,317,255,255,255$825,317,255,255,255$824,317,0,0,0$822,317,0,0,0$821,317,255,255,255$820,317,0,0,0$820,329,0,0,0$821,329,255,255,255$822,329,0,0,0$822,330,255,255,255$821,330,0,0,0$822,331,0,0,0$844,330,0,0,0$843,330,255,255,255$843,329,0,0,0$844,329,255,255,255$845,329,0,0,0$845,328,0,0,0$844,328,255,255,255$843,328,0,0,0$843,309,0,0,0$844,309,255,255,255$845,309,0,0,0$845,308,0,0,0$844,308,255,255,255$843,308,255,255,255$842,308,0,0,0$842,307,255,255,255$843,307,255,255,255$844,307,0,0,0$844,306,0,0,0$843,306,0,0,0"); |
| | | |
| | | //需要更新按钮 |
| | | private static ColorArray UpdateButton = ColorArray.FromThresholdString(251, "1701,839,0,0,0$1699,839,0,0,0$1700,839,0,0,0$1702,839,0,0,0$1703,839,0,0,0$1704,839,0,0,0$1705,839,0,0,0$1706,839,0,0,0$1707,839,0,0,0$1708,839,0,0,0$1709,839,0,0,0$1710,839,0,0,0$1711,839,0,0,0$1712,839,0,0,0$1713,839,0,0,0$1714,839,0,0,0$1715,839,0,0,0$1716,839,0,0,0$1717,839,0,0,0$1718,839,0,0,0$1719,839,0,0,0$1720,839,0,0,0$1721,839,0,0,0$1722,839,0,0,0$1723,839,0,0,0$1724,839,0,0,0$1725,839,0,0,0$1726,839,0,0,0$1727,839,0,0,0$1728,839,0,0,0$1729,839,0,0,0$1730,839,255,255,255$1731,839,0,0,0$1732,839,0,0,0$1733,839,0,0,0$1734,839,0,0,0$1735,839,0,0,0$1736,839,0,0,0$1737,839,0,0,0$1738,839,0,0,0$1739,839,0,0,0$1740,839,0,0,0$1741,839,0,0,0$1742,839,255,255,255$1743,839,255,255,255$1744,839,255,255,255$1745,839,0,0,0$1746,839,0,0,0$1747,839,0,0,0$1748,839,0,0,0$1749,839,0,0,0$1750,839,0,0,0$1751,839,0,0,0$1752,839,0,0,0$1753,839,0,0,0$1754,839,0,0,0$1755,839,0,0,0$1756,839,0,0,0$1699,840,0,0,0$1700,840,0,0,0$1701,840,0,0,0$1702,840,255,255,255$1703,840,255,255,255$1704,840,255,255,255$1705,840,255,255,255$1706,840,255,255,255$1707,840,255,255,255$1708,840,255,255,255$1709,840,255,255,255$1710,840,255,255,255$1711,840,255,255,255$1712,840,255,255,255$1713,840,255,255,255$1714,840,255,255,255$1715,840,255,255,255$1716,840,255,255,255$1717,840,255,255,255$1718,840,255,255,255$1719,840,255,255,255$1720,840,255,255,255$1721,840,255,255,255$1722,840,0,0,0$1723,840,0,0,0$1724,840,0,0,0$1725,840,0,0,0$1726,840,0,0,0$1727,840,0,0,0$1728,840,0,0,0$1729,840,0,0,0$1730,840,255,255,255$1731,840,255,255,255$1732,840,0,0,0$1733,840,0,0,0$1734,840,0,0,0$1735,840,0,0,0$1736,840,0,0,0$1737,840,0,0,0$1738,840,255,255,255$1739,840,255,255,255$1740,840,255,255,255$1741,840,255,255,255$1742,840,0,0,0$1743,840,0,0,0$1744,840,0,0,0$1745,840,0,0,0$1746,840,0,0,0$1747,840,0,0,0$1748,840,0,0,0$1749,840,0,0,0$1750,840,0,0,0$1751,840,0,0,0$1752,840,0,0,0$1753,840,0,0,0$1754,840,0,0,0$1755,840,0,0,0$1756,840,0,0,0$1699,841,0,0,0$1700,841,0,0,0$1701,841,0,0,0$1702,841,0,0,0$1703,841,0,0,0$1704,841,0,0,0$1705,841,0,0,0$1706,841,0,0,0$1707,841,0,0,0$1708,841,0,0,0$1709,841,0,0,0$1710,841,0,0,0$1711,841,255,255,255$1712,841,255,255,255$1713,841,0,0,0$1714,841,0,0,0$1715,841,0,0,0$1716,841,0,0,0$1717,841,0,0,0$1718,841,0,0,0$1719,841,0,0,0$1720,841,0,0,0$1721,841,0,0,0$1722,841,0,0,0$1723,841,0,0,0$1724,841,0,0,0$1725,841,0,0,0$1726,841,255,255,255$1727,841,255,255,255$1728,841,255,255,255$1729,841,255,255,255$1730,841,255,255,255$1731,841,255,255,255$1732,841,255,255,255$1733,841,255,255,255$1734,841,255,255,255$1735,841,255,255,255$1736,841,0,0,0$1737,841,255,255,255$1738,841,255,255,255$1739,841,0,0,0$1740,841,0,0,0$1741,841,0,0,0$1742,841,0,0,0$1743,841,0,0,0$1744,841,0,0,0$1745,841,0,0,0$1746,841,0,0,0$1747,841,0,0,0$1748,841,0,0,0$1749,841,0,0,0$1750,841,0,0,0$1751,841,0,0,0$1752,841,0,0,0$1753,841,0,0,0$1754,841,0,0,0$1755,841,0,0,0$1756,841,0,0,0$1699,842,0,0,0$1700,842,0,0,0$1701,842,0,0,0$1702,842,0,0,0$1703,842,0,0,0$1704,842,0,0,0$1705,842,0,0,0$1706,842,0,0,0$1707,842,0,0,0$1708,842,0,0,0$1709,842,0,0,0$1710,842,0,0,0$1711,842,255,255,255$1712,842,255,255,255$1713,842,0,0,0$1714,842,0,0,0$1715,842,0,0,0$1716,842,0,0,0$1717,842,0,0,0$1718,842,0,0,0$1719,842,0,0,0$1720,842,0,0,0$1721,842,0,0,0$1722,842,0,0,0$1723,842,0,0,0$1724,842,0,0,0$1725,842,0,0,0$1726,842,0,0,0$1727,842,0,0,0$1728,842,0,0,0$1729,842,0,0,0$1730,842,0,0,0$1731,842,0,0,0$1732,842,0,0,0$1733,842,0,0,0$1734,842,0,0,0$1735,842,0,0,0$1736,842,0,0,0$1737,842,255,255,255$1738,842,255,255,255$1739,842,0,0,0$1740,842,0,0,0$1741,842,0,0,0$1742,842,0,0,0$1743,842,0,0,0$1744,842,0,0,0$1745,842,0,0,0$1746,842,0,0,0$1747,842,0,0,0$1748,842,0,0,0$1749,842,0,0,0$1750,842,0,0,0$1751,842,0,0,0$1752,842,0,0,0$1753,842,0,0,0$1754,842,0,0,0$1755,842,0,0,0$1756,842,0,0,0$1699,843,0,0,0$1700,843,0,0,0$1701,843,0,0,0$1702,843,0,0,0$1703,843,0,0,0$1704,843,255,255,255$1705,843,255,255,255$1706,843,255,255,255$1707,843,255,255,255$1708,843,255,255,255$1709,843,255,255,255$1710,843,255,255,255$1711,843,255,255,255$1712,843,255,255,255$1713,843,255,255,255$1714,843,255,255,255$1715,843,255,255,255$1716,843,255,255,255$1717,843,255,255,255$1718,843,255,255,255$1719,843,255,255,255$1720,843,0,0,0$1721,843,0,0,0$1722,843,0,0,0$1723,843,0,0,0$1724,843,0,0,0$1725,843,0,0,0$1726,843,0,0,0$1727,843,0,0,0$1728,843,255,255,255$1729,843,0,0,0$1730,843,0,0,0$1731,843,0,0,0$1732,843,0,0,0$1733,843,255,255,255$1734,843,0,0,0$1735,843,0,0,0$1736,843,0,0,0$1737,843,255,255,255$1738,843,255,255,255$1739,843,0,0,0$1740,843,0,0,0$1741,843,0,0,0$1742,843,0,0,0$1743,843,0,0,0$1744,843,0,0,0$1745,843,0,0,0$1746,843,0,0,0$1747,843,0,0,0$1748,843,0,0,0$1749,843,0,0,0$1750,843,0,0,0$1751,843,0,0,0$1752,843,0,0,0$1753,843,0,0,0$1754,843,0,0,0$1755,843,0,0,0$1756,843,0,0,0$1699,844,0,0,0$1700,844,0,0,0$1701,844,0,0,0$1702,844,0,0,0$1703,844,0,0,0$1704,844,255,255,255$1705,844,0,0,0$1706,844,0,0,0$1707,844,0,0,0$1708,844,0,0,0$1709,844,0,0,0$1710,844,0,0,0$1711,844,255,255,255$1712,844,255,255,255$1713,844,0,0,0$1714,844,0,0,0$1715,844,0,0,0$1716,844,0,0,0$1717,844,0,0,0$1718,844,0,0,0$1719,844,255,255,255$1720,844,0,0,0$1721,844,0,0,0$1722,844,0,0,0$1723,844,0,0,0$1724,844,0,0,0$1725,844,0,0,0$1726,844,0,0,0$1727,844,0,0,0$1728,844,255,255,255$1729,844,0,0,0$1730,844,0,0,0$1731,844,0,0,0$1732,844,255,255,255$1733,844,255,255,255$1734,844,0,0,0$1735,844,0,0,0$1736,844,0,0,0$1737,844,255,255,255$1738,844,255,255,255$1739,844,0,0,0$1740,844,0,0,0$1741,844,0,0,0$1742,844,0,0,0$1743,844,0,0,0$1744,844,0,0,0$1745,844,0,0,0$1746,844,0,0,0$1747,844,0,0,0$1748,844,0,0,0$1749,844,0,0,0$1750,844,0,0,0$1751,844,0,0,0$1752,844,0,0,0$1753,844,0,0,0$1754,844,0,0,0$1755,844,0,0,0$1756,844,0,0,0$1699,845,0,0,0$1700,845,0,0,0$1701,845,0,0,0$1702,845,0,0,0$1703,845,0,0,0$1704,845,255,255,255$1705,845,0,0,0$1706,845,0,0,0$1707,845,0,0,0$1708,845,0,0,0$1709,845,0,0,0$1710,845,0,0,0$1711,845,255,255,255$1712,845,255,255,255$1713,845,0,0,0$1714,845,0,0,0$1715,845,0,0,0$1716,845,0,0,0$1717,845,0,0,0$1718,845,0,0,0$1719,845,255,255,255$1720,845,0,0,0$1721,845,0,0,0$1722,845,0,0,0$1723,845,0,0,0$1724,845,0,0,0$1725,845,0,0,0$1726,845,0,0,0$1727,845,0,0,0$1728,845,0,0,0$1729,845,0,0,0$1730,845,0,0,0$1731,845,0,0,0$1732,845,255,255,255$1733,845,0,0,0$1734,845,0,0,0$1735,845,0,0,0$1736,845,0,0,0$1737,845,255,255,255$1738,845,255,255,255$1739,845,0,0,0$1740,845,0,0,0$1741,845,0,0,0$1742,845,0,0,0$1743,845,0,0,0$1744,845,0,0,0$1745,845,0,0,0$1746,845,0,0,0$1747,845,0,0,0$1748,845,0,0,0$1749,845,0,0,0$1750,845,0,0,0$1751,845,0,0,0$1752,845,0,0,0$1753,845,0,0,0$1754,845,0,0,0$1755,845,0,0,0$1756,845,0,0,0$1699,846,0,0,0$1700,846,0,0,0$1701,846,0,0,0$1702,846,0,0,0$1703,846,0,0,0$1704,846,255,255,255$1705,846,0,0,0$1706,846,0,0,0$1707,846,0,0,0$1708,846,0,0,0$1709,846,0,0,0$1710,846,0,0,0$1711,846,255,255,255$1712,846,255,255,255$1713,846,0,0,0$1714,846,0,0,0$1715,846,0,0,0$1716,846,0,0,0$1717,846,0,0,0$1718,846,0,0,0$1719,846,255,255,255$1720,846,0,0,0$1721,846,0,0,0$1722,846,0,0,0$1723,846,0,0,0$1724,846,0,0,0$1725,846,255,255,255$1726,846,255,255,255$1727,846,255,255,255$1728,846,255,255,255$1729,846,255,255,255$1730,846,255,255,255$1731,846,255,255,255$1732,846,255,255,255$1733,846,255,255,255$1734,846,255,255,255$1735,846,255,255,255$1736,846,0,0,0$1737,846,255,255,255$1738,846,255,255,255$1739,846,255,255,255$1740,846,255,255,255$1741,846,255,255,255$1742,846,255,255,255$1743,846,255,255,255$1744,846,255,255,255$1745,846,255,255,255$1746,846,255,255,255$1747,846,0,0,0$1748,846,0,0,0$1749,846,0,0,0$1750,846,0,0,0$1751,846,0,0,0$1752,846,0,0,0$1753,846,0,0,0$1754,846,0,0,0$1755,846,0,0,0$1756,846,0,0,0$1699,847,0,0,0$1700,847,0,0,0$1701,847,0,0,0$1702,847,0,0,0$1703,847,0,0,0$1704,847,255,255,255$1705,847,255,255,255$1706,847,255,255,255$1707,847,255,255,255$1708,847,255,255,255$1709,847,255,255,255$1710,847,255,255,255$1711,847,255,255,255$1712,847,255,255,255$1713,847,255,255,255$1714,847,255,255,255$1715,847,255,255,255$1716,847,255,255,255$1717,847,255,255,255$1718,847,255,255,255$1719,847,255,255,255$1720,847,0,0,0$1721,847,0,0,0$1722,847,0,0,0$1723,847,0,0,0$1724,847,0,0,0$1725,847,0,0,0$1726,847,0,0,0$1727,847,0,0,0$1728,847,0,0,0$1729,847,0,0,0$1730,847,255,255,255$1731,847,0,0,0$1732,847,0,0,0$1733,847,0,0,0$1734,847,0,0,0$1735,847,0,0,0$1736,847,0,0,0$1737,847,255,255,255$1738,847,255,255,255$1739,847,0,0,0$1740,847,0,0,0$1741,847,0,0,0$1742,847,255,255,255$1743,847,255,255,255$1744,847,0,0,0$1745,847,0,0,0$1746,847,0,0,0$1747,847,0,0,0$1748,847,0,0,0$1749,847,0,0,0$1750,847,0,0,0$1751,847,0,0,0$1752,847,0,0,0$1753,847,0,0,0$1754,847,0,0,0$1755,847,0,0,0$1756,847,0,0,0$1699,848,0,0,0$1700,848,0,0,0$1701,848,0,0,0$1702,848,0,0,0$1703,848,0,0,0$1704,848,255,255,255$1705,848,0,0,0$1706,848,0,0,0$1707,848,0,0,0$1708,848,0,0,0$1709,848,0,0,0$1710,848,0,0,0$1711,848,255,255,255$1712,848,255,255,255$1713,848,0,0,0$1714,848,0,0,0$1715,848,0,0,0$1716,848,0,0,0$1717,848,0,0,0$1718,848,0,0,0$1719,848,255,255,255$1720,848,0,0,0$1721,848,0,0,0$1722,848,0,0,0$1723,848,0,0,0$1724,848,0,0,0$1725,848,0,0,0$1726,848,0,0,0$1727,848,0,0,0$1728,848,0,0,0$1729,848,0,0,0$1730,848,255,255,255$1731,848,0,0,0$1732,848,0,0,0$1733,848,0,0,0$1734,848,0,0,0$1735,848,0,0,0$1736,848,0,0,0$1737,848,255,255,255$1738,848,255,255,255$1739,848,0,0,0$1740,848,0,0,0$1741,848,0,0,0$1742,848,0,0,0$1743,848,255,255,255$1744,848,0,0,0$1745,848,0,0,0$1746,848,0,0,0$1747,848,0,0,0$1748,848,0,0,0$1749,848,0,0,0$1750,848,0,0,0$1751,848,0,0,0$1752,848,0,0,0$1753,848,0,0,0$1754,848,0,0,0$1755,848,0,0,0$1756,848,0,0,0$1699,849,0,0,0$1700,849,0,0,0$1701,849,0,0,0$1702,849,0,0,0$1703,849,0,0,0$1704,849,255,255,255$1705,849,0,0,0$1706,849,0,0,0$1707,849,0,0,0$1708,849,0,0,0$1709,849,0,0,0$1710,849,0,0,0$1711,849,255,255,255$1712,849,255,255,255$1713,849,0,0,0$1714,849,0,0,0$1715,849,0,0,0$1716,849,0,0,0$1717,849,0,0,0$1718,849,0,0,0$1719,849,255,255,255$1720,849,0,0,0$1721,849,0,0,0$1722,849,0,0,0$1723,849,0,0,0$1724,849,0,0,0$1725,849,0,0,0$1726,849,0,0,0$1727,849,0,0,0$1728,849,0,0,0$1729,849,0,0,0$1730,849,255,255,255$1731,849,0,0,0$1732,849,0,0,0$1733,849,0,0,0$1734,849,0,0,0$1735,849,0,0,0$1736,849,0,0,0$1737,849,255,255,255$1738,849,255,255,255$1739,849,0,0,0$1740,849,0,0,0$1741,849,0,0,0$1742,849,0,0,0$1743,849,255,255,255$1744,849,0,0,0$1745,849,0,0,0$1746,849,0,0,0$1747,849,0,0,0$1748,849,0,0,0$1749,849,0,0,0$1750,849,0,0,0$1751,849,0,0,0$1752,849,0,0,0$1753,849,0,0,0$1754,849,0,0,0$1755,849,0,0,0$1756,849,0,0,0$1699,850,0,0,0$1700,850,0,0,0$1701,850,0,0,0$1702,850,0,0,0$1703,850,0,0,0$1704,850,255,255,255$1705,850,0,0,0$1706,850,0,0,0$1707,850,0,0,0$1708,850,0,0,0$1709,850,0,0,0$1710,850,0,0,0$1711,850,255,255,255$1712,850,255,255,255$1713,850,0,0,0$1714,850,0,0,0$1715,850,0,0,0$1716,850,0,0,0$1717,850,0,0,0$1718,850,0,0,0$1719,850,255,255,255$1720,850,0,0,0$1721,850,0,0,0$1722,850,0,0,0$1723,850,0,0,0$1724,850,0,0,0$1725,850,255,255,255$1726,850,255,255,255$1727,850,255,255,255$1728,850,255,255,255$1729,850,255,255,255$1730,850,255,255,255$1731,850,255,255,255$1732,850,255,255,255$1733,850,255,255,255$1734,850,255,255,255$1735,850,255,255,255$1736,850,0,0,0$1737,850,255,255,255$1738,850,255,255,255$1739,850,0,0,0$1740,850,0,0,0$1741,850,0,0,0$1742,850,0,0,0$1743,850,255,255,255$1744,850,0,0,0$1745,850,0,0,0$1746,850,0,0,0$1747,850,0,0,0$1748,850,0,0,0$1749,850,0,0,0$1750,850,0,0,0$1751,850,0,0,0$1752,850,0,0,0$1753,850,0,0,0$1754,850,0,0,0$1755,850,0,0,0$1756,850,0,0,0$1699,851,0,0,0$1700,851,0,0,0$1701,851,0,0,0$1702,851,0,0,0$1703,851,0,0,0$1704,851,255,255,255$1705,851,255,255,255$1706,851,255,255,255$1707,851,255,255,255$1708,851,255,255,255$1709,851,255,255,255$1710,851,255,255,255$1711,851,255,255,255$1712,851,255,255,255$1713,851,255,255,255$1714,851,255,255,255$1715,851,255,255,255$1716,851,255,255,255$1717,851,255,255,255$1718,851,255,255,255$1719,851,255,255,255$1720,851,0,0,0$1721,851,0,0,0$1722,851,0,0,0$1723,851,0,0,0$1724,851,0,0,0$1725,851,0,0,0$1726,851,0,0,0$1727,851,0,0,0$1728,851,0,0,0$1729,851,0,0,0$1730,851,255,255,255$1731,851,0,0,0$1732,851,0,0,0$1733,851,0,0,0$1734,851,0,0,0$1735,851,0,0,0$1736,851,0,0,0$1737,851,255,255,255$1738,851,0,0,0$1739,851,0,0,0$1740,851,0,0,0$1741,851,0,0,0$1742,851,0,0,0$1743,851,255,255,255$1744,851,0,0,0$1745,851,0,0,0$1746,851,0,0,0$1747,851,0,0,0$1748,851,0,0,0$1749,851,0,0,0$1750,851,0,0,0$1751,851,0,0,0$1752,851,0,0,0$1753,851,0,0,0$1754,851,0,0,0$1755,851,0,0,0$1756,851,0,0,0$1699,852,0,0,0$1700,852,0,0,0$1701,852,0,0,0$1702,852,0,0,0$1703,852,0,0,0$1704,852,0,0,0$1705,852,0,0,0$1706,852,0,0,0$1707,852,0,0,0$1708,852,0,0,0$1709,852,0,0,0$1710,852,0,0,0$1711,852,255,255,255$1712,852,0,0,0$1713,852,0,0,0$1714,852,0,0,0$1715,852,0,0,0$1716,852,0,0,0$1717,852,0,0,0$1718,852,0,0,0$1719,852,0,0,0$1720,852,0,0,0$1721,852,0,0,0$1722,852,0,0,0$1723,852,0,0,0$1724,852,0,0,0$1725,852,0,0,0$1726,852,0,0,0$1727,852,0,0,0$1728,852,0,0,0$1729,852,0,0,0$1730,852,255,255,255$1731,852,0,0,0$1732,852,0,0,0$1733,852,0,0,0$1734,852,0,0,0$1735,852,0,0,0$1736,852,0,0,0$1737,852,255,255,255$1738,852,0,0,0$1739,852,0,0,0$1740,852,0,0,0$1741,852,0,0,0$1742,852,0,0,0$1743,852,255,255,255$1744,852,0,0,0$1745,852,0,0,0$1746,852,0,0,0$1747,852,0,0,0$1748,852,0,0,0$1749,852,0,0,0$1750,852,0,0,0$1751,852,0,0,0$1752,852,0,0,0$1753,852,0,0,0$1754,852,0,0,0$1755,852,0,0,0$1756,852,0,0,0$1699,853,0,0,0$1700,853,0,0,0$1701,853,0,0,0$1702,853,0,0,0$1703,853,0,0,0$1704,853,0,0,0$1705,853,255,255,255$1706,853,255,255,255$1707,853,0,0,0$1708,853,0,0,0$1709,853,0,0,0$1710,853,255,255,255$1711,853,255,255,255$1712,853,0,0,0$1713,853,0,0,0$1714,853,0,0,0$1715,853,0,0,0$1716,853,0,0,0$1717,853,0,0,0$1718,853,0,0,0$1719,853,0,0,0$1720,853,0,0,0$1721,853,0,0,0$1722,853,0,0,0$1723,853,0,0,0$1724,853,0,0,0$1725,853,0,0,0$1726,853,0,0,0$1727,853,255,255,255$1728,853,0,0,0$1729,853,0,0,0$1730,853,255,255,255$1731,853,0,0,0$1732,853,0,0,0$1733,853,255,255,255$1734,853,0,0,0$1735,853,0,0,0$1736,853,0,0,0$1737,853,255,255,255$1738,853,0,0,0$1739,853,0,0,0$1740,853,0,0,0$1741,853,0,0,0$1742,853,0,0,0$1743,853,255,255,255$1744,853,0,0,0$1745,853,0,0,0$1746,853,0,0,0$1747,853,0,0,0$1748,853,0,0,0$1749,853,0,0,0$1750,853,0,0,0$1751,853,0,0,0$1752,853,0,0,0$1753,853,0,0,0$1754,853,0,0,0$1755,853,0,0,0$1756,853,0,0,0$1699,854,0,0,0$1700,854,0,0,0$1701,854,0,0,0$1702,854,0,0,0$1703,854,0,0,0$1704,854,0,0,0$1705,854,0,0,0$1706,854,255,255,255$1707,854,255,255,255$1708,854,0,0,0$1709,854,0,0,0$1710,854,255,255,255$1711,854,0,0,0$1712,854,0,0,0$1713,854,0,0,0$1714,854,0,0,0$1715,854,0,0,0$1716,854,0,0,0$1717,854,0,0,0$1718,854,0,0,0$1719,854,0,0,0$1720,854,0,0,0$1721,854,0,0,0$1722,854,0,0,0$1723,854,0,0,0$1724,854,0,0,0$1725,854,0,0,0$1726,854,0,0,0$1727,854,255,255,255$1728,854,0,0,0$1729,854,0,0,0$1730,854,255,255,255$1731,854,0,0,0$1732,854,0,0,0$1733,854,0,0,0$1734,854,255,255,255$1735,854,0,0,0$1736,854,0,0,0$1737,854,255,255,255$1738,854,0,0,0$1739,854,0,0,0$1740,854,0,0,0$1741,854,0,0,0$1742,854,0,0,0$1743,854,255,255,255$1744,854,0,0,0$1745,854,0,0,0$1746,854,0,0,0$1747,854,0,0,0$1748,854,0,0,0$1749,854,0,0,0$1750,854,0,0,0$1751,854,0,0,0$1752,854,0,0,0$1753,854,0,0,0$1754,854,0,0,0$1755,854,0,0,0$1756,854,0,0,0$1699,855,0,0,0$1700,855,0,0,0$1701,855,0,0,0$1702,855,0,0,0$1703,855,0,0,0$1704,855,0,0,0$1705,855,0,0,0$1706,855,0,0,0$1707,855,255,255,255$1708,855,255,255,255$1709,855,255,255,255$1710,855,255,255,255$1711,855,0,0,0$1712,855,0,0,0$1713,855,0,0,0$1714,855,0,0,0$1715,855,0,0,0$1716,855,0,0,0$1717,855,0,0,0$1718,855,0,0,0$1719,855,0,0,0$1720,855,0,0,0$1721,855,0,0,0$1722,855,0,0,0$1723,855,0,0,0$1724,855,0,0,0$1725,855,0,0,0$1726,855,255,255,255$1727,855,0,0,0$1728,855,0,0,0$1729,855,0,0,0$1730,855,255,255,255$1731,855,0,0,0$1732,855,0,0,0$1733,855,0,0,0$1734,855,255,255,255$1735,855,0,0,0$1736,855,0,0,0$1737,855,255,255,255$1738,855,0,0,0$1739,855,0,0,0$1740,855,0,0,0$1741,855,0,0,0$1742,855,0,0,0$1743,855,255,255,255$1744,855,0,0,0$1745,855,0,0,0$1746,855,0,0,0$1747,855,0,0,0$1748,855,0,0,0$1749,855,0,0,0$1750,855,0,0,0$1751,855,0,0,0$1752,855,0,0,0$1753,855,0,0,0$1754,855,0,0,0$1755,855,0,0,0$1756,855,0,0,0$1699,856,0,0,0$1700,856,0,0,0$1701,856,0,0,0$1702,856,0,0,0$1703,856,0,0,0$1704,856,0,0,0$1705,856,0,0,0$1706,856,0,0,0$1707,856,255,255,255$1708,856,255,255,255$1709,856,255,255,255$1710,856,255,255,255$1711,856,0,0,0$1712,856,0,0,0$1713,856,0,0,0$1714,856,0,0,0$1715,856,0,0,0$1716,856,0,0,0$1717,856,0,0,0$1718,856,0,0,0$1719,856,0,0,0$1720,856,0,0,0$1721,856,0,0,0$1722,856,0,0,0$1723,856,0,0,0$1724,856,0,0,0$1725,856,255,255,255$1726,856,0,0,0$1727,856,0,0,0$1728,856,0,0,0$1729,856,0,0,0$1730,856,255,255,255$1731,856,0,0,0$1732,856,0,0,0$1733,856,0,0,0$1734,856,0,0,0$1735,856,0,0,0$1736,856,255,255,255$1737,856,255,255,255$1738,856,0,0,0$1739,856,0,0,0$1740,856,0,0,0$1741,856,0,0,0$1742,856,0,0,0$1743,856,255,255,255$1744,856,0,0,0$1745,856,0,0,0$1746,856,0,0,0$1747,856,0,0,0$1748,856,0,0,0$1749,856,0,0,0$1750,856,0,0,0$1751,856,0,0,0$1752,856,0,0,0$1753,856,0,0,0$1754,856,0,0,0$1755,856,0,0,0$1756,856,0,0,0$1699,857,0,0,0$1700,857,0,0,0$1701,857,0,0,0$1702,857,0,0,0$1703,857,0,0,0$1704,857,0,0,0$1705,857,255,255,255$1706,857,255,255,255$1707,857,255,255,255$1708,857,0,0,0$1709,857,0,0,0$1710,857,255,255,255$1711,857,255,255,255$1712,857,255,255,255$1713,857,255,255,255$1714,857,0,0,0$1715,857,0,0,0$1716,857,0,0,0$1717,857,0,0,0$1718,857,0,0,0$1719,857,0,0,0$1720,857,0,0,0$1721,857,0,0,0$1722,857,0,0,0$1723,857,0,0,0$1724,857,0,0,0$1725,857,0,0,0$1726,857,0,0,0$1727,857,0,0,0$1728,857,0,0,0$1729,857,0,0,0$1730,857,255,255,255$1731,857,0,0,0$1732,857,0,0,0$1733,857,0,0,0$1734,857,0,0,0$1735,857,0,0,0$1736,857,255,255,255$1737,857,0,0,0$1738,857,0,0,0$1739,857,0,0,0$1740,857,0,0,0$1741,857,0,0,0$1742,857,0,0,0$1743,857,255,255,255$1744,857,0,0,0$1745,857,0,0,0$1746,857,0,0,0$1747,857,0,0,0$1748,857,0,0,0$1749,857,0,0,0$1750,857,0,0,0$1751,857,0,0,0$1752,857,0,0,0$1753,857,0,0,0$1754,857,0,0,0$1755,857,0,0,0$1756,857,0,0,0$1699,858,0,0,0$1700,858,0,0,0$1701,858,0,0,0$1702,858,255,255,255$1703,858,255,255,255$1704,858,255,255,255$1705,858,255,255,255$1706,858,0,0,0$1707,858,0,0,0$1708,858,0,0,0$1709,858,0,0,0$1710,858,0,0,0$1711,858,0,0,0$1712,858,0,0,0$1713,858,0,0,0$1714,858,255,255,255$1715,858,255,255,255$1716,858,255,255,255$1717,858,255,255,255$1718,858,255,255,255$1719,858,255,255,255$1720,858,255,255,255$1721,858,255,255,255$1722,858,0,0,0$1723,858,0,0,0$1724,858,0,0,0$1725,858,0,0,0$1726,858,0,0,0$1727,858,0,0,0$1728,858,255,255,255$1729,858,255,255,255$1730,858,255,255,255$1731,858,0,0,0$1732,858,0,0,0$1733,858,0,0,0$1734,858,0,0,0$1735,858,0,0,0$1736,858,255,255,255$1737,858,0,0,0$1738,858,0,0,0$1739,858,0,0,0$1740,858,0,0,0$1741,858,0,0,0$1742,858,0,0,0$1743,858,255,255,255$1744,858,0,0,0$1745,858,0,0,0$1746,858,0,0,0$1747,858,0,0,0$1748,858,0,0,0$1749,858,0,0,0$1750,858,0,0,0$1751,858,0,0,0$1752,858,0,0,0$1753,858,0,0,0$1754,858,0,0,0$1755,858,0,0,0$1756,858,0,0,0$1699,859,0,0,0$1700,859,0,0,0$1701,859,0,0,0$1702,859,0,0,0$1703,859,0,0,0$1704,859,0,0,0$1705,859,0,0,0$1706,859,0,0,0$1707,859,0,0,0$1708,859,0,0,0$1709,859,0,0,0$1710,859,0,0,0$1711,859,0,0,0$1712,859,0,0,0$1713,859,0,0,0$1714,859,0,0,0$1715,859,0,0,0$1716,859,0,0,0$1717,859,0,0,0$1718,859,0,0,0$1719,859,0,0,0$1720,859,0,0,0$1721,859,0,0,0$1722,859,0,0,0$1723,859,0,0,0$1724,859,0,0,0$1725,859,0,0,0$1726,859,0,0,0$1727,859,0,0,0$1728,859,0,0,0$1729,859,0,0,0$1730,859,0,0,0$1731,859,0,0,0$1732,859,0,0,0$1733,859,0,0,0$1734,859,0,0,0$1735,859,0,0,0$1736,859,0,0,0$1737,859,0,0,0$1738,859,0,0,0$1739,859,0,0,0$1740,859,0,0,0$1741,859,0,0,0$1742,859,0,0,0$1743,859,0,0,0$1744,859,0,0,0$1745,859,0,0,0$1746,859,0,0,0$1747,859,0,0,0$1748,859,0,0,0$1749,859,0,0,0$1750,859,0,0,0$1751,859,0,0,0$1752,859,0,0,0$1753,859,0,0,0$1754,859,0,0,0$1755,859,0,0,0$1756,859,0,0,0$1699,860,0,0,0$1700,860,0,0,0$1701,860,0,0,0$1702,860,0,0,0$1703,860,0,0,0$1704,860,0,0,0$1705,860,0,0,0$1706,860,0,0,0$1707,860,0,0,0$1708,860,0,0,0$1709,860,0,0,0$1710,860,0,0,0$1711,860,0,0,0$1712,860,0,0,0$1713,860,0,0,0$1714,860,0,0,0$1715,860,0,0,0$1716,860,0,0,0$1717,860,0,0,0$1718,860,0,0,0$1719,860,0,0,0$1720,860,0,0,0$1721,860,0,0,0$1722,860,0,0,0$1723,860,0,0,0$1724,860,0,0,0$1725,860,0,0,0$1726,860,0,0,0$1727,860,0,0,0$1728,860,0,0,0$1729,860,0,0,0$1730,860,0,0,0$1731,860,0,0,0$1732,860,0,0,0$1733,860,0,0,0$1734,860,0,0,0$1735,860,0,0,0$1736,860,0,0,0$1737,860,0,0,0$1738,860,0,0,0$1739,860,0,0,0$1740,860,0,0,0$1741,860,0,0,0$1742,860,0,0,0$1743,860,0,0,0$1744,860,0,0,0$1745,860,0,0,0$1746,860,0,0,0$1747,860,0,0,0$1748,860,0,0,0$1749,860,0,0,0$1750,860,0,0,0$1751,860,0,0,0$1752,860,0,0,0$1753,860,0,0,0$1754,860,0,0,0$1755,860,0,0,0$1756,860,0,0,0$1699,861,0,0,0$1700,861,0,0,0$1701,861,0,0,0$1702,861,0,0,0$1703,861,0,0,0$1704,861,0,0,0$1705,861,0,0,0$1706,861,0,0,0$1707,861,0,0,0$1708,861,0,0,0$1709,861,0,0,0$1710,861,0,0,0$1711,861,0,0,0$1712,861,0,0,0$1713,861,0,0,0$1714,861,0,0,0$1715,861,0,0,0$1716,861,0,0,0$1717,861,0,0,0$1718,861,0,0,0$1719,861,0,0,0$1720,861,0,0,0$1721,861,0,0,0$1722,861,0,0,0$1723,861,0,0,0$1724,861,0,0,0$1725,861,0,0,0$1726,861,0,0,0$1727,861,0,0,0$1728,861,0,0,0$1729,861,0,0,0$1730,861,0,0,0$1731,861,0,0,0$1732,861,0,0,0$1733,861,0,0,0$1734,861,0,0,0$1735,861,0,0,0$1736,861,0,0,0$1737,861,0,0,0$1738,861,0,0,0$1739,861,0,0,0$1740,861,0,0,0$1741,861,0,0,0$1742,861,0,0,0$1743,861,0,0,0$1744,861,0,0,0$1745,861,0,0,0$1746,861,0,0,0$1747,861,0,0,0$1748,861,0,0,0$1749,861,0,0,0$1750,861,0,0,0$1751,861,0,0,0$1752,861,0,0,0$1753,861,0,0,0$1754,861,0,0,0$1755,861,0,0,0$1756,861,0,0,0$1699,862,0,0,0$1700,862,0,0,0$1701,862,0,0,0$1702,862,0,0,0$1703,862,0,0,0$1704,862,0,0,0$1705,862,0,0,0$1706,862,0,0,0$1707,862,0,0,0$1708,862,0,0,0$1709,862,0,0,0$1710,862,0,0,0$1711,862,0,0,0$1712,862,0,0,0$1713,862,0,0,0$1714,862,0,0,0$1715,862,0,0,0$1716,862,0,0,0$1717,862,0,0,0$1718,862,0,0,0$1719,862,0,0,0$1720,862,0,0,0$1721,862,0,0,0$1722,862,0,0,0$1723,862,0,0,0$1724,862,0,0,0$1725,862,0,0,0$1726,862,0,0,0$1727,862,0,0,0$1728,862,0,0,0$1729,862,0,0,0$1730,862,0,0,0$1731,862,0,0,0$1732,862,0,0,0$1733,862,0,0,0$1734,862,0,0,0$1735,862,0,0,0$1736,862,0,0,0$1737,862,0,0,0$1738,862,0,0,0$1739,862,0,0,0$1740,862,0,0,0$1741,862,0,0,0$1742,862,0,0,0$1743,862,0,0,0$1744,862,0,0,0$1745,862,0,0,0$1746,862,0,0,0$1747,862,0,0,0$1748,862,0,0,0$1749,862,0,0,0$1750,862,0,0,0$1751,862,0,0,0$1752,862,0,0,0$1753,862,0,0,0$1754,862,0,0,0$1755,862,0,0,0$1756,862,0,0,0$1699,863,0,0,0$1700,863,0,0,0$1701,863,0,0,0$1702,863,0,0,0$1703,863,0,0,0$1704,863,0,0,0$1705,863,0,0,0$1706,863,0,0,0$1707,863,0,0,0$1708,863,0,0,0$1709,863,0,0,0$1710,863,0,0,0$1711,863,0,0,0$1712,863,0,0,0$1713,863,0,0,0$1714,863,0,0,0$1715,863,0,0,0$1716,863,0,0,0$1717,863,0,0,0$1718,863,0,0,0$1719,863,0,0,0$1720,863,0,0,0$1721,863,0,0,0$1722,863,0,0,0$1723,863,0,0,0$1724,863,0,0,0$1725,863,0,0,0$1726,863,0,0,0$1727,863,0,0,0$1728,863,0,0,0$1729,863,0,0,0$1730,863,0,0,0$1731,863,0,0,0$1732,863,0,0,0$1733,863,0,0,0$1734,863,0,0,0$1735,863,0,0,0$1736,863,0,0,0$1737,863,0,0,0$1738,863,0,0,0$1739,863,0,0,0$1740,863,0,0,0$1741,863,0,0,0$1742,863,0,0,0$1743,863,0,0,0$1744,863,0,0,0$1745,863,0,0,0$1746,863,0,0,0$1747,863,0,0,0$1748,863,0,0,0$1749,863,0,0,0$1750,863,0,0,0$1751,863,0,0,0$1752,863,0,0,0$1753,863,0,0,0$1754,863,0,0,0$1755,863,0,0,0$1756,863,0,0,0$1699,864,0,0,0$1700,864,0,0,0$1701,864,0,0,0$1702,864,0,0,0$1703,864,0,0,0$1704,864,0,0,0$1705,864,0,0,0$1706,864,0,0,0$1707,864,0,0,0$1708,864,0,0,0$1709,864,0,0,0$1710,864,0,0,0$1711,864,0,0,0$1712,864,0,0,0$1713,864,0,0,0$1714,864,0,0,0$1715,864,0,0,0$1716,864,0,0,0$1717,864,0,0,0$1718,864,0,0,0$1719,864,0,0,0$1720,864,0,0,0$1721,864,0,0,0$1722,864,0,0,0$1723,864,0,0,0$1724,864,0,0,0$1725,864,0,0,0$1726,864,0,0,0$1727,864,0,0,0$1728,864,0,0,0$1729,864,0,0,0$1730,864,0,0,0$1731,864,0,0,0$1732,864,0,0,0$1733,864,0,0,0$1734,864,0,0,0$1735,864,0,0,0$1736,864,0,0,0$1737,864,0,0,0$1738,864,0,0,0$1739,864,0,0,0$1740,864,0,0,0$1741,864,0,0,0$1742,864,0,0,0$1743,864,0,0,0$1744,864,0,0,0$1745,864,0,0,0$1746,864,0,0,0$1747,864,0,0,0$1748,864,0,0,0$1749,864,0,0,0$1750,864,0,0,0$1751,864,0,0,0$1752,864,0,0,0$1753,864,0,0,0$1754,864,0,0,0$1755,864,0,0,0$1756,864,0,0,0$1699,865,0,0,0$1700,865,0,0,0$1701,865,0,0,0$1702,865,0,0,0$1703,865,0,0,0$1704,865,0,0,0$1705,865,0,0,0$1706,865,0,0,0$1707,865,0,0,0$1708,865,0,0,0$1709,865,0,0,0$1710,865,0,0,0$1711,865,0,0,0$1712,865,0,0,0$1713,865,0,0,0$1714,865,0,0,0$1715,865,0,0,0$1716,865,0,0,0$1717,865,0,0,0$1718,865,0,0,0$1719,865,0,0,0$1720,865,0,0,0$1721,865,0,0,0$1722,865,0,0,0$1723,865,0,0,0$1724,865,0,0,0$1725,865,0,0,0$1726,865,0,0,0$1727,865,0,0,0$1728,865,0,0,0$1729,865,0,0,0$1730,865,0,0,0$1731,865,0,0,0$1732,865,0,0,0$1733,865,0,0,0$1734,865,0,0,0$1735,865,0,0,0$1736,865,0,0,0$1737,865,0,0,0$1738,865,0,0,0$1739,865,0,0,0$1740,865,0,0,0$1741,865,0,0,0$1742,865,0,0,0$1743,865,0,0,0$1744,865,0,0,0$1745,865,0,0,0$1746,865,0,0,0$1747,865,0,0,0$1748,865,0,0,0$1749,865,0,0,0$1750,865,0,0,0$1751,865,0,0,0$1752,865,0,0,0$1753,865,0,0,0$1754,865,0,0,0$1755,865,0,0,0$1756,865,0,0,0$1699,866,0,0,0$1700,866,0,0,0$1701,866,0,0,0$1702,866,0,0,0$1703,866,0,0,0$1704,866,0,0,0$1705,866,0,0,0$1706,866,0,0,0$1707,866,0,0,0$1708,866,0,0,0$1709,866,0,0,0$1710,866,0,0,0$1711,866,0,0,0$1712,866,0,0,0$1713,866,0,0,0$1714,866,0,0,0$1715,866,0,0,0$1716,866,0,0,0$1717,866,0,0,0$1718,866,0,0,0$1719,866,0,0,0$1720,866,0,0,0$1721,866,0,0,0$1722,866,0,0,0$1723,866,0,0,0$1724,866,0,0,0$1725,866,0,0,0$1726,866,0,0,0$1727,866,0,0,0$1728,866,0,0,0$1729,866,0,0,0$1730,866,0,0,0$1731,866,0,0,0$1732,866,0,0,0$1733,866,0,0,0$1734,866,0,0,0$1735,866,0,0,0$1736,866,0,0,0$1737,866,0,0,0$1738,866,0,0,0$1739,866,0,0,0$1740,866,0,0,0$1741,866,0,0,0$1742,866,0,0,0$1743,866,0,0,0$1744,866,0,0,0$1745,866,0,0,0$1746,866,0,0,0$1747,866,0,0,0$1748,866,0,0,0$1749,866,0,0,0$1750,866,0,0,0$1751,866,0,0,0$1752,866,0,0,0$1753,866,0,0,0$1754,866,0,0,0$1755,866,0,0,0$1756,866,0,0,0$1699,867,0,0,0$1700,867,0,0,0$1701,867,0,0,0$1702,867,0,0,0$1703,867,0,0,0$1704,867,0,0,0$1705,867,0,0,0$1706,867,0,0,0$1707,867,0,0,0$1708,867,0,0,0$1709,867,0,0,0$1710,867,0,0,0$1711,867,0,0,0$1712,867,0,0,0$1713,867,0,0,0$1714,867,0,0,0$1715,867,0,0,0$1716,867,0,0,0$1717,867,0,0,0$1718,867,0,0,0$1719,867,0,0,0$1720,867,0,0,0$1721,867,0,0,0$1722,867,0,0,0$1723,867,0,0,0$1724,867,0,0,0$1725,867,0,0,0$1726,867,0,0,0$1727,867,0,0,0$1728,867,0,0,0$1729,867,0,0,0$1730,867,0,0,0$1731,867,0,0,0$1732,867,0,0,0$1733,867,0,0,0$1734,867,0,0,0$1735,867,0,0,0$1736,867,0,0,0$1737,867,0,0,0$1738,867,0,0,0$1739,867,0,0,0$1740,867,0,0,0$1741,867,0,0,0$1742,867,0,0,0$1743,867,0,0,0$1744,867,0,0,0$1745,867,0,0,0$1746,867,0,0,0$1747,867,0,0,0$1748,867,0,0,0$1749,867,0,0,0$1750,867,0,0,0$1751,867,0,0,0$1752,867,0,0,0$1753,867,0,0,0$1754,867,0,0,0$1755,867,0,0,0$1756,867,0,0,0"); |
| | | |
| | | |
| | | //开始游戏按钮 |
| | | private static ColorArray StartGameButton = ColorArray.FromThresholdString(253, "1704,838,0,0,0$1698,838,0,0,0$1699,838,0,0,0$1700,838,0,0,0$1701,838,0,0,0$1702,838,0,0,0$1703,838,0,0,0$1705,838,0,0,0$1706,838,0,0,0$1707,838,0,0,0$1708,838,0,0,0$1709,838,0,0,0$1710,838,0,0,0$1711,838,0,0,0$1712,838,0,0,0$1713,838,0,0,0$1714,838,255,255,255$1715,838,0,0,0$1716,838,0,0,0$1717,838,0,0,0$1718,838,0,0,0$1719,838,0,0,0$1720,838,0,0,0$1721,838,0,0,0$1722,838,0,0,0$1723,838,0,0,0$1724,838,0,0,0$1725,838,0,0,0$1726,838,0,0,0$1727,838,0,0,0$1728,838,0,0,0$1729,838,0,0,0$1730,838,0,0,0$1731,838,0,0,0$1732,838,0,0,0$1733,838,0,0,0$1734,838,0,0,0$1735,838,0,0,0$1736,838,0,0,0$1737,838,0,0,0$1738,838,0,0,0$1739,838,0,0,0$1740,838,0,0,0$1741,838,0,0,0$1742,838,0,0,0$1743,838,0,0,0$1744,838,0,0,0$1745,838,0,0,0$1746,838,0,0,0$1747,838,0,0,0$1748,838,0,0,0$1749,838,0,0,0$1750,838,0,0,0$1751,838,0,0,0$1752,838,0,0,0$1753,838,0,0,0$1754,838,0,0,0$1755,838,0,0,0$1756,838,0,0,0$1757,838,0,0,0$1758,838,0,0,0$1759,838,0,0,0$1698,839,0,0,0$1699,839,0,0,0$1700,839,0,0,0$1701,839,0,0,0$1702,839,0,0,0$1703,839,0,0,0$1704,839,0,0,0$1705,839,0,0,0$1706,839,0,0,0$1707,839,0,0,0$1708,839,0,0,0$1709,839,0,0,0$1710,839,0,0,0$1711,839,0,0,0$1712,839,0,0,0$1713,839,0,0,0$1714,839,255,255,255$1715,839,255,255,255$1716,839,0,0,0$1717,839,0,0,0$1718,839,0,0,0$1719,839,0,0,0$1720,839,0,0,0$1721,839,0,0,0$1722,839,0,0,0$1723,839,0,0,0$1724,839,0,0,0$1725,839,0,0,0$1726,839,0,0,0$1727,839,0,0,0$1728,839,0,0,0$1729,839,0,0,0$1730,839,0,0,0$1731,839,0,0,0$1732,839,0,0,0$1733,839,0,0,0$1734,839,0,0,0$1735,839,0,0,0$1736,839,0,0,0$1737,839,0,0,0$1738,839,0,0,0$1739,839,0,0,0$1740,839,0,0,0$1741,839,0,0,0$1742,839,0,0,0$1743,839,255,255,255$1744,839,0,0,0$1745,839,0,0,0$1746,839,0,0,0$1747,839,0,0,0$1748,839,0,0,0$1749,839,0,0,0$1750,839,0,0,0$1751,839,0,0,0$1752,839,0,0,0$1753,839,0,0,0$1754,839,0,0,0$1755,839,0,0,0$1756,839,0,0,0$1757,839,0,0,0$1758,839,0,0,0$1759,839,0,0,0$1698,840,0,0,0$1699,840,0,0,0$1700,840,0,0,0$1701,840,0,0,0$1702,840,0,0,0$1703,840,0,0,0$1704,840,0,0,0$1705,840,0,0,0$1706,840,0,0,0$1707,840,0,0,0$1708,840,0,0,0$1709,840,0,0,0$1710,840,0,0,0$1711,840,0,0,0$1712,840,0,0,0$1713,840,0,0,0$1714,840,0,0,0$1715,840,255,255,255$1716,840,0,0,0$1717,840,0,0,0$1718,840,0,0,0$1719,840,0,0,0$1720,840,0,0,0$1721,840,0,0,0$1722,840,0,0,0$1723,840,0,0,0$1724,840,0,0,0$1725,840,0,0,0$1726,840,0,0,0$1727,840,0,0,0$1728,840,0,0,0$1729,840,255,255,255$1730,840,255,255,255$1731,840,255,255,255$1732,840,255,255,255$1733,840,255,255,255$1734,840,255,255,255$1735,840,255,255,255$1736,840,255,255,255$1737,840,255,255,255$1738,840,0,0,0$1739,840,0,0,0$1740,840,0,0,0$1741,840,0,0,0$1742,840,0,0,0$1743,840,255,255,255$1744,840,0,0,0$1745,840,0,0,0$1746,840,0,0,0$1747,840,0,0,0$1748,840,0,0,0$1749,840,0,0,0$1750,840,0,0,0$1751,840,0,0,0$1752,840,0,0,0$1753,840,0,0,0$1754,840,0,0,0$1755,840,0,0,0$1756,840,0,0,0$1757,840,0,0,0$1758,840,0,0,0$1759,840,0,0,0$1698,841,0,0,0$1699,841,0,0,0$1700,841,0,0,0$1701,841,0,0,0$1702,841,0,0,0$1703,841,0,0,0$1704,841,0,0,0$1705,841,0,0,0$1706,841,0,0,0$1707,841,0,0,0$1708,841,0,0,0$1709,841,0,0,0$1710,841,0,0,0$1711,841,0,0,0$1712,841,0,0,0$1713,841,0,0,0$1714,841,0,0,0$1715,841,255,255,255$1716,841,0,0,0$1717,841,0,0,0$1718,841,0,0,0$1719,841,0,0,0$1720,841,0,0,0$1721,841,0,0,0$1722,841,0,0,0$1723,841,0,0,0$1724,841,0,0,0$1725,841,0,0,0$1726,841,0,0,0$1727,841,0,0,0$1728,841,0,0,0$1729,841,0,0,0$1730,841,0,0,0$1731,841,0,0,0$1732,841,0,0,0$1733,841,0,0,0$1734,841,0,0,0$1735,841,0,0,0$1736,841,0,0,0$1737,841,0,0,0$1738,841,0,0,0$1739,841,0,0,0$1740,841,0,0,0$1741,841,0,0,0$1742,841,0,0,0$1743,841,255,255,255$1744,841,0,0,0$1745,841,0,0,0$1746,841,0,0,0$1747,841,0,0,0$1748,841,0,0,0$1749,841,0,0,0$1750,841,0,0,0$1751,841,0,0,0$1752,841,0,0,0$1753,841,0,0,0$1754,841,0,0,0$1755,841,0,0,0$1756,841,0,0,0$1757,841,0,0,0$1758,841,0,0,0$1759,841,0,0,0$1698,842,0,0,0$1699,842,0,0,0$1700,842,0,0,0$1701,842,0,0,0$1702,842,0,0,0$1703,842,0,0,0$1704,842,0,0,0$1705,842,0,0,0$1706,842,0,0,0$1707,842,255,255,255$1708,842,255,255,255$1709,842,255,255,255$1710,842,255,255,255$1711,842,255,255,255$1712,842,255,255,255$1713,842,255,255,255$1714,842,255,255,255$1715,842,255,255,255$1716,842,255,255,255$1717,842,255,255,255$1718,842,255,255,255$1719,842,255,255,255$1720,842,255,255,255$1721,842,255,255,255$1722,842,255,255,255$1723,842,0,0,0$1724,842,0,0,0$1725,842,0,0,0$1726,842,0,0,0$1727,842,0,0,0$1728,842,0,0,0$1729,842,0,0,0$1730,842,0,0,0$1731,842,0,0,0$1732,842,0,0,0$1733,842,0,0,0$1734,842,0,0,0$1735,842,0,0,0$1736,842,0,0,0$1737,842,0,0,0$1738,842,0,0,0$1739,842,0,0,0$1740,842,0,0,0$1741,842,0,0,0$1742,842,0,0,0$1743,842,255,255,255$1744,842,0,0,0$1745,842,0,0,0$1746,842,0,0,0$1747,842,0,0,0$1748,842,0,0,0$1749,842,0,0,0$1750,842,0,0,0$1751,842,0,0,0$1752,842,0,0,0$1753,842,0,0,0$1754,842,0,0,0$1755,842,0,0,0$1756,842,0,0,0$1757,842,0,0,0$1758,842,0,0,0$1759,842,0,0,0$1698,843,0,0,0$1699,843,0,0,0$1700,843,0,0,0$1701,843,0,0,0$1702,843,0,0,0$1703,843,0,0,0$1704,843,0,0,0$1705,843,0,0,0$1706,843,0,0,0$1707,843,255,255,255$1708,843,0,0,0$1709,843,0,0,0$1710,843,0,0,0$1711,843,0,0,0$1712,843,0,0,0$1713,843,0,0,0$1714,843,0,0,0$1715,843,0,0,0$1716,843,0,0,0$1717,843,0,0,0$1718,843,0,0,0$1719,843,0,0,0$1720,843,0,0,0$1721,843,0,0,0$1722,843,255,255,255$1723,843,0,0,0$1724,843,0,0,0$1725,843,0,0,0$1726,843,0,0,0$1727,843,0,0,0$1728,843,0,0,0$1729,843,0,0,0$1730,843,0,0,0$1731,843,0,0,0$1732,843,0,0,0$1733,843,0,0,0$1734,843,0,0,0$1735,843,0,0,0$1736,843,0,0,0$1737,843,0,0,0$1738,843,0,0,0$1739,843,0,0,0$1740,843,0,0,0$1741,843,0,0,0$1742,843,255,255,255$1743,843,255,255,255$1744,843,0,0,0$1745,843,0,0,0$1746,843,0,0,0$1747,843,0,0,0$1748,843,0,0,0$1749,843,0,0,0$1750,843,0,0,0$1751,843,0,0,0$1752,843,0,0,0$1753,843,0,0,0$1754,843,0,0,0$1755,843,0,0,0$1756,843,0,0,0$1757,843,0,0,0$1758,843,0,0,0$1759,843,0,0,0$1698,844,0,0,0$1699,844,0,0,0$1700,844,0,0,0$1701,844,0,0,0$1702,844,0,0,0$1703,844,0,0,0$1704,844,0,0,0$1705,844,0,0,0$1706,844,0,0,0$1707,844,255,255,255$1708,844,0,0,0$1709,844,0,0,0$1710,844,0,0,0$1711,844,0,0,0$1712,844,0,0,0$1713,844,0,0,0$1714,844,0,0,0$1715,844,0,0,0$1716,844,0,0,0$1717,844,0,0,0$1718,844,0,0,0$1719,844,0,0,0$1720,844,0,0,0$1721,844,0,0,0$1722,844,255,255,255$1723,844,0,0,0$1724,844,0,0,0$1725,844,0,0,0$1726,844,0,0,0$1727,844,0,0,0$1728,844,0,0,0$1729,844,0,0,0$1730,844,0,0,0$1731,844,0,0,0$1732,844,0,0,0$1733,844,0,0,0$1734,844,0,0,0$1735,844,0,0,0$1736,844,0,0,0$1737,844,0,0,0$1738,844,0,0,0$1739,844,255,255,255$1740,844,255,255,255$1741,844,255,255,255$1742,844,255,255,255$1743,844,255,255,255$1744,844,255,255,255$1745,844,255,255,255$1746,844,255,255,255$1747,844,255,255,255$1748,844,255,255,255$1749,844,0,0,0$1750,844,0,0,0$1751,844,0,0,0$1752,844,0,0,0$1753,844,0,0,0$1754,844,0,0,0$1755,844,0,0,0$1756,844,0,0,0$1757,844,0,0,0$1758,844,0,0,0$1759,844,0,0,0$1698,845,0,0,0$1699,845,0,0,0$1700,845,0,0,0$1701,845,0,0,0$1702,845,0,0,0$1703,845,0,0,0$1704,845,0,0,0$1705,845,0,0,0$1706,845,0,0,0$1707,845,255,255,255$1708,845,0,0,0$1709,845,0,0,0$1710,845,0,0,0$1711,845,0,0,0$1712,845,0,0,0$1713,845,0,0,0$1714,845,0,0,0$1715,845,0,0,0$1716,845,0,0,0$1717,845,0,0,0$1718,845,0,0,0$1719,845,0,0,0$1720,845,0,0,0$1721,845,0,0,0$1722,845,255,255,255$1723,845,0,0,0$1724,845,0,0,0$1725,845,0,0,0$1726,845,0,0,0$1727,845,0,0,0$1728,845,0,0,0$1729,845,0,0,0$1730,845,0,0,0$1731,845,0,0,0$1732,845,0,0,0$1733,845,0,0,0$1734,845,0,0,0$1735,845,0,0,0$1736,845,0,0,0$1737,845,0,0,0$1738,845,0,0,0$1739,845,0,0,0$1740,845,0,0,0$1741,845,0,0,0$1742,845,0,0,0$1743,845,255,255,255$1744,845,0,0,0$1745,845,0,0,0$1746,845,0,0,0$1747,845,0,0,0$1748,845,255,255,255$1749,845,0,0,0$1750,845,0,0,0$1751,845,0,0,0$1752,845,0,0,0$1753,845,0,0,0$1754,845,0,0,0$1755,845,0,0,0$1756,845,0,0,0$1757,845,0,0,0$1758,845,0,0,0$1759,845,0,0,0$1698,846,0,0,0$1699,846,0,0,0$1700,846,0,0,0$1701,846,0,0,0$1702,846,0,0,0$1703,846,0,0,0$1704,846,0,0,0$1705,846,0,0,0$1706,846,0,0,0$1707,846,255,255,255$1708,846,0,0,0$1709,846,0,0,0$1710,846,0,0,0$1711,846,0,0,0$1712,846,0,0,0$1713,846,0,0,0$1714,846,0,0,0$1715,846,0,0,0$1716,846,0,0,0$1717,846,0,0,0$1718,846,0,0,0$1719,846,0,0,0$1720,846,0,0,0$1721,846,0,0,0$1722,846,255,255,255$1723,846,0,0,0$1724,846,0,0,0$1725,846,0,0,0$1726,846,0,0,0$1727,846,0,0,0$1728,846,255,255,255$1729,846,255,255,255$1730,846,255,255,255$1731,846,255,255,255$1732,846,255,255,255$1733,846,255,255,255$1734,846,255,255,255$1735,846,255,255,255$1736,846,255,255,255$1737,846,255,255,255$1738,846,0,0,0$1739,846,0,0,0$1740,846,0,0,0$1741,846,0,0,0$1742,846,0,0,0$1743,846,255,255,255$1744,846,0,0,0$1745,846,0,0,0$1746,846,0,0,0$1747,846,0,0,0$1748,846,255,255,255$1749,846,0,0,0$1750,846,0,0,0$1751,846,0,0,0$1752,846,0,0,0$1753,846,0,0,0$1754,846,0,0,0$1755,846,0,0,0$1756,846,0,0,0$1757,846,0,0,0$1758,846,0,0,0$1759,846,0,0,0$1698,847,0,0,0$1699,847,0,0,0$1700,847,0,0,0$1701,847,0,0,0$1702,847,0,0,0$1703,847,0,0,0$1704,847,0,0,0$1705,847,0,0,0$1706,847,0,0,0$1707,847,255,255,255$1708,847,255,255,255$1709,847,255,255,255$1710,847,255,255,255$1711,847,255,255,255$1712,847,255,255,255$1713,847,255,255,255$1714,847,255,255,255$1715,847,255,255,255$1716,847,255,255,255$1717,847,255,255,255$1718,847,255,255,255$1719,847,255,255,255$1720,847,255,255,255$1721,847,255,255,255$1722,847,255,255,255$1723,847,0,0,0$1724,847,0,0,0$1725,847,0,0,0$1726,847,0,0,0$1727,847,0,0,0$1728,847,0,0,0$1729,847,0,0,0$1730,847,0,0,0$1731,847,0,0,0$1732,847,255,255,255$1733,847,0,0,0$1734,847,0,0,0$1735,847,0,0,0$1736,847,0,0,0$1737,847,0,0,0$1738,847,0,0,0$1739,847,0,0,0$1740,847,0,0,0$1741,847,0,0,0$1742,847,255,255,255$1743,847,255,255,255$1744,847,0,0,0$1745,847,0,0,0$1746,847,0,0,0$1747,847,0,0,0$1748,847,255,255,255$1749,847,0,0,0$1750,847,0,0,0$1751,847,0,0,0$1752,847,0,0,0$1753,847,0,0,0$1754,847,0,0,0$1755,847,0,0,0$1756,847,0,0,0$1757,847,0,0,0$1758,847,0,0,0$1759,847,0,0,0$1698,848,0,0,0$1699,848,0,0,0$1700,848,0,0,0$1701,848,0,0,0$1702,848,0,0,0$1703,848,0,0,0$1704,848,0,0,0$1705,848,0,0,0$1706,848,0,0,0$1707,848,255,255,255$1708,848,0,0,0$1709,848,0,0,0$1710,848,0,0,0$1711,848,0,0,0$1712,848,0,0,0$1713,848,0,0,0$1714,848,0,0,0$1715,848,0,0,0$1716,848,0,0,0$1717,848,0,0,0$1718,848,0,0,0$1719,848,0,0,0$1720,848,0,0,0$1721,848,0,0,0$1722,848,0,0,0$1723,848,0,0,0$1724,848,0,0,0$1725,848,0,0,0$1726,848,0,0,0$1727,848,0,0,0$1728,848,0,0,0$1729,848,0,0,0$1730,848,0,0,0$1731,848,255,255,255$1732,848,255,255,255$1733,848,0,0,0$1734,848,0,0,0$1735,848,0,0,0$1736,848,0,0,0$1737,848,0,0,0$1738,848,0,0,0$1739,848,0,0,0$1740,848,0,0,0$1741,848,0,0,0$1742,848,255,255,255$1743,848,255,255,255$1744,848,0,0,0$1745,848,0,0,0$1746,848,0,0,0$1747,848,0,0,0$1748,848,255,255,255$1749,848,0,0,0$1750,848,0,0,0$1751,848,0,0,0$1752,848,0,0,0$1753,848,0,0,0$1754,848,0,0,0$1755,848,0,0,0$1756,848,0,0,0$1757,848,0,0,0$1758,848,0,0,0$1759,848,0,0,0$1698,849,0,0,0$1699,849,0,0,0$1700,849,0,0,0$1701,849,0,0,0$1702,849,0,0,0$1703,849,0,0,0$1704,849,0,0,0$1705,849,0,0,0$1706,849,0,0,0$1707,849,255,255,255$1708,849,0,0,0$1709,849,0,0,0$1710,849,0,0,0$1711,849,0,0,0$1712,849,0,0,0$1713,849,0,0,0$1714,849,0,0,0$1715,849,0,0,0$1716,849,0,0,0$1717,849,0,0,0$1718,849,0,0,0$1719,849,0,0,0$1720,849,0,0,0$1721,849,0,0,0$1722,849,0,0,0$1723,849,0,0,0$1724,849,0,0,0$1725,849,0,0,0$1726,849,0,0,0$1727,849,0,0,0$1728,849,0,0,0$1729,849,0,0,0$1730,849,0,0,0$1731,849,255,255,255$1732,849,0,0,0$1733,849,0,0,0$1734,849,0,0,0$1735,849,0,0,0$1736,849,0,0,0$1737,849,0,0,0$1738,849,0,0,0$1739,849,0,0,0$1740,849,0,0,0$1741,849,0,0,0$1742,849,255,255,255$1743,849,0,0,0$1744,849,0,0,0$1745,849,0,0,0$1746,849,0,0,0$1747,849,0,0,0$1748,849,255,255,255$1749,849,0,0,0$1750,849,0,0,0$1751,849,0,0,0$1752,849,0,0,0$1753,849,0,0,0$1754,849,0,0,0$1755,849,0,0,0$1756,849,0,0,0$1757,849,0,0,0$1758,849,0,0,0$1759,849,0,0,0$1698,850,0,0,0$1699,850,0,0,0$1700,850,0,0,0$1701,850,0,0,0$1702,850,0,0,0$1703,850,0,0,0$1704,850,0,0,0$1705,850,0,0,0$1706,850,0,0,0$1707,850,255,255,255$1708,850,0,0,0$1709,850,0,0,0$1710,850,0,0,0$1711,850,0,0,0$1712,850,0,0,0$1713,850,0,0,0$1714,850,0,0,0$1715,850,0,0,0$1716,850,0,0,0$1717,850,0,0,0$1718,850,0,0,0$1719,850,0,0,0$1720,850,0,0,0$1721,850,0,0,0$1722,850,0,0,0$1723,850,0,0,0$1724,850,0,0,0$1725,850,0,0,0$1726,850,0,0,0$1727,850,0,0,0$1728,850,0,0,0$1729,850,0,0,0$1730,850,0,0,0$1731,850,255,255,255$1732,850,0,0,0$1733,850,0,0,0$1734,850,0,0,0$1735,850,0,0,0$1736,850,255,255,255$1737,850,0,0,0$1738,850,0,0,0$1739,850,0,0,0$1740,850,0,0,0$1741,850,0,0,0$1742,850,255,255,255$1743,850,0,0,0$1744,850,0,0,0$1745,850,0,0,0$1746,850,0,0,0$1747,850,0,0,0$1748,850,255,255,255$1749,850,0,0,0$1750,850,0,0,0$1751,850,0,0,0$1752,850,0,0,0$1753,850,0,0,0$1754,850,0,0,0$1755,850,0,0,0$1756,850,0,0,0$1757,850,0,0,0$1758,850,0,0,0$1759,850,0,0,0$1698,851,0,0,0$1699,851,0,0,0$1700,851,0,0,0$1701,851,0,0,0$1702,851,0,0,0$1703,851,0,0,0$1704,851,0,0,0$1705,851,0,0,0$1706,851,0,0,0$1707,851,255,255,255$1708,851,0,0,0$1709,851,0,0,0$1710,851,255,255,255$1711,851,255,255,255$1712,851,255,255,255$1713,851,255,255,255$1714,851,255,255,255$1715,851,255,255,255$1716,851,255,255,255$1717,851,255,255,255$1718,851,255,255,255$1719,851,255,255,255$1720,851,255,255,255$1721,851,255,255,255$1722,851,255,255,255$1723,851,255,255,255$1724,851,0,0,0$1725,851,0,0,0$1726,851,0,0,0$1727,851,0,0,0$1728,851,0,0,0$1729,851,0,0,0$1730,851,0,0,0$1731,851,255,255,255$1732,851,0,0,0$1733,851,0,0,0$1734,851,0,0,0$1735,851,0,0,0$1736,851,255,255,255$1737,851,0,0,0$1738,851,0,0,0$1739,851,0,0,0$1740,851,0,0,0$1741,851,0,0,0$1742,851,255,255,255$1743,851,0,0,0$1744,851,0,0,0$1745,851,0,0,0$1746,851,0,0,0$1747,851,0,0,0$1748,851,255,255,255$1749,851,0,0,0$1750,851,0,0,0$1751,851,0,0,0$1752,851,0,0,0$1753,851,0,0,0$1754,851,0,0,0$1755,851,0,0,0$1756,851,0,0,0$1757,851,0,0,0$1758,851,0,0,0$1759,851,0,0,0$1698,852,0,0,0$1699,852,0,0,0$1700,852,0,0,0$1701,852,0,0,0$1702,852,0,0,0$1703,852,0,0,0$1704,852,0,0,0$1705,852,0,0,0$1706,852,255,255,255$1707,852,255,255,255$1708,852,0,0,0$1709,852,0,0,0$1710,852,255,255,255$1711,852,0,0,0$1712,852,0,0,0$1713,852,0,0,0$1714,852,0,0,0$1715,852,0,0,0$1716,852,0,0,0$1717,852,0,0,0$1718,852,0,0,0$1719,852,0,0,0$1720,852,0,0,0$1721,852,0,0,0$1722,852,255,255,255$1723,852,255,255,255$1724,852,0,0,0$1725,852,0,0,0$1726,852,0,0,0$1727,852,0,0,0$1728,852,0,0,0$1729,852,0,0,0$1730,852,255,255,255$1731,852,255,255,255$1732,852,0,0,0$1733,852,0,0,0$1734,852,0,0,0$1735,852,0,0,0$1736,852,0,0,0$1737,852,255,255,255$1738,852,0,0,0$1739,852,0,0,0$1740,852,0,0,0$1741,852,0,0,0$1742,852,255,255,255$1743,852,0,0,0$1744,852,0,0,0$1745,852,0,0,0$1746,852,0,0,0$1747,852,0,0,0$1748,852,255,255,255$1749,852,0,0,0$1750,852,0,0,0$1751,852,0,0,0$1752,852,0,0,0$1753,852,0,0,0$1754,852,0,0,0$1755,852,0,0,0$1756,852,0,0,0$1757,852,0,0,0$1758,852,0,0,0$1759,852,0,0,0$1698,853,0,0,0$1699,853,0,0,0$1700,853,0,0,0$1701,853,0,0,0$1702,853,0,0,0$1703,853,0,0,0$1704,853,0,0,0$1705,853,0,0,0$1706,853,255,255,255$1707,853,0,0,0$1708,853,0,0,0$1709,853,0,0,0$1710,853,255,255,255$1711,853,0,0,0$1712,853,0,0,0$1713,853,0,0,0$1714,853,0,0,0$1715,853,0,0,0$1716,853,0,0,0$1717,853,0,0,0$1718,853,0,0,0$1719,853,0,0,0$1720,853,0,0,0$1721,853,0,0,0$1722,853,255,255,255$1723,853,255,255,255$1724,853,0,0,0$1725,853,0,0,0$1726,853,0,0,0$1727,853,0,0,0$1728,853,0,0,0$1729,853,0,0,0$1730,853,255,255,255$1731,853,0,0,0$1732,853,0,0,0$1733,853,0,0,0$1734,853,0,0,0$1735,853,0,0,0$1736,853,0,0,0$1737,853,255,255,255$1738,853,0,0,0$1739,853,0,0,0$1740,853,0,0,0$1741,853,255,255,255$1742,853,255,255,255$1743,853,0,0,0$1744,853,0,0,0$1745,853,0,0,0$1746,853,0,0,0$1747,853,0,0,0$1748,853,255,255,255$1749,853,0,0,0$1750,853,0,0,0$1751,853,0,0,0$1752,853,0,0,0$1753,853,0,0,0$1754,853,0,0,0$1755,853,0,0,0$1756,853,0,0,0$1757,853,0,0,0$1758,853,0,0,0$1759,853,0,0,0$1698,854,0,0,0$1699,854,0,0,0$1700,854,0,0,0$1701,854,0,0,0$1702,854,0,0,0$1703,854,0,0,0$1704,854,0,0,0$1705,854,0,0,0$1706,854,255,255,255$1707,854,0,0,0$1708,854,0,0,0$1709,854,0,0,0$1710,854,255,255,255$1711,854,0,0,0$1712,854,0,0,0$1713,854,0,0,0$1714,854,0,0,0$1715,854,0,0,0$1716,854,0,0,0$1717,854,0,0,0$1718,854,0,0,0$1719,854,0,0,0$1720,854,0,0,0$1721,854,0,0,0$1722,854,255,255,255$1723,854,255,255,255$1724,854,0,0,0$1725,854,0,0,0$1726,854,0,0,0$1727,854,0,0,0$1728,854,0,0,0$1729,854,255,255,255$1730,854,255,255,255$1731,854,0,0,0$1732,854,0,0,0$1733,854,255,255,255$1734,854,255,255,255$1735,854,255,255,255$1736,854,255,255,255$1737,854,255,255,255$1738,854,0,0,0$1739,854,0,0,0$1740,854,0,0,0$1741,854,255,255,255$1742,854,0,0,0$1743,854,0,0,0$1744,854,0,0,0$1745,854,0,0,0$1746,854,0,0,0$1747,854,255,255,255$1748,854,255,255,255$1749,854,0,0,0$1750,854,0,0,0$1751,854,0,0,0$1752,854,0,0,0$1753,854,0,0,0$1754,854,0,0,0$1755,854,0,0,0$1756,854,0,0,0$1757,854,0,0,0$1758,854,0,0,0$1759,854,0,0,0$1698,855,0,0,0$1699,855,0,0,0$1700,855,0,0,0$1701,855,0,0,0$1702,855,0,0,0$1703,855,0,0,0$1704,855,0,0,0$1705,855,0,0,0$1706,855,255,255,255$1707,855,0,0,0$1708,855,0,0,0$1709,855,0,0,0$1710,855,255,255,255$1711,855,0,0,0$1712,855,0,0,0$1713,855,0,0,0$1714,855,0,0,0$1715,855,0,0,0$1716,855,0,0,0$1717,855,0,0,0$1718,855,0,0,0$1719,855,0,0,0$1720,855,0,0,0$1721,855,0,0,0$1722,855,255,255,255$1723,855,255,255,255$1724,855,0,0,0$1725,855,0,0,0$1726,855,0,0,0$1727,855,0,0,0$1728,855,0,0,0$1729,855,255,255,255$1730,855,255,255,255$1731,855,255,255,255$1732,855,255,255,255$1733,855,0,0,0$1734,855,0,0,0$1735,855,0,0,0$1736,855,0,0,0$1737,855,0,0,0$1738,855,255,255,255$1739,855,0,0,0$1740,855,255,255,255$1741,855,255,255,255$1742,855,0,0,0$1743,855,0,0,0$1744,855,0,0,0$1745,855,0,0,0$1746,855,0,0,0$1747,855,255,255,255$1748,855,255,255,255$1749,855,0,0,0$1750,855,0,0,0$1751,855,0,0,0$1752,855,0,0,0$1753,855,0,0,0$1754,855,0,0,0$1755,855,0,0,0$1756,855,0,0,0$1757,855,0,0,0$1758,855,0,0,0$1759,855,0,0,0$1698,856,0,0,0$1699,856,0,0,0$1700,856,0,0,0$1701,856,0,0,0$1702,856,0,0,0$1703,856,0,0,0$1704,856,0,0,0$1705,856,255,255,255$1706,856,255,255,255$1707,856,0,0,0$1708,856,0,0,0$1709,856,0,0,0$1710,856,255,255,255$1711,856,0,0,0$1712,856,0,0,0$1713,856,0,0,0$1714,856,0,0,0$1715,856,0,0,0$1716,856,0,0,0$1717,856,0,0,0$1718,856,0,0,0$1719,856,0,0,0$1720,856,0,0,0$1721,856,0,0,0$1722,856,255,255,255$1723,856,255,255,255$1724,856,0,0,0$1725,856,0,0,0$1726,856,0,0,0$1727,856,0,0,0$1728,856,0,0,0$1729,856,255,255,255$1730,856,0,0,0$1731,856,0,0,0$1732,856,0,0,0$1733,856,0,0,0$1734,856,0,0,0$1735,856,0,0,0$1736,856,0,0,0$1737,856,0,0,0$1738,856,0,0,0$1739,856,0,0,0$1740,856,255,255,255$1741,856,0,0,0$1742,856,0,0,0$1743,856,0,0,0$1744,856,0,0,0$1745,856,0,0,0$1746,856,0,0,0$1747,856,255,255,255$1748,856,0,0,0$1749,856,0,0,0$1750,856,0,0,0$1751,856,0,0,0$1752,856,0,0,0$1753,856,0,0,0$1754,856,0,0,0$1755,856,0,0,0$1756,856,0,0,0$1757,856,0,0,0$1758,856,0,0,0$1759,856,0,0,0$1698,857,0,0,0$1699,857,0,0,0$1700,857,0,0,0$1701,857,0,0,0$1702,857,0,0,0$1703,857,0,0,0$1704,857,0,0,0$1705,857,255,255,255$1706,857,0,0,0$1707,857,0,0,0$1708,857,0,0,0$1709,857,0,0,0$1710,857,255,255,255$1711,857,255,255,255$1712,857,255,255,255$1713,857,255,255,255$1714,857,255,255,255$1715,857,255,255,255$1716,857,255,255,255$1717,857,255,255,255$1718,857,255,255,255$1719,857,255,255,255$1720,857,255,255,255$1721,857,255,255,255$1722,857,255,255,255$1723,857,255,255,255$1724,857,0,0,0$1725,857,0,0,0$1726,857,0,0,0$1727,857,0,0,0$1728,857,0,0,0$1729,857,0,0,0$1730,857,0,0,0$1731,857,0,0,0$1732,857,0,0,0$1733,857,0,0,0$1734,857,0,0,0$1735,857,0,0,0$1736,857,0,0,0$1737,857,0,0,0$1738,857,0,0,0$1739,857,255,255,255$1740,857,255,255,255$1741,857,0,0,0$1742,857,0,0,0$1743,857,0,0,0$1744,857,0,0,0$1745,857,0,0,0$1746,857,0,0,0$1747,857,255,255,255$1748,857,0,0,0$1749,857,0,0,0$1750,857,0,0,0$1751,857,0,0,0$1752,857,0,0,0$1753,857,0,0,0$1754,857,0,0,0$1755,857,0,0,0$1756,857,0,0,0$1757,857,0,0,0$1758,857,0,0,0$1759,857,0,0,0$1698,858,0,0,0$1699,858,0,0,0$1700,858,0,0,0$1701,858,0,0,0$1702,858,0,0,0$1703,858,0,0,0$1704,858,255,255,255$1705,858,255,255,255$1706,858,0,0,0$1707,858,0,0,0$1708,858,0,0,0$1709,858,0,0,0$1710,858,255,255,255$1711,858,0,0,0$1712,858,0,0,0$1713,858,0,0,0$1714,858,0,0,0$1715,858,0,0,0$1716,858,0,0,0$1717,858,0,0,0$1718,858,0,0,0$1719,858,0,0,0$1720,858,0,0,0$1721,858,0,0,0$1722,858,255,255,255$1723,858,255,255,255$1724,858,0,0,0$1725,858,0,0,0$1726,858,0,0,0$1727,858,0,0,0$1728,858,0,0,0$1729,858,0,0,0$1730,858,0,0,0$1731,858,0,0,0$1732,858,0,0,0$1733,858,0,0,0$1734,858,0,0,0$1735,858,0,0,0$1736,858,0,0,0$1737,858,0,0,0$1738,858,255,255,255$1739,858,255,255,255$1740,858,0,0,0$1741,858,0,0,0$1742,858,0,0,0$1743,858,255,255,255$1744,858,255,255,255$1745,858,255,255,255$1746,858,255,255,255$1747,858,255,255,255$1748,858,0,0,0$1749,858,0,0,0$1750,858,0,0,0$1751,858,0,0,0$1752,858,0,0,0$1753,858,0,0,0$1754,858,0,0,0$1755,858,0,0,0$1756,858,0,0,0$1757,858,0,0,0$1758,858,0,0,0$1759,858,0,0,0$1698,859,0,0,0$1699,859,0,0,0$1700,859,0,0,0$1701,859,0,0,0$1702,859,0,0,0$1703,859,0,0,0$1704,859,0,0,0$1705,859,0,0,0$1706,859,0,0,0$1707,859,0,0,0$1708,859,0,0,0$1709,859,0,0,0$1710,859,0,0,0$1711,859,0,0,0$1712,859,0,0,0$1713,859,0,0,0$1714,859,0,0,0$1715,859,0,0,0$1716,859,0,0,0$1717,859,0,0,0$1718,859,0,0,0$1719,859,0,0,0$1720,859,0,0,0$1721,859,0,0,0$1722,859,0,0,0$1723,859,0,0,0$1724,859,0,0,0$1725,859,0,0,0$1726,859,0,0,0$1727,859,0,0,0$1728,859,0,0,0$1729,859,0,0,0$1730,859,0,0,0$1731,859,0,0,0$1732,859,0,0,0$1733,859,0,0,0$1734,859,0,0,0$1735,859,0,0,0$1736,859,0,0,0$1737,859,0,0,0$1738,859,0,0,0$1739,859,0,0,0$1740,859,0,0,0$1741,859,0,0,0$1742,859,0,0,0$1743,859,0,0,0$1744,859,0,0,0$1745,859,0,0,0$1746,859,0,0,0$1747,859,0,0,0$1748,859,0,0,0$1749,859,0,0,0$1750,859,0,0,0$1751,859,0,0,0$1752,859,0,0,0$1753,859,0,0,0$1754,859,0,0,0$1755,859,0,0,0$1756,859,0,0,0$1757,859,0,0,0$1758,859,0,0,0$1759,859,0,0,0$1698,860,0,0,0$1699,860,0,0,0$1700,860,0,0,0$1701,860,0,0,0$1702,860,0,0,0$1703,860,0,0,0$1704,860,0,0,0$1705,860,0,0,0$1706,860,0,0,0$1707,860,0,0,0$1708,860,0,0,0$1709,860,0,0,0$1710,860,0,0,0$1711,860,0,0,0$1712,860,0,0,0$1713,860,0,0,0$1714,860,0,0,0$1715,860,0,0,0$1716,860,0,0,0$1717,860,0,0,0$1718,860,0,0,0$1719,860,0,0,0$1720,860,0,0,0$1721,860,0,0,0$1722,860,0,0,0$1723,860,0,0,0$1724,860,0,0,0$1725,860,0,0,0$1726,860,0,0,0$1727,860,0,0,0$1728,860,0,0,0$1729,860,0,0,0$1730,860,0,0,0$1731,860,0,0,0$1732,860,0,0,0$1733,860,0,0,0$1734,860,0,0,0$1735,860,0,0,0$1736,860,0,0,0$1737,860,0,0,0$1738,860,0,0,0$1739,860,0,0,0$1740,860,0,0,0$1741,860,0,0,0$1742,860,0,0,0$1743,860,0,0,0$1744,860,0,0,0$1745,860,0,0,0$1746,860,0,0,0$1747,860,0,0,0$1748,860,0,0,0$1749,860,0,0,0$1750,860,0,0,0$1751,860,0,0,0$1752,860,0,0,0$1753,860,0,0,0$1754,860,0,0,0$1755,860,0,0,0$1756,860,0,0,0$1757,860,0,0,0$1758,860,0,0,0$1759,860,0,0,0$1698,861,0,0,0$1699,861,0,0,0$1700,861,0,0,0$1701,861,0,0,0$1702,861,0,0,0$1703,861,0,0,0$1704,861,0,0,0$1705,861,0,0,0$1706,861,0,0,0$1707,861,0,0,0$1708,861,0,0,0$1709,861,0,0,0$1710,861,0,0,0$1711,861,0,0,0$1712,861,0,0,0$1713,861,0,0,0$1714,861,0,0,0$1715,861,0,0,0$1716,861,0,0,0$1717,861,0,0,0$1718,861,0,0,0$1719,861,0,0,0$1720,861,0,0,0$1721,861,0,0,0$1722,861,0,0,0$1723,861,0,0,0$1724,861,0,0,0$1725,861,0,0,0$1726,861,0,0,0$1727,861,0,0,0$1728,861,0,0,0$1729,861,0,0,0$1730,861,0,0,0$1731,861,0,0,0$1732,861,0,0,0$1733,861,0,0,0$1734,861,0,0,0$1735,861,0,0,0$1736,861,0,0,0$1737,861,0,0,0$1738,861,0,0,0$1739,861,0,0,0$1740,861,0,0,0$1741,861,0,0,0$1742,861,0,0,0$1743,861,0,0,0$1744,861,0,0,0$1745,861,0,0,0$1746,861,0,0,0$1747,861,0,0,0$1748,861,0,0,0$1749,861,0,0,0$1750,861,0,0,0$1751,861,0,0,0$1752,861,0,0,0$1753,861,0,0,0$1754,861,0,0,0$1755,861,0,0,0$1756,861,0,0,0$1757,861,0,0,0$1758,861,0,0,0$1759,861,0,0,0$1698,862,0,0,0$1699,862,0,0,0$1700,862,0,0,0$1701,862,0,0,0$1702,862,0,0,0$1703,862,0,0,0$1704,862,0,0,0$1705,862,0,0,0$1706,862,0,0,0$1707,862,0,0,0$1708,862,0,0,0$1709,862,0,0,0$1710,862,0,0,0$1711,862,0,0,0$1712,862,0,0,0$1713,862,0,0,0$1714,862,0,0,0$1715,862,0,0,0$1716,862,0,0,0$1717,862,0,0,0$1718,862,0,0,0$1719,862,0,0,0$1720,862,0,0,0$1721,862,0,0,0$1722,862,0,0,0$1723,862,0,0,0$1724,862,0,0,0$1725,862,0,0,0$1726,862,0,0,0$1727,862,0,0,0$1728,862,0,0,0$1729,862,0,0,0$1730,862,0,0,0$1731,862,0,0,0$1732,862,0,0,0$1733,862,0,0,0$1734,862,0,0,0$1735,862,0,0,0$1736,862,0,0,0$1737,862,0,0,0$1738,862,0,0,0$1739,862,0,0,0$1740,862,0,0,0$1741,862,0,0,0$1742,862,0,0,0$1743,862,0,0,0$1744,862,0,0,0$1745,862,0,0,0$1746,862,0,0,0$1747,862,0,0,0$1748,862,0,0,0$1749,862,0,0,0$1750,862,0,0,0$1751,862,0,0,0$1752,862,0,0,0$1753,862,0,0,0$1754,862,0,0,0$1755,862,0,0,0$1756,862,0,0,0$1757,862,0,0,0$1758,862,0,0,0$1759,862,0,0,0$1698,863,0,0,0$1699,863,0,0,0$1700,863,0,0,0$1701,863,0,0,0$1702,863,0,0,0$1703,863,0,0,0$1704,863,0,0,0$1705,863,0,0,0$1706,863,0,0,0$1707,863,0,0,0$1708,863,0,0,0$1709,863,0,0,0$1710,863,0,0,0$1711,863,0,0,0$1712,863,0,0,0$1713,863,0,0,0$1714,863,0,0,0$1715,863,0,0,0$1716,863,0,0,0$1717,863,0,0,0$1718,863,0,0,0$1719,863,0,0,0$1720,863,0,0,0$1721,863,0,0,0$1722,863,0,0,0$1723,863,0,0,0$1724,863,0,0,0$1725,863,0,0,0$1726,863,0,0,0$1727,863,0,0,0$1728,863,0,0,0$1729,863,0,0,0$1730,863,0,0,0$1731,863,0,0,0$1732,863,0,0,0$1733,863,0,0,0$1734,863,0,0,0$1735,863,0,0,0$1736,863,0,0,0$1737,863,0,0,0$1738,863,0,0,0$1739,863,0,0,0$1740,863,0,0,0$1741,863,0,0,0$1742,863,0,0,0$1743,863,0,0,0$1744,863,0,0,0$1745,863,0,0,0$1746,863,0,0,0$1747,863,0,0,0$1748,863,0,0,0$1749,863,0,0,0$1750,863,0,0,0$1751,863,0,0,0$1752,863,0,0,0$1753,863,0,0,0$1754,863,0,0,0$1755,863,0,0,0$1756,863,0,0,0$1757,863,0,0,0$1758,863,0,0,0$1759,863,0,0,0$1698,864,0,0,0$1699,864,0,0,0$1700,864,0,0,0$1701,864,0,0,0$1702,864,0,0,0$1703,864,0,0,0$1704,864,0,0,0$1705,864,0,0,0$1706,864,0,0,0$1707,864,0,0,0$1708,864,0,0,0$1709,864,0,0,0$1710,864,0,0,0$1711,864,0,0,0$1712,864,0,0,0$1713,864,0,0,0$1714,864,0,0,0$1715,864,0,0,0$1716,864,0,0,0$1717,864,0,0,0$1718,864,0,0,0$1719,864,0,0,0$1720,864,0,0,0$1721,864,0,0,0$1722,864,0,0,0$1723,864,0,0,0$1724,864,0,0,0$1725,864,0,0,0$1726,864,0,0,0$1727,864,0,0,0$1728,864,0,0,0$1729,864,0,0,0$1730,864,0,0,0$1731,864,0,0,0$1732,864,0,0,0$1733,864,0,0,0$1734,864,0,0,0$1735,864,0,0,0$1736,864,0,0,0$1737,864,0,0,0$1738,864,0,0,0$1739,864,0,0,0$1740,864,0,0,0$1741,864,0,0,0$1742,864,0,0,0$1743,864,0,0,0$1744,864,0,0,0$1745,864,0,0,0$1746,864,0,0,0$1747,864,0,0,0$1748,864,0,0,0$1749,864,0,0,0$1750,864,0,0,0$1751,864,0,0,0$1752,864,0,0,0$1753,864,0,0,0$1754,864,0,0,0$1755,864,0,0,0$1756,864,0,0,0$1757,864,0,0,0$1758,864,0,0,0$1759,864,0,0,0$1698,865,0,0,0$1699,865,0,0,0$1700,865,0,0,0$1701,865,0,0,0$1702,865,0,0,0$1703,865,0,0,0$1704,865,0,0,0$1705,865,0,0,0$1706,865,0,0,0$1707,865,0,0,0$1708,865,0,0,0$1709,865,0,0,0$1710,865,0,0,0$1711,865,0,0,0$1712,865,0,0,0$1713,865,0,0,0$1714,865,0,0,0$1715,865,0,0,0$1716,865,0,0,0$1717,865,0,0,0$1718,865,0,0,0$1719,865,0,0,0$1720,865,0,0,0$1721,865,0,0,0$1722,865,0,0,0$1723,865,0,0,0$1724,865,0,0,0$1725,865,0,0,0$1726,865,0,0,0$1727,865,0,0,0$1728,865,0,0,0$1729,865,0,0,0$1730,865,0,0,0$1731,865,0,0,0$1732,865,0,0,0$1733,865,0,0,0$1734,865,0,0,0$1735,865,0,0,0$1736,865,0,0,0$1737,865,0,0,0$1738,865,0,0,0$1739,865,0,0,0$1740,865,0,0,0$1741,865,0,0,0$1742,865,0,0,0$1743,865,0,0,0$1744,865,0,0,0$1745,865,0,0,0$1746,865,0,0,0$1747,865,0,0,0$1748,865,0,0,0$1749,865,0,0,0$1750,865,0,0,0$1751,865,0,0,0$1752,865,0,0,0$1753,865,0,0,0$1754,865,0,0,0$1755,865,0,0,0$1756,865,0,0,0$1757,865,0,0,0$1758,865,0,0,0$1759,865,0,0,0$1698,866,0,0,0$1699,866,0,0,0$1700,866,0,0,0$1701,866,0,0,0$1702,866,0,0,0$1703,866,0,0,0$1704,866,0,0,0$1705,866,0,0,0$1706,866,0,0,0$1707,866,0,0,0$1708,866,0,0,0$1709,866,0,0,0$1710,866,0,0,0$1711,866,0,0,0$1712,866,0,0,0$1713,866,0,0,0$1714,866,0,0,0$1715,866,0,0,0$1716,866,0,0,0$1717,866,0,0,0$1718,866,0,0,0$1719,866,0,0,0$1720,866,0,0,0$1721,866,0,0,0$1722,866,0,0,0$1723,866,0,0,0$1724,866,0,0,0$1725,866,0,0,0$1726,866,0,0,0$1727,866,0,0,0$1728,866,0,0,0$1729,866,0,0,0$1730,866,0,0,0$1731,866,0,0,0$1732,866,0,0,0$1733,866,0,0,0$1734,866,0,0,0$1735,866,0,0,0$1736,866,0,0,0$1737,866,0,0,0$1738,866,0,0,0$1739,866,0,0,0$1740,866,0,0,0$1741,866,0,0,0$1742,866,0,0,0$1743,866,0,0,0$1744,866,0,0,0$1745,866,0,0,0$1746,866,0,0,0$1747,866,0,0,0$1748,866,0,0,0$1749,866,0,0,0$1750,866,0,0,0$1751,866,0,0,0$1752,866,0,0,0$1753,866,0,0,0$1754,866,0,0,0$1755,866,0,0,0$1756,866,0,0,0$1757,866,0,0,0$1758,866,0,0,0$1759,866,0,0,0$1698,867,0,0,0$1699,867,0,0,0$1700,867,0,0,0$1701,867,0,0,0$1702,867,0,0,0$1703,867,0,0,0$1704,867,0,0,0$1705,867,0,0,0$1706,867,0,0,0$1707,867,0,0,0$1708,867,0,0,0$1709,867,0,0,0$1710,867,0,0,0$1711,867,0,0,0$1712,867,0,0,0$1713,867,0,0,0$1714,867,0,0,0$1715,867,0,0,0$1716,867,0,0,0$1717,867,0,0,0$1718,867,0,0,0$1719,867,0,0,0$1720,867,0,0,0$1721,867,0,0,0$1722,867,0,0,0$1723,867,0,0,0$1724,867,0,0,0$1725,867,0,0,0$1726,867,0,0,0$1727,867,0,0,0$1728,867,0,0,0$1729,867,0,0,0$1730,867,0,0,0$1731,867,0,0,0$1732,867,0,0,0$1733,867,0,0,0$1734,867,0,0,0$1735,867,0,0,0$1736,867,0,0,0$1737,867,0,0,0$1738,867,0,0,0$1739,867,0,0,0$1740,867,0,0,0$1741,867,0,0,0$1742,867,0,0,0$1743,867,0,0,0$1744,867,0,0,0$1745,867,0,0,0$1746,867,0,0,0$1747,867,0,0,0$1748,867,0,0,0$1749,867,0,0,0$1750,867,0,0,0$1751,867,0,0,0$1752,867,0,0,0$1753,867,0,0,0$1754,867,0,0,0$1755,867,0,0,0$1756,867,0,0,0$1757,867,0,0,0$1758,867,0,0,0$1759,867,0,0,0$1698,868,0,0,0$1699,868,0,0,0$1700,868,0,0,0$1701,868,0,0,0$1702,868,0,0,0$1703,868,0,0,0$1704,868,0,0,0$1705,868,0,0,0$1706,868,0,0,0$1707,868,0,0,0$1708,868,0,0,0$1709,868,0,0,0$1710,868,0,0,0$1711,868,0,0,0$1712,868,0,0,0$1713,868,0,0,0$1714,868,0,0,0$1715,868,0,0,0$1716,868,0,0,0$1717,868,0,0,0$1718,868,0,0,0$1719,868,0,0,0$1720,868,0,0,0$1721,868,0,0,0$1722,868,0,0,0$1723,868,0,0,0$1724,868,0,0,0$1725,868,0,0,0$1726,868,0,0,0$1727,868,0,0,0$1728,868,0,0,0$1729,868,0,0,0$1730,868,0,0,0$1731,868,0,0,0$1732,868,0,0,0$1733,868,0,0,0$1734,868,0,0,0$1735,868,0,0,0$1736,868,0,0,0$1737,868,0,0,0$1738,868,0,0,0$1739,868,0,0,0$1740,868,0,0,0$1741,868,0,0,0$1742,868,0,0,0$1743,868,0,0,0$1744,868,0,0,0$1745,868,0,0,0$1746,868,0,0,0$1747,868,0,0,0$1748,868,0,0,0$1749,868,0,0,0$1750,868,0,0,0$1751,868,0,0,0$1752,868,0,0,0$1753,868,0,0,0$1754,868,0,0,0$1755,868,0,0,0$1756,868,0,0,0$1757,868,0,0,0$1758,868,0,0,0$1759,868,0,0,0"); |
| | |
| | | /// <summary> |
| | | /// 是否登陆界面 |
| | | /// </summary> |
| | | /// <param name="isQQFastLogin">是否QQ快速登录</param> |
| | | /// <param name="wegameRect"></param> |
| | | /// <param name="changeMethodButtonRect"></param> |
| | | /// <returns></returns> |
| | | public static bool IsLoginPage(out ZTRectangle wegameRect,out ZTRectangle changeMethodButtonRect) |
| | | public static bool IsLoginPage(out bool isQQFastLogin, out ZTRectangle wegameRect, out ZTRectangle changeMethodButtonRect) |
| | | { |
| | | isQQFastLogin = false; |
| | | changeMethodButtonRect = ZTRectangle.Empty; |
| | | wegameRect = ZTRectangle.Empty; |
| | | //查找程序区域 |
| | |
| | | return false; |
| | | } |
| | | |
| | | //截图 |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (CVHelper.FindColorArrayForThreshold(out changeMethodButtonRect, image, loginByQQFastText, wegameRect)) |
| | | { |
| | | isQQFastLogin = false; |
| | | return true; |
| | | } |
| | | |
| | | if (CVHelper.FindColorArrayForThreshold(out changeMethodButtonRect, image, loginByAccount, wegameRect)) |
| | | { |
| | | isQQFastLogin = true; |
| | | return true; |
| | | } |
| | | |
| | |
| | | return CVHelper.FindColorArrayForThreshold(out dnfItemRect, image, DNFItem, wegameRect); |
| | | } |
| | | |
| | | //需要更新按钮 |
| | | private static ColorArray UpdateButton = ColorArray.FromThresholdString(200, "1470,892,0,0,0$1478,891,0,0,0$1479,891,0,0,0$1452,892,0,0,0$1454,892,0,0,0$1456,892,0,0,0$1458,892,0,0,0$1460,892,0,0,0$1462,892,0,0,0$1464,892,0,0,0$1466,892,0,0,0$1468,892,0,0,0$1478,892,0,0,0$1480,892,0,0,0$1490,892,0,0,0$1492,892,0,0,0$1494,892,0,0,0$1449,893,0,0,0$1450,893,0,0,0$1451,893,0,0,0$1452,893,0,0,0$1453,893,0,0,0$1454,893,0,0,0$1455,893,0,0,0$1456,893,0,0,0$1457,893,0,0,0$1458,893,0,0,0$1459,893,0,0,0$1460,893,0,0,0$1461,893,0,0,0$1462,893,0,0,0$1463,893,0,0,0$1464,893,0,0,0$1465,893,0,0,0$1466,893,0,0,0$1467,893,0,0,0$1468,893,0,0,0$1469,893,0,0,0$1470,893,0,0,0$1471,893,0,0,0$1472,893,0,0,0$1476,893,0,0,0$1481,893,0,0,0$1486,893,0,0,0$1487,893,0,0,0$1488,893,0,0,0$1489,893,0,0,0$1490,893,0,0,0$1491,893,0,0,0$1495,893,0,0,0$1472,894,0,0,0$1474,894,0,0,0$1476,894,0,0,0$1479,894,255,255,255$1482,894,0,0,0$1484,894,0,0,0$1486,894,0,0,0$1491,894,255,255,255$1492,894,255,255,255$1493,894,255,255,255$1496,894,0,0,0$1448,895,0,0,0$1449,895,0,0,0$1451,895,255,255,255$1452,895,255,255,255$1453,895,255,255,255$1454,895,255,255,255$1455,895,255,255,255$1456,895,255,255,255$1457,895,255,255,255$1458,895,255,255,255$1459,895,255,255,255$1460,895,255,255,255$1461,895,255,255,255$1462,895,255,255,255$1463,895,255,255,255$1464,895,255,255,255$1465,895,255,255,255$1466,895,255,255,255$1467,895,255,255,255$1468,895,255,255,255$1469,895,255,255,255$1470,895,255,255,255$1472,895,0,0,0$1473,895,0,0,0$1479,895,255,255,255$1480,895,255,255,255$1487,895,255,255,255$1488,895,255,255,255$1489,895,255,255,255$1490,895,255,255,255$1494,895,0,0,0$1495,895,0,0,0$1496,895,0,0,0$1450,896,0,0,0$1452,896,0,0,0$1454,896,0,0,0$1456,896,0,0,0$1458,896,0,0,0$1460,896,255,255,255$1461,896,255,255,255$1462,896,0,0,0$1464,896,0,0,0$1466,896,0,0,0$1468,896,0,0,0$1470,896,0,0,0$1472,896,0,0,0$1475,896,255,255,255$1476,896,255,255,255$1477,896,255,255,255$1478,896,255,255,255$1479,896,255,255,255$1480,896,255,255,255$1481,896,255,255,255$1482,896,255,255,255$1483,896,255,255,255$1484,896,255,255,255$1486,896,255,255,255$1487,896,255,255,255$1490,896,0,0,0$1492,896,0,0,0$1494,896,0,0,0$1450,897,0,0,0$1451,897,0,0,0$1452,897,0,0,0$1453,897,0,0,0$1454,897,0,0,0$1455,897,0,0,0$1456,897,0,0,0$1457,897,0,0,0$1458,897,0,0,0$1460,897,255,255,255$1461,897,255,255,255$1462,897,0,0,0$1463,897,0,0,0$1464,897,0,0,0$1465,897,0,0,0$1466,897,0,0,0$1467,897,0,0,0$1468,897,0,0,0$1469,897,0,0,0$1470,897,0,0,0$1471,897,0,0,0$1472,897,0,0,0$1473,897,0,0,0$1474,897,0,0,0$1478,897,0,0,0$1479,897,0,0,0$1480,897,0,0,0$1484,897,0,0,0$1485,897,0,0,0$1486,897,255,255,255$1487,897,255,255,255$1488,897,0,0,0$1489,897,0,0,0$1490,897,0,0,0$1491,897,0,0,0$1492,897,0,0,0$1450,898,0,0,0$1453,898,255,255,255$1454,898,255,255,255$1455,898,255,255,255$1456,898,255,255,255$1457,898,255,255,255$1458,898,255,255,255$1459,898,255,255,255$1460,898,255,255,255$1461,898,255,255,255$1462,898,255,255,255$1463,898,255,255,255$1464,898,255,255,255$1465,898,255,255,255$1466,898,255,255,255$1467,898,255,255,255$1468,898,255,255,255$1470,898,0,0,0$1474,898,0,0,0$1477,898,255,255,255$1480,898,0,0,0$1482,898,255,255,255$1484,898,0,0,0$1486,898,255,255,255$1487,898,255,255,255$1488,898,0,0,0$1450,899,0,0,0$1451,899,0,0,0$1453,899,255,255,255$1460,899,255,255,255$1461,899,255,255,255$1468,899,255,255,255$1470,899,0,0,0$1471,899,0,0,0$1473,899,0,0,0$1474,899,0,0,0$1475,899,0,0,0$1477,899,255,255,255$1479,899,0,0,0$1481,899,255,255,255$1482,899,255,255,255$1484,899,0,0,0$1485,899,0,0,0$1486,899,255,255,255$1487,899,255,255,255$1488,899,0,0,0$1489,899,0,0,0$1490,899,0,0,0$1491,899,0,0,0$1492,899,0,0,0$1493,899,0,0,0$1494,899,0,0,0$1495,899,0,0,0$1496,899,0,0,0$1450,900,0,0,0$1453,900,255,255,255$1456,900,0,0,0$1458,900,0,0,0$1460,900,255,255,255$1461,900,255,255,255$1462,900,0,0,0$1464,900,0,0,0$1466,900,0,0,0$1468,900,255,255,255$1470,900,0,0,0$1472,900,0,0,0$1474,900,0,0,0$1481,900,255,255,255$1484,900,0,0,0$1486,900,255,255,255$1487,900,255,255,255$1488,900,0,0,0$1490,900,0,0,0$1492,900,0,0,0$1494,900,0,0,0$1496,900,0,0,0$1450,901,0,0,0$1451,901,0,0,0$1453,901,255,255,255$1460,901,255,255,255$1461,901,255,255,255$1468,901,255,255,255$1470,901,0,0,0$1471,901,0,0,0$1472,901,0,0,0$1474,901,255,255,255$1475,901,255,255,255$1476,901,255,255,255$1477,901,255,255,255$1478,901,255,255,255$1479,901,255,255,255$1480,901,255,255,255$1481,901,255,255,255$1482,901,255,255,255$1483,901,255,255,255$1484,901,255,255,255$1486,901,255,255,255$1487,901,255,255,255$1488,901,255,255,255$1489,901,255,255,255$1490,901,255,255,255$1491,901,255,255,255$1492,901,255,255,255$1493,901,255,255,255$1494,901,255,255,255$1495,901,255,255,255$1496,901,0,0,0$1450,902,0,0,0$1453,902,255,255,255$1454,902,255,255,255$1455,902,255,255,255$1456,902,255,255,255$1457,902,255,255,255$1458,902,255,255,255$1459,902,255,255,255$1460,902,255,255,255$1461,902,255,255,255$1462,902,255,255,255$1463,902,255,255,255$1464,902,255,255,255$1465,902,255,255,255$1466,902,255,255,255$1467,902,255,255,255$1468,902,255,255,255$1470,902,0,0,0$1472,902,0,0,0$1479,902,255,255,255$1486,902,255,255,255$1487,902,255,255,255$1491,902,255,255,255$1492,902,255,255,255$1496,902,0,0,0$1450,903,0,0,0$1451,903,0,0,0$1453,903,255,255,255$1455,903,0,0,0$1456,903,0,0,0$1457,903,0,0,0$1458,903,0,0,0$1460,903,255,255,255$1461,903,255,255,255$1462,903,0,0,0$1463,903,0,0,0$1464,903,0,0,0$1465,903,0,0,0$1466,903,0,0,0$1468,903,255,255,255$1470,903,0,0,0$1471,903,0,0,0$1472,903,0,0,0$1473,903,0,0,0$1474,903,0,0,0$1475,903,0,0,0$1476,903,0,0,0$1477,903,0,0,0$1479,903,255,255,255$1481,903,0,0,0$1482,903,0,0,0$1483,903,0,0,0$1484,903,0,0,0$1485,903,0,0,0$1486,903,255,255,255$1487,903,255,255,255$1488,903,0,0,0$1489,903,0,0,0$1490,903,0,0,0$1492,903,255,255,255$1494,903,0,0,0$1495,903,0,0,0$1496,903,0,0,0$1450,904,0,0,0$1453,904,255,255,255$1456,904,0,0,0$1458,904,0,0,0$1460,904,255,255,255$1461,904,255,255,255$1462,904,0,0,0$1464,904,0,0,0$1466,904,0,0,0$1468,904,255,255,255$1470,904,0,0,0$1472,904,0,0,0$1474,904,0,0,0$1476,904,0,0,0$1479,904,255,255,255$1482,904,0,0,0$1484,904,0,0,0$1486,904,255,255,255$1487,904,255,255,255$1488,904,0,0,0$1490,904,0,0,0$1492,904,255,255,255$1494,904,0,0,0$1450,905,0,0,0$1451,905,0,0,0$1453,905,255,255,255$1460,905,255,255,255$1461,905,255,255,255$1468,905,255,255,255$1470,905,0,0,0$1471,905,0,0,0$1472,905,0,0,0$1474,905,255,255,255$1475,905,255,255,255$1476,905,255,255,255$1477,905,255,255,255$1478,905,255,255,255$1479,905,255,255,255$1480,905,255,255,255$1481,905,255,255,255$1482,905,255,255,255$1483,905,255,255,255$1484,905,255,255,255$1486,905,255,255,255$1487,905,255,255,255$1488,905,0,0,0$1489,905,0,0,0$1490,905,0,0,0$1492,905,255,255,255$1494,905,0,0,0$1450,906,0,0,0$1453,906,255,255,255$1454,906,255,255,255$1455,906,255,255,255$1456,906,255,255,255$1457,906,255,255,255$1458,906,255,255,255$1459,906,255,255,255$1460,906,255,255,255$1461,906,255,255,255$1462,906,255,255,255$1463,906,255,255,255$1464,906,255,255,255$1465,906,255,255,255$1466,906,255,255,255$1467,906,255,255,255$1468,906,255,255,255$1470,906,0,0,0$1472,906,0,0,0$1479,906,255,255,255$1486,906,255,255,255$1488,906,0,0,0$1490,906,0,0,0$1492,906,255,255,255$1494,906,0,0,0$1451,907,0,0,0$1452,907,0,0,0$1456,907,0,0,0$1457,907,0,0,0$1458,907,0,0,0$1460,907,255,255,255$1462,907,0,0,0$1463,907,0,0,0$1464,907,0,0,0$1465,907,0,0,0$1466,907,0,0,0$1467,907,0,0,0$1468,907,0,0,0$1469,907,0,0,0$1470,907,0,0,0$1471,907,0,0,0$1472,907,0,0,0$1473,907,0,0,0$1474,907,0,0,0$1479,907,255,255,255$1484,907,0,0,0$1486,907,255,255,255$1488,907,0,0,0$1489,907,0,0,0$1490,907,0,0,0$1492,907,255,255,255$1494,907,0,0,0$1452,908,0,0,0$1454,908,255,255,255$1455,908,255,255,255$1459,908,255,255,255$1460,908,255,255,255$1462,908,0,0,0$1464,908,0,0,0$1466,908,0,0,0$1468,908,0,0,0$1470,908,0,0,0$1474,908,0,0,0$1476,908,255,255,255$1479,908,255,255,255$1482,908,255,255,255$1484,908,0,0,0$1486,908,255,255,255$1488,908,0,0,0$1490,908,0,0,0$1492,908,255,255,255$1494,908,0,0,0$1452,909,0,0,0$1453,909,0,0,0$1455,909,255,255,255$1456,909,255,255,255$1459,909,255,255,255$1461,909,0,0,0$1462,909,0,0,0$1473,909,0,0,0$1476,909,255,255,255$1479,909,255,255,255$1483,909,255,255,255$1486,909,255,255,255$1488,909,0,0,0$1489,909,0,0,0$1490,909,0,0,0$1492,909,255,255,255$1494,909,0,0,0$1452,910,0,0,0$1454,910,0,0,0$1456,910,255,255,255$1457,910,255,255,255$1458,910,255,255,255$1459,910,255,255,255$1462,910,0,0,0$1464,910,0,0,0$1472,910,0,0,0$1475,910,255,255,255$1479,910,255,255,255$1483,910,255,255,255$1486,910,255,255,255$1488,910,0,0,0$1490,910,0,0,0$1492,910,255,255,255$1494,910,0,0,0$1449,911,0,0,0$1450,911,0,0,0$1451,911,0,0,0$1452,911,0,0,0$1453,911,0,0,0$1454,911,0,0,0$1456,911,255,255,255$1457,911,255,255,255$1458,911,255,255,255$1459,911,255,255,255$1462,911,0,0,0$1463,911,0,0,0$1464,911,0,0,0$1465,911,0,0,0$1466,911,0,0,0$1467,911,0,0,0$1468,911,0,0,0$1469,911,0,0,0$1470,911,0,0,0$1471,911,0,0,0$1472,911,0,0,0$1474,911,255,255,255$1477,911,0,0,0$1479,911,255,255,255$1481,911,0,0,0$1485,911,255,255,255$1486,911,255,255,255$1487,911,0,0,0$1488,911,0,0,0$1489,911,0,0,0$1490,911,0,0,0$1492,911,255,255,255$1494,911,0,0,0$1448,912,0,0,0$1450,912,0,0,0$1454,912,255,255,255$1455,912,255,255,255$1456,912,255,255,255$1459,912,255,255,255$1460,912,255,255,255$1461,912,255,255,255$1462,912,255,255,255$1470,912,0,0,0$1472,912,0,0,0$1476,912,0,0,0$1479,912,255,255,255$1482,912,0,0,0$1485,912,255,255,255$1488,912,0,0,0$1490,912,0,0,0$1492,912,255,255,255$1494,912,0,0,0$1448,913,0,0,0$1451,913,255,255,255$1452,913,255,255,255$1453,913,255,255,255$1454,913,255,255,255$1457,913,0,0,0$1458,913,0,0,0$1463,913,255,255,255$1464,913,255,255,255$1465,913,255,255,255$1466,913,255,255,255$1467,913,255,255,255$1468,913,255,255,255$1469,913,255,255,255$1470,913,255,255,255$1473,913,0,0,0$1474,913,0,0,0$1475,913,0,0,0$1477,913,255,255,255$1478,913,255,255,255$1479,913,255,255,255$1481,913,0,0,0$1482,913,0,0,0$1485,913,255,255,255$1487,913,0,0,0$1488,913,0,0,0$1489,913,0,0,0$1490,913,0,0,0$1492,913,255,255,255$1494,913,0,0,0$1448,914,0,0,0$1456,914,0,0,0$1458,914,0,0,0$1460,914,0,0,0$1462,914,0,0,0$1472,914,0,0,0$1476,914,0,0,0$1480,914,0,0,0$1482,914,0,0,0$1486,914,0,0,0$1490,914,0,0,0$1494,914,0,0,0$1449,915,0,0,0$1450,915,0,0,0$1451,915,0,0,0$1452,915,0,0,0$1453,915,0,0,0$1454,915,0,0,0$1455,915,0,0,0$1456,915,0,0,0$1460,915,0,0,0$1461,915,0,0,0$1462,915,0,0,0$1463,915,0,0,0$1464,915,0,0,0$1465,915,0,0,0$1466,915,0,0,0$1467,915,0,0,0$1468,915,0,0,0$1469,915,0,0,0$1470,915,0,0,0$1471,915,0,0,0$1472,915,0,0,0$1476,915,0,0,0$1477,915,0,0,0$1478,915,0,0,0$1479,915,0,0,0$1480,915,0,0,0$1483,915,0,0,0$1484,915,0,0,0$1485,915,0,0,0$1486,915,0,0,0$1490,915,0,0,0$1491,915,0,0,0$1492,915,0,0,0$1493,915,0,0,0$1494,915,0,0,0$1450,916,0,0,0$1452,916,0,0,0$1466,916,0,0,0$1468,916,0,0,0$1470,916,0,0,0$1478,916,0,0,0$1492,916,0,0,0"); |
| | | /// <summary> |
| | | /// 查找更新按钮 |
| | | /// </summary> |
| | | /// <param name="updateButtonRect"></param> |
| | | /// <returns></returns> |
| | | public static bool FindUpdateButton(out ZTRectangle updateButtonRect) |
| | | public static bool FindUpdateButton(out ZTRectangle updateButtonRect, Image<Rgb, byte> image) |
| | | { |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | //Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | ZTRectangle wegameRect = new ZTRectangle(0, 0, image.Width, image.Height); |
| | | return CVHelper.FindColorArrayForThreshold(out updateButtonRect, image, UpdateButton, wegameRect); |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="startButtonRect"></param> |
| | | /// <returns></returns> |
| | | public static bool FindStartGameButton(out ZTRectangle startButtonRect) |
| | | public static bool FindStartGameButton(out ZTRectangle startButtonRect,Image<Rgb,byte> image) |
| | | { |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | //Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | ZTRectangle wegameRect = new ZTRectangle(0, 0, image.Width, image.Height); |
| | | return CVHelper.FindColorArrayForThreshold(out startButtonRect, image, StartGameButton, wegameRect); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | { |
| | | None,//没移动 |
| | | AttackMove,//去攻击 |
| | | FindDoorMove,//去找门 |
| | | FindRoleMove,//找主角 |
| | | PickupMove//去拾取 |
| | | PickupMove,//去拾取 |
| | | ToNextGatePoint,//移至进门点 |
| | | ToLoopPoint,//移至巡逻点 |
| | | EntryDoor//进门 |
| | | } |
| | | } |
| | |
| | | runX = (runPixelPerSpeedX * speed) / 800; |
| | | |
| | | |
| | | RunThresold = stepX * RandomUtils.KeyPressDurationMax +runX * RandomUtils.KeyPressDurationMax; |
| | | RunThresold = stepX * RandomUtils.KeyPressDurationMax +runX * RandomUtils.KeyPressDurationMax+50; |
| | | |
| | | RandomMoveMillSecond = (Int32)(300 / stepX); |
| | | } |
| | |
| | | private SerialPortConnect connect; |
| | | private bool isfinalize = false; |
| | | |
| | | private Int32 receiveCounter = 0;//接收计数 |
| | | |
| | | private byte[] mouseBuffer = new byte[5];//鼠标移动缓存 |
| | | private byte[] keyBuffer = new byte[9];//键盘输入缓存 |
| | | |
| | |
| | | public HouseInfo(HousePathInfo houseInfo) |
| | | { |
| | | this.HousePathInfo = houseInfo; |
| | | InitPathInfo(); |
| | | InitPathInfo(null); |
| | | } |
| | | |
| | | public HouseInfo(Int32 index,MapType mapType,bool isEnd, HIDCode[] skills) |
| | | public HouseInfo(Int32 index,MapType mapType,bool isEnd, HIDCode[] skills,Int32[] withoutNumber) |
| | | { |
| | | this.Index = index; |
| | | this.MapType = mapType; |
| | |
| | | throw e; |
| | | } |
| | | |
| | | InitPathInfo(); |
| | | InitPathInfo(withoutNumber); |
| | | } |
| | | |
| | | |
| | |
| | | /// </summary> |
| | | public Int32 Index { get; set; } |
| | | |
| | | ///// <summary> |
| | | ///// 下一房间编号 |
| | | ///// </summary> |
| | | //public Int32 NextIndex { get; set; } |
| | | |
| | | ///// <summary> |
| | | ///// 判断下一房间是否打开索引 |
| | | ///// </summary> |
| | | //public Int32 OpenStatusDetectIndex { get; set; } |
| | | |
| | | private Direction[] doorDirection = null; |
| | | /// <summary> |
| | | /// 门的位置 |
| | | /// todo:cacel |
| | | /// </summary> |
| | | public Direction[] DoorDirection { get; set; } |
| | | public Direction[] DoorDirection |
| | | { |
| | | get |
| | | { |
| | | return doorDirection; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 技能队列 |
| | | /// </summary> |
| | | public SkillQueue Skills { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 房间的Y轴中间线,为负值,代表从游戏框向上移的像素值 |
| | | /// </summary> |
| | | public Int32 HouseCenterMoveLine { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否为结束房间 |
| | | /// </summary> |
| | |
| | | /// 定位字典 |
| | | /// </summary> |
| | | private Dictionary<Int32, ZTPoint> LocationDic = new Dictionary<int, ZTPoint>(); |
| | | |
| | | /// <summary> |
| | | /// 排除数字 |
| | | /// </summary> |
| | | public Dictionary<Int32, bool> WithoutNumber = new Dictionary<int, bool>(); |
| | | |
| | | /// <summary> |
| | | /// 屏幕坐标转地图坐标 |
| | |
| | | /// </summary> |
| | | /// <param name="start"></param> |
| | | /// <param name="end"></param> |
| | | public List<ZTPoint> FindPath(ref ZTPoint start, ref ZTPoint end) |
| | | public List<ZTPoint> FindPath(ZTPoint start, ZTPoint end) |
| | | { |
| | | |
| | | if (start.Equals(end)) |
| | | { |
| | | return new List<ZTPoint>(); |
| | |
| | | } |
| | | |
| | | //确保两点不在障碍物里 |
| | | bool inObstacle = EnsureNotInObstacle(ref start); |
| | | inObstacle = EnsureNotInObstacle(ref end) || inObstacle; |
| | | ZTPoint startPathGuid = ZTPoint.Empty; |
| | | ZTPoint endPathGuid = ZTPoint.Empty; |
| | | bool inObstacle = EnsureNotInObstacle(out startPathGuid, start); |
| | | inObstacle = EnsureNotInObstacle(out endPathGuid, end) || inObstacle; |
| | | |
| | | //查询两点间是否连通 |
| | | if (inObstacle && Iscross(start, end)) |
| | | if (inObstacle && Iscross(startPathGuid, endPathGuid)) |
| | | { |
| | | //两点直接连通 |
| | | return new List<ZTPoint>() { end }; |
| | | List<ZTPoint> points = new List<ZTPoint>(); |
| | | if (!start.Equals(startPathGuid)) |
| | | { |
| | | points.Add(startPathGuid); |
| | | } |
| | | if (!end.Equals(endPathGuid)) |
| | | { |
| | | points.Add(endPathGuid); |
| | | } |
| | | points.Add(end); |
| | | return points; |
| | | } |
| | | |
| | | |
| | | //把两点添加到寻路网中 |
| | | AddConnectivityEdgeToFinder(start, end); |
| | | AddConnectivityEdgeToFinder(startPathGuid, endPathGuid); |
| | | |
| | | //寻路,组合路径 |
| | | List<ZTPoint> paths = this.PathFinder.ShortestPath(start, end); |
| | | List<ZTPoint> paths = this.PathFinder.ShortestPath(startPathGuid, endPathGuid); |
| | | |
| | | //去除寻路网中 |
| | | RemoveStartAndEndVerticeFromFinder(start, end); |
| | | RemoveStartAndEndVerticeFromFinder(endPathGuid, endPathGuid); |
| | | |
| | | //生成的路径不包含第一个点,拟如果第一个点是路径引导,则加入路径 |
| | | if (!start.Equals(startPathGuid)) |
| | | { |
| | | paths.Insert(0, startPathGuid); |
| | | } |
| | | |
| | | //如果最后一个点是路径引导点,测加上终点 |
| | | if (!end.Equals(endPathGuid)) |
| | | { |
| | | paths.Add(end); |
| | | } |
| | | |
| | | return paths; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否在下一关进门点区域内 |
| | | /// </summary> |
| | | /// <param name="nextGatePoint"></param> |
| | | /// <param name="rolePosition"></param> |
| | | /// <returns></returns> |
| | | public bool IsInNextGatePoint(out ParametersPoint nextGatePoint, ZTPoint rolePosition) |
| | | { |
| | | nextGatePoint = ParametersPoint.Empty; |
| | | const Int32 X_OFFSET = 5; |
| | | const Int32 Y_OFFSET = 5; |
| | | for (Int32 i = 0; i < this.HousePathInfo.NextGates.Count; i++) |
| | | { |
| | | ParametersPoint nextGate = this.HousePathInfo.NextGates[i]; |
| | | if (GeoHelper.IsInRect(rolePosition, new ZTRectangle(nextGate.Point.X- X_OFFSET, nextGate.Point.Y- Y_OFFSET, nextGate.Point.X+ X_OFFSET, nextGate.Point.Y+ Y_OFFSET))) |
| | | { |
| | | nextGatePoint = nextGate; |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查找到下一关进门点 |
| | | /// 获取指定方向的进门点 |
| | | /// </summary> |
| | | /// <param name="rolePosition"></param> |
| | | /// <param name="dir"></param> |
| | | /// <returns></returns> |
| | | public List<ZTPoint> FindDoorPath(out Int32 doorIndex,ZTPoint rolePosition) |
| | | public ZTPoint GetNextGatePoint(Direction dir) |
| | | { |
| | | doorIndex = 0; |
| | | ZTPoint end = this.HousePathInfo.NextGates[0].Point; |
| | | return FindPath(ref rolePosition, ref end); |
| | | int dirNumber = 0; |
| | | switch (dir) |
| | | { |
| | | case Direction.Up: |
| | | dirNumber = 0; |
| | | break; |
| | | case Direction.Right: |
| | | dirNumber = 1; |
| | | break; |
| | | case Direction.Bottom: |
| | | dirNumber = 2; |
| | | break; |
| | | case Direction.Left: |
| | | dirNumber = 3; |
| | | break; |
| | | } |
| | | for (int i = 0; i < this.HousePathInfo.NextGates.Count; i++) |
| | | { |
| | | if (dirNumber == this.HousePathInfo.NextGates[i].Parameter) |
| | | { |
| | | return this.HousePathInfo.NextGates[i].Point; |
| | | } |
| | | } |
| | | throw new ArgumentOutOfRangeException("house index:" + this.Index.ToString() + ",direction :" + dir.ToString() + " is not exists!~"); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <returns></returns> |
| | | private bool Iscross(ZTPoint start, ZTPoint end) |
| | | { |
| | | |
| | | for (int i = 0; i < this.HousePathInfo.Obstacles.Count; i++) |
| | | { |
| | | Intersection interSection = GeometryHelper.IntersectionOf(new ZTLinePoint(start, end), this.HousePathInfo.Obstacles[i]); |
| | | Intersection interSection = GeoHelper.IntersectionOf(new ZTLinePoint(start, end), this.HousePathInfo.Obstacles[i]); |
| | | if (interSection != Intersection.None) |
| | | { |
| | | return false; |
| | |
| | | /// <summary> |
| | | /// 是否在障碍物里,如果在障碍物里则返回最近的不在障碍物点 |
| | | /// </summary> |
| | | /// <param name="point"></param> |
| | | /// <param name="pathGuidePoint"></param> |
| | | /// <returns>true:在障碍物,false:不在障碍物里</returns> |
| | | private bool EnsureNotInObstacle(ref ZTPoint point) |
| | | private bool EnsureNotInObstacle(out ZTPoint pathGuidePoint,ZTPoint source) |
| | | { |
| | | ZTPoint source = new ZTPoint(point.X, point.Y); |
| | | pathGuidePoint = ZTPoint.Empty; |
| | | |
| | | //点是否在障碍物里 |
| | | ZTPolygon obstacle = ZTPolygon.Empty; |
| | | for (int i = 0; i < this.HousePathInfo.Obstacles.Count; i++) |
| | | { |
| | | ZTPolygon temp = this.HousePathInfo.Obstacles[i]; |
| | | if (GeometryHelper.IntersectionOf(point, temp) != Intersection.None) |
| | | if (GeoHelper.IntersectionOf(source, temp) != Intersection.None) |
| | | { |
| | | obstacle = this.HousePathInfo.Obstacles[i]; |
| | | break; |
| | |
| | | if (obstacle.Equals(ZTPolygon.Empty)) |
| | | { |
| | | //不在障碍物内 |
| | | pathGuidePoint = source; |
| | | return false; |
| | | } |
| | | |
| | | //点是否在路径导引区域 |
| | | for (int i = 0; i < this.HousePathInfo.PathGuides.Count; i++) |
| | | { |
| | | ZTTargetPolygon temp = this.HousePathInfo.PathGuides[i]; |
| | | if (GeoHelper.IntersectionOf(source, temp.Polygon) != Intersection.None) |
| | | { |
| | | pathGuidePoint = temp.Target; |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | |
| | | //计算距离障碍物外最近的距离 |
| | | double distance = 0; |
| | |
| | | if (i == 0) |
| | | { |
| | | lastPoint = obstacle.Points[i]; |
| | | distance = GeometryHelper.GetPointDistance(lastPoint, point); |
| | | distance = GeoHelper.GetPointDistance(lastPoint, pathGuidePoint); |
| | | } |
| | | double lastDistance = GeometryHelper.GetNearestDistance(new ZTLinePoint(lastPoint, obstacle[i]), point); |
| | | double lastDistance = GeoHelper.GetNearestDistance(new ZTLinePoint(lastPoint, obstacle[i]), pathGuidePoint); |
| | | if (lastDistance < distance) |
| | | { |
| | | distance = lastDistance; |
| | |
| | | } |
| | | |
| | | //查找最近离开障碍物的点 |
| | | ZTPoint testPoint = new ZTPoint(point.X, point.Y); |
| | | Int32 maxDistance = Math.Max(Math.Max(point.X, this.HousePathInfo.Width - point.X), Math.Max(point.Y, this.HousePathInfo.Height - point.Y)); |
| | | ZTPoint testPoint = ZTPoint.Empty; |
| | | Int32 maxDistance = Math.Max(Math.Max(source.X, this.HousePathInfo.Width - source.X), Math.Max(source.Y, this.HousePathInfo.Height - source.Y)); |
| | | for (int i = (Int32)distance; i < maxDistance; i++) |
| | | { |
| | | //下 |
| | | if (point.Y + i <= this.HousePathInfo.Height) |
| | | if (source.Y + i <= this.HousePathInfo.Height) |
| | | { |
| | | testPoint = new ZTPoint(point.X, point.Y + i); |
| | | if (GeometryHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | testPoint = new ZTPoint(source.X, source.Y + i); |
| | | if (GeoHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | { |
| | | testPoint.Y += 10; |
| | | point = testPoint; |
| | | pathGuidePoint = testPoint; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | |
| | | //右 |
| | | if (point.X <= this.HousePathInfo.Width) |
| | | if (source.X <= this.HousePathInfo.Width) |
| | | { |
| | | testPoint = new ZTPoint(point.X + i, point.Y); |
| | | if (GeometryHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | testPoint = new ZTPoint(source.X + i, source.Y); |
| | | if (GeoHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | { |
| | | testPoint.X += 10; |
| | | point = testPoint; |
| | | pathGuidePoint = testPoint; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | //左 |
| | | if (point.X - i >= 0) |
| | | if (source.X - i >= 0) |
| | | { |
| | | testPoint = new ZTPoint(point.X - i, point.Y); |
| | | if (GeometryHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | testPoint = new ZTPoint(source.X - i, source.Y); |
| | | if (GeoHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | { |
| | | testPoint.X -= 10; |
| | | point = testPoint; |
| | | pathGuidePoint = testPoint; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | //上 |
| | | if (point.Y - i >= 0) |
| | | if (source.Y - i >= 0) |
| | | { |
| | | testPoint = new ZTPoint(point.X, point.Y - i); |
| | | if (GeometryHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | testPoint = new ZTPoint(source.X, source.Y - i); |
| | | if (GeoHelper.IntersectionOf(testPoint, obstacle) == Intersection.None) |
| | | { |
| | | testPoint.Y -= 10; |
| | | point = testPoint; |
| | | pathGuidePoint = testPoint; |
| | | break; |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// 初始化寻路器 |
| | | /// </summary> |
| | | private void InitPathInfo() |
| | | private void InitPathInfo(Int32[] withoutNumber) |
| | | { |
| | | this.PathFinder = new Dijkstra<ZTPoint>(); |
| | | |
| | |
| | | this.LocationDic.Add(pp.Parameter, pp.Point); |
| | | } |
| | | } |
| | | |
| | | //计算门朝向 |
| | | doorDirection = new Direction[this.HousePathInfo.NextGates.Count]; |
| | | for (Int32 i = 0; i < this.HousePathInfo.NextGates.Count; i++) |
| | | { |
| | | switch (this.HousePathInfo.NextGates[i].Parameter) |
| | | { |
| | | case 0: |
| | | doorDirection[i] = Direction.Up; |
| | | break; |
| | | case 1: |
| | | doorDirection[i] = Direction.Right; |
| | | break; |
| | | case 2: |
| | | doorDirection[i] = Direction.Bottom; |
| | | break; |
| | | case 3: |
| | | doorDirection[i] = Direction.Left; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (withoutNumber != null) |
| | | { |
| | | for (int i = 0; i < withoutNumber.Length; i++) |
| | | { |
| | | if (!this.WithoutNumber.ContainsKey(withoutNumber[i])) |
| | | { |
| | | this.WithoutNumber.Add(withoutNumber[i], true); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | point = this.HousePathInfo.FindPathPoints[i]; |
| | | if (Iscross(start, point)) |
| | | { |
| | | distance = (Int32)GeometryHelper.GetPointDistance(start, point); |
| | | distance = (Int32)GeoHelper.GetPointDistance(start, point); |
| | | this.PathFinder.AddEdge(start, point, distance); |
| | | } |
| | | |
| | | if (Iscross(end, point)) |
| | | { |
| | | distance = (Int32)GeometryHelper.GetPointDistance(end, point); |
| | | distance = (Int32)GeoHelper.GetPointDistance(end, point); |
| | | this.PathFinder.AddEdge(end, point, distance); |
| | | } |
| | | } |
| | |
| | | index = -1; |
| | | for (int i = 0; i < this.NextGates.Count; i++) |
| | | { |
| | | if (this.NextGates.Equals(point)) |
| | | if (this.NextGates[i].Equals(point)) |
| | | { |
| | | index = i; |
| | | return true; |
| | |
| | | index = -1; |
| | | for (int i = 0; i < this.PathGuides.Count; i++) |
| | | { |
| | | if (this.PathGuides.Equals(polygon)) |
| | | if (this.PathGuides[i].Equals(polygon)) |
| | | { |
| | | index = i; |
| | | return true; |
| | |
| | | |
| | | |
| | | #region json info |
| | | //凛冬 |
| | | private static readonly string[] Lingdong = new string[] { |
| | | //0 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //1 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //2 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //3 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //4 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //5 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //6 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //7 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //8 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //9 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //10 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //11 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //12 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //13 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //14 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //15 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //16 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //17 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //18 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}", |
| | | //19 |
| | | "{\"Width\":1350,\"Height\":901,\"Obstacles\":[],\"LocationPoints\":[],\"FindPathPoints\":[],\"LoopLines\":[],\"FindPathLines\":[]}" |
| | | }; |
| | | |
| | | |
| | | //卡勒特 |
| | | private static readonly string[] Kalete = new string[] { |
| | | //0: |
| | | "{\"Width\":896,\"Height\":686,\"Obstacles\":[{\"Points\":[{\"X\":2,\"Y\":320},{\"X\":460,\"Y\":310},{\"X\":493,\"Y\":319},{\"X\":556,\"Y\":334},{\"X\":668,\"Y\":344},{\"X\":759,\"Y\":330},{\"X\":873,\"Y\":308},{\"X\":893,\"Y\":300},{\"X\":891,\"Y\":1},{\"X\":2,\"Y\":3}],\"Length\":10},{\"Points\":[{\"X\":2,\"Y\":552},{\"X\":71,\"Y\":545},{\"X\":76,\"Y\":427},{\"X\":165,\"Y\":439},{\"X\":166,\"Y\":521},{\"X\":253,\"Y\":559},{\"X\":703,\"Y\":550},{\"X\":703,\"Y\":521},{\"X\":823,\"Y\":513},{\"X\":834,\"Y\":568},{\"X\":893,\"Y\":559},{\"X\":893,\"Y\":684},{\"X\":4,\"Y\":683}],\"Length\":13}],\"LocationPoints\":[{\"Point\":{\"X\":797,\"Y\":348},\"Parameter\":0},{\"Point\":{\"X\":671,\"Y\":348},\"Parameter\":1},{\"Point\":{\"X\":547,\"Y\":348},\"Parameter\":2},{\"Point\":{\"X\":423,\"Y\":348},\"Parameter\":3},{\"Point\":{\"X\":298,\"Y\":347},\"Parameter\":4},{\"Point\":{\"X\":172,\"Y\":348},\"Parameter\":5},{\"Point\":{\"X\":47,\"Y\":348},\"Parameter\":6}],\"FindPathPoints\":[{\"X\":51,\"Y\":392},{\"X\":438,\"Y\":418},{\"X\":775,\"Y\":400}],\"LoopLines\":[],\"FindPathLines\":[{\"P1\":{\"X\":51,\"Y\":392},\"P2\":{\"X\":775,\"Y\":400}},{\"P1\":{\"X\":438,\"Y\":418},\"P2\":{\"X\":775,\"Y\":400}},{\"P1\":{\"X\":438,\"Y\":418},\"P2\":{\"X\":51,\"Y\":392}}],\"NextGates\":[{\"Point\":{\"X\":778,\"Y\":346},\"Parameter\":1}],\"PathGuides\":[]}", |
| | | //1: |
| | | "{\"Width\":1349,\"Height\":900,\"Obstacles\":[{\"Points\":[{\"X\":124,\"Y\":324},{\"X\":760,\"Y\":310},{\"X\":956,\"Y\":414},{\"X\":1124,\"Y\":372},{\"X\":1113,\"Y\":301},{\"X\":1346,\"Y\":297},{\"X\":1345,\"Y\":3},{\"X\":0,\"Y\":2},{\"X\":0,\"Y\":375}],\"Length\":9},{\"Points\":[{\"X\":1342,\"Y\":675},{\"X\":1189,\"Y\":675},{\"X\":1191,\"Y\":713},{\"X\":949,\"Y\":712},{\"X\":867,\"Y\":772},{\"X\":840,\"Y\":897},{\"X\":1345,\"Y\":899}],\"Length\":7},{\"Points\":[{\"X\":651,\"Y\":668},{\"X\":459,\"Y\":671},{\"X\":446,\"Y\":641},{\"X\":247,\"Y\":641},{\"X\":236,\"Y\":608},{\"X\":155,\"Y\":612},{\"X\":150,\"Y\":549},{\"X\":295,\"Y\":541},{\"X\":376,\"Y\":557},{\"X\":472,\"Y\":592},{\"X\":473,\"Y\":609},{\"X\":627,\"Y\":606}],\"Length\":12},{\"Points\":[{\"X\":565,\"Y\":815},{\"X\":464,\"Y\":737},{\"X\":0,\"Y\":721},{\"X\":1,\"Y\":896},{\"X\":839,\"Y\":894},{\"X\":851,\"Y\":815}],\"Length\":6}],\"LocationPoints\":[{\"Point\":{\"X\":270,\"Y\":462},\"Parameter\":0},{\"Point\":{\"X\":732,\"Y\":461},\"Parameter\":1},{\"Point\":{\"X\":1192,\"Y\":461},\"Parameter\":2},{\"Point\":{\"X\":708,\"Y\":344},\"Parameter\":8},{\"Point\":{\"X\":706,\"Y\":197},\"Parameter\":9},{\"Point\":{\"X\":706,\"Y\":53},\"Parameter\":10}],\"FindPathPoints\":[{\"X\":1211,\"Y\":323},{\"X\":193,\"Y\":419},{\"X\":1251,\"Y\":446},{\"X\":746,\"Y\":498},{\"X\":769,\"Y\":657},{\"X\":111,\"Y\":660}],\"LoopLines\":[{\"P1\":{\"X\":193,\"Y\":419},\"P2\":{\"X\":1251,\"Y\":446}}],\"FindPathLines\":[{\"P1\":{\"X\":193,\"Y\":419},\"P2\":{\"X\":746,\"Y\":498}},{\"P1\":{\"X\":746,\"Y\":498},\"P2\":{\"X\":1251,\"Y\":446}},{\"P1\":{\"X\":746,\"Y\":498},\"P2\":{\"X\":769,\"Y\":657}},{\"P1\":{\"X\":769,\"Y\":657},\"P2\":{\"X\":1251,\"Y\":446}},{\"P1\":{\"X\":769,\"Y\":657},\"P2\":{\"X\":193,\"Y\":419}},{\"P1\":{\"X\":1251,\"Y\":446},\"P2\":{\"X\":1211,\"Y\":323}},{\"P1\":{\"X\":769,\"Y\":657},\"P2\":{\"X\":1211,\"Y\":323}},{\"P1\":{\"X\":111,\"Y\":660},\"P2\":{\"X\":193,\"Y\":419}},{\"P1\":{\"X\":111,\"Y\":660},\"P2\":{\"X\":769,\"Y\":657}}]}", |
| | | string.Empty,//2 |
| | | //3: |
| | | "{\"Width\":1348,\"Height\":900,\"Obstacles\":[{\"Points\":[{\"X\":0,\"Y\":313},{\"X\":927,\"Y\":295},{\"X\":963,\"Y\":334},{\"X\":1275,\"Y\":314},{\"X\":1343,\"Y\":300},{\"X\":1343,\"Y\":2},{\"X\":1,\"Y\":1}],\"Length\":7},{\"Points\":[{\"X\":878,\"Y\":366},{\"X\":750,\"Y\":369},{\"X\":733,\"Y\":354},{\"X\":740,\"Y\":325},{\"X\":876,\"Y\":324}],\"Length\":5},{\"Points\":[{\"X\":1345,\"Y\":551},{\"X\":1170,\"Y\":587},{\"X\":1173,\"Y\":643},{\"X\":1275,\"Y\":713},{\"X\":1346,\"Y\":706}],\"Length\":5},{\"Points\":[{\"X\":285,\"Y\":307},{\"X\":312,\"Y\":576},{\"X\":195,\"Y\":626},{\"X\":208,\"Y\":691},{\"X\":153,\"Y\":723},{\"X\":150,\"Y\":897},{\"X\":2,\"Y\":896},{\"X\":0,\"Y\":319}],\"Length\":8},{\"Points\":[{\"X\":156,\"Y\":752},{\"X\":369,\"Y\":714},{\"X\":793,\"Y\":734},{\"X\":932,\"Y\":822},{\"X\":1032,\"Y\":814},{\"X\":1058,\"Y\":896},{\"X\":159,\"Y\":894}],\"Length\":7},{\"Points\":[{\"X\":1037,\"Y\":824},{\"X\":1243,\"Y\":820},{\"X\":1229,\"Y\":748},{\"X\":1269,\"Y\":718},{\"X\":1344,\"Y\":709},{\"X\":1345,\"Y\":896},{\"X\":1064,\"Y\":897}],\"Length\":7}],\"LocationPoints\":[{\"Point\":{\"X\":1108,\"Y\":329},\"Parameter\":8},{\"Point\":{\"X\":1107,\"Y\":182},\"Parameter\":9},{\"Point\":{\"X\":1107,\"Y\":37},\"Parameter\":10}],\"FindPathPoints\":[{\"X\":358,\"Y\":342},{\"X\":378,\"Y\":505},{\"X\":1270,\"Y\":415},{\"X\":1038,\"Y\":650}],\"LoopLines\":[{\"P1\":{\"X\":358,\"Y\":342},\"P2\":{\"X\":1038,\"Y\":650}}],\"FindPathLines\":[{\"P1\":{\"X\":358,\"Y\":342},\"P2\":{\"X\":1270,\"Y\":415}},{\"P1\":{\"X\":1270,\"Y\":415},\"P2\":{\"X\":1038,\"Y\":650}},{\"P1\":{\"X\":1270,\"Y\":415},\"P2\":{\"X\":378,\"Y\":505}},{\"P1\":{\"X\":378,\"Y\":505},\"P2\":{\"X\":358,\"Y\":342}},{\"P1\":{\"X\":378,\"Y\":505},\"P2\":{\"X\":1038,\"Y\":650}}]}", |
| | | string.Empty,//4 |
| | | string.Empty,//5 |
| | | //6: |
| | | "{\"Width\":1350,\"Height\":900,\"Obstacles\":[{\"Points\":[{\"X\":325,\"Y\":425},{\"X\":437,\"Y\":447},{\"X\":567,\"Y\":437},{\"X\":565,\"Y\":395},{\"X\":631,\"Y\":398},{\"X\":675,\"Y\":410},{\"X\":809,\"Y\":405},{\"X\":810,\"Y\":375},{\"X\":933,\"Y\":329},{\"X\":1279,\"Y\":303},{\"X\":1345,\"Y\":367},{\"X\":1345,\"Y\":5},{\"X\":1,\"Y\":6}],\"Length\":13},{\"Points\":[{\"X\":1347,\"Y\":481},{\"X\":1246,\"Y\":501},{\"X\":1235,\"Y\":551},{\"X\":1188,\"Y\":617},{\"X\":1192,\"Y\":669},{\"X\":1348,\"Y\":673}],\"Length\":6},{\"Points\":[{\"X\":1349,\"Y\":701},{\"X\":791,\"Y\":719},{\"X\":803,\"Y\":659},{\"X\":396,\"Y\":665},{\"X\":361,\"Y\":723},{\"X\":2,\"Y\":711},{\"X\":0,\"Y\":896},{\"X\":1345,\"Y\":898}],\"Length\":8}],\"LocationPoints\":[{\"Point\":{\"X\":1080,\"Y\":425},\"Parameter\":4},{\"Point\":{\"X\":592,\"Y\":427},\"Parameter\":5},{\"Point\":{\"X\":103,\"Y\":427},\"Parameter\":6}],\"FindPathPoints\":[{\"X\":174,\"Y\":537},{\"X\":1197,\"Y\":430},{\"X\":602,\"Y\":502}],\"LoopLines\":[{\"P1\":{\"X\":174,\"Y\":537},\"P2\":{\"X\":1197,\"Y\":430}}],\"FindPathLines\":[{\"P1\":{\"X\":174,\"Y\":537},\"P2\":{\"X\":602,\"Y\":502}},{\"P1\":{\"X\":602,\"Y\":502},\"P2\":{\"X\":1197,\"Y\":430}}]}", |
| | | //7: |
| | | "{\"Width\":1350,\"Height\":900,\"Obstacles\":[{\"Points\":[{\"X\":31,\"Y\":409},{\"X\":127,\"Y\":312},{\"X\":505,\"Y\":351},{\"X\":570,\"Y\":394},{\"X\":733,\"Y\":418},{\"X\":888,\"Y\":410},{\"X\":896,\"Y\":334},{\"X\":1066,\"Y\":328},{\"X\":1100,\"Y\":401},{\"X\":1315,\"Y\":425},{\"X\":1349,\"Y\":427},{\"X\":1343,\"Y\":1},{\"X\":4,\"Y\":4},{\"X\":1,\"Y\":341}],\"Length\":14},{\"Points\":[{\"X\":467,\"Y\":896},{\"X\":472,\"Y\":733},{\"X\":325,\"Y\":676},{\"X\":178,\"Y\":636},{\"X\":0,\"Y\":625},{\"X\":2,\"Y\":900}],\"Length\":6}],\"LocationPoints\":[{\"Point\":{\"X\":270,\"Y\":462},\"Parameter\":0},{\"Point\":{\"X\":730,\"Y\":463},\"Parameter\":1},{\"Point\":{\"X\":1191,\"Y\":463},\"Parameter\":2},{\"Point\":{\"X\":1078,\"Y\":499},\"Parameter\":4},{\"Point\":{\"X\":589,\"Y\":497},\"Parameter\":5},{\"Point\":{\"X\":100,\"Y\":498},\"Parameter\":6}],\"FindPathPoints\":[{\"X\":146,\"Y\":440},{\"X\":1226,\"Y\":720}],\"LoopLines\":[{\"P1\":{\"X\":146,\"Y\":440},\"P2\":{\"X\":1226,\"Y\":720}}],\"FindPathLines\":[]}", |
| | | //8: |
| | | "{\"Width\":1686,\"Height\":720,\"Obstacles\":[{\"Points\":[{\"X\":2,\"Y\":420},{\"X\":130,\"Y\":439},{\"X\":311,\"Y\":462},{\"X\":313,\"Y\":400},{\"X\":221,\"Y\":319},{\"X\":453,\"Y\":288},{\"X\":632,\"Y\":5},{\"X\":4,\"Y\":2}],\"Length\":8},{\"Points\":[{\"X\":574,\"Y\":104},{\"X\":743,\"Y\":319},{\"X\":961,\"Y\":306},{\"X\":1014,\"Y\":343},{\"X\":1099,\"Y\":326},{\"X\":1165,\"Y\":369},{\"X\":1534,\"Y\":365},{\"X\":1684,\"Y\":309},{\"X\":1680,\"Y\":4},{\"X\":633,\"Y\":5}],\"Length\":10},{\"Points\":[{\"X\":1682,\"Y\":470},{\"X\":1540,\"Y\":514},{\"X\":1442,\"Y\":590},{\"X\":1173,\"Y\":641},{\"X\":858,\"Y\":670},{\"X\":814,\"Y\":708},{\"X\":1681,\"Y\":715}],\"Length\":7}],\"LocationPoints\":[{\"Point\":{\"X\":277,\"Y\":501},\"Parameter\":0},{\"Point\":{\"X\":735,\"Y\":502},\"Parameter\":1},{\"Point\":{\"X\":1196,\"Y\":502},\"Parameter\":2},{\"Point\":{\"X\":1418,\"Y\":390},\"Parameter\":4},{\"Point\":{\"X\":930,\"Y\":387},\"Parameter\":5},{\"Point\":{\"X\":441,\"Y\":388},\"Parameter\":6}],\"FindPathPoints\":[{\"X\":186,\"Y\":483},{\"X\":1565,\"Y\":393},{\"X\":549,\"Y\":448}],\"LoopLines\":[{\"P1\":{\"X\":186,\"Y\":483},\"P2\":{\"X\":1565,\"Y\":393}}],\"FindPathLines\":[{\"P1\":{\"X\":186,\"Y\":483},\"P2\":{\"X\":549,\"Y\":448}},{\"P1\":{\"X\":549,\"Y\":448},\"P2\":{\"X\":1565,\"Y\":393}}]}", |
| | | //9: |
| | | "{\"Width\":1688,\"Height\":720,\"Obstacles\":[{\"Points\":[{\"X\":3,\"Y\":333},{\"X\":390,\"Y\":305},{\"X\":600,\"Y\":389},{\"X\":746,\"Y\":389},{\"X\":766,\"Y\":327},{\"X\":890,\"Y\":334},{\"X\":914,\"Y\":247},{\"X\":1092,\"Y\":225},{\"X\":1305,\"Y\":396},{\"X\":1489,\"Y\":346},{\"X\":1684,\"Y\":411},{\"X\":1683,\"Y\":3},{\"X\":3,\"Y\":3}],\"Length\":13},{\"Points\":[{\"X\":389,\"Y\":671},{\"X\":398,\"Y\":614},{\"X\":868,\"Y\":605},{\"X\":1037,\"Y\":631},{\"X\":1125,\"Y\":589},{\"X\":1536,\"Y\":632},{\"X\":1678,\"Y\":682},{\"X\":1682,\"Y\":715},{\"X\":378,\"Y\":715}],\"Length\":9}],\"LocationPoints\":[{\"Point\":{\"X\":274,\"Y\":500},\"Parameter\":0},{\"Point\":{\"X\":738,\"Y\":502},\"Parameter\":1},{\"Point\":{\"X\":1200,\"Y\":501},\"Parameter\":2},{\"Point\":{\"X\":1658,\"Y\":503},\"Parameter\":3}],\"FindPathPoints\":[{\"X\":216,\"Y\":456},{\"X\":1545,\"Y\":466},{\"X\":985,\"Y\":515}],\"LoopLines\":[{\"P1\":{\"X\":216,\"Y\":456},\"P2\":{\"X\":1545,\"Y\":466}}],\"FindPathLines\":[{\"P1\":{\"X\":216,\"Y\":456},\"P2\":{\"X\":985,\"Y\":515}},{\"P1\":{\"X\":985,\"Y\":515},\"P2\":{\"X\":1545,\"Y\":466}}]}", |
| | | string.Empty,//10 |
| | | //11: |
| | | "{\"Width\":1686,\"Height\":720,\"Obstacles\":[{\"Points\":[{\"X\":1678,\"Y\":410},{\"X\":1576,\"Y\":341},{\"X\":1258,\"Y\":344},{\"X\":1241,\"Y\":379},{\"X\":1153,\"Y\":380},{\"X\":849,\"Y\":377},{\"X\":765,\"Y\":353},{\"X\":598,\"Y\":352},{\"X\":498,\"Y\":387},{\"X\":0,\"Y\":360},{\"X\":1,\"Y\":1},{\"X\":1681,\"Y\":2}],\"Length\":12},{\"Points\":[{\"X\":1566,\"Y\":714},{\"X\":1502,\"Y\":662},{\"X\":875,\"Y\":654},{\"X\":780,\"Y\":660},{\"X\":550,\"Y\":636},{\"X\":365,\"Y\":614},{\"X\":183,\"Y\":626},{\"X\":72,\"Y\":636},{\"X\":10,\"Y\":655},{\"X\":0,\"Y\":715}],\"Length\":10}],\"LocationPoints\":[{\"Point\":{\"X\":929,\"Y\":450},\"Parameter\":5},{\"Point\":{\"X\":440,\"Y\":452},\"Parameter\":6},{\"Point\":{\"X\":1416,\"Y\":451},\"Parameter\":4}],\"FindPathPoints\":[{\"X\":71,\"Y\":469},{\"X\":1529,\"Y\":462},{\"X\":826,\"Y\":576}],\"LoopLines\":[{\"P1\":{\"X\":71,\"Y\":469},\"P2\":{\"X\":1529,\"Y\":462}}],\"FindPathLines\":[{\"P1\":{\"X\":71,\"Y\":469},\"P2\":{\"X\":826,\"Y\":576}},{\"P1\":{\"X\":826,\"Y\":576},\"P2\":{\"X\":1529,\"Y\":462}}]}", |
| | | //12: |
| | | "{\"Width\":2024,\"Height\":720,\"Obstacles\":[{\"Points\":[{\"X\":795,\"Y\":351},{\"X\":1897,\"Y\":323},{\"X\":2019,\"Y\":271},{\"X\":2019,\"Y\":4},{\"X\":1,\"Y\":2},{\"X\":3,\"Y\":347},{\"X\":111,\"Y\":400},{\"X\":200,\"Y\":377},{\"X\":294,\"Y\":344},{\"X\":560,\"Y\":351},{\"X\":623,\"Y\":381}],\"Length\":11},{\"Points\":[{\"X\":2020,\"Y\":614},{\"X\":1464,\"Y\":615},{\"X\":1137,\"Y\":589},{\"X\":895,\"Y\":606},{\"X\":855,\"Y\":715},{\"X\":2020,\"Y\":716}],\"Length\":6},{\"Points\":[{\"X\":525,\"Y\":715},{\"X\":451,\"Y\":589},{\"X\":156,\"Y\":603},{\"X\":2,\"Y\":495},{\"X\":2,\"Y\":716}],\"Length\":5}],\"LocationPoints\":[{\"Point\":{\"X\":270,\"Y\":461},\"Parameter\":0},{\"Point\":{\"X\":731,\"Y\":461},\"Parameter\":1},{\"Point\":{\"X\":1192,\"Y\":462},\"Parameter\":2},{\"Point\":{\"X\":1650,\"Y\":463},\"Parameter\":3},{\"Point\":{\"X\":1278,\"Y\":347},\"Parameter\":5},{\"Point\":{\"X\":788,\"Y\":347},\"Parameter\":6},{\"Point\":{\"X\":301,\"Y\":346},\"Parameter\":7},{\"Point\":{\"X\":628,\"Y\":175},\"Parameter\":8},{\"Point\":{\"X\":627,\"Y\":28},\"Parameter\":9}],\"FindPathPoints\":[{\"X\":201,\"Y\":457},{\"X\":1894,\"Y\":423},{\"X\":699,\"Y\":513}],\"LoopLines\":[{\"P1\":{\"X\":201,\"Y\":457},\"P2\":{\"X\":1894,\"Y\":423}}],\"FindPathLines\":[{\"P1\":{\"X\":201,\"Y\":457},\"P2\":{\"X\":699,\"Y\":513}},{\"P1\":{\"X\":699,\"Y\":513},\"P2\":{\"X\":1894,\"Y\":423}}]}", |
| | | //13: |
| | | "{\"Width\":2024,\"Height\":900,\"Obstacles\":[{\"Points\":[{\"X\":1607,\"Y\":189},{\"X\":1761,\"Y\":360},{\"X\":2022,\"Y\":405},{\"X\":2022,\"Y\":1},{\"X\":1565,\"Y\":1}],\"Length\":5},{\"Points\":[{\"X\":1350,\"Y\":400},{\"X\":1605,\"Y\":186},{\"X\":1562,\"Y\":1},{\"X\":121,\"Y\":1},{\"X\":335,\"Y\":410},{\"X\":385,\"Y\":402}],\"Length\":6},{\"Points\":[{\"X\":2017,\"Y\":719},{\"X\":1228,\"Y\":729},{\"X\":1137,\"Y\":666},{\"X\":667,\"Y\":689},{\"X\":417,\"Y\":671},{\"X\":123,\"Y\":649},{\"X\":121,\"Y\":891},{\"X\":2020,\"Y\":896}],\"Length\":8},{\"Points\":[{\"X\":294,\"Y\":564},{\"X\":121,\"Y\":566},{\"X\":122,\"Y\":19},{\"X\":322,\"Y\":394},{\"X\":233,\"Y\":457}],\"Length\":5},{\"Points\":[{\"X\":1,\"Y\":2},{\"X\":127,\"Y\":3},{\"X\":128,\"Y\":896},{\"X\":0,\"Y\":894}],\"Length\":4}],\"LocationPoints\":[{\"Point\":{\"X\":537,\"Y\":496},\"Parameter\":0},{\"Point\":{\"X\":997,\"Y\":497},\"Parameter\":1},{\"Point\":{\"X\":1458,\"Y\":497},\"Parameter\":2},{\"Point\":{\"X\":1918,\"Y\":496},\"Parameter\":3},{\"Point\":{\"X\":777,\"Y\":484},\"Parameter\":6},{\"Point\":{\"X\":1266,\"Y\":484},\"Parameter\":5},{\"Point\":{\"X\":1753,\"Y\":485},\"Parameter\":4}],\"FindPathPoints\":[{\"X\":425,\"Y\":495},{\"X\":1885,\"Y\":496},{\"X\":1294,\"Y\":541}],\"LoopLines\":[{\"P1\":{\"X\":425,\"Y\":495},\"P2\":{\"X\":1885,\"Y\":496}}],\"FindPathLines\":[{\"P1\":{\"X\":425,\"Y\":495},\"P2\":{\"X\":1294,\"Y\":541}},{\"P1\":{\"X\":1294,\"Y\":541},\"P2\":{\"X\":1885,\"Y\":496}}]}", |
| | | //14: |
| | | "{\"Width\":1687,\"Height\":901,\"Obstacles\":[{\"Points\":[{\"X\":98,\"Y\":310},{\"X\":408,\"Y\":314},{\"X\":418,\"Y\":425},{\"X\":530,\"Y\":416},{\"X\":593,\"Y\":451},{\"X\":721,\"Y\":452},{\"X\":762,\"Y\":449},{\"X\":783,\"Y\":337},{\"X\":840,\"Y\":302},{\"X\":1207,\"Y\":300},{\"X\":1239,\"Y\":321},{\"X\":1418,\"Y\":320},{\"X\":1584,\"Y\":378},{\"X\":1679,\"Y\":377},{\"X\":1681,\"Y\":4},{\"X\":4,\"Y\":4},{\"X\":0,\"Y\":436}],\"Length\":17},{\"Points\":[{\"X\":1681,\"Y\":717},{\"X\":1319,\"Y\":706},{\"X\":1165,\"Y\":653},{\"X\":1053,\"Y\":654},{\"X\":835,\"Y\":609},{\"X\":732,\"Y\":624},{\"X\":680,\"Y\":667},{\"X\":0,\"Y\":650},{\"X\":0,\"Y\":898},{\"X\":1682,\"Y\":898}],\"Length\":10}],\"LocationPoints\":[{\"Point\":{\"X\":278,\"Y\":481},\"Parameter\":0},{\"Point\":{\"X\":739,\"Y\":481},\"Parameter\":1},{\"Point\":{\"X\":1200,\"Y\":479},\"Parameter\":2},{\"Point\":{\"X\":1656,\"Y\":480},\"Parameter\":3}],\"FindPathPoints\":[{\"X\":140,\"Y\":474},{\"X\":1453,\"Y\":466},{\"X\":763,\"Y\":520},{\"X\":373,\"Y\":565}],\"LoopLines\":[{\"P1\":{\"X\":140,\"Y\":474},\"P2\":{\"X\":1453,\"Y\":466}}],\"FindPathLines\":[{\"P1\":{\"X\":140,\"Y\":474},\"P2\":{\"X\":373,\"Y\":565}},{\"P1\":{\"X\":140,\"Y\":474},\"P2\":{\"X\":763,\"Y\":520}},{\"P1\":{\"X\":373,\"Y\":565},\"P2\":{\"X\":763,\"Y\":520}},{\"P1\":{\"X\":763,\"Y\":520},\"P2\":{\"X\":1453,\"Y\":466}},{\"P1\":{\"X\":373,\"Y\":565},\"P2\":{\"X\":1453,\"Y\":466}}]}", |
| | | string.Empty,//15 |
| | | //16: |
| | | "{\"Width\":1687,\"Height\":901,\"Obstacles\":[{\"Points\":[{\"X\":3,\"Y\":385},{\"X\":257,\"Y\":388},{\"X\":655,\"Y\":320},{\"X\":711,\"Y\":264},{\"X\":1682,\"Y\":279},{\"X\":1682,\"Y\":1},{\"X\":0,\"Y\":4}],\"Length\":7},{\"Points\":[{\"X\":5,\"Y\":713},{\"X\":265,\"Y\":754},{\"X\":432,\"Y\":862},{\"X\":405,\"Y\":900},{\"X\":1,\"Y\":896}],\"Length\":5},{\"Points\":[{\"X\":720,\"Y\":883},{\"X\":825,\"Y\":776},{\"X\":1034,\"Y\":851},{\"X\":985,\"Y\":900},{\"X\":712,\"Y\":900}],\"Length\":5},{\"Points\":[{\"X\":1173,\"Y\":871},{\"X\":1569,\"Y\":644},{\"X\":1674,\"Y\":661},{\"X\":1684,\"Y\":772},{\"X\":1679,\"Y\":887},{\"X\":1187,\"Y\":893},{\"X\":1200,\"Y\":852}],\"Length\":7}],\"LocationPoints\":[{\"Point\":{\"X\":1391,\"Y\":410},\"Parameter\":4},{\"Point\":{\"X\":905,\"Y\":409},\"Parameter\":5},{\"Point\":{\"X\":416,\"Y\":410},\"Parameter\":6}],\"FindPathPoints\":[{\"X\":633,\"Y\":693},{\"X\":1494,\"Y\":434},{\"X\":139,\"Y\":505},{\"X\":834,\"Y\":367}],\"LoopLines\":[{\"P1\":{\"X\":139,\"Y\":505},\"P2\":{\"X\":1494,\"Y\":434}}],\"FindPathLines\":[{\"P1\":{\"X\":139,\"Y\":505},\"P2\":{\"X\":834,\"Y\":367}},{\"P1\":{\"X\":834,\"Y\":367},\"P2\":{\"X\":1494,\"Y\":434}},{\"P1\":{\"X\":633,\"Y\":693},\"P2\":{\"X\":1494,\"Y\":434}},{\"P1\":{\"X\":633,\"Y\":693},\"P2\":{\"X\":834,\"Y\":367}},{\"P1\":{\"X\":633,\"Y\":693},\"P2\":{\"X\":139,\"Y\":505}}]}", |
| | | //17: |
| | | "{\"Width\":1687,\"Height\":720,\"Obstacles\":[{\"Points\":[{\"X\":1681,\"Y\":368},{\"X\":1591,\"Y\":363},{\"X\":1487,\"Y\":252},{\"X\":1475,\"Y\":4},{\"X\":1683,\"Y\":3}],\"Length\":5},{\"Points\":[{\"X\":1348,\"Y\":358},{\"X\":544,\"Y\":345},{\"X\":534,\"Y\":453},{\"X\":115,\"Y\":450},{\"X\":0,\"Y\":390},{\"X\":0,\"Y\":3},{\"X\":1480,\"Y\":3},{\"X\":1487,\"Y\":245}],\"Length\":8},{\"Points\":[{\"X\":108,\"Y\":685},{\"X\":76,\"Y\":720},{\"X\":1682,\"Y\":718},{\"X\":1684,\"Y\":683}],\"Length\":4}],\"LocationPoints\":[{\"Point\":{\"X\":276,\"Y\":499},\"Parameter\":0},{\"Point\":{\"X\":736,\"Y\":502},\"Parameter\":1},{\"Point\":{\"X\":1198,\"Y\":500},\"Parameter\":2},{\"Point\":{\"X\":1655,\"Y\":502},\"Parameter\":3}],\"FindPathPoints\":[{\"X\":196,\"Y\":514},{\"X\":1622,\"Y\":491},{\"X\":605,\"Y\":518}],\"LoopLines\":[{\"P1\":{\"X\":196,\"Y\":514},\"P2\":{\"X\":1622,\"Y\":491}}],\"FindPathLines\":[{\"P1\":{\"X\":196,\"Y\":514},\"P2\":{\"X\":605,\"Y\":518}},{\"P1\":{\"X\":605,\"Y\":518},\"P2\":{\"X\":1622,\"Y\":491}}]}", |
| | | }; |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取json |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public string ToJsonString() |
| | | public string ToJsonString(Int32 width,Int32 height) |
| | | { |
| | | this.Width = width; |
| | | this.Height = height; |
| | | HousePathInfoObj obj=HousePathInfoObj.From(this); |
| | | string json = ZTImage.Json.JsonBuilder.ToJsonString(obj); |
| | | return json; |
| | |
| | | |
| | | public static HousePathInfo From(MapType mapType, Int32 houseIndex) |
| | | { |
| | | string info = null; |
| | | if (mapType == MapType.Lingdong) |
| | | { |
| | | if (houseIndex > Lingdong.Length - 1) |
| | | { |
| | | throw new ArgumentOutOfRangeException("houseIndex"); |
| | | } |
| | | info = Lingdong[houseIndex]; |
| | | } |
| | | else if (mapType == MapType.Kalete) |
| | | { |
| | | if (houseIndex > Kalete.Length - 1) |
| | | { |
| | | throw new ArgumentOutOfRangeException("houseIndex"); |
| | | } |
| | | info = Kalete[houseIndex]; |
| | | } |
| | | string info = ReadConfig(mapType, houseIndex); |
| | | |
| | | try |
| | | { |
| | |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | | |
| | | private static String ReadConfig(MapType mapType, Int32 houseIndex) |
| | | { |
| | | string file = string.Empty; |
| | | if (mapType == MapType.Lingdong) |
| | | { |
| | | file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "configs", "lingdong.txt"); |
| | | } |
| | | else if (mapType == MapType.Kalete) |
| | | { |
| | | file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "configs", "kalete.txt"); |
| | | } |
| | | |
| | | if (!File.Exists(file)) |
| | | { |
| | | throw new FieldAccessException("config file not exists," + file); |
| | | } |
| | | |
| | | string content = System.IO.File.ReadAllText(file); |
| | | if (string.IsNullOrEmpty(content)) |
| | | { |
| | | throw new FieldAccessException("file empty," + file); |
| | | } |
| | | |
| | | string[] lines = content.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); |
| | | Int32 row = houseIndex * 2 + 1; |
| | | if (row > lines.Length) |
| | | { |
| | | throw new ArgumentOutOfRangeException("超出的行"); |
| | | } |
| | | |
| | | return lines[row]; |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查找最短路径 |
| | | /// </summary> |
| | |
| | | var distances = new Dictionary<T, Int32>(); |
| | | var nodes = new List<T>(); |
| | | |
| | | List<T> path = null; |
| | | List<T> path = new List<T>(); |
| | | |
| | | foreach (var vertex in edges) |
| | | { |
| | |
| | | |
| | | if (smallest.Equals(finish)) |
| | | { |
| | | path = new List<T>(); |
| | | while (previous.ContainsKey(smallest)) |
| | | { |
| | | path.Add(smallest); |
| | |
| | | <Compile Include="CV\ChannelCVHelper.cs" /> |
| | | <Compile Include="CV\GroupCVHelper.cs" /> |
| | | <Compile Include="CV\KaleteCVHelper.cs" /> |
| | | <Compile Include="CV\ShikongzhimenCVHelper.cs" /> |
| | | <Compile Include="CV\SkillCVHelper.cs" /> |
| | | <Compile Include="CV\DnfCVHelper.cs" /> |
| | | <Compile Include="CV\LindongCVHelper.cs" /> |
| | |
| | | <Compile Include="Structs\ZTSizeDouble.cs" /> |
| | | <Compile Include="Structs\ZTTargetPolygon.cs" /> |
| | | <Compile Include="Utilitys\ColorUtils.cs" /> |
| | | <Compile Include="Utilitys\GeometryHelper.cs" /> |
| | | <Compile Include="Utilitys\GeoHelper.cs" /> |
| | | <Compile Include="Utilitys\ProcessUtils.cs" /> |
| | | <Compile Include="Utilitys\RandomUtils.cs" /> |
| | | <Compile Include="Utilitys\SystemHotKey.cs" /> |
| | |
| | | /// 技能列表 |
| | | /// </summary> |
| | | private static Dictionary<HIDCode, SkillInfo> Skills = new Dictionary<HIDCode, SkillInfo>() { |
| | | { HIDCode.Q,new SkillInfo (){ Key=HIDCode.Q,Range=new ZTSize (700,200),WaitTime=9, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="朔风牵引"} }, |
| | | { HIDCode.W,new SkillInfo (){ Key=HIDCode.W,Range=new ZTSize (620,240),WaitTime=45, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="风卷残云"} }, |
| | | { HIDCode.E,new SkillInfo (){ Key=HIDCode.E,Range=new ZTSize (1280,200),WaitTime=12.6f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="双翼风刃"} }, |
| | | { HIDCode.R,new SkillInfo (){ Key=HIDCode.R,Range=new ZTSize (400,200),WaitTime=14.4f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=600,SkillName="风暴之眼"} }, |
| | | { HIDCode.T,new SkillInfo (){ Key=HIDCode.T,Range=new ZTSize (120,300),WaitTime=40.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="九霄风雷"} }, |
| | | { HIDCode.Y,new SkillInfo (){ Key=HIDCode.Y,Range=new ZTSize (1280,720),WaitTime=145, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="万象风龙阵"} }, |
| | | |
| | | |
| | | { HIDCode.A,new SkillInfo (){ Key=HIDCode.A,Range=new ZTSize (240,148),WaitTime=7.7f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=600,SkillName="风鸣冲击"} }, |
| | | { HIDCode.S,new SkillInfo (){ Key=HIDCode.S,Range=new ZTSize (180,430),WaitTime=22.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="真空旋风破"} }, |
| | | { HIDCode.D,new SkillInfo (){ Key=HIDCode.D,Range=new ZTSize (1280,240),WaitTime=6.3f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=500,SkillName="游离之风"} }, |
| | | { HIDCode.F,new SkillInfo (){ Key=HIDCode.F,Range=new ZTSize (370,224),WaitTime=40.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="风暴之拳"} }, |
| | | { HIDCode.G,new SkillInfo (){ Key=HIDCode.G,Range=new ZTSize (730,218),WaitTime=36, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=2000,SkillName="游龙惊风破"} }, |
| | | { HIDCode.H,new SkillInfo (){ Key=HIDCode.H,Range=new ZTSize (1280,720),WaitTime=180, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="无限风域"} }, |
| | | { HIDCode.X,new SkillInfo (){ Key=HIDCode.X,Range=new ZTSize (200,170),WaitTime=0.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Side,ReleaseTime=500,SkillName="普通攻击"} }, |
| | | { HIDCode.Space,new SkillInfo (){ Key=HIDCode.Space,Range=new ZTSize (1280,720),WaitTime=300, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Center,ReleaseTime=2000,SkillName="技能加成"} } |
| | | { HIDCode.Q, new SkillInfo (){ Key=HIDCode.Q,AttackRange=new ZTRectangle(0,0,700,200),Range=new ZTSize (700,200),CDTime=9, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=1300,SkillName="朔风牵引"} }, |
| | | { HIDCode.W, new SkillInfo (){ Key=HIDCode.W,AttackRange=new ZTRectangle(0,0,620,240),Range=new ZTSize (620,240),CDTime=45, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseWaitTime=1000,SkillName="风卷残云"} }, |
| | | { HIDCode.E, new SkillInfo (){ Key=HIDCode.E,AttackRange=new ZTRectangle(0,0,800,200),Range=new ZTSize (1280,200),CDTime=12.6f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=1000, SkillName="双翼风刃"} }, |
| | | { HIDCode.R, new SkillInfo (){ Key=HIDCode.R,AttackRange=new ZTRectangle(0,0,400,200),Range=new ZTSize (400,200),CDTime=14.4f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=1240, SkillName="风暴之眼"} }, |
| | | { HIDCode.T, new SkillInfo (){ Key=HIDCode.T,AttackRange=new ZTRectangle(0,0,120,300),Range=new ZTSize (120,300),CDTime=40.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=2000,SkillName="九霄风雷"} }, |
| | | { HIDCode.Y, new SkillInfo (){ Key=HIDCode.Y,AttackRange=new ZTRectangle(-800,-600,800,600),Range=new ZTSize (1280,720),CDTime=145, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseWaitTime=2000,SkillName="万象风龙阵"} }, |
| | | |
| | | |
| | | { HIDCode.A, new SkillInfo (){ Key=HIDCode.A,AttackRange=new ZTRectangle(0,0,240,148),Range=new ZTSize (240,148),CDTime=7.7f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=600,SkillName="风鸣冲击"} }, |
| | | { HIDCode.S, new SkillInfo (){ Key=HIDCode.S,AttackRange=new ZTRectangle(0,0,180,430),Range=new ZTSize (180,430),CDTime=22.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=2000,SkillName="真空旋风破"} }, |
| | | { HIDCode.D, new SkillInfo (){ Key=HIDCode.D,AttackRange=new ZTRectangle(0,0,800,240),Range=new ZTSize (1280,240),CDTime=6.3f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=500,SkillName="游离之风"} }, |
| | | { HIDCode.F, new SkillInfo (){ Key=HIDCode.F,AttackRange=new ZTRectangle(0,0,370,224),Range=new ZTSize (370,224),CDTime=40.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=2000,SkillName="风暴之拳"} }, |
| | | { HIDCode.G, new SkillInfo (){ Key=HIDCode.G,AttackRange=new ZTRectangle(0,0,730,218),Range=new ZTSize (730,218),CDTime=36, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=2000,SkillName="游龙惊风破"} }, |
| | | { HIDCode.H, new SkillInfo (){ Key=HIDCode.H,AttackRange=new ZTRectangle(-800,-600,800,600),Range=new ZTSize (1280,720),CDTime=180, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Quantity,ReleaseAnchor=SkillAnchor.Center,ReleaseWaitTime=2000,SkillName="无限风域"} }, |
| | | { HIDCode.X, new SkillInfo (){ Key=HIDCode.X,AttackRange=new ZTRectangle(0,0,200,170),Range=new ZTSize (200,170),CDTime=0.5f, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Side,ReleaseWaitTime=500,SkillName="普通攻击"} }, |
| | | { HIDCode.Space,new SkillInfo (){ Key=HIDCode.Space ,AttackRange=new ZTRectangle(-800,-600,800,600),Range=new ZTSize (1280,720),CDTime=300, AnchorOffset=new ZTSize(0,-50),MovePriority=MovePriority.Nearly,ReleaseAnchor=SkillAnchor.Center,ReleaseWaitTime=2000,SkillName="技能加成"} } |
| | | }; |
| | | |
| | | /// <summary> |
| | |
| | | public ZTSize Range; |
| | | |
| | | /// <summary> |
| | | /// 释放后需要等多少秒 |
| | | /// 技能恢复时间(秒) |
| | | /// </summary> |
| | | public float WaitTime; |
| | | public float CDTime; |
| | | |
| | | /// <summary> |
| | | /// 技能名称 |
| | |
| | | public string SkillName; |
| | | |
| | | /// <summary> |
| | | /// 技能释放时长 |
| | | /// 技能释放和释放完后可以移动的等待时长(毫秒) |
| | | /// </summary> |
| | | public float ReleaseTime { get; set; } |
| | | public float ReleaseWaitTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 技能释放锚点 |
| | | /// </summary> |
| | | public SkillAnchor ReleaseAnchor { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 技能释放锚点编移 |
| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 技能释放锚点枚举 |
| | | /// 技能释放位置 |
| | | /// </summary> |
| | | public SkillAnchor ReleaseAnchor { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 攻击范围 |
| | | /// (0,0)为角色位置 |
| | | /// </summary> |
| | | public ZTRectangle AttackRange { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 技能释放时角色位置 |
| | | /// </summary> |
| | | public enum SkillAnchor |
| | | { |
| | | Side, |
| | | Center |
| | | Side,//两边 |
| | | Center//中间 |
| | | } |
| | | |
| | | |
| | |
| | | public class SkillQueue |
| | | { |
| | | private List<SKillCallTime> callTimes = new List<SKillCallTime>();//可调用的技能列表 |
| | | private SkillInfo lastSkill = null;//最后一个调用的技能 |
| | | private DateTime lastSkillCallTime = DateTime.MinValue;//最后一个技能的调用时间 |
| | | |
| | | public SkillQueue() |
| | | { |
| | |
| | | { |
| | | callTime = callTimes[i]; |
| | | double dimMS = (DateTime.Now - callTime.LastCallTime).TotalMilliseconds; |
| | | if (dimMS > (callTime.Skill.WaitTime * 1000)) |
| | | if (dimMS > (callTime.Skill.CDTime * 1000)) |
| | | { |
| | | //已经过了技能等待时间 |
| | | if (!callTime.IsOnce || callTime.CallCount <= 0) |
| | |
| | | |
| | | public Int32 GetDistance() |
| | | { |
| | | return (Int32)GeometryHelper.GetPointDistance(this.P1, this.P2); |
| | | return (Int32)GeoHelper.GetPointDistance(this.P1, this.P2); |
| | | } |
| | | |
| | | |
| File was renamed from src/RichCreator.Utility/Utilitys/GeometryHelper.cs |
| | |
| | | /// <summary> |
| | | /// 与几何相关的辅助类 |
| | | /// </summary> |
| | | public static class GeometryHelper |
| | | public static class GeoHelper |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 计算两点之间的距离 |
| | | /// </summary> |
| | | /// <param name="start"></param> |
| | | /// <param name="end"></param> |
| | | /// <returns></returns> |
| | | public static double GetDistance(ZTPoint start, ZTPoint end) |
| | | { |
| | | Int32 subX = end.X - start.X; |
| | | Int32 subY = end.Y - start.Y; |
| | | return Math.Sqrt(subX * subX + subY * subY); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 指定点是否在方框内 |
| | | /// </summary> |
| | | /// <param name="point"></param> |
| | | /// <param name="rect"></param> |
| | | /// <returns></returns> |
| | | public static bool IsInRect(ZTPoint point, ZTRectangle rect) |
| | | { |
| | | if (point.Y >= rect.Start.Y && |
| | | point.Y <= rect.End.Y && |
| | | point.X >= rect.Start.X && |
| | | point.X <= rect.End.X) |
| | | { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取点到点的距离 |
| | | /// </summary> |
| | |
| | | using RichCreator.Utility.Dnf; |
| | | using RichCreator.Utility.InputControl; |
| | | using RichCreator.Utility.Maps; |
| | | using RichCreator.Utility.Skills; |
| | | using RichCreator.Utility.Structs; |
| | | using RichCreator.Utility.Utilitys; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Threading; |
| | | |
| | | |
| | |
| | | /// </summary> |
| | | public class DnfRole |
| | | { |
| | | |
| | | private SpeedProvider speed;//速度 |
| | | |
| | | private const Int32 PaddingLeft = 140;//左边框内边距 |
| | | private const Int32 PaddingRight = 140;//右边框内边距 |
| | | |
| | | /// <summary> |
| | | /// 角色脚部距色块中央的偏移 |
| | | /// </summary> |
| | | public static readonly ZTPoint RoleFootOffset = new ZTPoint(0, 143); |
| | | |
| | | /// <summary> |
| | | /// 角色身体中间距色块中央的偏移 |
| | | /// </summary> |
| | | public static readonly ZTPoint RoleHalfOffset = new ZTPoint(0, 88); |
| | | |
| | | |
| | | |
| | | public DnfRole(ZTRectangle gameRect) |
| | | { |
| | | this.gameRect = gameRect; |
| | | speed = SpeedProvider.Define; |
| | | |
| | | moveCancelToken = new CancellationTokenSource(); |
| | | } |
| | | |
| | | private SpeedProvider speed;//速度 |
| | | private HouseInfo house;//所在房间 |
| | | private ZTRectangle gameRect = ZTRectangle.Empty; |
| | | private MoveIntent movingIntent = MoveIntent.AttackMove;//移动意图 |
| | | private CancellationTokenSource moveCancelToken;//移动取消令牌 |
| | | |
| | | /// <summary> |
| | | /// 角色色块位置 |
| | | /// </summary> |
| | | public ZTPoint RoleCBPosition { get; private set; } |
| | | |
| | | /// <summary> |
| | | /// 角色脚部位置 |
| | | /// </summary> |
| | | public ZTPoint Position |
| | | { |
| | | get |
| | | { |
| | | return CBToFootPosition(RoleCBPosition); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 身体中间位置 |
| | | /// </summary> |
| | | public ZTPoint HalfPosition |
| | | { |
| | | get |
| | | { |
| | | return CBToHalfPosition(RoleCBPosition); |
| | | } |
| | | } |
| | | |
| | | |
| | | private Int32 minCenterLineY; |
| | | private Int32 maxCenterLineY; |
| | | private Int32 centerLineErrorRange = 35;//中间性可允许的误差 |
| | | |
| | | private HouseInfo house; |
| | | private ZTRectangle gameRect = ZTRectangle.Empty; |
| | | |
| | | |
| | | private MoveIntent movingIntent = MoveIntent.AttackMove;//移动意图 |
| | | private MoveMethod movingMethod = MoveMethod.Vertical;//移动方式,默认垂直移动 |
| | | private ZTSize movingDistance;//移动距离 |
| | | |
| | | |
| | | public ZTPoint Position { get; private set; }//角色位置 |
| | | |
| | | /// <summary> |
| | | /// 按下的键,0:横向,1:纵向 |
| | | /// </summary> |
| | |
| | | public void SetHouse(HouseInfo house) |
| | | { |
| | | this.house = house; |
| | | minCenterLineY = this.gameRect.End.Y + this.house.HouseCenterMoveLine - centerLineErrorRange; |
| | | maxCenterLineY = this.gameRect.End.Y + this.house.HouseCenterMoveLine + centerLineErrorRange; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// 更新位置 |
| | | /// </summary> |
| | | /// <param name="position"></param> |
| | | public void UpdatePosition(ZTPoint position) |
| | | /// <param name="roleCBPosition"></param> |
| | | public void UpdatePosition(ZTPoint roleCBPosition) |
| | | { |
| | | this.Position = position; |
| | | this.RoleCBPosition = roleCBPosition; |
| | | } |
| | | |
| | | |
| | |
| | | /// <param name="moveDistance"></param> |
| | | public void AttackMove(ZTSize moveDistance) |
| | | { |
| | | PutKey(moveDistance); |
| | | PutDirectionKey(moveDistance); |
| | | movingIntent = MoveIntent.AttackMove; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 攻击移动至 |
| | | /// </summary> |
| | | /// <param name="skillReleasePoint"></param> |
| | | public void AttackMoveTo(ZTPoint skillReleasePoint,ParametersPoint locationPoint) |
| | | { |
| | | //屏幕坐标转地图坐标 |
| | | ZTPoint start= this.house.ScreenToMapCoordinate(this.Position, locationPoint); |
| | | ZTPoint end = this.house.ScreenToMapCoordinate(DnfRole.HalfToFootPosition(skillReleasePoint), locationPoint); |
| | | List<ZTPoint> paths = this.house.FindPath(start, end); |
| | | MovePaths(start, paths); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 移动到指定地图点 |
| | | /// </summary> |
| | | public void MoveToMapPoint(ZTPoint start,ZTPoint end) |
| | | { |
| | | List<ZTPoint> paths = this.house.FindPath(start, end); |
| | | MovePaths(start, paths); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 移动指定路径 |
| | | /// </summary> |
| | | /// <param name="start"></param> |
| | | /// <param name="paths"></param> |
| | | public void MovePaths(ZTPoint start, List<ZTPoint> paths) |
| | | { |
| | | ZTPoint lastPoint = start; |
| | | if (paths != null && paths.Count > 0) |
| | | { |
| | | for (int i = 0; i < paths.Count; i++) |
| | | { |
| | | ZTPoint distance = paths[i].Sub(lastPoint); |
| | | this.SyncMove(distance); |
| | | lastPoint = paths[i]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private Int32 findRoleDir = 0;//寻找角色行走的方向 |
| | | private DateTime findRoleMoveTimeout = DateTime.MinValue;//方向移动过期时间 |
| | | |
| | | private static HIDCode[][] dir = new HIDCode[][] { new HIDCode[] { HIDCode.LeftArrow ,HIDCode.NoEvent}, new HIDCode[] { HIDCode.NoEvent, HIDCode.UpArrow }, new HIDCode[] { HIDCode.RightArrow, HIDCode.NoEvent }, new HIDCode[] { HIDCode.NoEvent, HIDCode.DownArrow } }; |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | findRoleDir++; |
| | | HIDCode[] tempKeys = dir[findRoleDir % 4]; |
| | | Int32 stepms = 0, runms = 0; |
| | | PutKey(out stepms, out runms, tempKeys[0], tempKeys[1], true); |
| | | PutDirectionKey(out stepms, out runms, tempKeys[0], tempKeys[1], true); |
| | | findRoleMoveTimeout = DateTime.Now.AddMilliseconds(speed.RandomMoveMillSecond); |
| | | } |
| | | |
| | | //if (!IsMoving || (IsMoving && KeyIsChange(tempKeys))) |
| | | //{ |
| | | // //Int32 stepms = 0, runms = 0; |
| | | // //PutKey(out stepms, out runms, tempKeys[0], tempKeys[1], true); |
| | | //} |
| | | |
| | | movingIntent = MoveIntent.FindRoleMove; |
| | | } |
| | | |
| | | public void EntryDoorMove() |
| | | { |
| | | if (IsMoving && !IsMoveIntent(MoveIntent.EntryDoor)) |
| | | { |
| | | StopMove(); |
| | | } |
| | | } |
| | | |
| | | public void ToLoopMove() |
| | | { |
| | | if (IsMoving && !IsMoveIntent(MoveIntent.ToLoopPoint)) |
| | | { |
| | | StopMove(); |
| | | } |
| | | } |
| | | |
| | | public void ToNextGateMove() |
| | | { |
| | | if (IsMoving && !IsMoveIntent(MoveIntent.ToNextGatePoint)) |
| | | { |
| | | StopMove(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 拾起物品移动 |
| | | /// </summary> |
| | | public void PickupMove(ZTPoint rolePosition, ZTPoint thingItemPosition) |
| | | { |
| | | if (IsMoving && !IsMoveIntent(MoveIntent.PickupMove)) |
| | | { |
| | | StopMove(); |
| | | } |
| | | |
| | | ZTSize moveDistance = new ZTSize(thingItemPosition.X - rolePosition.X, thingItemPosition.Y - rolePosition.Y - 97); |
| | | if (Math.Abs(moveDistance.Width) < 100 && Math.Abs(moveDistance.Height) < 100) |
| | | { |
| | |
| | | } |
| | | |
| | | //G.Instance.DebugWriter("pickup distance:" + moveDistance.ToString()); |
| | | PutKey(moveDistance); |
| | | PutDirectionKey(moveDistance); |
| | | movingIntent = MoveIntent.PickupMove; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 找门移动 |
| | | /// </summary> |
| | | /// <param name="rolePosition"></param> |
| | | public void FindDoorMove(ZTPoint rolePosition) |
| | | { |
| | | ComputeMoveInfo(rolePosition); |
| | | |
| | | HIDCode dirKey = HIDCode.NoEvent; |
| | | switch (movingMethod) |
| | | { |
| | | case MoveMethod.ToLeft: |
| | | dirKey = HIDCode.LeftArrow; |
| | | break; |
| | | case MoveMethod.ToRight: |
| | | dirKey = HIDCode.RightArrow; |
| | | break; |
| | | case MoveMethod.Vertical: |
| | | dirKey = movingDistance.Height > 0 ? HIDCode.DownArrow : HIDCode.UpArrow; |
| | | break; |
| | | case MoveMethod.Fixed: |
| | | SyncMove(new ZTPoint(movingDistance.Width,movingDistance.Height)); |
| | | StopMove(); |
| | | return; |
| | | } |
| | | |
| | | PutKey(movingDistance); |
| | | movingIntent = MoveIntent.FindDoorMove; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 同步移动指定距离 |
| | |
| | | horizontal = HIDCode.LeftArrow; |
| | | } |
| | | |
| | | PutKey(out stepms, out runms, horizontal, vertical, isRun); |
| | | PutDirectionKey(out stepms, out runms, horizontal, vertical, isRun); |
| | | if (stepms > 0) |
| | | { |
| | | Int32 mdistance = (Int32)(stepms * speed.StepX); |
| | |
| | | { |
| | | xtime = (Int32)(Math.Abs(distance.Width) / speed.RunX); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | Int32 mintime = Math.Min(xtime, ytime); |
| | | if (xtime <= 0) |
| | | { |
| | |
| | | ytime -= mintime; |
| | | if (xtime > 0) |
| | | { |
| | | PutKey(out stepms, out runms, horizontal, HIDCode.NoEvent, isRun); |
| | | PutDirectionKey(out stepms, out runms, horizontal, HIDCode.NoEvent, isRun); |
| | | Thread.Sleep(xtime); |
| | | } |
| | | if (ytime > 0) |
| | | { |
| | | PutKey(out stepms, out runms, HIDCode.NoEvent, vertical, false); |
| | | PutDirectionKey(out stepms, out runms, HIDCode.NoEvent, vertical, false); |
| | | Thread.Sleep(ytime); |
| | | } |
| | | StopMove(); |
| | | //StopMove(); |
| | | |
| | | G.Instance.InputControl.PutDown(false, false, false, false, false, false, false, false); |
| | | pressKeys[0] = HIDCode.NoEvent; |
| | | pressKeys[1] = HIDCode.NoEvent; |
| | | isRun = false; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | if (IsMoving) |
| | | { |
| | | this.moveCancelToken.Cancel(); |
| | | this.moveCancelToken = new CancellationTokenSource(); |
| | | |
| | | //停止 |
| | | G.Instance.InputControl.PutDown(false, false, false, false, false, false, false, false); |
| | | pressKeys[0] = HIDCode.NoEvent; |
| | |
| | | { |
| | | Thread.Sleep(millSecond); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 释放技能 |
| | | /// </summary> |
| | | /// <param name="key"></param> |
| | | public void ReleaseSkill(HIDCode key) |
| | | { |
| | | ReleaseSkill(key, 0); |
| | | } |
| | | |
| | | |
| | | public void ReleaseSkill(HIDCode key, Int32 skillTimeout) |
| | | { |
| | | Int32 dur = RandomUtils.KeyPressDuration; |
| | | G.Instance.InputControl.PressKey(dur,key); |
| | | Int32 subTime = skillTimeout - dur; |
| | | if (subTime > 0) |
| | | SkillInfo skill=SkillInfo.GetSkillInfo(key); |
| | | if (skill != null) |
| | | { |
| | | Thread.Sleep(subTime); |
| | | } |
| | | } |
| | | |
| | | private ZTPoint roleLastPosition = ZTPoint.Empty; |
| | | private bool StaticTimerIsStart = false;//静止计时是否开始 |
| | | private Int32 StaticTimerCounter = 0;//静止计时计数器 |
| | | private DateTime DetectLastNoMoveTime = DateTime.MaxValue;//最后没移动时间 |
| | | private const Int32 NoMoveMaxMillSecond = 2000;//最大未移动容忍毫秒数 |
| | | |
| | | /// <summary> |
| | | /// 得到循环移动的距离 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private void ComputeMoveInfo(ZTPoint rolePosition) |
| | | { |
| | | ZTRectangle limitRect = ZTRectangle.Empty; |
| | | |
| | | //达到未移动阀值,可能有障碍物,先攻击,如果攻击后还是无效则上下左右移 |
| | | if (rolePosition.Equals(this.roleLastPosition)) |
| | | { |
| | | if (StaticTimerIsStart) |
| | | Int32 subTime = (Int32)(skill.ReleaseWaitTime - dur); |
| | | if (subTime > 0) |
| | | { |
| | | if ((DateTime.Now - DetectLastNoMoveTime).TotalMilliseconds > NoMoveMaxMillSecond) |
| | | { |
| | | G.Instance.DebugWriter($"find door not move,role position:{rolePosition.ToString()}"); |
| | | this.StopMove(); |
| | | if (StaticTimerCounter == 0) |
| | | { |
| | | //清除障碍物 |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.X); |
| | | } |
| | | else |
| | | { |
| | | //无法清除障碍物,随机移动一下 |
| | | switch (StaticTimerCounter % 4) |
| | | { |
| | | case 0: |
| | | G.Instance.DebugWriter("random up"); |
| | | //上 |
| | | movingDistance = new ZTSize(0, -300); |
| | | break; |
| | | case 1: |
| | | //右 |
| | | movingDistance = new ZTSize(600, 0); |
| | | |
| | | break; |
| | | case 2: |
| | | //下 |
| | | movingDistance = new ZTSize(0, 300); |
| | | break; |
| | | case 3: |
| | | //左 |
| | | movingDistance = new ZTSize(-600, 0); |
| | | break; |
| | | } |
| | | |
| | | movingMethod = MoveMethod.Fixed; |
| | | } |
| | | StaticTimerCounter++; |
| | | DetectLastNoMoveTime = DateTime.Now; |
| | | if (StaticTimerCounter > 1) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | |
| | | Sleep(subTime); |
| | | } |
| | | else if (!StaticTimerIsStart) |
| | | { |
| | | //没开始计时 则 开始计时 |
| | | StaticTimerIsStart = true; |
| | | DetectLastNoMoveTime = DateTime.Now; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //移动了 取消计时 |
| | | this.roleLastPosition = rolePosition; |
| | | StaticTimerIsStart = false; |
| | | StaticTimerCounter = 0; |
| | | } |
| | | |
| | | if (!IsMoving) |
| | | { |
| | | //刚开始移动 |
| | | movingMethod = MoveMethod.Vertical; |
| | | } |
| | | |
| | | if (movingMethod == MoveMethod.Vertical && rolePosition.Y >= minCenterLineY && rolePosition.Y <= maxCenterLineY) |
| | | { |
| | | //不需要上下移动,计算左右 |
| | | if (this.house.DoorDirection[0] == Direction.Left) |
| | | { |
| | | movingMethod = MoveMethod.ToLeft; |
| | | } |
| | | else if (this.house.DoorDirection[0] == Direction.Right) |
| | | { |
| | | movingMethod = MoveMethod.ToRight; |
| | | } |
| | | else |
| | | { |
| | | //计算是向左还是右,哪边大往哪边 |
| | | if (rolePosition.X > (this.gameRect.Start.X + (this.gameRect.End.X - this.gameRect.Start.X) / 2)) |
| | | { |
| | | //左边空间大 |
| | | movingMethod = MoveMethod.ToLeft; |
| | | } |
| | | else |
| | | { |
| | | movingMethod = MoveMethod.ToRight; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (movingMethod == MoveMethod.ToLeft) |
| | | { |
| | | //计算左边界范围 |
| | | limitRect = new ZTRectangle(gameRect.Start.X, gameRect.Start.Y, gameRect.Start.X + PaddingLeft, gameRect.End.Y); |
| | | //判断是否到左边界 |
| | | |
| | | if (RichCreator.Utilitys.Utils.IsInRect(rolePosition, limitRect)) |
| | | { |
| | | //到左边界就向右走 |
| | | movingMethod = MoveMethod.ToRight; |
| | | movingDistance = new ZTSize(gameRect.End.X - rolePosition.X, 0); |
| | | } |
| | | else |
| | | { |
| | | //没到继续向左走 |
| | | movingMethod = MoveMethod.ToLeft; |
| | | movingDistance = new ZTSize(limitRect.Start.X - rolePosition.X, 0); |
| | | } |
| | | } |
| | | else if (movingMethod == MoveMethod.ToRight) |
| | | { |
| | | //计算右边界范围 |
| | | limitRect = new ZTRectangle(gameRect.End.X - PaddingRight, gameRect.Start.Y, gameRect.End.X, gameRect.End.Y); |
| | | //判断是否到右边界 |
| | | if (Utilitys.Utils.IsInRect(rolePosition, limitRect)) |
| | | { |
| | | //到右边界就向左走 |
| | | G.Instance.InfoWriter($"in limit rect,role position:{rolePosition.ToString()},limit:{limitRect.ToString()}"); |
| | | movingMethod = MoveMethod.ToLeft; |
| | | movingDistance = new ZTSize(gameRect.Start.X - rolePosition.X, 0); |
| | | } |
| | | else |
| | | { |
| | | //没到继续向右走 |
| | | movingMethod = MoveMethod.ToRight; |
| | | movingDistance = new ZTSize(gameRect.End.X - rolePosition.X, 0); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //向点移动 |
| | | Int32 targetY = gameRect.End.Y + this.house.HouseCenterMoveLine; |
| | | movingDistance = new ZTSize(0, targetY - rolePosition.Y); |
| | | } |
| | | } |
| | | |
| | |
| | | /// 按下按键 |
| | | /// </summary> |
| | | /// <param name="distance"></param> |
| | | private void PutKey(ZTSize distance) |
| | | private void PutDirectionKey(ZTSize distance) |
| | | { |
| | | HIDCode horizontal = HIDCode.NoEvent; |
| | | HIDCode vertical = HIDCode.NoEvent; |
| | |
| | | } |
| | | |
| | | Int32 stepms, runms; |
| | | PutKey(out stepms, out runms, horizontal, vertical, isRun); |
| | | PutDirectionKey(out stepms, out runms, horizontal, vertical, isRun); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="horizontal">横向按键</param> |
| | | /// <param name="vertical">纵向按键</param> |
| | | /// <param name="isRun">是否奔跑</param> |
| | | private void PutKey(out Int32 stepMS, out Int32 runMS, HIDCode horizontal, HIDCode vertical, bool isRun) |
| | | private void PutDirectionKey(out Int32 stepMS, out Int32 runMS, HIDCode horizontal, HIDCode vertical, bool isRun) |
| | | { |
| | | stepMS = 0; |
| | | runMS = 0; |
| | |
| | | /// </summary> |
| | | /// <param name="pressKey"></param> |
| | | /// <returns></returns> |
| | | private bool KeyIsChange(HIDCode[] pressKey) |
| | | private bool IsChangeOfKey(HIDCode[] pressKey) |
| | | { |
| | | if (pressKey == null || pressKey.Length != 2) |
| | | { |
| | |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | #region role position convert |
| | | /// <summary> |
| | | /// 色块中央位置转为脚部位置 |
| | | /// </summary> |
| | | /// <param name="cbPosition"></param> |
| | | /// <returns></returns> |
| | | public static ZTPoint CBToFootPosition(ZTPoint cbPosition) |
| | | { |
| | | return cbPosition.Add(RoleFootOffset); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 色块中央位置转为人物中间位置 |
| | | /// </summary> |
| | | /// <param name="cbPosition"></param> |
| | | /// <returns></returns> |
| | | public static ZTPoint CBToHalfPosition(ZTPoint cbPosition) |
| | | { |
| | | return cbPosition.Add(RoleHalfOffset); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 脚部坐标到身份中央坐标转换 |
| | | /// </summary> |
| | | /// <param name="footPosition"></param> |
| | | /// <returns></returns> |
| | | public static ZTPoint FootToHalfPosition(ZTPoint footPosition) |
| | | { |
| | | return footPosition.Sub(RoleFootOffset).Add(RoleHalfOffset); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 身体中央坐标到脚部坐标转换 |
| | | /// </summary> |
| | | /// <param name="halfPosition"></param> |
| | | /// <returns></returns> |
| | | public static ZTPoint HalfToFootPosition(ZTPoint halfPosition) |
| | | { |
| | | return halfPosition.Sub(RoleHalfOffset).Add(RoleFootOffset); |
| | | } |
| | | #endregion |
| | | |
| | | |
| | |
| | | using RichCreator.Utility; |
| | | using RichCreator.Utility.CV; |
| | | using RichCreator.Utility.InputControl; |
| | | using RichCreator.Utility.Maps; |
| | | using RichCreator.Utility.Structs; |
| | | using RichCreator.Utilitys; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | this.MapType = mapType; |
| | | this.GameRect = gameRect; |
| | | this.CancelToken = cancellationToken; |
| | | this.Role = new DnfRole(gameRect); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public MapType MapType { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 角色 |
| | | /// </summary> |
| | | public DnfRole Role { get; set; } |
| | | |
| | | |
| | | #region Func |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | protected void CloseAllAlertWindowByEsc(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | GameUtils.CloseAllAlertWindowByEsc(cancelToken, gameRect); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | protected void CloseAllAlertWindowByX(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | GameUtils.CloseAllAlertWindowByX(cancelToken, gameRect); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 点击右上角"退到城镇"文字 |
| | | /// </summary> |
| | | protected void ExitToTown() |
| | | { |
| | | G.Instance.DebugWriter("返回城镇"); |
| | | Utility.Structs.ZTPoint point = new Utility.Structs.ZTPoint(this.GameRect.Start.X +667, this.GameRect.Start.Y + 147); |
| | | G.Instance.InputControl.MoveToAndClick(point); |
| | | Thread.Sleep(5000); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 点击右上角的“再次挑战” |
| | | /// </summary> |
| | | protected void ReplayGame() |
| | | { |
| | | G.Instance.DebugWriter("重新挑战"); |
| | | Utility.Structs.ZTPoint point = new Utility.Structs.ZTPoint(this.GameRect.Start.X+667, this.GameRect.Start.Y + 87); |
| | | G.Instance.InputControl.MoveToAndClick(point); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 出售装备 |
| | | /// </summary> |
| | | /// <param name="saleButtonRect"></param> |
| | | protected bool SaleEquipment() |
| | | { |
| | | //卖装备并关闭商店 |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | ZTRectangle saleButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.HasSaleButton(out saleButtonRect, out closeButtonRect, this.GameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //卖装备 |
| | | G.Instance.InfoWriter("出售装备"); |
| | | G.Instance.InputControl.MoveToAndClick(saleButtonRect.GetCenterPoint()); |
| | | |
| | | //得到装备文字位置 |
| | | ZTRectangle equipmentTextRect = ZTRectangle.Empty; |
| | | bool result = FuncUtils.TimeoutCancelableWrap(5000, this.CancelToken, () => |
| | | { |
| | | Int32 status = 0; |
| | | if (DnfCVHelper.GetEquipmentSelectStatus(out equipmentTextRect, out status, this.GameRect)) |
| | | { |
| | | if (status == 1) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(equipmentTextRect.GetCenterPoint()); |
| | | } |
| | | return false; |
| | | }); |
| | | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("装备文字未取到"); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | //开始点,每格步进30 |
| | | ZTPoint startPoint = new Utility.Structs.ZTPoint(equipmentTextRect.End.X - 30, equipmentTextRect.End.Y + 9); |
| | | List<Int32> points = DnfCVHelper.GetEquipmentIndexs(startPoint); |
| | | |
| | | for (int i = 0; i < points.Count; i++) |
| | | { |
| | | Int32 index = points[i]; |
| | | |
| | | int row = index / 8; |
| | | int col = index % 8; |
| | | int x = col * 30 + 15; |
| | | int y = row * 30 + 15; |
| | | |
| | | //点窗格 |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(startPoint.X + x, startPoint.Y + y)); |
| | | Thread.Sleep(500); |
| | | //点确定 |
| | | G.Instance.InputControl.Move(0, 0, true, false, false); |
| | | Thread.Sleep(RandomUtils.MouseClickDuration); |
| | | G.Instance.InputControl.Move(0, 0, false, false, false); |
| | | Thread.Sleep(RandomUtils.MouseClickDuration); |
| | | } |
| | | G.Instance.DebugWriter("equipment:" + ZTImage.Utils.ConcatString(points.ToArray(), ",")); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Escape); |
| | | return true; |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region abstruct func |
| | | /// <summary> |
| | | /// 开始刷图 |
| | | /// </summary> |
| | |
| | | /// <param name="preHouseIndex"></param> |
| | | public virtual void EntryHousePrework(Int32 houseIndex, Int32 preHouseIndex) |
| | | { } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | { |
| | | this.MapType = mapType; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 选角色时的角色选择偏移 |
| | | /// </summary> |
| | | private static ZTPoint[] RoleOffset = new Utility.Structs.ZTPoint[] { |
| | | new ZTPoint (154,225), |
| | | new ZTPoint (300,225), |
| | | new ZTPoint (443,225), |
| | | new ZTPoint (593,225), |
| | | new ZTPoint (726,225), |
| | | new ZTPoint (883,225), |
| | | |
| | | new ZTPoint (154,455), |
| | | new ZTPoint (300,455), |
| | | new ZTPoint (443,455), |
| | | new ZTPoint (593,455), |
| | | new ZTPoint (726,455), |
| | | new ZTPoint (883,455) |
| | | }; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 游戏窗口 |
| | | /// </summary> |
| | |
| | | () => |
| | | { |
| | | WindowUtils.SetDnfToTop(); |
| | | //选角色 |
| | | G.Instance.InputControl.MoveToAndClick(this.GameRect.Start.Add(RoleOffset[roleIndex])); |
| | | Thread.Sleep(500); |
| | | |
| | | //点进入游戏 |
| | | G.Instance.InputControl.MoveToAndClick(startGameButtonRect.GetCenterPoint()); |
| | | if (SelectRoleIndex(roleIndex)) |
| | | { |
| | | //点进入游戏 |
| | | G.Instance.InputControl.MoveToAndClick(startGameButtonRect.GetCenterPoint()); |
| | | return true; |
| | | } |
| | | Thread.Sleep(1000); |
| | | return false; |
| | | |
| | | }, |
| | | () => |
| | | { |
| | |
| | | return true; |
| | | } |
| | | return false; |
| | | }); |
| | | },3); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private bool CloseAllAlertWindow(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | G.Instance.InputControl.MoveTo(0, 0, false, false, false); |
| | | Thread.Sleep(10); |
| | | //截图 |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | |
| | | /// <summary> |
| | | /// 选角色时的角色选择偏移 |
| | | /// </summary> |
| | | private static ZTPoint[] RoleOffset = new Utility.Structs.ZTPoint[] { |
| | | new ZTPoint (133,191), |
| | | new ZTPoint (249,191), |
| | | new ZTPoint (371,191), |
| | | new ZTPoint (499,191), |
| | | |
| | | |
| | | new ZTPoint (133,398), |
| | | new ZTPoint (249,398), |
| | | new ZTPoint (371,398), |
| | | new ZTPoint (499,398), |
| | | |
| | | new ZTPoint (133,398), |
| | | new ZTPoint (249,398) |
| | | }; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 选择角色 |
| | | /// </summary> |
| | | /// <param name="roleIndex"></param> |
| | | /// <returns></returns> |
| | | private bool SelectRoleIndex(Int32 roleIndex) |
| | | { |
| | | if (roleIndex < 8) |
| | | { |
| | | //移到顶端 |
| | | if (!ScrollMoveToTop()) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | //移到顶端,向下一格 |
| | | if (!ScrollMoveToDownOne()) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | Thread.Sleep(1000); |
| | | //选角色 |
| | | G.Instance.InputControl.MoveToAndClick(this.GameRect.Start.Add(RoleOffset[roleIndex])); |
| | | Thread.Sleep(500); |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 滚动条移动到顶端 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool ScrollMoveToTop() |
| | | { |
| | | ZTRectangle upButton = ZTRectangle.Empty; |
| | | ZTRectangle downButton = ZTRectangle.Empty; |
| | | ZTRectangle scrollButton = ZTRectangle.Empty; |
| | | |
| | | |
| | | //查找滚动条位置 |
| | | if (DnfCVHelper.FindSelectRoleScroll(out upButton, out downButton, out scrollButton, this.GameRect)) |
| | | { |
| | | //是在顶部 |
| | | if (Math.Abs(upButton.End.Y - scrollButton.Start.Y) < 3) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | Int32 counter = 4; |
| | | while(counter>0) |
| | | { |
| | | counter--; |
| | | //查找滚动条位置 |
| | | if (!DnfCVHelper.FindSelectRoleScroll(out upButton, out downButton, out scrollButton, this.GameRect)) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | //是在顶部 |
| | | if (Math.Abs(upButton.End.Y - scrollButton.Start.Y) < 3) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | ZTPoint targetPoint = scrollButton.GetCenterPoint(); |
| | | G.Instance.InputControl.MoveTo(targetPoint.X, targetPoint.Y, false, false, false); |
| | | G.Instance.InputControl.Move(0, 0, true, false, false); |
| | | targetPoint = upButton.GetCenterPoint(); |
| | | G.Instance.InputControl.MoveTo(targetPoint.X, targetPoint.Y, true, false, false); |
| | | G.Instance.InputControl.Move(0, 0, false, false, false); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | G.Instance.InputControl.MoveTo(this.GameRect.End.X, this.GameRect.Start.Y, false, false, false); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | } |
| | | |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 滚动条移动到下一格 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool ScrollMoveToDownOne() |
| | | { |
| | | ZTRectangle upButton = ZTRectangle.Empty; |
| | | ZTRectangle downButton = ZTRectangle.Empty; |
| | | ZTRectangle scrollButton = ZTRectangle.Empty; |
| | | |
| | | |
| | | //查找滚动条位置 |
| | | if (DnfCVHelper.FindSelectRoleScroll(out upButton, out downButton, out scrollButton, this.GameRect)) |
| | | { |
| | | //是在下一格 |
| | | if (Math.Abs(upButton.End.Y - scrollButton.Start.Y) > 3&& Math.Abs(upButton.End.Y - scrollButton.Start.Y)<30) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | Int32 counter = 4; |
| | | while (counter > 0) |
| | | { |
| | | counter--; |
| | | //查找滚动条位置 |
| | | if (!DnfCVHelper.FindSelectRoleScroll(out upButton, out downButton, out scrollButton, this.GameRect)) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | //是在第一格 |
| | | if (Math.Abs(upButton.End.Y - scrollButton.Start.Y) > 3 && Math.Abs(upButton.End.Y - scrollButton.Start.Y) < 30) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | ZTPoint targetPoint = scrollButton.GetCenterPoint(); |
| | | G.Instance.InputControl.MoveTo(targetPoint.X, targetPoint.Y, false, false, false); |
| | | G.Instance.InputControl.Move(0, 0, true, false, false); |
| | | targetPoint = upButton.GetCenterPoint(); |
| | | G.Instance.InputControl.MoveTo(targetPoint.X, targetPoint.Y, true, false, false); |
| | | G.Instance.InputControl.Move(0, 0, false, false, false); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(downButton.GetCenterPoint()); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | G.Instance.InputControl.MoveTo(this.GameRect.End.X, this.GameRect.Start.Y, false, false, false); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | } |
| | | |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 返回选择角色界面 |
| | |
| | | |
| | | if (result) |
| | | { |
| | | //点击切换角色按钮624,502 |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(this.GameRect.Start.X + 624, this.GameRect.Start.Y + 502)); |
| | | //点击切换角色按钮388,445 |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(this.GameRect.Start.X + 388, this.GameRect.Start.Y + 445)); |
| | | return true; |
| | | } |
| | | G.Instance.InfoWriter("退回选择角色界面失败"); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 根据当前选择的地图实例化DNF地图 |
| | | /// </summary> |
| | |
| | | Process.Start(this.Config.TGPDaemonPath); |
| | | G.Instance.InfoWriter("等待We Game运行"); |
| | | ZTRectangle weGameRect = ZTRectangle.Empty; |
| | | ZTRectangle changeLoginMethodButtonRect = ZTRectangle.Empty; |
| | | ZTRectangle changeMethodRect = ZTRectangle.Empty; |
| | | bool result = false; |
| | | |
| | | //查找游戏 |
| | | bool result = FindWeGame(cancellationToken, 5 * 60, out weGameRect,out changeLoginMethodButtonRect); |
| | | if (!result) |
| | | //查找游戏并设为帐号密码登陆 |
| | | Int32 counter = 3; |
| | | while (counter>0) |
| | | { |
| | | G.Instance.InfoWriter("查找游戏失败"); |
| | | return ZTResult.Failed; |
| | | } |
| | | bool isQQFast = false; |
| | | //查找游戏 |
| | | result = FindWeGame(out isQQFast, cancellationToken, 5 * 60, out weGameRect, out changeMethodRect); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("查找游戏失败"); |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("WeGame于:" + weGameRect.ToString() + ",切换按钮于:" + changeLoginMethodButtonRect.ToString()); |
| | | |
| | | if (isQQFast) |
| | | { |
| | | //qq快速登陆 |
| | | G.Instance.InputControl.MoveToAndClick(changeMethodRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | } |
| | | |
| | | counter--; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | G.Instance.InfoWriter("WeGame于:" + weGameRect.ToString() + ",切换按钮于:" + changeMethodRect.ToString()); |
| | | |
| | | //登陆 |
| | | result = LoginWeGame(cancellationToken, 30, weGameRect, changeLoginMethodButtonRect); |
| | | result = LoginWeGame(cancellationToken, 30, weGameRect, changeMethodRect); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("登陆失败"); |
| | |
| | | G.Instance.InfoWriter("WeGame登陆成功"); |
| | | |
| | | //登陆DNF游戏 |
| | | result = LoginDNF(cancellationToken, 30); |
| | | result = LoginDNF(cancellationToken, 30,weGameRect); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("DNF未成功打开"); |
| | | G.Instance.InfoWriter("DNF启动未成功"); |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("开始启动DNF游戏"); |
| | |
| | | /// <param name="loginMethod">当前登陆方式,0:QQ快速登陆,1:码密登陆</param> |
| | | /// <param name="changeLMButtonRectangle">切换登陆方式按钮区域</param> |
| | | /// <returns></returns> |
| | | private bool FindWeGame(CancellationToken cancelToken, Int64 timeoutSecond, out ZTRectangle wegameRect, out ZTRectangle changeButtonRect) |
| | | private bool FindWeGame(out bool isQQFastLogin,CancellationToken cancelToken, Int64 timeoutSecond, out ZTRectangle wegameRect, out ZTRectangle changeButtonRect) |
| | | { |
| | | ZTRectangle weGameRect = ZTRectangle.Empty; |
| | | ZTRectangle changeLoginMethodButtonRect = ZTRectangle.Empty; |
| | | |
| | | bool isfl = false; |
| | | bool result=FuncUtils.TimeoutCancelableWrap((Int32)timeoutSecond * 1000, cancelToken, () => { |
| | | return WeGameCVHelper.IsLoginPage(out weGameRect, out changeLoginMethodButtonRect); |
| | | return WeGameCVHelper.IsLoginPage(out isfl,out weGameRect, out changeLoginMethodButtonRect); |
| | | }); |
| | | |
| | | isQQFastLogin = isfl; |
| | | wegameRect = weGameRect; |
| | | changeButtonRect = changeLoginMethodButtonRect; |
| | | return result; |
| | |
| | | /// <param name="timeoutSecond"></param> |
| | | /// <param name="dnfItemRect"></param> |
| | | /// <returns></returns> |
| | | private bool LoginDNF(CancellationToken cancelToken, Int64 timeoutSecond) |
| | | private bool LoginDNF(CancellationToken cancelToken, Int64 timeoutSecond,ZTRectangle wegameRect) |
| | | { |
| | | ZTRectangle findRect = ZTRectangle.Empty; |
| | | ZTRectangle pRect = ZTRectangle.Empty; |
| | |
| | | { |
| | | G.Instance.InfoWriter("未找到主页按钮"); |
| | | return false; |
| | | //todo:发通知 |
| | | } |
| | | G.Instance.InfoWriter("主页按钮已找到"); |
| | | G.Instance.InputControl.MoveToAndClick(unselectHomeButtonRect.GetCenterPoint()); |
| | |
| | | { |
| | | G.Instance.InfoWriter("未找到DNF项"); |
| | | return false; |
| | | //todo:发通知 |
| | | } |
| | | G.Instance.InfoWriter("Dnf项已找到"); |
| | | G.Instance.InputControl.MoveToAndClick(dnfItemRect.GetCenterPoint()); |
| | | |
| | | |
| | | //是否需要更新 |
| | | ZTRectangle updateButtonRect = ZTRectangle.Empty; |
| | | result = FuncUtils.TimeoutCancelableWrap(3000, cancelToken, () => { |
| | | return WeGameCVHelper.FindUpdateButton(out updateButtonRect); |
| | | //是否需要更新,如需要则更新 |
| | | ZTRectangle buttonRect = ZTRectangle.Empty; |
| | | bool isUpdate = false; |
| | | result = FuncUtils.TimeoutCancelableWrap((Int32)timeoutSecond*1000, cancelToken, () => { |
| | | return FindGameButton(out buttonRect, out isUpdate); |
| | | }); |
| | | if (result) |
| | | { |
| | | G.Instance.InfoWriter("需要更新请更新后再运行"); |
| | | G.Instance.InputControl.MoveToAndClick(updateButtonRect.GetCenterPoint()); |
| | | return false; |
| | | } |
| | | |
| | | //开始游戏按钮 |
| | | ZTRectangle startGameButtonRect = ZTRectangle.Empty; |
| | | result = FuncUtils.TimeoutCancelableWrap((Int32)timeoutSecond * 1000, cancelToken, () => { |
| | | return WeGameCVHelper.FindStartGameButton(out startGameButtonRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("未找到开始游戏按钮"); |
| | | G.Instance.InfoWriter("未找到开始或升级游戏按钮"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("开始游戏按钮已找到"); |
| | | G.Instance.InputControl.MoveToAndClick(startGameButtonRect.GetCenterPoint()); |
| | | |
| | | |
| | | if (isUpdate) |
| | | { |
| | | //更新 |
| | | G.Instance.InputControl.MoveToAndClick(buttonRect.GetCenterPoint()); |
| | | G.Instance.InfoWriter("需要更新,更新超时时长为30分钟"); |
| | | |
| | | result = FuncUtils.TimeoutCancelableWrap(30 * 60 * 1000, cancelToken, () => { |
| | | G.Instance.InputControl.MoveTo(0, 0, false, false, false); |
| | | |
| | | if (FindGameButton(out buttonRect, out isUpdate)) |
| | | { |
| | | if (isUpdate) |
| | | { |
| | | //如果没点上更新按钮则再点一次 |
| | | G.Instance.InputControl.MoveToAndClick(buttonRect.GetCenterPoint()); |
| | | } |
| | | else |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | |
| | | }); |
| | | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("更新未成功,请手动更新"); |
| | | //todo:发通知 |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | G.Instance.InfoWriter("开始游戏"); |
| | | G.Instance.InputControl.MoveToAndClick(buttonRect.GetCenterPoint()); |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查找游戏按钮 |
| | | /// </summary> |
| | | /// <param name="buttonRect"></param> |
| | | /// <returns></returns> |
| | | private bool FindGameButton(out ZTRectangle buttonRect,out bool isUpdate) |
| | | { |
| | | buttonRect = ZTRectangle.Empty; |
| | | isUpdate = false; |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (WeGameCVHelper.FindUpdateButton(out buttonRect, image)) |
| | | { |
| | | isUpdate = true; |
| | | return true; |
| | | } |
| | | |
| | | if (WeGameCVHelper.FindStartGameButton(out buttonRect, image)) |
| | | { |
| | | isUpdate = false; |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | #region Tools |
| | | /// <summary> |
| | | /// 删除左右指定数量的字符 |
| | |
| | | MessageBox.Show("配置更新成功"); |
| | | } |
| | | #endregion |
| | | |
| | | private ZTPoint GetRolePosition() |
| | | { |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | //原图 |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | //色彩hsv |
| | | Image<Hsv, byte> hsvImage = new Image<Hsv, byte>(image.Width, image.Height); |
| | | |
| | | |
| | | |
| | | CvInvoke.CvtColor(image, hsvImage, Emgu.CV.CvEnum.ColorConversion.Rgb2Hsv); |
| | | |
| | | hsvImage = hsvImage.GetSubRect(new System.Drawing.Rectangle(0, 0, 1280, 720)); |
| | | |
| | | return DnfCVHelper.FindRole(hsvImage, new ZTRectangle(0, 0, 1280, 720)); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 测速 |
| | |
| | | } |
| | | Thread.Sleep(500); |
| | | } |
| | | |
| | | G.Instance.InfoWriter($"测试技能发放完成"); |
| | | }); |
| | | } |
| | | |
| | | private ZTPoint rolePosition = ZTPoint.Empty; |
| | | |
| | | /// <summary> |
| | | /// 读取角色位置 |
| | | /// </summary> |
| | |
| | | Thread.Sleep(1000); |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | CvInvoke.CvtColor(image, hsvImage, Emgu.CV.CvEnum.ColorConversion.Rgb2Hsv); |
| | | rolePosition = DnfCVHelper.FindRole(hsvImage, gameRect); |
| | | ZTPoint rolePosition = DnfCVHelper.FindRole(hsvImage, gameRect); |
| | | |
| | | |
| | | G.Instance.InfoWriter($"角色位置读取成功:{rolePosition}"); |
| | | G.Instance.InfoWriter($"角色位置读取成功,CBPosition:{rolePosition},Half Position:{DnfRole.CBToHalfPosition(rolePosition)},Foot Position:{DnfRole.CBToFootPosition(rolePosition)}"); |
| | | }); |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | private void TestToNextDoor() |
| | | { |
| | | HouseInfo house = new HouseInfo(0, MapType.Kalete, false, null); |
| | | |
| | | ZTRectangle gameRect = ZTRectangle.Empty; |
| | | WindowUtils.GetDnfRect(out gameRect); |
| | | |
| | | HouseInfo house = new HouseInfo(1, MapType.Kalete, false, null,null); |
| | | DnfRole role = new DnfRole(gameRect); |
| | | role.SetHouse(house); |
| | | |
| | | |
| | | Image<Hsv, byte> hsvImage = new Image<Hsv, byte>(gameRect.End.X - gameRect.Start.X, gameRect.End.Y - gameRect.Start.Y ); |
| | | Task.Run(() => { |
| | | WindowUtils.SetDnfToTop(); |
| | |
| | | G.Instance.InfoWriter("找不到定位点"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | ZTPoint rolePosition = DnfCVHelper.FindRole(hsvImage, gameRect); |
| | | ZTPoint start=house.ScreenToMapCoordinate(rolePosition, locationCoor); |
| | | role.UpdatePosition(rolePosition); |
| | | |
| | | |
| | | |
| | | DnfRole role = new DnfRole(gameRect); |
| | | |
| | | Int32 doorIndex = 0; |
| | | List<ZTPoint> paths=house.FindDoorPath(out doorIndex,start); |
| | | ZTPoint last = start; |
| | | for (int i = 0; i < paths.Count; i++) |
| | | { |
| | | //移动 |
| | | ZTPoint distance = paths[i].Sub(last); |
| | | last = paths[i]; |
| | | role.SyncMove(distance); |
| | | } |
| | | ZTPoint start=house.ScreenToMapCoordinate(DnfRole.CBToHalfPosition(rolePosition), locationCoor); |
| | | |
| | | |
| | | ZTPoint roleFootPosition = house.ScreenToMapCoordinate(role.Position, locationCoor); |
| | | ZTPoint ngp = DnfRole.HalfToFootPosition(house.HousePathInfo.NextGates[0].Point); |
| | | role.MoveToMapPoint(roleFootPosition, ngp); |
| | | |
| | | G.Instance.InfoWriter($"测试进入下一关的门完成"); |
| | | }); |
| | |
| | | using RichCreator.Utility.Maps; |
| | | using RichCreator.Utility.Structs; |
| | | using RichCreator.Utility.Utilitys; |
| | | using RichCreator.Utilitys; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Threading; |
| | |
| | | /// <summary> |
| | | /// 卡勒特地图 |
| | | /// </summary> |
| | | public class KaleteMap : MapInfo |
| | | public class KaleteMap : ShikongzhimenMapBase |
| | | { |
| | | public KaleteMap(ZTRectangle gameRect, CancellationToken cancelToken) : base(MapType.Lingdong, gameRect, cancelToken) |
| | | { |
| | | this.MiniMap = new KaleteMiniMap(gameRect); |
| | | this.Role = new DnfRole(gameRect); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// NextIndex=-2,出错 |
| | | /// </summary> |
| | | private static readonly HouseInfo[] Houses = new HouseInfo[] { |
| | | new HouseInfo (0 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (1 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (2 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (3 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (4 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (5 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (6 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (7 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (8 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-148,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (9 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-300,DoorDirection=new[]{Direction.Left} }, |
| | | new HouseInfo (10,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (11,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (12,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-220,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (13,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-320,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (14,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-320,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (15,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (16,MapType.Lingdong,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } }, |
| | | new HouseInfo (17,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (18,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } }, |
| | | new HouseInfo (19,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){ HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } } |
| | | 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) |
| | | }; |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 角色 |
| | | /// </summary> |
| | | public DnfRole Role { get; set; } |
| | | |
| | | |
| | | |
| | | private Int32 runningStep = RunningStep.None; |
| | | |
| | | /// <summary> |
| | |
| | | switch (houseIndex) |
| | | { |
| | | case 0: |
| | | this.Role.SyncMove(new ZTPoint(550, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.R, 1000); |
| | | this.Role.ReleaseSkill(HIDCode.E, 1000); |
| | | this.Role.SyncMove(new ZTPoint(297, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.R); |
| | | this.Role.ReleaseSkill(HIDCode.E); |
| | | |
| | | break; |
| | | case 1: |
| | | this.Role.SyncMove(new ZTPoint(300, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.Q, 1300); |
| | | this.Role.ReleaseSkill(HIDCode.W, 1000); |
| | | this.Role.SyncMove(new ZTPoint(241, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.Q); |
| | | this.Role.ReleaseSkill(HIDCode.W); |
| | | break; |
| | | case 6: |
| | | this.Role.SyncMove(new ZTPoint(448, 94)); |
| | | this.Role.ReleaseSkill(HIDCode.G, 0); |
| | | this.Role.SyncMove(new ZTPoint(139, 90)); |
| | | this.Role.ReleaseSkill(HIDCode.G); |
| | | break; |
| | | case 7: |
| | | this.Role.SyncMove(new ZTPoint(530, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.R, 0); |
| | | this.Role.SyncMove(new ZTPoint(330, 90)); |
| | | this.Role.ReleaseSkill(HIDCode.R); |
| | | break; |
| | | case 8: |
| | | this.Role.SyncMove(new ZTPoint(453, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.H, 0); |
| | | this.Role.SyncMove(new ZTPoint(305, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.H); |
| | | break; |
| | | case 13: |
| | | this.Role.SyncMove(new ZTPoint(-100, 203)); |
| | | this.Role.ReleaseSkill(HIDCode.Q, 1300); |
| | | this.Role.ReleaseSkill(HIDCode.E, 0); |
| | | this.Role.SyncMove(new ZTPoint(-104, 82)); |
| | | this.Role.ReleaseSkill(HIDCode.Q); |
| | | this.Role.ReleaseSkill(HIDCode.E); |
| | | break; |
| | | case 12: |
| | | this.Role.SyncMove(new ZTPoint(-851, 120)); |
| | | this.Role.ReleaseSkill(HIDCode.T, 0); |
| | | this.Role.SyncMove(new ZTPoint(-550, 90)); |
| | | this.Role.ReleaseSkill(HIDCode.T); |
| | | break; |
| | | case 17: |
| | | this.Role.SyncMove(new ZTPoint(-306, 130)); |
| | | this.Role.ReleaseSkill(HIDCode.Q, 1300); |
| | | this.Role.ReleaseSkill(HIDCode.F, 0);//用w代替 |
| | | this.Role.SyncMove(new ZTPoint(-200, 60)); |
| | | this.Role.ReleaseSkill(HIDCode.Q); |
| | | this.Role.ReleaseSkill(HIDCode.F);//用w代替 |
| | | break; |
| | | case 16: |
| | | this.Role.SyncMove(new ZTPoint(-385, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.Y, 0); |
| | | this.Role.SyncMove(new ZTPoint(-174, 0)); |
| | | this.Role.ReleaseSkill(HIDCode.Y); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// esc退到城镇 |
| | | /// </summary> |
| | | private void ExitToTown() |
| | | { |
| | | G.Instance.DebugWriter("返回城镇"); |
| | | Utility.Structs.ZTPoint point = new Utility.Structs.ZTPoint(this.GameRect.End.X - 124, this.GameRect.Start.Y + 146); |
| | | G.Instance.InputControl.MoveToAndClick(point); |
| | | Thread.Sleep(5000); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 点击再次挑战 |
| | | /// </summary> |
| | | private void ReplayGame() |
| | | { |
| | | G.Instance.DebugWriter("重新挑战"); |
| | | Utility.Structs.ZTPoint point = new Utility.Structs.ZTPoint(this.GameRect.End.X - 132, this.GameRect.Start.Y + 90); |
| | | G.Instance.InputControl.MoveToAndClick(point); |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 刷房间 |
| | | /// </summary> |
| | |
| | | G.Instance.InfoWriter("未找到进入凛冬"); |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("进入凛冬"); |
| | | G.Instance.InfoWriter("进入卡勒特"); |
| | | |
| | | Int32 preHouseIndex = -1; |
| | | Int32 houseIndex = -1; |
| | |
| | | HouseInfo houseInfo = Houses[houseIndex]; |
| | | this.Role.SetHouse(houseInfo); |
| | | DateTime startTime = DateTime.Now; |
| | | KillMonsterStateMachine kmsm = new KillMonsterStateMachine(this, houseInfo,this.Role, preHouseIndex, this.runningStep); |
| | | ZTResult smresult = kmsm.Work(5 * 60 * 1000); |
| | | 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) + "秒"); |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行到素喃 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MoveToSunan() |
| | | { |
| | | bool result = FuncUtils.NoChangeRetryCallWrap( |
| | | () => |
| | | { |
| | | WindowUtils.SetDnfToTop(); |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | //向下走出赛丽亚的房间 ,走向素喃 |
| | | G.Instance.InputControl.PressKey(2000, HIDCode.DownArrow); |
| | | }, |
| | | () => |
| | | { |
| | | G.Instance.InfoWriter("检测是否进入素喃"); |
| | | result = FuncUtils.TimeoutCancelableWrap(10000, this.CancelToken, () => |
| | | { |
| | | return LindongCVHelper.IsInSunan(this.GameRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("进入素喃失败"); |
| | | return false; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("进入素喃成功"); |
| | | return true; |
| | | }, |
| | | () => |
| | | { |
| | | return DnfCVHelper.IsInSaiLiYaHouse(this.GameRect); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行至时空之门 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MoveToShikongzhimen() |
| | | { |
| | | bool result = FuncUtils.NoChangeRetryCallWrap(() => |
| | | { |
| | | //打开地图 |
| | | ZTPoint mapButtonPosition = new ZTPoint(this.GameRect.End.X - 14, this.GameRect.Start.Y + 16); |
| | | G.Instance.InputControl.MoveToAndClick(mapButtonPosition); |
| | | Thread.Sleep(1000); |
| | | |
| | | //点到副本之前的地图 |
| | | ZTPoint mapPrePosition = new ZTPoint(this.GameRect.Start.X + 382, this.GameRect.Start.Y + 252); |
| | | G.Instance.InputControl.MoveToAndClick(mapPrePosition); |
| | | |
| | | //关闭地图框 |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | }, |
| | | () => |
| | | { |
| | | //检测是否进入时空之门 |
| | | return FuncUtils.TimeoutCancelableWrap(15000, this.CancelToken, () => |
| | | { |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | return LindongCVHelper.IsInShikongzhimen(this.GameRect); |
| | | }); |
| | | }, |
| | | () => |
| | | { |
| | | //检测是否还在素喃 |
| | | return FuncUtils.TimeoutCancelableWrap(3000, this.CancelToken, () => |
| | | { |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | return LindongCVHelper.IsInSunan(this.GameRect); |
| | | }); |
| | | }); |
| | | |
| | | Thread.Sleep(5000); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行到任务选择和正式开打页面 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MoveToChoiceTaskPage() |
| | | { |
| | | bool result = false; |
| | | //右走进选择副本界面 |
| | | G.Instance.InputControl.PressKey(1500, HIDCode.LeftArrow); |
| | | |
| | | |
| | | G.Instance.InfoWriter("检测是否打开选择副本界面"); |
| | | result = FuncUtils.TimeoutCancelableWrap(10000, this.CancelToken, () => |
| | | { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | return LindongCVHelper.IsInChoiceTaskPage(image, this.GameRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("进入打开选择副本界面失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("打开选择副本界面成功"); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 进入指定房间 |
| | | /// </summary> |
| | |
| | | private bool IntoHouse() |
| | | { |
| | | bool result = false; |
| | | //选择凛冬 |
| | | //选择卡勒特之初 |
| | | G.Instance.InfoWriter("开始选择卡勒特之初"); |
| | | |
| | | Int32 nandu = 0; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private void CloseAllAlertWindow(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | //G.Instance.InputControl.MoveTo(gameRect.Start.X,gameRect.Start.Y, false, false, false); |
| | | //Thread.Sleep(10); |
| | | //截图 |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择凛冬 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(new ZTPoint(this.GameRect.Start.X + 819, this.GameRect.Start.Y + 181)); |
| | | G.Instance.InputControl.MoveToAndClick(new ZTPoint(this.GameRect.Start.X + 568, this.GameRect.Start.Y + 141)); |
| | | Thread.Sleep(5000); |
| | | image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (KaleteCVHelper.GetChoiceKaleteNandu(out nandu, image, this.GameRect)) |
| | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 出售装备 |
| | | /// </summary> |
| | | /// <param name="saleButtonRect"></param> |
| | | private bool SaleEquipment() |
| | | { |
| | | //卖装备并关闭商店 |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | ZTRectangle saleButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.HasSaleButton(out saleButtonRect, out closeButtonRect, this.GameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //卖装备 |
| | | G.Instance.InfoWriter("出售装备"); |
| | | G.Instance.InputControl.MoveToAndClick(saleButtonRect.GetCenterPoint()); |
| | | |
| | | //得到装备文字位置 |
| | | ZTRectangle equipmentTextRect = ZTRectangle.Empty; |
| | | bool result = FuncUtils.TimeoutCancelableWrap(5000, this.CancelToken, () => |
| | | { |
| | | Int32 status = 0; |
| | | if (DnfCVHelper.GetEquipmentSelectStatus(out equipmentTextRect, out status, this.GameRect)) |
| | | { |
| | | if (status == 1) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(equipmentTextRect.GetCenterPoint()); |
| | | } |
| | | return false; |
| | | }); |
| | | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("装备文字未取到"); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | //开始点,每格步进30 |
| | | ZTPoint startPoint = new Utility.Structs.ZTPoint(equipmentTextRect.End.X - 30, equipmentTextRect.End.Y + 9); |
| | | List<Int32> points = DnfCVHelper.GetEquipmentIndexs(startPoint); |
| | | |
| | | for (int i = 0; i < points.Count; i++) |
| | | { |
| | | Int32 index = points[i]; |
| | | |
| | | int row = index / 8; |
| | | int col = index % 8; |
| | | int x = col * 30 + 15; |
| | | int y = row * 30 + 15; |
| | | |
| | | //点窗格 |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(startPoint.X + x, startPoint.Y + y)); |
| | | Thread.Sleep(500); |
| | | //点确定 |
| | | G.Instance.InputControl.Move(0, 0, true, false, false); |
| | | Thread.Sleep(RandomUtils.MouseClickDuration); |
| | | G.Instance.InputControl.Move(0, 0, false, false, false); |
| | | Thread.Sleep(RandomUtils.MouseClickDuration); |
| | | } |
| | | G.Instance.DebugWriter("equipment:" + ZTImage.Utils.ConcatString(points.ToArray(), ",")); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Escape); |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | public class KaleteMiniMap : IMiniMap |
| | | { |
| | | public KaleteMiniMap(ZTRectangle gameRect):base(gameRect, new ZTPoint(1183, 47)) |
| | | public KaleteMiniMap(ZTRectangle gameRect):base(gameRect, new ZTPoint(703, 47)) |
| | | {} |
| | | |
| | | |
| | |
| | | /// <summary> |
| | | /// 凛冬地图 |
| | | /// </summary> |
| | | public class LindongMap : MapInfo |
| | | public class LindongMap : ShikongzhimenMapBase |
| | | { |
| | | public LindongMap(ZTRectangle gameRect, CancellationToken cancelToken) :base(MapType.Lingdong,gameRect,cancelToken) |
| | | { |
| | | this.MiniMap = new LindongMiniMap(gameRect); |
| | | this.Role = new DnfRole(gameRect); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 角色 |
| | | /// </summary> |
| | | public DnfRole Role { get; set; } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 地图的所有房间 |
| | | /// NextIndex=-1,完成 |
| | | /// NextIndex=-2,出错 |
| | | /// </summary> |
| | | private static readonly HouseInfo[] Houses = new HouseInfo[] { |
| | | new HouseInfo (0 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (1 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (2 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (3 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (4 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (5 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (6 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (7 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (8 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-148,DoorDirection=new[]{Direction.Right,Direction.Bottom } }, |
| | | new HouseInfo (9 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-300,DoorDirection=new[]{Direction.Right,Direction.Bottom } }, |
| | | new HouseInfo (10,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Bottom } }, |
| | | new HouseInfo (11,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Left } }, |
| | | new HouseInfo (12,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-220,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (13,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-320,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (14,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-320,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (15,MapType.Lingdong,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Right } }, |
| | | new HouseInfo (16,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } }, |
| | | new HouseInfo (17,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } }, |
| | | new HouseInfo (18,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } }, |
| | | new HouseInfo (19,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X}){HouseCenterMoveLine=-250,DoorDirection=new[]{Direction.Up } } |
| | | new HouseInfo (0 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (1 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (2 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (3 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (4 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (5 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (6 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (7 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (8 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (9 ,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (10,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (11,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (12,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (13,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (14,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (15,MapType.Lingdong,true ,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (16,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (17,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (18,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null), |
| | | new HouseInfo (19,MapType.Lingdong,false,new HIDCode[] { HIDCode.A,HIDCode.D,HIDCode.X},null) |
| | | }; |
| | | |
| | | private Int32 runningStep = RunningStep.None; |
| | |
| | | } |
| | | }, 10); |
| | | |
| | | //if (!findResult) |
| | | //{ |
| | | // G.Instance.InfoWriter("未找到进入凛冬的文字"); |
| | | //} |
| | | //else |
| | | //{ |
| | | // G.Instance.InfoWriter("进入凛冬"); |
| | | //} |
| | | if (!findResult) |
| | | { |
| | | G.Instance.InfoWriter("未找到进入凛冬的文字"); |
| | | } |
| | | else |
| | | { |
| | | G.Instance.InfoWriter("进入凛冬"); |
| | | } |
| | | |
| | | return findResult; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// esc退到城镇 |
| | | /// 进入每个房间前的工作 |
| | | /// </summary> |
| | | private void ExitToTown() |
| | | { |
| | | G.Instance.DebugWriter("返回城镇"); |
| | | Utility.Structs.ZTPoint point = new Utility.Structs.ZTPoint(this.GameRect.End.X - 124, this.GameRect.Start.Y + 146); |
| | | G.Instance.InputControl.MoveToAndClick(point); |
| | | Thread.Sleep(5000); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 点击再次挑战 |
| | | /// </summary> |
| | | private void ReplayGame() |
| | | { |
| | | G.Instance.DebugWriter("重新挑战"); |
| | | Utility.Structs.ZTPoint point = new Utility.Structs.ZTPoint(this.GameRect.End.X - 132, this.GameRect.Start.Y + 90); |
| | | G.Instance.InputControl.MoveToAndClick(point); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 刷房间 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private ZTResult KillMonster() |
| | | { |
| | | bool ret = false; |
| | | |
| | | if (!IsEntryMap()) |
| | | { |
| | | G.Instance.InfoWriter("未找到进入凛冬"); |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("进入凛冬"); |
| | | |
| | | Int32 preHouseIndex = -1; |
| | | Int32 houseIndex = -1; |
| | | |
| | | |
| | | //技能加成 |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Space); |
| | | |
| | | //循环刷房间 |
| | | while (true) |
| | | { |
| | | preHouseIndex = houseIndex; |
| | | //看房间号 |
| | | ret = this.MiniMap.GetCurrentHouseIndexWaitTimeout(out houseIndex, null, this.CancelToken, 3 * 1000); |
| | | if (!ret) |
| | | { |
| | | G.Instance.InfoWriter("未找到人物所在房间"); |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("进入房间->" + houseIndex.ToString()); |
| | | |
| | | HouseInfo houseInfo = Houses[houseIndex]; |
| | | this.Role.SetHouse(houseInfo); |
| | | DateTime startTime = DateTime.Now; |
| | | KillMonsterStateMachine kmsm = new KillMonsterStateMachine(this, houseInfo,this.Role, preHouseIndex,this.runningStep); |
| | | ZTResult smresult = kmsm.Work( 5 * 60 * 1000); |
| | | Int32 roomTotalSecond = (Int32)(DateTime.Now - startTime).TotalSeconds; |
| | | G.Instance.InfoWriter("房间刷完,用时:" + (roomTotalSecond / 60) + "分" + (roomTotalSecond % 60) + "秒"); |
| | | |
| | | runningStep = RunningStep.None; |
| | | if (smresult == ZTResult.Success) |
| | | { |
| | | if (houseInfo.IsEnd) |
| | | { |
| | | //所有房间刷完 |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | //刷其它房间 |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | return smresult; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行到素喃 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MoveToSunan() |
| | | { |
| | | bool result = FuncUtils.NoChangeRetryCallWrap( |
| | | () => |
| | | { |
| | | WindowUtils.SetDnfToTop(); |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | //向下走出赛丽亚的房间 ,走向素喃 |
| | | G.Instance.InputControl.PressKey(2000, HIDCode.DownArrow); |
| | | }, |
| | | () => |
| | | { |
| | | G.Instance.InfoWriter("检测是否进入素喃"); |
| | | result = FuncUtils.TimeoutCancelableWrap(10000, this.CancelToken, () => { |
| | | return LindongCVHelper.IsInSunan(this.GameRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("进入素喃失败"); |
| | | return false; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("进入素喃成功"); |
| | | return true; |
| | | }, |
| | | () => |
| | | { |
| | | return DnfCVHelper.IsInSaiLiYaHouse(this.GameRect); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行至时空之门 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MoveToShikongzhimen() |
| | | { |
| | | bool result= FuncUtils.NoChangeRetryCallWrap(() => |
| | | { |
| | | //打开地图 |
| | | Utility.Structs.ZTPoint mapButtonPosition = new Utility.Structs.ZTPoint(this.GameRect.End.X - 14, this.GameRect.Start.Y + 16); |
| | | G.Instance.InputControl.MoveToAndClick(mapButtonPosition); |
| | | Thread.Sleep(1000); |
| | | |
| | | //点到副本之前的地图 |
| | | Utility.Structs.ZTPoint mapPrePosition = new Utility.Structs.ZTPoint(this.GameRect.Start.X + 382, this.GameRect.Start.Y + 252); |
| | | G.Instance.InputControl.MoveToAndClick(mapPrePosition); |
| | | |
| | | //关闭地图框 |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | }, |
| | | () => |
| | | { |
| | | //检测是否进入时空之门 |
| | | return FuncUtils.TimeoutCancelableWrap(15000, this.CancelToken, () => |
| | | { |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | return LindongCVHelper.IsInShikongzhimen(this.GameRect); |
| | | }); |
| | | }, |
| | | () => |
| | | { |
| | | //检测是否还在素喃 |
| | | return FuncUtils.TimeoutCancelableWrap(3000, this.CancelToken, () => { |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | return LindongCVHelper.IsInSunan(this.GameRect); |
| | | }); |
| | | }); |
| | | |
| | | Thread.Sleep(5000); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行到任务选择和正式开打页面 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MoveToChoiceTaskPage() |
| | | { |
| | | bool result = false; |
| | | //右走进选择副本界面 |
| | | G.Instance.InputControl.PressKey(1500, HIDCode.LeftArrow); |
| | | |
| | | |
| | | G.Instance.InfoWriter("检测是否打开选择副本界面"); |
| | | result = FuncUtils.TimeoutCancelableWrap(10000, this.CancelToken, () => { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | return LindongCVHelper.IsInChoiceTaskPage(image, this.GameRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("进入打开选择副本界面失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("打开选择副本界面成功"); |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 进入指定房间 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool IntoTaskRoom() |
| | | { |
| | | |
| | | bool result = false; |
| | | //选择凛冬 |
| | | G.Instance.InfoWriter("开始选择凛冬"); |
| | | |
| | | Int32 nandu = 0; |
| | | if (!SelectLindong(out nandu)) |
| | | { |
| | | G.Instance.InfoWriter("选择凛冬失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("选择凛冬成功,难度:"+nandu); |
| | | |
| | | |
| | | |
| | | if (nandu != 4) |
| | | { |
| | | G.Instance.InfoWriter("开始选择难度"); |
| | | result=SelectNandu(nandu); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("选择难度失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("选择难度成功"); |
| | | } |
| | | |
| | | |
| | | //开始 |
| | | G.Instance.InputControl.PressKey(80, HIDCode.Space); |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private void CloseAllAlertWindow(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | //G.Instance.InputControl.MoveTo(gameRect.Start.X,gameRect.Start.Y, false, false, false); |
| | | //Thread.Sleep(10); |
| | | //截图 |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择凛冬 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool SelectLindong(out Int32 nandu) |
| | | { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | if (LindongCVHelper.GetChoiceLingdongNandu(out nandu, image, this.GameRect)) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(this.GameRect.Start.X + 508, this.GameRect.Start.Y + 552)); |
| | | Thread.Sleep(5000); |
| | | image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (LindongCVHelper.GetChoiceLingdongNandu(out nandu, image, this.GameRect)) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择难度 |
| | | /// </summary> |
| | | /// <param name="rightCan"></param> |
| | | /// <param name="leftCan"></param> |
| | | /// <returns></returns> |
| | | private bool SelectNandu(Int32 nandu) |
| | | { |
| | | Int32 count = 4 - nandu; |
| | | for (int i = 0; i < Math.Abs(count); i++) |
| | | { |
| | | if (count < 0) |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.LeftArrow); |
| | | } |
| | | else |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.RightArrow); |
| | | } |
| | | Thread.Sleep(400); |
| | | } |
| | | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (!LindongCVHelper.GetChoiceLingdongNandu(out nandu, image, this.GameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | if (nandu == 4) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 出售装备 |
| | | /// </summary> |
| | | /// <param name="saleButtonRect"></param> |
| | | private bool SaleEquipment() |
| | | { |
| | | //卖装备并关闭商店 |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | ZTRectangle saleButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.HasSaleButton(out saleButtonRect, out closeButtonRect, this.GameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | //卖装备 |
| | | G.Instance.InfoWriter("出售装备"); |
| | | G.Instance.InputControl.MoveToAndClick(saleButtonRect.GetCenterPoint()); |
| | | |
| | | //得到装备文字位置 |
| | | ZTRectangle equipmentTextRect = ZTRectangle.Empty; |
| | | bool result = FuncUtils.TimeoutCancelableWrap(5000, this.CancelToken, () => { |
| | | Int32 status = 0; |
| | | if (DnfCVHelper.GetEquipmentSelectStatus(out equipmentTextRect, out status, this.GameRect)) |
| | | { |
| | | if (status == 1) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(equipmentTextRect.GetCenterPoint()); |
| | | } |
| | | return false; |
| | | }); |
| | | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("装备文字未取到"); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | //开始点,每格步进30 |
| | | ZTPoint startPoint = new Utility.Structs.ZTPoint( equipmentTextRect.End.X-30, equipmentTextRect.End.Y+9); |
| | | List<Int32> points = DnfCVHelper.GetEquipmentIndexs(startPoint); |
| | | |
| | | for (int i = 0; i < points.Count; i++) |
| | | { |
| | | Int32 index = points[i]; |
| | | |
| | | int row = index / 8; |
| | | int col = index % 8; |
| | | int x = col * 30+15; |
| | | int y = row * 30+15; |
| | | |
| | | //点窗格 |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(startPoint.X + x, startPoint.Y + y)); |
| | | Thread.Sleep(500); |
| | | //点确定 |
| | | G.Instance.InputControl.Move(0, 0, true, false, false); |
| | | Thread.Sleep(RandomUtils.MouseClickDuration); |
| | | G.Instance.InputControl.Move(0, 0, false, false, false); |
| | | Thread.Sleep(RandomUtils.MouseClickDuration); |
| | | } |
| | | G.Instance.DebugWriter("equipment:" +ZTImage.Utils.ConcatString(points.ToArray(),",")); |
| | | Thread.Sleep(RandomUtils.KeyPressDuration); |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Escape); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | /// <param name="houseIndex"></param> |
| | | /// <param name="preHouseIndex"></param> |
| | | public override void EntryHousePrework(int houseIndex, int preHouseIndex) |
| | | { |
| | | G.Instance.InfoWriter("in lingdong"); |
| | | //移动和发招 |
| | | switch (houseIndex) |
| | | { |
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 刷房间 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private ZTResult KillMonster() |
| | | { |
| | | bool ret = false; |
| | | |
| | | if (!IsEntryMap()) |
| | | { |
| | | G.Instance.InfoWriter("未找到进入凛冬"); |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("进入凛冬"); |
| | | |
| | | Int32 preHouseIndex = -1; |
| | | Int32 houseIndex = -1; |
| | | |
| | | |
| | | //技能加成 |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Space); |
| | | |
| | | //循环刷房间 |
| | | while (true) |
| | | { |
| | | preHouseIndex = houseIndex; |
| | | //看房间号 |
| | | ret = this.MiniMap.GetCurrentHouseIndexWaitTimeout(out houseIndex, null, this.CancelToken, 3 * 1000); |
| | | if (!ret) |
| | | { |
| | | G.Instance.InfoWriter("未找到人物所在房间"); |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("进入房间->" + houseIndex.ToString()); |
| | | |
| | | HouseInfo houseInfo = Houses[houseIndex]; |
| | | this.Role.SetHouse(houseInfo); |
| | | DateTime startTime = DateTime.Now; |
| | | KillMonsterStateMachine kmsm = new KillMonsterStateMachine(this, houseInfo,this.Role); |
| | | ZTResult smresult = kmsm.Work( 5 * 60 * 1000,preHouseIndex,this.runningStep); |
| | | Int32 roomTotalSecond = (Int32)(DateTime.Now - startTime).TotalSeconds; |
| | | G.Instance.InfoWriter("房间刷完,用时:" + (roomTotalSecond / 60) + "分" + (roomTotalSecond % 60) + "秒"); |
| | | |
| | | runningStep = RunningStep.None; |
| | | if (smresult == ZTResult.Success) |
| | | { |
| | | if (houseInfo.IsEnd) |
| | | { |
| | | //所有房间刷完 |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | //刷其它房间 |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | return smresult; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 进入指定房间 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool IntoTaskRoom() |
| | | { |
| | | |
| | | bool result = false; |
| | | //选择凛冬 |
| | | G.Instance.InfoWriter("开始选择凛冬"); |
| | | |
| | | Int32 nandu = 0; |
| | | if (!SelectLindong(out nandu)) |
| | | { |
| | | G.Instance.InfoWriter("选择凛冬失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("选择凛冬成功,难度:" + nandu); |
| | | |
| | | if (nandu != 4) |
| | | { |
| | | G.Instance.InfoWriter("开始选择难度"); |
| | | result = SelectNandu(nandu); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("选择难度失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("选择难度成功"); |
| | | } |
| | | |
| | | //开始 |
| | | G.Instance.InputControl.PressKey(80, HIDCode.Space); |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择凛冬 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool SelectLindong(out Int32 nandu) |
| | | { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | if (LindongCVHelper.GetChoiceLingdongNandu(out nandu, image, this.GameRect)) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(new Utility.Structs.ZTPoint(this.GameRect.Start.X + 313, this.GameRect.Start.Y + 462)); |
| | | Thread.Sleep(5000); |
| | | image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (LindongCVHelper.GetChoiceLingdongNandu(out nandu, image, this.GameRect)) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择难度 |
| | | /// </summary> |
| | | /// <param name="rightCan"></param> |
| | | /// <param name="leftCan"></param> |
| | | /// <returns></returns> |
| | | private bool SelectNandu(Int32 nandu) |
| | | { |
| | | Int32 count = 4 - nandu; |
| | | for (int i = 0; i < Math.Abs(count); i++) |
| | | { |
| | | if (count < 0) |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.LeftArrow); |
| | | } |
| | | else |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.RightArrow); |
| | | } |
| | | Thread.Sleep(400); |
| | | } |
| | | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | if (!LindongCVHelper.GetChoiceLingdongNandu(out nandu, image, this.GameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | if (nandu == 4) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | { |
| | | public class LindongMiniMap : IMiniMap |
| | | { |
| | | public LindongMiniMap(ZTRectangle gameRect):base(gameRect, new ZTPoint(1201, 47)) |
| | | public LindongMiniMap(ZTRectangle gameRect):base(gameRect, new ZTPoint(721, 47)) |
| | | {} |
| | | |
| | | |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using RichCreator.Dnf; |
| | | using RichCreator.Utility.Utilitys; |
| | | |
| | | namespace RichCreator.Maps.Lindong |
| | | { |
| | |
| | | switch (houseIndex) |
| | | { |
| | | case 5: |
| | | if (Utilitys.Utils.IsInRect(rolePosition, bounds[AREA_5Bound])) |
| | | if (GeoHelper.IsInRect(rolePosition, bounds[AREA_5Bound])) |
| | | { |
| | | areaID = AREA_5Bound; |
| | | return true; |
| New file |
| | |
| | | using Emgu.CV; |
| | | using Emgu.CV.Structure; |
| | | using RichCreator.Dnf; |
| | | using RichCreator.Utility; |
| | | using RichCreator.Utility.Captures; |
| | | using RichCreator.Utility.CV; |
| | | using RichCreator.Utility.InputControl; |
| | | using RichCreator.Utility.Maps; |
| | | using RichCreator.Utility.Structs; |
| | | using RichCreator.Utility.Utilitys; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace RichCreator.Maps |
| | | { |
| | | public abstract class ShikongzhimenMapBase:MapInfo |
| | | { |
| | | public ShikongzhimenMapBase(MapType mapType, ZTRectangle gameRect, CancellationToken cancellationToken):base(mapType,gameRect,cancellationToken) |
| | | { } |
| | | /// <summary> |
| | | /// 步行到素喃 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | protected bool MoveToSunan() |
| | | { |
| | | bool result = FuncUtils.NoChangeRetryCallWrap( |
| | | () => |
| | | { |
| | | WindowUtils.SetDnfToTop(); |
| | | CloseAllAlertWindowByX(this.CancelToken, this.GameRect); |
| | | //向下走出赛丽亚的房间 ,走向素喃 |
| | | G.Instance.InputControl.PressKey(2000, HIDCode.DownArrow); |
| | | return true; |
| | | }, |
| | | () => |
| | | { |
| | | G.Instance.InfoWriter("检测是否进入素喃"); |
| | | result = FuncUtils.TimeoutCancelableWrap(10000, this.CancelToken, () => { |
| | | return ShikongzhimenCVHelper.IsInSunan(this.GameRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("进入素喃失败"); |
| | | return false; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("进入素喃成功"); |
| | | return true; |
| | | }, |
| | | () => |
| | | { |
| | | return DnfCVHelper.IsInSaiLiYaHouse(this.GameRect); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行至时空之门 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | protected bool MoveToShikongzhimen() |
| | | { |
| | | bool result = FuncUtils.NoChangeRetryCallWrap(() => |
| | | { |
| | | //打开地图 |
| | | Utility.Structs.ZTPoint mapButtonPosition = new Utility.Structs.ZTPoint(this.GameRect.Start.X + 782, this.GameRect.Start.Y + 16); |
| | | G.Instance.InputControl.MoveToAndClick(mapButtonPosition); |
| | | Thread.Sleep(1000); |
| | | |
| | | //点到副本之前的地图 |
| | | Utility.Structs.ZTPoint mapPrePosition = new Utility.Structs.ZTPoint(this.GameRect.Start.X + 143, this.GameRect.Start.Y + 197); |
| | | G.Instance.InputControl.MoveToAndClick(mapPrePosition); |
| | | Thread.Sleep(1000); |
| | | |
| | | //关闭地图框 |
| | | CloseAllAlertWindowByEsc(this.CancelToken, this.GameRect); |
| | | return true; |
| | | }, |
| | | () => |
| | | { |
| | | //检测是否进入时空之门 |
| | | return FuncUtils.TimeoutCancelableWrap(15000, this.CancelToken, () => |
| | | { |
| | | CloseAllAlertWindowByX(this.CancelToken, this.GameRect); |
| | | return ShikongzhimenCVHelper.IsInShikongzhimen(this.GameRect); |
| | | }); |
| | | }, |
| | | () => |
| | | { |
| | | //检测是否还在素喃 |
| | | return FuncUtils.TimeoutCancelableWrap(3000, this.CancelToken, () => { |
| | | CloseAllAlertWindowByX(this.CancelToken, this.GameRect); |
| | | return ShikongzhimenCVHelper.IsInSunan(this.GameRect); |
| | | }); |
| | | }); |
| | | |
| | | Thread.Sleep(5000); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 步行到任务选择和正式开打页面 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | protected bool MoveToChoiceTaskPage() |
| | | { |
| | | bool result = false; |
| | | //右走进选择副本界面 |
| | | G.Instance.InputControl.PressKey(1500, HIDCode.LeftArrow); |
| | | |
| | | |
| | | G.Instance.InfoWriter("检测是否打开选择副本界面"); |
| | | result = FuncUtils.TimeoutCancelableWrap(10000, this.CancelToken, () => { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | return ShikongzhimenCVHelper.IsInChoiceTaskPage(image, this.GameRect); |
| | | }); |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("进入打开选择副本界面失败"); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("打开选择副本界面成功"); |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | |
| | | G.Instance.InfoWriter("技能摆放成功"); |
| | | |
| | | |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | CloseAllAlertWindowByEsc(this.CancelToken, this.GameRect); |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | |
| | | ZTRectangle innertitleRect=ZTRectangle.Empty, innerlvRect = ZTRectangle.Empty, innerupKeyRect = ZTRectangle.Empty, innerdownKeyRect = ZTRectangle.Empty; |
| | | for (int i = 0; i < 2; i++) |
| | | { |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | CloseAllAlertWindowByEsc(this.CancelToken, this.GameRect); |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration,HIDCode.K); |
| | | |
| | | bool result=FuncUtils.TimeoutCancelableWrap(5000, this.CancelToken, () => { |
| | |
| | | { |
| | | //如果当前选的是tp技能学习(tp技能学习的右侧滚动条跟sp右侧的不一样),则: |
| | | //选中sp技能学习 |
| | | Utility.Structs.ZTPoint spPoint = new Utility.Structs.ZTPoint(lvRect.End.X + 55, lvRect.Start.Y - 80); |
| | | Utility.Structs.ZTPoint spPoint = new Utility.Structs.ZTPoint(this.GameRect.Start.X+65, this.GameRect.Start.Y+105); |
| | | G.Instance.InputControl.MoveToAndClick(spPoint); |
| | | |
| | | result = FuncUtils.TimeoutCancelableWrap(3000, this.CancelToken, () => { |
| | | //识别技能窗 |
| | | return SkillCVHelper.FindCommonUpDownKey(out innerupKeyRect, out innerdownKeyRect, this.titleRect,this.GameRect); |
| | | return SkillCVHelper.FindCommonUpDownKey(out innerupKeyRect, out innerdownKeyRect, this.GameRect); |
| | | },300); |
| | | if (!result) |
| | | { |
| | |
| | | private bool InitSkills() |
| | | { |
| | | //点击初始化 |
| | | Utility.Structs.ZTPoint initButton = new Utility.Structs.ZTPoint(this.upKeyRect.Start.X - 37, this.upKeyRect.Start.Y - 86); |
| | | Utility.Structs.ZTPoint initButton = new Utility.Structs.ZTPoint(this.GameRect.Start.X +510, this.GameRect.Start.Y +105); |
| | | G.Instance.InputControl.MoveToAndClick(initButton); |
| | | |
| | | //是否已打开确认对话框 |
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private void CloseAllAlertWindow(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | //G.Instance.InputControl.MoveTo(gameRect.Start.X,gameRect.Start.Y, false, false, false); |
| | | //Thread.Sleep(10); |
| | | //截图 |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置顶端技能 |
| | |
| | | private bool SettingTopSkills() |
| | | { |
| | | //物理暴击 |
| | | Utility.Structs.ZTPoint skillPoint = new Utility.Structs.ZTPoint(lvRect.End.X + 200, lvRect.Start.Y - 42); |
| | | Utility.Structs.ZTPoint skillPoint = new Utility.Structs.ZTPoint(this.GameRect.Start.X+224, this.GameRect.Start.Y+143); |
| | | SettingSkill(skillPoint); |
| | | |
| | | //物理背击 |
| | | skillPoint = new Utility.Structs.ZTPoint(lvRect.End.X + 280, lvRect.Start.Y - 42); |
| | | skillPoint = new Utility.Structs.ZTPoint(this.GameRect.Start.X + 306, this.GameRect.Start.Y + 143); |
| | | SettingSkill(skillPoint); |
| | | return true; |
| | | } |
| | |
| | | private bool SettingSPSkills() |
| | | { |
| | | //选中sp技能学习 |
| | | Utility.Structs.ZTPoint spPoint = new Utility.Structs.ZTPoint(lvRect.End.X + 55, lvRect.Start.Y - 80); |
| | | Utility.Structs.ZTPoint spPoint = new Utility.Structs.ZTPoint(this.GameRect.Start.X + 65, this.GameRect.Start.Y + 105); |
| | | //原来 Utility.Structs.ZTPoint spPoint = new Utility.Structs.ZTPoint(lvRect.End.X + 55, lvRect.Start.Y - 80); |
| | | G.Instance.InputControl.MoveToAndClick(spPoint); |
| | | |
| | | ZTRectangle numberLimitArea = new ZTRectangle(lvRect.Start.X-5,lvRect.End.Y,lvRect.End.X+21,lvRect.End.Y+340); |
| | |
| | | /// <returns></returns> |
| | | private bool SettingSkill(Utility.Structs.ZTPoint skillPoint) |
| | | { |
| | | //84,71 |
| | | ZTRectangle limitRect = new ZTRectangle(skillPoint.X-84,skillPoint.Y-71,skillPoint.X+84,skillPoint.Y+71); |
| | | //加技能按钮区域 |
| | | ZTRectangle limitRect = new ZTRectangle(skillPoint.X-52,skillPoint.Y+27,skillPoint.X+52,skillPoint.Y+63); |
| | | |
| | | bool result = false; |
| | | ZTRectangle addSkillLevelButton = ZTRectangle.Empty; |
| | |
| | | |
| | | } |
| | | |
| | | private const bool isCreateGroup = true; |
| | | |
| | | public override ZTResult Start(Int32 runningStep) |
| | | {WindowUtils.SetDnfToTop(); |
| | | { |
| | | WindowUtils.SetDnfToTop(); |
| | | |
| | | |
| | | |
| | | |
| | | const bool isCreateGroup = true; |
| | | string groupName = "aabbccddee"; |
| | | if (isCreateGroup) |
| | | { |
| | |
| | | } |
| | | //沉默一段时间 |
| | | Thread.Sleep(50000000); |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | CloseAllAlertWindowByX(this.CancelToken, this.GameRect); |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | |
| | | ZTRectangle innerGroupWindowTextRect = ZTRectangle.Empty, innerSearchButtonRect = ZTRectangle.Empty, innerCreateGroupButton = ZTRectangle.Empty; |
| | | for (int i = 0; i < 2; i++) |
| | | { |
| | | CloseAllAlertWindow(this.CancelToken, this.GameRect); |
| | | CloseAllAlertWindowByX(this.CancelToken, this.GameRect); |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.RightSquarebrackets); |
| | | |
| | | bool result = FuncUtils.TimeoutCancelableWrap(5000, this.CancelToken, () => { |
| | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private void CloseAllAlertWindow(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | //G.Instance.InputControl.MoveTo(gameRect.Start.X,gameRect.Start.Y, false, false, false); |
| | | //Thread.Sleep(10); |
| | | //截图 |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | <Compile Include="Dnf\DnfRole.cs" /> |
| | | <Compile Include="Dnf\IMiniMap.cs" /> |
| | | <Compile Include="Dnf\MapInfo.cs" /> |
| | | <Compile Include="Utilitys\GameUtils.cs" /> |
| | | <Compile Include="Maps\Kalete\KaleteMap.cs" /> |
| | | <Compile Include="Maps\Kalete\KaleteMiniMap.cs" /> |
| | | <Compile Include="Maps\Kalete\OutOfBounds.cs" /> |
| | | <Compile Include="Maps\Lindong\LindongMiniMap.cs" /> |
| | | <Compile Include="Maps\ShikongzhimenMapBase.cs" /> |
| | | <Compile Include="Maps\Test\TestMap.cs" /> |
| | | <Compile Include="Maps\SkillSetting\SkillSettingMap.cs" /> |
| | | <Compile Include="Services\ServiceProvider.cs" /> |
| | |
| | | <Compile Include="Models\RichCreatorConfig.cs" /> |
| | | <Compile Include="Jobs\WeGameJob.cs" /> |
| | | <Compile Include="Utilitys\AttackRectangle.cs" /> |
| | | <Compile Include="Utilitys\Utils.cs" /> |
| | | <Compile Include="ViewModels\ConfigViewModel.cs" /> |
| | | <Compile Include="ViewModels\NotificationObject.cs" /> |
| | | <Page Include="MainWindow.xaml"> |
| | |
| | | <Name>RichCreator.Utility</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <ItemGroup /> |
| | | <ItemGroup> |
| | | <Content Include="configs\lingdong.txt"> |
| | | <SubType>Designer</SubType> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="configs\kalete.txt"> |
| | | <SubType>Designer</SubType> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> |
| | | <PropertyGroup> |
| | |
| | | using Emgu.CV; |
| | | using Emgu.CV.Structure; |
| | | using RichCreator.Maps; |
| | | using RichCreator.Utility; |
| | | using RichCreator.Utility.Captures; |
| | | using RichCreator.Utility.CV; |
| | | using RichCreator.Utility.Structs; |
| | | using RichCreator.Utilitys; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | |
| | | //频道距离“频道选择文字”的偏移 |
| | | private static ZTPoint[] channelOffsets = new ZTPoint[] { |
| | | new ZTPoint(-279,246), |
| | | new ZTPoint(-279,291) |
| | | new ZTPoint(-270,252), |
| | | new ZTPoint(-270,293) |
| | | }; |
| | | |
| | | //首次进入标记 |
| | |
| | | break; |
| | | case ChannelStates.CloseAllWindow1: |
| | | //关闭所有窗口1 |
| | | CloseAllAlertWindow(cancelToken, gameRect); |
| | | GameUtils.CloseAllAlertWindowByX(cancelToken, gameRect); |
| | | currentState = ChannelStates.CheckGroupMode; |
| | | break; |
| | | case ChannelStates.IsChoiceRolePage: |
| | |
| | | break; |
| | | case ChannelStates.OpenChangeChannelPage: |
| | | //打开切换频道界面 |
| | | G.Instance.InputControl.MoveToAndClick(new ZTPoint(gameRect.End.X - 136, gameRect.Start.Y + 9)); |
| | | G.Instance.InputControl.MoveToAndClick(new ZTPoint(gameRect.Start.X +690, gameRect.Start.Y + 11)); |
| | | Thread.Sleep(2000); |
| | | currentState = ChannelStates.ChangeChannelPageIsOpen; |
| | | break; |
| | | case ChannelStates.CloseAllWindow: |
| | | //关闭所有窗口 |
| | | CloseAllAlertWindow(cancelToken,gameRect); |
| | | GameUtils.CloseAllAlertWindowByX(cancelToken,gameRect); |
| | | currentState = ChannelStates.Complete; |
| | | break; |
| | | default: |
| | |
| | | |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private bool CloseAllAlertWindow(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | G.Instance.InputControl.MoveTo(0, 0, false, false, false); |
| | | Thread.Sleep(10); |
| | | //截图 |
| | | System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen(); |
| | | Image<Rgb, byte> image = new Image<Rgb, byte>(bitmap); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | { |
| | | return true; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 频道状态 |
| | | /// </summary> |
| | |
| | | using RichCreator.Utility.Maps; |
| | | using RichCreator.Utility.Skills; |
| | | using RichCreator.Utility.Structs; |
| | | using RichCreator.Utility.Utilitys; |
| | | using RichCreator.Utilitys; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | private MapInfo map;//地图 |
| | | private HouseInfo house;//当前房间 |
| | | private DnfRole role;//当前角色控制 |
| | | |
| | | private Int32 preHouseIndex = 0;//上一房间编号 |
| | | private OutOfBounds outOfBounds;//禁区 |
| | | private bool isSuccess;//退出结果 |
| | | |
| | | |
| | | private ZTPoint roleLastPosition = ZTPoint.Empty;//角色最后位置 |
| | | private Int32 runningStep = RunningStep.None;//是否恢复的状态 |
| | | |
| | | //当前状态 |
| | | private KillMonsterStates currentState = KillMonsterStates.Start; |
| | | //是否截图屏幕 |
| | | private bool needCaptureScreen = false; |
| | | |
| | | //怪 |
| | | private ZTPoint[] stateMonsters; |
| | | |
| | | private System.Drawing.Bitmap bitmap = null; |
| | | //原图 |
| | | private Image<Rgb, byte> image = null; |
| | | |
| | | //图像是否改变 |
| | | private bool imageIsChange = false; |
| | | |
| | | //色彩hsv |
| | | private Image<Hsv, byte> hsvImage = null; |
| | | #region Find Door Info |
| | | //门坐标 |
| | | private ZTPoint stateDoorPosition; |
| | | |
| | | //离开的门朝向 |
| | | private Direction stateDoorLevelDirect = Direction.None; |
| | | |
| | | //屏幕定位点 |
| | | private ParametersPoint stateScreenLocation = new ParametersPoint(); |
| | | |
| | | |
| | | |
| | | #endregion |
| | | private KillMonsterStates currentState = KillMonsterStates.Start;//当前状态 |
| | | private bool needCaptureScreen = false;//是否截图屏幕 |
| | | private ZTPoint[] stateMonsters;//怪 |
| | | |
| | | private Image<Rgb, byte> image = null;//原图 |
| | | private Image<Hsv, byte> hsvImage = null;//色彩hsv |
| | | |
| | | private ZTPoint state_DoorPosition;//门坐标 |
| | | private Direction state_DoorDirect = Direction.None;//门朝向 |
| | | private ParametersPoint stateScreenLocation = new ParametersPoint();//屏幕定位点 |
| | | |
| | | private ZTPoint skillReleasePoint = ZTPoint.Empty; |
| | | private HIDCode roleDirection = HIDCode.NoEvent; |
| | | private bool tryEntryDoor = false;//是否尝试进门 |
| | | |
| | | |
| | | public KillMonsterStateMachine(MapInfo map,HouseInfo house, DnfRole role,Int32 preHouseIndex, Int32 runningStep) |
| | | |
| | | public KillMonsterStateMachine(MapInfo map,HouseInfo house, DnfRole role) |
| | | { |
| | | this.map = map; |
| | | this.house = house; |
| | | this.role = role; |
| | | this.runningStep = runningStep; |
| | | this.preHouseIndex = preHouseIndex; |
| | | |
| | | outOfBounds = new OutOfBounds(map.GameRect, role); |
| | | |
| | | hsvImage = new Image<Hsv, byte>(map.GameRect.End.X - map.GameRect.Start.X + 1, map.GameRect.End.Y - map.GameRect.Start.Y + 1); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | private void SetState(KillMonsterStates current, bool capture) |
| | | { |
| | | currentState = current; |
| | |
| | | /// <param name="cancellationToken"></param> |
| | | /// <param name="timeoutMillSecond"></param> |
| | | /// <returns></returns> |
| | | public ZTResult Work(Int32 timeoutMillSecond) |
| | | public ZTResult Work(Int32 timeoutMillSecond,Int32 preHouseIndex,Int32 runningStep) |
| | | { |
| | | bool imageIsChange = false;//图像是否改变 |
| | | Int32 nextGate = 0; |
| | | DateTime expireTime = DateTime.Now.AddMilliseconds(timeoutMillSecond); |
| | | if (this.runningStep > RunningStep.None) |
| | | { |
| | | SetState(KillMonsterStates.FindMonster, true); |
| | | } |
| | | |
| | | //定位方框列表 |
| | | MultiList<ZTRectangle, Int32> locationRectangles = new MultiList<ZTRectangle, int>(); |
| | | |
| | | |
| | | while (true) |
| | | { |
| | | if (map.CancelToken.IsCancellationRequested) |
| | |
| | | |
| | | if (needCaptureScreen) |
| | | { |
| | | using (bitmap = ScreenCapture.Instance.CaptureScreen()) |
| | | using (System.Drawing.Bitmap bitmap = ScreenCapture.Instance.CaptureScreen()) |
| | | { |
| | | if (image != null) |
| | | { |
| | |
| | | imageIsChange = true; |
| | | } |
| | | } |
| | | |
| | | |
| | | switch (currentState) |
| | | { |
| | | case KillMonsterStates.Start: |
| | | //开始 |
| | | this.map.EntryHousePrework(this.house.Index, this.preHouseIndex); |
| | | this.map.EntryHousePrework(this.house.Index, preHouseIndex); |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | break; |
| | | case KillMonsterStates.IsLastHouse: |
| | |
| | | SetState(KillMonsterStates.FindRole, false); |
| | | break; |
| | | } |
| | | if (this.house.Index == 15) |
| | | if (this.house.IsEnd) |
| | | { |
| | | SetState(KillMonsterStates.HasRewardWindow, false); |
| | | } |
| | | else |
| | | { |
| | | SetState(KillMonsterStates.IsOtherHouse, false); |
| | | } |
| | | } |
| | | break; |
| | | case KillMonsterStates.HasRewardWindow: |
| | | //是否有奖励界面 |
| | | if (DnfCVHelper.IsJiangli(image, map.GameRect)) |
| | | { |
| | | G.Instance.InfoWriter("has jiangli"); |
| | | SetState(KillMonsterStates.TurnAroundCard, false); |
| | | } |
| | | else |
| | |
| | | break; |
| | | case KillMonsterStates.FindRole: |
| | | //主角 |
| | | CvInvoke.CvtColor(image, hsvImage, Emgu.CV.CvEnum.ColorConversion.Rgb2Hsv); |
| | | |
| | | |
| | | //定位点 |
| | | if (!DnfCVHelper.GetLocationPoint(out locationRectangles, hsvImage, map.GameRect)) |
| | | if (this.house.WithoutNumber.Count <= 0) |
| | | { |
| | | this.stateScreenLocation = DnfCVHelper.GetLocationPoint(image, map.GameRect); |
| | | } |
| | | else |
| | | { |
| | | this.stateScreenLocation = DnfCVHelper.GetLocationPoint(image, map.GameRect,this.house.WithoutNumber); |
| | | } |
| | | |
| | | if (this.stateScreenLocation.Equals(ParametersPoint.Empty)) |
| | | { |
| | | //找不到定位点 |
| | | G.Instance.InfoWriter("找不到定位点"); |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | break; |
| | | } |
| | | |
| | | this.stateScreenLocation = new ParametersPoint(locationRectangles[0].Item1.GetCenterPoint(), locationRectangles[0].Item2); |
| | | |
| | | ZTPoint rolePosition = DnfCVHelper.FindRole(hsvImage, map.GameRect); |
| | | if (rolePosition .Equals( ZTPoint.Empty)) |
| | | CvInvoke.CvtColor(image, hsvImage, Emgu.CV.CvEnum.ColorConversion.Rgb2Hsv); |
| | | |
| | | ZTPoint roleCBPosition = DnfCVHelper.FindRole(hsvImage, map.GameRect); |
| | | if (roleCBPosition.Equals(ZTPoint.Empty)) |
| | | { |
| | | SetState(KillMonsterStates.FindRoleMove, false); |
| | | } |
| | |
| | | { |
| | | this.role.StopMove(); |
| | | } |
| | | role.UpdatePosition(rolePosition); |
| | | role.UpdatePosition(roleCBPosition); |
| | | SetState(KillMonsterStates.FindMonster, false); |
| | | } |
| | | break; |
| | |
| | | break; |
| | | case KillMonsterStates.FindMonster: |
| | | //找怪 |
| | | this.stateMonsters = LindongCVHelper.FindMonster(hsvImage, map.GameRect); |
| | | |
| | | this.stateMonsters = DnfCVHelper.FindMonster(hsvImage, map.GameRect); |
| | | |
| | | if (this.stateMonsters.Length > 0) |
| | | { |
| | | G.Instance.DebugWriter(string.Format("已找到{0}个怪", this.stateMonsters.Length)); |
| | | SetState(KillMonsterStates.CalcAttackDistance, false); |
| | | G.Instance.DebugWriter(string.Format("找到{0}个怪", this.stateMonsters.Length)); |
| | | SetState(KillMonsterStates.CalcAttackPoint, false); |
| | | } |
| | | else |
| | | { |
| | |
| | | break; |
| | | case KillMonsterStates.PickupThing: |
| | | //拾取物品 |
| | | SetState(KillMonsterStates.ToNextGatePoint, false); |
| | | //todo: PickupThing(); |
| | | break; |
| | | case KillMonsterStates.ToNextGatePoint: |
| | | //移到进门点 |
| | | SetState(KillMonsterStates.FindDoor, false); |
| | | //todo:ToNextGatePoint |
| | | break; |
| | | case KillMonsterStates.FindDoor: |
| | | //查找门, 是否找到门 |
| | | //查找门 |
| | | if (this.house.IsEnd) |
| | | { |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | break; |
| | | } |
| | | FindDoor(); |
| | | break; |
| | | case KillMonsterStates.EntryDoor: |
| | | //向门移动, 进门 |
| | | EntryDoor(); |
| | | break; |
| | | case KillMonsterStates.FindDoorMove: |
| | | //todo:找门移动 |
| | | FindDoorMove(); |
| | | case KillMonsterStates.InNextGatePoint: |
| | | //是否在进门点 |
| | | ParametersPoint nextGatePoint = ParametersPoint.Empty; |
| | | ZTPoint rmhp=this.house.ScreenToMapCoordinate(this.role.HalfPosition, this.stateScreenLocation); |
| | | if (this.house.IsInNextGatePoint(out nextGatePoint,rmhp)) |
| | | { |
| | | SetState(KillMonsterStates.ToLoopPoint, false); |
| | | } |
| | | else |
| | | { |
| | | //不在进门点 |
| | | SetState(KillMonsterStates.ToNextGatePoint, false); |
| | | } |
| | | break; |
| | | case KillMonsterStates.CalcAttackDistance: |
| | | case KillMonsterStates.ToNextGatePoint: |
| | | //移到进门点 |
| | | ZTPoint rmp = this.house.ScreenToMapCoordinate(this.role.Position, this.stateScreenLocation); |
| | | ZTPoint ngp = DnfRole.HalfToFootPosition(this.house.HousePathInfo.NextGates[nextGate].Point); |
| | | this.role.MoveToMapPoint(rmp, ngp); |
| | | nextGate++; |
| | | nextGate = nextGate % this.house.HousePathInfo.NextGates.Count; |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | break; |
| | | case KillMonsterStates.ToLoopPoint: |
| | | //移动到循环点 |
| | | if (!this.house.HousePathInfo.LoopPoint.Equals(ZTPoint.Empty)) |
| | | { |
| | | //开始移动 |
| | | ZTPoint roleMapPoint = this.house.ScreenToMapCoordinate(this.role.Position, this.stateScreenLocation); |
| | | this.role.MoveToMapPoint(roleMapPoint, this.house.HousePathInfo.LoopPoint); |
| | | |
| | | } |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | break; |
| | | case KillMonsterStates.CalcAttackPoint: |
| | | //判断使用何技能,计算攻击移动距离, 是否需要移动 |
| | | CalcAttackDistance(); |
| | | break; |
| | |
| | | break; |
| | | case KillMonsterStates.Exit: |
| | | //结束 |
| | | G.Instance.DebugWriter("退出状态"); |
| | | G.Instance.DebugWriter("退出!~"); |
| | | this.role.StopMove(); |
| | | if (this.isSuccess) |
| | | { |
| | | return ZTResult.Success; |
| | | } |
| | | return ZTResult.Failed; |
| | | |
| | | |
| | | } |
| | | |
| | | G.Instance.DebugWriter("next state:" + currentState.ToString()); |
| | |
| | | /// </summary> |
| | | private void FindRoleMove() |
| | | { |
| | | //if (this.stateMonsters != null && this.stateMonsters.Length > 0) |
| | | //{ |
| | | // this.role.StopMove(); |
| | | // G.Instance.DebugWriter("找不到角色,Send X"); |
| | | // G.Instance.InputControl.PressKey(1000, HIDCode.X); |
| | | // SetState(KillMonsterStates.FindRole, true); |
| | | |
| | | // return; |
| | | //} |
| | | this.role.FindRoleMove(); |
| | | SetState(KillMonsterStates.FindRole, true); |
| | | } |
| | |
| | | /// </summary> |
| | | private void PickupThing() |
| | | { |
| | | //拾取物品,获取最近一个物品位置并步行过去 |
| | | ZTPoint thingItemPosition = GetNearlyThingItem(image, role.Position); |
| | | if (!thingItemPosition .Equals( ZTPoint.Empty)) |
| | | { |
| | | if (this.role.IsMoving && !this.role.IsMoveIntent(Utility.Dnf.MoveIntent.PickupMove)) |
| | | { |
| | | this.role.StopMove(); |
| | | } |
| | | ////拾取物品,获取最近一个物品位置并步行过去 |
| | | //ZTPoint thingItemPosition = GetNearlyThingItem(image, role.Position); |
| | | //if (!thingItemPosition .Equals( ZTPoint.Empty)) |
| | | //{ |
| | | // if (this.role.IsMoving && !this.role.IsMoveIntent(Utility.Dnf.MoveIntent.PickupMove)) |
| | | // { |
| | | // this.role.StopMove(); |
| | | // } |
| | | |
| | | this.role.PickupMove(this.role.Position, thingItemPosition); |
| | | //return new KillMonsterStateResult(STATE_FindMonster, true); |
| | | } |
| | | // this.role.PickupMove(this.role.Position, thingItemPosition); |
| | | // //return new KillMonsterStateResult(STATE_FindMonster, true); |
| | | //} |
| | | |
| | | if (this.role.IsMoveIntent(Utility.Dnf.MoveIntent.PickupMove)) |
| | | { |
| | | this.role.StopMove(); |
| | | } |
| | | //if (this.role.IsMoveIntent(Utility.Dnf.MoveIntent.PickupMove)) |
| | | //{ |
| | | // this.role.StopMove(); |
| | | //} |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | private void FindDoor() |
| | | { |
| | | //查找真实的门 |
| | | this.stateDoorPosition = LindongCVHelper.FindDoor(out stateDoorLevelDirect, hsvImage, this.house.DoorDirection, map.GameRect); |
| | | if (!this.stateDoorPosition .Equals(ZTPoint.Empty)) |
| | | Dictionary<ZTPoint,Direction> doors=ShikongzhimenCVHelper.FindDoor(hsvImage, this.house.DoorDirection, map.GameRect); |
| | | this.state_DoorDirect = Direction.None; |
| | | this.state_DoorPosition = ZTPoint.Empty; |
| | | if (doors.Count > 0) |
| | | { |
| | | foreach (var door in doors) |
| | | { |
| | | //门地图坐标 |
| | | ZTPoint mapDoorPoint = this.house.ScreenToMapCoordinate(door.Key, this.stateScreenLocation); |
| | | |
| | | //要进入门的允许区域 |
| | | ZTPoint nextGatePoint = this.house.GetNextGatePoint(door.Value); |
| | | ZTRectangle doorRect = new ZTRectangle(nextGatePoint.X - 70, nextGatePoint.Y - 70, nextGatePoint.X + 70, nextGatePoint.Y + 70); |
| | | |
| | | G.Instance.InfoWriter("has door:" + mapDoorPoint.ToString()+",rect:"+doorRect.ToString()); |
| | | |
| | | if (GeoHelper.IsInRect(mapDoorPoint, doorRect)) |
| | | { |
| | | G.Instance.InfoWriter("in door"); |
| | | this.state_DoorDirect = door.Value; |
| | | this.state_DoorPosition = door.Key; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | if (!this.state_DoorPosition.Equals(ZTPoint.Empty)) |
| | | { |
| | | //找到门,向门移动 |
| | | if (this.role.IsMoveIntent(Utility.Dnf.MoveIntent.FindDoorMove)) |
| | | { |
| | | this.role.StopMove(); |
| | | } |
| | | G.Instance.InfoWriter("已找到门,位置:" + stateDoorPosition.ToString()); |
| | | SetState(KillMonsterStates.EntryDoor, false); |
| | | } |
| | | else |
| | | { |
| | | //未找到门,循环移动 |
| | | SetState(KillMonsterStates.FindDoorMove, false); |
| | | //未找到门,是否存进门点 |
| | | SetState(KillMonsterStates.InNextGatePoint, false); |
| | | } |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | private void EntryDoor() |
| | | { |
| | | const Int32 XLevelOffset = 200; |
| | | const Int32 YLevelOffset = 100; |
| | | Int32 limitLine = 0; |
| | | Int32 diff = 0; |
| | | //传过来人物坐标和门的坐标,根据门的朝向计算人物走向 |
| | | switch (stateDoorLevelDirect) |
| | | const Int32 offsetX = 200; |
| | | const Int32 offsetY = 100; |
| | | ZTRectangle doorRect = new ZTRectangle(this.state_DoorPosition.X - offsetX, this.state_DoorPosition.Y - offsetY, this.state_DoorPosition.X + offsetX, this.state_DoorPosition.Y + offsetY); |
| | | if (tryEntryDoor && GeoHelper.IsInRect(this.role.RoleCBPosition, doorRect)) |
| | | { |
| | | case Direction.Up: |
| | | //门在上方 |
| | | limitLine = stateDoorPosition.Y + YLevelOffset; |
| | | if (role.Position.Y < limitLine) |
| | | { |
| | | //离门太近,先向外走,再向门走 |
| | | Int32 limitLine = 0; |
| | | Int32 diff = 0; |
| | | //传过来人物坐标和门的坐标,根据门的朝向计算人物走向 |
| | | switch (state_DoorDirect) |
| | | { |
| | | case Direction.Up: |
| | | //门在上方 |
| | | limitLine = state_DoorPosition.Y + offsetY; |
| | | //下移 |
| | | this.role.SyncMove(new ZTPoint(0, limitLine - role.Position.Y)); |
| | | } |
| | | //垂直对齐 |
| | | diff = state_DoorPosition.X - role.Position.X; |
| | | this.role.SyncMove(new ZTPoint(diff, 0)); |
| | | //移动y,进入 |
| | | this.role.SyncMove(new ZTPoint(0, map.GameRect.Start.Y - role.Position.Y)); |
| | | break; |
| | | |
| | | //垂直对齐 |
| | | diff = stateDoorPosition.X - role.Position.X; |
| | | this.role.SyncMove(new ZTPoint(diff, 0)); |
| | | |
| | | //移动y,进入 |
| | | this.role.SyncMove(new ZTPoint(0, map.GameRect.Start.Y - role.Position.Y)); |
| | | break; |
| | | |
| | | case Direction.Right: |
| | | //门在右侧 |
| | | limitLine = stateDoorPosition.X - XLevelOffset; |
| | | if (role.Position.X > limitLine) |
| | | { |
| | | case Direction.Right: |
| | | //门在右侧 |
| | | limitLine = state_DoorPosition.X - offsetX; |
| | | //如果角色位于门右侧,先向左移 |
| | | this.role.SyncMove(new ZTPoint(limitLine - role.Position.X, 0)); |
| | | } |
| | | //水平对齐 |
| | | diff = state_DoorPosition.Y - role.Position.Y; |
| | | this.role.SyncMove(new ZTPoint(0, diff)); |
| | | //移动x,进入 |
| | | this.role.SyncMove(new ZTPoint(map.GameRect.End.X - role.Position.X, 0)); |
| | | break; |
| | | |
| | | //水平对齐 |
| | | diff = stateDoorPosition.Y - role.Position.Y; |
| | | this.role.SyncMove(new ZTPoint(0, diff)); |
| | | |
| | | //移动x,进入 |
| | | this.role.SyncMove(new ZTPoint(map.GameRect.End.X - role.Position.X, 0)); |
| | | break; |
| | | |
| | | case Direction.Bottom: |
| | | //门在下方 |
| | | limitLine = stateDoorPosition.Y - YLevelOffset; |
| | | if (role.Position.Y > limitLine) |
| | | { |
| | | case Direction.Bottom: |
| | | //门在下方 |
| | | limitLine = state_DoorPosition.Y - offsetY; |
| | | //如果角色在门下方,先向上移 |
| | | this.role.SyncMove(new ZTPoint(0, limitLine - role.Position.Y)); |
| | | } |
| | | //垂直对齐 |
| | | diff = state_DoorPosition.X - role.Position.X; |
| | | this.role.SyncMove(new ZTPoint(diff, 0)); |
| | | |
| | | //垂直对齐 |
| | | diff = stateDoorPosition.X - role.Position.X; |
| | | this.role.SyncMove(new ZTPoint(diff, 0)); |
| | | //移动y,进入 |
| | | this.role.SyncMove(new ZTPoint(0, map.GameRect.End.Y - role.Position.Y)); |
| | | break; |
| | | |
| | | //移动y,进入 |
| | | this.role.SyncMove(new ZTPoint(0, map.GameRect.End.Y - role.Position.Y)); |
| | | break; |
| | | |
| | | case Direction.Left: |
| | | //门在左侧 |
| | | limitLine = stateDoorPosition.X + XLevelOffset; |
| | | if (role.Position.X < limitLine) |
| | | { |
| | | case Direction.Left: |
| | | //门在左侧 |
| | | limitLine = state_DoorPosition.X + offsetX; |
| | | //如果角色位于门左侧,先向右移 |
| | | this.role.SyncMove(new ZTPoint(limitLine - role.Position.X, 0)); |
| | | } |
| | | //水平对齐 |
| | | diff = state_DoorPosition.Y - role.Position.Y; |
| | | this.role.SyncMove(new ZTPoint(0, diff)); |
| | | |
| | | //水平对齐 |
| | | diff = stateDoorPosition.Y - role.Position.Y; |
| | | this.role.SyncMove(new ZTPoint(0, diff)); |
| | | |
| | | //移动x,进入 |
| | | this.role.SyncMove(new ZTPoint(map.GameRect.Start.X - role.Position.X, 0)); |
| | | break; |
| | | } |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | return; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 找门移动 |
| | | /// </summary> |
| | | private void FindDoorMove() |
| | | { |
| | | Int32 areaID = 0; |
| | | if (this.outOfBounds.InOutOfBound(this.house.Index, role.Position, out areaID)) |
| | | { |
| | | this.outOfBounds.MoveToCommonBound(areaID); |
| | | //移动x,进入 |
| | | this.role.SyncMove(new ZTPoint(map.GameRect.Start.X - role.Position.X, 0)); |
| | | break; |
| | | } |
| | | tryEntryDoor = false; |
| | | } |
| | | else |
| | | { |
| | | this.role.FindDoorMove(role.Position); |
| | | //先到进门点 |
| | | ZTPoint roleMapPoint = this.house.ScreenToMapCoordinate(this.role.Position, this.stateScreenLocation); |
| | | ZTPoint nextGatePoint = this.house.GetNextGatePoint(this.state_DoorDirect); |
| | | List<ZTPoint> paths = this.house.FindPath(roleMapPoint, DnfRole.HalfToFootPosition(nextGatePoint)); |
| | | |
| | | //再到门后50像素 |
| | | ZTPoint dp = this.house.ScreenToMapCoordinate(this.state_DoorPosition, this.stateScreenLocation); |
| | | ZTPoint doorPoint = DnfRole.HalfToFootPosition(dp); |
| | | switch (this.state_DoorDirect) |
| | | { |
| | | case Direction.Up: |
| | | doorPoint = doorPoint.Add(0, -50); |
| | | break; |
| | | case Direction.Right: |
| | | doorPoint = doorPoint.Add(50, 0); |
| | | break; |
| | | case Direction.Bottom: |
| | | doorPoint = doorPoint.Add(0, 50); |
| | | break; |
| | | case Direction.Left: |
| | | doorPoint = doorPoint.Add(-50, 0); |
| | | break; |
| | | } |
| | | paths.Add(doorPoint); |
| | | this.role.MovePaths(roleMapPoint, paths); |
| | | |
| | | tryEntryDoor = true; |
| | | } |
| | | |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | return; |
| | | } |
| | | |
| | | |
| | | |
| | | private DateTime FindRoleLastNoMoveTime = DateTime.MaxValue;//最后没移动时间 |
| | | private bool FindRoleLastNoMoveStart = false;//没移动是否开始计时 |
| | | private ZTSize attackMoveDistance = ZTSize.Empty; |
| | | private HIDCode roleDirection = HIDCode.NoEvent; |
| | | |
| | | /// <summary> |
| | | /// 判断使用何技能,计算攻击移动距离, 是否需要移动 |
| | | /// </summary> |
| | | private void CalcAttackDistance() |
| | | { |
| | | SkillInfo attackSkill = this.house.Skills.SyncPeek(); |
| | | |
| | | |
| | | //计算攻击移动距离 |
| | | bool needMove = false; |
| | | attackMoveDistance = AttackRectangle.GetMoveDistance(map.GameRect, role.Position, stateMonsters, attackSkill, out roleDirection, out needMove); |
| | | skillReleasePoint = AttackRectangle.GetAttackPoint(map.GameRect, role.HalfPosition, stateMonsters, attackSkill, out roleDirection, out needMove); |
| | | if (!needMove) |
| | | { |
| | | G.Instance.DebugWriter(string.Format("不需移动直接发技能,距离:{0}", attackMoveDistance.ToString())); |
| | | G.Instance.DebugWriter(string.Format("不需移动直接发技能,距离:{0}", skillReleasePoint.ToString())); |
| | | SetState(KillMonsterStates.ReleaseSkill, false); |
| | | } |
| | | else |
| | |
| | | SetState(KillMonsterStates.AttackMove, false); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 攻击移动 |
| | | /// </summary> |
| | | private void AttackMove() |
| | | { |
| | | G.Instance.DebugWriter("attack move :" + skillReleasePoint.ToString() + ",role:" + role.Position.ToString() + ",monster1:" + stateMonsters[0].ToString() + ",skill:" + this.house.Skills.SyncPeek().Key.ToString()); |
| | | this.role.AttackMoveTo(skillReleasePoint,this.stateScreenLocation); |
| | | SetState(KillMonsterStates.FindRole, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 调整朝向, 释放技能 |
| | | /// </summary> |
| | | private void ReleaseSkill() |
| | | { |
| | | this.role.StopMove(); |
| | | |
| | | SkillInfo skill = this.house.Skills.SyncDeQueue(); |
| | | |
| | | |
| | | this.roleLastPosition = ZTPoint.Empty; |
| | | if (roleDirection != HIDCode.NoEvent) |
| | | { |
| | | G.Instance.InputControl.PressKey(100, roleDirection); |
| | | } |
| | | this.role.StopMove(); |
| | | |
| | | |
| | | |
| | | |
| | | if (skill.Key == HIDCode.X) |
| | | { |
| | | for (int i = 0; i < 5; i++) |
| | |
| | | else |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, skill.Key); |
| | | Thread.Sleep((Int32)skill.ReleaseTime); |
| | | Thread.Sleep((Int32)skill.ReleaseWaitTime); |
| | | } |
| | | |
| | | G.Instance.DebugWriter(string.Format("发完技能,技能按键:{0},技能名称:{1}", skill.Key, skill.SkillName)); |
| | | SetState(KillMonsterStates.IsLastHouse, true); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 攻击移动 |
| | | /// </summary> |
| | | private void AttackMove() |
| | | { |
| | | SkillInfo attackSkill = this.house.Skills.SyncPeek(); |
| | | //没有移动,可能有障碍物 |
| | | if (role.Position .Equals( this.roleLastPosition)) |
| | | { |
| | | if (FindRoleLastNoMoveStart && (DateTime.Now - FindRoleLastNoMoveTime).TotalMilliseconds > NoMoveMaxMillSecond) |
| | | { |
| | | //开始计时 并且 超过最大未移动容忍时间 |
| | | G.Instance.DebugWriter("find role no mvoe:" + role.Position.ToString()); |
| | | this.role.StopMove(); |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.X); |
| | | FindRoleLastNoMoveTime = DateTime.Now; |
| | | } |
| | | else if (!FindRoleLastNoMoveStart) |
| | | { |
| | | //没开始计时 则 开始计时 |
| | | FindRoleLastNoMoveStart = true; |
| | | FindRoleLastNoMoveTime = DateTime.Now; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //移动了 取消计时 |
| | | this.roleLastPosition = role.Position; |
| | | FindRoleLastNoMoveStart = false; |
| | | } |
| | | |
| | | G.Instance.DebugWriter("attack move :" + attackMoveDistance.ToString() + ",role:" + role.Position.ToString() + ",monster1:" + stateMonsters[0].ToString() + ",skill:" + attackSkill.Key.ToString()); |
| | | this.role.AttackMove(attackMoveDistance); |
| | | SetState(KillMonsterStates.FindRole, true); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 牌的位置 |
| | | /// </summary> |
| | | private static readonly ZTPoint[] CardList = new ZTPoint[] { |
| | | new ZTPoint(364,231), |
| | | new ZTPoint(561,231), |
| | | new ZTPoint(744,231), |
| | | new ZTPoint(924,231), |
| | | new ZTPoint(164,195), |
| | | new ZTPoint(315,195), |
| | | new ZTPoint(474,195), |
| | | new ZTPoint(635,195), |
| | | |
| | | |
| | | new ZTPoint(364,570), |
| | | new ZTPoint(561,570), |
| | | new ZTPoint(744,570), |
| | | new ZTPoint(924,570), |
| | | new ZTPoint(164,480), |
| | | new ZTPoint(315,480), |
| | | new ZTPoint(474,480), |
| | | new ZTPoint(635,480), |
| | | |
| | | }; |
| | | |
| | | /// <summary> |
| | | /// 翻牌 |
| | | /// 1-4 |
| | |
| | | G.Instance.InputControl.MoveToAndClick(RandomUtils.PointRange(willPosition, 10)); |
| | | |
| | | //判断黄金版是否可以翻 |
| | | if (DnfCVHelper.HasMowangqiyueCard(map.GameRect)) |
| | | if (DnfCVHelper.HasGoldCard(map.GameRect)) |
| | | { |
| | | number = RandomUtils.G(5, 8); |
| | | willPosition = map.GameRect.Start.Add(CardList[number - 1]); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否改变房间 |
| | | /// </summary> |
| | |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 杀怪状态 |
| | | /// </summary> |
| | |
| | | FindRoleMove,//让主角移动(原:有怪攻击一下,无怪移动一下) |
| | | FindMonster,//找怪 |
| | | PickupThing,//拾取物品 |
| | | ToNextGatePoint,//移到进门点 |
| | | FindDoor,//查找门, 是否找到门 |
| | | EntryDoor,//向门移动, 进门 |
| | | FindDoorMove,//找门移动 |
| | | CalcAttackDistance,//判断使用何技能,计算攻击移动距离, 是否需要移动 |
| | | InNextGatePoint,//是否在进门点 |
| | | ToNextGatePoint,//移至进门点 |
| | | ToLoopPoint,//移至巡逻点 |
| | | |
| | | |
| | | |
| | | CalcAttackPoint,//判断使用何技能,计算攻击移动距离, 是否需要移动 |
| | | ReleaseSkill,//调整朝向, 释放技能, |
| | | AttackMove,//攻击移动 |
| | | } |
| | |
| | | using System.Threading.Tasks; |
| | | using RichCreator.Utility.Skills; |
| | | using RichCreator.Utility.Maps; |
| | | using RichCreator.Utility.Utilitys; |
| | | |
| | | namespace RichCreator.Utilitys |
| | | { |
| | |
| | | /// <param name="direction"></param> |
| | | /// <param name="needMove"></param> |
| | | /// <returns></returns> |
| | | public static ZTSize GetMoveDistance(ZTRectangle gameRect,ZTPoint rolePosition, ZTPoint[] monsterPositions, SkillInfo skill,out HIDCode direction, out bool needMove) |
| | | public static ZTPoint GetAttackPoint(ZTRectangle gameRect,ZTPoint rolePosition, ZTPoint[] monsterPositions, SkillInfo skill,out HIDCode direction, out bool needMove) |
| | | { |
| | | needMove = false; |
| | | |
| | | ZTSize moveDistance = ZTSize.Empty; |
| | | |
| | | if (monsterPositions.Length <= 1||skill.MovePriority==MovePriority.Nearly) |
| | | { |
| | | moveDistance = GetAttackRectangleByNear(monsterPositions, rolePosition, skill, out direction, out needMove); |
| | | return GetAttackPointByNear(monsterPositions, rolePosition, skill, out direction, out needMove); |
| | | } |
| | | else |
| | | { |
| | | moveDistance = GetAttackRectangleByQuantity(gameRect,monsterPositions, rolePosition, skill, out direction, out needMove); |
| | | return GetAttackPointByQuantity(gameRect,monsterPositions, rolePosition, skill, out direction, out needMove); |
| | | } |
| | | return moveDistance; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | /// 得到最近的攻击目标距离 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private static ZTSize GetAttackRectangleByNear(ZTPoint[] monsterPositions, ZTPoint rolePosition, SkillInfo skill,out HIDCode direction, out bool needMove) |
| | | private static ZTPoint GetAttackPointByNear(ZTPoint[] monsterPositions, ZTPoint rolePosition, SkillInfo skill,out HIDCode direction, out bool needMove) |
| | | { |
| | | needMove = true; |
| | | direction = HIDCode.RightArrow; |
| | | ZTRectangle attackRect = new ZTRectangle(rolePosition.X - skill.Range.Width, rolePosition.Y - skill.Range.Height / 2, rolePosition.X + skill.Range.Width, rolePosition.Y + skill.Range.Height / 2);//攻击范围 |
| | | ZTRectangle attackRange = new ZTRectangle(rolePosition.X - skill.Range.Width, rolePosition.Y - skill.Range.Height / 2, rolePosition.X + skill.Range.Width, rolePosition.Y + skill.Range.Height / 2);//攻击范围 |
| | | //switch (skill.ReleaseAnchor) |
| | | //{ |
| | | // case SkillInfo.SkillAnchor.Side: |
| | |
| | | |
| | | if (index == 0) |
| | | { |
| | | nearDistance = Utils.GetDistance(monsterPositions[index], rolePosition); |
| | | nearDistance = GeoHelper.GetDistance(monsterPositions[index], rolePosition); |
| | | nearMonsterPosition = monsterPositions[index]; |
| | | } |
| | | //天然就在攻击范围内 |
| | | if (Utils.IsInRect(monsterPositions[index], attackRect)) |
| | | if (GeoHelper.IsInRect(monsterPositions[index], attackRange)) |
| | | { |
| | | needMove = false; |
| | | break; |
| | |
| | | } |
| | | |
| | | //计算远近 |
| | | double distance = Utils.GetDistance(monsterPositions[index], rolePosition); |
| | | double distance = GeoHelper.GetDistance(monsterPositions[index], rolePosition); |
| | | if (distance < nearDistance) |
| | | { |
| | | nearDistance = distance; |
| | |
| | | |
| | | } |
| | | |
| | | return moveDistance; |
| | | return new ZTPoint(rolePosition.X+moveDistance.Width,rolePosition.Y+moveDistance.Height); |
| | | } |
| | | |
| | | |
| | |
| | | /// <param name="monsterPositions"></param> |
| | | /// <param name="yRange"></param> |
| | | /// <returns></returns> |
| | | private static ZTSize GetAttackRectangleByQuantity(ZTRectangle gameRect,ZTPoint[] monsterPositions, ZTPoint rolePosition, SkillInfo skill,out HIDCode direction, out bool needMove) |
| | | private static ZTPoint GetAttackPointByQuantity(ZTRectangle gameRect,ZTPoint[] monsterPositions, ZTPoint rolePosition, SkillInfo skill,out HIDCode direction, out bool needMove) |
| | | { |
| | | needMove = true; |
| | | direction = HIDCode.RightArrow; |
| | |
| | | Int32 top = 0, right = 0,bottom = 0,left = 0; |
| | | for (int i = 0; i < monsterPositions.Length; i++) |
| | | { |
| | | if (Utils.IsInRect(monsterPositions[i], monsterRect)) |
| | | if (GeoHelper.IsInRect(monsterPositions[i], monsterRect)) |
| | | { |
| | | ZTPoint monsterPoint = monsterPositions[i]; |
| | | if (i == 0) |
| | |
| | | //两边发技能 |
| | | ZTPoint leftAttackPosition = new ZTPoint(Math.Max(gameRect.Start.X,left+skill.AnchorOffset.Width),Math.Max(top, bottom + skill.AnchorOffset.Height)); |
| | | ZTPoint rightAttackPosition = new ZTPoint(Math.Min(gameRect.End.X,right+skill.AnchorOffset.Width), Math.Max(top,bottom + skill.AnchorOffset.Height)); |
| | | double toLeft = Utils.GetDistance(leftAttackPosition, rolePosition); |
| | | double toRight = Utils.GetDistance(rightAttackPosition, rolePosition); |
| | | double toLeft = GeoHelper.GetDistance(leftAttackPosition, rolePosition); |
| | | double toRight = GeoHelper.GetDistance(rightAttackPosition, rolePosition); |
| | | |
| | | //计算可以发技能的区域 |
| | | if (toLeft <= toRight) |
| | |
| | | } |
| | | } |
| | | |
| | | if (Utils.IsInRect(rolePosition, releaseSkillRect)) |
| | | if (GeoHelper.IsInRect(rolePosition, releaseSkillRect)) |
| | | { |
| | | needMove = false; |
| | | } |
| | | |
| | | |
| | | |
| | | //转换为移动距离 |
| | | return new ZTSize ( releaseSkillPosition.X-rolePosition.X,releaseSkillPosition.Y-rolePosition.Y); |
| | | return releaseSkillPosition; |
| | | ////转换为移动距离 |
| | | //return new ZTSize ( releaseSkillPosition.X-rolePosition.X,releaseSkillPosition.Y-rolePosition.Y); |
| | | } |
| | | |
| | | |
| | |
| | | int count = 0; |
| | | for (int i = 0; i < monsterPositions.Length; i++) |
| | | { |
| | | if (Utils.IsInRect(monsterPositions[i], rect)) |
| | | if (GeoHelper.IsInRect(monsterPositions[i], rect)) |
| | | { |
| | | count++; |
| | | } |
| | |
| | | /// <param name="tryCount">重试次数</param> |
| | | /// <param name="cancellationToken">取消句柄</param> |
| | | /// <returns></returns> |
| | | public static bool NoChangeRetryCallWrap(Action workFun, Func<bool> workFinishedDectedFun, Func<bool> preDectedFun,Int32 tryCount=3) |
| | | public static bool NoChangeRetryCallWrap(Func<bool> workFun, Func<bool> workFinishedDectedFun, Func<bool> preDectedFun,Int32 tryCount=3) |
| | | { |
| | | Int32 tryCounter = 0; |
| | | while (tryCounter<tryCount) |
| | | { |
| | | try |
| | | { |
| | | workFun(); |
| | | if (!workFun()) |
| | | { |
| | | tryCounter++; |
| | | continue; |
| | | } |
| | | } |
| | | catch |
| | | { |
| New file |
| | |
| | | using Emgu.CV; |
| | | using Emgu.CV.Structure; |
| | | using RichCreator.Utility; |
| | | using RichCreator.Utility.Captures; |
| | | using RichCreator.Utility.CV; |
| | | using RichCreator.Utility.InputControl; |
| | | using RichCreator.Utility.Structs; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace RichCreator.Utilitys |
| | | { |
| | | public class GameUtils |
| | | { |
| | | |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | public static void CloseAllAlertWindowByEsc(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | //关闭系统菜单 |
| | | Int32 counter = 5; |
| | | while (!cancelToken.IsCancellationRequested && counter > 0) |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Escape); |
| | | Thread.Sleep(1000); |
| | | if (!DnfCVHelper.IsOpenSystemPanel(gameRect)) |
| | | { |
| | | break; |
| | | } |
| | | counter--; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 关闭所有弹出窗 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | public static void CloseAllAlertWindowByX(CancellationToken cancelToken, ZTRectangle gameRect) |
| | | { |
| | | while (!cancelToken.IsCancellationRequested) |
| | | { |
| | | //截图 |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle closeButtonRect = ZTRectangle.Empty; |
| | | if (!DnfCVHelper.GetAlertWindow(out closeButtonRect, image, gameRect)) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | G.Instance.InputControl.MoveToAndClick(closeButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(500); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <StartWaitSecond>300</StartWaitSecond> |
| | | <RoleCount>10</RoleCount> |
| | | <NotificationWechat>true</NotificationWechat> |
| | | <UserName1>1258493488</UserName1> |
| | | <Password1>cc11111111</Password1> |
| | | <UserName1>2228607100</UserName1> |
| | | <Password1>a5m1nf0g00d</Password1> |
| | | |
| | | <!--<UserName1>1258493488</UserName1> |
| | | <Password1>cc11111111</Password1>--> |
| | | <!--<UserName2>2228607100</UserName2> |
| | | <Password2>a5m1nf0g00d</Password2>--> |
| | | <UserName3></UserName3> |
| New file |
| | |
| | | //0 |
| | | {"Width":896,"Height":686,"Obstacles":[{"Points":[{"X":2,"Y":320},{"X":460,"Y":310},{"X":493,"Y":319},{"X":556,"Y":334},{"X":668,"Y":344},{"X":759,"Y":330},{"X":873,"Y":308},{"X":893,"Y":300},{"X":891,"Y":1},{"X":2,"Y":3}],"Length":10},{"Points":[{"X":2,"Y":552},{"X":71,"Y":545},{"X":76,"Y":427},{"X":165,"Y":439},{"X":166,"Y":521},{"X":253,"Y":559},{"X":703,"Y":550},{"X":703,"Y":521},{"X":823,"Y":513},{"X":834,"Y":568},{"X":893,"Y":559},{"X":893,"Y":684},{"X":4,"Y":683}],"Length":13}],"LocationPoints":[{"Point":{"X":797,"Y":348},"Parameter":0},{"Point":{"X":671,"Y":348},"Parameter":1},{"Point":{"X":547,"Y":348},"Parameter":2},{"Point":{"X":423,"Y":348},"Parameter":3},{"Point":{"X":298,"Y":347},"Parameter":4},{"Point":{"X":172,"Y":348},"Parameter":5},{"Point":{"X":47,"Y":348},"Parameter":6}],"FindPathPoints":[{"X":51,"Y":392},{"X":438,"Y":418},{"X":775,"Y":400}],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[{"P1":{"X":51,"Y":392},"P2":{"X":775,"Y":400}},{"P1":{"X":438,"Y":418},"P2":{"X":775,"Y":400}},{"P1":{"X":438,"Y":418},"P2":{"X":51,"Y":392}}],"NextGates":[{"Point":{"X":833,"Y":348},"Parameter":1}],"PathGuides":[]} |
| | | //1 |
| | | {"Width":896,"Height":720,"Obstacles":[{"Points":[{"X":2,"Y":541},{"X":291,"Y":563},{"X":406,"Y":615},{"X":411,"Y":685},{"X":0,"Y":683}],"Length":5},{"Points":[{"X":88,"Y":475},{"X":158,"Y":514},{"X":246,"Y":512},{"X":295,"Y":523},{"X":356,"Y":534},{"X":421,"Y":524},{"X":413,"Y":473},{"X":336,"Y":455},{"X":267,"Y":445},{"X":215,"Y":426},{"X":148,"Y":431},{"X":103,"Y":442}],"Length":12},{"Points":[{"X":49,"Y":332},{"X":181,"Y":302},{"X":180,"Y":258},{"X":271,"Y":250},{"X":347,"Y":275},{"X":425,"Y":288},{"X":543,"Y":321},{"X":655,"Y":357},{"X":793,"Y":343},{"X":858,"Y":326},{"X":890,"Y":345},{"X":893,"Y":4},{"X":4,"Y":1},{"X":0,"Y":307}],"Length":14},{"Points":[{"X":560,"Y":716},{"X":591,"Y":586},{"X":644,"Y":566},{"X":792,"Y":559},{"X":825,"Y":535},{"X":879,"Y":535},{"X":895,"Y":542},{"X":894,"Y":718}],"Length":8}],"LocationPoints":[{"Point":{"X":86,"Y":391},"Parameter":10},{"Point":{"X":211,"Y":390},"Parameter":11},{"Point":{"X":337,"Y":390},"Parameter":12},{"Point":{"X":465,"Y":391},"Parameter":13},{"Point":{"X":590,"Y":391},"Parameter":14},{"Point":{"X":716,"Y":390},"Parameter":15},{"Point":{"X":841,"Y":391},"Parameter":16},{"Point":{"X":467,"Y":531},"Parameter":20},{"Point":{"X":467,"Y":473},"Parameter":21},{"Point":{"X":468,"Y":414},"Parameter":22},{"Point":{"X":467,"Y":354},"Parameter":23},{"Point":{"X":468,"Y":295},"Parameter":24},{"Point":{"X":467,"Y":237},"Parameter":25},{"Point":{"X":468,"Y":176},"Parameter":26},{"Point":{"X":468,"Y":119},"Parameter":27},{"Point":{"X":469,"Y":59},"Parameter":28}],"FindPathPoints":[{"X":159,"Y":370},{"X":343,"Y":346},{"X":547,"Y":388},{"X":445,"Y":416},{"X":470,"Y":558},{"X":215,"Y":534},{"X":38,"Y":480}],"LoopPoint":{"X":208,"Y":312},"FindPathLines":[{"P1":{"X":159,"Y":370},"P2":{"X":343,"Y":346}},{"P1":{"X":159,"Y":370},"P2":{"X":445,"Y":416}},{"P1":{"X":445,"Y":416},"P2":{"X":547,"Y":388}},{"P1":{"X":343,"Y":346},"P2":{"X":547,"Y":388}},{"P1":{"X":343,"Y":346},"P2":{"X":445,"Y":416}},{"P1":{"X":159,"Y":370},"P2":{"X":547,"Y":388}},{"P1":{"X":445,"Y":416},"P2":{"X":470,"Y":558}},{"P1":{"X":215,"Y":534},"P2":{"X":470,"Y":558}},{"P1":{"X":38,"Y":480},"P2":{"X":159,"Y":370}},{"P1":{"X":38,"Y":480},"P2":{"X":215,"Y":534}}],"NextGates":[{"Point":{"X":468,"Y":571},"Parameter":2}],"PathGuides":[]} |
| | | //2 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //3 |
| | | {"Width":896,"Height":686,"Obstacles":[{"Points":[{"X":100,"Y":682},{"X":110,"Y":567},{"X":162,"Y":552},{"X":220,"Y":473},{"X":219,"Y":379},{"X":80,"Y":234},{"X":105,"Y":1},{"X":1,"Y":1},{"X":1,"Y":682}],"Length":9},{"Points":[{"X":126,"Y":585},{"X":211,"Y":579},{"X":258,"Y":546},{"X":336,"Y":558},{"X":401,"Y":570},{"X":539,"Y":569},{"X":669,"Y":684},{"X":69,"Y":678}],"Length":8},{"Points":[{"X":813,"Y":581},{"X":811,"Y":682},{"X":894,"Y":686},{"X":895,"Y":561}],"Length":4},{"Points":[{"X":112,"Y":263},{"X":210,"Y":271},{"X":302,"Y":310},{"X":432,"Y":292},{"X":499,"Y":333},{"X":581,"Y":342},{"X":649,"Y":345},{"X":691,"Y":296},{"X":888,"Y":302},{"X":892,"Y":2},{"X":107,"Y":3},{"X":53,"Y":260}],"Length":12},{"Points":[{"X":892,"Y":549},{"X":818,"Y":547},{"X":769,"Y":501},{"X":789,"Y":434},{"X":892,"Y":426}],"Length":5}],"LocationPoints":[{"Point":{"X":734,"Y":521},"Parameter":20},{"Point":{"X":733,"Y":462},"Parameter":21},{"Point":{"X":734,"Y":404},"Parameter":22},{"Point":{"X":735,"Y":344},"Parameter":23},{"Point":{"X":734,"Y":284},"Parameter":24},{"Point":{"X":735,"Y":225},"Parameter":25},{"Point":{"X":733,"Y":164},"Parameter":26},{"Point":{"X":734,"Y":104},"Parameter":27},{"Point":{"X":734,"Y":47},"Parameter":28}],"FindPathPoints":[{"X":247,"Y":464},{"X":259,"Y":343},{"X":768,"Y":368}],"LoopPoint":{"X":297,"Y":360},"FindPathLines":[{"P1":{"X":259,"Y":343},"P2":{"X":247,"Y":464}},{"P1":{"X":247,"Y":464},"P2":{"X":768,"Y":368}},{"P1":{"X":259,"Y":343},"P2":{"X":768,"Y":368}}],"NextGates":[{"Point":{"X":734,"Y":552},"Parameter":2}],"PathGuides":[]} |
| | | //4 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //5 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //6 |
| | | {"Width":896,"Height":686,"Obstacles":[{"Points":[{"X":0,"Y":561},{"X":236,"Y":556},{"X":357,"Y":542},{"X":353,"Y":509},{"X":547,"Y":497},{"X":602,"Y":551},{"X":775,"Y":533},{"X":788,"Y":493},{"X":868,"Y":477},{"X":891,"Y":482},{"X":895,"Y":684},{"X":0,"Y":685}],"Length":12},{"Points":[{"X":4,"Y":337},{"X":15,"Y":336},{"X":81,"Y":201},{"X":117,"Y":122},{"X":167,"Y":2},{"X":1,"Y":4}],"Length":6},{"Points":[{"X":169,"Y":324},{"X":201,"Y":338},{"X":255,"Y":368},{"X":336,"Y":369},{"X":377,"Y":366},{"X":387,"Y":336},{"X":424,"Y":347},{"X":520,"Y":356},{"X":559,"Y":320},{"X":612,"Y":296},{"X":642,"Y":302},{"X":722,"Y":304},{"X":771,"Y":271},{"X":865,"Y":264},{"X":893,"Y":265},{"X":894,"Y":1},{"X":157,"Y":4},{"X":87,"Y":172},{"X":198,"Y":190}],"Length":19}],"LocationPoints":[{"Point":{"X":796,"Y":358},"Parameter":0},{"Point":{"X":671,"Y":359},"Parameter":1},{"Point":{"X":545,"Y":359},"Parameter":2},{"Point":{"X":424,"Y":360},"Parameter":3},{"Point":{"X":297,"Y":357},"Parameter":4},{"Point":{"X":172,"Y":359},"Parameter":5},{"Point":{"X":48,"Y":359},"Parameter":6},{"Point":{"X":101,"Y":215},"Parameter":20},{"Point":{"X":101,"Y":156},"Parameter":21},{"Point":{"X":102,"Y":97},"Parameter":22},{"Point":{"X":101,"Y":39},"Parameter":23}],"FindPathPoints":[{"X":107,"Y":440},{"X":410,"Y":424},{"X":728,"Y":382}],"LoopPoint":{"X":176,"Y":466},"FindPathLines":[{"P1":{"X":107,"Y":440},"P2":{"X":410,"Y":424}},{"P1":{"X":410,"Y":424},"P2":{"X":728,"Y":382}},{"P1":{"X":107,"Y":440},"P2":{"X":728,"Y":382}}],"NextGates":[{"Point":{"X":832,"Y":358},"Parameter":1}],"PathGuides":[{"Polygon":{"Points":[{"X":785,"Y":517},{"X":891,"Y":511},{"X":893,"Y":573},{"X":750,"Y":585}],"Length":4},"Target":{"X":712,"Y":530}},{"Polygon":{"Points":[{"X":575,"Y":543},{"X":783,"Y":531},{"X":744,"Y":592},{"X":569,"Y":579}],"Length":4},"Target":{"X":712,"Y":530}},{"Polygon":{"Points":[{"X":346,"Y":524},{"X":425,"Y":518},{"X":442,"Y":529},{"X":429,"Y":556},{"X":336,"Y":564}],"Length":5},"Target":{"X":287,"Y":523}}]} |
| | | //7 |
| | | {"Width":896,"Height":720,"Obstacles":[{"Points":[{"X":891,"Y":674},{"X":328,"Y":675},{"X":320,"Y":630},{"X":310,"Y":560},{"X":226,"Y":520},{"X":120,"Y":510},{"X":5,"Y":494},{"X":0,"Y":513},{"X":1,"Y":719},{"X":893,"Y":718}],"Length":10},{"Points":[{"X":2,"Y":314},{"X":160,"Y":304},{"X":269,"Y":346},{"X":458,"Y":349},{"X":508,"Y":367},{"X":611,"Y":386},{"X":725,"Y":381},{"X":746,"Y":358},{"X":805,"Y":353},{"X":878,"Y":333},{"X":894,"Y":322},{"X":891,"Y":2},{"X":1,"Y":2}],"Length":13}],"LocationPoints":[{"Point":{"X":797,"Y":407},"Parameter":0},{"Point":{"X":672,"Y":406},"Parameter":1},{"Point":{"X":546,"Y":407},"Parameter":2},{"Point":{"X":422,"Y":405},"Parameter":3},{"Point":{"X":297,"Y":406},"Parameter":4},{"Point":{"X":172,"Y":408},"Parameter":5},{"Point":{"X":48,"Y":407},"Parameter":6},{"Point":{"X":87,"Y":391},"Parameter":10},{"Point":{"X":212,"Y":390},"Parameter":11},{"Point":{"X":339,"Y":390},"Parameter":12},{"Point":{"X":464,"Y":391},"Parameter":13},{"Point":{"X":590,"Y":391},"Parameter":14},{"Point":{"X":716,"Y":391},"Parameter":15},{"Point":{"X":842,"Y":391},"Parameter":16}],"FindPathPoints":[{"X":181,"Y":388},{"X":770,"Y":419},{"X":499,"Y":552}],"LoopPoint":{"X":200,"Y":396},"FindPathLines":[{"P1":{"X":181,"Y":388},"P2":{"X":770,"Y":419}},{"P1":{"X":499,"Y":552},"P2":{"X":770,"Y":419}},{"P1":{"X":499,"Y":552},"P2":{"X":181,"Y":388}}],"NextGates":[{"Point":{"X":834,"Y":410},"Parameter":1}],"PathGuides":[]} |
| | | //8 |
| | | {"Width":1120,"Height":600,"Obstacles":[{"Points":[{"X":0,"Y":322},{"X":58,"Y":329},{"X":218,"Y":398},{"X":239,"Y":367},{"X":206,"Y":326},{"X":253,"Y":310},{"X":295,"Y":303},{"X":317,"Y":181},{"X":325,"Y":28},{"X":315,"Y":4},{"X":1,"Y":5}],"Length":11},{"Points":[{"X":486,"Y":313},{"X":630,"Y":311},{"X":709,"Y":314},{"X":818,"Y":340},{"X":936,"Y":334},{"X":1030,"Y":337},{"X":1061,"Y":309},{"X":1103,"Y":200},{"X":1113,"Y":3},{"X":322,"Y":2},{"X":320,"Y":143},{"X":463,"Y":153}],"Length":12},{"Points":[{"X":1118,"Y":510},{"X":968,"Y":506},{"X":823,"Y":526},{"X":810,"Y":590},{"X":1117,"Y":598}],"Length":5}],"LocationPoints":[{"Point":{"X":1023,"Y":334},"Parameter":0},{"Point":{"X":898,"Y":334},"Parameter":1},{"Point":{"X":773,"Y":333},"Parameter":2},{"Point":{"X":648,"Y":334},"Parameter":3},{"Point":{"X":522,"Y":334},"Parameter":4},{"Point":{"X":399,"Y":334},"Parameter":5},{"Point":{"X":272,"Y":334},"Parameter":6},{"Point":{"X":149,"Y":334},"Parameter":7},{"Point":{"X":90,"Y":417},"Parameter":10},{"Point":{"X":216,"Y":417},"Parameter":11},{"Point":{"X":342,"Y":416},"Parameter":12},{"Point":{"X":467,"Y":416},"Parameter":13},{"Point":{"X":593,"Y":417},"Parameter":14},{"Point":{"X":719,"Y":417},"Parameter":15},{"Point":{"X":844,"Y":415},"Parameter":16},{"Point":{"X":970,"Y":417},"Parameter":17},{"Point":{"X":289,"Y":420},"Parameter":20},{"Point":{"X":289,"Y":360},"Parameter":21},{"Point":{"X":289,"Y":301},"Parameter":22},{"Point":{"X":288,"Y":241},"Parameter":23},{"Point":{"X":289,"Y":182},"Parameter":24},{"Point":{"X":289,"Y":123},"Parameter":25},{"Point":{"X":289,"Y":63},"Parameter":26},{"Point":{"X":290,"Y":5},"Parameter":27}],"FindPathPoints":[{"X":159,"Y":419},{"X":409,"Y":415},{"X":687,"Y":409},{"X":929,"Y":431}],"LoopPoint":{"X":813,"Y":372},"FindPathLines":[{"P1":{"X":159,"Y":419},"P2":{"X":409,"Y":415}},{"P1":{"X":409,"Y":415},"P2":{"X":687,"Y":409}},{"P1":{"X":687,"Y":409},"P2":{"X":929,"Y":431}},{"P1":{"X":409,"Y":415},"P2":{"X":929,"Y":431}},{"P1":{"X":159,"Y":419},"P2":{"X":687,"Y":409}}],"NextGates":[{"Point":{"X":288,"Y":453},"Parameter":2}],"PathGuides":[]} |
| | | //9 |
| | | {"Width":1120,"Height":600,"Obstacles":[{"Points":[{"X":2,"Y":323},{"X":87,"Y":301},{"X":248,"Y":296},{"X":353,"Y":332},{"X":424,"Y":355},{"X":736,"Y":362},{"X":953,"Y":343},{"X":952,"Y":296},{"X":1019,"Y":313},{"X":1105,"Y":357},{"X":1117,"Y":357},{"X":1116,"Y":1},{"X":0,"Y":1}],"Length":13},{"Points":[{"X":156,"Y":595},{"X":182,"Y":540},{"X":252,"Y":491},{"X":407,"Y":472},{"X":468,"Y":507},{"X":708,"Y":507},{"X":753,"Y":473},{"X":912,"Y":443},{"X":1013,"Y":476},{"X":1106,"Y":495},{"X":1118,"Y":597}],"Length":11}],"LocationPoints":[{"Point":{"X":89,"Y":417},"Parameter":10},{"Point":{"X":216,"Y":416},"Parameter":11},{"Point":{"X":341,"Y":418},"Parameter":12},{"Point":{"X":469,"Y":418},"Parameter":13},{"Point":{"X":593,"Y":415},"Parameter":14},{"Point":{"X":718,"Y":418},"Parameter":15},{"Point":{"X":845,"Y":417},"Parameter":16},{"Point":{"X":970,"Y":415},"Parameter":17},{"Point":{"X":1097,"Y":416},"Parameter":18}],"FindPathPoints":[{"X":233,"Y":364},{"X":142,"Y":457},{"X":1026,"Y":368}],"LoopPoint":{"X":944,"Y":399},"FindPathLines":[{"P1":{"X":233,"Y":364},"P2":{"X":1026,"Y":368}},{"P1":{"X":142,"Y":457},"P2":{"X":1026,"Y":368}},{"P1":{"X":142,"Y":457},"P2":{"X":233,"Y":364}}],"NextGates":[{"Point":{"X":73,"Y":416},"Parameter":3}],"PathGuides":[]} |
| | | //10 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //11 |
| | | {"Width":1120,"Height":600,"Obstacles":[{"Points":[{"X":1054,"Y":312},{"X":749,"Y":343},{"X":537,"Y":328},{"X":436,"Y":316},{"X":335,"Y":355},{"X":105,"Y":340},{"X":14,"Y":312},{"X":2,"Y":2},{"X":1116,"Y":1},{"X":1118,"Y":287}],"Length":10},{"Points":[{"X":1116,"Y":557},{"X":1028,"Y":562},{"X":971,"Y":508},{"X":810,"Y":495},{"X":621,"Y":497},{"X":539,"Y":511},{"X":0,"Y":497},{"X":2,"Y":599},{"X":1119,"Y":597}],"Length":9}],"LocationPoints":[{"Point":{"X":1021,"Y":376},"Parameter":0},{"Point":{"X":897,"Y":378},"Parameter":1},{"Point":{"X":773,"Y":376},"Parameter":2},{"Point":{"X":647,"Y":377},"Parameter":3},{"Point":{"X":523,"Y":375},"Parameter":4},{"Point":{"X":398,"Y":376},"Parameter":5},{"Point":{"X":273,"Y":376},"Parameter":6},{"Point":{"X":149,"Y":377},"Parameter":7},{"Point":{"X":23,"Y":376},"Parameter":8}],"FindPathPoints":[{"X":1040,"Y":456},{"X":472,"Y":418},{"X":37,"Y":443}],"LoopPoint":{"X":116,"Y":393},"FindPathLines":[{"P1":{"X":37,"Y":443},"P2":{"X":472,"Y":418}},{"P1":{"X":37,"Y":443},"P2":{"X":1040,"Y":456}},{"P1":{"X":1040,"Y":456},"P2":{"X":472,"Y":418}}],"NextGates":[{"Point":{"X":1056,"Y":376},"Parameter":1}],"PathGuides":[]} |
| | | //12 |
| | | {"Width":1344,"Height":600,"Obstacles":[{"Points":[{"X":1337,"Y":276},{"X":1205,"Y":293},{"X":1200,"Y":309},{"X":830,"Y":333},{"X":619,"Y":327},{"X":132,"Y":328},{"X":76,"Y":349},{"X":2,"Y":304},{"X":1,"Y":4},{"X":1340,"Y":3}],"Length":10},{"Points":[{"X":1341,"Y":529},{"X":1093,"Y":512},{"X":998,"Y":490},{"X":941,"Y":505},{"X":844,"Y":498},{"X":585,"Y":493},{"X":520,"Y":556},{"X":518,"Y":595},{"X":1342,"Y":599}],"Length":9},{"Points":[{"X":7,"Y":447},{"X":72,"Y":459},{"X":134,"Y":512},{"X":309,"Y":506},{"X":342,"Y":579},{"X":343,"Y":596},{"X":0,"Y":598}],"Length":7}],"LocationPoints":[{"Point":{"X":1253,"Y":308},"Parameter":0},{"Point":{"X":1128,"Y":308},"Parameter":1},{"Point":{"X":1003,"Y":306},"Parameter":2},{"Point":{"X":878,"Y":308},"Parameter":3},{"Point":{"X":753,"Y":307},"Parameter":4},{"Point":{"X":629,"Y":306},"Parameter":5},{"Point":{"X":379,"Y":306},"Parameter":7},{"Point":{"X":254,"Y":307},"Parameter":8},{"Point":{"X":129,"Y":308},"Parameter":9},{"Point":{"X":502,"Y":304},"Parameter":6},{"Point":{"X":87,"Y":392},"Parameter":10},{"Point":{"X":211,"Y":391},"Parameter":11},{"Point":{"X":339,"Y":391},"Parameter":12},{"Point":{"X":591,"Y":391},"Parameter":14},{"Point":{"X":473,"Y":391},"Parameter":13},{"Point":{"X":716,"Y":392},"Parameter":15},{"Point":{"X":842,"Y":390},"Parameter":16},{"Point":{"X":967,"Y":391},"Parameter":17},{"Point":{"X":1094,"Y":391},"Parameter":18},{"Point":{"X":1219,"Y":391},"Parameter":19},{"Point":{"X":415,"Y":420},"Parameter":20},{"Point":{"X":416,"Y":360},"Parameter":21},{"Point":{"X":415,"Y":300},"Parameter":22},{"Point":{"X":415,"Y":240},"Parameter":23},{"Point":{"X":416,"Y":183},"Parameter":24},{"Point":{"X":415,"Y":123},"Parameter":25},{"Point":{"X":416,"Y":64},"Parameter":26},{"Point":{"X":414,"Y":2},"Parameter":27}],"FindPathPoints":[{"X":230,"Y":382},{"X":523,"Y":445},{"X":1183,"Y":390}],"LoopPoint":{"X":1157,"Y":354},"FindPathLines":[{"P1":{"X":230,"Y":382},"P2":{"X":1183,"Y":390}},{"P1":{"X":523,"Y":445},"P2":{"X":1183,"Y":390}},{"P1":{"X":523,"Y":445},"P2":{"X":230,"Y":382}}],"NextGates":[{"Point":{"X":417,"Y":457},"Parameter":2}],"PathGuides":[]} |
| | | //13 |
| | | {"Width":1344,"Height":686,"Obstacles":[{"Points":[{"X":4,"Y":496},{"X":60,"Y":496},{"X":92,"Y":528},{"X":311,"Y":534},{"X":484,"Y":549},{"X":775,"Y":519},{"X":855,"Y":569},{"X":959,"Y":559},{"X":967,"Y":512},{"X":1068,"Y":514},{"X":1122,"Y":573},{"X":1342,"Y":557},{"X":1342,"Y":684},{"X":1,"Y":683}],"Length":14},{"Points":[{"X":244,"Y":388},{"X":261,"Y":350},{"X":378,"Y":346},{"X":393,"Y":317},{"X":439,"Y":345},{"X":539,"Y":377},{"X":628,"Y":355},{"X":960,"Y":348},{"X":1010,"Y":183},{"X":1014,"Y":4},{"X":1,"Y":3},{"X":8,"Y":276}],"Length":12},{"Points":[{"X":1191,"Y":324},{"X":1334,"Y":282},{"X":1338,"Y":3},{"X":1020,"Y":7},{"X":1018,"Y":110},{"X":1150,"Y":148}],"Length":6}],"LocationPoints":[{"Point":{"X":1245,"Y":398},"Parameter":0},{"Point":{"X":1121,"Y":398},"Parameter":1},{"Point":{"X":995,"Y":398},"Parameter":2},{"Point":{"X":871,"Y":398},"Parameter":3},{"Point":{"X":746,"Y":398},"Parameter":4},{"Point":{"X":620,"Y":398},"Parameter":5},{"Point":{"X":497,"Y":397},"Parameter":6},{"Point":{"X":373,"Y":399},"Parameter":7},{"Point":{"X":249,"Y":397},"Parameter":8},{"Point":{"X":122,"Y":397},"Parameter":9},{"Point":{"X":263,"Y":415},"Parameter":10},{"Point":{"X":389,"Y":415},"Parameter":11},{"Point":{"X":516,"Y":413},"Parameter":12},{"Point":{"X":642,"Y":415},"Parameter":13},{"Point":{"X":768,"Y":415},"Parameter":14},{"Point":{"X":892,"Y":415},"Parameter":15},{"Point":{"X":1018,"Y":414},"Parameter":16},{"Point":{"X":1146,"Y":414},"Parameter":17},{"Point":{"X":1271,"Y":414},"Parameter":18},{"Point":{"X":1063,"Y":192},"Parameter":20},{"Point":{"X":1063,"Y":134},"Parameter":21},{"Point":{"X":1063,"Y":72},"Parameter":22},{"Point":{"X":1063,"Y":14},"Parameter":23}],"FindPathPoints":[{"X":1194,"Y":413},{"X":854,"Y":420},{"X":327,"Y":415}],"LoopPoint":{"X":1104,"Y":435},"FindPathLines":[{"P1":{"X":327,"Y":415},"P2":{"X":854,"Y":420}},{"P1":{"X":854,"Y":420},"P2":{"X":1194,"Y":413}},{"P1":{"X":327,"Y":415},"P2":{"X":1194,"Y":413}}],"NextGates":[{"Point":{"X":244,"Y":416},"Parameter":3}],"PathGuides":[]} |
| | | //14 |
| | | {"Width":1120,"Height":686,"Obstacles":[{"Points":[{"X":2,"Y":520},{"X":254,"Y":523},{"X":461,"Y":521},{"X":497,"Y":503},{"X":597,"Y":486},{"X":779,"Y":509},{"X":895,"Y":558},{"X":1113,"Y":546},{"X":1117,"Y":627},{"X":3,"Y":630}],"Length":10},{"Points":[{"X":3,"Y":293},{"X":110,"Y":336},{"X":249,"Y":344},{"X":465,"Y":376},{"X":505,"Y":364},{"X":518,"Y":311},{"X":693,"Y":290},{"X":917,"Y":300},{"X":1066,"Y":347},{"X":1117,"Y":342},{"X":1116,"Y":2},{"X":8,"Y":1}],"Length":12}],"LocationPoints":[{"Point":{"X":90,"Y":403},"Parameter":10},{"Point":{"X":217,"Y":404},"Parameter":11},{"Point":{"X":343,"Y":403},"Parameter":12},{"Point":{"X":470,"Y":402},"Parameter":13},{"Point":{"X":592,"Y":402},"Parameter":14},{"Point":{"X":718,"Y":404},"Parameter":15},{"Point":{"X":845,"Y":403},"Parameter":16},{"Point":{"X":972,"Y":403},"Parameter":17},{"Point":{"X":1099,"Y":403},"Parameter":18},{"Point":{"X":1002,"Y":425},"Parameter":20},{"Point":{"X":1003,"Y":366},"Parameter":21},{"Point":{"X":1001,"Y":306},"Parameter":22},{"Point":{"X":1002,"Y":249},"Parameter":23},{"Point":{"X":1000,"Y":189},"Parameter":24},{"Point":{"X":1000,"Y":130},"Parameter":25},{"Point":{"X":1001,"Y":67},"Parameter":26}],"FindPathPoints":[{"X":985,"Y":378},{"X":752,"Y":345},{"X":337,"Y":444}],"LoopPoint":{"X":810,"Y":376},"FindPathLines":[{"P1":{"X":337,"Y":444},"P2":{"X":752,"Y":345}},{"P1":{"X":752,"Y":345},"P2":{"X":985,"Y":378}},{"P1":{"X":337,"Y":444},"P2":{"X":985,"Y":378}}],"NextGates":[{"Point":{"X":65,"Y":405},"Parameter":3}],"PathGuides":[]} |
| | | //15 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //16 |
| | | {"Width":1120,"Height":720,"Obstacles":[{"Points":[{"X":1119,"Y":270},{"X":459,"Y":278},{"X":307,"Y":333},{"X":239,"Y":331},{"X":164,"Y":371},{"X":2,"Y":378},{"X":2,"Y":4},{"X":1115,"Y":3}],"Length":8},{"Points":[{"X":1,"Y":597},{"X":72,"Y":575},{"X":186,"Y":595},{"X":266,"Y":598},{"X":282,"Y":645},{"X":210,"Y":716},{"X":1,"Y":717}],"Length":7},{"Points":[{"X":420,"Y":671},{"X":414,"Y":606},{"X":496,"Y":575},{"X":547,"Y":620},{"X":678,"Y":620},{"X":937,"Y":580},{"X":981,"Y":473},{"X":1116,"Y":481},{"X":1118,"Y":715},{"X":353,"Y":715}],"Length":10}],"LocationPoints":[{"Point":{"X":1005,"Y":348},"Parameter":0},{"Point":{"X":880,"Y":348},"Parameter":1},{"Point":{"X":755,"Y":348},"Parameter":2},{"Point":{"X":631,"Y":348},"Parameter":3},{"Point":{"X":506,"Y":348},"Parameter":4},{"Point":{"X":383,"Y":349},"Parameter":5},{"Point":{"X":255,"Y":347},"Parameter":6},{"Point":{"X":130,"Y":348},"Parameter":7},{"Point":{"X":8,"Y":348},"Parameter":8}],"FindPathPoints":[{"X":354,"Y":582},{"X":45,"Y":456},{"X":352,"Y":414},{"X":736,"Y":419},{"X":964,"Y":373}],"LoopPoint":{"X":86,"Y":432},"FindPathLines":[{"P1":{"X":45,"Y":456},"P2":{"X":352,"Y":414}},{"P1":{"X":45,"Y":456},"P2":{"X":354,"Y":582}},{"P1":{"X":354,"Y":582},"P2":{"X":736,"Y":419}},{"P1":{"X":352,"Y":414},"P2":{"X":736,"Y":419}},{"P1":{"X":736,"Y":419},"P2":{"X":964,"Y":373}},{"P1":{"X":45,"Y":456},"P2":{"X":736,"Y":419}},{"P1":{"X":352,"Y":414},"P2":{"X":354,"Y":582}},{"P1":{"X":354,"Y":582},"P2":{"X":964,"Y":373}},{"P1":{"X":45,"Y":456},"P2":{"X":964,"Y":373}},{"P1":{"X":352,"Y":414},"P2":{"X":964,"Y":373}}],"NextGates":[{"Point":{"X":996,"Y":362},"Parameter":1}],"PathGuides":[]} |
| | | //17 |
| | | {"Width":1120,"Height":600,"Obstacles":[{"Points":[{"X":2,"Y":331},{"X":80,"Y":374},{"X":124,"Y":393},{"X":240,"Y":391},{"X":274,"Y":331},{"X":902,"Y":329},{"X":953,"Y":231},{"X":957,"Y":2},{"X":1,"Y":2}],"Length":9},{"Points":[{"X":972,"Y":190},{"X":1044,"Y":214},{"X":1063,"Y":328},{"X":1118,"Y":328},{"X":1117,"Y":2},{"X":960,"Y":5},{"X":956,"Y":175}],"Length":7},{"Points":[{"X":1117,"Y":540},{"X":906,"Y":525},{"X":794,"Y":555},{"X":421,"Y":555},{"X":1,"Y":556},{"X":0,"Y":596},{"X":1118,"Y":599}],"Length":7}],"LocationPoints":[{"Point":{"X":90,"Y":417},"Parameter":10},{"Point":{"X":215,"Y":416},"Parameter":11},{"Point":{"X":342,"Y":418},"Parameter":12},{"Point":{"X":468,"Y":417},"Parameter":13},{"Point":{"X":594,"Y":417},"Parameter":14},{"Point":{"X":718,"Y":417},"Parameter":15},{"Point":{"X":844,"Y":416},"Parameter":16},{"Point":{"X":970,"Y":417},"Parameter":17},{"Point":{"X":1097,"Y":416},"Parameter":18},{"Point":{"X":980,"Y":227},"Parameter":20},{"Point":{"X":980,"Y":169},"Parameter":21},{"Point":{"X":981,"Y":111},"Parameter":22},{"Point":{"X":980,"Y":52},"Parameter":23}],"FindPathPoints":[{"X":351,"Y":433},{"X":90,"Y":451},{"X":1049,"Y":423}],"LoopPoint":{"X":940,"Y":446},"FindPathLines":[{"P1":{"X":90,"Y":451},"P2":{"X":351,"Y":433}},{"P1":{"X":90,"Y":451},"P2":{"X":1049,"Y":423}},{"P1":{"X":351,"Y":433},"P2":{"X":1049,"Y":423}}],"NextGates":[{"Point":{"X":68,"Y":417},"Parameter":3}],"PathGuides":[]} |
| | | //18 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //19 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| New file |
| | |
| | | //0 |
| | | {"Width":896,"Height":686,"Obstacles":[{"Points":[{"X":2,"Y":320},{"X":460,"Y":310},{"X":493,"Y":319},{"X":556,"Y":334},{"X":668,"Y":344},{"X":759,"Y":330},{"X":873,"Y":308},{"X":893,"Y":300},{"X":891,"Y":1},{"X":2,"Y":3}],"Length":10},{"Points":[{"X":2,"Y":552},{"X":71,"Y":545},{"X":76,"Y":427},{"X":165,"Y":439},{"X":166,"Y":521},{"X":253,"Y":559},{"X":703,"Y":550},{"X":703,"Y":521},{"X":823,"Y":513},{"X":834,"Y":568},{"X":893,"Y":559},{"X":893,"Y":684},{"X":4,"Y":683}],"Length":13}],"LocationPoints":[{"Point":{"X":797,"Y":348},"Parameter":0},{"Point":{"X":671,"Y":348},"Parameter":1},{"Point":{"X":547,"Y":348},"Parameter":2},{"Point":{"X":423,"Y":348},"Parameter":3},{"Point":{"X":298,"Y":347},"Parameter":4},{"Point":{"X":172,"Y":348},"Parameter":5},{"Point":{"X":47,"Y":348},"Parameter":6}],"FindPathPoints":[{"X":51,"Y":392},{"X":438,"Y":418},{"X":775,"Y":400}],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[{"P1":{"X":51,"Y":392},"P2":{"X":775,"Y":400}},{"P1":{"X":438,"Y":418},"P2":{"X":775,"Y":400}},{"P1":{"X":438,"Y":418},"P2":{"X":51,"Y":392}}],"NextGates":[{"Point":{"X":833,"Y":348},"Parameter":1}],"PathGuides":[]} |
| | | //1 |
| | | {"Width":896,"Height":720,"Obstacles":[{"Points":[{"X":2,"Y":541},{"X":291,"Y":563},{"X":406,"Y":615},{"X":411,"Y":685},{"X":0,"Y":683}],"Length":5},{"Points":[{"X":88,"Y":475},{"X":158,"Y":514},{"X":246,"Y":512},{"X":295,"Y":523},{"X":356,"Y":534},{"X":421,"Y":524},{"X":413,"Y":473},{"X":336,"Y":455},{"X":267,"Y":445},{"X":215,"Y":426},{"X":148,"Y":431},{"X":103,"Y":442}],"Length":12},{"Points":[{"X":49,"Y":332},{"X":181,"Y":302},{"X":180,"Y":258},{"X":271,"Y":250},{"X":347,"Y":275},{"X":425,"Y":288},{"X":543,"Y":321},{"X":655,"Y":357},{"X":793,"Y":343},{"X":858,"Y":326},{"X":890,"Y":345},{"X":893,"Y":4},{"X":4,"Y":1},{"X":0,"Y":307}],"Length":14},{"Points":[{"X":560,"Y":716},{"X":591,"Y":586},{"X":644,"Y":566},{"X":792,"Y":559},{"X":825,"Y":535},{"X":879,"Y":535},{"X":895,"Y":542},{"X":894,"Y":718}],"Length":8}],"LocationPoints":[{"Point":{"X":86,"Y":391},"Parameter":10},{"Point":{"X":211,"Y":390},"Parameter":11},{"Point":{"X":337,"Y":390},"Parameter":12},{"Point":{"X":465,"Y":391},"Parameter":13},{"Point":{"X":590,"Y":391},"Parameter":14},{"Point":{"X":716,"Y":390},"Parameter":15},{"Point":{"X":841,"Y":391},"Parameter":16},{"Point":{"X":467,"Y":531},"Parameter":20},{"Point":{"X":467,"Y":473},"Parameter":21},{"Point":{"X":468,"Y":414},"Parameter":22},{"Point":{"X":467,"Y":354},"Parameter":23},{"Point":{"X":468,"Y":295},"Parameter":24},{"Point":{"X":467,"Y":237},"Parameter":25},{"Point":{"X":468,"Y":176},"Parameter":26},{"Point":{"X":468,"Y":119},"Parameter":27},{"Point":{"X":469,"Y":59},"Parameter":28}],"FindPathPoints":[{"X":159,"Y":370},{"X":343,"Y":346},{"X":547,"Y":388},{"X":445,"Y":416},{"X":470,"Y":558},{"X":215,"Y":534},{"X":38,"Y":480}],"LoopPoint":{"X":208,"Y":312},"FindPathLines":[{"P1":{"X":159,"Y":370},"P2":{"X":343,"Y":346}},{"P1":{"X":159,"Y":370},"P2":{"X":445,"Y":416}},{"P1":{"X":445,"Y":416},"P2":{"X":547,"Y":388}},{"P1":{"X":343,"Y":346},"P2":{"X":547,"Y":388}},{"P1":{"X":343,"Y":346},"P2":{"X":445,"Y":416}},{"P1":{"X":159,"Y":370},"P2":{"X":547,"Y":388}},{"P1":{"X":445,"Y":416},"P2":{"X":470,"Y":558}},{"P1":{"X":215,"Y":534},"P2":{"X":470,"Y":558}},{"P1":{"X":38,"Y":480},"P2":{"X":159,"Y":370}},{"P1":{"X":38,"Y":480},"P2":{"X":215,"Y":534}}],"NextGates":[{"Point":{"X":468,"Y":571},"Parameter":2}],"PathGuides":[]} |
| | | //2 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //3 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //4 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //5 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //6 |
| | | {"Width":896,"Height":686,"Obstacles":[{"Points":[{"X":0,"Y":561},{"X":236,"Y":556},{"X":357,"Y":542},{"X":353,"Y":509},{"X":547,"Y":497},{"X":602,"Y":551},{"X":775,"Y":533},{"X":788,"Y":493},{"X":868,"Y":477},{"X":891,"Y":482},{"X":895,"Y":684},{"X":0,"Y":685}],"Length":12},{"Points":[{"X":4,"Y":337},{"X":15,"Y":336},{"X":81,"Y":201},{"X":117,"Y":122},{"X":167,"Y":2},{"X":1,"Y":4}],"Length":6},{"Points":[{"X":169,"Y":324},{"X":201,"Y":338},{"X":255,"Y":368},{"X":336,"Y":369},{"X":377,"Y":366},{"X":387,"Y":336},{"X":424,"Y":347},{"X":520,"Y":356},{"X":559,"Y":320},{"X":612,"Y":296},{"X":642,"Y":302},{"X":722,"Y":304},{"X":771,"Y":271},{"X":865,"Y":264},{"X":893,"Y":265},{"X":894,"Y":1},{"X":157,"Y":4},{"X":87,"Y":172},{"X":198,"Y":190}],"Length":19}],"LocationPoints":[{"Point":{"X":796,"Y":358},"Parameter":0},{"Point":{"X":671,"Y":359},"Parameter":1},{"Point":{"X":545,"Y":359},"Parameter":2},{"Point":{"X":424,"Y":360},"Parameter":3},{"Point":{"X":297,"Y":357},"Parameter":4},{"Point":{"X":172,"Y":359},"Parameter":5},{"Point":{"X":48,"Y":359},"Parameter":6},{"Point":{"X":101,"Y":215},"Parameter":20},{"Point":{"X":101,"Y":156},"Parameter":21},{"Point":{"X":102,"Y":97},"Parameter":22},{"Point":{"X":101,"Y":39},"Parameter":23}],"FindPathPoints":[{"X":107,"Y":440},{"X":410,"Y":424},{"X":728,"Y":382}],"LoopPoint":{"X":176,"Y":466},"FindPathLines":[{"P1":{"X":107,"Y":440},"P2":{"X":410,"Y":424}},{"P1":{"X":410,"Y":424},"P2":{"X":728,"Y":382}},{"P1":{"X":107,"Y":440},"P2":{"X":728,"Y":382}}],"NextGates":[{"Point":{"X":832,"Y":358},"Parameter":1}],"PathGuides":[{"Polygon":{"Points":[{"X":785,"Y":517},{"X":891,"Y":511},{"X":893,"Y":573},{"X":750,"Y":585}],"Length":4},"Target":{"X":712,"Y":530}},{"Polygon":{"Points":[{"X":575,"Y":543},{"X":783,"Y":531},{"X":744,"Y":592},{"X":569,"Y":579}],"Length":4},"Target":{"X":712,"Y":530}},{"Polygon":{"Points":[{"X":346,"Y":524},{"X":425,"Y":518},{"X":442,"Y":529},{"X":429,"Y":556},{"X":336,"Y":564}],"Length":5},"Target":{"X":287,"Y":523}}]} |
| | | //7 |
| | | {"Width":896,"Height":720,"Obstacles":[{"Points":[{"X":891,"Y":674},{"X":328,"Y":675},{"X":320,"Y":630},{"X":310,"Y":560},{"X":226,"Y":520},{"X":120,"Y":510},{"X":5,"Y":494},{"X":0,"Y":513},{"X":1,"Y":719},{"X":893,"Y":718}],"Length":10},{"Points":[{"X":2,"Y":314},{"X":160,"Y":304},{"X":269,"Y":346},{"X":458,"Y":349},{"X":508,"Y":367},{"X":611,"Y":386},{"X":725,"Y":381},{"X":746,"Y":358},{"X":805,"Y":353},{"X":878,"Y":333},{"X":894,"Y":322},{"X":891,"Y":2},{"X":1,"Y":2}],"Length":13}],"LocationPoints":[{"Point":{"X":797,"Y":407},"Parameter":0},{"Point":{"X":672,"Y":406},"Parameter":1},{"Point":{"X":546,"Y":407},"Parameter":2},{"Point":{"X":422,"Y":405},"Parameter":3},{"Point":{"X":297,"Y":406},"Parameter":4},{"Point":{"X":172,"Y":408},"Parameter":5},{"Point":{"X":48,"Y":407},"Parameter":6},{"Point":{"X":87,"Y":391},"Parameter":10},{"Point":{"X":212,"Y":390},"Parameter":11},{"Point":{"X":339,"Y":390},"Parameter":12},{"Point":{"X":464,"Y":391},"Parameter":13},{"Point":{"X":590,"Y":391},"Parameter":14},{"Point":{"X":716,"Y":391},"Parameter":15},{"Point":{"X":842,"Y":391},"Parameter":16}],"FindPathPoints":[{"X":181,"Y":388},{"X":770,"Y":419},{"X":499,"Y":552}],"LoopPoint":{"X":200,"Y":396},"FindPathLines":[{"P1":{"X":181,"Y":388},"P2":{"X":770,"Y":419}},{"P1":{"X":499,"Y":552},"P2":{"X":770,"Y":419}},{"P1":{"X":499,"Y":552},"P2":{"X":181,"Y":388}}],"NextGates":[{"Point":{"X":834,"Y":410},"Parameter":1}],"PathGuides":[]} |
| | | //8 |
| | | {"Width":1120,"Height":600,"Obstacles":[{"Points":[{"X":0,"Y":322},{"X":58,"Y":329},{"X":218,"Y":398},{"X":239,"Y":367},{"X":206,"Y":326},{"X":253,"Y":310},{"X":295,"Y":303},{"X":317,"Y":181},{"X":325,"Y":28},{"X":315,"Y":4},{"X":1,"Y":5}],"Length":11},{"Points":[{"X":486,"Y":313},{"X":630,"Y":311},{"X":709,"Y":314},{"X":818,"Y":340},{"X":936,"Y":334},{"X":1030,"Y":337},{"X":1061,"Y":309},{"X":1103,"Y":200},{"X":1113,"Y":3},{"X":322,"Y":2},{"X":320,"Y":143},{"X":463,"Y":153}],"Length":12},{"Points":[{"X":1118,"Y":510},{"X":968,"Y":506},{"X":823,"Y":526},{"X":810,"Y":590},{"X":1117,"Y":598}],"Length":5}],"LocationPoints":[{"Point":{"X":1023,"Y":334},"Parameter":0},{"Point":{"X":898,"Y":334},"Parameter":1},{"Point":{"X":773,"Y":333},"Parameter":2},{"Point":{"X":648,"Y":334},"Parameter":3},{"Point":{"X":522,"Y":334},"Parameter":4},{"Point":{"X":399,"Y":334},"Parameter":5},{"Point":{"X":272,"Y":334},"Parameter":6},{"Point":{"X":149,"Y":334},"Parameter":7},{"Point":{"X":90,"Y":417},"Parameter":10},{"Point":{"X":216,"Y":417},"Parameter":11},{"Point":{"X":342,"Y":416},"Parameter":12},{"Point":{"X":467,"Y":416},"Parameter":13},{"Point":{"X":593,"Y":417},"Parameter":14},{"Point":{"X":719,"Y":417},"Parameter":15},{"Point":{"X":844,"Y":415},"Parameter":16},{"Point":{"X":970,"Y":417},"Parameter":17},{"Point":{"X":289,"Y":420},"Parameter":20},{"Point":{"X":289,"Y":360},"Parameter":21},{"Point":{"X":289,"Y":301},"Parameter":22},{"Point":{"X":288,"Y":241},"Parameter":23},{"Point":{"X":289,"Y":182},"Parameter":24},{"Point":{"X":289,"Y":123},"Parameter":25},{"Point":{"X":289,"Y":63},"Parameter":26},{"Point":{"X":290,"Y":5},"Parameter":27}],"FindPathPoints":[{"X":159,"Y":419},{"X":409,"Y":415},{"X":687,"Y":409},{"X":929,"Y":431}],"LoopPoint":{"X":813,"Y":372},"FindPathLines":[{"P1":{"X":159,"Y":419},"P2":{"X":409,"Y":415}},{"P1":{"X":409,"Y":415},"P2":{"X":687,"Y":409}},{"P1":{"X":687,"Y":409},"P2":{"X":929,"Y":431}},{"P1":{"X":409,"Y":415},"P2":{"X":929,"Y":431}},{"P1":{"X":159,"Y":419},"P2":{"X":687,"Y":409}}],"NextGates":[{"Point":{"X":288,"Y":453},"Parameter":2}],"PathGuides":[]} |
| | | //9 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //10 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //11 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //12 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //13 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //14 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //15 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //16 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //17 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //18 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |
| | | //19 |
| | | {"Width":896,"Height":720,"Obstacles":[],"LocationPoints":[],"FindPathPoints":[],"LoopPoint":{"X":0,"Y":0},"FindPathLines":[],"NextGates":[],"PathGuides":[]} |