Тема: AHK: if, else, then при зажатой клавише
Здравствуйте снова
Возникла необходимость написать один макрос с которым я не могу справится сам к сожалению поэтому прошу вашей помощи.
Суть скрипта:
Я зажимаю клавишу F2. Когда я зажал ее, она должна через память все время считывать данные про оружие в руках, зажимать правую кнопку мыши(прицел), зажимать левую кнопку мыши(стрельба) и когда патронов в этом обойме остается 2 , оно отжимает левую кнопку мыши, отжимает правую кнопку мыши и посылает скролл. И так по кругу пока зажата клавиша.
То есть:
Я зажал клавишу F2
Все время(loop) считывается данные об оружие и когда в руках, оказывается именно это оружие, тогда
зажимается левая и правая кнопка мыши и все время(loop) считывается количество патронов в обойме, и когда в обойме оказывается 2 патрона то
отпускается левая и правая кнопка мыши и посылается скрол. И так по кругу пока зажат F2
Вот скрипт:
processName := "gta_sa.exe"
baseAddressPointer := 0xB7CD98
deaglestateoffset := 0x5D8
deagleammooffset := 0x5E0
InitAddresses() {
global
baseAddress := ProcessReadMemory(baseAddressPointer, processName)
deagleAddress := baseAddress + deaglestateoffset ; считывает какое оружие
deagleammoAddress := baseAddress + deagleammooffset ; количество патронов в обойме
}
F2::
if !baseAddress
InitAddresses()
loop
{
deagle := ProcessReadMemory(deagleAddress, processName, "UInt") ; считывает оружие в руках
if deagle = 24 ; если равно 24 что значит в руках дигл
}
then
send {RBUTTON down}
send {LBUTTON down}
Loop
{
ammo := ProcessReadMemory(deagleammoAddress, processName, "UInt") ; считывает патроны в обойме
if ammo = 2 ; если в обойме 2 патрона то
}
then
send {RBUTTON up}
send {LBUTTON up}
sleep, 50
send {vk51 down}
sleep, 50
send {vk51 up}
sleep 50
send {vk45 down}
sleep, 50
send {vk45 up}
returnЗнаю что код не правильный просто я попытался точно передать суть скрипта.

