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

  #1781  
Старый 19.08.2017, 12:16
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

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

Цитата:
Сообщение от Снежок  

C++:





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


Пытаюсь отправить нажатие клавиши N через синхру, но почему-то именно эта клавиша (а ещё Y) не отсылается (при нажатии sKeys остаётся 0), но при этом если заноппить "ноги", сервер перестанет реагировать на нажатие, что говорит о том что оно отсылается-таки через них.
Ну и вопрос: что не так? коды клавиш взял отсюда, способ заполнения и отправки взял отсюда, даже на всякий проверил на соответствие правильному варианту структуры samp.lua
На сколько я помню нажатие Y передаётся в currentWeapon, скорее всего нажатие N передаётся аналогичным образом.
 
Ответить с цитированием

  #1782  
Старый 19.08.2017, 12:24
BlackKnigga
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами: 5441999

Репутация: 133


По умолчанию

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

На сколько я помню нажатие Y передаётся в currentWeapon, скорее всего нажатие N передаётся аналогичным образом.
Да, так и есть

Цитата:
Сообщение от Снежок  

C++:





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


Пытаюсь отправить нажатие клавиши N через синхру, но почему-то именно эта клавиша (а ещё Y) не отсылается (при нажатии sKeys остаётся 0), но при этом если заноппить "ноги", сервер перестанет реагировать на нажатие, что говорит о том что оно отсылается-таки через них.
Ну и вопрос: что не так? коды клавиш взял отсюда, способ заполнения и отправки взял отсюда, даже на всякий проверил на соответствие правильному варианту структуры samp.lua
Вот тебе функция:

C++:





Код:
void
EmulKey
(
int
KeyId
)
{
stOnFootData sync
;
memset
(
&
sync
,
0
,
sizeof
(
stOnFootData
)
)
;
sync
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
;
sync
.
byteCurrentWeapon
=
KeyId
;
BitStream bsActorSync
;
bsActorSync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bsActorSync
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bsActorSync
)
;
memset
(
&
bsActorSync
,
0
,
sizeof
(
BitStream
)
)
;
sync
.
byteCurrentWeapon
=
0
;
bsActorSync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
bsActorSync
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
bsActorSync
)
;
}
 
Ответить с цитированием

  #1783  
Старый 19.08.2017, 21:41
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

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

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

Да, так и есть

Вот тебе функция:

C++:





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

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

  #1784  
Старый 19.08.2017, 22:01
BlackKnigga
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами: 5441999

Репутация: 133


По умолчанию

Цитата:
Сообщение от Снежок  

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

  #1785  
Старый 19.08.2017, 22:07
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Все правильно, сначала отправляем зажатую клавишу, потом отжатую. Это надежнее чем простой спам пакетами
он сам отправит отжатую же. Ты ведь не держишь клавишу. И почему KeyId - int, если CurrentWeapon всего байт?
 
Ответить с цитированием

  #1786  
Старый 19.08.2017, 22:09
BlackKnigga
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами: 5441999

Репутация: 133


По умолчанию

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

он сам отправит отжатую же. Ты ведь не держишь клавишу. И почему KeyId - int, если CurrentWeapon всего байт?
Заодно и убережет от зажатой клавишы тогда.

А по второму - функция не моя, нашел тут и скинул
 
Ответить с цитированием

  #1787  
Старый 20.08.2017, 15:47
sаnеk
Флудер
Регистрация: 22.11.2015
Сообщений: 2,128
С нами: 5512984

Репутация: 183


По умолчанию

как прочитать 99 строчку из чата?
 
Ответить с цитированием

  #1788  
Старый 20.08.2017, 15:50
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от sanek a.k.a Maks_Fender  

как прочитать 99 строчку из чата?
Если строки чата хранятся в массиве, то наверно нужно прочитать массив по индексу 99.
 
Ответить с цитированием

  #1789  
Старый 20.08.2017, 15:51
sаnеk
Флудер
Регистрация: 22.11.2015
Сообщений: 2,128
С нами: 5512984

Репутация: 183


По умолчанию

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

Если строки чата хранятся в массиве, то наверно нужно прочитать массив по индексу 99.
есть где функи посмотреть?
 
Ответить с цитированием

  #1790  
Старый 20.08.2017, 15:56
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Цитата:
Сообщение от sanek a.k.a Maks_Fender  

есть где функи посмотреть?
Какие функи? Получаешь указатель на массив, читаешь его.
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.