
09.03.2024, 22:13
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами:
4272230
Репутация:
183
|
|
Сообщение от why ega
Если коротко, мне надо сделать хук на рендер объектов и если они приаттачены ко мне - пропускать отрисовку, в псдк немного покопался, не нашел того, что надо. Решил сделать путем получения всех аксессуаров и сравнения их с тем, что рендерится
C++:
Код:
void
__cdecl CPlugin
::
CRendererRenderOneNonRoadHooked
(
const
decltype
(
CRendererRenderOneNonRoadHook
)
&
hook
,
uintptr_t
*
pEntity
)
{
char
entityType
=
*
reinterpret_cast
(
*
pEntity
+
0x36
)
&
7
;
if
(
entityType
==
eEntityType
::
ENTITY_TYPE_OBJECT
&&
GetKeyState
(
VK_RBUTTON
)
&
0x8000
)
{
for
(
int
i
=
0
;
i
GetPlayerPool
(
)
->
m_localInfo
.
m_pObject
->
m_pPed
->
m_accessories
.
m_pObject
[
i
]
;
uintptr_t
*
pAccessoriesEntity
=
reinterpret_cast
(
pObject
->
m_pGameEntity
)
;
// HUY PIZDA ZALUPA ERROR
if
(
pEntity
==
pAccessoriesEntity
)
return
;
}
}
hook
.
get_trampoline
(
)
(
pEntity
)
;
}
тебе просто нужен plugin-SDK чтобы определялся игровой CObject, в sampapi нет игровых структур, вместо них заглушки
|
|
|

10.03.2024, 00:15
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от Musaigen
тебе просто нужен plugin-SDK чтобы определялся игровой CObject, в sampapi нет игровых структур, вместо них заглушки
Если я правильно понял, CObject наследуется от Entity. Как его можно сравнить с нужной мне сущностью, которая передается в мой хук?
возможно я туплю, но вроде как туда передается самповский CObject

|
|
|

10.03.2024, 20:54
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Попробовал провернуть такой код, но странно, что объекты все равно продолжают рендериться:
C++:
Код:
void
__cdecl CPlugin
::
CRendererRenderOneNonRoadHooked
(
const
decltype
(
CRendererRenderOneNonRoadHook
)
&
hook
,
uintptr_t
*
pEntity
)
{
char
entityType
=
*
reinterpret_cast
(
*
pEntity
+
0x36
)
&
7
;
if
(
entityType
==
eEntityType
::
ENTITY_TYPE_OBJECT
&&
GetKeyState
(
VK_RBUTTON
)
&
0x8000
)
{
for
(
int
i
=
0
;
i
GetPlayerPool
(
)
;
if
(
pPlayerPool
!=
nullptr
&&
pPlayerPool
->
m_localInfo
.
m_pObject
!=
nullptr
&&
pPlayerPool
->
m_localInfo
.
m_pObject
->
m_pPed
!=
nullptr
)
{
CObject
*
pObject
=
pPlayerPool
->
m_localInfo
.
m_pObject
->
m_pPed
->
m_accessories
.
m_pObject
[
i
]
;
if
(
pObject
!=
nullptr
)
{
// 0x40 - m_pGameEntity
uintptr_t
*
pAccessoriesEntity
=
reinterpret_cast
(
*
reinterpret_cast
(
pObject
)
+
0x40
)
;
if
(
pEntity
!=
nullptr
&&
pEntity
==
pAccessoriesEntity
)
return
;
}
}
}
}
}
hook
.
get_trampoline
(
)
(
pEntity
)
;
}
|
|
|

12.03.2024, 10:00
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
ищу оффсет текста "SA-MP 0.3.7-R3 Started..."
|
|
|

12.03.2024, 14:55
|
|
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами:
2315345
Репутация:
48
|
|
Сообщение от skrrt
ищу оффсет текста "SA-MP 0.3.7-R3 Started..."
Код:
Код:
GetModuleHandleA("samp.dll") + 0xE596C
|
|
|

12.03.2024, 20:53
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
Сообщение от Z3roKwq
Код:
Код:
GetModuleHandleA("samp.dll") + 0xE596C
а текста "Connecting to" есть оффсет? если есть скинь плиз
|
|
|

13.03.2024, 00:28
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от skrrt
а текста "Connecting to" есть оффсет? если есть скинь плиз
если сама строка, то samp.dll + 0xE599C, если то, где передается ссылка на нее, то здесь: samp.dll + 0x85FE. Советую, скачать IDA и самому посмотреть оффсеты строк, это довольно легко
|
|
|

13.03.2024, 21:33
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
как в нынешней версии kthook'a используется kthook_simple ?
пример
C++:
Код:
samp_init_hook
.
after
.
connect
(
HOOK_after_samp_init
)
в нынешней версии after, before, connect нету, каким образом можно использовать эту функцию?
|
|
|

13.03.2024, 21:36
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от skrrt
как в нынешней версии kthook'a используется kthook_simple ?
пример
C++:
Код:
samp_init_hook
.
after
.
connect
(
HOOK_after_samp_init
)
в нынешней версии after, before, connect нету, каким образом можно использовать эту функцию?
MoonDownLoadHook/src/main.hpp at main · whyega/MoonDownLoadHook
Contribute to whyega/MoonDownLoadHook development by creating an account on GitHub.
github.com
|
|
|

16.03.2024, 16:57
|
|
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами:
2453766
Репутация:
68
|
|
как через samp api получать никнейм игрока?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|