5
« on: January 31, 2013, 03:16:53 PM »
Здравствуйте уважаемые форумчане!
Есть игра, онлайн шутер(warface) от первого лица.
Задача: мониторить кнопку "Т", при ее нажатии нажать кнопку "SHift", а затем кнопку "F" и снова мониторить кнопку "T". Для чего: в игре нужно нажать две кнопки чтобы совершить подкат shift+F, вот думал сделать на одну кнопку "T".
Использую Clickermann 4.7 SE
Вот что у меня получилось:
begin:
if ( iskeydown(84)=1 ) //если нажата клавиша "T"
waitms(200) //ждем 200мс
gosub(1) //идем в подпрограмму "1"
else goto(begin) //иначе на метку "begin"
END_IF //конец условия
sub(1) //название подпрограммы
KEYDOWN(16) //жмем клавишу "shift"
waitms(200) //ждем 200мс
KEYUP(16) // отпускаем клавишу "SHIFT"
logwrite("SHIFt") //log
wait(1) //ждем 1c
KEYDOWN(70) //жмем клавишу "F"
waitms(200) //ждем 200мс
KEYUP(70) //отпускаем клавишу "T"
waitms(200) //ждем 200мс
logwrite("F") //log
goto(begin) //идем в начало программы
end_sub //конец подпрограммы
Теперь есть два вопроса!
1) Перечитав форум, увидел что использование команды goto нежелательна, понятно что тут мало кода, но планирую дальше наращивать и изучать кликер.
Как можно в этой несложной программе заменить goto?
2) Просто не работает. Почему? Пробовал: заменять команду "iskeydown(84)=1" на keydown/keyup - нет результата, но в игре видно что, что то пытается сделать т.е. как бы вперед дернется и все. Пробовал написать чтобы нажалась кнопка бежать вперед - тоже результата нету. Пробовал захват окна и помещать в координаты - работает. Но вот почему кнопки не срабатывают не знаю. Отчаившись прошу помощи или намека что еще почитать.