HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 09.03.2024, 22:13
Musaigen
Познавший АНТИЧАТ
Регистрация: 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 нет игровых структур, вместо них заглушки
 
Ответить с цитированием

  #2  
Старый 10.03.2024, 00:15
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Цитата:
Сообщение от Musaigen  

тебе просто нужен plugin-SDK чтобы определялся игровой CObject, в sampapi нет игровых структур, вместо них заглушки
Если я правильно понял, CObject наследуется от Entity. Как его можно сравнить с нужной мне сущностью, которая передается в мой хук?

возможно я туплю, но вроде как туда передается самповский CObject

 
Ответить с цитированием

  #3  
Старый 10.03.2024, 20:54
вайега52
Флудер
Регистрация: 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
)
;
}
 
Ответить с цитированием

  #4  
Старый 12.03.2024, 10:00
vmprotect
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами: 2453766

Репутация: 68
По умолчанию

ищу оффсет текста "SA-MP 0.3.7-R3 Started..."
 
Ответить с цитированием

  #5  
Старый 12.03.2024, 14:55
Z3roKwq
Участник форума
Регистрация: 20.12.2021
Сообщений: 290
С нами: 2315345

Репутация: 48
По умолчанию

Цитата:
Сообщение от skrrt  

ищу оффсет текста "SA-MP 0.3.7-R3 Started..."
Код:





Код:
GetModuleHandleA("samp.dll") + 0xE596C
 
Ответить с цитированием

  #6  
Старый 12.03.2024, 20:53
vmprotect
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами: 2453766

Репутация: 68
По умолчанию

Цитата:
Сообщение от Z3roKwq  

Код:





Код:
GetModuleHandleA("samp.dll") + 0xE596C

а текста "Connecting to" есть оффсет? если есть скинь плиз
 
Ответить с цитированием

  #7  
Старый 13.03.2024, 00:28
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Цитата:
Сообщение от skrrt  

а текста "Connecting to" есть оффсет? если есть скинь плиз
если сама строка, то samp.dll + 0xE599C, если то, где передается ссылка на нее, то здесь: samp.dll + 0x85FE. Советую, скачать IDA и самому посмотреть оффсеты строк, это довольно легко
 
Ответить с цитированием

  #8  
Старый 13.03.2024, 21:33
vmprotect
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами: 2453766

Репутация: 68
По умолчанию

как в нынешней версии kthook'a используется kthook_simple ?

пример







C++:





Код:
samp_init_hook
.
after
.
connect
(
HOOK_after_samp_init
)


в нынешней версии after, before, connect нету, каким образом можно использовать эту функцию?
 
Ответить с цитированием

  #9  
Старый 13.03.2024, 21:36
вайега52
Флудер
Регистрация: 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
 
Ответить с цитированием

  #10  
Старый 16.03.2024, 16:57
vmprotect
Постоянный
Регистрация: 15.09.2021
Сообщений: 396
С нами: 2453766

Репутация: 68
По умолчанию

как через samp api получать никнейм игрока?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...