Pulse Phone dokümantasyonu
Envanterler
4. Item'lar ve envanterler
Item'lar yalnızca framework'lü sunucularda gerekir. Dosyalar config/items/ içinde, resimler config/items/images/ içinde.
Telefonun kendiliğinden yaptıkları. Açılışta, açtığınız özelliklerin hangi item'lara ihtiyaç duyduğunu belirler (aşağıdaki tablo) ve ardından:
| Envanteriniz | Ne olur |
|---|---|
| Varsayılan envanteriyle ESX | Eksik item'lar ESX'in items tablosuna eklenir. Mevcut satırlar asla değiştirilmez. Konsol neyi eklediğini söyleyen tek bir satır yazdırır. Item'larını yeniden yükleyemeyen eski bir ESX'te sunucuyu bir kez yeniden başlatın. config/items/esx.sql yalnızca onları elle eklemek içindir. |
| qb-inventory ile QBCore (ps-, lj-inventory de) | Eksik item'lar sunucu çalışırken QBCore'un shared items listesine eklenir. qb-core'da zaten olan bir item, örneğin kendi phone item'ı, olduğu gibi bırakılır. Konsol neyi eklediğini söyleyen tek bir satır yazdırır. |
| ox_inventory (ESX, Qbox, ox_core) | ox_inventory item'ları yalnızca kendi dosyasından okur. Açılış kontrolü yalnızca eksik item'ları listeler ve tanımlarını kutunun altına, ox_inventory/data/items.lua içine yapıştırmaya hazır şekilde yazdırır. |
| Diğer tüm envanterler | Açılış kontrolü eksik item'ların adını verir. Bunları o envanterin item ekleme yöntemiyle ekleyin ("Envanteriniz için ne yapmalı" altındaki tablo). |
Önemli
Resimler asla sizin yerinize kopyalanmaz. Açılış kontrolü her eksik resmin ve gideceği klasörün adını verir, örneğin copy pulse_magpack.png, pulse_router.png from config/items/images/ into qb-inventory/html/images.
Açılış kontrolünde tek bir Items satırı vardır: her item mevcutsa [OK], değilse eksik adlar ve altında çözümüyle [FAIL]. Bir şeyi düzelttikten sonra phone:health onu yeniden yazdırır.
| Item | Ne zaman gerekir |
|---|---|
phone |
Yalnızca Config.Item.required = true (oyuncular telefon taşımak zorunda) veya benzersiz telefonlarla. |
pulse_phone_box |
Mağaza telefonları mühürlü bir kutuda satar. Varsayılan olarak açık (Config.Store.box). |
pulse_magpack, pulse_magpack_max, pulse_cable |
Şarj aksesuarları. Varsayılan olarak açık (Config.Charging). |
pulse_router |
Oyuncuların evde yerleştirdiği router olan Pulse Home Wi-Fi. Varsayılan olarak açık (config/apps.lua). |
pulse_burner |
Kendi numarası olan ön ödemeli telefon Pulse Burner. Varsayılan olarak açık (config/apps.lua). |
pulse_case, pulse_case_clear, pulse_pouch, pulse_protector |
Telefon koruması: kılıflar, su geçirmez kese ve ekran koruyucu. Varsayılan olarak açık (config/apps.lua). |
pulse_buds, pulse_ringlight, pulse_wallet |
Pulse Buds, Pulse Ring Light ve Pulse Card Wallet. Varsayılan olarak açık (config/apps.lua). |
powerbank |
İsteğe bağlı. Eski powerbank item'ı; Reserve olarak çalışır. |
pulse_phone_box_<finish> |
Yalnızca Config.Store.boxPerFinish = true ile. |
radio (veya herhangi bir ad) |
Yalnızca Config.Radio.item ayarladığınızda (5. bölüm, Radio). ox_inventory ve qb-core'da zaten bir radio item'ı var. |
Bir item eksikse telefon yine de başlar. Mağaza kutuları kapatır veya o item'ı satıştan kaldırır ve konsol eklenmesi gereken item'ın adını verir.
Reserve'ler üst üste biner. Dolu paketler metadata taşımaz, bu yüzden 20 taneye kadarı tek slotu paylaşır. Kısmen kullanılmışken çıkarılan bir paket, şarjı metadata'sında olan ayrı bir item olur (ox_inventory, qb-inventory ve qs-inventory'de), bu yüzden boş bir slot gerektirir. Item metadata'sı olmadan (standalone, varsayılan ESX envanteri) yalnızca kullanımdaki paket takip edilir; karakter başına, boyut başına bir tane.
Config.Item.required = true ile (veya benzersiz telefonlarla) sunucu telefon item'ını envanteriniz üzerinden kontrol eder ve item'ı olmayan bir oyuncunun telefon isteklerini reddeder. Item'ı kaybetmek, acil aramalar dahil o oyuncunun aramalarını sonlandırır ve telefonu kapatır.
Mühürlü bir kutuyu başkasına vermek. ox_inventory, qb-inventory ve qs-inventory'de kutu item'ı satın alınan modeli ve kaplamayı kendisi taşır, bu yüzden onu kim açarsa o telefonu alır. Diğer tüm envanterlerde kutu sade bir item'dır ve model ile kaplama, alıcının kendi satın alma kaydında tutulur: başkasına verilen bir kutu, yeni sahibinin bir sonraki kendi satın alımı olarak ya da varsayılan model ve kaplamayla açılır. Config.Store.boxPerFinish = true ile kutu item'ının adı kaplamayı korur, ancak modeli korumaz.
Envanteriniz için yapıştırılacak tam metin
Bir item tanımını asla kendiniz çıkarmanız gerekmez. Bir item eksik olduğunda açılış kontrolü sizin envanteriniz için tam metni kutusunun altına yazdırır ve Settings > Server > Health Check aynı metni bir Copy düğmesiyle gösterir. Yapıştırın, envanteri ve telefonu yeniden başlatın ve phone:health komutunu tekrar çalıştırın.
| Envanteriniz | Ne yazdırılır | Nereye gider |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core, ND Core) | ox_inventory tanımları | ox_inventory/data/items.lua, tablosunun içine |
| QBCore (qb-, ps-, lj-inventory) | QBCore tanımları (yalnızca telefon bunları kendisi ekleyemediyse) | qb-core/shared/items.lua |
| qs-inventory | QBCore biçiminde tanımlar | qs-inventory'nin item listesi |
| ESX varsayılan envanteri | Tek bir SQL satırı (yalnızca telefon bunları kendisi ekleyemediyse) | Veritabanı aracınız, ardından yeniden başlatma |
| TMC | Telefonun ihtiyaç duyduğu her item için TMC tanımları (TMC'ye hangilerinin olduğu sorulamaz) | TMC'nin item listesi (sim_card içeren dosya), mevcut olanları koruyarak |
| Diğer tüm envanterler | QBCore biçiminde tanımlar; çoğu envanterin okuduğu biçim | O envanterin item listesi |
Reserve için her birinin nasıl göründüğü:
-- 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);ox_inventory'nin kendi phone item'ı. ox_inventory, başka bir telefon scripti için yapılmış bir phone tanımıyla gelir. Değiştirmeniz gerekmez: kullanıldığında Pulse Phone'u açar. Açılış kontrolünde, tanımınızın nasıl bağlandığını söyleyen bir Phone item satırı vardır. Yalnızca bu satır başka bir scriptin export'unu gösterdiğinde ([WARN] ya da zorunlu veya benzersiz telefonlarla [FAIL]) yerine geçecek tanımı yazdırır. O tanımın yapıldığı telefon scripti hâlâ çalışıyorsa item onun yerine o scripti açar: Phone item satırı onun adını verir; onu server.cfg dosyasından kaldırın.
Envanteriniz için ne yapmalı
| Envanter | Item'lar nereye gider | Resimler nereye gider |
|---|---|---|
| ox_inventory (ESX, Qbox, ox_core) | Açılış kontrolünün yazdırdığı tanımları (veya ox_inventory.lua dosyasının tamamını) ox_inventory/data/items.lua içine, tablosunun içine yapıştırın. ox_inventory'nin kendi ['phone'] tanımını koruyun (Pulse Phone'u açar); yalnızca Phone item satırı başka bir scripti açtığını söylüyorsa yazdırılanla değiştirin |
ox_inventory/web/images/ |
| qb-inventory | Hiçbir şey: açılışta eklenir. Bunun yerine elle eklemek için qb-core.lua dosyasını qb-core/shared/items.lua içine yapıştırın |
qb-inventory/html/images/ |
| ps-inventory, lj-inventory | Hiçbir şey: qb-inventory'de olduğu gibi açılışta eklenir | envanterinizin resim klasörü |
| qs-inventory | qb-core.lua dosyasını qb-core/shared/items.lua içine veya qs-inventory'nin kendi item listesine yapıştırın |
envanterinizin resim klasörü |
| codem-inventory, core_inventory, tgiann-inventory, origen_inventory | Item'ları, diğer item'ları eklediğiniz gibi, qb-core.lua dosyasındaki adları, etiketleri ve ağırlıkları kullanarak onun item listesine ekleyin (phone, powerbank, pulse_magpack, pulse_magpack_max, pulse_cable, pulse_router, pulse_burner, pulse_buds, pulse_ringlight, pulse_wallet, pulse_phone_box). Resim olarak pulse_magpack.png dosyasını powerbank ve pulse_magpack_max için de kullanın |
envanterinizin resim klasörü |
| ak47_inventory | Item'ları ekleyin, ayrıca aşağıdaki onUse satırlarını |
envanterinizin resim klasörü |
| ESX varsayılan envanteri | Hiçbir şey: açılışta eklenir. esx.sql elle ekleme yoludur |
gerekmez |
| vRP 2 | Yukarıdaki vRP bölümüne bakın | |
| Standalone | Hiçbir şey |
Bu tablodaki diğer envanterler için telefon item'ları kendisi kullanılabilir yapar. ox_inventory, dosyasında zaten bulunan client = { export = 'phone....' } satırlarını kullanır.
ox_inventory: daha önce başka bir telefon kullandıysanız, onun Item('phone', ...) hook'unu da ox_inventory/modules/items/client.lua dosyasından kaldırın.
ak47_inventory, item kullanımını her item'ın kendi tanımında tutar. Şunları ekleyin:
-- 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 },Benzersiz telefonlar (Config.Item.unique = true) telefon numarasını item'a koyar; böylece item'ı vermek telefonu vermek demektir. ox_inventory, qb-inventory, qs-inventory, core_inventory veya codem-inventory gerektirir.