カスタム隠し場所
エクスポートされたRegisterStash関数を使用して、リソースの外部からカスタム隠し場所を設定することができます。
まず、隠し場所のプロパティを定義する必要がある。
隠し財産
- id.K.である:
string- データベース内で隠し場所を特定するための一意の名前。
- のラベルが貼られている:
string- 隠し場所を表示する際の表示名。
- スロット
number- 隠し場所のスロット数。
- 重量である:
number- 在庫の最大重量。
- オーナー?
stringまたはbooleantrue:各プレイヤーは自分だけの隠し場所を持っているが、他のプレイヤーの隠し場所の開放を要求することができる。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