- 172
- 252
Пакет - данные для обмена между сервером и клиентом с помощью RakNet.
RPC (Remote Procedure Call) — оболочка пакета PACKET_RPC, предназначенная для удалённого выполнения определенных событий. Все RPC перечислены в RPCEnumeration и ScriptRPCEnumeration.
Тема будет развиваться до конца информативного потока. Ещё многое предстоит внести.
RPC (Remote Procedure Call) — оболочка пакета PACKET_RPC, предназначенная для удалённого выполнения определенных событий. Все RPC перечислены в RPCEnumeration и ScriptRPCEnumeration.
API SAMPFUNCS предоставляет обработчики для всех четырёх видов данных:
- RAKHOOK_TYPE_OUTCOMING_RPC — RPC, отправленный серверу;
- RAKHOOK_TYPE_OUTCOMING_PACKET — пакет, отправленный серверу;
- RAKHOOK_TYPE_INCOMING_RPC — RPC, пришедший от сервера;
- RAKHOOK_TYPE_INCOMING_PACKET — пакет, пришедший от сервера.
Исходит от сервера, содержит пинг.
Исходит от клиента, содержит пинг.
C++:
struct stAuthKey
{
uint8_t packetId;
uint8_t keyLength;
char[] key;
};
Содержит данные о текущей сессии.
Исходит от сервера, когда отсутствуют свободные слоты на сервере.
Исходит от сервера, когда соединение с сервером было закрыто.
Исходит от сервера, когда соединение с сервером было утеряно.
Исходит от сервера, когда запрос клиента на соединение с сервером был принят.
Исходит от сервера, когда соединение с сервером было заблокировано.
Исходит от сервера, когда пароль неправильный.
Исходит от сервера и клиента, отправляется при управлении транспортом.
C++:
struct stInCarData
{
uint16_t sVehicleID;
uint16_t sLeftRightKeys;
uint16_t sUpDownKeys;
union
{
uint16_t sKeys;
struct stSAMPKeys stSampKeys;
};
float fQuaternion[4];
float fPosition[3];
float fMoveSpeed[3];
float fVehicleHealth;
uint8_t bytePlayerHealth;
uint8_t byteArmor;
uint8_t byteCurrentWeapon;
uint8_t byteSiren;
uint8_t byteLandingGearState;
uint16_t sTrailerID;
union
{
uint16_t HydraThrustAngle[2]; //nearly same value
float fTrainSpeed;
};
};
C++:
struct stRconCommand
{
uint8_t packetId;
uint32_t textLength;
char[] cmdText;
};
Исходит от сервера и клиента, отправляется при прицеливании.
C++:
struct stAimData
{
BYTE byteCamMode;
float vecAimf1[3];
float vecAimPos[3];
float fAimZ;
BYTE byteCamExtZoom : 6; // 0-63 normalized
BYTE byteWeaponState : 2; // see eWeaponState
BYTE bUnk;
};
Исходит от сервера и клиента, содержит данные об оружии в слотах.
C++:
struct stWeaponsUpdate
{
uint16_t iTargetID;
uint8_t slot;
uint8_t weapon;
int16_t ammo;
};
Исходит от сервера и клиента, отправляется при обновлении статистики.
C++:
struct stStatsData
{
int iMoney;
int iAmmo; // ?
};
Исходит от сервера и клиента, отправляется при выстреле.
C++:
struct stBulletData
{
uint8_t byteType;
uint16_t sTargetID;
float fOrigin[3];
float fTarget[3];
float fCenter[3];
uint8_t byteWeaponID;
};
Исходит от сервера и клиента, содержит данные об игроке.
C++:
struct stOnFootData
{
uint16_t sLeftRightKeys;
uint16_t sUpDownKeys;
union
{
uint16_t sKeys;
struct stSAMPKeys stSampKeys;
};
float fPosition[3];
float fQuaternion[4];
uint8_t byteHealth;
uint8_t byteArmor;
uint8_t byteCurrentWeapon;
uint8_t byteSpecialAction;
float fMoveSpeed[3];
float fSurfingOffsets[3];
uint16_t sSurfingVehicleID;
short sCurrentAnimationID;
short sAnimFlags;
};
Исходит от сервера и клиента, содержит данные о маркере.
C++:
struct stMarkersSync
{
int i;
int iNumberOfPlayers;
DWORD playerID;
short sPos[3];
bool bIsPlayerActive;
};
Исходит от сервера и клиента, содержит данные о свободном транспорте.
C++:
struct stUnoccupiedData
{
int16_t sVehicleID;
uint8_t byteSeatID;
float fRoll[3];
float fDirection[3];
float fPosition[3];
float fMoveSpeed[3];
float fTurnSpeed[3];
float fHealth;
};
Исходит от сервера и клиента, содержит данные о трейлере.
C++:
struct stTrailerData
{
uint16_t sTrailerID;
float fPosition[3];
float fQuaternion[4];
float fSpeed[3];
float fSpin[3];
};
Исходит от сервера и клиента, содержит данные о пассажире.
C++:
struct stPassengerData
{
uint16_t sVehicleID;
uint8_t byteSeatID;
uint8_t byteCurrentWeapon;
uint8_t byteHealth;
uint8_t byteArmor;
uint16_t sLeftRightKeys;
uint16_t sUpDownKeys;
union
{
uint16_t sKeys;
struct stSAMPKeys stSampKeys;
};
float fPosition[3];
};
Исходит от сервера и клиента, содержит данные о наблюдении.
C++:
struct stSpectatorData
{
uint16_t sLeftRightKeys;
uint16_t sUpDownKeys;
union
{
uint16_t sKeys;
struct stSAMPKeys stSampKeys;
};
float fPosition[3];
};
Отправляется при нажатии на игрока в списке игроков.
Отправляется при подключении к серверу.
Отправляется при входе в транспорт.
Отправляется при нажатии на объект.
Отправляет команду на сервер.
Отправляется при появлении.
Отправляется при смерти.
Отправляется если игрок NPC.
Отправляется при закрытии диалога.
Отправляется при нажатии на TextDraw.
Отправляется при действии над транспортом.
Отправляет сообщение на сервер.
Отправляется при получении урона транспортом.
Отправляется при нанесении, или получении урона от других игроков.
Отправляется при редактировании прицепленного объекта.
Отправляется при редактировании объекта.
Отправляется при смене интерьера.
Отправляется при установке метки на карту.
Отправляется при при выборе класса.
Отправляется при нажатии на кнопку появления.
Отправляется при взятии пикапа.
Отправляется при выборе пункта меню.
Отправляется при разрушении транспорта.
Отправляется при выходе из меню.
Отправляется при выходе из транспорта.
Отправляется при открытии списка игроков.
Устанавливает игроку имя.
Устанавливает игроку позицию.
Устанавливает игроку позицию, исходя из высоты местности.
Устанавливает игроку здоровье.
Устанавливает игроку тумблер заморозки.
Проигрывает звук в координатах.
Ограничивает координаты перемещения игрока.
Выдает деньги игроку.
Устанавливает игроку угол поворота.
Устанавливает игроку деньги.
Сбрасывает оружие игрока.
Выдает игроку оружие.
Устанавливает транспорту расширенные параметры.
Устанавливает игроку время суток.
Устанавливает игроку тумблер заморозки времени суток.
Отправляется, когда другой игрок входит в зону прорисовки.
Устанавливает игроку уровень владения оружием.
Устанавливает игроку уровень опьянения.
Создаёт 3D текстовую метку.
Отключает чекпоинт.
Устанавливает гоночный чекпоинт.
Отключает гоночный чекпоинт.
Запускает аудио-поток в координатах.
Останавливает аудио-поток.
Удаляет здание для игрока.
Создает объект.
Устанавливает объекту позицию.
Устанавливает объекту поворот.
Разрушает объект.
Отправляет сообщение о смерти.
Устанавливает игроку метку на карте.
Удаляет компонент транспорта.
Обновляет 3D текстовую метку.
Показывает диалог.
Разрушает пикап.
Посылает транспорт в интерьер.
Устанавливает игроку броню.
Устанавливает игроку оружие в руке.
Устанавливает информацию о появлении.
Устанавливает игроку команду.
Помещает игрока в транспорт.
Извлекает игрока из транспорта.
Устанавливает игроку цвет.
Отображает текст игры.
Показывает NameTag другого игрока для игрока.
Прикрепляет камеру к объекту.
Интерполировать камеру.
Устанавливает материал объекта.
Очищает цвет области карты.
Применяет анимацию.
Сбивает анимацию.
Устанавливает игроку специальное действие.
Устанавливает игроку стиль боя.
Устанавливает игроку скорость.
Устанавливает транспорту скорость.
Выводит сообщение.
Создает пикап.
Двигает объект.
Включает бонус за дрифт.
Устанавливает надпись TextDraw'a.
Устанавливает чекпоинт.
Создаёт область карты.
Отправляет варнинги.
Устанавливает игроку прицепленный объект.
Разрушает область карты.
Закрашивает область карты.
Останавливает объект.
Устанавливает игроку тумблер наблюдения.
Устанавливает игроку наблюдаемого игрока.
Устанавливает игроку наблюдаемый транспорт.
Устанавливает игроку уровень розыска.
Показывает TextDraw.
Скрывает TextDraw для игрока.
Отправляется при входе на сервер.
Отправляется при выходе с сервера.
Удаляет игроку иконку на карте.
Устанавливает игроку патроны.
Устанавливает гравитацию.
Устанавливает транспорту здоровье.
Прикрепляет трейлер к транспорту.
Открепляет трейлер от транспорта.
Устанавливает погоду.
Устанавливает игроку скин.
Устанавливает игроку интерьер.
Устанавливает игроку позицию камеры.
Устанавливает игроку фокус камеры.
Устанавливает транспорту позицию.
Устанавливает транспорту поворот.
Устанавливает параметры транспорта для игрока.
Устанавливает камеру над игроком.
Отправляется при выходе другого игрока из зоны прорисовки.
Отправляется при входе транспорта в зону прорисовки.
Отправляется при выходе транспорта из зоны прорисовки.
Последнее редактирование: