qbcore-framework/qb-inventaris

qbcore inventaris

Functies

  • Stashes (persoonlijk en/of gedeeld)
  • Kofferbak en dashboardkastje
  • Wapenbevestigingen
  • Winkels
  • Item-drops

Downloaden

Documentatie

Inleiding

  • Beheert alle opslag van de speler, zoals persoonlijke spullen, voertuigen, stash en drops
  • qb-winkels integratie voor het weergeven van alle artikelen die te koop zijn
  • Ingebouwde ondersteuning voor bruikbare verkoopautomaten

Alle vermelde exporten zijn alleen SERVER, tenzij anders aangegeven

Inventarisstatus

De inventarisstatus wordt beheerd via staatszakken met behulp van een staatszaknaam van inv_bezet. U kunt deze status gebruiken om te bepalen of de inventaris geopend mag worden of niet

Voorbeeld (server):

Kopiëren

RegisterCommand('checkState', function(source) lokale speler = Player(source) lokale status = player.state.inv_busy print('Huidige status van inventaris is', state) end, true) RegisterCommand('lockInventory', function(source) lokale speler = Player(source) player.state.inv_busy = true print('Huidige status van inventaris is', state) end, true) RegisterCommand('unlockInventory', function(source) lokale speler = Player(source) player.state.inv_busy = false print('Huidige status van inventaris is', state) end, true)

Voorbeeld (klant):

Kopiëren

RegisterCommand('lockInventory', functie() LocalPlayer.state:set('inv_busy', true, true) einde, false) RegisterCommand('unlockInventory', functie() LocalPlayer.state:set('inv_busy', false, true) einde, false)

Artikelinformatie

U kunt SetItemData gebruiken om dit te bereiken

Items ondersteunen aanvullende informatie die eraan kan worden toegevoegd via een informatie attribuut. Deze informatie wordt weergegeven op het item wanneer de speler eroverheen beweegt in een sleutel-waardepaarformaat

Voorbeeld:

Kopiëren

RegisterCommand('addItemWithInfo', function(source, args) local itemName = args[1] if not itemName then return 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) if not Player then return end local items = Player.PlayerData.items local itemInfo = items[1] print(json.encode(itemInfo, { indent = true })) itemInfo.info = { newInfo = 'Nieuwe info' } print(json.encode(itemInfo, { indent = true })) items[1] = itemInfo Speler.Functions.SetPlayerData('items', items) einde, true)

Laadvoorraad

Deze functie haalt de inventaris van de spelers op uit de database via hun unieke identificatie, ook wel bekend als burgerKopiëren

exports['qb-inventory']: LoadInventory(bron, burger-id)
  • bron: nummer
  • burger-id: snaar
  • retourneert: tafel

Kopiëren

RegisterCommand('getInv', function(bron) lokale speler = QBCore.Functions.GetPlayer(bron) lokale citizenId = speler.PlayerData.citizenid lokale items = exports['qb-inventory']:LoadInventory(bron, citizenid) print(json.encode(items, { indent = true })) end)

OpslaanInventaris

Deze functie slaat de huidige items van de speler op in de database. Kopiëren

exports['qb-inventory']:SaveInventory(bron, offline)
  • bron: nummer
  • offline: Booleaans

Voorbeeld:

Kopiëren

RegisterCommand('saveInv', functie(bron) exports['qb-inventory']:SaveInventory(bron, false) end)

Voorraad wissen

Kopiëren

exports['qb-inventory']:ClearInventory(bron, filterItems)
  • bron: nummer
  • Filteritems: snaar | tabel

Voorbeeld:Kopiëren

RegisterCommand('clearInventoryExcludeItem', function(source, args) local filterItem = args[1] if not filterItem then return end exports['qb-inventory']:ClearInventory(source, filterItem) print('Inventaris gewist voor speler '..source..', exclusief item: '..filterItem) end, true) RegisterCommand('clearInventoryExcludeItems', function(source) local filterItems = {'item1', 'item2'} exports['qb-inventory']:ClearInventory(source, filterItems) print('Inventaris gewist voor speler '..source..', exclusief items: '..table.concat(filterItems, ', ')) end, true)

SluitenInventaris

Kopiëren

exports['qb-inventory']:CloseInventory(bron, identifier)
  • bron: nummer
  • identificatie: snaar

Voorbeeld:Kopiëren

