kerangka-qbcore/inventaris-qb

inventaris qbcore

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_sibukAnda 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 negaraMenyalin

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 Terbukadisebut 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;

Lisensi

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *


Dapatkan 20% dari Server QBCore Lengkap apa pun
id_IDBahasa Indonesia