rock-mod
Version:
Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.
111 lines (110 loc) • 5.87 kB
TypeScript
import { BaseObjectType } from "../../../../shared/entities";
import { type IBaseObject } from "../../common/baseObject/IBaseObject";
import { type IPlayer } from "../../common/player/IPlayer";
import { type IVehicle } from "../../common/vehicle/IVehicle";
import { type IVector3D } from "../../../../shared/common/utils";
export interface ICCMPPlayerOptions {
/** Network id of the player (same as remoteId — CCMP exposes only one id). */
readonly id: number;
/** Human-readable name from the handshake. May be empty if not yet known. */
readonly name: string;
/** `true` if this Player represents the local user, `false` for remotes. */
readonly isLocal: boolean;
}
/**
* CCMP implementation of the Rock-Mod player facade.
*
* Identity and synced meta are tracked by id. Runtime entity operations are
* delegated to `ccmp.players.getById(id)`, whose `handle` is live for the
* local player and for streamed remote players. Missing remote handles degrade
* to safe defaults/no-ops, matching RageMP-style best-effort client behavior.
*/
export declare class CCMPPlayer implements IPlayer {
/** Глобальный set для one-time warnings, чтобы не флудить лог. */
private static readonly _warnedMethods;
private readonly _id;
private _name;
private readonly _isLocal;
private _isExists;
constructor(options: ICCMPPlayerOptions);
/** Помечает игрока как удалённого — вызывается из `CCMPPlayersManager`. */
markRemoved(): void;
/** Обновляет name (полезно если name приехал позже первого создания). */
setNameInternal(name: string): void;
get id(): number;
get remoteId(): number;
get type(): BaseObjectType;
get isExists(): boolean;
get handle(): number;
destroy(): void;
get position(): IVector3D;
get dimension(): number;
setPosition(value: IVector3D): void;
setDimension(_value: number): void;
setCoords(xPos: number, yPos: number, zPos: number, xAxis: boolean, yAxis: boolean, zAxis: boolean, clearArea: boolean): void;
get model(): number;
get heading(): number;
setHeading(heading: number): void;
setModel(value: string): void;
get rotation(): IVector3D;
setRotation(value: IVector3D): void;
get forwardVector(): IVector3D;
freezePosition(freeze: boolean): void;
setCollision(collision: boolean, keepPhysics: boolean): void;
setInvincible(invincible: boolean): void;
setVisible(visible: boolean): void;
setAlpha(alpha: number): void;
get alpha(): number;
resetAlpha(): void;
getOffsetFromInWorldCoords(offsetX: number, offsetY: number, offsetZ: number): IVector3D;
getBoneIndexByName(boneName: string): number;
getWorldPositionOfBone(boneIndex: number): IVector3D;
getVariable(name: string): unknown | null;
getSyncedMeta(key: string): unknown | undefined;
hasSyncedMeta(key: string): boolean;
getSyncedMetaKeys(): readonly string[];
attachToEntity(target: IBaseObject, boneIndex: number, offset: IVector3D, rotation: IVector3D, p9: boolean, useSoftPinning: boolean, collision: boolean, isPed: boolean, vertexIndex: number, fixedRot: boolean): void;
detach(useDetachVelocity: boolean, collision: boolean): void;
getSpeed(): number;
isPlayingAnim(dictionary: string, name: string, taskFlag: number): boolean;
get name(): string;
get health(): number;
get armour(): number;
get isDead(): boolean;
get vehicle(): IVehicle | null;
get isVoice3DEnabled(): boolean;
get voiceVolume(): number;
get isVoiceActive(): boolean;
setVoice3D(_enable: boolean): void;
setVoiceVolume(_volume: number): void;
get isReloading(): boolean;
get weapon(): number;
getAmmoInClip(_weapon: number): number;
getWeaponAmmo(_weapon: number): number;
getBoneIndex(boneId: number): number;
setDecoration(collection: string, overlay: string): void;
removeDecoration(collection: string, overlay: string): void;
clearDecorations(): void;
setHeadBlendData(shapeFirstId: number, shapeSecondId: number, shapeThirdId: number, skinFirstId: number, skinSecondId: number, skinThirdId: number, shapeMix: number, skinMix: number, thirdMix: number, isParent: boolean): void;
setFaceFeature(index: number, value: number): void;
setHeadOverlay(overlayId: number, index: number, opacity: number, _firstColor: number, _secondColor: number): void;
setHeadOverlayColor(overlayId: number, colorTypeId: number, firstColor: number, secondColor: number): void;
setEyeColor(eyeColor: number): void;
setHairColor(colorId: number, highlightColorId: number): void;
setComponentVariation(componentId: number, drawableId: number, textureId: number, paletteId: number): void;
setPropertyVariation(componentId: number, drawableId: number, textureId: number, attach: boolean): void;
clearProp(componentId: number): void;
get isLocalPlayer(): boolean;
taskSwapWeapon(): void;
taskEnterVehicle(vehicleHandle: number, timeout: number, seat: number, speed: number, flag: number, _p6: number): void;
clearTasks(): void;
clearTasksImmediately(): void;
taskPlayAnim(dictionary: string, name: string, blendInSpeed: number, blendOutSpeed: number, duration: number, flag: number, playbackRate: number, lockX: boolean, lockY: boolean, lockZ: boolean): void;
stopAnim(dictionary: string, name: string, blendOutSpeed: number): void;
setMovementClipset(_clipset: string, _speed: number): void;
resetMovementClipset(_blendDuration: number): void;
getBoneCoords(boneId: number, offsetX: number, offsetY: number, offsetZ: number): IVector3D;
setNoCollision(otherHandle: number, thisFrameOnly: boolean): void;
private _getNativePlayer;
private _warnOnce;
}