Skip to content

Entity Handle

ID сетевого пула используется повторно. Полная идентичность сущности:

text
sessionId + entityType + entityId + streamGeneration
lua
local function inspect_entity(event)
    local entity = samp.entity.get(
        event.entityType,
        event.entityId,
        event.streamGeneration
    )

    if entity == nil or not entity:is_valid() then
        return
    end

    local position = entity:position()
    samp.log.info(
        entity.type .. "#" ..
        samp.format.number(entity.poolId, 0) ..
        " at " ..
        samp.format.number(position.x, 1) .. ", " ..
        samp.format.number(position.y, 1) .. ", " ..
        samp.format.number(position.z, 1)
    )
end

samp.events.on("entity.streamed_in", inspect_entity)

Поддерживаются player, vehicle, object, actor, pickup и text_label. Каждый Handle предоставляет поля идентичности, is_valid() и position(), а также методы своего типа.

Для базового списка используйте ограниченные страницы:

lua
local page = samp.entity.list("vehicle", 0, 64)
for _, vehicle in ipairs(page.items) do
    if vehicle:is_valid() then
        samp.log.info(samp.format.number(vehicle:model(), 0))
    end
end

Handle становится недействительным после stream out, повторного создания ID или смены сеанса.