Другое С/С++ Вопрос - Ответ

kyrtion

Известный
659
242
Предлагай плиз
чего начинать изучать с нуля С++? книжечки, сайты, видео
луа знаю
 
  • Bug
Реакции: Izvinisb

loganhackerdff

Известный
868
517
Например таким костылем: https://github.com/TsudaKageyu/minhook/blob/4a455528f61b5a375b1f9d44e7d296d47f18bb18/src/hook.c#L897
нормального метода не существует(добро пожаловать в C++)
UPD:
ну или вот:
или тут:
Извините меня, https://github.com/Neargye/nameof
 

TheD1sl1ke

Новичок
15
1
Всем привет. Недавно возникла потребность в чтении адресов памяти формата ProcessName.exe + abc (где abc - адрес памяти). Вот пример такого адреса памяти:
1635429827202.png


Раньше, для чтения обычных адресов памяти, я использовал ReadProcessMemory, но как использовать его в данной ситуации я не знаю. Заранее благодарю за помощь.
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,338
Всем привет. Недавно возникла потребность в чтении адресов памяти формата ProcessName.exe + abc (где abc - адрес памяти). Вот пример такого адреса памяти:
Посмотреть вложение 119447

Раньше, для чтения обычных адресов памяти, я использовал ReadProcessMemory, но как использовать его в данной ситуации я не знаю. Заранее благодарю за помощь.
Если у игры адрес статичный, то просто float abc = *reinterpret_cast<float*>(0x1412AD4);
либо использовать GetModuleHandle(0) для определения базового адреса и использовать
unsigned long base = *reinterpret_cast<unsigned long*>(GetModuleHandle(0));
float abc = *reinterpret_cast<float*>(base+0x1412AD4);
 

TheD1sl1ke

Новичок
15
1
Если у игры адрес статичный, то просто float abc = *reinterpret_cast<float*>(0x1412AD4);
либо использовать GetModuleHandle(0) для определения базового адреса и использовать
unsigned long base = *reinterpret_cast<unsigned long*>(GetModuleHandle(0));
float abc = *reinterpret_cast<float*>(base+0x1412AD4);
Кажется это не мой случай, то что вы написали актуально для .dll, мне же требуется чтение без инжекта сторонних файлов в игру (external).
 

EclipsedFlow

Известный
Проверенный
1,040
464
Как можно записать подобное в С++ ?
Lua:
sampRegisterChatCommand('hello', function()
    -- Блок выполнения после ввода команды
end)

-- Чтобы не создавать отдельно функцию для обработки, как можно записать подобное на C++
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,712
Как можно записать подобное в С++ ?
Lua:
sampRegisterChatCommand('hello', function()
    -- Блок выполнения после ввода команды
end)

-- Чтобы не создавать отдельно функцию для обработки, как можно записать подобное на C++
C++:
sampapi::v037r3::RefInput()->AddCommand("huy", [](const char* arg) { /* Блок выполнения после ввода команды */ });
 

EclipsedFlow

Известный
Проверенный
1,040
464
Как можно скачать txt файл и записать в переменную, запись в переменную второстепенное, главное как скачать?
cURL?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Как можно скачать txt файл и записать в переменную, запись в переменную второстепенное, главное как скачать?
cURL?
Ты каждое действие спрашивать будешь?
Используя сокеты (recv) и запись полученных данных в файл (fstream), но тебе скорее подойдет URLDownloadToFile...
 
  • Нравится
Реакции: EclipsedFlow

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
как получить координаты метки на карте с адекватной координатой Z?
После получения координат, надо отрендерить сцену в месте где нужно получить правильную координату Z (CStreaming::LoadScene 0x40EB70/CStreaming::LoadSceneCollision 0x40ED80), а после используя функцию (CWorld::FindGroundZFor3DCoord 0x5696C0/CWorld::FindGroundZForCoord 0x569660) получить правильное значение.