Автокликер Clickermann :: Форум
		Основной раздел => Общие вопросы => Topic started by: rrdeiss on October 30, 2017, 06:35:04 AM
		
			
			- 
				Вот кодfndhnt()
 startwar()
 while($wmob=0)
 simplewar()
 end_cyc
 drinkburdfight()
Останавливается после выполнения while
 Последняя подпрограмма не выполняется
 Не рестартится вся программа
 Что с этим можно сделать?
- 
				В этом коде нет ошибок, очевидно что они есть в твоих подпрограммах.
			
- 
				Можете проверить, что здесь не так?
 sub(drinkburdfight) //проверка стат и питье бурдей
 getscreen
 if_pixel_in(588,200,635,205,109,66)
 lclick(1394,57)
 waitms(rnd(100,300))
 lclick(1090,177)
 waitms(rnd(100,300))
 lclick(1394,57)
 waitms(rnd(100,300))
 lclick(1090,198)
 waitms(rnd(100,300))
 end_if
 end_sub
 sub(fndhnt) //открытие охоты, переход на запад
 lclick(1258+rnd(-15,15),129+rnd(-15,+15)
 wait(2)
 lclick(351+rnd(-5,5),210+rnd(-5,5))
 wait(2)
 end_if
 end_sub
 sub(startwar) //поиск моба и нападение на него
 getscreen
 if_pixel_in(342,180,1147,816,535696,1331546,1653334,1519710,1914980,4416913)
 mouse_move($_return1,$_return2)
 waitms(100)
 lclick($_return1, $_return2)
 waitms(200)
 dblclick($_return1, $_return2)
 wait(rnd(7,9))
 else
 fndhnt()
 end_if
 end_sub
 sub(simplewar) //бой первым скилом
 getscreen
 if_pixel_in(980,236,1153,503,163)
 mouse_move(619+rnd(-10,10),451+rnd(-10,10))
 lclick(619+rnd(-10,10),451+rnd(-10,10))
 $udar=$udar+1
 waitms(rnd(600,1000))
 else
 $wmob=0
 end_if
 end_sub
 
- 
				Отсутствует последняя скобка и лишний end_if в подпрограмме sub(fndhnt)
 lclick(1258+rnd(-15,15),129+rnd(-15,+15)
 Так верно
 sub(drinkburdfight) //проверка стат и питье бурдей
 getscreen
 if_pixel_in(588,200,635,205,109,66)
 lclick(1394,57)
 waitms(rnd(100,300))
 lclick(1090,177)
 waitms(rnd(100,300))
 lclick(1394,57)
 waitms(rnd(100,300))
 lclick(1090,198)
 waitms(rnd(100,300))
 end_if
 end_sub
 
 sub(fndhnt) //открытие охоты, переход на запад
 lclick(1258+rnd(-15,15),129+rnd(-15,+15))
 wait(2)
 lclick(351+rnd(-5,5),210+rnd(-5,5))
 wait(2)
 end_sub
 
 sub(startwar) //поиск моба и нападение на него
 getscreen
 if_pixel_in(342,180,1147,816,535696,1331546,1653334,1519710,1914980,4416913)
 mouse_move($_return1,$_return2)
 waitms(100)
 lclick($_return1, $_return2)
 waitms(200)
 dblclick($_return1, $_return2)
 wait(rnd(7,9))
 else
 fndhnt()
 end_if
 end_sub
 
 sub(simplewar) //бой первым скилом
 getscreen
 if_pixel_in(980,236,1153,503,163)
 mouse_move(619+rnd(-10,10),451+rnd(-10,10))
 lclick(619+rnd(-10,10),451+rnd(-10,10))
 $udar=$udar+1
 waitms(rnd(600,1000))
 else
 $wmob=0
 end_if
 end_sub
- 
				Сделал все как вы сказали, не помогло. 
 Возможно, проблема в том, что первая подпрограмма это проверка условий и надо добавить
 else и рестарт программы, но как это сделать?
 
- 
				Разобраться в проблеме поможет вставка в код записи в лог.
 
 Пример
 sub(startwar) //поиск моба и нападение на него
 LOGWRITE ("Выполняю startwar")
 getscreen
 if_pixel_in(342,180,1147,816,535696,1331546,1653334,1519710,1914980,4416913)
 LOGWRITE ("Найден пиксель")
 mouse_move($_return1,$_return2)
 waitms(100)
 lclick($_return1, $_return2)
 waitms(200)
 dblclick($_return1, $_return2)
 wait(rnd(7,9))
 else
 LOGWRITE ("Не найден пиксель")
 fndhnt()
 end_if
 end_sub
- 
				Я вставил логи, но запись логов после end_cyc прекращается. 
 Т.е. последняя подпрограмма(drinkburdfight) как не выполнялась, так и не выполняется.
- 
				если подпрограмма не выполняется, то причина одна в указанной области указанные цвета не найдены 
 if_pixel_in(588,200,635,205,109,66)  // ищутся цвета 109 и 66 ? проверяется полоска шириной 5 пикселей?
 подпрограмма mouse_move в коде написана?
 
 да, mouse _move написана.
 проблема в том, что на end_cyc просто останавливается все, следующая подпрограмма drinkburdfight даже лог не выводит о том, что пиксель не найдет.
 и я не могу возобновить всю программу заново, не нажав хоткей остановки и потом запуска скрипта, мне нужно чтобы все было автоматически
- 
				Спасибо огромное!