
22.05.2017, 18:34
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
|
|
|

22.05.2017, 19:00
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Это получение пакетов синхронизации других игроков, а мне нужен пакет RPC_ScrApplyAnimation, который посылает сервер конкретно мне.
|
|
|

22.05.2017, 19:07
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Удали чтения ида. Все входящие РПЦ только для тебя будут работать.
|
|
|

22.05.2017, 19:27
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Сообщение от Dark_Knight
Удали чтения ида. Все входящие РПЦ только для тебя будут работать.
PlayerSync это не РПЦ, это просто пакет. Сервер посылает мне только пакеты других игроков, тех которые находятся рядом со мной. Пакеты с моей синхронизацией сервер мне не посылает, да и зачем ему посылать мне обратно тот пакет, который я ему только что отправил.
|
|
|

22.05.2017, 19:33
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Йобанный врот билять. PlayerSync только есть ид анимации и её флаг. Ни названия анимки, ни библиотеки, где эта анимация хранится.
|
|
|

22.05.2017, 19:45
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Сообщение от Dark_Knight
Йобанный врот билять. PlayerSync только есть ид анимации и её флаг. Ни названия анимки, ни библиотеки, где эта анимация хранится.
Я знаю, что есть в PlayerSync. Я же говорю, я не могу получить свой PlayerSync. Я его должен САМ заполнить и отправить серверу. И отправлять примерно раз в 40мс. Единственный способ узнать какую анимацию мне присвоил сервер, это получить РПЦ.
|
|
|

22.05.2017, 19:55
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от winrare
Я знаю, что есть в PlayerSync. Я же говорю, я не могу получить свой PlayerSync. Я его должен САМ заполнить и отправить серверу. И отправлять примерно раз в 40мс. Единственный способ узнать какую анимацию мне присвоил сервер, это получить РПЦ.
Можешь хукать свой исходящий player_sync
|
|
|

22.05.2017, 20:01
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Сообщение от BlackKnigga
Можешь хукать свой исходящий player_sync
Я все это делаю в RakSAMP,е, я сам должен заполнять свой PlayerSync, если я его не заполню данными о своей анимации (которые я должен получить из РПЦ), то просто отправлю нулевой ид анимации.
|
|
|

22.05.2017, 20:38
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от winrare
Я все это делаю в RakSAMP,е, я сам должен заполнять свой PlayerSync, если я его не заполню данными о своей анимации (которые я должен получить из РПЦ), то просто отправлю нулевой ид анимации.
Lua:
Код:
INCOMING_RPCS
[
RPC
.
APPLYANIMATION
]
=
{
'onApplyPlayerAnimation'
,
{
playerId
=
'int16'
}
,
{
animLib
=
'string8'
}
,
{
animName
=
'string8'
}
,
{
loop
=
'bool'
}
,
{
lockX
=
'bool'
}
,
{
lockY
=
'bool'
}
,
{
freeze
=
'bool'
}
,
{
time
=
'int32'
}
}
Из samp.lua
|
|
|

23.05.2017, 18:32
|
|
Познающий
Регистрация: 24.02.2017
Сообщений: 75
С нами:
4849680
Репутация:
0
|
|
Нашел решение проблемы, оказалось что у BitStream есть метод ReadBit, который считывает ровно один бит и записывает его в bool. Вот рабочий код.
C++:
Код:
WORD playerId
;
BYTE animLibLenght
;
char
animLib
[
257
]
;
BYTE animNameLenght
;
char
animName
[
257
]
;
float
delta
;
bool
loop
,
lockX
,
lockY
,
freeze
;
WORD time
;
bsData
.
Read
(
playerId
)
;
bsData
.
Read
(
animLibLenght
)
;
bsData
.
Read
(
animLib
,
animLibLenght
)
;
animLib
[
animLibLenght
]
=
'\0'
;
bsData
.
Read
(
animNameLenght
)
;
bsData
.
Read
(
animName
,
animNameLenght
)
;
animName
[
animNameLenght
]
=
'\0'
;
bsData
.
Read
(
delta
)
;
loop
=
bsData
.
ReadBit
(
)
;
lockX
=
bsData
.
ReadBit
(
)
;
lockY
=
bsData
.
ReadBit
(
)
;
freeze
=
bsData
.
ReadBit
(
)
;
bsData
.
Read
(
time
)
;
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|