
11.07.2023, 12:48
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от reussssya
Можно ли как-то в realtime хукать функции и вообще работать с памятью? Пробовал консольным приложением менять че-то (используя SAMP-API c++), но не получалось, хотя с длл все норм. Можете, пожалуйста, обьяснить, что я делаю не так?
а как то можно не в "realtime"?
вероятно ты писал в память своей проги а не игры
|
|
|

11.07.2023, 19:16
|
|
Новичок
Регистрация: 12.03.2023
Сообщений: 28
С нами:
1671509
Репутация:
3
|
|
Сообщение от F0RQU1N and
а как то можно не в "realtime"?
вероятно ты писал в память своей проги а не игры
Дигерман сверху правильно меня понял, хотел сделать external process
|
|
|

13.07.2023, 11:44
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от reussssya
Можно ли как-то в realtime хукать функции и вообще работать с памятью? Пробовал консольным приложением менять че-то (используя SAMP-API c++), но не получалось, хотя с длл все норм. Можете, пожалуйста, обьяснить, что я делаю не так?
Читать и писать память достаточно легко, для этого есть ReadProcessMemory и WriteProcessMemory. С хуками сложнее, тут надо ставить брейкпоинты, либо инжектить код с установкой хуков и пробросом сообщений в твоё приложение (например через сокеты). Это будет работать достаточно медленно, так что не рекомендую ставить хуки из внешнего приложения. Напомню что External приложения не должны редактировать память процесса, чтобы не быть обнаруженными.
|
|
|

15.07.2023, 14:10
|
|
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами:
2315345
Репутация:
48
|
|
В sf есть какой нибудь аналог getAllChars() из муна?
|
|
|

15.07.2023, 14:29
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
Сообщение от Z3roKwq
В sf есть какой нибудь аналог getAllChars() из муна?
Перебор всех идов на сервере, получение их CPed и проверять что структуры не равны nullptr
|
|
|

15.07.2023, 16:00
|
|
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами:
2315345
Репутация:
48
|
|
Сообщение от ARMOR
Перебор всех идов на сервере, получение их CPed и проверять что структуры не равны nullptr
Ну это я знаю, но на радмире этот способ не особо работает
|
|
|

15.07.2023, 19:19
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Z3roKwq
Ну это я знаю, но на радмире этот способ не особо работает
Работает
|
|
|

15.07.2023, 19:28
|
|
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами:
2315345
Репутация:
48
|
|
Сообщение от kin4stat
Работает
я наверное не то чето сказал, поэтому проще будет на примере, мне нужно получить позицию нпс, как это сделать?
|
|
|

15.07.2023, 23:44
|
|
Познающий
Регистрация: 29.09.2021
Сообщений: 82
С нами:
2433639
Репутация:
23
|
|
Имеются проблемы с выводом hp другого персонажа
Вот этот код постоянно выводит значение 1000
C++:
Код:
CPed
*
aPed
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
iPlayerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;
float
fbarr
=
aPed
->
m_fHealth
;
А этот код показывает hp не точно, там постоянно меньше чем на самом деле есть, причем как то рандомно, когда hp 100 он покажет 100, но по мере уменьшения оно становится все менее точно.
C++:
Код:
float
fHealth
=
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
iPlayerID
]
->
pPlayerData
->
fActorHealth
;
Может кто знает как нормально вывести hp другого перса
|
|
|

15.07.2023, 23:57
|
|
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами:
4609424
Репутация:
183
|
|
Сообщение от Desyge
Вот этот код постоянно выводит значение 1000
C++:
Код:
CPed
*
aPed
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
iPlayerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;
float
fbarr
=
aPed
->
m_fHealth
;
так устроен самп. он хранит значения здоровьев в своих пулах
Сообщение от Desyge
А этот код показывает hp не точно, там постоянно меньше чем на самом деле есть, причем как то рандомно, когда hp 100 он покажет 100, но по мере уменьшения оно становится все менее точно.
C++:
Код:
float
fHealth
=
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
iPlayerID
]
->
pPlayerData
->
fActorHealth
;
всё дело в том, как калкор хранит значения хп и брони в синхронизации. не исправить
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|