-
Автор темы
- #1
Всем привет!!!
столкнулся с такой проблемой что у меня ищется адрес и если его значение меньше 400 нажимается f, мне нужно что бы проверялось значение и если оно стало больше то опять нажало бы f, и прекратилась проверка
если не поняли то объясню легче: если у адреса(1C0BD3802B8) значение меньше 400, то нажимается f, и после этого нажатия мне надо что бы значение читалось снова (в течение секунд 5-10 если возможно), и если оно станет больше нажмется снова f, но только после 1 нажима
༼ つ ◕_◕ ༽つ
столкнулся с такой проблемой что у меня ищется адрес и если его значение меньше 400 нажимается f, мне нужно что бы проверялось значение и если оно стало больше то опять нажало бы f, и прекратилась проверка
если не поняли то объясню легче: если у адреса(1C0BD3802B8) значение меньше 400, то нажимается f, и после этого нажатия мне надо что бы значение читалось снова (в течение секунд 5-10 если возможно), и если оно станет больше нажмется снова f, но только после 1 нажима
༼ つ ◕_◕ ༽つ
Код:
#Persistent
SetTimer, CheckValue, 100 ; Проверять значение каждые 100 мс
return
CheckValue:
Process, Exist, dota2.exe ; Найти процесс dota2.exe
If ErrorLevel ; Если процесс найден
hProc := DllCall("OpenProcess", "UInt", 0x10, "Int", 0, "UInt", ErrorLevel) ; Открыть процесс
If hProc ; Если процесс открыт
{
VarSetCapacity(value, 4, 0) ; Создать переменную для хранения значения
DllCall("ReadProcessMemory", "Ptr", hProc, "Ptr", 0x1C0BD3802B8, "Ptr", &value, "UInt", 4, "UInt *", 0) ; Прочитать значение из памяти процесса
value := NumGet(value, 0, "UInt") ; Преобразовать значение в число
If value < 400 ; Если значение меньше 400
{
Send, {f} ; Нажать f
Sleep, 100 ; Подождать 100 мс
DllCall("ReadProcessMemory", "Ptr", hProc, "Ptr", 0x1C0BD3802B8, "Ptr", &value, "UInt", 4, "UInt *", 0) ; Прочитать значение снова
value := NumGet(value, 0, "UInt") ; Преобразовать значение в число
If value > 400 ; Если значение стало больше
Send, {f} ; Нажать f снова
}
}
return
Последнее редактирование: