Pulse Phone Doku

Inventare

Für Pulse Phone 1.4.28 Min. LesezeitAktualisiert am

4. Items und Inventare

Items werden nur auf Framework-Servern gebraucht. Die Dateien liegen in config/items/ und die Bilder in config/items/images/.

Was das Handy von selbst macht. Beim Start ermittelt es, welche Items die eingeschalteten Features brauchen (Tabelle unten), und dann:

Dein Inventar Was passiert
ESX mit seinem Standard-Inventar Die fehlenden Items werden in die ESX-Tabelle items eingefügt. Bestehende Zeilen werden nie geändert. Die Konsole gibt eine Zeile aus, die nennt, was hinzugefügt wurde. Auf einem älteren ESX, das seine Items nicht neu laden kann, starte den Server einmal neu. config/items/esx.sql ist nur zum Hinzufügen von Hand.
QBCore mit qb-inventory (auch ps-, lj-inventory) Die fehlenden Items werden während der Laufzeit in die Shared Items von QBCore eingefügt. Ein Item, das qb-core schon hat, etwa sein eigenes phone, bleibt, wie es ist. Die Konsole gibt eine Zeile aus, die nennt, was hinzugefügt wurde.
ox_inventory (ESX, Qbox, ox_core) ox_inventory liest Items nur aus seiner eigenen Datei. Der Start-Check listet nur die fehlenden Items und gibt ihre Einträge unter dem Kasten aus, bereit zum Einfügen in ox_inventory/data/items.lua.
Jedes andere Inventar Der Start-Check nennt die fehlenden Items. Füg sie so hinzu, wie dieses Inventar Items hinzufügt (die Tabelle unter "Was du für dein Inventar tun musst").

Wichtig

Bilder werden nie für dich kopiert. Der Start-Check nennt jedes fehlende Bild und den Ordner, in den es gehört, zum Beispiel copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.

Der Start-Check hat eine Zeile Items: [OK], wenn jedes Item da ist, oder [FAIL] mit den fehlenden Namen und der Lösung darunter. phone:health gibt sie erneut aus, nachdem du etwas behoben hast.

Item Du brauchst es, wenn
phone Nur mit Config.Item.required = true (Spieler müssen ein Handy dabeihaben) oder einzigartigen Handys.
pulse_phone_box Der Laden verkauft Handys in einer versiegelten Box. Standardmäßig an (Config.Store.box).
pulse_magpack, pulse_magpack_max, pulse_cable Das Ladezubehör. Standardmäßig an (Config.Charging).
pulse_router Pulse Home Wi-Fi, der Router, den Spieler zu Hause aufstellen. Standardmäßig an (config/apps.lua).
pulse_burner Der Pulse Burner, ein Prepaid-Handy mit eigener Nummer. Standardmäßig an (config/apps.lua).
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector Handyschutz: Hüllen, die wasserdichte Tasche und der Displayschutz. Standardmäßig an (config/apps.lua).
pulse_buds, pulse_ringlight, pulse_wallet Pulse Buds, das Pulse Ring Light und das Pulse Card Wallet. Standardmäßig an (config/apps.lua).
powerbank Optional. Das alte Powerbank-Item; es funktioniert als Reserve.
pulse_phone_box_<finish> Nur mit Config.Store.boxPerFinish = true.
radio (oder ein beliebiger Name) Nur wenn du Config.Radio.item setzt (Abschnitt 5, Radio). ox_inventory und qb-core haben schon ein Item radio.

Wenn ein Item fehlt, startet das Handy trotzdem. Der Laden schaltet Boxen ab oder nimmt das Item aus dem Verkauf, und die Konsole nennt das Item, das du hinzufügen musst.

Reserves stapeln sich. Volle Packs tragen keine Metadaten, also teilen sich bis zu 20 einen Slot. Ein teilweise verbrauchter Pack, der abgenommen wird, wird zu einem eigenen Item mit seiner Ladung in den Metadaten (bei ox_inventory, qb-inventory und qs-inventory), braucht also einen freien Slot. Ohne Item-Metadaten (standalone, das Standard-Inventar von ESX) wird nur der Pack in Benutzung erfasst, einer pro Charakter und Größe.

Mit Config.Item.required = true (oder einzigartigen Handys) prüft der Server das Handy-Item über dein Inventar und lehnt Handy-Anfragen von Spielern ohne Handy ab. Verliert ein Spieler das Item, enden seine Anrufe, Notrufe eingeschlossen, und das Handy schließt sich.

Eine versiegelte Box an jemand anderen geben. Bei ox_inventory, qb-inventory und qs-inventory trägt das Box-Item selbst das gekaufte Modell und Finish, sodass jeder, der es öffnet, dieses Handy bekommt. Bei jedem anderen Inventar ist die Box ein einfaches Item, und Modell und Finish liegen im Kaufdatensatz des Käufers: Eine verschenkte Box öffnet sich als nächster eigener Kauf des neuen Besitzers oder als Standardmodell und -finish. Mit Config.Store.boxPerFinish = true behält der Name des Box-Items das Finish, aber nicht das Modell.

