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

Gabriel__

Известный
Проверенный
411
181
Ребят! Интересный вопрос! Как сделать функцию которая в аргументе будет принимать ссылку на переменную. И какой тип данных может хранить адреса памяти в hex.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,446
Ребят! Интересный вопрос! Как сделать функцию которая в аргументе будет принимать ссылку на переменную. И какой тип данных может хранить адреса памяти в hex.
void anyFuncName(int& iVar);
Если именно в hex, то string. В числовом варианте - DWORD(при форматировании можно использовать %p).
 
  • Нравится
Реакции: Gabriel__

Bane

Новичок
2
0
Пытаюсь сделать бота оружейника. Подскажите, как определить, что взял заготовку и что несёшь ящик? Анимация не меняется
 

Gabriel__

Известный
Проверенный
411
181
void anyFuncName(int& iVar);
Если именно в hex, то string. В числовом варианте - DWORD(при форматировании можно использовать %p).
Сдесь ты показал как передавать адрес памяти в функцию. Но не показал как её принимать.

Мне нужна такая функция которая принимает ссылку на переменную.
Например функция которая сохраняет координаты игрока XYZ.
Чтобы её реализовать нам нужно получать 3 параметра но мы не можем сделать так.
Код:
X, Y, Z = StorePlayerPos();
Нам нужно передавать в функцию ссылки на переменные. И функция через указатель (*) запишет координаты по этим адресам.
Код:
float player_x;
float player_y;
float player_z;
StorePlayerPos(&player_x, &player_y, &player_z);
И нужно чтобы при вводе функции высвечивалась подсказка и показывало что там нужно указывать ссылку на переменную. Это как sscanf(); там нужна ссылка на переменную.
 

san0

Известный
Друг
411
267
вот тут я self->fTargetRotation = rot; разворачиваю своего игрока в сторону ротации другого игрока мне нужно не разворачивать игрока а моментально выставить угол по z
угол поворота записан в радианах по адресу CPed +0x558. Конвертация в радианы есть в классе CVector
 

C&J

Известный
41
22
Здравствуйте.
1.Ваш вопрос :Как можно включить и выключить Ноп 'SendClientMessage',через Asi?
И как сделать запрос,о открытия северного диалога и нажатие на определённую кнопку?
И если вас не затруднит,скиньте пример код.
 
Последнее редактирование:

Gabriel__

Известный
Проверенный
411
181
Помогите! Как перезаписать/записать определенные байты в память (дамп).
Этот как в отладчике видим такое.
fb54ae11566a.jpg

Короче мне нужно заменить эти байты (выделено красным) в памяти на свои. Как это сделать ? Помогите!
 

PoccoJI

Новичок
135
10
Помогите! Как перезаписать/записать определенные байты в память (дамп).
Этот как в отладчике видим такое.
fb54ae11566a.jpg

Короче мне нужно заменить эти байты (выделено красным) в памяти на свои. Как это сделать ? Помогите!
Код:
*(byte*)0x8BC010 = 0x?
как-то так
 

Gabriel__

Известный
Проверенный
411
181
memcpy((void*)(0x008BC010), (char*)("\x2B\x01\x00\x00\x2B\x01"), 6);
Пробовал и то и это игра вылетает. Хотел заменить ассемблерные инструкции на свои. Типо функция которая отнимает патроны заменить на NOP это байт 0x90. Может какие то memory protect поставить ? Вообщем это уже относится к геймхакингу.
 

0pc0d3R

Потрачен
550
269
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вот тут я self->fTargetRotation = rot; разворачиваю своего игрока в сторону ротации другого игрока мне нужно не разворачивать игрока а моментально выставить угол по z
если тебя не смутит клео обработчик SF->getCLEO()->callOpcode("0173: set_actor $PLAYER_ACTOR Z_angle_to %f", zangle);