Pulse Phone のドキュメント
インベントリ
4. アイテムとインベントリ
アイテムが必要なのは framework のあるサーバーだけです。ファイルは config/items/ に、画像は config/items/images/ にあります。
スマホが自動で行うこと。起動時に、オンにしている機能がどのアイテムを必要とするか(下の表)を判断し、その後:
| お使いのインベントリ | 何が起きるか |
|---|---|
| ESX と標準インベントリ | 足りないアイテムが ESX の items テーブルに追加されます。既存の行は変更されません。コンソールに、追加したものを示す1行が表示されます。アイテムを再読み込みできない古い ESX では、サーバーを一度再起動してください。config/items/esx.sql は手で追加する場合専用です。 |
| QBCore と qb-inventory(ps-、lj-inventory も) | サーバーの稼働中に、足りないアイテムが QBCore の共有アイテムに追加されます。qb-core 自身の phone のように、qb-core がすでに持っているアイテムはそのままです。コンソールに、追加したものを示す1行が表示されます。 |
| ox_inventory(ESX、Qbox、ox_core) | ox_inventory は自分のファイルからしかアイテムを読み込みません。起動時チェックは足りないアイテムだけを一覧にし、その項目をボックスの下に、ox_inventory/data/items.lua にそのまま貼り付けられる形で表示します。 |
| その他のインベントリ | 起動時チェックが足りないアイテムの名前を表示します。そのインベントリでの通常のアイテム追加方法で追加してください(「インベントリごとの作業」の下の表)。 |
重要
画像が自動でコピーされることはありません。起動時チェックが、足りない画像とその置き場所のフォルダーを名前で表示します。たとえば copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images。
起動時チェックには Items 行がひとつあります。すべてのアイテムがそろっていれば [OK]、足りなければ [FAIL] と、その下に足りない名前と対処法が表示されます。phone:health を実行すると、修正後にもう一度表示されます。
| アイテム | 必要になる場合 |
|---|---|
phone |
Config.Item.required = true(プレイヤーがスマホを持っている必要がある)の場合か、固有のスマホの場合のみ。 |
pulse_phone_box |
ストアがスマホを封をした箱で販売します。既定でオン(Config.Store.box)。 |
pulse_magpack, pulse_magpack_max, pulse_cable |
充電用アクセサリー。既定でオン(Config.Charging)。 |
pulse_router |
プレイヤーが自宅に設置するルーター、Pulse Home Wi-Fi。既定でオン(config/apps.lua)。 |
pulse_burner |
専用の番号を持つプリペイド式のスマホ、Pulse Burner。既定でオン(config/apps.lua)。 |
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector |
スマホの保護:ケース、防水ポーチ、画面保護フィルム。既定でオン(config/apps.lua)。 |
pulse_buds, pulse_ringlight, pulse_wallet |
Pulse Buds、Pulse Ring Light、Pulse Card Wallet。既定でオン(config/apps.lua)。 |
powerbank |
任意。古いモバイルバッテリーのアイテムで、Reserve として動作します。 |
pulse_phone_box_<finish> |
Config.Store.boxPerFinish = true の場合のみ。 |
radio(または任意の名前) |
Config.Radio.item を設定した場合のみ(セクション5、Radio)。ox_inventory と qb-core にはすでに radio アイテムがあります。 |
アイテムが足りなくてもスマホは起動します。ストアは箱をオフにするか、そのアイテムを販売から外し、コンソールが追加すべきアイテムの名前を表示します。
Reserve はスタックできます。満充電のパックはメタデータを持たないため、最大20個がひとつのスロットに入ります。使いかけで外したパックは、充電量をメタデータに持つ別のアイテムになるため(ox_inventory、qb-inventory、qs-inventory の場合)、空きスロットが必要です。アイテムのメタデータがない場合(standalone、ESX の標準インベントリ)は、使用中のパックだけを、キャラクターごと・サイズごとにひとつ追跡します。
Config.Item.required = true の場合(または固有のスマホの場合)、サーバーはインベントリ経由でスマホアイテムを確認し、持っていないプレイヤーからのスマホのリクエストを拒否します。アイテムを失うと、そのプレイヤーの通話は緊急通報も含めて終了し、スマホが閉じます。
封をした箱を他の人に渡す場合。ox_inventory、qb-inventory、qs-inventory では、箱のアイテム自体が購入したモデルとカラーを持っているため、開けた人がそのスマホを受け取ります。その他のインベントリでは、箱はただのアイテムで、モデルとカラーは購入者自身の購入記録にあります。渡された箱は、新しい持ち主自身の次の購入分として、または既定のモデルとカラーで開きます。Config.Store.boxPerFinish = true の場合、箱のアイテム名にカラーは残りますが、モデルは残りません。
お使いのインベントリに貼り付けるテキスト
アイテムの項目を自分で考える必要はありません。アイテムが足りないと、起動時チェックがお使いのインベントリ用のテキストをボックスの下にそのまま表示し、Settings > Server > Health Check でも同じテキストが Copy ボタン付きで表示されます。貼り付けて、インベントリとスマホを再起動し、もう一度 phone:health を実行してください。
| お使いのインベントリ | 表示されるもの | 貼り付け先 |
|---|---|---|
| ox_inventory(ESX、Qbox、ox_core、ND Core) | ox_inventory の項目 | ox_inventory/data/items.lua のテーブル内 |
| QBCore(qb-、ps-、lj-inventory) | QBCore の項目(スマホが自分で追加できなかった場合のみ) | qb-core/shared/items.lua |
| qs-inventory | QBCore 形式の項目 | qs-inventory のアイテムリスト |
| ESX 標準インベントリ | SQL 1行(スマホが自分で追加できなかった場合のみ) | データベースツールで実行し、再起動 |
| TMC | スマホが必要とするすべてのアイテムの TMC 用項目(TMC にはどれを持っているか問い合わせられないため) | TMC のアイテムリスト(sim_card があるファイル)。すでにあるものは残してください |
| その他のインベントリ | QBCore 形式の項目。ほとんどのインベントリが読める形式です | そのインベントリのアイテムリスト |
Reserve の場合、それぞれの見た目:
-- ox_inventory/data/items.lua
['pulse_magpack'] = { label = "Pulse Reserve", weight = 110, stack = true, close = true, consume = 0, description = "Magnetic battery pack. Fills 70% of a phone.", client = { export = "phone.usePack", image = "pulse_magpack.png" } },
-- qb-core/shared/items.lua, qs-inventory and similar
['pulse_magpack'] = { name = "pulse_magpack", label = "Pulse Reserve", weight = 110, type = 'item', image = "pulse_magpack.png", unique = false, useable = true, shouldClose = true, description = "Magnetic battery pack. Fills 70% of a phone." },
-- TMC
['pulse_magpack'] = { ['label'] = "Pulse Reserve", ['weight'] = 110, ['type'] = 'item', ['image'] = "pulse_magpack.png", ['unique'] = false, ['stackable'] = true, ['useable'] = true, ['shouldClose'] = true, ['description'] = "Magnetic battery pack. Fills 70% of a phone." },-- ESX default inventory
INSERT IGNORE INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
('pulse_magpack', 'Pulse Reserve', 1, 0, 1);ox_inventory 自身の phone アイテム。ox_inventory には、別のスマホスクリプト向けに作られた phone の項目が入っています。変更する必要はなく、使うと Pulse Phone が開きます。起動時チェックには、その項目がどうつながっているかを示す Phone item 行があります。別のスクリプトの export を示している場合([WARN]、または必須・固有のスマホの場合は [FAIL])にだけ、置き換え用の項目を表示します。その項目の元のスマホスクリプトがまだ動いている場合、アイテムはそちらを開きます。Phone item 行がその名前を表示するので、server.cfg から削除してください。
インベントリごとの作業
| インベントリ | アイテムの追加先 | 画像の置き場所 |
|---|---|---|
| ox_inventory(ESX、Qbox、ox_core) | 起動時チェックが表示する項目(または ox_inventory.lua 全体)を、ox_inventory/data/items.lua のテーブル内に貼り付けます。ox_inventory 自身の ['phone'] 項目は残してください(Pulse Phone が開きます)。Phone item 行で別のスクリプトが開くと表示された場合にだけ、表示された項目に置き換えてください |
ox_inventory/web/images/ |
| qb-inventory | 不要:起動時に追加されます。代わりに手で追加する場合は、qb-core.lua を qb-core/shared/items.lua に貼り付けます |
qb-inventory/html/images/ |
| ps-inventory、lj-inventory | 不要:qb-inventory と同じく起動時に追加されます | お使いのインベントリの画像フォルダー |
| qs-inventory | qb-core.lua を qb-core/shared/items.lua、または qs-inventory 自身のアイテムリストに貼り付けます |
お使いのインベントリの画像フォルダー |
| codem-inventory、core_inventory、tgiann-inventory、origen_inventory | 他のアイテムと同じ方法で、qb-core.lua にある名前、ラベル、重さを使ってアイテムリストに追加します(phone、powerbank、pulse_magpack、pulse_magpack_max、pulse_cable、pulse_router、pulse_burner、pulse_buds、pulse_ringlight、pulse_wallet、pulse_phone_box)。pulse_magpack.png を powerbank と pulse_magpack_max にも使ってください |
お使いのインベントリの画像フォルダー |
| ak47_inventory | アイテムを追加し、さらに下の onUse の行も追加します |
お使いのインベントリの画像フォルダー |
| ESX 標準インベントリ | 不要:起動時に追加されます。esx.sql は手で追加する方法です |
不要 |
| vRP 2 | 上の vRP のセクションを参照 | |
| Standalone | なし |
この表の他のインベントリでは、スマホが自分でアイテムを使用可能にします。ox_inventory は、ファイルにすでにある client = { export = 'phone....' } の行を使います。
ox_inventory:以前に別のスマホを使っていた場合は、その Item('phone', ...) フックも ox_inventory/modules/items/client.lua から削除してください。
ak47_inventory は、アイテムの使用処理を各アイテムの項目に持っています。以下を追加してください:
-- powerbank
server = { onUse = function(source) exports.phone:UsePowerbank(source) end },
-- pulse_magpack and pulse_magpack_max
server = { onUse = function(source, item) exports.phone:UseMagPack(source, item and item.slot, item and item.name) end },
-- pulse_cable
server = { onUse = function(source) exports.phone:UseChargingCable(source) end },
-- pulse_phone_box
server = { onUse = function(source, item) exports.phone:UseBox(source, item and item.slot) end },
-- pulse_router
server = { onUse = function(source) exports.phone:UseRouter(source) end },
-- pulse_burner
server = { onUse = function(source, item) exports.phone:UseBurner(source, item and item.slot) end },
-- pulse_case, pulse_case_clear, pulse_pouch, pulse_protector
server = { onUse = function(source, item) exports.phone:FitPhoneProtection(source, item and item.name) end },
-- pulse_buds
server = { onUse = function(source) exports.phone:UseBuds(source) end },
-- pulse_ringlight
server = { onUse = function(source) exports.phone:UseRingLight(source) end },
-- pulse_wallet
server = { onUse = function(source) exports.phone:UseCardWallet(source) end },固有のスマホ(Config.Item.unique = true)では電話番号がアイテムに記録されるため、アイテムを渡すとスマホそのものを渡すことになります。ox_inventory、qb-inventory、qs-inventory、core_inventory、codem-inventory のいずれかが必要です。