кстати, вопрос. если я по оффсетам дошел до зеленого адреса в Cheat Engine, то он является базовым? Возможно я и прав но все же к этому адресу обращаются почти на прямую все данные которые я искал, т.е этот адрес+оффсет = нужная инфа. И таких адресов 3
на картинке поазано какой адрес что хранит (в данных начиная с 4 строки идут оффсеты: оффсет(адрес с которого был найден))
Добавлено через 14 минут
и да начал писать на C# бота и чего-то эти адреса вообще брать не хочет
создал переменные оффсетов и инициализировал их:
Код:
private int base1 = 0x1F3B5F8,
base2 = 0x1F8CFBC,
base3 = 0x48F48,
offsetHP = 0x57E8,
offsetMaxHP = 0x57E4,
offsetMP = 0x57F8,
offsetMaxMP = 0x57F4,
offsetSP = 0x5808,
offsetMaxSP = 0x5804,
offsetFDMG = 0x10C,
offsetMaxFDMG = 0x110,
offsetDeff = 0x5818,
offsetMaxDeff = 0x5814,
offsetDeffLvL = 0x11C,
offsetLvL = 0x4024,
offsetExp = 0x57DC,
offsetXPos = 0x520,
offsetYPos = 0x524;
в главном методе ( public Form1() )
при помощи VAM инициализировал переменную процесса:
Код:
VAM = new VAMemory( "RF_Online.bin" );
В ежесекундном таймере сделал сохранение значений из памяти в переменные:
Код:
HP[0] = VAM.ReadInt32( (IntPtr)offsetHP );
HP[1] = VAM.ReadInt32( (IntPtr)offsetMaxHP );
FP[0] = VAM.ReadInt32( (IntPtr)offsetMP );
FP[1] = VAM.ReadInt32( (IntPtr)offsetMaxMP );
SP[0] = VAM.ReadInt32( (IntPtr)offsetSP );
SP[1] = VAM.ReadInt32( (IntPtr)offsetMaxSP );
Lvl = VAM.ReadInt32( (IntPtr)offsetLvL );
Exp = VAM.ReadInt32( (IntPtr)offsetExp );
Pos.X = VAM.ReadInt32( (IntPtr)offsetXPos );
Pos.Y = VAM.ReadInt32( (IntPtr)offsetYPos );
DFiz[0] = VAM.ReadInt32( (IntPtr)offsetFDMG );
DFiz[1] = VAM.ReadInt32( (IntPtr)offsetMaxFDMG );
DeffLvL[0] = VAM.ReadInt32( (IntPtr)offsetDeff );
DeffLvL[1] = VAM.ReadInt32( (IntPtr)offsetMaxDeff );
Deff = VAM.ReadInt32( (IntPtr)offsetDeffLvL );
В итоге после этого всего все равно возвращает нулевое значение, в чем может быть проблема?
P.S оффсеты рабочие и проверялись неоднократно для достоверности.