Fitur
- Stash (Pribadi dan/atau Bersama)
- Bagasi Kendaraan & Kotak Sarung Tangan
- Perlengkapan Senjata
- Toko
- Barang Jatuh
Unduh
Dokumentasi
Pendahuluan
- Menangani semua penyimpanan pemain seperti penyimpanan pribadi, kendaraan, simpanan, dan barang yang dijatuhkan
- toko qb integrasi untuk menampilkan semua item yang tersedia untuk dibeli
- Dukungan bawaan untuk mesin penjual otomatis yang dapat digunakan
Semua ekspor yang tercantum hanya SERVER kecuali ditentukan lain
Status Inventaris
Status inventaris dikontrol melalui kantong status menggunakan nama kantong status inv_sibuk
Anda dapat menggunakan status ini untuk mengontrol apakah inventaris dapat dibuka atau tidak
Contoh (server):
Menyalin
RegisterCommand('checkState', function(source) local player = Player(source) local state = player.state.inv_busy print('Status inventaris saat ini adalah', state) end, true) RegisterCommand('lockInventory', function(source) local player = Player(source) player.state.inv_busy = true print('Status inventaris saat ini adalah', state) end, true) RegisterCommand('unlockInventory', function(source) local player = Player(source) player.state.inv_busy = false print('Status inventaris saat ini adalah', state) end, true)
Contoh (klien):
Menyalin
RegisterCommand('lockInventory', fungsi() LocalPlayer.state:set('inv_busy', benar, benar) akhir, salah) RegisterCommand('unlockInventory', fungsi() LocalPlayer.state:set('inv_busy', salah, benar) akhir, salah)
Informasi Barang
Anda dapat menggunakan SetItemData untuk mencapai hal ini
Item mendukung informasi tambahan yang dapat ditambahkan ke dalamnya melalui informasi
atribut. Informasi ini akan ditampilkan pada item saat pemain mengarahkan kursor ke item tersebut dalam format pasangan kunci dan nilai
Contoh:
Menyalin
RegisterCommand('addItemWithInfo', function(source, args) local itemName = args[1] jika bukan itemName maka kembalikan end local info = { uniqueData1 = 'uniqueData1', uniqueData2 = 'uniqueData2', uniqueData3 = 'uniqueData3', uniqueData4 = 'uniqueData4', } exports['qb-inventory']:AddItem(source, itemName, 1, false, info, 'qb-inventory:testAdd') end, true) RegisterCommand('editItemWithInfo', function(source) local Player = QBCore.Functions.GetPlayer(source) jika bukan Player maka kembalikan end local items = Player.PlayerData.items local itemInfo = items[1] print(json.encode(itemInfo, { indent = true })) itemInfo.info = { newInfo = 'Info Baru' } cetak(json.encode(itemInfo, { indent = benar })) item[1] = itemInfo Player.Functions.SetPlayerData('item', item) akhir, benar)
MuatInventaris
Fungsi ini akan mengambil inventaris pemain dari database melalui pengenal unik mereka alias warga negara
Menyalin
exports['qb-inventory']:MuatInventaris(sumber, idwarganegara)
- sumber:
nomor
- warga negara:
rangkaian
- kembali:
meja
Menyalin
RegisterCommand('getInv', fungsi(sumber) Pemain lokal = QBCore.Functions.GetPlayer(sumber) warga negara lokalId = Pemain.DataPemain.idwarga negara lokal item = ekspor['qb-inventory']:LoadInventory(sumber, warga negara) cetak(json.encode(item, { indent = benar })) akhir)
SimpanInventaris
Fungsi ini menyimpan item pemain saat ini ke databaseSalin
exports['qb-inventory']:SimpanInventaris(sumber, offline)
- sumber:
nomor
- luring:
Bahasa Inggris Boolean
Contoh:
Menyalin
RegisterCommand('saveInv', fungsi(sumber) ekspor['qb-inventory']:SimpanInventory(sumber, salah) akhir)
HapusInventaris
Menyalin
ekspor['qb-inventory']:HapusInventaris(sumber, itemfilter)
- sumber:
nomor
- itemfilter:
tali | tabel
Contoh:Salin
RegisterCommand('clearInventoryExcludeItem', function(source, args) local filterItem = args[1] jika bukan filterItem maka return end exports['qb-inventory']:ClearInventory(source, filterItem) print('Inventaris dibersihkan untuk pemain '..source..', tidak termasuk item: '..filterItem) end, true) RegisterCommand('clearInventoryExcludeItems', function(source) local filterItems = {'item1', 'item2'} exports['qb-inventory']:ClearInventory(source, filterItems) print('Inventaris dibersihkan untuk pemain '..source..', tidak termasuk item: '..table.concat(filterItems, ', ')) end, true)
TutupInventaris
Menyalin
exports['qb-inventory']:TutupInventory(sumber, pengenal)
- sumber:
nomor
- pengenal:
rangkaian
Contoh:Salin
RegisterCommand('closeInventory', function(source) exports['qb-inventory']:CloseInventory(source) print('Inventaris ditutup untuk pemain '..source) end, true) RegisterCommand('closeInventoryByName', function(source, identifier) exports['qb-inventory']:CloseInventory(source, identifier) print('Inventaris ditutup untuk pemain '..source..' dan inventaris '..identifier..' ditetapkan menjadi tertutup') end, true)
Inventaris Terbuka
Menyalin
exports['qb-inventory']:OpenInventory(sumber, pengenal, data)
- sumber:
nomor
- pengenal:
string | opsional
- data:
tabel | opsional
Contoh:
Menyalin
RegisterCommand('openinv', fungsi(sumber) exports['qb-inventory']:OpenInventory(sumber) end, benar) RegisterCommand('openinvbyname', fungsi(sumber, args) lokal namaInventaris = args[1] exports['qb-inventory']:OpenInventory(sumber, namaInventaris) end, benar) RegisterCommand('openinvbynamewithdata', fungsi(sumber, args) lokal namaInventaris = args[1] lokal data = { label = 'Stash Kustom', berat maks = 400000, slot = 500 } exports['qb-inventory']:OpenInventory(sumber, namaInventaris, data) end, benar)
BukaInventoryBerdasarkanId
Menyalin
ekspor['qb-inventory']:OpenInventoryById(sumber, idpemain)
- sumber:
nomor
- idpemain:
nomor
Contoh:
Menyalin
RegisterCommand('openplayerinv', fungsi(sumber, argumen) idpemain lokal = nomor(argumen[1]) ekspor['qb-inventaris']:OpenInventoryById(sumber, idpemain) akhir, benar)
BukaInventoryBerdasarkanId
akan menutup inventaris pemain target (jika terbuka) dan menguncinya melalui status. Kemudian akan terbuka saat pemain pembuka menutupnya
BuatToko
Menyalin
ekspor['qb-inventory']:BuatToko(DataToko)
- data toko:
meja
Menyalin
item lokal = { { nama = 'sandwich', jumlah = 10, harga = 5 } } RegisterCommand('createShop', function(source) pemainPed lokal = GetPlayerPed(source) pemainCoords lokal = GetEntityCoords(pemainPed) exports['qb-inventory']:CreateShop({ nama = 'testShop', label = 'Test Shop', koordinat = koordinatpemain, -- slot opsional = #items, item = item }) end, true)
Koordinat sedang diteruskan ke buatToko
akan diperiksa terhadap koordinat pemain saat ini ketika Toko Terbuka
disebut jika koordinat diberikan selama buatToko
Toko Terbuka
Menyalin
exports['qb-inventory']:OpenShop(sumber, nama)
- sumber:
nomor
- nama:
rangkaian
Menyalin
RegisterCommand('openShop', fungsi(sumber) ekspor['qb-inventory']:OpenShop(sumber, 'testShop') selesai)
DapatMenambahkanItem
Menyalin
exports['qb-inventory']:CanAddItem(sumber, item, jumlah)
- sumber:
nomor
- barang:
rangkaian
- jumlah:
nomor
- kembali:
Bahasa Inggris Boolean
Contoh:Salin
RegisterCommand('canAddItem', function(source, args) local itemName = args[1] local amount = tonumber(args[2]) jika bukan itemName atau bukan amount maka return end local canAdd, reason = exports['qb-inventory']:CanAddItem(source, itemName, amount) jika canAdd maka print('Dapat menambahkan '..amount..' dari item '..itemName) jika tidak print('Tidak dapat menambahkan '..amount..' dari item '..itemName..'. Alasan: '..reason) end end, true)
TambahkanItem
Menyalin
exports['qb-inventory']:AddItem(pengidentifikasi, item, jumlah, slot, info, alasan)
- pengenal:
nomor
- barang:
rangkaian
- jumlah:
nomor
- celah:
angka | boolean
- informasi:
tabel | boolean
- alasan:
rangkaian
- kembali:
Bahasa Inggris Boolean
Contoh:
Menyalin
RegisterCommand('addItem', function(sumber, args) nama-item lokal = args[1] jika bukan nama-item maka kembalikan akhir exports['qb-inventory']:AddItem(sumber, nama-item, 1, false, false, 'qb-inventory:testAdd') akhir, benar)
HapusItem
Menyalin
exports['qb-inventory']:RemoveItem(pengidentifikasi, item, jumlah, slot, alasan)
- pengenal:
nomor
- barang:
rangkaian
- jumlah:
nomor
- celah:
angka | boolean
- alasan:
rangkaian
- kembali:
Bahasa Inggris Boolean
Menyalin
RegisterCommand('removeItem', function(sumber, args) nama-item lokal = args[1] jika bukan nama-item maka kembalikan akhir exports['qb-inventory']:RemoveItem(sumber, nama-item, 1, false, 'qb-inventory:testRemove') akhir, benar)
TetapkanInventaris
Menyalin
exports['qb-inventory']:SetInventory(sumber, item)
- sumber:
nomor
- barang:
meja
Contoh:Salin
RegisterCommand('setInventory', function(sumber) lokal item = { { nama = 'sandwich', jumlah = 10, jenis = 'item', info = {}, slot = 1 }, { nama = 'botol_air', jumlah = 10, jenis = 'item', info = {}, slot = 2 } } exports['qb-inventory']:SetInventory(sumber, item) end, true)
SetItemData
Fungsi ini menggunakan GetItemByName untuk menemukan itemName yang dilewatkanCopy
exports['qb-inventory']:SetItemData(sumber, namaBarang, kunci, nilai)
- sumber:
nomor
- namaBarang:
rangkaian
- kunci:
rangkaian
- nilai:
tali | tabel
- kembali:
Bahasa Inggris Boolean
Contoh:Salin
RegisterCommand('setItemData', function(source, args) local itemName = args[1] local key = args[2] local val = args[3] jika bukan itemName atau bukan key atau bukan val maka return end local success = exports['qb-inventory']:SetItemData(source, itemName, key, val) jika sukses maka print('Tetapkan data untuk item '..itemName..': '..key..' = '..val) jika tidak print('Gagal menetapkan data untuk item '..itemName) end end, true)
Contoh Info Item:
Menyalin
RegisterCommand('setItemData', function(source) local itemName = 'markedbills' local key = 'info' local val = { worth = 1000 } jika bukan itemName atau bukan kunci atau bukan val maka return end local success = exports['qb-inventory']:SetItemData(source, itemName, key, val) jika sukses maka print('Tetapkan data untuk item '..itemName..': '..key..' = '..json.encode(val, { indent = true })) jika tidak print('Gagal menetapkan data untuk item '..itemName) end end, true)
GunakanItem
Menyalin
ekspor['qb-inventory']:GunakanItem(namaItem, ...)
- namaBarang:
rangkaian
- . . . :
fungsi
Contoh:Salin
RegisterCommand('useItem', function(source, args) local itemName = args[1] jika bukan itemName maka return end exports['qb-inventory']:Useitem(itemName, function() print('Item bekas dengan nama '..itemName) end) end, true)
MemilikiItem
Ekspor ini juga tersedia untuk digunakan pada klienSalin
exports['qb-inventory']:HasItem(sumber, item, jumlah)
- sumber:
nomor
- barang:
tali | tabel
- jumlah:
nomor
- kembali:
Bahasa Inggris Boolean
Contoh:Salin
RegisterCommand('hasSingleItem', function(source) lokal item = 'item1' lokal jumlah = 5 lokal hasItem = exports['qb-inventory']:HasItem(source, item, jumlah) jika hasItem maka cetak('Pemain '..source..' memiliki '..amount..' dari '..item) jika tidak cetak('Pemain '..source..' tidak memiliki '..amount..' dari '..item) akhir akhir, benar) RegisterCommand('hasMultipleItems', function(source) lokal item = {'item1', 'item2'} lokal jumlah = 5 lokal hasItem = exports['qb-inventory']:HasItem(source, item, jumlah) jika hasItem maka cetak('Pemain '..source..' memiliki '..amount..' dari setiap item: '..table.concat(items, ', ')) else print('Pemain '..source..' tidak memiliki '..amount..' dari setiap item: '..table.concat(items, ', ')) end end, true) RegisterCommand('hasMultipleItemsWithAmounts', function(source) local itemsWithAmounts = {item1 = 5, item2 = 10} local hasItemsWithAmounts = exports['qb-inventory']:HasItem(source, itemsWithAmounts) if hasItemsWithAmounts then print('Pemain '..source..' memiliki item yang ditentukan beserta jumlahnya') else print('Pemain '..source..' tidak memiliki item yang ditentukan beserta jumlahnya') end end, true)
Dapatkan Slot Berdasarkan Item
Menyalin
ekspor['qb-inventory']:GetSlotsByItem(item, namaItem)
- barang:
meja
- namaBarang:
rangkaian
- kembali:
meja
Contoh:Salin
RegisterCommand('getSlots', function(sumber, args) nama-item lokal = args[1] jika bukan nama-item maka kembalikan akhir pemain lokal = QBCore.Functions.GetPlayer(sumber) item lokal = Player.PlayerData.Items slot lokal = exports['qb-inventory']:GetSlotsByItem(item, nama-item) untuk _, slot di ipairs(slot) lakukan cetak(slot) akhir akhir, benar)
Dapatkan SlotPertamaBerdasarkanItem
Menyalin
ekspor['qb-inventory']:GetFirstSlotByItem(item, namaItem)
- barang:
meja
- namaBarang:
rangkaian
- kembali:
nomor
Contoh:Salin
RegisterCommand('getFirstSlot', function(source, args) local itemName = args[1] jika bukan itemName maka return end local Player = QBCore.Functions.GetPlayer(source) local items = Player.PlayerData.Items local slot = exports['qb-inventory']:GetFirstSlotByItem(items, itemName) jika slot maka print('Slot pertama yang berisi item '..itemName..' adalah: '..slot) jika tidak print('Tidak ditemukan slot yang berisi item '..itemName) end end, true)
DapatkanItemBerdasarkanSlot
Menyalin
ekspor['qb-inventory']:GetItemBySlot(sumber, slot)
- sumber:
nomor
- celah:
nomor
- kembali:
meja
Contoh:Salin
RegisterCommand('getItem', function(source, args) slot lokal = tonumber(args[1]) jika bukan slot maka kembalikan akhir item lokal = exports['qb-inventory']:GetItemBySlot(source, slot) jika item maka cetak('Item di slot '..slot..' adalah: '..item.name) jika tidak cetak('Tidak ada item yang ditemukan di slot '..slot) akhir akhir, benar)
DapatkanItemBerdasarkanNama
ekspor['qb-inventory']:GetItemByName(sumber, item)
- sumber:
nomor
- barang:
rangkaian
- kembali:
meja
RegisterCommand('getItemByName', function(source, args) local itemName = args[1] jika bukan itemName maka return end local item = exports['qb-inventory']:GetItemByName(source, itemName) jika item maka print('Kemunculan pertama item '..itemName..' ada di slot: '..item.slot) jika tidak print('Tidak ada item yang ditemukan dengan nama '..itemName) end end, true)
DapatkanItemBerdasarkanNama
ekspor['qb-inventory']:GetItemsByName(sumber, item)
- sumber:
nomor
- barang:
rangkaian
- kembali:
meja
Contoh:Salin
RegisterCommand('getItemsByName', function(source, args) local itemName = args[1] jika bukan itemName maka return end local items = exports['qb-inventory']:GetItemsByName(source, itemName) jika #items > 0 maka print('Item bernama '..itemName..' ditemukan di slot:') for _, item in ipairs(items) do print(item.slot) end else print('Tidak ada item yang ditemukan dengan nama '..itemName) end end, true)
DapatkanJumlahItem
ekspor['qb-inventory']:GetItemCount(sumber, item)
- sumber:
nomor
- barang:
tali | tabel
- kembali:
nomor
Contoh:Salin
RegisterCommand('getItemCount', function(source, args) local itemName = args[1] jika bukan itemName maka kembalikan end local itemCount = exports['qb-inventory']:GetItemCount(source, itemName) jika itemCount dan itemCount > 0 maka print('Anda memiliki '..itemCount..' dari item: '..itemName) jika tidak print('Tidak ada item yang ditemukan dengan nama '..itemName) end end, true) RegisterCommand('getItemCounts', function(source) local itemNames = {“apple”, “banana”, “orange”} local itemCount = exports['qb-inventory']:GetItemCount(source, itemNames) jika itemCount dan itemCount > 0 maka print('Anda memiliki '..itemCount..' dari item: '..table.concat(itemNames, “, “)) jika tidak print('Tidak ada item yang ditemukan dengan nama: '..table.concat(namaItem, “, “)) akhir akhir, benar)
Instalasi
Buku petunjuk
- Unduh skrip dan masukkan ke dalam
[jawaban]
direktori. - Impor
qb-inventori.sql
di database Anda - Tambahkan kode berikut ke server.cfg/resouces.cfg Anda
Migrasi dari qb-inventory lama
Basis Data
Unggah yang baru inventaris.sql
file untuk membuat yang baru inventaris
meja
Gunakan yang disediakan migrasi.sql
file untuk memigrasikan semua data inventaris tersimpan Anda dari tempat penyimpanan, bagasi, dll.
Setelah selesai, Anda dapat menghapusnya barang kotak sarung tangan
barang simpanan
dan barang bawaan
tabel dari database Anda
BUAT TABEL JIKA TIDAK ADA `inventaris` ( `id` INT(11) TIDAK NULL AUTO_INCREMENT, `pengidentifikasi` VARCHAR(50) TIDAK NULL, `item` LONGTEXT DEFAULT ('[]'), KUNCI PRIMER (`pengidentifikasi`), KUNCI `id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;