RegisterCommand('closeInventory', function(source) exports['qb-inventory']:CloseInventory(source) print('Inventaris gesloten voor speler '..source) end, true) RegisterCommand('closeInventoryByName', function(source, identifier) exports['qb-inventory']:CloseInventory(source, identifier) print('Inventaris gesloten voor speler '..source..' en inventaris '..identifier..' ingesteld op gesloten') end, true)

OpenInventaris

Kopiëren

exports['qb-inventory']:OpenInventory(bron, identifier, data)
  • bron: nummer
  • identificatie: string | optioneel
  • gegevens: tafel | optioneel

Voorbeeld:

Kopiëren

RegisterCommand('openinv', functie(bron) exports['qb-inventory']:OpenInventory(bron) einde, waar) RegisterCommand('openinvbyname', functie(bron, args) lokale inventarisnaam = args[1] exports['qb-inventory']:OpenInventory(bron, inventarisnaam) einde, waar) RegisterCommand('openinvbynamewithdata', functie(bron, args) lokale inventarisnaam = args[1] lokale data = { label = 'Aangepaste voorraad', maxgewicht = 400000, slots = 500 } exports['qb-inventory']:OpenInventory(bron, inventarisnaam, data) einde, waar)

OpenInventarisOpId

Kopiëren

exports['qb-inventory']:OpenInventoryById(bron, speler-ID)
  • bron: nummer
  • speler-ID: nummer

Voorbeeld:

Kopiëren

RegisterCommand('openplayerinv', functie(bron, args) lokale spelerId = tonumber(args[1]) exports['qb-inventory']:OpenInventoryById(bron, spelerId) einde, true)

OpenInventarisOpId zal de inventaris van de doelspeler sluiten (indien open) en vergrendelen via de status. Het zal dan ontgrendelen wanneer de openende speler het sluit

MaakWinkel

Kopiëren

exports['qb-inventory']:CreateShop(shopData)
  • winkelgegevens: tafel

Kopiëren

