 |
|

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

15.07.2023, 21:13
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Z3roKwq
я наверное не то чето сказал, поэтому проще будет на примере, мне нужно получить позицию нпс, как это сделать?
CActorPool
|
|
|

15.07.2023, 21:53
|
|
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами:
2315345
Репутация:
48
|
|
Сообщение от kin4stat
CActorPool
Буду очень благодарен, если пример кода скинеш
|
|
|

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
;
всё дело в том, как калкор хранит значения хп и брони в синхронизации. не исправить
|
|
|

16.07.2023, 05:24
|
|
Новичок
Регистрация: 25.05.2023
Сообщений: 2
С нами:
1565633
Репутация:
1
|
|
как получить состояние прицела(разширен он или нет.)
|
|
|

16.07.2023, 16:21
|
|
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами:
3022568
Репутация:
68
|
|
C++:
[CODE]
#include
#include
#include
static
HMODULE
(
WINAPI
*
TrueLoadLibrary
)
(
LPCWSTR lpLibFileName
)
=
LoadLibraryW
;
HMODULE WINAPI
DetouredLoadLibrary
(
LPCWSTR lpLibFileName
)
{
HMODULE res
=
TrueLoadLibrary
(
lpLibFileName
)
;
MessageBoxW
(
NULL
,
lpLibFileName
,
L
"Detoured!"
,
MB_OK
|
MB_ICONEXCLAMATION
)
;
return
res
;
}
void
SetGlobalHook
(
)
{
// Получение адреса оригинальной функции LoadLibraryW из kernel32.dll
TrueLoadLibrary
=
reinterpret_cast
(
GetProcAddress
(
GetModuleHandle
(
TEXT
(
"kernel32.dll"
)
)
,
"LoadLibraryW"
)
)
;
// Установка хука
DetourTransactionBegin
(
)
;
DetourUpdateThread
(
GetCurrentThread
(
)
)
;
DetourAttach
(
&
(
PVOID
&
)
TrueLoadLibrary
,
DetouredLoadLibrary
)
;
DetourTransactionCommit
(
)
;
}
// Функция для удаления глобального хука
void
RemoveGlobalHook
(
)
{
// Удаление хука
DetourTransactionBegin
(
)
;
DetourUpdateThread
(
GetCurrentThread
(
)
)
;
DetourDetach
(
&
(
PVOID
&
)
TrueLoadLibrary
,
DetouredLoadLibrary
)
;
DetourTransactionCommit
(
)
;
}
int
main
(
)
{
// Установка глобального хука
SetGlobalHook
(
)
;
// Ждем нажатия клавиши перед удалением хука
std
::
cout
не работает глобально, что не так? есть такая же версия только в формате длл и без
C++:
Код:
TrueLoadLibrary
=
reinterpret_cast
(
GetProcAddress
(
GetModuleHandle
(
TEXT
(
"kernel32.dll"
)
)
,
"LoadLibraryW"
)
)
;
и все работает
|
|
|

16.07.2023, 16:47
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от ччбчлчлчъ ччччшчьпьппзвжв
C++:
Код:
#include
#include
#include
static
HMODULE
(
WINAPI
*
TrueLoadLibrary
)
(
LPCWSTR lpLibFileName
)
=
LoadLibraryW
;
HMODULE WINAPI
DetouredLoadLibrary
(
LPCWSTR lpLibFileName
)
{
HMODULE res
=
TrueLoadLibrary
(
lpLibFileName
)
;
MessageBoxW
(
NULL
,
lpLibFileName
,
L
"Detoured!"
,
MB_OK
|
MB_ICONEXCLAMATION
)
;
return
res
;
}
void
SetGlobalHook
(
)
{
// Получение адреса оригинальной функции LoadLibraryW из kernel32.dll
TrueLoadLibrary
=
reinterpret_cast
(
GetProcAddress
(
GetModuleHandle
(
TEXT
(
"kernel32.dll"
)
)
,
"LoadLibraryW"
)
)
;
// Установка хука
DetourTransactionBegin
(
)
;
DetourUpdateThread
(
GetCurrentThread
(
)
)
;
DetourAttach
(
&
(
PVOID
&
)
TrueLoadLibrary
,
DetouredLoadLibrary
)
;
DetourTransactionCommit
(
)
;
}
// Функция для удаления глобального хука
void
RemoveGlobalHook
(
)
{
// Удаление хука
DetourTransactionBegin
(
)
;
DetourUpdateThread
(
GetCurrentThread
(
)
)
;
DetourDetach
(
&
(
PVOID
&
)
TrueLoadLibrary
,
DetouredLoadLibrary
)
;
DetourTransactionCommit
(
)
;
}
int
main
(
)
{
// Установка глобального хука
SetGlobalHook
(
)
;
// Ждем нажатия клавиши перед удалением хука
std
::
cout
(
GetProcAddress
(
GetModuleHandle
(
TEXT
(
"kernel32.dll"
)
)
,
"LoadLibraryW"
)
)
;
и все работает
а в чем смысл? ты же в своем приложении хукаешь
|
|
|

16.07.2023, 16:52
|
|
Постоянный
Регистрация: 16.08.2020
Сообщений: 553
С нами:
3022568
Репутация:
68
|
|
Сообщение от F0RQU1N and
а в чем смысл? ты же в своем приложении хукаешь
я хочу глобально хукать функцию LoadLibraryW
|
|
|

16.07.2023, 16:58
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от ччбчлчлчъ ччччшчьпьппзвжв
я хочу глобально хукать функцию LoadLibraryW
драйвер делай тогда
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|