用途
esx-framework 是一个面向 ESX Legacy 的技能参考,服务于 FiveM 服务器上 ESX 资源的创建与编辑。当任务涉及 ESX、es_extended、xPlayer、PlayerData、ESX.GetPlayerFromId、ESX.RegisterServerCallback、ESX 职业、经济或库存时,可以加载该技能以获得对应的 API 用法与规范。
主要能力
技能覆盖服务端与客户端两侧的核心接口:
- 共享对象:通过
ESX = exports['es_extended']:getSharedObject()获取 ESX 对象。 - 服务端玩家对象:xPlayer 仅存在于服务端,使用
ESX.GetPlayerFromId(source)获取;也支持ESX.GetPlayerFromIdentifier按标识符查找,以及ESX.GetExtendedPlayers(key, value)按职业等条件筛选玩家。 - 客户端玩家数据:
ESX.PlayerData仅存在于客户端,读取前需等待 ESX 并确认ESX.IsPlayerLoaded()。 - 数据变更:金钱、物品、武器、职业与 metadata 通过服务端的 xPlayer.* 方法修改,不在客户端进行。
- 回调与事件:客户端向服务端请求数据使用
ESX.RegisterServerCallback与ESX.TriggerServerCallback;服务端向单个玩家推送事件使用xPlayer.triggerEvent(name, ...);仅服务端可触发的客户端事件使用ESX.SecureNetEvent。 - 其他接口:可用物品通过
ESX.RegisterUsableItem(item, cb)注册;带权限组的管理员命令通过ESX.RegisterCommand(name, group, cb, allowConsole, suggestion)注册。
使用方式
技能给出了明确的执行步骤与决策规则:
- 确认 es_extended 先于资源启动,并按服务端/客户端分别获取 ESX。
- 决定逻辑所在侧:变更与校验放在服务端,显示放在客户端。
- 获取 xPlayer 后先做 nil 检查(例如
if not xPlayer then return end),再校验所有来自客户端的参数。 - 依据“需求—调用”对照选择合适接口,并阅读对应规则文件获取函数签名。
- 数据通过回调返回,而不是使用成对事件。
资金操作需传入原因(addMoney、removeMoney、addAccountMoney、removeAccountMoney 均需 reason)。安全方面,客户端回调(ESX.TriggerClientCallback、ESX.AwaitClientCallback)不得用于任何敏感决策,因为客户端可以伪造返回值;仅服务端可触发的客户端事件应使用 ESX.SecureNetEvent。UI 方面,通知、菜单、对话框与进度条优先使用 ox_lib 而非 ESX UI。性能方面,缓存 PlayerPedId() 并在 esx:playerPedChanged 时更新,避免无必要的 Wait(0) 循环。输出应为可运行的 Lua,明确区分客户端与服务端代码,对 xPlayer 做 nil 检查,并在金钱操作上附带原因。
适用场景
- 创建或编辑 ESX 资源。
- 处理 xPlayer 或 ESX.PlayerData。
- 通过 ESX 实现职业、金钱、账户、物品或武器相关功能。
- 询问 ESX 回调、事件或最佳实践。
限制
资料未提供该技能的安装方式、收费、价格、平台支持范围或实际效果说明;上述内容仅为 API 用法与开发规范参考,具体实现需以官方文档为准。参考的规则文件包括 core-concepts.md、client-functions.md、server-functions.md、xplayer-methods.md、events-callbacks.md、best-practices.md 与 reference-links.md;上游文档地址为 https://docs.esx-framework.org。