lokale items = { { naam = 'sandwich', bedrag = 10, prijs = 5 } } RegisterCommand('createShop', functie(bron) lokale playerPed = GetPlayerPed(bron) lokale playerCoords = GetEntityCoords(playerPed) exports['qb-inventory']:CreateShop({ naam = 'testShop', label = 'Test Shop', coords = playerCoords, -- optionele slots = #items, items = items }) end, true)

Coördinaten worden doorgegeven aan creërenWinkel wordt gecontroleerd aan de hand van de huidige coördinaten van de speler wanneer OpenWinkelwordt aangeroepen als er coördinaten zijn verstrekt tijdens creërenWinkel

OpenWinkel

Kopiëren

exports['qb-inventory']:OpenShop(bron, naam)
  • bron: nummer
  • naam: snaar

Kopiëren

RegisterCommand('openShop', functie(bron) exports['qb-inventory']:OpenShop(bron, 'testShop') einde)

KanItemToevoegen

Kopiëren

exports['qb-inventory']:CanAddItem(bron, item, bedrag)
  • bron: nummer
  • item: snaar
  • hoeveelheid: nummer
  • retourneert: Booleaans

Voorbeeld:Kopiëren

RegisterCommand('canAddItem', function(source, args) lokale itemName = args[1] lokale amount = tonumber(args[2]) indien niet itemName of niet amount dan return end lokale canAdd, reden = exports['qb-inventory']:CanAddItem(source, itemName, amount) indien canAdd dan print('Kan '..amount..' toevoegen van item '..itemName..') anders print('Kan '..amount..' niet toevoegen van item '..itemName..'. Reden: '..reason) end end, true)

Item toevoegen

Kopiëren

exports['qb-inventory']:AddItem(identifier, item, amount, slot, info, reason)
  • identificatie: nummer
  • item: snaar
  • hoeveelheid: nummer
  • sleuf: nummer | booleaans
  • informatie: tabel | booleaans
  • reden: snaar
  • retourneert: Booleaans

Voorbeeld:

Kopiëren

RegisterCommand('addItem', function(source, args) lokale itemName = args[1] indien niet itemName dan return einde exports['qb-inventory']:AddItem(source, itemName, 1, false, false, 'qb-inventory:testAdd') einde, true)

VerwijderItem

Kopiëren

exports['qb-inventory']:RemoveItem(identifier, item, bedrag, slot, reden)
  • identificatie: nummer
  • item: snaar
  • hoeveelheid: nummer
  • sleuf: nummer | booleaans
  • reden: snaar
  • retourneert: Booleaans

Kopiëren

RegisterCommand('removeItem', function(source, args) lokale itemName = args[1] indien niet itemName dan return end exports['qb-inventory']:RemoveItem(source, itemName, 1, false, 'qb-inventory:testRemove') end, true)

Inventaris instellen

Kopiëren

exports['qb-inventory']:SetInventory(bron, items)
  • bron: nummer
  • artikelen: tafel

Voorbeeld:Kopiëren

RegisterCommand('setInventory', function(bron) lokale items = { { naam = 'sandwich', bedrag = 10, type = 'item', info = {}, slot = 1 }, { naam = 'water_bottle', bedrag = 10, type = 'item', info = {}, slot = 2 } } exports['qb-inventory']:SetInventory(bron, items) end, true)

SetItemData

Deze functie gebruikt GetItemByName om de itemName te vinden die wordt doorgegeven. Kopiëren

exports['qb-inventory']:SetItemData(bron, itemnaam, sleutel, waarde)
  • bron: nummer
  • itemnaam: snaar
  • sleutel: snaar
  • waarde: snaar | tabel
  • retourneert: Booleaans

Voorbeeld:Kopiëren

RegisterCommand('setItemData', function(source, args) local itemName = args[1] local key = args[2] local val = args[3] if not itemName or not key or not val then return end local success = exports['qb-inventory']:SetItemData(source, itemName, key, val) if successful then print('Gegevens instellen voor item '..itemName..': '..key..' = '..val) else print('Gegevens instellen voor item '..itemName' is mislukt) end end, true)

Voorbeeld van artikelinfo:

Kopiëren

RegisterCommand('setItemData', function(source) local itemName = 'markedbills' local key = 'info' local val = { worth = 1000 } if not itemName or not key or not val then return end local success = exports['qb-inventory']:SetItemData(source, itemName, key, val) if success then print('Gegevens instellen voor item '..itemName..': '..key..' = '..json.encode(val, { indent = true })) else print('Gegevens instellen voor item '..itemName' is mislukt) end end, true)

GebruikItem

Kopiëren

exports['qb-inventory']:UseItem(itemName, ...)
  • itemnaam: snaar
  • . . . : functie

Voorbeeld:Kopiëren

RegisterCommand('useItem', function(source, args) local itemName = args[1] if not itemName then return end exports['qb-inventory']:Useitem(itemName, function() print('Gebruikt item met de naam '..itemName) end) end, true)

HeeftItem

Deze export is ook beschikbaar voor gebruik op de clientKopie

exports['qb-inventory']:HasItem(bron, items, bedrag)
  • bron: nummer
  • artikelen: snaar | tabel
  • hoeveelheid: nummer
  • retourneert: Booleaans

Voorbeeld:Kopiëren

RegisterCommand('hasSingleItem', function(bron) lokaal item = 'item1' lokaal bedrag = 5 lokaal hasItem = exports['qb-inventory']:HasItem(bron, item, bedrag) if hasItem then print('Speler '..source..' heeft '..bedrag..' van '..item) else print('Speler '..source..' heeft geen '..bedrag..' van '..item) end end, true) RegisterCommand('hasMultipleItems', function(bron) lokale items = {'item1', 'item2'} lokaal bedrag = 5 lokaal hasItems = exports['qb-inventory']:HasItem(bron, items, bedrag) if hasItems then print('Speler '..source..' heeft '..bedrag..' van elk item: '..table.concat(items, ', ')) else print('Speler '..source..' heeft niet '..amount..' van elk 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('Speler '..source..' heeft de opgegeven items met hun bedragen') else print('Speler '..source..' heeft niet de opgegeven items met hun bedragen') end end, true)

SlotsOpItemVerkrijgen

Kopiëren

exports['qb-inventaris']:GetSlotsByItem(items, itemnaam)
  • artikelen: tafel
  • itemnaam: snaar
  • retourneert: tafel

Voorbeeld:Kopiëren

RegisterCommand('getSlots', function(source, args) lokale itemName = args[1] indien niet itemName dan return end lokale Player = QBCore.Functions.GetPlayer(source) lokale items = Player.PlayerData.Items lokale slots = exports['qb-inventory']:GetSlotsByItem(items, itemName) voor _, slot in ipairs(slots) doe print(slot) end end, true)

EersteSlotOpItemGet

Kopiëren

exports['qb-inventaris']:GetFirstSlotByItem(items, itemName)
  • artikelen: tafel
  • itemnaam: snaar
  • retourneert: nummer

Voorbeeld:Kopiëren

RegisterCommand('getFirstSlot', function(source, args) local itemName = args[1] if not itemName then return end local Player = QBCore.Functions.GetPlayer(source) local items = Player.PlayerData.Items local slot = exports['qb-inventory']:GetFirstSlotByItem(items, itemName) if slot then print('Eerste slot met item '..itemName..' is: '..slot) else print('Geen slot gevonden met item '..itemName) end end, true)

ItemOpSlotOphalen

Kopiëren

exports['qb-inventory']:GetItemBySlot(bron, slot)
  • bron: nummer
  • sleuf: nummer
  • retourneert: tafel

Voorbeeld:Kopiëren

RegisterCommand('getItem', function(source, args) lokale slot = tonumber(args[1]) indien niet slot dan return end lokale item = exports['qb-inventory']:GetItemBySlot(source, slot) indien item dan print('Item in slot '..slot..' is: '..item.name) anders print('Geen item gevonden in slot '..slot) end end, true)

ItemOpNaamOphalen

exports['qb-inventory']:GetItemByName(bron, item)
  • bron: nummer
  • item: snaar
  • retourneert: tafel
RegisterCommand('getItemByName', function(source, args) local itemName = args[1] if not itemName then return end local item = exports['qb-inventory']:GetItemByName(source, itemName) if item then print('Eerste voorkomen van item '..itemName..' is in slot: '..item.slot) else print('Geen item gevonden met naam '..itemName) end end, true)

ItemsOpNaamOphalen

exports['qb-inventory']:GetItemsByName(bron, item)
  • bron: nummer
  • item: snaar
  • retourneert: tafel

Voorbeeld:Kopiëren

RegisterCommand('getItemsByName', function(source, args) local itemName = args[1] if not itemName then return end local items = exports['qb-inventory']:GetItemsByName(source, itemName) if #items > 0 then print('Items met de naam '..itemName..' gevonden in slots:') for _, item in ipairs(items) do print(item.slot) end else print('Geen items gevonden met de naam '..itemName) end end, true)

ItemAantal ophalen

exports['qb-inventory']:GetItemCount(bron, artikelen)
  • bron: nummer
  • artikelen: snaar | tabel
  • retourneert: nummer

Voorbeeld:Kopiëren

RegisterCommand('getItemCount', function(source, args) lokale itemName = args[1] indien niet itemName dan return end lokale itemCount = exports['qb-inventory']:GetItemCount(source, itemName) indien itemCount en itemCount > 0 dan print('U hebt '..itemCount..' van item: '..itemName) anders print('Geen items gevonden met de naam '..itemName) end end, true) RegisterCommand('getItemCounts', function(source) lokale itemNames = {“apple”, “banana”, “orange”} lokale itemCount = exports['qb-inventory']:GetItemCount(source, itemNames) indien itemCount en itemCount > 0 dan print('U hebt '..itemCount..' van de items: '..table.concat(itemNames, “, “)) anders print('Geen items gevonden met de namen: '..table.concat(itemNames, “, “)) einde einde, true)

Installatie

Handmatig

  • Download het script en plaats het in de [qb] map.
  • Importeren qb-inventaris.sql in uw database
  • Voeg de volgende code toe aan uw server.cfg/resouces.cfg

Migreren van oude qb-inventaris

Databank

Upload de nieuwe inventaris.sql bestand om de nieuwe te maken inventarissen tafel

Gebruik de meegeleverde migreren.sql bestand om al uw opgeslagen inventarisgegevens te migreren van voorraden, koffers, enz.

Zodra u klaar bent, kunt u het verwijderen handschoenenkastjeitems voorraadartikelen en kofferbakartikelen tabellen uit uw database

MAAK TABEL ALS NIET BESTAAT `inventarissen` ( `id` INT(11) NIET NULL AUTO_INCREMENT, `identifier` VARCHAR(50) NIET NULL, `items` LONGTEXT STANDAARD ('[]'), PRIMAIRE SLEUTEL (`identifier`), SLEUTEL `id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 STANDAARD CHARSET=utf8mb4;

Licentie

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *


Krijg 20% korting op alle volledige QBCore-servers
nl_NLNederlands