AgentSkillsCN

esx-framework

基于 ESX 框架(旧版)为 FiveM 开发资源,涵盖资源创建、核心对象(ESX)、xPlayer 函数、事件、回调、物品、职业、数据库(oxmysql)以及各类最佳实践。当用户涉及 FiveM、ESX、ESX 旧版,或提及 `ESX.GetCoreObject`、`xPlayer`、`ESX.GetPlayerFromId` 或 `esx:` 时,请参考此指南。

SKILL.md
--- frontmatter
name: esx-framework
description: Develops resources for FiveM using the ESX Framework (Legacy). Covers resource creation, Core Object (ESX), xPlayer functions, Events, Callbacks, Items, Jobs, Database (oxmysql), and best practices. Use when the user works with FiveM, ESX, ESX Legacy, or mentions `ESX.GetCoreObject`, `xPlayer`, `ESX.GetPlayerFromId`, or `esx:`.

ESX Framework Development

This skill provides guidelines and patterns for developing resources using the ESX Framework (Legacy).

1. Core Object Retrieval

ESX Legacy (New Way):

lua
local ESX = exports["es_extended"]:getSharedObject()

Legacy / Backwards Compatible:

lua
local ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

2. Key Concepts

Player Data (Server-side)

  • xPlayer: The main object for player interaction server-side.
  • ESX.GetPlayerFromId(source): Retrieves the xPlayer object.
  • xPlayer Methods: xPlayer.addMoney, xPlayer.setJob, xPlayer.addInventoryItem.

Callbacks (Server -> Client Data)

  • ESX.RegisterServerCallback (Server): Respond to client requests.
  • ESX.TriggerServerCallback (Client): Request data from server.

Items & Database

  • Items are defined in the database (items table) or ox_inventory.
  • Database typically uses oxmysql.

3. Standard Resource Structure

code
my-resource/
├── fxmanifest.lua
├── config.lua
├── client/
│   └── main.lua
├── server/
│   └── main.lua
└── locales/
    └── en.lua

4. Best Practices

  1. Use New Exports: Prefer exports["es_extended"]:getSharedObject() over the event trigger.
  2. Validate xPlayer: Always check if xPlayer then before using it.
  3. Secure Events: Use ESX.SecureNetEvent (if available) or manual checks.
  4. OneSync: Develop with OneSync Infinity in mind (server-side entity creation).

5. Documentation