1 files added
1 files deleted
2 files renamed
16 files modified
| | |
| | | /// <summary> |
| | | /// 加百利关闭按钮 |
| | | /// </summary> |
| | | public static ColorArray shopCloseButton = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "521,541,255,255,204$532,541,255,255,204$531,541,255,255,204$531,542,255,255,187$530,542,255,255,187$530,543,255,255,187$529,543,255,255,187$529,544,255,238,187$528,544,255,238,187$527,546,238,221,170$526,546,238,221,170$522,541,255,255,204$522,542,255,255,187$523,542,255,255,187$523,543,255,255,187$524,543,255,255,187$521,551,204,187,119$522,551,204,187,119$522,550,221,187,136$523,550,221,187,136$523,549,221,204,136$524,549,221,204,136$532,551,204,187,119$531,551,204,187,119$531,550,221,187,136$530,550,221,187,136$530,549,221,204,136$529,549,221,204,136"); |
| | | 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> |
| | | /// 出售按钮 |
| | | /// </summary> |
| | |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | saleButtonPosition = ZTRectangle.Empty; |
| | | closeButtonPosition = ZTRectangle.Empty; |
| | | if (CVHelper.FindColorArray(out closeButtonPosition, image, shopCloseButton, gameRect)) |
| | | if (CVHelper.FindColorArrayForThreshold(out closeButtonPosition, image, shopCloseButton, gameRect)) |
| | | { |
| | | if (CVHelper.FindColorArray(out saleButtonPosition, image, shopSaleButton, gameRect)) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 系统菜单面板 |
| | | /// </summary> |
| | | public static ColorArray SystemPanelTitle = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "876,195,221,221,153$485,558,207,173,82$518,558,207,173,82$586,558,207,173,82$632,558,207,173,82$716,558,139,119,54$789,558,139,119,54$867,558,139,119,54$832,211,136,119,68$746,211,136,119,68$636,211,221,187,102$568,211,221,187,102$492,211,221,187,102$871,195,221,221,153$889,195,221,221,153$879,204,153,119,68$870,204,153,119,68"); |
| | | 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"); |
| | | public static bool IsOpenSystemPanel(ZTRectangle gameRect) |
| | | { |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | ZTRectangle position = ZTRectangle.Empty; |
| | | return CVHelper.FindColorArray(out position, image, SystemPanelTitle, gameRect); |
| | | return CVHelper.FindColorArrayForThreshold(out position, image, SystemPanelTitle, gameRect); |
| | | } |
| | | |
| | | |
| | |
| | | /// <summary> |
| | | /// 技能窗标题文字 |
| | | /// </summary> |
| | | private static ColorArray skillTitleText = ColorArray.FromHsvFloatString(0.002f,0.002f,0.002f, "646,119,255,255,255$645,111,255,255,255$647,111,255,255,255$648,111,255,255,255$647,108,255,255,255$647,109,255,255,255$647,110,255,255,255$647,111,255,255,255$645,115,255,255,255$646,115,255,255,255$647,115,255,255,255$647,119,255,255,255$649,119,255,255,255$650,119,255,255,255$654,119,255,255,255$655,119,255,255,255$658,119,255,255,255$660,119,255,255,255$661,119,255,255,255$665,119,255,255,255$667,119,255,255,255$671,119,255,255,255$673,119,255,255,255$674,119,255,255,255$675,119,255,255,255$676,119,255,255,255$677,119,255,255,255$678,115,255,255,255$676,115,255,255,255$674,115,255,255,255$671,115,255,255,255$671,114,255,255,255$671,113,255,255,255$671,112,255,255,255$671,111,255,255,255$671,110,255,255,255$671,108,255,255,255$674,108,255,255,255$678,108,255,255,255$666,108,255,255,255$663,108,255,255,255$660,110,255,255,255$659,110,255,255,255$658,110,255,255,255$654,110,255,255,255$651,110,255,255,255$650,110,255,255,255$652,110,255,255,255$652,113,255,255,255"); |
| | | |
| | | 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> |
| | | private static ColorArray lvText = ColorArray.FromHsvFloatString(0.01f,0.01f,0.01f, "278,261,153,153,153$279,256,145,145,145$279,255,153,153,153$278,256,153,153,153$278,257,153,153,153$278,258,153,153,153$277,258,153,153,153$277,259,153,153,153$277,260,153,153,153$277,261,153,153,153$279,261,153,153,153$280,261,153,153,153$285,261,153,153,153$285,258,153,153,153$285,257,153,153,153$285,262,153,153,153$286,261,153,153,153$287,260,153,153,153$288,259,153,153,153$289,258,145,145,145$289,257,153,153,153"); |
| | | private static ColorArray lvText = ColorArray.FromThresholdString(120, "251,238,0,0,0$247,238,0,0,0$248,238,0,0,0$249,238,0,0,0$250,238,0,0,0$252,238,0,0,0$253,238,0,0,0$254,238,0,0,0$255,238,0,0,0$256,238,0,0,0$257,238,0,0,0$258,238,0,0,0$259,238,0,0,0$260,238,0,0,0$261,238,0,0,0$262,238,0,0,0$263,238,0,0,0$264,238,0,0,0$265,238,0,0,0$266,238,0,0,0$247,239,0,0,0$248,239,0,0,0$249,239,0,0,0$250,239,0,0,0$251,239,0,0,0$252,239,0,0,0$253,239,0,0,0$254,239,0,0,0$255,239,0,0,0$256,239,0,0,0$257,239,0,0,0$258,239,0,0,0$259,239,0,0,0$260,239,0,0,0$261,239,0,0,0$262,239,0,0,0$263,239,0,0,0$264,239,0,0,0$265,239,0,0,0$266,239,0,0,0$247,240,0,0,0$248,240,0,0,0$249,240,0,0,0$250,240,0,0,0$252,240,255,255,255$254,240,0,0,0$255,240,0,0,0$256,240,0,0,0$257,240,0,0,0$258,240,0,0,0$259,240,0,0,0$260,240,0,0,0$261,240,0,0,0$262,240,0,0,0$263,240,0,0,0$264,240,0,0,0$265,240,0,0,0$266,240,0,0,0$247,241,0,0,0$248,241,0,0,0$249,241,0,0,0$251,241,255,255,255$254,241,0,0,0$255,241,0,0,0$256,241,0,0,0$257,241,0,0,0$258,241,0,0,0$259,241,0,0,0$260,241,0,0,0$261,241,0,0,0$262,241,0,0,0$263,241,0,0,0$264,241,0,0,0$265,241,0,0,0$266,241,0,0,0$247,242,0,0,0$248,242,0,0,0$249,242,0,0,0$251,242,255,255,255$253,242,0,0,0$254,242,0,0,0$255,242,0,0,0$256,242,0,0,0$258,242,255,255,255$260,242,0,0,0$262,242,255,255,255$265,242,0,0,0$266,242,0,0,0$247,243,0,0,0$248,243,0,0,0$250,243,255,255,255$251,243,255,255,255$253,243,0,0,0$254,243,0,0,0$255,243,0,0,0$256,243,0,0,0$258,243,255,255,255$264,243,0,0,0$265,243,0,0,0$266,243,0,0,0$247,244,0,0,0$248,244,0,0,0$250,244,255,255,255$252,244,0,0,0$253,244,0,0,0$254,244,0,0,0$255,244,0,0,0$256,244,0,0,0$258,244,255,255,255$261,244,255,255,255$263,244,0,0,0$264,244,0,0,0$265,244,0,0,0$266,244,0,0,0$247,245,0,0,0$248,245,0,0,0$250,245,255,255,255$252,245,0,0,0$253,245,0,0,0$254,245,0,0,0$255,245,0,0,0$256,245,0,0,0$258,245,255,255,255$260,245,255,255,255$262,245,0,0,0$263,245,0,0,0$264,245,0,0,0$265,245,0,0,0$266,245,0,0,0$247,246,0,0,0$249,246,255,255,255$250,246,255,255,255$251,246,255,255,255$252,246,255,255,255$253,246,255,255,255$255,246,0,0,0$256,246,0,0,0$258,246,255,255,255$259,246,255,255,255$261,246,0,0,0$262,246,0,0,0$263,246,0,0,0$265,246,255,255,255$247,247,0,0,0$248,247,0,0,0$250,247,255,255,255$251,247,255,255,255$252,247,255,255,255$254,247,0,0,0$255,247,0,0,0$256,247,0,0,0$258,247,255,255,255$260,247,0,0,0$261,247,0,0,0$262,247,0,0,0$266,247,0,0,0$247,248,0,0,0$248,248,0,0,0$249,248,0,0,0$250,248,0,0,0$251,248,0,0,0$252,248,0,0,0$253,248,0,0,0$254,248,0,0,0$255,248,0,0,0$256,248,0,0,0$257,248,0,0,0$258,248,0,0,0$259,248,0,0,0$260,248,0,0,0$261,248,0,0,0$262,248,0,0,0$263,248,0,0,0$264,248,0,0,0$265,248,0,0,0$266,248,0,0,0$247,249,0,0,0$248,249,0,0,0$249,249,0,0,0$250,249,0,0,0$251,249,0,0,0$252,249,0,0,0$253,249,0,0,0$254,249,0,0,0$255,249,0,0,0$256,249,0,0,0$257,249,0,0,0$258,249,0,0,0$259,249,0,0,0$260,249,0,0,0$261,249,0,0,0$262,249,0,0,0$263,249,0,0,0$264,249,0,0,0$265,249,0,0,0$266,249,0,0,0$247,250,0,0,0$248,250,0,0,0$249,250,0,0,0$250,250,0,0,0$251,250,0,0,0$252,250,0,0,0$253,250,0,0,0$254,250,0,0,0$255,250,0,0,0$256,250,0,0,0$257,250,0,0,0$258,250,0,0,0$259,250,0,0,0$260,250,0,0,0$261,250,0,0,0$262,250,0,0,0$263,250,0,0,0$264,250,0,0,0$265,250,0,0,0$266,250,0,0,0"); |
| | | |
| | | /// <summary> |
| | | /// 向上滚动键 |
| | |
| | | titleRect = lvRect = upKeyRect = downKeyRect = ZTRectangle.Empty; |
| | | Image<Rgb, byte> image = ScreenCapture.Instance.CaptureScreenReturnImage(); |
| | | |
| | | if (!CVHelper.FindColorArray(out titleRect, image, skillTitleText, gameRect)) |
| | | if (!CVHelper.FindColorArray(out titleRect, image, skillTitleTextWhite, gameRect)) |
| | | { |
| | | return false; |
| | | if (!CVHelper.FindColorArray(out titleRect, image, skillTitleTextGray, gameRect)) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | if (!CVHelper.FindColorArray(out lvRect, image, lvText, gameRect)) |
| | | if (!CVHelper.FindColorArrayForThreshold(out lvRect, image, lvText, gameRect)) |
| | | { |
| | | return false; |
| | | } |
| | |
| | | /// <summary> |
| | | /// 加技能时向右的红色按钮 |
| | | /// </summary> |
| | | private static ColorArray rightRedButton = ColorArray.FromHsvFloatString(0.002f, 0.02f, 0.02f, "515,264,255,34,34$515,259,255,51,51$515,260,255,34,34$515,261,255,34,34$515,262,255,34,34$515,263,255,34,34$515,265,255,34,34$516,265,255,34,34$516,261,255,34,34$516,260,255,34,34$517,261,255,34,34$517,262,255,34,34$517,264,255,34,34$518,262,255,34,34$518,263,255,34,34$521,259,255,51,51$521,260,255,34,34$521,266,255,51,51$521,265,255,34,34$521,264,255,34,34$521,263,255,34,34$522,264,255,34,34$522,265,255,34,34$522,260,255,34,34$522,261,255,34,34$523,262,255,34,34$523,261,255,34,34$523,264,255,34,34$523,263,255,34,34$524,263,255,34,34$524,262,255,34,34"); |
| | | private static ColorArray rightRedButton = ColorArray.FromHsvFloatString(0.002f, 0.02f, 0.02f, "573,247,255,42,42$570,244,255,50,50$570,245,255,41,41$571,245,255,42,42$570,246,255,41,41$571,246,255,33,33$572,246,255,42,42$570,247,255,41,41$571,247,255,33,33$572,247,255,33,33$573,248,255,41,41$572,248,255,33,33$571,248,255,33,33$570,248,255,41,41$570,249,255,41,41$571,249,255,33,33$572,249,255,42,42$571,250,255,42,42$570,250,255,41,41$570,251,255,50,50$576,251,255,50,50$576,250,255,41,41$577,250,255,42,42$576,249,255,41,41$577,249,255,33,33$578,249,255,42,42$577,248,255,33,33$578,248,255,33,33$579,248,255,41,41$579,247,255,42,42$578,247,255,33,33$577,247,255,33,33$576,247,255,41,41$576,246,255,41,41$577,246,255,33,33$578,246,255,42,42$577,245,255,42,42$576,245,255,41,41$576,244,255,50,50"); |
| | | |
| | | /// <summary> |
| | | /// 加技能时向右的灰色按钮 |
| | | /// </summary> |
| | | private static ColorArray grayRedButton = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "516,261,153,153,153$515,259,153,153,153$515,260,153,153,153$515,262,153,153,153$515,263,153,153,153$515,265,153,153,153$515,266,153,153,153$516,265,153,153,153$516,264,153,153,153$516,262,153,153,153$516,260,153,153,153$517,261,153,153,153$517,262,153,153,153$517,263,153,153,153$517,264,153,153,153$518,263,153,153,153$518,262,153,153,153$521,259,153,153,153$521,260,153,153,153$521,261,153,153,153$521,262,153,153,153$521,263,153,153,153$521,264,153,153,153$521,265,153,153,153$521,266,153,153,153$522,265,153,153,153$522,264,153,153,153$522,261,153,153,153$522,260,153,153,153$523,261,153,153,153$523,262,153,153,153$523,263,153,153,153$523,264,153,153,153$524,263,153,153,153$524,262,153,153,153"); |
| | | private static ColorArray grayRedButton = ColorArray.FromHsvFloatString(0.002f, 0.002f, 0.002f, "571,250,148,148,148$570,244,152,152,152$570,245,148,148,148$570,246,148,148,148$570,247,148,148,148$570,248,148,148,148$570,249,148,148,148$570,250,148,148,148$570,251,152,152,152$572,249,148,148,148$573,248,148,148,148$573,247,148,148,148$572,246,148,148,148$571,245,148,148,148$576,244,152,152,152$576,245,148,148,148$576,246,148,148,148$576,247,148,148,148$576,248,148,148,148$576,249,148,148,148$576,250,148,148,148$576,251,152,152,152$577,250,148,148,148$578,249,148,148,148$579,248,148,148,148$579,247,148,148,148$578,246,148,148,148$577,245,148,148,148"); |
| | | |
| | | /// <summary> |
| | | /// 是否已经选中技能 |
| | |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | using ZTImage.Configuration; |
| | | using RichCreator.StateMachines; |
| | | |
| | | namespace RichCreator.Jobs |
| | | { |
| | |
| | | |
| | | private Int32 runningStep = 0; |
| | | |
| | | public override bool DoWork(out bool tryAgain,CancellationToken cancellationToken, Int32 runningStep) |
| | | public override ZTResult Do(CancellationToken cancellationToken, Int32 runningStep) |
| | | { |
| | | this.runningStep = runningStep; |
| | | tryAgain = true; |
| | | RunningModel runningModel = ConfigHelper.GetInstance<RunningModel>(); |
| | | RichCreatorConfig config = ConfigHelper.GetInstance<RichCreatorConfig>(); |
| | | |
| | | bool result = false; |
| | | |
| | | ZTRectangle startGameButtonRect = ZTRectangle.Empty; |
| | | if (runningStep <= RunningStep.SelectRole) |
| | | { |
| | | //查找游戏窗口 |
| | | result = FuncUtils.TimeoutCancelableWrap(config.StartWaitSecond * 1000, cancellationToken, () => |
| | | bool result = FuncUtils.TimeoutCancelableWrap(config.StartWaitSecond * 1000, cancellationToken, () => |
| | | { |
| | | return DnfCVHelper.IsSelectRoleWindow( out startGameButtonRect); |
| | | }); |
| | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("启动DNF游戏失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter($"已进入DNF角色界面,{startGameButtonRect.ToString()}"); |
| | | } |
| | |
| | | WindowUtils.GetDnfRect(out this.GameRect); |
| | | |
| | | //循环刷所有角色 |
| | | ZTResult playResult = ZTResult.Success; |
| | | Int32 roleIndex = runningModel.RoleIndex>0? runningModel.RoleIndex - 1:0; |
| | | for (; roleIndex < config.RoleCount; roleIndex++) |
| | | { |
| | |
| | | |
| | | if (cancellationToken.IsCancellationRequested) |
| | | { |
| | | return false; |
| | | return ZTResult.Cancel; |
| | | } |
| | | DateTime playOneRoleStartTime = DateTime.Now; |
| | | G.Instance.InfoWriter($"Play Role:{roleIndex+1}"); |
| | | if (!PlayRole(cancellationToken, roleIndex, startGameButtonRect)) |
| | | playResult = PlayRole(cancellationToken, roleIndex, startGameButtonRect); |
| | | if (playResult != ZTResult.Success) |
| | | { |
| | | G.Instance.InfoWriter("角色刷图失败"); |
| | | break; |
| | | G.Instance.InfoWriter($"角色刷图失败,第{roleIndex+1}个角色"); |
| | | return playResult; |
| | | } |
| | | |
| | | Int32 playOneRoleTotalSecond = (Int32)(DateTime.Now - playOneRoleStartTime).TotalSeconds; |
| | | G.Instance.InfoWriter($"角色刷图完成,用时:{(playOneRoleTotalSecond / 60)}分{(playOneRoleTotalSecond % 60)}秒"); |
| | | } |
| | | |
| | | if (roleIndex < config.RoleCount) |
| | | { |
| | | string message = $"刷图失败,第{roleIndex+1}个角色"; |
| | | G.Instance.InfoWriter(message); |
| | | return false; |
| | | } |
| | | //按ESC,点退出程序 |
| | | if (ExitGame(cancellationToken)) |
| | | { |
| | | G.Instance.InfoWriter("退出游戏失败"); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | RunningModel.UpdateRoleIndex(1); |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="cancellationToken"></param> |
| | | /// <param name="roleIndex"></param> |
| | | /// <returns></returns> |
| | | private bool PlayRole(CancellationToken cancellationToken, Int32 roleIndex, ZTRectangle startGameButtonRect) |
| | | private ZTResult PlayRole(CancellationToken cancellationToken, Int32 roleIndex, ZTRectangle startGameButtonRect) |
| | | { |
| | | bool result = true; |
| | | Int32 pilaozhi = 1; |
| | | RichCreatorConfig config = ConfigHelper.GetInstance<RichCreatorConfig>(); |
| | | if (this.runningStep < RunningStep.War) |
| | | { |
| | | //查找游戏窗口 |
| | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("非角色选择界面"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | //进入赛丽亚的房间 |
| | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("未进入赛丽亚的房间"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("进入赛丽亚的房间"); |
| | | |
| | | |
| | | //关闭所有弹出窗 |
| | | result = CloseAllAlertWindow(cancellationToken, this.GameRect); |
| | | if (!result) |
| | | //频道选择和网络断开重试 |
| | | ChannelStateMachine csm = new ChannelStateMachine(); |
| | | ZTResult workResult = csm.Work(this.GameRect, config.IsGroup, cancellationToken, 5 * 60 * 1000); |
| | | if (workResult != ZTResult.Success) |
| | | { |
| | | G.Instance.InfoWriter("关闭所有窗口出现问题"); |
| | | return false; |
| | | G.Instance.InfoWriter("切换频道没有成功," + workResult); |
| | | Thread.Sleep(5 * 60 * 1000); |
| | | return workResult; |
| | | } |
| | | G.Instance.InfoWriter("已关闭所有弹出窗"); |
| | | |
| | | G.Instance.InfoWriter("切换频道成功"); |
| | | |
| | | //查询疲劳值 |
| | | pilaozhi = DnfCVHelper.GetPiLaoZhi(this.GameRect); |
| | | G.Instance.InfoWriter("疲劳值:" + pilaozhi); |
| | | } |
| | | |
| | | |
| | | result = true; |
| | | ZTResult mapResult = ZTResult.Success; |
| | | if (pilaozhi > 0) |
| | | { |
| | | //刷图,并保持在可按esc退出的状态 |
| | | MapInfo map = new T(); |
| | | result = map.Start(this.GameRect, cancellationToken,this.runningStep); |
| | | mapResult = map.Start(this.GameRect, cancellationToken,this.runningStep); |
| | | } |
| | | runningStep = RunningStep.None; |
| | | |
| | | |
| | | if (result) |
| | | if (mapResult==ZTResult.Success) |
| | | { |
| | | //按ESC,退到选角色界面 |
| | | if (ReturnToSelectRole(cancellationToken)) |
| | | { |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | return mapResult; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | G.Instance.InfoWriter("退回选择角色界面失败"); |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 退出游戏 |
| | | /// </summary> |
| | | /// <param name="cancelToken"></param> |
| | | /// <param name="gameRect"></param> |
| | | /// <returns></returns> |
| | | private bool ExitGame(CancellationToken cancelToken) |
| | | { |
| | | //打开系统菜单 |
| | | int counter = 10; |
| | | bool result = false; |
| | | |
| | | WindowUtils.SetDnfToTop(); |
| | | while (counter > 0) |
| | | { |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.Escape); |
| | | bool findPanelResult = FuncUtils.TimeoutCancelableWrap(3000, cancelToken, () => |
| | | { |
| | | return DnfCVHelper.IsOpenSystemPanel(this.GameRect); |
| | | }); |
| | | |
| | | if (findPanelResult) |
| | | { |
| | | result = true; |
| | | break; |
| | | } |
| | | counter--; |
| | | } |
| | | |
| | | if (result) |
| | | { |
| | | //点击退出游戏783,505 |
| | | G.Instance.InputControl.MoveToAndClick(new ZTPoint(this.GameRect.Start.X + 783, this.GameRect.Start.Y + 505)); |
| | | Thread.Sleep(1000); |
| | | |
| | | ZTRectangle exitOkButtonRect = ZTRectangle.Empty; |
| | | bool findExitPanelResult = FuncUtils.TimeoutCancelableWrap(3000, cancelToken, () => |
| | | { |
| | | return DnfCVHelper.FindExitPanelOkButton(out exitOkButtonRect, this.GameRect); |
| | | }); |
| | | |
| | | if (findExitPanelResult) |
| | | { |
| | | //remove,现在是按查找到的按钮位置来判断的,点击确定按钮 612 379 |
| | | //G.Instance.InputControl.MoveToAndClick(new ZTPoint(this.GameRect.Start.X + 612, this.GameRect.Start.Y + 379)); |
| | | G.Instance.InputControl.MoveToAndClick(exitOkButtonRect.GetCenterPoint()); |
| | | Thread.Sleep(6000); |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | /// 任务开始执行 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public abstract bool DoWork(out bool tryAgain,CancellationToken cancellationToken,Int32 isRunning); |
| | | public abstract ZTResult Do(CancellationToken cancellationToken,Int32 isRunning); |
| | | } |
| | | } |
| | |
| | | |
| | | private Int32 taskIndex; |
| | | |
| | | Int32 runningStep = RunningStep.None; |
| | | |
| | | public JobMonitor(Int32 taskIndex) |
| | | { |
| | | this.config = ConfigHelper.GetInstance<RichCreatorConfig>(); |
| | |
| | | this.cancelTokenSource = new CancellationTokenSource(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 业务逻辑线程 |
| | | /// </summary> |
| | | /// <param name="obj"></param> |
| | | private void MonitorBusinessThread(object obj) |
| | | { |
| | | Int32 accountCount = GetAccountCount(); |
| | | Int32 runningStep = RunningStep.GetStep(); |
| | | Int32 accountCount = this.config.GetAccountCount(); |
| | | runningStep = RunningStep.GetStep(); |
| | | G.Instance.InfoWriter("当前步骤:" + runningStep.ToString()); |
| | | RunningModel runModel = ConfigHelper.GetInstance<RunningModel>(); |
| | | if (runModel.AccountIndex > accountCount) |
| | |
| | | return; |
| | | } |
| | | |
| | | bool tryAgain = false; |
| | | |
| | | int accountIndex = runModel.AccountIndex > 0 ? runModel.AccountIndex - 1 : 0; |
| | | ZTResult jobResult = ZTResult.Success; |
| | | for (; accountIndex < accountCount; accountIndex++) |
| | | { |
| | | RunningModel.UpdateAccountIndex(accountIndex+1); |
| | | if (runningStep < RunningStep.SelectRole) |
| | | { |
| | | string username, password; |
| | | GetAccount(accountIndex, out username, out password); |
| | | this.config.GetAccount(accountIndex, out username, out password); |
| | | |
| | | this.wegameJob = new WeGameJob(this.config, username, password); |
| | | if (!this.wegameJob.DoWork(out tryAgain,this.cancelTokenSource.Token, runningStep)) |
| | | jobResult = this.wegameJob.Do(this.cancelTokenSource.Token, runningStep); |
| | | if (jobResult != ZTResult.Success) |
| | | { |
| | | if (G.Instance.CancelConfirm("需要重试吗?", 8000)) |
| | | if (jobResult != ZTResult.Cancel) |
| | | { |
| | | if (config.NotificationWechat) |
| | | if (G.Instance.CancelConfirm("需要重试吗?", 8000)) |
| | | { |
| | | if (!ServiceMonitor.Instance.NotificationWechat("失败,正在重新尝试")) |
| | | { |
| | | ZTImage.Log.Trace.Error("发送消息失败"); |
| | | } |
| | | ServiceProvider.Instance.NotificationWechat("失败,正在重新尝试"); |
| | | accountIndex--; |
| | | ShutdownGameProgram(); |
| | | continue; |
| | | } |
| | | accountIndex--; |
| | | runningStep = RunningStep.None; |
| | | ProcessUtils.CloseDnf(); |
| | | ProcessUtils.CloseWeGame(); |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | |
| | | //设为顶层 |
| | | WindowUtils.SetDnfToTop(); |
| | | this.dnfJob = GetDNFJob(); |
| | | if (this.dnfJob == null) |
| | | jobResult = this.dnfJob.Do(this.cancelTokenSource.Token, runningStep); |
| | | if (jobResult != ZTResult.Success) |
| | | { |
| | | if (jobResult != ZTResult.Cancel) |
| | | { |
| | | if (G.Instance.CancelConfirm("需要重试吗?", 8000)) |
| | | { |
| | | ServiceProvider.Instance.NotificationWechat("失败,正在重新尝试"); |
| | | accountIndex--; |
| | | ShutdownGameProgram(); |
| | | continue; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | if (!this.dnfJob.DoWork(out tryAgain,this.cancelTokenSource.Token, runningStep)) |
| | | { |
| | | if (G.Instance.CancelConfirm("需要重试吗?", 8000)) |
| | | { |
| | | if (config.NotificationWechat) |
| | | { |
| | | if (!ServiceMonitor.Instance.NotificationWechat("失败,正在重新尝试")) |
| | | { |
| | | ZTImage.Log.Trace.Error("发送消息失败"); |
| | | } |
| | | } |
| | | accountIndex--; |
| | | runningStep = RunningStep.None; |
| | | ProcessUtils.CloseDnf(); |
| | | ProcessUtils.CloseWeGame(); |
| | | continue; |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | runningStep = RunningStep.None; |
| | | ProcessUtils.CloseDnf(); |
| | | ProcessUtils.CloseWeGame(); |
| | | |
| | | ShutdownGameProgram(); |
| | | Thread.Sleep(5000); |
| | | } |
| | | |
| | | if (config.NotificationWechat) |
| | | if (jobResult == ZTResult.Success) |
| | | { |
| | | if (!ServiceMonitor.Instance.NotificationWechat("任务完成")) |
| | | { |
| | | ZTImage.Log.Trace.Error("发送消息失败"); |
| | | } |
| | | G.Instance.InfoWriter("任务完成"); |
| | | ServiceProvider.Instance.NotificationWechat("任务完成"); |
| | | runModel.RoleIndex = 1; |
| | | runModel.AccountIndex = 1; |
| | | ConfigHelper.SetInstance<RunningModel>(runModel); |
| | | } |
| | | |
| | | runModel.RoleIndex = 1; |
| | | runModel.AccountIndex = 1; |
| | | ConfigHelper.SetInstance<RunningModel>(runModel); |
| | | else |
| | | { |
| | | G.Instance.InfoWriter("任务中止"); |
| | | } |
| | | |
| | | this.Stop(); |
| | | G.Instance.StopTaskUI(); |
| | | G.Instance.InfoWriter("任务成功完成"); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取配置文件中账号的数量 |
| | | /// 关闭游戏程序 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private Int32 GetAccountCount() |
| | | private void ShutdownGameProgram() |
| | | { |
| | | Int32 accountCount = 0; |
| | | if (!string.IsNullOrEmpty(this.config.UserName1)) |
| | | { |
| | | accountCount = 1; |
| | | if (!string.IsNullOrEmpty(this.config.UserName2)) |
| | | { |
| | | accountCount = 2; |
| | | if (!string.IsNullOrEmpty(this.config.UserName3)) |
| | | { |
| | | accountCount = 3; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return accountCount; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取指定编号 |
| | | /// </summary> |
| | | /// <param name="accountIndex">从0开始</param> |
| | | /// <param name="username"></param> |
| | | /// <param name="password"></param> |
| | | private void GetAccount(Int32 accountIndex, out string username, out string password) |
| | | { |
| | | username = this.config.UserName1; |
| | | password = this.config.Password1; |
| | | if (accountIndex == 1) |
| | | { |
| | | username = this.config.UserName2; |
| | | password = this.config.Password2; |
| | | } |
| | | |
| | | if (accountIndex == 2) |
| | | { |
| | | username = this.config.UserName3; |
| | | password = this.config.Password3; |
| | | } |
| | | runningStep = RunningStep.None; |
| | | ProcessUtils.CloseDnf(); |
| | | ProcessUtils.CloseWeGame(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | case 1: |
| | | return new DNFJob<SkillMap>(this.config); |
| | | case 2: |
| | | return new DNFJob<GroupMap>(this.config); |
| | | default: |
| | | return null; |
| | | return new DNFJob<TestMap>(this.config); |
| | | } |
| | | throw new Exception("this task index is error"); |
| | | } |
| | | } |
| | | } |
| | |
| | | private string UserName; |
| | | private string Password; |
| | | |
| | | public override bool DoWork(out bool tryAgain, CancellationToken cancellationToken,Int32 runningStep) |
| | | public override ZTResult Do(CancellationToken cancellationToken,Int32 runningStep) |
| | | { |
| | | tryAgain = true; |
| | | |
| | | Process.Start(this.Config.TGPDaemonPath); |
| | | G.Instance.InfoWriter("等待We Game运行"); |
| | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("查找游戏失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("WeGame于:" + weGameRect.ToString() + ",切换按钮于:" + changeLoginMethodButtonRect.ToString()); |
| | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("登陆失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("WeGame登陆成功"); |
| | | |
| | |
| | | if (!result) |
| | | { |
| | | G.Instance.InfoWriter("DNF未成功打开"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("开始启动DNF游戏"); |
| | | |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | |
| | |
| | | <ComboBox SelectedIndex="0" x:Name="taskName" VerticalAlignment="Center"> |
| | | <ComboBoxItem >凛冬</ComboBoxItem> |
| | | <ComboBoxItem >技能</ComboBoxItem> |
| | | <ComboBoxItem >组队测试</ComboBoxItem> |
| | | <ComboBoxItem >测试</ComboBoxItem> |
| | | </ComboBox> |
| | | <Button Content="清空" Padding="15 0 15 0" Margin="5" Click="ClearLog_Click" /> |
| | | <Button Content="运行" Padding="15 0 15 0" Margin="5" Click="Run_Click" x:Name="RunningButton" /> |
| | |
| | | |
| | | private Int32 runningStep = RunningStep.None; |
| | | |
| | | public override bool Start(ZTRectangle gameRect, CancellationToken cancelToken,Int32 runningStep) |
| | | public override ZTResult Start(ZTRectangle gameRect, CancellationToken cancelToken,Int32 runningStep) |
| | | { |
| | | this.runningStep = runningStep; |
| | | this.GameRect = gameRect; |
| | |
| | | { |
| | | if (!MoveToSunan()) |
| | | { |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | if (!MoveToShikongzhimen()) |
| | | { |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | if (!MoveToChoiceTaskPage()) |
| | | { |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | if (!IntoTaskRoom()) |
| | | { |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("成功进入副本"); |
| | |
| | | //重复刷,直到疲劳值不够了 |
| | | if (this.cancellationToken.IsCancellationRequested) |
| | | { |
| | | return false; |
| | | return ZTResult.Cancel; |
| | | } |
| | | |
| | | bool killResult = true; |
| | | |
| | | DateTime startHouse = DateTime.Now; |
| | | killResult = KillMonster(); |
| | | if (killResult) |
| | | ZTResult killResult = KillMonster(); |
| | | if (killResult==ZTResult.Success) |
| | | { |
| | | //捡东西 |
| | | G.Instance.InputControl.PressKey(RandomUtils.KeyPressDuration, HIDCode.V); |
| | |
| | | if (pilaozhi <= 0) |
| | | { |
| | | ExitToTown(); |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | ReplayGame(); |
| | |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | return killResult; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// 刷房间 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool KillMonster() |
| | | private ZTResult KillMonster() |
| | | { |
| | | Int32 result = 0; |
| | | bool ret = false; |
| | | |
| | | |
| | |
| | | if (!findResult) |
| | | { |
| | | G.Instance.InfoWriter("未找到进入凛冬的文字"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("进入凛冬"); |
| | | |
| | |
| | | if (!ret) |
| | | { |
| | | G.Instance.InfoWriter("未找到人物所在房间"); |
| | | break; |
| | | return ZTResult.Failed; |
| | | } |
| | | |
| | | G.Instance.InfoWriter("进入房间->" + houseIndex.ToString()); |
| | |
| | | |
| | | DateTime roomStartTime = DateTime.Now; |
| | | KillMonsterStateMachine kmsm = new KillMonsterStateMachine(Houses[houseIndex], this.MinimapPoint, this.GameRect, preHouseIndex,this.runningStep); |
| | | result = kmsm.Start(cancellationToken, 5 * 60 * 1000); |
| | | ZTResult smresult = kmsm.Work(cancellationToken, 5 * 60 * 1000); |
| | | Int32 roomTotalSecond = (Int32)(DateTime.Now - roomStartTime).TotalSeconds; |
| | | G.Instance.InfoWriter("房间刷完,用时:" + (roomTotalSecond / 60) + "分" + (roomTotalSecond % 60) + "秒"); |
| | | runningStep = RunningStep.None; |
| | | if (result == JobResult.Success) |
| | | if (smresult == ZTResult.Success) |
| | | { |
| | | if (houseIndex == 15) |
| | | { |
| | | //所有房间刷完 |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | //刷其它房间 |
| | |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | return smresult; |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | return DnfCVHelper.IsInSaiLiYaHouse(this.GameRect); |
| | | }); |
| | | return result; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// 开始刷图 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public abstract bool Start(ZTRectangle gameRect, CancellationToken cancellationToken, Int32 runningStep); |
| | | public abstract ZTResult Start(ZTRectangle gameRect, CancellationToken cancellationToken, Int32 runningStep); |
| | | |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | public override bool Start(ZTRectangle gameRect, CancellationToken cancelToken, Int32 runningStep) |
| | | public override ZTResult Start(ZTRectangle gameRect, CancellationToken cancelToken, Int32 runningStep) |
| | | { |
| | | this.GameRect = gameRect; |
| | | this.cancellationToken = cancelToken; |
| | |
| | | if (!OpenSkillWindow()) |
| | | { |
| | | G.Instance.InfoWriter("打开技能窗口失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("技能窗口已打开"); |
| | | |
| | |
| | | if (!InitSkills()) |
| | | { |
| | | G.Instance.InfoWriter("初始化技能失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("技能已初始化"); |
| | | |
| | |
| | | if (!SettingTopSkills()) |
| | | { |
| | | G.Instance.InfoWriter("通用技能设置失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("通用技能已设置"); |
| | | |
| | |
| | | if (!SettingSPSkills()) |
| | | { |
| | | G.Instance.InfoWriter("SP技能设置失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("SP技能已设置"); |
| | | |
| | |
| | | if (!SettingTPSkills()) |
| | | { |
| | | G.Instance.InfoWriter("TP技能设置失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("TP技能已设置"); |
| | | |
| | |
| | | if (!Studay()) |
| | | { |
| | | G.Instance.InfoWriter("技能学习失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("技能已学习"); |
| | | |
| | |
| | | if (!FormatSkillColumn()) |
| | | { |
| | | G.Instance.InfoWriter("技能摆放失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | G.Instance.InfoWriter("技能摆放成功"); |
| | | |
| | | |
| | | CloseAllAlertWindow(this.cancellationToken, this.GameRect); |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | //识别技能窗 |
| | | return SkillCVHelper.FindSkillWindow(out innertitleRect, out innerlvRect, out innerupKeyRect, out innerdownKeyRect,out isGray, this.GameRect); |
| | | }); |
| | | |
| | | if (result) |
| | | { |
| | | titleRect = innertitleRect; |
| File was renamed from src/RichCreator/Maps/Group/GroupMap.cs |
| | |
| | | namespace RichCreator.Maps |
| | | { |
| | | /// <summary> |
| | | /// 组队 |
| | | /// 测试地图 |
| | | /// </summary> |
| | | public class GroupMap : MapInfo |
| | | public class TestMap : MapInfo |
| | | { |
| | | /// <summary> |
| | | /// 游戏区域 |
| | | /// </summary> |
| | | public ZTRectangle GameRect { get; set; } |
| | | |
| | | |
| | | public ZTRectangle GameRect { get; set; } |
| | | |
| | | public CancellationToken cancellationToken { get; set; } |
| | | |
| | | private const bool isCreateGroup = true; |
| | | |
| | | public override bool Start(ZTRectangle gameRect, CancellationToken cancelToken, Int32 runningStep) |
| | | public override ZTResult Start(ZTRectangle gameRect, CancellationToken cancelToken, Int32 runningStep) |
| | | { |
| | | this.GameRect = gameRect; |
| | | this.cancellationToken = cancelToken; |
| | | |
| | | WindowUtils.SetDnfToTop(); |
| | | |
| | | |
| | | ChannelStateMachine csm = new ChannelStateMachine(); |
| | | ZTResult workResult = csm.Work(this.GameRect, true, cancelToken, 5 * 60 * 1000); |
| | | if (workResult != ZTResult.Success) |
| | | { |
| | | G.Instance.InfoWriter("切换频道没有成功,"+workResult); |
| | | Thread.Sleep(5 * 60 * 1000); |
| | | return false; |
| | | } |
| | | G.Instance.InfoWriter("切换频道成功,开始组队逻辑"); |
| | | |
| | | |
| | | |
| | | string groupName = "aabbccddee"; |
| | | if (isCreateGroup) |
| | |
| | | if (!CreateGroup(groupName)) |
| | | { |
| | | G.Instance.InfoWriter("创建队伍失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | } |
| | | else |
| | |
| | | if (!JoinGroup(groupName)) |
| | | { |
| | | G.Instance.InfoWriter("加入队伍失败"); |
| | | return false; |
| | | return ZTResult.Failed; |
| | | } |
| | | } |
| | | //沉默一段时间 |
| | | Thread.Sleep(50000000); |
| | | CloseAllAlertWindow(this.cancellationToken, this.GameRect); |
| | | return true; |
| | | return ZTResult.Success; |
| | | } |
| | | |
| | | |
| | |
| | | /// </summary> |
| | | public string Password3 { get; set; } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取配置文件中账号的数量 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Int32 GetAccountCount() |
| | | { |
| | | Int32 accountCount = 0; |
| | | if (!string.IsNullOrEmpty(this.UserName1)) |
| | | { |
| | | accountCount = 1; |
| | | if (!string.IsNullOrEmpty(this.UserName2)) |
| | | { |
| | | accountCount = 2; |
| | | if (!string.IsNullOrEmpty(this.UserName3)) |
| | | { |
| | | accountCount = 3; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return accountCount; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取指定编号 |
| | | /// </summary> |
| | | /// <param name="accountIndex">从0开始</param> |
| | | /// <param name="username"></param> |
| | | /// <param name="password"></param> |
| | | public void GetAccount(Int32 accountIndex, out string username, out string password) |
| | | { |
| | | username = this.UserName1; |
| | | password = this.Password1; |
| | | if (accountIndex == 1) |
| | | { |
| | | username = this.UserName2; |
| | | password = this.Password2; |
| | | } |
| | | |
| | | if (accountIndex == 2) |
| | | { |
| | | username = this.UserName3; |
| | | password = this.Password3; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | <Compile Include="..\Protocols\Richcreator.cs"> |
| | | <Link>Services\Richcreator.cs</Link> |
| | | </Compile> |
| | | <Compile Include="Maps\Group\GroupMap.cs" /> |
| | | <Compile Include="Maps\Test\TestMap.cs" /> |
| | | <Compile Include="Maps\Skills\SkillMap.cs" /> |
| | | <Compile Include="PathFinding\Dijkstra.cs" /> |
| | | <Compile Include="PathFinding\Edge.cs" /> |
| | | <Compile Include="PathFinding\Node.cs" /> |
| | | <Compile Include="Services\ServiceMonitor.cs" /> |
| | | <Compile Include="Services\ServiceProvider.cs" /> |
| | | <Compile Include="StateMachines\ChannelStateMachine.cs" /> |
| | | <Compile Include="StateMachines\StateMachineBase.cs" /> |
| | | <Compile Include="Utilitys\FuncUtils.cs" /> |
| | | <Compile Include="G.cs" /> |
| | | <Compile Include="Jobs\DNFJob.cs" /> |
| | | <Compile Include="Jobs\JobBase.cs" /> |
| | | <Compile Include="Jobs\JobMonitor.cs" /> |
| | | <Compile Include="Jobs\JobResult.cs" /> |
| | | <Compile Include="Maps\Lindong\OutOfBounds.cs" /> |
| | | <Compile Include="Maps\Lindong\SingleEntryHouseSkill.cs" /> |
| | | <Compile Include="Models\RunningModel.cs" /> |
| File was renamed from src/RichCreator/Services/ServiceMonitor.cs |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using ZTImage.Configuration; |
| | | |
| | | namespace RichCreator.Utilitys |
| | | { |
| | | public class ServiceMonitor |
| | | /// <summary> |
| | | /// 外部服务提供器 |
| | | /// </summary> |
| | | public class ServiceProvider |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 微信通知 |
| | | /// </summary> |
| | |
| | | /// <returns></returns> |
| | | public bool NotificationWechat(string message) |
| | | { |
| | | var config=ConfigHelper.GetInstance<RichCreatorConfig>(); |
| | | if (config.NotificationWechat) |
| | | { |
| | | //发信息 |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | #region singleton |
| | | private static ServiceMonitor instance = null; |
| | | private static ServiceProvider instance = null; |
| | | private static object lockHelper = new object(); |
| | | public static ServiceMonitor Instance |
| | | public static ServiceProvider Instance |
| | | { |
| | | get |
| | | { |
| | |
| | | { |
| | | if (instance == null) |
| | | { |
| | | instance = new ServiceMonitor(); |
| | | instance = new ServiceProvider(); |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// 频道状态机 |
| | | /// </summary> |
| | | public class ChannelStateMachine |
| | | public class ChannelStateMachine:StateMachineBase |
| | | { |
| | | //默认状态 |
| | | private ChannelStates currentState = ChannelStates.Start; |
| | |
| | | new ZTPoint(-279,246), |
| | | new ZTPoint(-279,291) |
| | | }; |
| | | |
| | | //首次进入标记 |
| | | private bool FirstEntryHouse = true; |
| | | |
| | | /// <summary> |
| | | /// 开始工作 |
| | |
| | | if (DnfCVHelper.IsInSaiLiYaHouse(gameRect)) |
| | | { |
| | | //检测是否组队模式 |
| | | currentState = ChannelStates.CheckGroupMode; |
| | | currentState = ChannelStates.IsFirstEntry; |
| | | } |
| | | else |
| | | { |
| | | currentState = ChannelStates.IsChoiceRolePage; |
| | | } |
| | | break; |
| | | case ChannelStates.IsFirstEntry: |
| | | //是否初次进入 |
| | | if (this.FirstEntryHouse) |
| | | { |
| | | this.FirstEntryHouse = false; |
| | | currentState = ChannelStates.CloseAllWindow1; |
| | | } |
| | | else |
| | | { |
| | | currentState = ChannelStates.CheckGroupMode; |
| | | } |
| | | break; |
| | | case ChannelStates.CloseAllWindow1: |
| | | //关闭所有窗口1 |
| | | CloseAllAlertWindow(cancelToken, gameRect); |
| | | currentState = ChannelStates.CheckGroupMode; |
| | | break; |
| | | case ChannelStates.IsChoiceRolePage: |
| | | //检测是否角色选择界面 |
| | |
| | | ChangeChannel,//双击切换频道,等待两秒 |
| | | OpenChangeChannelPage,//打开切换频道界面 |
| | | CloseAllWindow,//关闭所有窗口 |
| | | IsFirstEntry,//是否首次进入赛丽亚的房间 |
| | | CloseAllWindow1,//关闭所有窗口1 |
| | | Complete//完成 |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// 杀怪状态机 |
| | | /// </summary> |
| | | public class KillMonsterStateMachine |
| | | public class KillMonsterStateMachine:StateMachineBase |
| | | { |
| | | private const Int32 NoMoveMaxMillSecond = 2000;//最大未移动容忍毫秒数 |
| | | private StateAction[] states;//状态动作列表 |
| | |
| | | /// <param name="cancellationToken"></param> |
| | | /// <param name="timeoutMillSecond"></param> |
| | | /// <returns></returns> |
| | | public Int32 Start(CancellationToken cancellationToken, Int32 timeoutMillSecond) |
| | | public ZTResult Work(CancellationToken cancellationToken, Int32 timeoutMillSecond) |
| | | { |
| | | DateTime expireTime = DateTime.Now.AddMilliseconds(timeoutMillSecond); |
| | | KillMonsterStateResult result = new KillMonsterStateResult(STATE_Start, false); |
| | |
| | | { |
| | | G.Instance.DebugWriter("取消刷图"); |
| | | this.moveState.StopMove(); |
| | | return JobResult.Cancel; |
| | | return ZTResult.Cancel; |
| | | } |
| | | |
| | | if (DateTime.Now > expireTime) |
| | | { |
| | | G.Instance.DebugWriter("刷图超时"); |
| | | this.moveState.StopMove(); |
| | | return JobResult.Timeout; |
| | | return ZTResult.Timeout; |
| | | } |
| | | if (result.NextState == STATE_Exit) |
| | | { |
| | |
| | | this.moveState.StopMove(); |
| | | if (this.exitResult) |
| | | { |
| | | return JobResult.Success; |
| | | return ZTResult.Success; |
| | | } |
| | | return JobResult.Failed; |
| | | return ZTResult.Failed; |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | }, 50)) |
| | | { |
| | | return JobResult.Failed; |
| | | return ZTResult.Failed; |
| | | } |
| | | } |
| | | if (houseIndex != this.house.Index) |
| | | { |
| | | this.moveState.StopMove(); |
| | | return JobResult.Success; |
| | | return ZTResult.Success; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | /// <summary> |
| | | /// 杀怪状态 |
| | | /// </summary> |
| | | public enum KillMonsterStates:Int32 |
| | | { |
| | | FindMonster = 0,//找怪 |
| | | PrepareReleaseSkill = 1,//释放技能预处理,计算位置 |
| | | ReleaseSkill = 2,//释放技能 |
| | | DetectDoorIsOpen = 3,//查找进入下一房间的门是否开了 |
| | | MoveToDoor = 4,//移动进门 |
| | | |
| | | Start = 8,//开始状态 |
| | | Exit = 9,//完成状态 |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace RichCreator.StateMachines |
| | | { |
| | | /// <summary> |
| | | /// 状态机基类 |
| | | /// </summary> |
| | | public abstract class StateMachineBase |
| | | { |
| | | |
| | | } |
| | | } |
| | |
| | | <UserName1>1258493488</UserName1> |
| | | <Password1>cc11111111</Password1> |
| | | <UserName2>2228607100</UserName2> |
| | | <Password2>cc11111111</Password2> |
| | | <Password2>a5m1nf0g00d</Password2> |
| | | <UserName3></UserName3> |
| | | <Password3></Password3> |
| | | </RichCreatorConfig> |