var3:=var1*100/var2-100
if abs(var3)>10
tooltip,Check`n"%var1%"`n"%var2%"`n"%var3%"
else
tooltip,_____`n"%var1%"`n"%var2%"`n"%var3%"
; sendinput,1
Пожалуйста поясни, как и что считает формула.
Желатаельно напиши что выполняет каждая строчка.
Понял, что что-то сравнивается или переводится... Но не могу понять что.
UPD:
Адреса считывает, выводит правильные значения.
попробовал на другом сервере. Вот что вышло
#singleinstance,forse
adress1=0x83E1B4
adress2=0x83E1B8
size=4
ReadType=int
process,Exist,woe-ro.bin
if !errorlevel
exitapp
PID:=errorlevel
loop
{
sleep,100
var1:=GetAdressValue(PID,adress1,size,ReadType)
var2:=GetAdressValue(PID,adress2,size,ReadType)
var3:=var1*100/var2-100
if abs(var3)>10
tooltip,Check`n"%var1%"`n"%var2%"`n"%var3%"
else
tooltip,_____`n"%var1%"`n"%var2%"`n"%var3%"
send {F1}
}
; Источник: http://forum.script-coding.com/viewtopic.php?pid=90869#p90869
GetAdressValue(PID, ReadAddress, ReadSize = 4, ReadType="UInt")
{
VarSetCapacity(Buf, ReadSize, 0)
PROCESS_VM_READ = 0x10
hProcess := DllCall("OpenProcess", UInt, PROCESS_VM_READ
, Int, False
, UInt, PID)
If(!hProcess)
Return "Ошибка #1"
Ret := DllCall("ReadProcessMemory", UInt, hProcess
, UInt, ReadAddress
, UInt, &Buf
, UInt, ReadSize
, UInt, 0)
DllCall("CloseHandle", UInt, hProcess)
If(!Ret)
Return "345"
Return NumGet(Buf, 0, ReadType)
}
Вот наглядно видно, что он правильно считывает 1(текущее ХП) и 2 значение(Максимальное ХП)
Кушает зельля, ХП восстанавливается
Но ! Не останавливается поедать зелья когда значения становятся равным друг другу 10870=10870(Все равно нажимает)
Как убрать эту всплывающую табличку со значениями ?