📊 プレイヤーデータ
導入
そのプレイヤーデータオブジェクト内qb-coreplayerのキャラクターに関するすべての情報(個人情報、職業、ギャング所属、メタデータなど)を保存します。これらの値は、config.luaファイルのqb-core。
このガイドでは、playerデータ構造、デフォルト値、およびアクセス方法や変更方法の概要を説明します。
QBCore
├── Players
│ ├── [source]
│ ├── PlayerData
│ ├── citizenid: string (Unique identifier)
│ ├── cid: number (Character ID)
│ ├── money: table
│ │ └── { cash: number, bank: number }
│ ├── charinfo: table
│ │ ├── firstname: string
│ │ ├── lastname: string
│ │ ├── ...
│ ├── job: table
│ │ ├── name: string
│ │ ├── label: string
│ │ ├── payment: number
│ │ ├── onduty: boolean
│ │ ├── isboss: boolean
│ │ └── grade: table
│ │ ├── name: string
│ │ └── level: number
│ ├── gang: table
│ │ ├── name: string
│ │ ├── label: string
│ │ ├── isboss: boolean
│ │ └── grade: table
│ │ ├── name: string
│ │ └── level: number
│ ├── metadata: table
│ │ ├── hunger: number
│ │ ├── thirst: number
│ │ ├── stress: number
│ │ ├── isdead: boolean
│ │ └── ...
│ ├── position: vector3
│ └── items: table (inventory items)構成
playerデータのデフォルト値は、config.luaファイルのqb-coreこれらのデフォルトはQBConfig.Player.PlayerDefaults新しいキャラクターを作成するときにplayerが何から始まるかを決定します
プレーヤーデータオブジェクトの構造
[!NOTE] 現在
qb-coreバージョン1.3.0(fxmanifest.luaをご確認ください)では、playerデータにアクセスするためにコアをインポートする必要はありません。このように呼び出すことができます。
exports['qb-core']:GetPlayer(source)— サーバー
exports['qb-core']:GetPlayerData()- クライアント
[!NOTE] サーバー上のplayerオブジェクトにアクセスする場合
QBCore.Functions.GetPlayerソース(player ネット ID)を渡す — 例に示す
クライアント上のplayerオブジェクトにアクセスするときは、何も渡す必要はなく、単に呼び出すだけで済みます。QBCore.Functions.GetPlayerData
関数を呼び出す代わりにplayerデータに直接アクセスしたい場合は、この形式で行うことができます。QBCore.Players[source].PlayerDataしかし、それはお勧めできません
以下は、playerデータ構造、そのプロパティ、デフォルト値、およびplayerオブジェクトを取得するときにそれらにアクセスする方法の内訳です。
識別表
| プロパティ | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
citizenid | string | 生成元CreateCitizenId | player の一意の識別子。 |
cid | number | 1 | 文字 ID (複数文字のシステムに使用されます)。 |
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('qb-docs:server:getPlayerInfo', function(source)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
local citizenid = Player.PlayerData.citizenid
print(citizenid)
end)マネーテーブル
| プロパティ | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
money | table | { cash = 0, bank = 0 } | player の現金と銀行残高が含まれます。 |
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('qb-docs:server:getPlayerInfo', function(source)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
local money = Player.PlayerData.money
local cash = money.cash
local bank = money.bank
print(cash, bank)
end)キャラクター情報テーブル
| プロパティ | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
charinfo | table | { firstname, lastname, ... } | player に関する基本的な個人情報。 |
サブフィールド:
| サブフィールド | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
firstname | string | "Firstname" | player の名前。 |
lastname | string | "Lastname" | player の姓。 |
birthdate | string | "00-00-0000" | player の生年月日。 |
gender | number | 0 | player の性別 (男性は 0、女性は 1)。 |
nationality | string | "USA" | player の国籍。 |
phone | string | 生成元CreatePhoneNumber | player の携帯電話 number。 |
account | string | 生成元CreateAccountNumber | player の銀行口座 number。 |
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('qb-docs:server:getPlayerInfo', function(source)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
local charinfo = Player.PlayerData.charinfo
local firstname = Player.PlayerData.firstname
local lastname = Player.PlayerData.lastname
local birthdate = Player.PlayerData.birthdate
local gender = Player.PlayerData.gender
local nationality = Player.PlayerData.nationality
local phone = Player.PlayerData.phone
local account = Player.PlayerData.account
print("Player's name:", firstname, lastname)
end)ジョブテーブル
| プロパティ | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
job | table | { name = 'unemployed', ... } | playerの現在の仕事と関連情報。 |
サブフィールド
| サブフィールド | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
name | string | "unemployed" | ジョブ名。 |
label | string | "Civilian" | ジョブの表示ラベル。 |
payment | number | 10 | playerの給料。 |
onduty | boolean | false | player が運用中かどうか。 |
isboss | boolean | false | player がジョブのボスであるかどうか。 |
grade | table | { name = 'Freelancer', ... } | playerのジョブグレード。 |
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('qb-docs:server:getPlayerInfo', function(source)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
local jobInfo = Player.PlayerData.job
local name = jobInfo.name
local label = jobInfo.label
local payment = jobInfo.payment
local onduty = jobInfo.onduty
local isboss = jobInfo.isboss
print("Player's job:", name)
print("Job label:", label)
end)ギャングテーブル
| プロパティ | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
gang | table | { name = 'Unaffiliated', ... } | player の現在のギャングと関連情報。 |
サブフィールド
| サブフィールド | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
name | string | "Unaffiliated" | ギャングの名前。 |
label | string | "No Gang" | ギャングの表示ラベル。 |
isboss | boolean | false | player がジョブのボスであるかどうか。 |
grade | table | { name = 'Unaffiliated', ... } | playerのジョブグレード。 |
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('qb-docs:server:getPlayerInfo', function(source)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
local gangInfo = Player.PlayerData.gang
local name = gangInfo.name
local label = gangInfo.label
print("Player's gang:", name)
print("Gang label:", label)
end)メタデータテーブル
| プロパティ | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
hunger | number | 100 | player の空腹レベル (0~100)。 |
thirst | number | 100 | player の渇きレベル (0~100)。 |
stress | number | 0 | player のストレスレベル (0~100)。 |
isdead | boolean | false | player が故障しているかどうか。 |
inhale | boolean | false | player が手錠をかけられているかどうか。 |
phone | table | {} | インストールされたアプリなどの電話固有のデータを保存します。 |
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('qb-docs:server:getPlayerInfo', function(source)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
local metadata = Player.PlayerData.metadata
local hunger = metadata.hunger
local thirst = metadata.thirst
print('Hunger Level: ', hunger)
print('Thirst Level: ', thirst)
end)プレイヤーオブジェクト関数
サーバー上で作成されるすべてのplayerには、特定の関数が付属しています。これらの関数は、playerから直接呼び出すことができます。
プレイヤーデータの更新
クライアントとサーバー上のプレイヤーデータを更新する
[!NOTE] この関数はイベントをトリガーします
QBCore:Player:SetPlayerData
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.UpdatePlayerData()ジョブの設定
playerのジョブとグレードを設定する
- 仕事:
string - 学年:
number - returns:
boolean- 成功した場合は true、失敗した場合は false
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.SetJob('police', 1)セットギャング
プレイヤーのギャングとグレードを設定する
- 時間:
string - 学年:
number - returns:
boolean- 成功した場合は true、失敗した場合は false
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.SetGang('lostmc', 1)通知
playerに通知を表示します
- 文章:
string - タイプ:
string— エラー、成功、プライマリ、警告 - 長さ(オプション):
number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.Notify('Hello!', 'success', 5000)アイテムあり
[!NOTE] アイテムの有無を確認するには、インベントリエクスポートを使用することをお勧めします。この関数は、そのアイテムにルーティングするだけです。
- アイテム:
string | table - 額:
number - returns:
boolean
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.HasItem('water_bottle', 1)名前を取得
プレイヤーのフルキャラクター名を取得します
- returns:
string
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.GetName()ジョブデューティの設定
playerのオン/オフデューティを設定します
[!NOTE] この関数はイベントをトリガーします
QBCore:Server:OnJobUpdateそしてQBCore:Client:OnJobUpdateまた、機能を起動しますUpdatePlayerData
- 義務:
boolean
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.SetJobDuty(true)プレイヤーデータの設定
playerのplayerデータ値をその名前で具体的に設定します
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
- 鍵:
string - 価値:
string | table
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.SetPlayerData('position', vector3(-425.3, 1123.6, 325.0))メタデータの設定
player のメタデータ値をその名前で具体的に設定します
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
- 鍵:
string - 価値:
string | table | number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.SetMetaData('hunger', 80)メタデータの取得
playerメタデータの値をその名前で取得します
- 価値:
string - returns:
string | table | number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.GetMetaData('hunger')追加担当者
名前を指定してレップにレップ値を追加します
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
[!NOTE] さまざまな種類の担当者を追加します
qb-core/config.lua
- 担当者:
string - 額:
number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.AddRep('selling', 10)削除担当者
名前によって担当者の価値が下がる
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
[!NOTE] さまざまな種類の担当者を追加します
qb-core/config.lua
- 担当者:
string - 額:
number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.RemoveRep('selling', 10)ゲットレップ
名前を指定して rep の現在の値を取得します
- 担当者:
string - returns:
number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.GetRep('selling')追加マネー
特定の通貨の種類にその名前で価値を追加します
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
- お金:
string - returns:
boolean
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.AddMoney('cash', 1000)お金を削除
特定の通貨の種類の価値をその名前で減らします
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
- お金:
string - returns:
boolean
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.RemoveMoney('cash', 1000)お金を設定する
特定の通貨タイプの値をその名前で設定します
[!NOTE] この関数は、次の関数もトリガーします
UpdatePlayerData
- お金:
string - returns:
boolean
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.SetMoney('cash', 1000)ゲットマネー
指定された通貨型の値を返します
- お金:
string - returns:
number
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.GetMoney('cash')保存
playerのセーブをトリガーします
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.Save()ログアウト
playerを強制的にログアウトしてマルチキャラクタ画面に戻る
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.Logout()追加メソッド
そのAddMethod関数を使用すると、playerオブジェクトにカスタムメソッド(関数)を動的に追加できます。これは、playerの機能をモジュール化して再利用可能に拡張する場合に特に便利です。
[!WARNING] メソッドが既に存在するかどうかを確認することをお勧めします。このチェックを実行することで確認できます。
if Player.Functions.MyMethod then
print("Method already exists!")
end>
- 方法:
string - ハンドラー:
function
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.AddMethod('Greet', function()
print("Hello, " .. Player.Functions.GetName() .. "!")
)
Player.Functions.Greet()フィールドの追加
そのAddField関数を使用すると、playerオブジェクトにカスタムフィールド(変数またはデータ)を動的に追加できます。これは、デフォルトのフィールドではないplayer固有の追加データを格納するのに役立ちます。PlayerData 構造
[!WARNING] フィールドが既に存在するかどうかを確認することをお勧めします。このチェックを実行することで確認できます。
if Player.MyField then
print("Field already exists!")
end>
- 分野:
string - データ:
any
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
Player.Functions.AddField("Skills", {
hacking = 1,
driving = 3,
shooting = 2
})