Documentația Pulse Phone
Inventare
4. Iteme și inventare
Itemele sunt necesare doar pe serverele cu framework. Fișierele sunt în config/items/, iar imaginile în config/items/images/.
Ce face telefonul singur. La pornire, stabilește de ce iteme au nevoie funcțiile pe care le-ai activat (tabelul de mai jos), apoi:
| Inventarul tău | Ce se întâmplă |
|---|---|
| ESX cu inventarul implicit | Itemele lipsă sunt adăugate în tabelul items al ESX. Rândurile existente nu sunt modificate niciodată. Consola afișează o linie cu ce a adăugat. Pe un ESX mai vechi, care nu își poate reîncărca itemele, repornește serverul o dată. config/items/esx.sql este doar pentru adăugarea manuală. |
| QBCore cu qb-inventory (și ps-, lj-inventory) | Itemele lipsă sunt adăugate în shared items-ul QBCore cât timp rulează serverul. Un item pe care qb-core îl are deja, cum ar fi propriul phone, este lăsat așa cum este. Consola afișează o linie cu ce a adăugat. |
| ox_inventory (ESX, Qbox, ox_core) | ox_inventory citește itemele doar din propriul fișier. Verificarea de la pornire listează doar itemele lipsă și afișează intrările lor sub casetă, gata de lipit în ox_inventory/data/items.lua. |
| Orice alt inventar | Verificarea de la pornire numește itemele lipsă. Adaugă-le așa cum adaugă itemele acel inventar (tabelul de la „Ce ai de făcut pentru inventarul tău”). |
Important
Imaginile nu sunt niciodată copiate în locul tău. Verificarea de la pornire numește fiecare imagine lipsă și folderul în care trebuie pusă, de exemplu copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.
Verificarea de la pornire are o linie Items: [OK] când toate itemele există sau [FAIL] cu numele celor lipsă și soluția dedesubt. phone:health o afișează din nou după ce repari ceva.
| Item | Ai nevoie de el când |
|---|---|
phone |
Doar cu Config.Item.required = true (jucătorii trebuie să aibă un telefon la ei) sau cu telefoane unice. |
pulse_phone_box |
Magazinul vinde telefoanele într-o cutie sigilată. Activat implicit (Config.Store.box). |
pulse_magpack, pulse_magpack_max, pulse_cable |
Accesoriile de încărcare. Activate implicit (Config.Charging). |
pulse_router |
Pulse Home Wi-Fi, routerul pe care jucătorii îl pun acasă. Activat implicit (config/apps.lua). |
pulse_burner |
Pulse Burner, un telefon preplătit cu număr propriu. Activat implicit (config/apps.lua). |
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector |
Protecția telefonului: huse, săculețul impermeabil și folia de protecție. Activată implicit (config/apps.lua). |
pulse_buds, pulse_ringlight, pulse_wallet |
Pulse Buds, Pulse Ring Light și Pulse Card Wallet. Activate implicit (config/apps.lua). |
powerbank |
Opțional. Vechiul item de baterie externă; funcționează ca un Reserve. |
pulse_phone_box_<finish> |
Doar cu Config.Store.boxPerFinish = true. |
radio (sau orice nume) |
Doar când setezi Config.Radio.item (secțiunea 5, Radio). ox_inventory și qb-core au deja un item radio. |
Dacă lipsește un item, telefonul pornește totuși. Magazinul dezactivează cutiile sau scoate acel item de la vânzare, iar consola numește itemul de adăugat.
Reserve-urile se stivuiesc. Pachetele pline nu au metadata, așa că până la 20 stau în același slot. Un pachet scos parțial descărcat devine un item separat, cu încărcarea în metadata lui (pe ox_inventory, qb-inventory și qs-inventory), așa că are nevoie de un slot liber. Fără metadata pe iteme (standalone, inventarul implicit ESX) este urmărit doar pachetul în uz, câte unul per personaj pentru fiecare mărime.
Cu Config.Item.required = true (sau cu telefoane unice), serverul verifică itemul de telefon prin inventarul tău și refuză cererile de telefon de la un jucător care nu îl are. Pierderea itemului încheie apelurile acelui jucător, inclusiv apelurile de urgență, și închide telefonul.
Când dai o cutie sigilată altcuiva. Pe ox_inventory, qb-inventory și qs-inventory, itemul cutiei păstrează modelul și finisajul cumpărate, așa că oricine o deschide primește acel telefon. Pe orice alt inventar, cutia este un item simplu, iar modelul și finisajul sunt păstrate în înregistrarea de cumpărare a cumpărătorului: o cutie dată altcuiva se deschide ca următoarea achiziție a noului proprietar sau cu modelul și finisajul implicite. Cu Config.Store.boxPerFinish = true, numele itemului cutiei păstrează finisajul, dar nu și modelul.
Textul exact de lipit, pentru inventarul tău
Nu trebuie niciodată să scrii singur o intrare de item. Când lipsește un item, verificarea de la pornire afișează textul exact pentru inventarul tău sub casetă, iar Settings > Server > Health Check arată același text cu un buton Copy. Lipește-l, repornește inventarul și telefonul și rulează din nou phone:health.
| Inventarul tău | Ce se afișează | Unde se pune |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core, ND Core) | Intrări ox_inventory | ox_inventory/data/items.lua, în interiorul tabelului |
| QBCore (qb-, ps-, lj-inventory) | Intrări QBCore (doar dacă telefonul nu le-a putut adăuga singur) | qb-core/shared/items.lua |
| qs-inventory | Intrări în formatul QBCore | Lista de iteme a qs-inventory |
| Inventarul implicit ESX | O linie SQL (doar dacă telefonul nu le-a putut adăuga singur) | Unealta ta de baze de date, apoi restart |
| TMC | Intrări TMC pentru fiecare item de care are nevoie telefonul (TMC nu poate fi întrebat pe care le are) | Lista de iteme TMC (fișierul cu sim_card), păstrându-le pe cele pe care le ai deja |
| Orice alt inventar | Intrări în formatul QBCore, formatul pe care îl citesc majoritatea inventarelor | Lista de iteme a acelui inventar |
Cum arată fiecare, pentru 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);Itemul phone propriu al ox_inventory. ox_inventory vine cu o intrare phone făcută pentru alt script de telefon. Nu trebuie s-o schimbi: folosirea ei deschide Pulse Phone. Verificarea de la pornire are o linie Phone item care spune cum este legată intrarea ta. Doar când numește exportul altui script ([WARN] sau [FAIL] cu telefoane obligatorii sau unice) afișează intrarea de înlocuire. Dacă scriptul de telefon pentru care a fost făcută intrarea încă rulează, itemul îl deschide pe acela în schimb: linia Phone item îl numește; scoate-l din server.cfg.
Ce ai de făcut pentru inventarul tău
| Inventar | Unde se pun itemele | Unde se pun imaginile |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core) | Lipește intrările afișate de verificarea de la pornire (sau tot ox_inventory.lua) în ox_inventory/data/items.lua, în interiorul tabelului. Păstrează intrarea ['phone'] proprie a ox_inventory (deschide Pulse Phone); înlocuiește-o cu cea afișată doar când linia Phone item spune că deschide alt script |
ox_inventory/web/images/ |
| qb-inventory | Nimic: adăugate la pornire. Ca să le adaugi manual, lipește qb-core.lua în qb-core/shared/items.lua |
qb-inventory/html/images/ |
| ps-inventory, lj-inventory | Nimic: adăugate la pornire, ca la qb-inventory | folderul de imagini al inventarului tău |
| qs-inventory | Lipește qb-core.lua în qb-core/shared/items.lua sau în lista proprie de iteme a qs-inventory |
folderul de imagini al inventarului tău |
| codem-inventory, core_inventory, tgiann-inventory, origen_inventory | Adaugă itemele în lista lui de iteme la fel cum adaugi orice item, folosind numele, etichetele și greutățile din 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). Folosește pulse_magpack.png și pentru powerbank și pulse_magpack_max |
folderul de imagini al inventarului tău |
| ak47_inventory | Adaugă itemele, plus liniile onUse de mai jos |
folderul de imagini al inventarului tău |
| Inventarul implicit ESX | Nimic: adăugate la pornire. esx.sql este varianta manuală |
nu e nevoie |
| vRP 2 | Vezi secțiunea vRP de mai sus | |
| Standalone | Nimic |
Pentru celelalte inventare din acest tabel, telefonul face singur itemele utilizabile. ox_inventory folosește liniile client = { export = 'phone....' } deja existente în fișierul lui.
ox_inventory: dacă ai folosit alt telefon înainte, scoate și hook-ul lui Item('phone', ...) din ox_inventory/modules/items/client.lua.
ak47_inventory păstrează folosirea itemului în intrarea proprie a fiecărui item. Adaugă acestea:
-- 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 },Telefoanele unice (Config.Item.unique = true) pun numărul de telefon pe item, așa că dacă dai itemul, dai telefonul. Au nevoie de ox_inventory, qb-inventory, qs-inventory, core_inventory sau codem-inventory.