Стриминг сущностей
Сервер создаёт объект, а клиент реагирует, когда объект входит в локальный streaming range.
Сервер:
ts
const vehicle = vimp.vehicles.create(
vimp.hash('adder'),
94.5,
-1940.2,
20.7,
307,
{ dimension: 0 },
)
if (vehicle) {
vehicle.setStreamSyncedMeta('fuel', 65)
vehicle.setStreamSyncedMeta('owner', null)
}Клиент:
ts
vimp.on('streamSyncedMetaChange', (change) => {
if (
change.entityType === vimp.entities.ENTITY_TYPE.Vehicle &&
change.key === 'fuel'
) {
console.log(`Vehicle #${change.entityId} fuel:`, change.newValue)
}
})
vimp.on('vehicleStreamIn', (vehicle) => {
if (!vehicle) return
if (vehicle.remoteId === null) return
const fuel = vimp.entities.getStreamSyncedMeta<number>(
vimp.entities.ENTITY_TYPE.Vehicle,
vehicle.remoteId,
'fuel',
)
console.log(`Vehicle #${vehicle.remoteId} streamed in with fuel ${fuel}`)
})Не храните GTA handle как постоянный идентификатор: при выходе сущности из стрима локальный handle перестаёт быть действительным.