Dantes3000 пишет:
было бы еще проще, если бы маску можно было заполнять как поиск.
вот.... у меня прекрасно работает)
код (Отобразить)
CODE:
char poiskRXP[148];
char maskRXP[148];
win w;
int prc;
int adr;
int x, y;
int hps;
char xp[4];
//////////////////////////
poiskRXP[0]=5;
poiskRXP[1]=0;
poiskRXP[41]=0;
poiskRXP[42]=100;
poiskRXP[43]=0;
poiskRXP[44]=0;
poiskRXP[76]=2;
///////////////////////////////////////////
maskRXP[0]=1;
maskRXP[1]=1;
maskRXP[41]=1;
maskRXP[42]=1;
maskRXP[43]=1;
maskRXP[44]=1;
maskRXP[76]=1;
for(int n2=0; n2>148; n2++)
{
if(maskRXP[n2]!=1)
{
maskRXP[n2]=0;
}
}
start_();
loop() {sleep(50); poiskRealXP();}
//////////////////////////////////////////////////////////////
function start_()
{
pause(500);
beep(1000, 100);
getmouse(x, y);
w=getwindow(1, x, y);
}
//
function poiskRealXP()
{
prc=openprocess(w);
if (findmemorymask (1, #poiskRXP[0], 148, #adr, 0, #maskRXP[0], 100, prc)==1)
{
if (readmemory(#xp[0], 4, adr+32, prc)!=0)
{
hps=codhexi(#xp[0], 4);
} else textout(0, 10, 40, "ошибка реад мемори",0);
textout(0, 30, 40+40, "бьют или нет - "+format(hps)+" "+format(adr+32), 0);
} else textout(0, 10, 40, "ошибка финд мемори",0);
return hps;
}
char maskRXP[148];
win w;
int prc;
int adr;
int x, y;
int hps;
char xp[4];
//////////////////////////
poiskRXP[0]=5;
poiskRXP[1]=0;
poiskRXP[41]=0;
poiskRXP[42]=100;
poiskRXP[43]=0;
poiskRXP[44]=0;
poiskRXP[76]=2;
///////////////////////////////////////////
maskRXP[0]=1;
maskRXP[1]=1;
maskRXP[41]=1;
maskRXP[42]=1;
maskRXP[43]=1;
maskRXP[44]=1;
maskRXP[76]=1;
for(int n2=0; n2>148; n2++)
{
if(maskRXP[n2]!=1)
{
maskRXP[n2]=0;
}
}
start_();
loop() {sleep(50); poiskRealXP();}
//////////////////////////////////////////////////////////////
function start_()
{
pause(500);
beep(1000, 100);
getmouse(x, y);
w=getwindow(1, x, y);
}
//
function poiskRealXP()
{
prc=openprocess(w);
if (findmemorymask (1, #poiskRXP[0], 148, #adr, 0, #maskRXP[0], 100, prc)==1)
{
if (readmemory(#xp[0], 4, adr+32, prc)!=0)
{
hps=codhexi(#xp[0], 4);
} else textout(0, 10, 40, "ошибка реад мемори",0);
textout(0, 30, 40+40, "бьют или нет - "+format(hps)+" "+format(adr+32), 0);
} else textout(0, 10, 40, "ошибка финд мемори",0);
return hps;
}
хм)