Просмотр полной версии : чтение входящей ID_PLAYER_SYNC в SF
g305noobo
09.12.2023, 16:43
привет! подскажите, как читать ID_PLAYER_SYNC в SF, конкретно оттуда мне надо ID, позицию,
использовал такие параметры, не вышло:
ID_ONFOOT_SYNC - ID: 207
Parameters: UINT8 Packet_ID, UINT16 lrKey, UINT16 udKey, UINT16 keys, float X, float Y, float Z, float quat_w, float quat_x, float quat_y, float quat_z, UINT8 health, UINT8 armour, 2_BITS additional_key, 6_BITS weapon_id, UINT8 special_action, float velocity_x, float velocity_y, float velocity_z, float surfing_offsets_x, float surfing_offsets_y, float surfing_offsets_z, UINT16 surfing_vehicle_id, INT16 animation_id, INT16 animation_flags
Эта синхронизация имеет динамический размер, можешь посмотреть пример правильного чтения по ссылке ниже и переписать на плюсы
SAMP.Lua/samp/events/handlers.lua at master · THE-FYP/SAMP.Lua (https://github.com/THE-FYP/SAMP.Lua/blob/master/samp/events/handlers.lua)
A SA-MP API library for MoonLoader. Contribute to THE-FYP/SAMP.Lua development by creating an account on GitHub.
github.com
вайега52
09.12.2023, 16:51
привет! подскажите, как читать ID_PLAYER_SYNC в SF, конкретно оттуда мне надо ID, позицию,
использовал такие параметры, не вышло:
ID_ONFOOT_SYNC - ID: 207
Входящий пакет точно такой же, как исходящий. Единственное отличие - первые 16 бит это айди игрока, следовательно оффсеты сдвигаются на 2 байта (16 бит)
Структуры SA:MP (https://www.blast.hk/redirect/aHR0cHM6Ly9jbGVvLmZhbmRvbS5jb20vcnUvd2lraS_QodGC0Y DRg9C60YLRg9GA0YtfU0E6TVA)
PACKET_NAME = id | Local data offset PACKET_PLAYER_SYNC = 212 | +55 // struct stOnFootData ( size = 68 ) // uint16_t sLeftRightKeys; // uint16_t sUpDownKeys; + 2 // uint16_t sKeys; + 4 // float fPosition[3]; + 6 // float fQuaternion[4]; + 18 // uint8_t byteHealth; + 34 // uint8_t byteArmor; + 35...
cleo.fandom.com
Входящий пакет точно такой же, как исходящий. Единственное отличие - первые 16 бит это айди игрока, следовательно оффсеты сдвигаются на 2 байта (16 бит)
Структуры SA:MP (https://www.blast.hk/redirect/aHR0cHM6Ly9jbGVvLmZhbmRvbS5jb20vcnUvd2lraS_QodGC0Y DRg9C60YLRg9GA0YtfU0E6TVA)
PACKET_NAME = id | Local data offset PACKET_PLAYER_SYNC = 212 | +55 // struct stOnFootData ( size = 68 ) // uint16_t sLeftRightKeys; // uint16_t sUpDownKeys; + 2 // uint16_t sKeys; + 4 // float fPosition[3]; + 6 // float fQuaternion[4]; + 18 // uint8_t byteHealth; + 34 // uint8_t byteArmor; + 35...
cleo.fandom.com
Там меняется размер пакета при наличии/отсутствии инфы о LR и UD клавишах (перед ними записывается бул в виде 1 бита, если он равен одному, то надо читать 2 байта под клавиши)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot