Skip to content

项目结构与模块

text
example-plugin/
├─ manifest.json
├─ main.lua
├─ modules/
│  └─ settings.lua
└─ assets/
   └─ marker.png

加载模块

使用包内受控 require()

lua
local settings = {}

function settings.load()
    return {
        enabled = samp.storage.get("enabled", true),
        color = samp.storage.get("color", "orange")
    }
end

return settings
lua
local settings = require("modules.settings")
local state = settings.load()

模块在每个插件内部缓存,不能解析到已安装插件版本之外。

路径规则

路径必须是相对路径、使用 /,不能包含空片段、...、反斜杠或 NUL,也不能逃出插件包。manifest.json 上方不能再套一层目录。

HUD 图片使用 assets/marker.png 这样的包内相对路径。图片尺寸、文件大小、解码内存、单插件缓存和全局纹理内存都有上限,应复用少量资源。