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

  #1  
Старый 27.03.2021, 21:07
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

можно зарендерить на текстуру и потом растянуть ее
Это да, но тогда надо шрифт в текстуру конвертить. В целом, так в большинстве игр используется, но был вопрос задан о шрифте чистом.
 
Ответить с цитированием

  #2  
Старый 27.03.2021, 21:20
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

Это да, но тогда надо шрифт в текстуру конвертить.
Неа, имгуи поддерживает рендер на текстуре
 
Ответить с цитированием

  #3  
Старый 26.03.2021, 13:15
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

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

ImVec4(r,g,b,alpha);

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

  #4  
Старый 27.03.2021, 15:53
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

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

Как поставить хук на входящие RPC? Такой код крашит

C++:





Код:
void
HandleRPCPacketFunc
(
unsigned
char
id
,
RPCParameters
*
rpcParams
,
void
(
*
callback
)
(
RPCParameters
*
)
)
{
if
(
rpcParams
!=
nullptr
&&
rpcParams
->
numberOfBitsOfData
>=
8
)
{
switch
(
id
)
{
case
93
:
{
pSAMP
->
addMessageToChat
(
-
1
,
"chat msg"
)
;
break
;
}
}
}
callback
(
rpcParams
)
;
}
uint8_t
_declspec
(
naked
)
hook_handle_rpc_packet
(
void
)
{
static
RPCParameters
*
pRPCParams
=
nullptr
;
static
RPCNode_
*
pRPCNode
=
nullptr
;
static
DWORD dwTmp
=
0
;
__asm pushad
;
__asm mov pRPCParams
,
eax
;
__asm mov pRPCNode
,
edi
;
HandleRPCPacketFunc
(
pRPCNode
->
uniqueIdentifier
,
pRPCParams
,
pRPCNode
->
staticFunctionPointer
)
;
dwTmp
=
pSAMP
->
g_SAMPAddr
(
)
+
0x37443
;
__asm popad
;
__asm add esp
,
4
// overwritten code
__asm jmp dwTmp
;
}
Memory
::
CreateJump
(
(
BYTE
*
)
(
pSAMP
->
g_SAMPAddr
(
)
+
0xFF5701
)
,
(
DWORD
)
&
hook_handle_rpc_packet
,
6U
)
;


CreateJump:

C++:





[CODE]
void
Memory
::
CreateJump
(
BYTE
*
pAddress
,
DWORD dwJumpTo
,
DWORD dwLen
)
{
DWORD dwOldProtect
,
dwBkup
,
dwRelAddr
;
VirtualProtect
(
pAddress
,
dwLen
,
PAGE_EXECUTE_READWRITE
,
&
dwOldProtect
)
;
dwRelAddr
=
(
DWORD
)
(
dwJumpTo
-
(
DWORD
)
pAddress
)
-
5
;
*
pAddress
=
0xE9
;
*
(
(
DWORD
*
)
(
pAddress
+
0x1
)
)
=
dwRelAddr
;
for
(
DWORD x
=
0x5
;
x



Уже разобрался. Инициализация такая:

C++:





Код:
BYTE
*
bytes
=
(
BYTE
*
)
"\xFF\x57\x01"
;
Memory
::
memcmp_safe
(
(
uint8_t
*
)
pSAMP
->
g_SAMPAddr
(
)
+
0x3743D
,
bytes
,
3
)
;
Memory
::
CreateJump
(
(
BYTE
*
)
(
pSAMP
->
g_SAMPAddr
(
)
+
0x3743D
)
,
(
DWORD
)
&
hook_handle_rpc_packet
,
6U
)
;
 
Ответить с цитированием

  #5  
Старый 28.03.2021, 21:20
waffelo
Новичок
Регистрация: 03.06.2020
Сообщений: 27
С нами: 3129532

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

Добрый вечер, подскажите каким способом можно извлекать из pe файла ресурсы, к примеру dll и дропать её в temp файлы
 
Ответить с цитированием

  #6  
Старый 29.03.2021, 18:54
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

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

как получить ид самп игрока через указатель на CPed? использую plugin sdk
 
Ответить с цитированием

  #7  
Старый 31.03.2021, 03:54
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

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

как получить ид самп игрока через указатель на CPed? использую plugin sdk
SAMP-API/CPlayerPool.h at multiver · BlastHackNet/SAMP-API · GitHub

SAMP-API/CPlayerPool.cpp at multiver · BlastHackNet/SAMP-API · GitHub

самый простой способ это использовать метод который уже есть в сампе
 
Ответить с цитированием

  #8  
Старый 29.03.2021, 19:12
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

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

хз, мб как-то и связан, CPed же можно по иду получить

C++:





Код:
CPed
*
ped
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
playerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;
 
Ответить с цитированием

  #9  
Старый 29.03.2021, 19:13
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

хз, мб как-то и связан, CPed же можно по иду получить

C++:





Код:
CPed
*
ped
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
playerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;

потому что самп хранит эту информацию

Гта про самп вообще не знает, просто работает в обычном для себя режиме
 
Ответить с цитированием

  #10  
Старый 29.03.2021, 19:15
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

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

хз, мб как-то и связан, CPed же можно по иду получить

C++:





Код:
CPed
*
ped
=
CPools
::
GetPed
(
pSAMP
->
getPlayers
(
)
->
pRemotePlayer
[
playerID
]
->
pPlayerData
->
pSAMP_Actor
->
ulGTAEntityHandle
)
;

pSAMPPed или как его там и есть CPed
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.