PDA

Просмотр полной версии : Замена Загрузочного Экрана SAMP


vmprotect
13.11.2024, 10:19
Попробовал снова заменить загрузочный экран в сампе, но пока безуспешно.

Прикрепляю код ниже. Возможно, проблема в том, что я делаю замену в обычной гташке а не в сампе.

Подскажите, как можно отследить момент рендеринга загрузочного экрана именно в сампе

HOOK LOADSCS:





[CODE]
using
CTxdStore__LoadTxd
=
bool
(
__cdecl
*
)
(
int
index
,
char
const
*
filename
)
;
kthook
::
kthook_simple

CTxdStore__LoadTxd_Hook
;
bool
CLoadScreen_HOOK
(
const
decltype
(
CTxdStore__LoadTxd_Hook
)
&
hook
,
int
index
,
const
char
*
filename
)
{
if
(
strcmp
(
filename
,
"loadscs.txd"
)
==
0
)
{
std
::
cout

Receiver
13.11.2024, 19:19
Привет! Есть готовый плагин SR_Team'а выпущенный ещё в 2017 году. Можешь посмотреть его исходный код.

ASI - CustomLoadScreen (https://www.blast.hk/threads/18334/)

Плагин заменяет унылый загрузочный экран на еще более унылый, но уже по вашей вине, а не каких-то там дядичек. Картинка загрузочного экрана хранится в файле CustomLoadScreen.png (ебать неожиданно, да?). Она может быть любого размера. Скачать...

www.blast.hk

vmprotect
13.11.2024, 19:25
Привет! Есть готовый плагин SR_Team'а выпущенный ещё в 2017 году. Можешь посмотреть его исходный код.

ASI - CustomLoadScreen (https://www.blast.hk/threads/18334/)

Плагин заменяет унылый загрузочный экран на еще более унылый, но уже по вашей вине, а не каких-то там дядичек. Картинка загрузочного экрана хранится в файле CustomLoadScreen.png (ебать неожиданно, да?). Она может быть любого размера. Скачать...

www.blast.hk



он использует QT библиотеки и d3d9 для рендера текстуры, разве нельзя просто через хук заменить ?

Receiver
13.11.2024, 19:49
он использует QT библиотеки и d3d9 для рендера текстуры, разве нельзя просто через хук заменить ?


Библиотеки Qt используются в двух местах: в хуке рендера для сигнала, и для получения имени файла. Это можно спокойно убрать/заменить.

Что касается замены в хуке, то с этим есть проблема. SA:MP хранит собственный загрузочный экран в зашифрованном архиве

samp.saa

, в файле

loadscs.txd

.

В теории ты действительно можешь хукнуть загрузку TXD и подменить файл, но не факт. Думаю что SR_Team не с проста сделал именно так.

Кстати, замена экрана загрузки ещё реализована в s0beit. Его исходники есть на просторах, тоже можешь глянуть.