
30.12.2024, 23:49
|
|
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами:
4600979
Репутация:
83
|
|
Сообщение от Smeruxa
Как color перевести в RGB и обратно? Так же этот RGB передать в AddMessage (RefChat)
Очень поможет, может глупый вопрос, но все же
Не надо выдавать ответы гадая, будьте добры, мне нужен корректный ответ который написан не на рандом, что color состоит из r g b давайте разобьем и т.д.
Я несколько раз пытался, криво косо получается и не выдает нужный мне цвет, поэтому пришел сюда за помощью
C++:
Код:
rakhook
::
on_receive_rpc
+=
[
]
(
unsigned
char
&
id
,
RakNet
::
BitStream
*
bs
)
->
bool
{
if
(
id
==
93
)
{
bs
->
ResetReadPointer
(
)
;
uint32_t
color
;
bs
->
Read
(
color
)
;
вам нужно преобразовать int в HEX, а затем в RGB.[S]Проблема в том, что, насколько я проверил, цвет, который мы читаем, не соответствует цвету сообщения. Может быть, самп конвертирует int в hex по-другому?[/S]
Однако исходный формат — RGBA, а не RGB, отсюда и путаница. Это весь код, который меняет DWCOLOR на RGB и наоборот.
Жду вашей реакции 👍, пишите, если что-то не поняли.
dwcolor to rgb:
[CODE]
void
inttorgb
(
int
color
,
int
colors
[
3
]
)
{
colors
[
0
]
=
(
color
>>
16
)
&
0xFF
;
colors
[
1
]
=
(
color
>>
8
)
&
0xFF
;
colors
[
2
]
=
color
&
0xFF
;
}
case
RPC_ClientMessage
:
{
BitStream
bsData
(
rpcParams
->
input
,
rpcParams
->
numberOfBitsOfData
/
8
,
false
)
;
uint32_t
dwStrLen
;
uint32_t
dwColor
;
char
szMsg
[
1000
]
;
static
char
last_servermsg
[
256
]
;
static
DWORD allow_show_again
=
0
;
bsData
.
Read
(
dwColor
)
;
bsData
.
Read
(
dwStrLen
)
;
if
(
dwStrLen
>=
sizeof
(
szMsg
)
)
dwStrLen
=
sizeof
(
szMsg
)
-
1
;
bsData
.
Read
(
szMsg
,
dwStrLen
)
;
szMsg
[
dwStrLen
]
=
'\0'
;
std
::
stringstream ss
;
ss
[S]

[/S]
|
|
|