DoubleTrouble
Новичок
- Сообщения
- 15
- Репутация
- 0
Сегодня при написании бота возникла проблема, есть 1 цикл(ОБЩИЙ) в него вложено 8 других циклов которые выполняются при некоторых условиях, как сделать так чтобы если нужное мне условие не выполнилось то завершился 1 - общий цикл?
вот мой код, в коде я отметил при каком условии нужно завершить общий цикл
помогите пожалуйста, желательно покажите на моём примере что и куда писать
вот второй код для сравнения в котором всё работает так как мне нужно(но не совсем так как мне нужно, поэтому хочу дописать 1й вариант)
вот мой код, в коде я отметил при каком условии нужно завершить общий цикл
Код:
HotKeySet("{ESC}", "terminate")
While 1; на тот случай, если мы собираемся так играть вечно
MouseClick("left", 364, 149, 1, 0)
Sleep(100)
While 1
PixelSearch ( 620, 166, 711, 200, 0x32392D )
if @error <> 1 Then ExitLoop
if @error <> 0 Then MouseClick("left", 364, 149, 1, 0)
WEnd
While 1
PixelSearch (359, 155, 359, 155, 0x272B14)
If @error <> 1 Then MouseClick (359, 155, 1, 0)
Sleep(30)
PixelSearch ( 473, 183, 473, 183, 0x444C41 )
If @error <> 1 Then ExitLoop
If @error <> 0 Then MouseClick("left", 575, 146, 1, 0)
Sleep(30)
PixelSearch ( 739, 184, 739, 184, 0x191D17 )
If @error <> 1 Then ExitLoop
If @error <> 0 Then MouseClick("left", 575, 146, 1, 0)
WEnd
$point_pixel = PixelSearch ( 441, 164, 507, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
$point_pixel = PixelSearch ( 440, 281, 506, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
$point_pixel = PixelSearch ( 441, 164, 507, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
$point_pixel = PixelSearch ( 440, 281, 506, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
PixelSearch ( 920, 478, 920, 478, 0x742800 )
if @error <> 1 Then MouseClick("left", 897, 140, 1, 0) - ЕСЛИ ЭТО НЕ ВЫПОЛНИТСЯ ТО НУЖНО ЗАВЕРШИТЬ 1 - ОБЩИЙ ЦИКЛ, А ВЛОЖЕНЫЕ ЧТОБ НЕ ТРОГАЛ
While 1
PixelSearch (870, 158, 870, 158, 0x644327)
If @error <> 1 Then MouseClick ("left", 1100, 125, 1, 0) - ЕСЛИ ЭТО ВЫПОЛНИТСЯ ТО НУЖНО ПРОДОЛЖАТЬ ОБЩИЙ ЦИКЛ ВПЛОТЬ ДО ЕГО САМОСТОЯТЕЛЬНОГО ЗАВЕРШЕНИЯ
If @error <> 0 Then ExitLoop - В ЭТОМ СЛУЧАЕ НАМ НУЖНО ЗАВЕРШИТЬ ОБЩИЙ ЦИКЛ А ВЛОЖЕНЫЕ ЧТОБ НЕ ТРОГАЛ(ЦИКЛ БЕСКОНЕЧНО ПОВТОРЯЕТСЯ)
Sleep(3000)
MouseClick("left", 254, 358, 1, 0) ; нажтмаем на общую кнопку магазина
Sleep(3000)
MouseClick("left", 421, 252, 1, 0) ; нажимаем на кнопку рынка
Sleep(10000)
MouseClick("left", 347, 601, 1, 0) ; нажимаем на кнопку продажи
WEnd
While 1
Sleep(150)
$point_pixel = PixelSearch ( 428, 159, 626, 416, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
If @Error <> 0 Then ExitLoop
Sleep(100)
MouseClick("left", 695, 365, 1, 0)
sleep(10)
Send ("{RIGHT}")
sleep(10)
Send ("{RIGHT}")
sleep(10)
Send ("{RIGHT}")
Send ("{BS}")
sleep(10)
Send ("1")
Sleep(10)
Send ("3")
sleep(10)
Send ("0")
sleep(10)
Send ("0")
Sleep(150)
MouseClick("left", 614, 408, 1, 0) ; нажимаем кнопку ОК
Sleep(100)
WEnd
While 1
PixelSearch ( 638, 466, 638, 466, 0x2C2A1A)
If @error <> 1 Then ExitLoop
Sleep(3000)
MouseClick("left", 1037, 132, 1, 0)
Sleep(3000)
MouseClick("left", 254, 358, 1, 0)
Sleep(3000)
MouseClick("left", 420, 220, 1, 0)
Sleep(3000)
MouseClick("left", 831, 140, 1, 0)
WEnd
While 1 ; продаем хлам в магазине
Sleep(3000)
PixelSearch(822, 369, 822, 369, 0x1F2216)
If @error <> 1 Then ExitLoop
MouseClickDrag("left", 822,369, 660, 374) ; перетаскиваем предмет
Sleep(3000)
MouseClick("left", 669, 353, 1, 0) ; жмем ОК
Sleep(3000)
MouseClick("left", 768, 359, 1, 0) ; Выбираем продать все
Sleep(3000)
MouseClick("left", 606, 409, 1, 0) ; жмем ок
Sleep(2000)
MouseClick("left", 831, 140, 1, 0)
WEnd
While 1
Sleep(3000)
PixelSearch(822, 369, 822, 369, 0x1F2216)
If @error <> 1 Then ExitLoop
MouseClickDrag("left", 822,369, 660, 374) ; перетаскиваем предмет
Sleep(3000)
MouseClick("left", 669, 353, 1, 0) ; жмем ОК
Sleep(3000)
MouseClick("left", 768, 359, 1, 0) ; Выбираем продать все
Sleep(3000)
MouseClick("left", 606, 409, 1, 0) ; жмем ок
Sleep(2000)
MouseClick("left", 831, 140, 1, 0)
WEnd
While 1
Sleep(3000)
PixelSearch(822, 369, 822, 369, 0x1F2216)
If @error <> 1 Then ExitLoop
MouseClickDrag("left", 822,369, 660, 374) ; перетаскиваем предмет
Sleep(3000)
MouseClick("left", 669, 353, 1, 0) ; жмем ОК
Sleep(3000)
MouseClick("left", 768, 359, 1, 0) ; Выбираем продать все
Sleep(3000)
MouseClick("left", 606, 409, 1, 0) ; жмем ок
WEnd
Sleep(150)
$color_green = 1514002
While 1
If PixelGetColor( 364, 149 ) <> 1514002 Then ExitLoop ; если кнопка НЕ серая, то выходим из этого цикла и жмем другую кнопку
WEnd
WEnd
Func Terminate()
Exit 0
EndFunc
помогите пожалуйста, желательно покажите на моём примере что и куда писать

вот второй код для сравнения в котором всё работает так как мне нужно(но не совсем так как мне нужно, поэтому хочу дописать 1й вариант)
Код:
HotKeySet("{ESC}", "terminate")
While 1; на тот случай, если мы собираемся так играть вечно
MouseClick("left", 364, 149, 1, 0)
Sleep(100)
While 1
PixelSearch ( 620, 166, 711, 200, 0x32392D )
if @error <> 1 Then ExitLoop
if @error <> 0 Then MouseClick("left", 364, 149, 1, 0)
WEnd
While 1
PixelSearch (359, 155, 359, 155, 0x272B14)
If @error <> 1 Then MouseClick (359, 155, 1, 0)
Sleep(30)
PixelSearch ( 473, 183, 473, 183, 0x444C41 )
If @error <> 1 Then ExitLoop
If @error <> 0 Then MouseClick("left", 575, 146, 1, 0)
Sleep(30)
PixelSearch ( 739, 184, 739, 184, 0x191D17 )
If @error <> 1 Then ExitLoop
If @error <> 0 Then MouseClick("left", 575, 146, 1, 0)
WEnd
$point_pixel = PixelSearch ( 441, 164, 507, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
$point_pixel = PixelSearch ( 440, 281, 506, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
$point_pixel = PixelSearch ( 441, 164, 507, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
$point_pixel = PixelSearch ( 440, 281, 506, 351, 0x51554F )
if @error <> 1 Then MouseClick("left", $point_pixel[0], $point_pixel[1], 2, 0)
PixelSearch ( 920, 478, 920, 478, 0x742800 )
if @error <> 1 Then MouseClick("left", 897, 140, 1, 0)
While 1
PixelSearch (870, 158, 870, 158, 0x644327)
If @error <> 1 Then MouseClick ("left", 1100, 125, 1, 0)
If @error <> 0 Then ExitLoop
MouseClick("left", 254, 214, 1, 0)
Sleep(3000)
MouseClick("left", 707, 98, 1, 0)
Sleep(3000)
MouseClick("left", 254, 358, 1, 0)
Sleep(3000)
MouseClick("left", 421, 252, 1, 0)
Sleep(10000)
MouseClick("left", 347, 601, 1, 0)
Sleep(5000)
MouseClick("left", 493, 440, 1, 0)
While 1
PixelSearch ( 638, 466, 638, 466, 0x2C2A1A)
If @error <> 1 Then ExitLoop
WEnd
Sleep(3000)
MouseClick("left", 1037, 132, 1, 0)
Sleep(3000)
MouseClick("left", 254, 214, 1, 0)
Sleep(3000)
MouseClick("left", 707, 98, 1, 0)
Sleep(3000)
MouseClick("left", 254, 358, 1, 0)
Sleep(3000)
MouseClick("left", 421, 252, 1, 0)
Sleep(10000)
MouseClick("left", 347, 601, 1, 0)
Sleep(5000)
MouseClick("left", 493, 440, 1, 0)
While 1
PixelSearch ( 638, 466, 638, 466, 0x2C2A1A)
If @error <> 1 Then ExitLoop
WEnd
Sleep(3000)
MouseClick("left", 1037, 132, 1, 0)
Sleep(3000)
MouseClick("left", 254, 214, 1, 0)
Sleep(3000)
MouseClick("left", 707, 98, 1, 0)
Sleep(3000)
MouseClick("left", 254, 358, 1, 0)
Sleep(3000)
MouseClick("left", 421, 252, 1, 0)
Sleep(10000)
MouseClick("left", 347, 601, 1, 0)
Sleep(5000)
MouseClick("left", 493, 440, 1, 0)
While 1
PixelSearch ( 638, 466, 638, 466, 0x2C2A1A)
If @error <> 1 Then ExitLoop
WEnd
MouseClick("left", 254, 214, 1, 0)
Sleep(3000)
MouseClick("left", 707, 98, 1, 0)
Sleep(3000)
MouseClick("left", 254, 214, 1, 0)
Sleep(3000)
MouseClick("left", 707, 98, 1, 0)
Sleep(3000)
MouseClick("left", 255, 358, 1, 0)
Sleep(3000)
MouseClick("left", 420, 220, 1, 0)
Sleep(100)
WEnd
Sleep(100)
$color_green = 1514002
While 1
If PixelGetColor( 364, 149 ) <> 1514002 Then ExitLoop ; если кнопка НЕ серая, то выходим из этого цикла и жмем другую кнопку
WEnd
WEnd
Func Terminate()
Exit 0
EndFunc