@infernus/raknet
Version:
A wrapper of the popular open.mp raknet plugin for samp-node.
628 lines (611 loc) • 20.1 kB
TypeScript
import { BulletHitTypesEnum, WeaponEnum, LandingGearStateEnum, Player, Vehicle, InvalidEnum } from '@infernus/core';
declare const PR_MAX_HANDLERS = 256;
declare const PR_MAX_WEAPON_SLOTS = 13;
declare const PR_BITS_TO_BYTES: (bits: number) => number;
declare const PR_BYTES_TO_BITS: (bytes: number) => number;
declare enum PacketRpcEventType {
IncomingPacket = 0,
IncomingRpc = 1,
OutgoingPacket = 2,
OutgoingRpc = 3,
IncomingCustomRpc = 4,
NumberOfEventTypes = 5
}
declare enum PacketRpcValueType {
Int8 = 0,
Int16 = 1,
Int32 = 2,
UInt8 = 3,
UInt16 = 4,
UInt32 = 5,
Float = 6,
Bool = 7,
String = 8,
CInt8 = 9,
CInt16 = 10,
CInt32 = 11,
CUInt8 = 12,
CUInt16 = 13,
CUInt32 = 14,
CFloat = 15,
CBool = 16,
CString = 17,
Bits = 18,
Float3 = 19,
Float4 = 20,
Vector = 21,
NormQuat = 22,
String8 = 23,
String32 = 24,
IgnoreBits = 25
}
declare enum PacketRpcPriority {
System = 0,
High = 1,
Medium = 2,
Low = 3
}
declare enum PacketRpcReliability {
Unreliable = 6,
UnreliableSequenced = 7,
Reliable = 8,
ReliableOrdered = 9,
ReliableSequenced = 10
}
declare enum RakNetNatives {
SendPacket = 0,
SendRpc = 1,
EmulateIncomingPacket = 2,
EmulateIncomingRpc = 3,
New = 4,
NewCopy = 5,
Delete = 6,
Reset = 7,
ResetReadPointer = 8,
ResetWritePointer = 9,
IgnoreBits = 10,
SetWriteOffset = 11,
GetWriteOffset = 12,
SetReadOffset = 13,
GetReadOffset = 14,
GetNumberOfBitsUsed = 15,
GetNumberOfBytesUsed = 16,
GetNumberOfUnreadBits = 17,
GetNumberOfBitsAllocated = 18
}
declare enum PacketIdList {
DriverSync = 200,
RconCommand = 201,
AimSync = 203,
WeaponsUpdate = 204,
StatsUpdate = 205,
BulletSync = 206,
OnFootSync = 207,
MarkersSync = 208,
UnoccupiedSync = 209,
TrailerSync = 210,
PassengerSync = 211,
SpectatingSync = 212,
InternalPing = 6,
ConnectedPong = 9,
RequestStaticData = 10,
ConnectionRequest = 11,
AuthKey = 12,
RpcMapping = 17,
DetectLostConnections = 23,
NewIncomingConnection = 30,
NoFreeIncomingConnections = 31,
DisconnectionNotification = 32,
ConnectionLost = 33,
ConnectionRequestAccepted = 34,
ConnectionAttemptFailed = 35,
ConnectionBanned = 36,
InvalidPassword = 37,
ModifiedPacket = 38
}
declare enum RPCIdList {
ShowActor = 171,
HideActor = 172,
ApplyActorAnimation = 173,
ClearActorAnimation = 174,
SetActorFacingAngle = 175,
SetActorPos = 176,
SetActorHealth = 178,
SetPlayerAttachedObject = 113,
ChatBubble = 59,
GiveActorDamage = 177,
DisableCheckpoint = 37,
SetRaceCheckpoint = 38,
DisableRaceCheckpoint = 39,
SetCheckpoint = 107,
ShowDialog = 61,
AddGangZone = 108,
GangZoneDestroy = 120,
GangZoneFlash = 121,
GangZoneStopFlash = 85,
ShowGameText = 73,
SetGravity = 146,
SetMapIcon = 56,
RemoveMapIcon = 144,
InitMenu = 76,
ShowMenu = 77,
HideMenu = 78,
ShowPlayerNameTag = 80,
CreateObject = 44,
SetPlayerObjectMaterialText = 84,
AttachObjectToPlayer = 75,
AttachCameraToObject = 81,
EditAttachedObject = 116,
EditObject = 117,
EnterEditObject = 27,
CancelEdit = 28,
SetObjectPos = 45,
SetObjectRotation = 46,
DestroyObject = 47,
MoveObject = 99,
StopObject = 122,
CreatePickup = 95,
DestroyPickup = 63,
ServerJoin = 137,
ServerQuit = 138,
InitGame = 139,
ConnectionRejected = 130,
UpdateScoresAndPings = 155,
ClientJoin = 25,
NpcJoin = 54,
ClientCheck = 103,
GameModeRestart = 40,
ApplyPlayerAnimation = 86,
ClearPlayerAnimation = 87,
DeathBroadcast = 166,
SetPlayerName = 11,
SetPlayerPos = 12,
SetPlayerPosFindZ = 13,
SetPlayerFacingAngle = 19,
SetPlayerSkillLevel = 34,
SetPlayerSkin = 153,
SetPlayerTime = 29,
SetPlayerSpecialAction = 88,
SetWeather = 152,
SetWorldBounds = 17,
SetPlayerVelocity = 90,
TogglePlayerControllable = 15,
TogglePlayerSpectating = 124,
ToggleClock = 30,
SetPlayerTeam = 69,
PlaySound = 16,
GivePlayerMoney = 18,
ResetPlayerMoney = 20,
ResetPlayerWeapons = 21,
GivePlayerWeapon = 22,
PlayAudioStream = 41,
PlayCrimeReport = 112,
StopAudioStream = 42,
RemoveBuilding = 43,
SetPlayerHealth = 14,
SetPlayerArmour = 66,
SetWeaponAmmo = 145,
SetCameraBehind = 162,
SetArmedWeapon = 67,
WorldPlayerAdd = 32,
WorldPlayerRemove = 163,
InterpolateCamera = 82,
CreateExplosion = 79,
SendDeathMessage = 55,
SendGameTimeUpdate = 60,
SendClientMessage = 93,
SetShopName = 33,
SetPlayerDrunkLevel = 35,
SetPlayerFightingStyle = 89,
SetInterior = 156,
SetPlayerColor = 72,
ForceClassSelection = 74,
ToggleWidescreen = 111,
SetPlayerWantedLevel = 133,
SetCameraPos = 157,
SetCameraLookAt = 158,
SetSpawnInfo = 68,
RequestClass = 128,
RequestSpawn = 129,
SpectatePlayer = 126,
SpectateVehicle = 127,
EnableStuntBonus = 104,
ToggleSelectTextDraw = 83,
TextDrawSetString = 105,
ShowTextDraw = 134,
HideTextDraw = 135,
PlayerEnterVehicle = 26,
PlayerExitVehicle = 154,
RemoveVehicleComponent = 57,
AttachTrailerToVehicle = 148,
DetachTrailerFromVehicle = 149,
LinkVehicleToInterior = 65,
PutPlayerInVehicle = 70,
RemovePlayerFromVehicle = 71,
UpdateVehicleDamageStatus = 106,
SetVehicleTireStatus = 98,
ScmEvent = 96,
SetVehicleNumberPlate = 123,
DisableVehicleCollisions = 167,
SetVehicleHealth = 147,
SetVehicleVelocity = 91,
SetVehiclePos = 159,
SetVehicleZAngle = 160,
SetVehicleParams = 161,
SetVehicleParamsEx = 24,
WorldVehicleAdd = 164,
WorldVehicleRemove = 165,
Create3DTextLabel = 36,
Delete3DTextLabel = 58,
SetWorldTime = 94,
ToggleCameraTarget = 170,
EnterVehicle = 26,
ExitVehicle = 154,
VehicleDamaged = 106,
VehicleDestroyed = 136,
SendSpawn = 52,
ChatMessage = 101,
InteriorChangeNotification = 118,
DeathNotification = 53,
SendCommand = 50,
ClickPlayer = 23,
DialogResponse = 62,
ClientCheckResponse = 103,
GiveTakeDamage = 115,
MapMarker = 119,
MenuSelect = 132,
MenuQuit = 140,
SelectTextDraw = 83,
PickedUpPickup = 131,
SelectObject = 27,
CameraTarget = 168,
SetPlayerVirtualWorld = 48,
ModelInfo = 179,
ModelFile = 183,
SrcFinishedDownloading = 185,
FinishedDownloading = 184,
RequestDffFile = 181,
RequestTxdFile = 182
}
declare enum InternalPacketIdList {
INTERNAL_PING = 6,
CONNECTED_PONG = 9,
REQUEST_STATIC_DATA = 10,
CONNECTION_REQUEST = 11,
AUTH_KEY = 12,
RPC_MAPPING = 17,
DETECT_LOST_CONNECTIONS = 23,
NEW_INCOMING_CONNECTION = 30,
NO_FREE_INCOMING_CONNECTIONS = 31,
DISCONNECTION_NOTIFICATION = 32,
CONNECTION_LOST = 33,
CONNECTION_REQUEST_ACCEPTED = 34,
CONNECTION_ATTEMPT_FAILED = 35,
CONNECTION_BANNED = 36,
INVALID_PASSWORD = 37,
MODIFIED_PACKET = 38,
RECEIVED_STATIC_DATA = 41
}
type BitStreamRaw = number;
type Vector3<T> = [T, T, T];
type Vector4<T> = [T, T, T, T];
interface IOnFootSync {
lrKey: number;
udKey: number;
keys: number;
position: Vector3<number>;
quaternion: Vector4<number>;
health: number;
armour: number;
additionalKey: number;
weaponId: WeaponEnum;
specialAction: number;
velocity: Vector3<number>;
surfingOffsets: Vector3<number>;
surfingVehicleId: number;
animationId: number;
animationFlags: number;
}
interface IInCarSync {
vehicleId: number;
lrKey: number;
udKey: number;
keys: number;
quaternion: Vector4<number>;
position: Vector3<number>;
velocity: Vector3<number>;
vehicleHealth: number;
playerHealth: number;
armour: number;
additionalKey: number;
weaponId: WeaponEnum;
sirenState: number;
landingGearState: LandingGearStateEnum;
trailerId: number;
trainSpeed: number;
}
interface ITrailerSync {
trailerId: number;
position: Vector3<number>;
quaternion: Vector4<number>;
velocity: Vector3<number>;
angularVelocity: Vector3<number>;
}
interface IPassengerSync {
vehicleId: number;
driveBy: number;
seatId: number;
additionalKey: number;
weaponId: WeaponEnum;
playerHealth: number;
playerArmour: number;
lrKey: number;
udKey: number;
keys: number;
position: Vector3<number>;
}
interface IUnoccupiedSync {
vehicleId: number;
seatId: number;
roll: Vector3<number>;
direction: Vector3<number>;
position: Vector3<number>;
velocity: Vector3<number>;
angularVelocity: Vector3<number>;
vehicleHealth: number;
}
interface IAimSync {
camMode: number;
camFrontVec: Vector3<number>;
camPos: Vector3<number>;
aimZ: number;
camZoom: number;
weaponState: number;
aspectRatio: number;
}
interface IBulletSync {
fromId: number;
hitType: BulletHitTypesEnum;
hitId: number;
origin: Vector3<number>;
hitPos: Vector3<number>;
offsets: Vector3<number>;
weaponId: WeaponEnum;
}
interface ISpectatingSync {
lrKey: number;
udKey: number;
keys: number;
position: Vector3<number>;
}
interface IMarkersSync {
numberOfPlayers: number;
playerIsActive: boolean[];
playerPositionX: number[];
playerPositionY: number[];
playerPositionZ: number[];
playerIsParticipant: boolean[];
}
interface IWeaponsUpdate {
targetId: number;
targetActorId: number;
slotWeaponId: number[];
slotWeaponAmmo: number[];
slotUpdated: boolean[];
}
interface IStatsUpdate {
money: number;
drunkLevel: number;
}
interface IRconCommand {
command: number[];
}
interface IPacketListSync {
readSync(...args: any): void;
writeSync(...args: any): void;
}
declare class BitStream {
readonly id: BitStreamRaw;
constructor(from?: BitStreamRaw | BitStream);
sendPacket(player: number | Player, priority?: PacketRpcPriority, reliability?: PacketRpcReliability, orderingChannel?: number): void;
sendRPC(player: number | Player, rpcId: number, priority?: PacketRpcPriority, reliability?: PacketRpcReliability, orderingChannel?: number): void;
emulateIncomingPacket(player: number | Player): void;
emulateIncomingRPC(player: number | Player, rpcId: number): void;
newCopy(): BitStream;
delete(): number;
reset(): void;
resetReadPointer(): void;
resetWritePointer(): void;
ignoreBits(numberOfBits: number): void;
setWriteOffset(offset: number): void;
getWriteOffset(): number;
setReadOffset(offset: number): void;
getReadOffset(): number;
getNumberOfBitsUsed(): number;
getNumberOfBytesUsed(): number;
getNumberOfUnreadBits(): number;
getNumberOfBitsAllocated(): number;
readValue(...types: (PacketRpcValueType | [PacketRpcValueType, number])[]): number | boolean | (number | boolean | number[])[];
writeValue(...types: [PacketRpcValueType, number | number[] | boolean, number?][]): boolean | boolean[];
readInt8(): number;
readInt16(): number;
readInt32(): number;
readUint8(): number;
readUint16(): number;
readUint32(): number;
readFloat(): number;
readBool(): boolean;
readString(size?: number): string;
readCompressedInt8(): number;
readCompressedInt16(): number;
readCompressedInt32(): number;
readCompressedUint8(): number;
readCompressedUint16(): number;
readCompressedUint32(): number;
readCompressedFloat(): number;
readCompressedBool(): boolean;
readCompressedString(size: number, charset?: string): string;
readBits(size: number): number;
readFloat3(): Vector3<number>;
readFloat4(): Vector4<number>;
readVector(): Vector3<number>;
readNormQuat(): Vector4<number>;
readString8(charset?: string): string;
readString32(charset?: string): string;
writeInt8(value: number): boolean;
writeInt16(value: number): boolean;
writeInt32(value: number): boolean;
writeUint8(value: number): boolean;
writeUint16(value: number): boolean;
writeUint32(value: number): boolean;
writeFloat(value: number): boolean;
writeBool(value: boolean): boolean;
writeString(value: string | number[], length?: number): boolean;
writeCompressedInt8(value: number): boolean;
writeCompressedInt16(value: number): boolean;
writeCompressedInt32(value: number): boolean;
writeCompressedUint8(value: number): boolean;
writeCompressedUint16(value: number): boolean;
writeCompressedUint32(value: number): boolean;
writeCompressedFloat(value: number): boolean;
writeCompressedBool(value: boolean): boolean;
writeCompressedString(value: string, length?: number): boolean;
writeBits(value: number, size: number): boolean;
writeFloat3(value: Vector3<number>): boolean;
writeFloat4(value: Vector4<number>): boolean;
writeVector(value: Vector3<number>): boolean;
writeNormQuat(value: Vector4<number>): boolean;
writeString8(value: string | number[]): boolean;
writeString32(value: string | number[]): boolean;
static packAspectRatio(value: number): number;
static unpackAspectRatio(value: number): number;
static packCameraZoom(value: number): number;
static unpackCameraZoom(value: number): number;
static packHealthArmour(health: number, armour: number): number;
static unpackHealthArmour(healthArmour: number): {
health: number;
armour: number;
};
readWeaponsUpdate(): IWeaponsUpdate;
readStatsUpdate(): IStatsUpdate;
readRconCommand(): IRconCommand;
writeWeaponsUpdate(data: IWeaponsUpdate): void;
writeStatsUpdate(data: IStatsUpdate): void;
writeRconCommand(data: IRconCommand): void;
sendPacketToPlayerStream(players: Player[], player: Player, priority?: PacketRpcPriority, reliability?: PacketRpcReliability, orderingChannel?: number): void;
sendRPCToPlayerStream(players: Player[], player: Player, rpcId: number, priority?: PacketRpcPriority, reliability?: PacketRpcReliability, orderingChannel?: number): void;
sendPacketToVehicleStream(players: Player[], vehicle: Vehicle, excludedPlayer?: Player | InvalidEnum.PLAYER_ID, priority?: PacketRpcPriority, reliability?: PacketRpcReliability, orderingChannel?: number): void;
sendRPCToVehicleStream(players: Player[], vehicle: Vehicle, rpcId: number, excludedPlayer?: Player | InvalidEnum.PLAYER_ID, priority?: PacketRpcPriority, reliability?: PacketRpcReliability, orderingChannel?: number): void;
}
declare const onIncomingPacket: (cb: (ret: {
playerId: number;
packetId: number;
bs: BitStream;
} & {
next: (value?: Partial<{
playerId: number;
packetId: number;
bs: BitStream;
}> | undefined) => number | boolean | void;
defaultValue: boolean | undefined;
}) => (number | boolean | void) | Promise<number | boolean | void>, unshift?: boolean) => () => number | undefined;
declare const onIncomingRPC: (cb: (ret: {
playerId: number;
rpcId: number;
bs: BitStream;
} & {
next: (value?: Partial<{
playerId: number;
rpcId: number;
bs: BitStream;
}> | undefined) => number | boolean | void;
defaultValue: boolean | undefined;
}) => (number | boolean | void) | Promise<number | boolean | void>, unshift?: boolean) => () => number | undefined;
declare const onOutgoingPacket: (cb: (ret: {
playerId: number;
packetId: number;
bs: BitStream;
} & {
next: (value?: Partial<{
playerId: number;
packetId: number;
bs: BitStream;
}> | undefined) => number | boolean | void;
defaultValue: boolean | undefined;
}) => (number | boolean | void) | Promise<number | boolean | void>, unshift?: boolean) => () => number | undefined;
declare const onOutgoingRPC: (cb: (ret: {
playerId: number;
rpcId: number;
bs: BitStream;
} & {
next: (value?: Partial<{
playerId: number;
rpcId: number;
bs: BitStream;
}> | undefined) => number | boolean | void;
defaultValue: boolean | undefined;
}) => (number | boolean | void) | Promise<number | boolean | void>, unshift?: boolean) => () => number | undefined;
declare const IPacket: (eventId: number, func: Parameters<typeof onIncomingPacket>[0]) => () => number | undefined;
declare const IRPC: (eventId: number, func: Parameters<typeof onIncomingRPC>[0]) => () => number | undefined;
declare const OPacket: (eventId: number, func: Parameters<typeof onOutgoingPacket>[0]) => () => number | undefined;
declare const ORPC: (eventId: number, func: Parameters<typeof onOutgoingRPC>[0]) => () => number | undefined;
declare const IncomingPacket: (eventId: number, func: Parameters<typeof onIncomingPacket>[0]) => () => number | undefined;
declare const IncomingRPC: (eventId: number, func: Parameters<typeof onIncomingRPC>[0]) => () => number | undefined;
declare const OutgoingPacket: (eventId: number, func: Parameters<typeof onOutgoingPacket>[0]) => () => number | undefined;
declare const OutgoingRPC: (eventId: number, func: Parameters<typeof onOutgoingRPC>[0]) => () => number | undefined;
declare class AimSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): IAimSync | null;
writeSync(data: IAimSync): void;
}
declare class BulletSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): IBulletSync | null;
writeSync(data: IBulletSync): void;
}
declare class InCarSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(outgoing?: boolean): IInCarSync | null;
writeSync(data: IInCarSync, outgoing?: boolean): void;
}
declare class MarkersSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): IMarkersSync | null;
writeSync(data: IMarkersSync): void;
}
declare class OnFootSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(outgoing?: boolean): IOnFootSync | null;
writeSync(data: IOnFootSync, outgoing?: boolean): void;
}
declare class PassengerSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): IPassengerSync | null;
writeSync(data: IPassengerSync): void;
}
declare class SpectatingSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): ISpectatingSync | null;
writeSync(data: ISpectatingSync): void;
}
declare class TrailerSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): ITrailerSync | null;
writeSync(data: ITrailerSync): void;
}
declare class UnoccupiedSync extends BitStream implements IPacketListSync {
private bs;
constructor(bs: BitStream);
readSync(): IUnoccupiedSync | null;
writeSync(data: IUnoccupiedSync): void;
}
export { AimSync, BitStream, BulletSync, IPacket, IRPC, InCarSync, IncomingPacket, IncomingRPC, InternalPacketIdList, MarkersSync, OPacket, ORPC, OnFootSync, OutgoingPacket, OutgoingRPC, PR_BITS_TO_BYTES, PR_BYTES_TO_BITS, PR_MAX_HANDLERS, PR_MAX_WEAPON_SLOTS, PacketIdList, PacketRpcEventType, PacketRpcPriority, PacketRpcReliability, PacketRpcValueType, PassengerSync, RPCIdList, RakNetNatives, SpectatingSync, TrailerSync, UnoccupiedSync, onIncomingPacket, onIncomingRPC, onOutgoingPacket, onOutgoingRPC };
export type { BitStreamRaw, IAimSync, IBulletSync, IInCarSync, IMarkersSync, IOnFootSync, IPacketListSync, IPassengerSync, IRconCommand, ISpectatingSync, IStatsUpdate, ITrailerSync, IUnoccupiedSync, IWeaponsUpdate, Vector3, Vector4 };