Docs van Pulse Phone
Inventories
4. Items en inventories
Items zijn alleen nodig op servers met een framework. De bestanden staan in config/items/ en de afbeeldingen in config/items/images/.
Wat de telefoon zelf doet. Bij het opstarten bepaalt hij welke items de features die je hebt aangezet nodig hebben (de tabel hieronder), en dan:
| Je inventory | Wat er gebeurt |
|---|---|
| ESX met de standaard inventory | De ontbrekende items worden toegevoegd aan de items-tabel van ESX. Bestaande rijen worden nooit aangepast. De console print één regel met wat er is toegevoegd. Op een oudere ESX die zijn items niet opnieuw kan laden, herstart je de server één keer. config/items/esx.sql is alleen om ze met de hand toe te voegen. |
| QBCore met qb-inventory (ook ps-, lj-inventory) | De ontbrekende items worden toegevoegd aan de shared items van QBCore terwijl de server draait. Een item dat qb-core al heeft, zoals zijn eigen phone, blijft zoals het is. De console print één regel met wat er is toegevoegd. |
| ox_inventory (ESX, Qbox, ox_core) | ox_inventory leest items alleen uit zijn eigen bestand. De opstartcontrole noemt alleen de ontbrekende items en print hun entries onder het kader, klaar om te plakken in ox_inventory/data/items.lua. |
| Elke andere inventory | De opstartcontrole noemt de ontbrekende items. Voeg ze toe zoals die inventory items toevoegt (de tabel onder "Wat je moet doen voor jouw inventory"). |
Belangrijk
Afbeeldingen worden nooit voor je gekopieerd. De opstartcontrole noemt elke ontbrekende afbeelding en de map waar hij in moet, bijvoorbeeld copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.
De opstartcontrole heeft één Items-regel: [OK] als elk item aanwezig is, of [FAIL] met de ontbrekende namen en de oplossing eronder. phone:health print hem opnieuw nadat je iets hebt opgelost.
| Item | Je hebt het nodig als |
|---|---|
phone |
Alleen met Config.Item.required = true (spelers moeten een telefoon bij zich hebben) of unieke telefoons. |
pulse_phone_box |
De winkel verkoopt telefoons in een verzegelde doos. Standaard aan (Config.Store.box). |
pulse_magpack, pulse_magpack_max, pulse_cable |
De laadaccessoires. Standaard aan (Config.Charging). |
pulse_router |
Pulse Home Wi-Fi, de router die spelers thuis neerzetten. Standaard aan (config/apps.lua). |
pulse_burner |
De Pulse Burner, een prepaid telefoon met een eigen nummer. Standaard aan (config/apps.lua). |
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector |
Telefoonbescherming: hoesjes, de waterdichte pouch en de screenprotector. Standaard aan (config/apps.lua). |
pulse_buds, pulse_ringlight, pulse_wallet |
Pulse Buds, de Pulse Ring Light en de Pulse Card Wallet. Standaard aan (config/apps.lua). |
powerbank |
Optioneel. Het oude powerbank-item; het werkt als een Reserve. |
pulse_phone_box_<finish> |
Alleen met Config.Store.boxPerFinish = true. |
radio (of elke andere naam) |
Alleen als je Config.Radio.item instelt (sectie 5, Radio). ox_inventory en qb-core hebben al een radio-item. |
Als een item ontbreekt, start de telefoon nog steeds. De winkel zet de dozen uit of haalt dat item uit de verkoop, en de console noemt het item dat je moet toevoegen.
Reserves stapelen. Volle packs hebben geen metadata, dus er passen er tot 20 in één slot. Een pack dat half gebruikt wordt afgehaald, wordt een eigen item met de lading in de metadata (op ox_inventory, qb-inventory en qs-inventory), dus het heeft een vrij slot nodig. Zonder itemmetadata (standalone, de standaard ESX-inventory) wordt alleen het pack in gebruik bijgehouden, één per personage per formaat.
Met Config.Item.required = true (of unieke telefoons) controleert de server het telefoonitem via je inventory en weigert hij telefoonverzoeken van een speler die het niet heeft. Raakt de speler het item kwijt, dan eindigen zijn gesprekken, noodoproepen inbegrepen, en sluit de telefoon.
Een verzegelde doos aan iemand anders geven. Op ox_inventory, qb-inventory en qs-inventory draagt het doositem zelf het model en de afwerking die gekocht zijn, dus wie hem opent krijgt die telefoon. Op elke andere inventory is de doos een gewoon item en staan het model en de afwerking in het eigen aankoopregister van de koper: een weggegeven doos opent als de volgende eigen aankoop van de nieuwe eigenaar, of als het standaardmodel met de standaardafwerking. Met Config.Store.boxPerFinish = true houdt de naam van het doositem de afwerking vast, maar niet het model.
De exacte tekst om te plakken, voor jouw inventory
Je hoeft nooit zelf een item-entry uit te zoeken. Als er een item ontbreekt, print de opstartcontrole de exacte tekst voor jouw inventory onder het kader, en Settings > Server > Health Check toont dezelfde tekst met een Kopieer-knop. Plak hem, herstart de inventory en de telefoon, en draai phone:health opnieuw.
| Je inventory | Wat er geprint wordt | Waar het heen moet |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core, ND Core) | ox_inventory-entries | ox_inventory/data/items.lua, binnen de tabel |
| QBCore (qb-, ps-, lj-inventory) | QBCore-entries (alleen als de telefoon ze niet zelf kon toevoegen) | qb-core/shared/items.lua |
| qs-inventory | Entries in QBCore-vorm | De itemlijst van qs-inventory |
| Standaard ESX-inventory | Eén SQL-regel (alleen als de telefoon ze niet zelf kon toevoegen) | Je databasetool, daarna herstarten |
| TMC | TMC-entries voor elk item dat de telefoon nodig heeft (je kunt TMC niet vragen welke het heeft) | De itemlijst van TMC (het bestand met sim_card), met behoud van de items die je al hebt |
| Elke andere inventory | Entries in QBCore-vorm, de vorm die de meeste inventories lezen | De itemlijst van die inventory |
Hoe elk eruitziet, voor de 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);Het eigen phone-item van ox_inventory. ox_inventory levert een phone-entry mee die voor een ander telefoonscript is gemaakt. Je hoeft hem niet aan te passen: als je hem gebruikt, opent Pulse Phone. De opstartcontrole heeft een regel Phone item die zegt hoe je entry is aangesloten. Alleen als die de export van een ander script noemt ([WARN], of [FAIL] met verplichte of unieke telefoons), print hij de vervangende entry. Draait het telefoonscript waarvoor die entry gemaakt is nog, dan opent het item dat script in plaats daarvan: de regel Phone item noemt het; haal het uit server.cfg.
Wat je moet doen voor jouw inventory
| Inventory | Waar de items heen gaan | Waar de afbeeldingen heen gaan |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core) | Plak de entries die de opstartcontrole print (of de hele ox_inventory.lua) in ox_inventory/data/items.lua, binnen de tabel. Houd de eigen ['phone']-entry van ox_inventory (die opent Pulse Phone); vervang hem alleen door de geprinte als de regel Phone item zegt dat hij een ander script opent |
ox_inventory/web/images/ |
| qb-inventory | Niets: toegevoegd bij het opstarten. Wil je ze liever met de hand toevoegen, plak dan qb-core.lua in qb-core/shared/items.lua |
qb-inventory/html/images/ |
| ps-inventory, lj-inventory | Niets: toegevoegd bij het opstarten, net als bij qb-inventory | de afbeeldingenmap van je inventory |
| qs-inventory | Plak qb-core.lua in qb-core/shared/items.lua, of in de eigen itemlijst van qs-inventory |
de afbeeldingenmap van je inventory |
| codem-inventory, core_inventory, tgiann-inventory, origen_inventory | Voeg de items toe aan de itemlijst zoals je elk item toevoegt, met de namen, labels en gewichten uit 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). Gebruik pulse_magpack.png ook voor powerbank en pulse_magpack_max |
de afbeeldingenmap van je inventory |
| ak47_inventory | Voeg de items toe, plus de onUse-regels hieronder |
de afbeeldingenmap van je inventory |
| Standaard ESX-inventory | Niets: toegevoegd bij het opstarten. esx.sql is de manier om het met de hand te doen |
niet nodig |
| vRP 2 | Zie de sectie over vRP hierboven | |
| Standalone | Niets |
Voor de andere inventories in deze tabel maakt de telefoon de items zelf bruikbaar. ox_inventory gebruikt de regels client = { export = 'phone....' } die al in het bestand staan.
ox_inventory: gebruikte je eerder een andere telefoon, verwijder dan ook de Item('phone', ...)-hook ervan uit ox_inventory/modules/items/client.lua.
ak47_inventory houdt het gebruik van items bij in de eigen entry van elk item. Voeg deze toe:
-- 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 },Unieke telefoons (Config.Item.unique = true) zetten het telefoonnummer op het item, dus wie het item overdraagt, draagt de telefoon over. Ze vereisen ox_inventory, qb-inventory, qs-inventory, core_inventory of codem-inventory.