Skip to Content

カスタム隠し場所

エクスポートされたRegisterStash関数を使用して、リソースの外部からカスタム隠し場所を設定することができます。

まず、隠し場所のプロパティを定義する必要がある。

隠し財産

  • id.K.である:string
    • データベース内で隠し場所を特定するための一意の名前。
  • のラベルが貼られている:string
    • 隠し場所を表示する際の表示名。
  • スロットnumber
    • 隠し場所のスロット数。
  • 重量である:number
    • 在庫の最大重量。
  • オーナー?stringまたはboolean
    • true:各プレイヤーは自分だけの隠し場所を持っているが、他のプレイヤーの隠し場所の開放を要求することができる。
    • false:隠し場所は1つだけで、全プレイヤーが共有する。
    • string:隠し場所は、指定された所有者(通常はプレーヤーの識別子)のものであることが明示されます。
  • グループ?table
    • ジョブ名と最低グレードのキーと値のペア。({["police"] = 0, ["ambulance"] = 2})
    • と名付けた:string
    • のグレードである:number
  • コーデ?vector3またはtable
    • 隠し場所の座標を設定することで、プレイヤーが近くにいない場合に隠し場所が開かないようにすることができます。
    • 隠し場所の座標を含むベクターまたはテーブル。

以下の値はハードセットされているが、データベースからロードされる可能性がある(特に未知のフィールドがある場合、例えばオーナー)。

-- Server local stash = { id = '42wallabyway', label = '42 Wallaby Way', slots = 50, weight = 100000, owner = 'char1:license' } AddEventHandler('onServerResourceStart', function(resourceName) if resourceName == 'ox_inventory' or resourceName == GetCurrentResourceName() then exports.ox_inventory:RegisterStash(stash.id, stash.label, stash.slots, stash.weight, stash.owner) end end) -- Client exports.ox_inventory:openInventory('stash', {id='42wallabyway', owner=property.owner})

以下のサンプルは、esx_property の db データに基づいています。

-- Server local properties MySQL.query('SELECT * FROM `properties`', {}, function(result) properties = result end) RegisterNetEvent('ox:loadStashes', function(id) local stash = properties[id] if stash then -- id: 1, name: WhispymoundDrive, label: 2677 Whispymound Drive, coords: {"x":118.748,"y":566.573,"z":175.697} ox_inventory:RegisterStash(stash.name, stash.label, 50, 100000, true, false, json.encode(stash.room_menu)) end end) -- Client local ox_inventory = exports.ox_inventory if ox_inventory:openInventory('stash', property.id) == false then TriggerServerEvent('ox:loadStashes') ox_inventory:openInventory('stash', property.id) end

リソース例

我々は、stash APIを適切に利用する方法を紹介するサンプルリソースをまとめた:

Last updated on