📜 共有
導入
- qb-core内の共有フォルダには、ジョブ、車両、アイテムなど、あらゆる情報が含まれています。このフォルダで、すべてを自分の仕様に合わせて設定するのに多くの時間を費やすことになります。Jenkinsハッシュは頻繁に使用されます。詳細については、こちらをご覧ください。ここ
[!NOTE] QBCoreは、データベースに依存せずにLuaテーブルを使用して静的情報を保存します。これにより、頻繁なデータベースクエリが不要になり、操作が高速化されます。共有エクスポート.mdそれは非常に強力なツールになります!
ユーティリティ
- 見つかった場所
qb-core/shared/main.lua
開始アイテム
スターターアイテムは、playerが初めてサーバーに参加したときに受け取る定義済みのアイテムです。
- アイテム名:
string - 額:
number
QBShared.StarterItems = {
phone = 1,
id_card = 1,
driver_license = 1,
}使用例:
for item, amount in pairs(QBCore.Shared.StarterItems) do
local item_info = QCore.Shared.Items[item]
print('Received '..amount..' '..item_info.label)
endランダムな文字列を生成する
指定された長さのランダムなstringを生成します
QBShared.RandomStr(length)- 長さ:
number - returns:
string
使用例:
local randomString = QBCore.Shared.RandomStr(8)
print(randomString) -- Example Output: "aBcD1234"ランダムな整数文字列を生成する
指定された長さのランダムな数値stringを生成します
QBShared.RandomInt(length)- 長さ:
number - returns:
string
使用例:
local randomInt = QBCore.Shared.RandomInt(6)
print(randomInt) -- Example Output: "473829"文字列を分割する
区切り文字に基づいてstringを部分に分割します
QBShared.SplitStr(str, delimiter)- 文字列:
string- 分割するstring - 区切り文字:
string- stringを分割するために使用される文字またはシーケンス - returns:
table
使用例:
local result = QBCore.Shared.SplitStr("apple,banana,orange", ",")
-- Result: { "apple", "banana", "orange" }空白をトリムする
stringから先頭と末尾の空白を削除します
QBShared.Trim(value)- 価値:
string- トリムするstring - returns:
string
使用例:
local trimmed = QBCore.Shared.Trim(" Hello World! ")
print(trimmed) -- Output: "Hello World!"数字を丸める
number を最も近い整数 number または指定された小数点以下の桁数 number に丸めます
QBShared.Round(value, numDecimalPlaces)- 価値:
number- numberを丸める - numDecimalPlaces(オプション):
number- 四捨五入する小数点以下の桁数 - returns:
number
使用例:
local roundedValue = QBCore.Shared.Round(5.6789, 2)
print(roundedValue) -- Output: 5.68車両追加変更
vehicleのエクストラを切り替えます
QBShared.ChangeVehicleExtra(vehicle, extra, enable)- vehicle:
number- vehicleエンティティ - 余分な:
number- 追加ID - 有効にする:
boolean- 追加機能を有効/無効にするかどうか
使用例:
QBCore.Shared.ChangeVehicleExtra(vehicle, 1, true)デフォルトの車両エクストラを設定する
vehicleのすべての追加機能をリセットし、指定された設定を適用します。
QBShared.SetDefaultVehicleExtras(vehicle, config)- vehicle:
number- vehicleエンティティ - 設定:
table- 有効/無効にする追加機能を定義する table
使用例:
local config = {
[1] = true, -- Enable extra 1
[2] = false, -- Disable extra 2
[3] = true -- Enable extra 3
}
QBCore.Shared.SetDefaultVehicleExtras(vehicle, config)アイテム
- 見つかった場所
qb-core/shared/items.lua
そのItemstable でqb-coreサーバーで利用可能なすべてのアイテムを定義します。各アイテムは、その動作、外観、機能を決定するいくつかのプロパティを持つオブジェクトとして表現されます。
| プロパティ | タイプ | 説明 |
|---|---|---|
name | string | アイテムの生成、付与、削除に使用される内部名。 |
label | string | インベントリに表示される表示名。 |
weight | number | アイテムの重量。インベントリの容量に影響します。 |
type | string | アイテムの種類(例:item、weapon)。 |
image | string | アイテムの画像のファイル名はqb-inventory/html/images. |
unique | boolean | アイテムがユニークかどうか(true) またはスタック可能 (false)。 |
useable | boolean | アイテムが使用可能かどうか。使用可能アイテムとして登録されている必要があります。 |
shouldClose | boolean | アイテムを使用するとインベントリが閉じられるかどうか(true または false)。 |
description | string | インベントリに表示されるアイテムの簡単な説明。 |
使用例: 基本アイテム定義
QBShared.Items = {
id_card = {
name = 'id_card', -- Internal name
label = 'ID Card', -- Display name in inventory
weight = 0, -- Item weight
type = 'item', -- Type of item (e.g., item, weapon)
image = 'id_card.png', -- Item image filename
unique = true, -- Is the item unique?
useable = true, -- Can the item be used?
shouldClose = false, -- Does it close the inventory on use?
description = 'A card containing all your information to identify yourself' -- Description
}
}求人
- 見つかった場所
qb-core/shared/jobs.lua
そのJobstable でqb-coreサーバー上で利用可能なすべての求人について、ランク、給与、具体的な特徴などを定義します。これにより、雇用における役割、責任、給与体系を効果的に管理できます。
使用例: グローバル設定
グローバル設定は、勤務状態をデフォルトでdefaultDutyログイン時にジョブの設定を保存するか、データベースに最後に保存された状態に基づいて保存するかを選択します。
QBShared.ForceJobDefaultDutyAtLogin = true -- true: Use job's defaultDuty | false: Use last saved duty state from databaseジョブオブジェクトのレイアウト
| プロパティ | タイプ | 説明 |
|---|---|---|
label | string | ジョブの表示名。 |
type | string | 仕事の種類(例:leo(法執行官向け) |
defaultDuty | boolean | player がログイン時に自動的に勤務開始になるかどうか。 |
offDutyPay | boolean | player が勤務時間外に給与を受け取るかどうか。 |
grades | table | 名前、支払い、その他のランク固有の属性を含む職務等級を定義する table。 |
成績表のレイアウト
| プロパティ | タイプ | 説明 |
|---|---|---|
name | string | 階級名(例:新兵、士官)。 |
payment | number | この等級の給与。 |
isboss | boolean | (オプション)true、このグレードはボス(例:Chief)としてマークされます。 |
使用例: 基本ジョブ定義
この例では、単一の等級を持つ失業中の仕事を定義します。
QBShared.Jobs = {
unemployed = {
label = 'Civilian', -- Display name
defaultDuty = true, -- Automatically on duty at login
offDutyPay = false, -- No payment while off duty
grades = {
{ name = 'Freelancer', payment = 10 } -- Single grade with payment
}
}
}使用例: 高度なジョブ定義
この例では、それぞれ特定の属性を持つ複数の等級を持つ警察の職務を定義します。
QBShared.Jobs = {
police = {
label = 'Law Enforcement', -- Display name
type = 'leo', -- Job type (e.g., law enforcement)
defaultDuty = true, -- Automatically on duty at login
offDutyPay = false, -- No payment while off duty
grades = {
{ name = 'Recruit', payment = 50 }, -- Rank 1: Recruit with $50 payment
{ name = 'Officer', payment = 75 }, -- Rank 2: Officer with $75 payment
{ name = 'Sergeant', payment = 100 }, -- Rank 3: Sergeant with $100 payment
{ name = 'Lieutenant', payment = 125 }, -- Rank 4: Lieutenant with $125 payment
{ name = 'Chief', isboss = true, payment = 150 }, -- Rank 5: Chief, marked as boss, with $150 payment
}
}
}ギャング
- 見つかった場所
qb-core/shared/gangs.lua
そのGangstable でqb-coreサーバー上で利用可能なすべてのギャングについて、ランク、給与、特定の機能などを定義します。これにより、メンバーの役割、責任、給与体系を効果的に管理できます。
ギャングオブジェクトのレイアウト
| プロパティ | タイプ | 説明 |
|---|---|---|
label | string | ギャングの表示名 |
grades | table | 名前やその他のランク固有の属性を含むギャングの等級を定義する table。 |
成績表のレイアウト
| プロパティ | タイプ | 説明 |
|---|---|---|
name | string | 階級名(例:新兵、執行官)。 |
isboss | boolean | (オプション)true、このグレードはボスとしてマークされます (例: ボス)。 |
使用例: 基本的なギャングの定義
この例では、単一のグレードで失業者のギャングを定義します。
QBShared.Gangs = {
none = {
label = 'No Gang', -- Display name
grades = {
{ name = 'Unaffiliated' } -- Single grade
}
}
}使用例: 高度なギャング定義
この例では、それぞれ特定の属性を持つ複数のグレードで、lost MC ギャングを定義します。
QBShared.Gangs = {
lostmc = {
label = 'The Lost MC', -- Display name
grades = {
{ name = 'Recruit' }, -- Rank 1
{ name = 'Enforcer' }, -- Rank 2
{ name = 'Shot Caller' }, -- Rank 3
{ name = 'Boss', isboss = true }, -- Rank 4 marked as boss
},
},
}車両
[!WARNING] 所有権のために vehicle をデータベースに保存する場合は、共有車両の table で定義する必要があります。
- 見つかった場所
qb-core/shared/vehicles.lua
そのVehiclestable でqb-coreサーバー上で利用可能なすべての車両(プロパティとカテゴリを含む)を定義します。このtableを使用すると、各vehicleに特定の属性を設定し、ゲーム内での動作を制御できます。
| プロパティ | タイプ | 説明 |
|---|---|---|
model | string | vehicle のスポーンコード (ゲーム内のモデル名と一致する必要があります)。 |
name | string | プレイヤーに表示される vehicle の表示名。 |
brand | string | vehicle のブランドまたはメーカー (例: 「Maxwell」、「Karin」)。 |
price | number | vehicle のゲーム内通貨での価格。 |
category | string | vehicleのカテゴリー(例:「コンパクト」、「スポーツ」)。車両クラスの取得 |
type | string | vehicleの種類(例:「自動車」、「自転車」)。車両の種類 |
shop | string | table | vehicleを入手できるショップ。単一のショップ(例:pdm)または複数のショップ(table)を指定できます。 |
QBShared.Vehicles = {
{
model = 'asbo', -- This has to match the spawn code of the vehicle
name = 'Asbo', -- This is the display of the vehicle
brand = 'Maxwell', -- This is the vehicle's brand
price = 4000, -- The price that the vehicle sells for
category = 'compacts', -- Category of the vehilce, stick with GetVehicleClass() options https://docs.fivem.net/natives/?_0x29439776AAA00A62
type = 'automobile', -- Vehicle type, refer here https://docs.fivem.net/natives/?_0x6AE51D4B & here https://docs.fivem.net/natives/?_0xA273060E
shop = 'pdm', -- Can be a single shop or multiple shops. For multiple shops for example {'shopname1','shopname2','shopname3'}
}
}[!NOTE] QBShared.Vehicles の table は、vehicle のモデルで自動的にインデックス化されます。そのため、以下のコマンドでプロパティにアクセスできます。
QBCore.Shared.Vehicles[model]
また、tableを作成します。QBShared.VehicleHashesvehicle のハッシュをキーとして保存します。
場合によっては、vehicle ハッシュしか使用できないことがあります。その場合は、以下の例に従って検索することができます。
local vehicleHash = 12345
local vehicleData = QBShared.VehicleHashes[vehicleHash]
print('Found matching model: '..vehicleData.model)
print(json.encode(vehicleData))
-- alternatively
for model, vehicleData in pairs(QBCore.Shared.Vehicles) do
if vehicleData.hash == vehicleHash then
print('Found matching model: '..model)
print(json.encode(vehicleData))
break
end
end兵器
[!WARNING] 武器はアイテムとして使用するためにshared/items.luaにも追加されます。このtableは、以下のメソッドで返されるハッシュ値を使って武器情報を参照するためのものです。現在の歩行兵器を取得する または武器ハッシュを返す同様のネイティブ関数
- 見つかった場所
qb-core/shared/weapons.lua
そのWeaponstable でqb-coreサーバーで利用可能なすべての武器を定義します。武器の名前、ラベル、種類、弾薬の種類、死亡通知のダメージ理由などの属性が含まれます。このtableを使用すると、プレイヤーがアクセスできる武器を管理およびカスタマイズできます。
武器オブジェクトのレイアウト
| プロパティ | タイプ | 説明 |
|---|---|---|
name | string | 武器の内部スポーン名(例:weapon_pistol)。 |
label | string | プレイヤーに表示される武器の表示名。 |
weapontype | string | 武器の種類(例:「ピストル」、「ショットガン」、「ライフル」)。 |
ammotype | string | 武器が使用する弾薬の種類(例:AMMO_PISTOL、AMMO_SHOTGUN)。 |
damagereason | string | 死亡通知に表示される、死亡原因を説明するカスタマイズ可能なメッセージ。 |
QBShared.Weapons = {
[`weapon_pistol`] = { -- Weapon hash (uses compile-time Jenkins hashes)
name = 'weapon_pistol', -- The internal spawn name of the weapon (e.g., weapon_pistol)
label = 'Walther P99', -- The display name of the weapon shown to players
weapontype = 'Pistol', -- The type of weapon (e.g., "Pistol", "Shotgun", "Rifle")
ammotype = 'AMMO_PISTOL', -- The type of ammo the weapon uses (e.g., AMMO_PISTOL, AMMO_SHOTGUN)
damageReason = 'Pistoled / Blasted / Plugged / Bust a cap in' -- A customizable message that appears in kill notifications to describe the cause of death
}
}