Skip to content

Локальный игрок и транспорт ​

lua
Vector3 = { x = number, y = number, z = number }

Методы Handle вызываются через двоеточие. Handle нельзя сохранять после смерти, респавна, отключения или смены сессии.

samp.player.local_player() ​

Требует game.player.read. Возвращает nil, если игрок недоступен, иначе Player Handle с полями type="player", poolId, generation, sessionId.

МетодРазрешениеРезультат / диапазон
player:is_valid()game.player.readboolean, безопасен для устаревшего Handle.
player:position()game.player.readVector3.
player:health()game.player.readnumber.
player:armor()game.player.readnumber.
player:velocity()game.player.readVector3.
player:vehicle()game.vehicle.readVehicle Handle или nil.
player:set_health(value)game.player.writeКонечное 0..1000.
player:set_armor(value)game.player.writeКонечное 0..1000.
player:set_position(vector)game.player.writeКомпоненты -100000..100000.
player:set_velocity(vector)game.player.writeКомпоненты -1000..1000.

Методы записи ничего не возвращают и разрешены только в управляемом callback: событии, таймере, задаче или callback меню. Они запрещены при вычислении entry. draw.hud является управляемым событием, но запись игрового состояния в этом горячем callback настоятельно не рекомендуется. Все методы, кроме is_valid(), дают ошибку для устаревшего Handle.

Vehicle Handle ​

player:vehicle() представляет только текущую машину локального игрока. Поля: type="vehicle", poolId, generation, sessionId. Handle устаревает при выходе/смене транспорта или поколения игрока.

МетодРазрешениеРезультат / диапазон
vehicle:is_valid()game.vehicle.readboolean.
vehicle:position()game.vehicle.readVector3.
vehicle:health()game.vehicle.readnumber.
vehicle:velocity()game.vehicle.readVector3.
vehicle:set_health(value)game.vehicle.writeКонечное 0..10000.
vehicle:set_position(vector)game.vehicle.writeКомпоненты -100000..100000.
vehicle:set_velocity(vector)game.vehicle.writeКомпоненты -1000..1000.

Снимки API 1.1 ​

Player Handle добавляет read-only snapshots:

МетодРезультат
player:weapon(){ id, ammo, clipAmmo, state }; state: ready, firing, reloading, out_of_ammo или melee_contact.
player:aim(){ active, cameraMode, direction, position, aimZ, zoom }, либо nil без конечного снимка прицеливания.
player:motion(){ activity, moveState, onGround, inAir, aiming, firing }.
player:skin()Текущий ID модели.
player:animation()Код текущей синхронизируемой анимации; 0 означает отсутствие.
player:task(){ category, nativeType, nativeName, type, name }; category: none, driving, combat, movement, animation, interaction, other.

Изменения сообщаются соответствующими событиями.

player:set_skin(id), player:set_weapon(id, ammo) и player:set_ammo(id, ammo) требуют game.player.write и разрешены только в управляемом callback. Это одноразовые локальные операции, которые сервер или respawn может перезаписать.

Vehicle Handle добавляет vehicle:state(), vehicle:seat() и vehicle:occupants() с разрешением game.vehicle.read; occupants сообщает только количество и вместимость, а не объекты пассажиров.

vehicle:state() возвращает { model, heading, engineOn, lightsOn, sirenOn }; heading равен nil, если нет конечного значения. vehicle:seat() возвращает 0 для водителя, 1..n для пассажиров или nil, если игрок уже вышел. vehicle:occupants() возвращает { driver, passengers, capacity, total } и не раскрывает другие объекты игроков.