
20.07.2019, 00:22
|
|
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами:
6908018
Репутация:
213
|
|
Сообщение от Musaigen
Из-за чего raknet хук может выдавать значение 0 при чтении структуры stOnFootData(также при чтении вообще любых структур)
RakNetHook:
Код:
bool
OnReceivePacket
(
Packet
*
p
)
{
if
(
p
->
data
==
nullptr
||
p
->
length
==
0
)
return
true
;
if
(
p
->
data
[
0
]
==
ID_PLAYER_SYNC
)
{
BitStream
bs
(
p
->
data
,
p
->
length
,
false
)
;
uint16_t
playerID
=
uint16_t
(
-
1
)
;
stOnFootData data
{
0
}
;
bs
.
ResetReadPointer
(
)
;
bs
.
IgnoreBits
(
8
)
;
bs
.
Read
(
playerID
)
;
bs
.
Read
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
// Дальше происходит форматирование и вывод.
}
}
Пытаюсь вывести айди(playerID) и позицию игрока(data.fPosition)
ID - высвечивается нормально, как положено.
Позиция игрока - выводится как 0
Конфликтов между собейтом или другими плагинами/скриптами нет.
Чтение получаемого пакета PlayerSync и VehicleSync происходит по другому. Вроде в ракботе есть полный пример, вот не полный - https://gitlab.com/RcKoid/mod-s0beit-overlight/blob/master/src/Hooked RakNet/HookedRakClient.cpp#L98
|
|
|