Автокликер Clickermann :: Форум
		Основной раздел => Общие вопросы => Topic started by: Макс666 on August 26, 2018, 01:51:25 PM
		
			
			- 
				Уверен что, код написан неправильно и каряво, но он работает! Его просто нужно усовершенствовать.
 
 Мини игра (рыбалка) где рандомно появляется красная надпись и зеленая. На красную нужно нажать ЛКМ, на зеленую ПКМ, пока не заполнится полоска. Но, после заполнения полоски, ещё некоторое время надпись с цветом остается и скрипт ещё раз на неё кликает.. Из-за этого выскакивает предупреждение (драться нельзя) и может кикнуть с сервера.
 
 
 После ввода команды "/fish", полоска появляется не сразу (рандомно в течении 3-10 секунд), поэтому стоит while.
 Нужно поставить два условия. Если в определенной точке находит белый цвет (в полоске белая надпись) только тогда нужно искать красный с зеленым (в другом месте). Т.е. когда полоска пропадет, чтобы не клацал по зеленому или красному, а сразу останавливался.
 Подскажите как такое сделать, ставить два условия..
 
 wait 3s 
 
 KEYPRESS(0x75)
 wait 1s
 KEYSTRING ("/fish", 1)
 wait 1s
 KEYPRESS(0x0D)
 wait 1s
 
 FOR($a=0,$a<30)
 
 
 
 $check = 0
 WHILE($check = 0)
 GETSCREEN
 IF_PIXEL_IN(722,255, 1182,468, 1907124)  // ищет красный цвет
 LCLICK($_return1, $_return2)
 WAITMS(200)
 ELSE
 GETSCREEN
 IF_PIXEL_IN(722,255, 1182,468, 2909750)    // ищет зеленый цвет
 RCLICK($_return1, $_return2)
 WAITMS(200)
 END_IF
 END_CYC
 
 END_CYC
 
 
 HALT
 
- 
				Нашел решение. Вроде работает.
 
 wait 3s
 
 KEYPRESS(0x75)
 wait 1s
 KEYSTRING ("/fish", 1)
 wait 1s
 KEYPRESS(0x0D)
 wait 1s
 
 FOR($a=0,$a<30)
 
 
 
 $check = 0
 WHILE($check = 0)
 
 GETSCREEN
 IF_PIXEL_IN(652,656, 667,663, 16776191)  // ищет белую полоску
 waitms(100)
 
 
 GETSCREEN
 IF_PIXEL_IN(722,255, 1182,468, 1907124)  // красный
 LCLICK($_return1, $_return2)
 WAITMS(200)
 ELSE
 GETSCREEN
 IF_PIXEL_IN(722,255, 1182,468, 2909750)    // зеленый
 RCLICK($_return1, $_return2)
 WAITMS(200)
 END_IF
 END_IF
 END_CYC
 
 END_CYC
 
 
 HALT
 Но как сделать так чтобы, после того как пропадает полоска, скрипт сам останавливался? Сейчас после того как полоска пропадает, судя по всему начинается ожидание while. Приходится вручную останавливать скрипт и запускать заново. Было бы удобнее чтобы он сам останавливался. Тогда можно засунуть это все в ещё один цикл и отдыхать :)
- 
				wait 3s - это не наш синтаксис, правильно wait (3)
 В последнем скрипте отсутствует 1 END_IF
 Зачем там FOR($a=0,$a<30) ?
 Где выход из цикла WHILE($check = 0) ?
 Этот цикл становится бесконечным.
 Выйти из него можно написав в нужном месте $check = 1
 
- 
				3s используется в другой проге, перепутал.
 FOR использую потому что, по красному и зеленому нужно кликать пока не заполнится шкала в полоске. Без него он клацает по найденному цвету один раз и цикл завершается.
 Про выход из while не знал, пользовался встроенным шаблоном. В написании кода меня и любителем сложно назвать ;D
 
 Спасибо за указание на ошибки, буду пробовать разобраться.