Документація Pulse Phone
Інвентарі
4. Предмети та інвентарі
Предмети потрібні лише на серверах із фреймворком. Файли лежать у config/items/, а зображення — у config/items/images/.
Що телефон робить сам. Під час запуску він визначає, які предмети потрібні увімкненим вами функціям (таблиця нижче), а потім:
| Ваш інвентар | Що відбувається |
|---|---|
| ESX зі стандартним інвентарем | Відсутні предмети додаються в таблицю items ESX. Наявні рядки ніколи не змінюються. Консоль виводить один рядок із переліком доданого. На старішому ESX, який не вміє перезавантажувати предмети, один раз перезапустіть сервер. config/items/esx.sql потрібен лише для ручного додавання. |
| QBCore з qb-inventory (а також ps-, lj-inventory) | Відсутні предмети додаються в shared items QBCore, поки сервер працює. Предмет, який уже є в qb-core, як-от його власний phone, залишається як є. Консоль виводить один рядок із переліком доданого. |
| 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 (лише якщо телефон не зміг додати їх сам) | Ваш інструмент для бази даних, потім перезапуск |
| 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);Власний предмет phone в ox_inventory. 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.