
30.11.2025, 18:18
|
|
Познающий
Регистрация: 08.11.2023
Сообщений: 65
С нами:
1324882
Репутация:
23
|
|
Сообщение от yorenov
Альт как прожать? Так не воркает:
С++:
Код:
RakNet
::
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
Synchronization
::
OnfootData onfootData
{
}
;
std
::
memcpy
(
&
onfootData
,
&
RefNetGame
(
)
->
GetPlayerPool
(
)
->
GetLocalPlayer
(
)
->
m_onfootData
,
sizeof
(
Synchronization
::
OnfootData
)
)
;
onfootData
.
m_controllerState
.
m_bPedWalk
=
1
;
onfootData
.
m_controllerState
.
m_value
=
static_cast
(
1024
)
;
bs
.
Write
(
static_cast
(
ID_PLAYER_SYNC
)
)
;
bs
.
Write
(
reinterpret_cast
(
&
onfootData
)
,
sizeof
(
Synchronization
::
OnfootData
)
)
;
rakhook
::
send
(
&
bs
,
HIGH_PRIORITY
,
RELIABLE_SEQUENCED
,
1
)
;
onfootData
.
m_controllerState
.
m_bPedWalk
=
0
;
onfootData
.
m_controllerState
.
m_value
=
static_cast
(
0
)
;
bs
.
Write
(
static_cast
(
ID_PLAYER_SYNC
)
)
;
bs
.
Write
(
reinterpret_cast
(
&
onfootData
)
,
sizeof
(
Synchronization
::
OnfootData
)
)
;
rakhook
::
send
(
&
bs
,
HIGH_PRIORITY
,
RELIABLE_SEQUENCED
,
1
)
;
А так прожимает только 1 раз + ко всему - костыль
C++:
Код:
input
[
0
]
.
type
=
INPUT_KEYBOARD
;
input
[
0
]
.
ki
.
wVk
=
0
;
input
[
0
]
.
ki
.
dwFlags
=
KEYEVENTF_SCANCODE
;
input
[
0
]
.
ki
.
wScan
=
0x38
;
input
[
1
]
.
type
=
INPUT_KEYBOARD
;
input
[
1
]
.
ki
.
wVk
=
0
;
input
[
1
]
.
ki
.
dwFlags
=
KEYEVENTF_SCANCODE
|
KEYEVENTF_KEYUP
;
input
[
1
]
.
ki
.
wScan
=
0x38
;
SendInput
(
2
,
input
,
sizeof
(
INPUT
)
)
;
Актуально, как на синхре прожимать альт? Или я что то не так делаю? Вроде же m_value - это specialKey?
Сообщение от yorenov
Актуально, как на синхре прожимать альт? Или я что то не так делаю? Вроде же m_value - это specialKey?
m_value - short (16 бит), а я кастил к uint8_t, т.е.
1024 (0x0400) превращался в 0 у меня (низкий байт), и в итоге бит вообще не ставится))) + Я перезатирал все остальные клавиши, вместо того, чтобы просто добавить бит walk)
|
|
|