关于 qbcore-framework
qbcore-framework 是面向 qb-core 资源开发的技能,帮助开发者处理玩家数据、回调及服务端和客户端职责。它强调服务端校验与状态管理,并明确不应直接套用于 Qbox。
主要功能
- 01指导 Player 与 PlayerData 的使用
- 02覆盖回调、工作、帮派和金钱操作
- 03说明物品与元数据管理
- 04区分服务端和客户端职责
- 05提供安全校验及状态管理规则
适用场景
- 01创建或修改 qb-core 资源
- 02实现玩家金钱、工作或帮派逻辑
- 03通过回调在客户端与服务端交换数据
- 04检查事件参数校验与玩家状态设计
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ germanfndez/ fiveai-skills --skill qbcore-framework安装后在 Claude Code 中输入/qbcore-framework确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
rules/best-practices.mdcore-concepts.mdplayer-methods.mdreference-links.md详细介绍
QBCore Framework
qb-core 的服务端/客户端 API:Player 对象、PlayerData、回调、工作、帮派、金钱和元数据。
激活约定
当用户创建或编辑 qb-core 资源、操作 Player/QBCore.PlayerData、需要通过 QBCore 使用工作、帮派、金钱、物品或元数据,或询问 QBCore 回调、事件或最佳实践时,加载此技能。
此技能适用于 qb-core(qbcore-framework)。如果用户使用的是 Qbox(qbx_core、exports.qbx_core),API 会有所不同:请说明这一点,不要盲目套用此技能。
硬性规则
- 只通过
local QBCore = exports['qb-core']:GetCoreObject()获取一次核心对象;不要在每个函数中都调用它。 Player仅存在于服务端(QBCore.Functions.GetPlayer(source));QBCore.PlayerData仅存在于客户端,并在QBCore:Client:OnPlayerLoaded后填充。- 始终检查 nil:调用任何方法前,先执行
if not Player then return end。 - 金钱、工作、帮派、物品和元数据必须在服务端通过
Player.Functions.*修改,绝不能从客户端修改。 - 调用
AddMoney、RemoveMoney、SetMoney时传入reason。 - 对同一状态应使用状态包或事件,不能同时使用两者。
- 在服务端验证每个由客户端提供的参数;绝不要信任客户端发送的金额、价格或物品名称。
- 通知、菜单、对话框和进度条优先使用 ox_lib。
- 循环中使用动态
Wait()值;除非需要逐帧执行任务,否则避免使用Wait(0)。
决策指南
| 需求 | 使用方式 |
|---|---|
| 客户端向服务端请求数据 | QBCore.Functions.CreateCallback + QBCore.Functions.TriggerCallback |
| 金钱 | Player.Functions.AddMoney/RemoveMoney/SetMoney/GetMoney(moneyType, ...) |
| 工作/值勤/帮派 | Player.Functions.SetJob、SetJobDuty、SetGang |
| 持久化的玩家标记 | Player.Functions.SetMetaData / GetMetaData |
| 物品(qb-inventory) | Player.Functions.AddItem/RemoveItem/GetItemByName/GetItemBySlot |
| 共享运行时状态 | 状态包(参见 rules/core-concepts.md) |
执行步骤
- 确认
qb-core在此资源之前启动;在客户端和服务端分别缓存QBCore。 - 确定执行端:在服务端修改和验证,在客户端显示。
- 获取
Player并检查 nil,然后验证每个由客户端提供的参数。 - 从决策指南中选择调用方式;阅读对应的规则文件以了解函数签名。
- 通过回调返回数据,不要使用成对事件。
输出约定
返回可运行的 Lua 代码,明确区分客户端和服务端,检查 Player 是否为 nil,并在金钱操作中提供原因。除非用户另有要求,UI 使用 ox_lib。
参考资料
- rules/core-concepts.md — 架构、PlayerData、Player 对象、事件、状态包。
- rules/player-methods.md — Player.Functions 金钱、工作、帮派、元数据和物品方法。
- rules/best-practices.md — 命名、缓存、等待、状态管理、安全性。
- rules/reference-links.md — QBCore 官方文档链接。
评论
支持 Markdown