Skip to Content

📜 共有

導入

  • 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サーバーで利用可能なすべてのアイテムを定義します。各アイテムは、その動作、外観、機能を決定するいくつかのプロパティを持つオブジェクトとして表現されます。

プロパティタイプ説明
namestringアイテムの生成、付与、削除に使用される内部名。
labelstringインベントリに表示される表示名。
weightnumberアイテムの重量。インベントリの容量に影響します。
typestringアイテムの種類(例:itemweapon)。
imagestringアイテムの画像のファイル名はqb-inventory/html/images.
uniquebooleanアイテムがユニークかどうか(true) またはスタック可能 (false)。
useablebooleanアイテムが使用可能かどうか。使用可能アイテムとして登録されている必要があります。
shouldClosebooleanアイテムを使用するとインベントリが閉じられるかどうか(true または false)。
descriptionstringインベントリに表示されるアイテムの簡単な説明。

使用例: 基本アイテム定義

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

ジョブオブジェクトのレイアウト

プロパティタイプ説明
labelstringジョブの表示名。
typestring仕事の種類(例:leo(法執行官向け)
defaultDutybooleanplayer がログイン時に自動的に勤務開始になるかどうか。
offDutyPaybooleanplayer が勤務時間外に給与を受け取るかどうか。
gradestable名前、支払い、その他のランク固有の属性を含む職務等級を定義する table。

成績表のレイアウト

プロパティタイプ説明
namestring階級名(例:新兵、士官)。
paymentnumberこの等級の給与。
isbossboolean(オプション)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サーバー上で利用可能なすべてのギャングについて、ランク、給与、特定の機能などを定義します。これにより、メンバーの役割、責任、給与体系を効果的に管理できます。


ギャングオブジェクトのレイアウト

プロパティタイプ説明
labelstringギャングの表示名
gradestable名前やその他のランク固有の属性を含むギャングの等級を定義する table。

成績表のレイアウト

プロパティタイプ説明
namestring階級名(例:新兵、執行官)。
isbossboolean(オプション)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に特定の属性を設定し、ゲーム内での動作を制御できます。

プロパティタイプ説明
modelstringvehicle のスポーンコード (ゲーム内のモデル名と一致する必要があります)。
namestringプレイヤーに表示される vehicle の表示名。
brandstringvehicle のブランドまたはメーカー (例: 「Maxwell」、「Karin」)。
pricenumbervehicle のゲーム内通貨での価格。
categorystringvehicleのカテゴリー(例:「コンパクト」、「スポーツ」)。車両クラスの取得 
typestringvehicleの種類(例:「自動車」、「自転車」)。車両の種類 
shopstring | tablevehicleを入手できるショップ。単一のショップ(例: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を使用すると、プレイヤーがアクセスできる武器を管理およびカスタマイズできます。

武器オブジェクトのレイアウト

プロパティタイプ説明
namestring武器の内部スポーン名(例:weapon_pistol)。
labelstringプレイヤーに表示される武器の表示名。
weapontypestring武器の種類(例:「ピストル」、「ショットガン」、「ライフル」)。
ammotypestring武器が使用する弾薬の種類(例:AMMO_PISTOLAMMO_SHOTGUN)。
damagereasonstring死亡通知に表示される、死亡原因を説明するカスタマイズ可能なメッセージ。
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 } }
Last updated on