Documentation Pulse Phone

Inventaires

Pour Pulse Phone 1.4.28 min de lectureMis à jour le

4. Items et inventaires

Les items ne sont nécessaires que sur les serveurs avec framework. Les fichiers sont dans config/items/ et les images dans config/items/images/.

Ce que le téléphone fait tout seul. Au démarrage, il détermine de quels items ont besoin les fonctionnalités que vous avez activées (le tableau ci-dessous), puis :

Votre inventaire Ce qui se passe
ESX avec son inventaire par défaut Les items manquants sont ajoutés à la table items d'ESX. Les lignes existantes ne sont jamais modifiées. La console affiche une ligne qui nomme ce qui a été ajouté. Sur un ESX ancien qui ne peut pas recharger ses items, redémarrez le serveur une fois. config/items/esx.sql sert uniquement à les ajouter à la main.
QBCore avec qb-inventory (ps-, lj-inventory aussi) Les items manquants sont ajoutés aux items partagés de QBCore pendant que le serveur tourne. Un item que qb-core possède déjà, comme son propre phone, est laissé tel quel. La console affiche une ligne qui nomme ce qui a été ajouté.
ox_inventory (ESX, Qbox, ox_core) ox_inventory ne lit les items que depuis son propre fichier. La vérification au démarrage liste uniquement les items manquants et affiche leurs entrées sous l'encadré, prêtes à coller dans ox_inventory/data/items.lua.
Tout autre inventaire La vérification au démarrage nomme les items manquants. Ajoutez-les comme cet inventaire ajoute les items (le tableau sous « Que faire pour votre inventaire »).

Important

Les images ne sont jamais copiées à votre place. La vérification au démarrage nomme chaque image manquante et le dossier où elle doit aller, par exemple copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.

La vérification au démarrage a une ligne Items : [OK] quand tous les items sont là, ou [FAIL] avec les noms manquants et la solution en dessous. phone:health l'affiche de nouveau après une correction.

