Игроки
Player objects принадлежат runtime. Получайте их из events или через vimp.players; не создавайте самостоятельно.
ts
vimp.on('playerConnected', (player) => {
player.name = player.name.trim().slice(0, 24)
player.health = 100
player.armour = 50
player.model = vimp.hash('mp_m_freemode_01')
player.teleport(90.79, -1951.33, 20.74, 307.23)
})position может быть null до появления ped игрока. Disconnect event получает финальный wrapper с cached name, но gameplay operations уже могут завершаться неуспешно.
Оружие и транспорт
Для авторитетного inventory и seating используйте server methods. Проверяйте boolean result операций, способных завершиться неуспешно.
ts
const pistol = vimp.hash('WEAPON_PISTOL')
player.giveWeapon(pistol, 120)
player.setWeaponAmmo(pistol, 60)
if (vehicle && !player.putIntoVehicle(vehicle.id, -1)) {
console.warn('Could not seat player', player.id)
}id идентифицирует текущее подключение. name — изменяемое отображаемое значение, socialClub — стабильный platform identifier. Баны, roles и ownership решения принимайте на сервере.
player.emit отправляет приватное client event, player.kick(reason) намеренно отключает игрока.