SuperAPI AI 工具集

esx-framework

编程与开发

查看项目

更新于 10-15 09:24

技能介绍

用途

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) 注册。

使用方式

技能给出了明确的执行步骤与决策规则:

  1. 确认 es_extended 先于资源启动,并按服务端/客户端分别获取 ESX。
  2. 决定逻辑所在侧:变更与校验放在服务端,显示放在客户端。
  3. 获取 xPlayer 后先做 nil 检查(例如 if not xPlayer then return end),再校验所有来自客户端的参数。
  4. 依据“需求—调用”对照选择合适接口,并阅读对应规则文件获取函数签名。
  5. 数据通过回调返回,而不是使用成对事件。

资金操作需传入原因(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。