qbcore-framework
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseQBCore Framework Development
QBCore Framework开发
This skill provides guidelines and patterns for developing resources using the QBCore Framework.
本技能提供了使用QBCore Framework开发资源的指南和模式。
1. Core Object Retrieval
1. Core Object 获取
To interact with QBCore, you must retrieve the Core Object. Always cache this in a local variable at the top of your scripts.
Client & Server:
lua
local QBCore = exports['qb-core']:GetCoreObject()要与QBCore进行交互,你必须获取Core Object。请始终在脚本顶部将其缓存到局部变量中。
客户端与服务器端通用:
lua
local QBCore = exports['qb-core']:GetCoreObject()2. Key Concepts
2. 核心概念
Player Data (Server-side)
玩家数据(服务器端)
- Identify players by Source temporarily, but use CitizenID for database persistence.
- QBCore.Functions.GetPlayer(source): Returns the Player object with all data.
- Player.PlayerData: Contains ,
job,gang,money,items, etc.metadata
- 临时使用Source标识玩家,但在数据库持久化时使用CitizenID。
- QBCore.Functions.GetPlayer(source): 返回包含所有数据的Player对象。
- Player.PlayerData: 包含、
job、gang、money、items等信息。metadata
Callbacks (Server -> Client Data)
Callbacks(服务器→客户端数据)
- Use QBCore.Functions.CreateCallback (Server) to send data to client.
- Use QBCore.Functions.TriggerCallback (Client) to request data from server.
- Rule: Never trust client data blindly in callbacks. Always validate on server.
- 使用QBCore.Functions.CreateCallback(服务器端)向客户端发送数据。
- 使用QBCore.Functions.TriggerCallback(客户端)从服务器请求数据。
- 规则: 在回调中切勿盲目信任客户端数据,务必在服务器端进行验证。
Items
物品
- Use QBCore.Functions.CreateUseableItem (Server) to register items.
- Items are defined in (or
qb-core/shared/items.lua).qb-inventory
- 使用QBCore.Functions.CreateUseableItem(服务器端)注册物品。
- 物品定义在(或
qb-core/shared/items.lua)中。qb-inventory
Database
数据库
- QBCore uses oxmysql by default.
- Use ,
MySQL.query,MySQL.insert,MySQL.update.MySQL.scalar
- QBCore默认使用oxmysql。
- 使用、
MySQL.query、MySQL.insert、MySQL.update方法。MySQL.scalar
3. Standard Resource Structure
3. 标准资源结构
my-resource/
├── fxmanifest.lua
├── config.lua
├── client/
│ └── main.lua
└── server/
└── main.luamy-resource/
├── fxmanifest.lua
├── config.lua
├── client/
│ └── main.lua
└── server/
└── main.lua4. Best Practices
4. 最佳实践
- Cache Core Object: Do not call inside loops.
exports['qb-core']:GetCoreObject() - Use Callbacks for Data: Avoid for data retrieval if a callback is cleaner.
TriggerClientEvent - Validate Inputs: Client can send any data. Verify job, money, and ownership on server.
- Optimized Loops: Use dynamic sleep (Wait) based on distance.
- Localization: Use or standard
qb-core/shared/locale.luaobject if available.Lang
- 缓存Core Object: 不要在循环内调用。
exports['qb-core']:GetCoreObject() - 使用回调获取数据: 如果回调方式更简洁,避免使用进行数据检索。
TriggerClientEvent - 验证输入: 客户端可能发送任意数据,需在服务器端验证职业、金钱和所有权。
- 优化循环: 根据距离使用动态休眠(Wait)。
- 本地化: 使用或可用的标准
qb-core/shared/locale.lua对象。Lang
5. Documentation
5. 文档
- Official Docs: https://docs.qbcore.org/
- Github: https://github.com/qbcore-framework/qb-core