http://vk.com/game_gm2игра очень быстрая, нужно сканировать экран налету (практически без задержек). для этого нужно сменить цветность рабочего стола на 16бит, это в разы увеличит производительность и кликера, и флеш приложения. например у меня GETSCREEN(0,0,20,10) при 32бит сробатывает за 20-25мс, а при 16бит 0-1мс. по моим расчетам если фпс в пределах 50фпс, то 1 проход скрипта должен быть хотябы раз в 20мс, а если только лиш гетскрин тратит 25мс(причем он еще и тормозит приложение), то это не дело.
фпс в игре должен быть стабилен и высок, фишки должны скользить по полю как по маслу, а не как по асфальту. если фпс будет низким, то хороших результатов невидать. у меня наилучший фпс почемуто в фаерфоксе, в опере тормозит.
игра, флеш плеер, браузер часто обновляются, поэтому номера цветов также меняются. при первом запуске скрипта (при нажатии на кнопку "ок" диалогового окна) произойдет запись в ини нужных переменных. в момент записи поле должно быть чистым, без фишек(начало песни, как на рисунке ниже), последующие запуски неважно.если же кнопки перестали нажиматься, то нужно удалить conf_mg2.ini и произвести запись повторно.
еще желательно (или обязательно) в настройках игры убрать эфекты, выключить сглаживание, задний фон, спецэфекты, динамические тени.
данный скрипт на моем пк проходит практически любой трек на 99-100%, всё зависит от правильно выставленной задержки.
скрипт сам переключает песни либо жмет повтор. чтобы включить данную ф-цию в SetThread (thr_end, 0) выставить 1
видео бота в работе. трек один из самых сложных. прога для записи видео немного тормозила игру, поэтому фишки иногда проскакивали.
https://www.youtube.com/watch?v=rwseyHdspDI (в видео использовалась старая версия бота)
Новая версия с возможностью использовать ярость.
Для начала нужно опятьже произвести запись в ини нужных пораметров. Для этого включаем скрипт на каком либо треке (я настраивал на Rammstein - Rammlied ), ждем пока не появится возможность использовать ярость. Выжидаем момент, когда пауза в игре и жмем на пробел. Появится окно с предупреждением. При нажатии на ОК призойдет запись. В этот момент нижняя часть поля обязятельно должна быть чистой. Если с первого раза не получилось, удаляем conf_mg2.ini и пробуем еще раз. Для отключения режима ярости (в кликермане), жмем ENTER.
Впринципе, включение режима в игре проискодит быстро, фишки почти не пропускаются. Но момент выхода из ярости длится около 2-3сек, поэтому в этот момент скрипт может пропустить пару фишек.
Я думаю если прокачать примочку, то прирост в очках должен появиться.
#name "мастер гитары 2 v1.4"
$hwnd_flash = HGET(INT($_xmax/2),INT($_ymax/2))
WNDGETINFO ($hwnd_flash,$v1,$v2,$v3,$v4)
$cor = 0 //корректор координат анализируемых пикселей по оси Х, по умолчанию "0". подбирать по мере работоспособности от 0 до 10
$r_cor = 0 // тоже самое, только для режима ярости. после каждой смены значений, заново производить запись цветов удалив conf_mg2.ini
$clm = 6 //колормод, подбирать по мере работоспособности 4, 5 или 6. можно испытать и все от 0 до 8. после каждой смены значения, заново производить запись цветов удалив conf_mg2.ini
$t = 20 // задержка
$a=$v1+343-$cor
$s=$v1+413-$cor
$d=$v1+484-$cor
$j=$v1+513+$cor
$k=$v1+585+$cor
$l=$v1+655+$cor
$r_a=$v1+358-$r_cor
$r_s=$v1+421-$r_cor
$r_d=$v1+485-$r_cor
$r_j=$v1+512+$r_cor
$r_k=$v1+583+$r_cor
$r_l=$v1+645+$r_cor
$all_y=$v2+541
$col_a = INIREAD("conf_mg2.ini", "col_a")
$col_s = INIREAD("conf_mg2.ini", "col_s")
$col_d = INIREAD("conf_mg2.ini", "col_d")
$col_j = INIREAD("conf_mg2.ini", "col_j")
$col_k = INIREAD("conf_mg2.ini", "col_k")
$col_l = INIREAD("conf_mg2.ini", "col_l")
IF($col_a="")
$mr = dialogbox("Запись цветов! Игровое поле должно быть пустым, трек включенным. Для отката удалить conf_mg2.ini", 1,3)
IF($mr = 2)
halt
END_IF
GETSCREEN($a,$all_y-1,$l+1,$all_y+1)
COLORMODE($clm, $a,$all_y,$l+1,$all_y+1)
$col_a=PXL($a,$all_y)
$col_s=PXL($s,$all_y)
$col_d=PXL($d,$all_y)
$col_j=PXL($j,$all_y)
$col_k=PXL($k,$all_y)
$col_l=PXL($l,$all_y)
INIWRITE("conf_mg2.ini", "col_a", $col_a)
INIWRITE("conf_mg2.ini", "col_s", $col_s)
INIWRITE("conf_mg2.ini", "col_d", $col_d)
INIWRITE("conf_mg2.ini", "col_j", $col_j)
INIWRITE("conf_mg2.ini", "col_k", $col_k)
INIWRITE("conf_mg2.ini", "col_l", $col_l)
END_IF
SetThread (thr_end, 0)// 1-включено переключение треков, 0 - выключено.
$x= $_xmouse
$y= $_ymouse
waitms(100)
LCLICK(INT($_xmax/2),INT($_ymax/2))
move($x,$y)
////////
WHILE(1)
waitms(5)
GETSCREEN($a,$all_y,$l+1,$all_y+1)
COLORMODE($clm, $a,$all_y,$l+1,$all_y+1)
waitms($t)
SetThread (thr_1, 1)
SetThread (thr_2, 1)
//ярость
IF(iskeydown(#space)=1)
$r_col_a = INIREAD("conf_mg2.ini", "r_col_a")
$r_col_s = INIREAD("conf_mg2.ini", "r_col_s")
$r_col_d = INIREAD("conf_mg2.ini", "r_col_d")
$r_col_j = INIREAD("conf_mg2.ini", "r_col_j")
$r_col_k = INIREAD("conf_mg2.ini", "r_col_k")
$r_col_l = INIREAD("conf_mg2.ini", "r_col_l")
IF($r_col_a="")
$mr = dialogbox("Запись цветов для режима ярость! Ярость действительно должна быть включена. Нажать на OK в момент, когда нижняя часть поля без фишек. Для отката удалить conf_mg2.ini", 1,3)
IF($mr = 2)
halt
END_IF
GETSCREEN($r_a,$all_y,$r_l+1,$all_y+1)
COLORMODE($clm, $a,$all_y,$l+1,$all_y+1)
$r_col_a=PXL($r_a,$all_y)
$r_col_s=PXL($r_s,$all_y)
$r_col_d=PXL($r_d,$all_y)
$r_col_j=PXL($r_j,$all_y)
$r_col_k=PXL($r_k,$all_y)
$r_col_l=PXL($r_l,$all_y)
INIWRITE("conf_mg2.ini", "r_col_a", $r_col_a)
INIWRITE("conf_mg2.ini", "r_col_s", $r_col_s)
INIWRITE("conf_mg2.ini", "r_col_d", $r_col_d)
INIWRITE("conf_mg2.ini", "r_col_j", $r_col_j)
INIWRITE("conf_mg2.ini", "r_col_k", $r_col_k)
INIWRITE("conf_mg2.ini", "r_col_l", $r_col_l)
$x= $_xmouse
$y= $_ymouse
waitms(100)
LCLICK(INT($_xmax/2),INT($_ymax/2))
move($x,$y)
END_IF
HINTPOPUP("Для отключения нажмите ENTER.", "Включена ярость!!!")
$rage=1
WHILE($rage=1)
waitms(5)
GETSCREEN($r_a,$all_y,$r_l+1,$all_y+1)
COLORMODE($clm, $a,$all_y,$l+1,$all_y+1)
waitms($t)
SetThread (rage_1, 1)
SetThread (rage_2, 1)
IF(iskeydown(#enter)=1)
$rage=0
HINTPOPUP(" ","Ярость выключена!!!")
END_IF
END_CYC
END_IF
END_CYC
THREAD(Speed, 1)
IF(ISKEYDOWN(#1)=1)
$t = 10
HINTPOPUP(STRCONCAT("Задержка: ", $t), "Задержка изменена")
ELSE
IF(ISKEYDOWN(#2)=1)
$t = 20
HINTPOPUP(STRCONCAT("Задержка: ", $t), "Задержка изменена")
ELSE
IF(ISKEYDOWN(#3)=1)
$t = 30
HINTPOPUP(STRCONCAT("Задержка: ", $t), "Задержка изменена")
ELSE
IF(ISKEYDOWN(#4)=1)
$t = 40
HINTPOPUP(STRCONCAT("Задержка: ", $t), "Задержка изменена")
ELSE
IF(ISKEYDOWN(#5)=1)
$t = 50
HINTPOPUP(STRCONCAT("Задержка: ", $t), "Задержка изменена")
ELSE
WAITMS(100)
END_IF
END_IF
END_IF
END_IF
END_IF
END_THREAD
THREAD(thr_1,0)
IF(PXL($d,$all_y)=$col_d)
IF(iskeydown(#d)=1)
KEYUP(#d)
END_IF
else
IF(iskeydown(#d)=0)
KEYDOWN(#d)
END_IF
END_IF
IF(PXL($s,$all_y)=$col_s)
IF(iskeydown(#s)=1)
KEYUP(#s)
END_IF
else
IF(iskeydown(#s)=0)
KEYDOWN(#s)
END_IF
END_IF
IF(PXL($a,$all_y)=$col_a)
IF(iskeydown(#a)=1)
KEYUP(#a)
END_IF
else
IF(iskeydown(#a)=0)
KEYDOWN(#a)
END_IF
END_IF
SetThread (thr_1, 0)
END_THREAD
THREAD(thr_2,0)
IF(PXL($j,$all_y)=$col_j)
IF(iskeydown(#j)=1)
KEYUP(#j)
END_IF
else
IF(iskeydown(#j)=0)
KEYDOWN(#j)
END_IF
END_IF
IF(PXL($k,$all_y)=$col_k)
IF(iskeydown(#k)=1)
KEYUP(#k)
END_IF
else
IF(iskeydown(#k)=0)
KEYDOWN(#k)
END_IF
END_IF
IF(PXL($l,$all_y)=$col_l)
IF(iskeydown(#l)=1)
KEYUP(#l)
END_IF
else
IF(iskeydown(#l)=0)
KEYDOWN(#l)
END_IF
END_IF
SetThread (thr_2, 0)
END_THREAD
THREAD(rage_1,0)
IF(PXL($r_d,$all_y)=$r_col_d)
IF(iskeydown(#d)=1)
KEYUP(#d)
END_IF
else
IF(iskeydown(#d)=0)
KEYDOWN(#d)
END_IF
END_IF
IF(PXL($r_s,$all_y)=$r_col_s)
IF(iskeydown(#s)=1)
KEYUP(#s)
END_IF
else
IF(iskeydown(#s)=0)
KEYDOWN(#s)
END_IF
END_IF
IF(PXL($r_a,$all_y)=$r_col_a)
IF(iskeydown(#a)=1)
KEYUP(#a)
END_IF
else
IF(iskeydown(#a)=0)
KEYDOWN(#a)
END_IF
END_IF
SetThread (rage_1, 0)
END_THREAD
THREAD(rage_2,0)
IF(PXL($r_j,$all_y)=$r_col_j)
IF(iskeydown(#j)=1)
KEYUP(#j)
END_IF
else
IF(iskeydown(#j)=0)
KEYDOWN(#j)
END_IF
END_IF
IF(PXL($r_k,$all_y)=$r_col_k)
IF(iskeydown(#k)=1)
KEYUP(#k)
END_IF
else
IF(iskeydown(#k)=0)
KEYDOWN(#k)
END_IF
END_IF
IF(PXL($r_l,$all_y)=$r_col_l)
IF(iskeydown(#l)=1)
KEYUP(#l)
END_IF
else
IF(iskeydown(#l)=0)
KEYDOWN(#l)
END_IF
END_IF
SetThread (rage_2, 0)
END_THREAD
//-------------------------
THREAD(thr_end,0)
GETSCREEN($v1+323,$v2+386,$v1+934,$v2+556)
IF_PIXEL_IN($v1+323,$v2+386,$v1+717,$v2+556, 42578, 42586, 12416272)
LCLICK($_return1+3, $_return2+3)
move($v1+883,$v2+582)
END_IF
IF(PXL($v1+819,$v2+466)=12451839)
LCLICK($v1+819,$v2+466)
move($v1+883,$v2+582)
inc($n)
print("next ",$n)
wait(25)
LCLICK($v1+496,$v2+463)
move($v1+883,$v2+582)
END_IF
wait(5)
END_THREAD
Изменение задержки перед нажатием кнопок(скорость песни) производится на кнопки "1"=10мс, "2"= 20мс и так до "5" = 50мс.
Пишите если что не так.
водео настройки (первый запуск скрипта)
https://youtu.be/90AANcLiZ7I
обновил до v1.3 - 19.04.2015 теперь для каждого грифа (гитары), нужно заново записывать цвета, путем удаления (или перемещения, переименовывания) файла conf_mg2.ini.
вынес переменную соответствующую режиму цветокоррекции $clm. так как на некоторых грифах цвет может быть приближет к цвету нот. подбираем методом проб и ошибок. подбирать колормод (меняем в верху кода) по мере работоспособности 4, 5 или 6. можно испытать и все от 0 до 8. после каждой смены значения, заново производить запись цветов удалив conf_mg2.ini
обновил до v1.4 - 6.05.2015если переодически не нажимаются какието кнопки даже при использовании колормод 6, следует подкоректировать координаты анализируемых пикселей, переменная $cor (обычный режим) и $r_cor (для режима ярости) . нужно подбирать пока не будуть нажиматься все кнопки как положено. я думаю это значение должно быть в пределах от 0 до 10. после каждой смены значений, заново производить запись цветов удалив conf_mg2.ini