Адрес памяти(samp, c++)

Статус
В этой теме нельзя размещать новые ответы.

DEsTR0Y

Новичок
Автор темы
14
0
Доброго времени суток. Недавно начал пробовать сделать какой-нибудь чит на С++ для crmp(samp 0.3e). Столкнулся с такой проблемой, не могу найти адрес кол-ва хп игрока, ведь каждый раз после перезапуска игры он меняется. Полазив в гугле, нашел CPed +0x540. Но как изменить значение? До этого менял значения при помощи *reinterpret_cast, с обычными адресами(0xB7CE50 к примеру) всё нормально получается, но как быть с адресами вроде CPed +0x***? В гугле и на форумах ничего толкового не нашел. Может кто-то подскажет, как меняются значения таких адресов или скинет простенький исходник такого чита/обучающий урок по этой теме(сам не нашел). Пробовал копаться в исходнике собейта, ничего из этого не вышло, слишком много функций, не понятно что откуда и зачем.
P.S. делаю так: *reinterpret_cast<int *>(0xB7CE50) += 50;
P.S.S. Античит во внимание не берем, мне бы хоть просто узнать как менять значения таких функций, без всех сложностей с обходом античита и т.д. Но если все-таки кто-то может объяснить как ещё и античит обойти, я против конечно же не буду.
Заранее спасибо :)
 

Cookie doge

Новичок
24
8
Зачем давать готовый код, если можно научить искать указатели

Вроде норм объясняет, еще можешь глянуть канал GameHackLab

*reinterpret_cast<int *>(0xB7CE50) += 50;

Можешь себе жизнь не усложнять на начальных этапах, дай компилятору воли)
*(int*)0xFFFFFFFF += 50;
 
Последнее редактирование:
  • Нравится
Реакции: DEsTR0Y, ZKelo и LaRossa

itsOkke

Потрачен
86
38
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Cped = 0xB6F5F0;
+0x540 это смещение от этого адреса
0xB6F5F0 + 0x540
Можешь использовать вот так:
C++:
DWORD myhp = 0xB6F5F0 + 0x540;
*reinterpret_cast<float *>(myhp) += 50;
надо сначала указатель на CPed прочитать, а потом уже прибавлять 540
 
  • Нравится
Реакции: Cookie doge и mkrn

mkrn

Известный
67
61
Зачем давать готовый код, если можно научить искать указатели

Вроде норм объясняет, еще можешь глянуть канал GameHackLab



Можешь себе жизнь не усложнять на начальных этапах, дай компилятору воли)
*(int*)0xB7CE50 += 50;

еее

ну ваще вот как бы ;d

C++:
*reinterpret_cast<float *>(*reinterpret_cast<DWORD*>(0xB6F5F0) + 0x540) += 50.0f;

ну или проще, вот так

C++:
DWORD addr = *(DWORD*)0xB7CE50;
*(float*)(addr + 0x540) += 50.0f;
 
Последнее редактирование:
  • Нравится
Реакции: DEsTR0Y
Статус
В этой теме нельзя размещать новые ответы.