Показать сообщение отдельно

  #5  
Старый 10.06.2019, 19:36
Cake_
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами: 4793630

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

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

как эмулировать нажатие клавишы N без зависания игры в mainloop с повторением ?
emulategtakey, синхра, win api функции + timer

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

как эмулировать нажатие клавишы N без зависания игры в mainloop с повторением ?
C++:





Код:
void
EmulKey
(
int
KeyId
)
{
stOnFootData sync
;
memset
(
&
sync
,
0
,
sizeof
(
stOnFootData
)
)
;
sync
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
;
sync
.
sKeys
=
KeyId
;
BitStream bsActorSync
;
bsActorSync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bsActorSync
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bsActorSync
)
;
}


Эмуляция с помощью синхры


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

emulategtakey, синхра, win api функции + timer

C++:





Код:
void
EmulKey
(
int
KeyId
)
{
stOnFootData sync
;
memset
(
&
sync
,
0
,
sizeof
(
stOnFootData
)
)
;
sync
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
;
sync
.
sKeys
=
KeyId
;
BitStream bsActorSync
;
bsActorSync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bsActorSync
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bsActorSync
)
;
}


Эмуляция с помощью синхры
C++:





Код:
static
int
time
=
0
;
if
(
GetTickCount
(
)
-
1000
>
time
)
{
time
=
GetTickCount
(
)
;
EmulKey
(
/* id клавиши */
)
;
}
// эмуляция нажатия клавиши 1 раз в секунду


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