Skip to content

Эффекты и физика

Эффекты — обратимые leases, связанные с плагином, сессией и поколением игрока. Создание, изменение и освобождение доступны только в управляемом callback. Ресурсы инвалидируются при выгрузке, очистке после ошибки, отключении, смерти или респавне.

samp.effects.acquire(name, options)

Возвращает Effect Handle с идемпотентным release(). Необязательный priority — целое -1000..1000, по умолчанию 0; максимум 64 эффекта на плагин.

Для "player.physics_flags" требуется game.physics.override и хотя бы один boolean-флаг: usesCollision, collidable, disableCollisionForce, applyGravity, onSolidSurface, isStanding, wasStanding. Каждый флаг разрешается отдельно: больший priority побеждает, при равенстве — более ранний lease.

Для "player.collision_filter" поддерживается:

lua
local lease = samp.effects.acquire("player.collision_filter", {
    priority = 0,
    mode = "only_surface",
    surface = surface
})

Surface должен быть действующим и принадлежать тому же плагину.

Группы

samp.effects.group(handles) принимает 1–64 действующих уникальных Effect Handle плагина и возвращает { release }. Групповой release идемпотентно освобождает все элементы.

Local Surface

samp.physics.create_surface({ position = Vector3 }) требует game.physics.override и доступного игрока. x/y находятся в -2500..2500, z — в -100000..100000; максимум 16 поверхностей на плагин.

МетодФазаРезультат
surface:is_valid()любаяboolean.
surface:set_position(vector)managedТе же пределы, без результата.
surface:release()managedИдемпотентный, без результата.

Не сохраняйте Handle; создавайте ресурсы заново после player.spawned.