Der genaue Text zum Einfügen, für dein Inventar

Du musst nie selbst einen Item-Eintrag ausarbeiten. Wenn ein Item fehlt, gibt der Start-Check unter seinem Kasten genau den Text für dein Inventar aus, und Settings > Server > Health Check zeigt denselben Text mit einem Copy-Button. Füg ihn ein, starte das Inventar und das Handy neu und führ phone:health erneut aus.

Dein Inventar Was ausgegeben wird Wo es hingehört
ox_inventory (ESX, Qbox, ox_core, ND Core) ox_inventory-Einträge ox_inventory/data/items.lua, innerhalb der Tabelle
QBCore (qb-, ps-, lj-inventory) QBCore-Einträge (nur wenn das Handy sie nicht selbst hinzufügen konnte) qb-core/shared/items.lua
qs-inventory Einträge im QBCore-Format Die Item-Liste von qs-inventory
Standard-ESX-Inventar Eine SQL-Zeile (nur wenn das Handy sie nicht selbst hinzufügen konnte) Dein Datenbank-Tool, dann neu starten
TMC TMC-Einträge für jedes Item, das das Handy braucht (TMC lässt sich nicht fragen, welche es hat) Die Item-Liste von TMC (die Datei mit sim_card), die vorhandenen bleiben
Jedes andere Inventar Einträge im QBCore-Format, das Format, das die meisten Inventare lesen Die Item-Liste dieses Inventars

So sieht jeder aus, für das Reserve:

Lua
-- 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." },
SQL
-- ESX default inventory
INSERT IGNORE INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
  ('pulse_magpack', 'Pulse Reserve', 1, 0, 1);

Das eigene Item phone von ox_inventory. ox_inventory liefert einen Eintrag phone mit, der für ein anderes Handy-Script gemacht ist. Du musst ihn nicht ändern: Wird er benutzt, öffnet sich Pulse Phone. Der Start-Check hat eine Zeile Phone item, die sagt, wie dein Eintrag verknüpft ist. Nur wenn sie den Export eines anderen Scripts nennt ([WARN], oder [FAIL] mit Pflicht- oder einzigartigen Handys), gibt sie den Ersatz-Eintrag aus. Wenn das Handy-Script, für das dieser Eintrag gemacht wurde, noch läuft, öffnet das Item stattdessen dieses: Die Zeile Phone item nennt es; entferne es aus der server.cfg.

Was du für dein Inventar tun musst

Inventar Wo die Items hingehören Wo die Bilder hingehören
ox_inventory (ESX, Qbox, ox_core) Füg die Einträge, die der Start-Check ausgibt (oder die ganze ox_inventory.lua), in ox_inventory/data/items.lua ein, innerhalb der Tabelle. Behalte den eigenen Eintrag ['phone'] von ox_inventory (er öffnet Pulse Phone); ersetz ihn nur dann durch den ausgegebenen, wenn die Zeile Phone item sagt, dass er ein anderes Script öffnet ox_inventory/web/images/
qb-inventory Nichts: beim Start hinzugefügt. Um sie stattdessen von Hand hinzuzufügen, füg qb-core.lua in qb-core/shared/items.lua ein qb-inventory/html/images/
ps-inventory, lj-inventory Nichts: beim Start hinzugefügt, wie bei qb-inventory der Bilderordner deines Inventars
qs-inventory Füg qb-core.lua in qb-core/shared/items.lua ein oder in die eigene Item-Liste von qs-inventory der Bilderordner deines Inventars
codem-inventory, core_inventory, tgiann-inventory, origen_inventory Füg die Items so zu seiner Item-Liste hinzu, wie du jedes andere Item hinzufügst, mit den Namen, Labels und Gewichten aus 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). Nutze pulse_magpack.png auch für powerbank und pulse_magpack_max der Bilderordner deines Inventars
ak47_inventory Füg die Items hinzu, dazu die onUse-Zeilen unten der Bilderordner deines Inventars
Standard-ESX-Inventar Nichts: beim Start hinzugefügt. esx.sql ist der Weg von Hand nicht nötig
vRP 2 Siehe den Abschnitt zu vRP oben
Standalone Nichts

Für die anderen Inventare in dieser Tabelle macht das Handy die Items selbst benutzbar. ox_inventory nutzt die Zeilen client = { export = 'phone....' }, die schon in seiner Datei stehen.

ox_inventory: Wenn du vorher ein anderes Handy genutzt hast, entferne auch seinen Item('phone', ...)-Hook aus ox_inventory/modules/items/client.lua.

ak47_inventory legt die Item-Benutzung im eigenen Eintrag jedes Items fest. Füg diese hinzu:

Lua
-- 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 },

Einzigartige Handys (Config.Item.unique = true) legen die Telefonnummer auf das Item, sodass die Weitergabe des Items das Handy weitergibt. Sie brauchen ox_inventory, qb-inventory, qs-inventory, core_inventory oder codem-inventory.

Aus dem Englischen übersetzt. Wenn etwas hier von der englischen Seite abweicht, gilt die englische Seite. English