Тема: onfoot packet read
Показать сообщение отдельно

  #8  
Старый 26.01.2025, 22:50
Smeruxa
Познавший АНТИЧАТ
Регистрация: 27.11.2020
Сообщений: 1,431
С нами: 2874035

Репутация: 183


По умолчанию

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

C++:





Код:
stOnFootData data
{
}
;
// fill struct
data
.
m_Armor
=
(
std
::
uint8_t
)
pPed
->
m_fArmour
;
data
.
m_Health
=
(
std
::
uint8_t
)
pPed
->
m_fHealth
;
// etc...
BitStream bs
;
bs
.
Write

(
ID_PLAYER_SYNC
)
;
bs
.
Write
(
(
PCHAR
)
&
data
,
sizeof
(
stOnFootData
)
)
;
pNetGame
->
SendPacket
(
&
bs
)
;

Все тоже самое, краш, может это структура sampapi отличается от твоей? Что ты используешь? stOnFootData - это откуда?

C++:





Код:
if
(
gConfig
->
data
[
"ways"
]
.
contains
(
playWayName
)
)
{
std
::
thread
(
[
playWayName
]
(
)
{
play
=
true
;
sampapi
::
v037r1
::
RefChat
(
)
->
AddMessage
(
-
1
,
std
::
string
(
"Проигрываем маршрут: "
+
playWayName
)
.
c_str
(
)
)
;
auto
start
=
std
::
chrono
::
steady_clock
::
now
(
)
;
size_t index
=
0
;
while
(
index

data
[
"ways"
]
[
playWayName
]
.
size
(
)
)
{
auto
packetTime
=
gConfig
->
data
[
"ways"
]
[
playWayName
]
[
index
]
[
"time"
]
.
get

(
)
;
auto
currentTime
=
std
::
chrono
::
duration_cast

(
std
::
chrono
::
steady_clock
::
now
(
)
-
start
)
.
count
(
)
;
if
(
currentTime
>=
packetTime
)
{
auto
recordedData
=
gConfig
->
data
[
"ways"
]
[
playWayName
]
[
index
]
;
sampapi
::
v037r1
::
Synchronization
::
OnfootData data
{
}
;
data
.
m_position
=
{
recordedData
[
"position"
]
[
0
]
.
get

(
)
,
recordedData
[
"position"
]
[
1
]
.
get

(
)
,
recordedData
[
"position"
]
[
2
]
.
get

(
)
,
}
;
RakNet
::
BitStream bs
;
bs
.
Write

(
ID_PLAYER_SYNC
)
;
bs
.
Write
(
(
PCHAR
)
&
data
,
sizeof
(
sampapi
::
v037r1
::
Synchronization
::
OnfootData
)
)
;
rakhook
::
send
(
&
bs
,
PacketPriority
::
HIGH_PRIORITY
,
PacketReliability
::
RELIABLE_ORDERED
,
(
char
)
0
)
;
++
index
;
}
}
sampapi
::
v037r1
::
RefChat
(
)
->
AddMessage
(
-
1
,
"Маршрут завершен."
)
;
play
=
false
;
}
)
.
detach
(
)
;
}




UPD, выяснил, что это происходит именно при воспроизведении, обычная отправка ошибок не вызывает 🥲🥲🥲🥲

Пойду пытаться делать очередь

UPD. ЗАБЕГАЛО

UPD, В общем, все так-то у меня было нормально, что-то с воспроизведением было не так

Видимо ему не понравилось, что я это делал внутри rakhook'а и отдельным потоком

Создал при помощи ktcore очередь и по красоте расписал все, и ура, РАБОТАЕТ!

Спасибо всем, кто пытался помочь, проблема оказалась вообще в третьем, вместо первого и второго
 
Ответить с цитированием