受控写入与 Effect
写 API 需要明确权限和 managed 回调阶段,并检查 Handle、会话、有限数值和值域。
玩家与载具写入
game.player.write 和 game.vehicle.write 可修改受支持的生命值、护甲、位置和速度:
lua
samp.events.on("player.spawned", function()
local player = samp.player.local_player()
if player == nil or not player:is_valid() then
return
end
player:set_health(100)
player:set_armor(100)
end)服务器拥有的状态可能被后续同步覆盖,客户端写入不代表获得服务器权限。
Effect 租约
Effect 是可恢复的宿主管理覆盖。多个插件可以通过优先级申请字段;释放或卸载某个租约后,会恢复剩余请求合并后的状态。
lua
local flags
samp.events.on("player.spawned", function()
flags = samp.effects.acquire(
"player.physics_flags",
{
onSolidSurface = true,
isStanding = true,
priority = 50
}
)
end)
samp.events.on("session.ended", function()
if flags ~= nil then
flags:release()
flags = nil
end
end)game.physics.override 是高风险权限。只申请必要字段,及时释放,并测试卸载、死亡、重连与会话结束。已经释放或失效的 Surface、Effect 和 Handle 都不能复用。