Plugin API 1.0 参考
Plugin API 1.0 是 .splug 可以使用的公开契约。可以在运行时查询能力:
lua
if samp.api.has("entity.list", "1.0") then
-- 使用该能力
end| 命名空间 | 用途 |
|---|---|
samp.api | 版本和能力查询。 |
samp.log | 带插件归属的日志。 |
samp.events | 事件订阅。 |
samp.timer、samp.task | 有界延迟任务。 |
samp.storage | 私有持久化。 |
samp.format | 有界数字格式化。 |
samp.game、samp.server | 只读状态快照。 |
samp.player | 带世代校验的本地玩家 Handle。 |
samp.entity | 已流入服务器实体。 |
samp.ui、samp.draw | 设置菜单与 HUD。 |
samp.effects、samp.physics | 可恢复的受控效果。 |
any 能力通常可在初始化和受保护回调使用;managed 只能在托管回调使用;hud 只能在 draw.hud 使用。
详细签名分别见核心运行环境、本地玩家与车辆、 服务器实体、菜单与 HUD 绘制、 效果与物理以及完整事件回调参数。 权限与运行限制同样属于 API 1.0 正式契约。
Capability 契约
| 能力 | 权限 | 调用阶段 |
|---|---|---|
api.has | 无需权限 | any |
log | 无需权限 | any |
events.on | 无需权限 | any |
event.player.damage_before | game.player.write | any |
event.player.health_changed | game.player.read | any |
event.player.vehicle_entered | game.vehicle.read | any |
event.player.vehicle_left | game.vehicle.read | any |
event.player.interior_changed | game.state.read | any |
event.chat.message_received | chat.read | any |
event.chat.server_message_received | chat.read | any |
event.chat.bubble_received | chat.read | any |
event.checkpoint.entered | game.state.read | any |
event.checkpoint.left | game.state.read | any |
event.ui.menu_opened | ui.menu | any |
event.ui.menu_closed | ui.menu | any |
event.entity.streamed_in | game.entity.read | any |
event.entity.streamed_out | game.entity.read | any |
event.chat.message_sending | chat.intercept | any |
event.command.executing | command.intercept | any |
event.dialog.shown | dialog.read | any |
event.dialog.responding | dialog.intercept | any |
event.textdraw.shown | textdraw.read | any |
event.textdraw.hidden | textdraw.read | any |
event.textdraw.text_changed | textdraw.read | any |
event.textdraw.clicking | textdraw.intercept | any |
timer.after | 无需权限 | any |
task.spawn | 无需权限 | any |
task.sleep | 无需权限 | any |
storage.get | plugin.storage | any |
storage.set | plugin.storage | any |
storage.remove | plugin.storage | any |
format.number | 无需权限 | any |
game.state | game.state.read | any |
server.current | server.state.read | any |
ui.menu.register | ui.menu | any |
draw.text | ui.draw | hud |
draw.line | ui.draw | hud |
draw.rect | ui.draw | hud |
draw.image | ui.draw | hud |
draw.circle | ui.draw | hud |
draw.progress_bar | ui.draw | hud |
draw.world_to_screen | ui.draw | hud |
player.local_player | game.player.read | any |
player.is_valid | game.player.read | any |
player.position | game.player.read | any |
player.health | game.player.read | any |
player.armor | game.player.read | any |
player.velocity | game.player.read | any |
player.vehicle | game.vehicle.read | any |
vehicle.is_valid | game.vehicle.read | any |
vehicle.position | game.vehicle.read | any |
vehicle.health | game.vehicle.read | any |
vehicle.velocity | game.vehicle.read | any |
entity.get | game.entity.read | any |
entity.list | game.entity.read | any |
entity.is_valid | game.entity.read | any |
entity.position | game.entity.read | any |
entity.player.name | game.entity.read | any |
entity.player.npc | game.entity.read | any |
entity.player.state | game.entity.read | any |
entity.player.health | game.entity.read | any |
entity.player.armor | game.entity.read | any |
entity.player.vehicle_id | game.entity.read | any |
entity.vehicle.model | game.entity.read | any |
entity.vehicle.health | game.entity.read | any |
entity.vehicle.velocity | game.entity.read | any |
entity.vehicle.heading | game.entity.read | any |
entity.object.model | game.entity.read | any |
entity.object.rotation | game.entity.read | any |
entity.object.moving | game.entity.read | any |
entity.object.attachment | game.entity.read | any |
entity.actor.model | game.entity.read | any |
entity.actor.health | game.entity.read | any |
entity.actor.invulnerable | game.entity.read | any |
entity.actor.heading | game.entity.read | any |
entity.pickup.model | game.entity.read | any |
entity.pickup.pickup_type | game.entity.read | any |
entity.text_label.text | game.entity.read | any |
entity.text_label.color | game.entity.read | any |
entity.text_label.draw_distance | game.entity.read | any |
entity.text_label.test_los | game.entity.read | any |
entity.text_label.attachment | game.entity.read | any |
player.set_health | game.player.write | managed |
player.set_armor | game.player.write | managed |
player.set_position | game.player.write | managed |
player.set_velocity | game.player.write | managed |
vehicle.set_health | game.vehicle.write | managed |
vehicle.set_position | game.vehicle.write | managed |
vehicle.set_velocity | game.vehicle.write | managed |
effects.acquire | 无需权限 | managed |
effects.group | 无需权限 | any |
effects.release | 无需权限 | managed |
effects.player.physics_flags | game.physics.override | managed |
effects.player.collision_filter | game.physics.override | managed |
physics.create_surface | game.physics.override | managed |
surface.is_valid | game.physics.override | any |
surface.set_position | game.physics.override | managed |
surface.release | game.physics.override | managed |
require | 无需权限 | any |