
10.06.2019, 02:25
|
|
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами:
6483143
Репутация:
93
|
|
В c++ проекте на linux мне попалась вот такая интересная строка:
C++:
Код:
std
::
string mainXML
=
#include
"Main.xml"
;
Однако, в винде среда считает её ошибкой. Подскажите, есть вариант в винде так же через дефайн загружать содержимое файла в string, без открытия и чтения?
|
|
|

10.06.2019, 06:59
|
|
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами:
4793630
Репутация:
133
|
|
Сообщение от ishi
В c++ проекте на linux мне попалась вот такая интересная строка:
C++:
Код:
std
::
string mainXML
=
#include
"Main.xml"
;
Однако, в винде среда считает её ошибкой. Подскажите, есть вариант в винде так же через дефайн загружать содержимое файла в string, без открытия и чтения?
Чем тебе с чтением не нравится?
|
|
|

10.06.2019, 12:27
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от ishi
В c++ проекте на linux мне попалась вот такая интересная строка:
C++:
Код:
std
::
string mainXML
=
#include
"Main.xml"
;
Однако, в винде среда считает её ошибкой. Подскажите, есть вариант в винде так же через дефайн загружать содержимое файла в string, без открытия и чтения?
file.cpp
C++:
Код:
R"(int function(int a , int b){
return a + b;
})"
main.cpp
C++:
Код:
int
main
(
)
{
const
char
*
file
=
{
#include "file.h"
}
;
printf
(
"%s\n"
,
file
)
;
system
(
"pause"
)
;
return
0
;
}
|
|
|

10.06.2019, 19:02
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
как эмулировать нажатие клавишы N без зависания игры в mainloop с повторением ?
|
|
|

10.06.2019, 19:36
|
|
Участник форума
Регистрация: 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 раз в секунду
|
|
|

11.06.2019, 11:24
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от 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 раз в секунду
и какой ид клавиши N ?
|
|
|

12.06.2019, 20:29
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от cakebou
Хукай онфут дату (id_player_sync )и выводи значение клавиши .
, я с телефона щас так бы написал код
не ебу как это сделать, не работал с пакетами, запрашиваю у вас код клавиши
|
|
|

12.06.2019, 22:03
|
|
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами:
4183567
Репутация:
133
|
|
Сообщение от Rece1ver
не ебу как это сделать, не работал с пакетами, запрашиваю у вас код клавиши
С твоим "не ебу как сделать", ты ничего не добьешься. Хукай пакет ID_PLAYER_SYNC выводя в чат параметр stKeys
|
|
|

14.06.2019, 17:43
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от Rjx13
С твоим "не ебу как сделать", ты ничего не добьешься. Хукай пакет ID_PLAYER_SYNC выводя в чат параметр stKeys
при нажатии на N - 0, при нажатии на пробел - 32
C++:
Код:
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
PacketEnumeration
::
ID_PLAYER_SYNC
)
{
stOnFootData data
;
// определяем объект, в который сохраним отправляемые данные
memset
(
&
data
,
0
,
sizeof
(
stOnFootData
)
)
;
// обнуляем его
byte packet
;
params
->
bitStream
->
ResetReadPointer
(
)
;
// на всякий случай устанавливаем оффсет чтения на начало
params
->
bitStream
->
Read
(
packet
)
;
// читаем ID пакета
params
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
// читаем отправляемые данные
params
->
bitStream
->
ResetReadPointer
(
)
;
// снова обнуляем оффсет чтения
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
255
,
255
,
0
)
,
"nazhata klavisha: %d"
,
data
.
sKeys
)
;
// выводим ***ню на экран
}
;
return
true
;
// успешно завершаем отправку пакета
}
;
|
|
|

14.06.2019, 19:06
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от Rece1ver
при нажатии на N - 0, при нажатии на пробел - 32
C++:
Код:
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
PacketEnumeration
::
ID_PLAYER_SYNC
)
{
stOnFootData data
;
// определяем объект, в который сохраним отправляемые данные
memset
(
&
data
,
0
,
sizeof
(
stOnFootData
)
)
;
// обнуляем его
byte packet
;
params
->
bitStream
->
ResetReadPointer
(
)
;
// на всякий случай устанавливаем оффсет чтения на начало
params
->
bitStream
->
Read
(
packet
)
;
// читаем ID пакета
params
->
bitStream
->
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
// читаем отправляемые данные
params
->
bitStream
->
ResetReadPointer
(
)
;
// снова обнуляем оффсет чтения
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
255
,
255
,
0
)
,
"nazhata klavisha: %d"
,
data
.
sKeys
)
;
// выводим ***ню на экран
}
;
return
true
;
// успешно завершаем отправку пакета
}
;
Нажатия клавиш N и Y передаются через элемент byteCurrentWeapon, номер клавиши N - 128
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|