mcpField
Q
qbcore-framework

qbcore-framework

github.com/proelias7開発783 回インストール4 週間前に更新
リポジトリ

qbcore-framework について

QBCore Framework Development は、QBCore Framework を使ったリソース開発の指針です。開発者向けに、プレイヤーデータ、コールバック、アイテム、データベースアクセス、リソース構成を説明します。

主な機能

  1. 01QBCore Core Object の取得
  2. 02プレイヤーデータと CitizenID の扱い
  3. 03サーバー・クライアント間のコールバックパターン
  4. 04使用可能アイテムの登録
  5. 05データベースクエリのパターン

活用シーン

  1. 01QBCore リソースの構成
  2. 02サーバー検証を伴うプレイヤーデータ処理
  3. 03使用可能アイテムとデータベース操作の追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/proelias7/fivem-skill --skill qbcore-framework

インストール後、Claude Code で/qbcore-frameworkを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

best-practices.md
examples.md
reference.md
templates.md

詳細

QBCore フレームワークの開発

言語ルール: 内部の推論は簡潔な英語で行います。ユーザーに表示するメッセージと出力はすべて、ユーザーの言語で記述します。

このスキルでは、QBCore Framework を使用したリソース開発のガイドラインとパターンを説明します。

1. コアオブジェクトの取得

QBCore と連携するには、コアオブジェクトを取得する必要があります。スクリプトの先頭で、必ずローカル変数にキャッシュしてください。

クライアントとサーバー:

local QBCore = exports['qb-core']:GetCoreObject()

2. 主な概念

プレイヤーデータ(サーバー側)
  • プレイヤーの識別には一時的に Source を使用し、データベースへの永続化には CitizenID を使用してください。
  • QBCore.Functions.GetPlayer(source):すべてのデータを含む Player オブジェクトを返します。
  • Player.PlayerData:job、gang、money、items、metadata などが含まれます。
コールバック(サーバーからクライアントへのデータ送信)
  • QBCore.Functions.CreateCallback(サーバー)を使用して、クライアントにデータを送信します。
  • QBCore.Functions.TriggerCallback(クライアント)を使用して、サーバーにデータを要求します。
  • ルール: コールバックでクライアントのデータを安易に信用しないでください。必ずサーバー側で検証してください。
アイテム
  • QBCore.Functions.CreateUseableItem(サーバー)を使用して、アイテムを登録します。
  • アイテムは qb-core/shared/items.lua(または qb-inventory)で定義します。
データベース
  • QBCore はデフォルトで oxmysql を使用します。
  • MySQL.query、MySQL.insert、MySQL.update、MySQL.scalar を使用します。

3. 標準的なリソース構成

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

4. ベストプラクティス

  1. コアオブジェクトをキャッシュする: ループ内で exports['qb-core']:GetCoreObject() を呼び出さないでください。
  2. データにはコールバックを使用する: コールバックのほうが適切な場合は、データ取得に TriggerClientEvent を使用しないでください。
  3. 入力を検証する: クライアントは任意のデータを送信できます。サーバー側でジョブ、所持金、所有権を確認してください。
  4. ループを最適化する: 距離に応じて動的に待機時間(Wait)を設定してください。
  5. ローカライズ: 利用できる場合は、qb-core/shared/locale.lua または標準の Lang オブジェクトを使用してください。

5. ドキュメント

コメント