ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   чтение входящей ID_PLAYER_SYNC в SF (https://forum.antichat.xyz/showthread.php?t=1497012)

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



etereon 09.12.2023 16:50

Эта синхронизация имеет динамический размер, можешь посмотреть пример правильного чтения по ссылке ниже и переписать на плюсы

SAMP.Lua/samp/events/handlers.lua at master · THE-FYP/SAMP.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

Цитата:

Сообщение от g305noobo

привет! подскажите, как читать ID_PLAYER_SYNC в SF, конкретно оттуда мне надо ID, позицию,
использовал такие параметры, не вышло:
Цитата:

Сообщение от Спойлер
  • ID_ONFOOT_SYNC - ID: 207​


Входящий пакет точно такой же, как исходящий. Единственное отличие - первые 16 бит это айди игрока, следовательно оффсеты сдвигаются на 2 байта (16 бит)

Структуры SA:MP

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

etereon 09.12.2023 16:53

Цитата:

Сообщение от why ega

Входящий пакет точно такой же, как исходящий. Единственное отличие - первые 16 бит это айди игрока, следовательно оффсеты сдвигаются на 2 байта (16 бит)

Структуры SA:MP

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 байта под клавиши)


Время: 18:32