Item Vous en avez besoin quand
phone Uniquement avec Config.Item.required = true (les joueurs doivent avoir un téléphone sur eux) ou les téléphones uniques.
pulse_phone_box La boutique vend les téléphones dans une boîte scellée. Activé par défaut (Config.Store.box).
pulse_magpack, pulse_magpack_max, pulse_cable Les accessoires de recharge. Activés par défaut (Config.Charging).
pulse_router Pulse Home Wi-Fi, le routeur que les joueurs placent chez eux. Activé par défaut (config/apps.lua).
pulse_burner Le Pulse Burner, un téléphone prépayé avec son propre numéro. Activé par défaut (config/apps.lua).
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector Protection du téléphone : coques, pochette étanche et protection d'écran. Activé par défaut (config/apps.lua).
pulse_buds, pulse_ringlight, pulse_wallet Pulse Buds, le Pulse Ring Light et le Pulse Card Wallet. Activés par défaut (config/apps.lua).
powerbank Facultatif. L'ancien item batterie externe ; il fonctionne comme une Reserve.
pulse_phone_box_<finish> Uniquement avec Config.Store.boxPerFinish = true.
radio (ou n'importe quel nom) Uniquement si vous définissez Config.Radio.item (section 5, Radio). ox_inventory et qb-core ont déjà un item radio.

Si un item manque, le téléphone démarre quand même. La boutique désactive les boîtes ou retire cet item de la vente, et la console nomme l'item à ajouter.

Les Reserves s'empilent. Les batteries pleines n'ont pas de métadonnées, donc jusqu'à 20 partagent un emplacement. Une batterie retirée en partie utilisée devient un item à part avec sa charge dans ses métadonnées (sur ox_inventory, qb-inventory et qs-inventory), elle a donc besoin d'un emplacement libre. Sans métadonnées d'items (standalone, inventaire ESX par défaut), seule la batterie en cours d'utilisation est suivie, une par personnage et par taille.

Avec Config.Item.required = true (ou les téléphones uniques), le serveur vérifie l'item téléphone via votre inventaire et refuse les requêtes téléphone d'un joueur qui ne l'a pas. Perdre l'item met fin aux appels de ce joueur, appels d'urgence compris, et ferme le téléphone.

Donner une boîte scellée à quelqu'un d'autre. Sur ox_inventory, qb-inventory et qs-inventory, l'item boîte porte lui-même le modèle et la finition achetés : la personne qui l'ouvre obtient ce téléphone. Sur tous les autres inventaires, la boîte est un item simple et le modèle et la finition sont stockés dans l'historique d'achat de l'acheteur : une boîte donnée s'ouvre comme le prochain achat du nouveau propriétaire, ou avec le modèle et la finition par défaut. Avec Config.Store.boxPerFinish = true, le nom de l'item boîte conserve la finition, mais pas le modèle.

Le texte exact à coller, pour votre inventaire

Vous n'avez jamais à rédiger vous-même une entrée d'item. Quand un item manque, la vérification au démarrage affiche le texte exact pour votre inventaire sous son encadré, et Settings > Server > Health Check affiche le même texte avec un bouton Copy. Collez-le, redémarrez l'inventaire et le téléphone, puis relancez phone:health.

Votre inventaire Ce qui est affiché Où ça va
ox_inventory (ESX, Qbox, ox_core, ND Core) Entrées ox_inventory ox_inventory/data/items.lua, à l'intérieur de sa table
QBCore (qb-, ps-, lj-inventory) Entrées QBCore (uniquement si le téléphone n'a pas pu les ajouter lui-même) qb-core/shared/items.lua
qs-inventory Entrées au format QBCore La liste d'items de qs-inventory
Inventaire ESX par défaut Une ligne SQL (uniquement si le téléphone n'a pas pu les ajouter lui-même) Votre outil de base de données, puis redémarrage
TMC Entrées TMC pour chaque item dont le téléphone a besoin (on ne peut pas demander à TMC lesquels il a) La liste d'items de TMC (le fichier qui contient sim_card), en gardant ceux que vous avez déjà
Tout autre inventaire Entrées au format QBCore, le format que lisent la plupart des inventaires La liste d'items de cet inventaire

À quoi ressemble chacun, pour la 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);

L'item phone propre à ox_inventory. ox_inventory fournit une entrée phone conçue pour un autre script de téléphone. Vous n'avez pas besoin de la modifier : l'utiliser ouvre Pulse Phone. La vérification au démarrage a une ligne Phone item qui indique comment votre entrée est branchée. C'est seulement quand elle nomme l'export d'un autre script ([WARN], ou [FAIL] avec les téléphones obligatoires ou uniques) qu'elle affiche l'entrée de remplacement. Si le script de téléphone pour lequel cette entrée a été conçue tourne encore, l'item ouvre celui-ci à la place : la ligne Phone item le nomme ; retirez-le de server.cfg.

Que faire pour votre inventaire

Inventaire Où vont les items Où vont les images
ox_inventory (ESX, Qbox, ox_core) Collez les entrées affichées par la vérification au démarrage (ou tout le fichier ox_inventory.lua) dans ox_inventory/data/items.lua, à l'intérieur de sa table. Gardez l'entrée ['phone'] propre à ox_inventory (elle ouvre Pulse Phone) ; remplacez-la par celle affichée uniquement si la ligne Phone item indique qu'elle ouvre un autre script ox_inventory/web/images/
qb-inventory Rien : ajoutés au démarrage. Pour les ajouter plutôt à la main, collez qb-core.lua dans qb-core/shared/items.lua qb-inventory/html/images/
ps-inventory, lj-inventory Rien : ajoutés au démarrage, comme pour qb-inventory le dossier d'images de votre inventaire
qs-inventory Collez qb-core.lua dans qb-core/shared/items.lua, ou dans la liste d'items propre à qs-inventory le dossier d'images de votre inventaire
codem-inventory, core_inventory, tgiann-inventory, origen_inventory Ajoutez les items à sa liste d'items comme vous ajoutez n'importe quel item, avec les noms, libellés et poids de 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). Utilisez pulse_magpack.png aussi pour powerbank et pulse_magpack_max le dossier d'images de votre inventaire
ak47_inventory Ajoutez les items, plus les lignes onUse ci-dessous le dossier d'images de votre inventaire
Inventaire ESX par défaut Rien : ajoutés au démarrage. esx.sql est la méthode manuelle pas nécessaire
vRP 2 Voir la section vRP ci-dessus
Standalone Rien

Pour les autres inventaires de ce tableau, le téléphone rend lui-même les items utilisables. ox_inventory utilise les lignes client = { export = 'phone....' } déjà présentes dans son fichier.

ox_inventory : si vous utilisiez un autre téléphone avant, retirez aussi son hook Item('phone', ...) de ox_inventory/modules/items/client.lua.

ak47_inventory définit l'utilisation de chaque item dans sa propre entrée. Ajoutez ceci :

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

Les téléphones uniques (Config.Item.unique = true) placent le numéro de téléphone sur l'item : donner l'item, c'est donner le téléphone. Ils nécessitent ox_inventory, qb-inventory, qs-inventory, core_inventory ou codem-inventory.

Traduit de l'anglais. En cas de désaccord entre cette page et la page en anglais, c'est la page en anglais qui fait foi. English