From 9d017073e17e88f1adc3385f0cbfb8fff0946634 Mon Sep 17 00:00:00 2001 From: Mallux <71310594+juhn22@users.noreply.github.com> Date: Fri, 20 Jan 2023 14:20:04 +0200 Subject: [PATCH 01/30] Update fi.lua Working Finnish translation --- locale/fi.lua | 134 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 116 insertions(+), 18 deletions(-) diff --git a/locale/fi.lua b/locale/fi.lua index b4e4939..c474f64 100644 --- a/locale/fi.lua +++ b/locale/fi.lua @@ -1,28 +1,126 @@ local Translations = { error = { not_online = 'Pelaaja ei ole paikalla', - wrong_format = 'Virheellinen muoto', + wrong_format = 'Väärä formaatti', missing_args = 'Kaikkia argumentteja ei ole syötetty (x, y, z)', - missing_args2 = 'Kaikkia argumentteja ei ole syötetty!', - no_access = 'Sinulla ei ole oikeuksia kyseiseen komentoon', - company_too_poor = 'Sinun firmasi on liian köyhä', - item_not_exist = 'Tätä itemiä ei ole olemassa', - too_heavy = 'Reppusi on liian täynnä' + missing_args2 = 'Kaikki argumentit on täytettävä!', + no_access = 'Ei pääsyä tähän komentoon', + company_too_poor = 'Työnantajasi on köyhä', + item_not_exist = 'Kohdetta ei ole olemassa', + too_heavy = 'Taskusi ovat täynnä', + location_not_exist = 'Sijaintia ei ole olemassa', + duplicate_license = 'Rockstar-lisenssin kaksoiskappale löydetty', + no_valid_license = 'Voimassa olevaa Rockstar-lisenssiä ei löytynyt', + not_whitelisted = 'Sinua ei ole lisätty tämän palvelimen allowlistille', + server_already_open = 'Serveri on jo auki', + server_already_closed = 'Serveri on jo suljettu', + no_permission = 'Sinulla ei ole oikeuksia tämmöseen..', + no_waypoint = 'Et ole asettanut waypointtia.', + tp_error = 'Virhe teleportatessa.', + connecting_database_error = 'Tietokantavirhe muodostettaessa yhteyttä palvelimeen. (Onko SQL-palvelin päällä?)', + connecting_database_timeout = 'Yhteys tietokantaan aikakatkaistiin. (Onko SQL-palvelin päällä?)', + }, + success = { + server_opened = 'Palvelin on avattu', + server_closed = 'Palvelin on suljettu', + teleported_waypoint = 'Teleporttaa Waypointille', }, - success = {}, info = { - received_paycheck = 'Sinä sait palkan $%{value}', + received_paycheck = 'Olet saanut palkkasi $%{value}', job_info = 'Työ: %{value} | Arvo: %{value2} | Vuorossa: %{value3}', gang_info = 'Jengi: %{value} | Arvo: %{value2}', - on_duty = 'Sinä olet nyt vuorossa!', - off_duty = 'Sinä poistuit vuorosta!' - } + on_duty = 'Olet nyt vuorossa', + off_duty = 'Olet nyt poisvuorosta!', + checking_ban = 'Tervehdys %s. Tarkistetaan oletko saanut porttikieltoa.', + join_server = 'Tervetuloa %s - {Server Name}.', + checking_whitelisted = 'Terve %s. Tarkistamme etusi.', + exploit_banned = 'Sinut on bännatty cheattaamisesta. Katso lisätietoja Discordistamme: %{discord}', + exploit_dropped = 'Sinua on potkittu hyväksikäytön vuoksi', + }, + command = { + tp = { + help = 'TP pelaajalle tai koordinaateille (Vain Admineille)', + params = { + x = { name = 'id/x', help = 'Pelaajan ID tai X-paikka'}, + y = { name = 'y', help = 'Y position'}, + z = { name = 'z', help = 'Z position'}, + }, + }, + tpm = { help = 'TP Markerille (Vain Admineille)' }, + togglepvp = { help = 'Vaihda PVP palvelimelle (Vain Admineille)' }, + addpermission = { + help = 'Anna pelaajalle admin oikeudet (God Only)', + params = { + id = { name = 'id', help = 'Pelaajan ID' }, + permission = { name = 'permission', help = 'Permission level' }, + }, + }, + removepermission = { + help = 'Poista pelaajatlta admin oikeudet (God Only)', + params = { + id = { name = 'id', help = 'Pelaajan ID' }, + permission = { name = 'permission', help = 'Permission level' }, + }, + }, + openserver = { help = 'Avaa palvelin kaikille (Vain Admineille)' }, + closeserver = { + help = 'Sulje palvelin ihmisiltä, ​​joilla ei ole oikeuksia (Vain Admineille)', + params = { + reason = { name = 'reason', help = 'Sulkemisen syy (valinnainen)' }, + }, + }, + car = { + help = 'Spawnaa ajoneuvo (Vain Admineille)', + params = { + model = { name = 'model', help = 'Ajoneuvon nimi' }, + }, + }, + dv = { help = 'Poista ajoneuvo (Vain Admineille)' }, + givemoney = { + help = 'Anna Pelaajalle rahaa (Vain Admineille)', + params = { + id = { name = 'id', help = 'Pelaajan ID' }, + moneytype = { name = 'moneytype', help = 'Rahan tyyppi (cash, bank, crypto)' }, + amount = { name = 'amount', help = 'Rahan määrä' }, + }, + }, + setmoney = { + help = 'Aseta pelaajien rahasumma (Vain Admineille)', + params = { + id = { name = 'id', help = 'Pelaajan ID' }, + moneytype = { name = 'moneytype', help = 'Rahan tyyppi (cash, bank, crypto)' }, + amount = { name = 'amount', help = 'Rahan määrä' }, + }, + }, + job = { help = 'katso työsi' }, + setjob = { + help = 'Aseta pelaajalle työ (Vain Admineille)', + params = { + id = { name = 'id', help = 'Pelaajan ID' }, + job = { name = 'job', help = 'Työn nimi' }, + grade = { name = 'grade', help = 'Arvo' }, + }, + }, + gang = { help = 'Katso jengisi' }, + setgang = { + help = 'Aseta pelaajalle jengi (Vain Admineille)', + params = { + id = { name = 'id', help = 'Pelaajan ID' }, + gang = { name = 'gang', help = 'Jengin Nimi' }, + grade = { name = 'grade', help = 'Arvo' }, + }, + }, + ooc = { help = 'OOC Viesti lähipelaajille' }, + me = { + help = 'Näytä paikallinen viesti', + params = { + message = { name = 'message', help = 'Mitä haluat kertoa?' } + }, + }, + }, } -if GetConvar('qb_locale', 'en') == 'fi' then - Lang = Locale:new({ - phrases = Translations, - warnOnMissing = true, - fallbackLang = Lang, - }) -end +Lang = Lang or Locale:new({ + phrases = Translations, + warnOnMissing = true +}) From cf72c590abf79ec35e11f69e403755fc1e918214 Mon Sep 17 00:00:00 2001 From: Matti <57048210+MattiVboiii@users.noreply.github.com> Date: Fri, 20 Jan 2023 20:57:26 +0100 Subject: [PATCH 02/30] Update nl.lua --- locale/nl.lua | 120 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 108 insertions(+), 12 deletions(-) diff --git a/locale/nl.lua b/locale/nl.lua index 3d6e6bc..003ed30 100644 --- a/locale/nl.lua +++ b/locale/nl.lua @@ -1,28 +1,123 @@ local Translations = { error = { - not_online = 'Speler is niet online', + not_online = 'Speler niet online', wrong_format = 'Onjuiste opmaak', missing_args = 'Niet elk argument is ingevuld (x, y, z)', missing_args2 = 'Alle argumenten moeten worden ingevuld!', no_access = 'Geen toegang tot dit commando', company_too_poor = 'Je werkgever is arm', item_not_exist = 'Item bestaat niet', - too_heavy = 'Inventaris is te vol', + too_heavy = 'Broekzakken zitten vol', + location_not_exist = 'Locatie bestaat niet', duplicate_license = 'Dubbele Rockstar-licentie gevonden', no_valid_license = 'Geen geldige Rockstar-licentie gevonden', - not_whitelisted = 'Je staat niet op de whitelist voor deze server' + not_whitelisted = 'U bent niet whitelisted voor deze server', + server_already_open = 'De server is al open', + server_already_closed = 'De server is al gesloten', + no_permission = 'Je hebt geen permissie voor dit..', + no_waypoint = 'Geen bestemming geselecteerd', + tp_error = 'Er is een foutje begaan tijdens het teleporteren', + connecting_database_error = 'Er is een databasefout opgetreden tijdens het maken van een verbinding met de server. (Is de SQL-server ingeschakeld?)', + connecting_database_timeout = 'Er is een time-out opgetreden voor verbinding met database. (Is de SQL-server ingeschakeld?)', + }, + success = { + server_opened = 'De server is geopend', + server_closed = 'De server is gesloten', + teleported_waypoint = 'Geteleporteerd naar bestemming', }, - success = {}, info = { - received_paycheck = 'Je hebt je salaris van $%{value} ontvangen', - job_info = 'Baan: %{value} | Rang: %{value2} | In dienst: %{value3}', - gang_info = 'Gang: %{value} | Rang: %{value2}', - on_duty = 'Je bent nu in dienst!', - off_duty = 'Je bent nu uit dienst!', - checking_ban = 'Hallo %s. We controleren of je verbannen bent.', + received_paycheck = 'Je hebt je salaris ontvangen van $%{value}', + job_info = 'Job: %{value} | Graad: %{value2} | Dienst: %{value3}', + gang_info = 'Gang: %{value} | Graad: %{value2}', + on_duty = 'U bent nu in dienst!', + off_duty = 'U bent nu uit dienst!', + checking_ban = 'Hallo %s. We checken even of je op onze banlist staat.', join_server = 'Welkom %s bij {Server Name}.', - checking_whitelisted = 'Hallo %s. We controleren of je op de whitelist staat.' - } + checking_whitelisted = 'Hallo %s. We checken even of je toegang hebt.', + exploit_banned = 'Je bent verbannen wegens cheating. Bekijk onze Discord voor meer informatie: %{discord}', + exploit_dropped = 'Je bent gekicked voor exploitation', + }, + command = { + tp = { + help = 'Teleport naar speler of coördinaten (Alleen Admin)', + params = { + x = { name = 'id/x', help = 'ID van speler of X-positie'}, + y = { name = 'y', help = 'Y positie'}, + z = { name = 'z', help = 'Z positie'}, + }, + }, + tpm = { help = 'Teleport naar bestemming (Alleen Admin)' }, + togglepvp = { help = 'PVP op de server in-/uitschakelen (Alleen Admin)' }, + addpermission = { + help = 'Spelersmachtigingen toevoegen (alleen God)', + params = { + id = { name = 'id', help = 'ID van de speler' }, + permission = { name = 'permission', help = 'Machtigingsniveau' }, + }, + }, + removepermission = { + help = 'Spelersmachtigingen verwijderen (alleen God)', + params = { + id = { name = 'id', help = 'ID van de speler' }, + permission = { name = 'permission', help = 'Machtigingsniveau' }, + }, + }, + openserver = { help = 'Open de server voor iedereen (Alleen Admin)' }, + closeserver = { + help = 'Sluit de server voor personen zonder machtigingen (Alleen Admin)', + params = { + reason = { name = 'reason', help = 'Reden voor sluiting (optioneel)' }, + }, + }, + car = { + help = 'Spawn Voertuig (Alleen Admin)', + params = { + model = { name = 'model', help = 'Modelnaam van het voertuig' }, + }, + }, + dv = { help = 'Verwijder Voertuig (Alleen Admin)' }, + givemoney = { + help = 'Geef een speler geld (Alleen Admin)', + params = { + id = { name = 'id', help = 'Speler ID' }, + moneytype = { name = 'moneytype', help = 'Type geld (cash, bank, crypto)' }, + amount = { name = 'amount', help = 'Hoeveelheid geld' }, + }, + }, + setmoney = { + help = 'Stel spelers geldbedrag in (Alleen Admin)', + params = { + id = { name = 'id', help = 'Speler ID' }, + moneytype = { name = 'moneytype', help = 'Type geld (cash, bank, crypto)' }, + amount = { name = 'amount', help = 'Hoeveelheid geld' }, + }, + }, + job = { help = 'Controleer uw job' }, + setjob = { + help = 'Een speler zijn job instellen (Alleen Admin)', + params = { + id = { name = 'id', help = 'Speler ID' }, + job = { name = 'job', help = 'Job naam' }, + grade = { name = 'grade', help = 'Job graad' }, + }, + }, + gang = { help = 'Controleer uw bende' }, + setgang = { + help = 'Een speler zijn bende instellen (Alleen Admin)', + params = { + id = { name = 'id', help = 'Speler ID' }, + gang = { name = 'gang', help = 'Bendenaam' }, + grade = { name = 'grade', help = 'Bende rol' }, + }, + }, + ooc = { help = 'OOC Chat Bericht' }, + me = { + help = 'Lokaal bericht weergeven', + params = { + message = { name = 'message', help = 'Bericht dat je wil versturen' } + }, + }, + }, } if GetConvar('qb_locale', 'en') == 'nl' then @@ -32,3 +127,4 @@ if GetConvar('qb_locale', 'en') == 'nl' then fallbackLang = Lang, }) end + From 7b68f72cecc70808bb18fd3f59457188f97e6872 Mon Sep 17 00:00:00 2001 From: Jack Date: Thu, 26 Jan 2023 01:58:28 +0000 Subject: [PATCH 03/30] Update vehicles.lua (#929) * Update vehicles.lua Remove the space after this, as when somebody tries to pull it out, it will break PDM due to the space in the model hash. * Bump version number Co-authored-by: zwkf --- fxmanifest.lua | 2 +- shared/vehicles.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index d2e2ff5..55e59bf 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'cerulean' game 'gta5' description 'QB-Core' -version '1.2.1' +version '1.2.2' shared_scripts { 'config.lua', diff --git a/shared/vehicles.lua b/shared/vehicles.lua index c5cadd6..f9784bd 100644 --- a/shared/vehicles.lua +++ b/shared/vehicles.lua @@ -4991,7 +4991,7 @@ QBShared.Vehicles = { ['rhinehart'] = { ['name'] = 'Rhinehart', ['brand'] = 'Übermacht', - ['model'] = 'rhinehart ', + ['model'] = 'rhinehart', ['price'] = 105000, ['category'] = 'sedans', ['categoryLabel'] = 'Sedans', From 889196adf0ecc87c00cd09bfeaf6d05963b6e417 Mon Sep 17 00:00:00 2001 From: LRemp Date: Sun, 29 Jan 2023 17:20:25 +0200 Subject: [PATCH 04/30] bugfix: force clear vehicle custom colors before applying standart vehicle colors --- client/functions.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/client/functions.lua b/client/functions.lua index e9f2ca8..93aa104 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -605,6 +605,7 @@ function QBCore.Functions.SetVehicleProperties(vehicle, props) end if props.color1 then if type(props.color1) == "number" then + ClearVehicleCustomPrimaryColour(vehicle) SetVehicleColours(vehicle, props.color1, colorSecondary) else SetVehicleCustomPrimaryColour(vehicle, props.color1[1], props.color1[2], props.color1[3]) @@ -612,6 +613,7 @@ function QBCore.Functions.SetVehicleProperties(vehicle, props) end if props.color2 then if type(props.color2) == "number" then + ClearVehicleCustomSecondaryColour(vehicle) SetVehicleColours(vehicle, props.color1 or colorPrimary, props.color2) else SetVehicleCustomSecondaryColour(vehicle, props.color2[1], props.color2[2], props.color2[3]) From 14340bb374691068662a0ccd9c013fcfadae0406 Mon Sep 17 00:00:00 2001 From: "worapol.pan.buraphan" Date: Wed, 1 Feb 2023 06:59:36 +0700 Subject: [PATCH 05/30] Fix drawtext error (#938) 1. Start QB-Core on a slow or low-spec computer 2. Access the Debug UI page (localhost:13172) 3. Encounter an error in the drawtext.js file 4. The issue stems from the script loading successfully but any resource call function (hideText) and sending an event message before index.html of all resources are fully loaded on NUI it make `html
` is not loaded. --- html/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/index.html b/html/index.html index ee1875f..4424117 100644 --- a/html/index.html +++ b/html/index.html @@ -7,8 +7,6 @@ - - @@ -16,5 +14,7 @@
+ + - \ No newline at end of file + From 2311af93b49fe20255f77b96dfac40277e5dc867 Mon Sep 17 00:00:00 2001 From: Mythic <96889753+ExtrmHighC@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:33:57 -0800 Subject: [PATCH 06/30] sets veh as mission entity to use delete native --- client/events.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/client/events.lua b/client/events.lua index 60fae33..d529041 100644 --- a/client/events.lua +++ b/client/events.lua @@ -129,6 +129,7 @@ RegisterNetEvent('QBCore:Command:SpawnVehicle', function(vehName) end if IsPedInAnyVehicle(ped) then + SetEntityAsMissionEntity(veh, true, true) DeleteVehicle(veh) end From 29d159cab1ea7a84fdf99d7fd58a06de3e34478e Mon Sep 17 00:00:00 2001 From: R0adRa93 <42512379+r0adra93@users.noreply.github.com> Date: Fri, 10 Feb 2023 12:49:56 -0500 Subject: [PATCH 07/30] Revert "Fix drawtext error (#938)" (#944) This reverts commit 14340bb374691068662a0ccd9c013fcfadae0406. --- html/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/index.html b/html/index.html index 4424117..ee1875f 100644 --- a/html/index.html +++ b/html/index.html @@ -7,6 +7,8 @@ + + @@ -14,7 +16,5 @@
- - - + \ No newline at end of file From 0a42541f34eb7810b1fe2059d52365a083117f73 Mon Sep 17 00:00:00 2001 From: KamuiKody <62488881+KamuiKody@users.noreply.github.com> Date: Mon, 13 Feb 2023 04:56:55 -0500 Subject: [PATCH 08/30] remove unnecessary table (#936) at startup there is no need to repopulate the same table it doesnt get called anywhere else in the entire resource folder. Co-authored-by: zwkf --- shared/vehicles.lua | 5 ----- 1 file changed, 5 deletions(-) diff --git a/shared/vehicles.lua b/shared/vehicles.lua index f9784bd..476cac4 100644 --- a/shared/vehicles.lua +++ b/shared/vehicles.lua @@ -1,5 +1,4 @@ QBShared = QBShared or {} -QBShared.VehicleHashes = {} QBShared.Vehicles = { --- Compacts @@ -5399,7 +5398,3 @@ QBShared.Vehicles = { ['shop'] = 'truck', }, } - -for _, v in pairs(QBShared.Vehicles) do - QBShared.VehicleHashes[v.hash] = v -end From e515317cc8035377cdcf5fbd1c1c3e55cfc1ead4 Mon Sep 17 00:00:00 2001 From: minkuan-buu <43996586+minkuan-buu@users.noreply.github.com> Date: Wed, 22 Feb 2023 06:56:39 +0700 Subject: [PATCH 09/30] Fix Vietnamese translations (#947) * Update vn.lua Edit spelling * Bump --------- Co-authored-by: zwkf --- fxmanifest.lua | 2 +- locale/vn.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index 55e59bf..a671ce9 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'cerulean' game 'gta5' description 'QB-Core' -version '1.2.2' +version '1.2.3' shared_scripts { 'config.lua', diff --git a/locale/vn.lua b/locale/vn.lua index f3ae841..e148a4c 100644 --- a/locale/vn.lua +++ b/locale/vn.lua @@ -2,7 +2,7 @@ local Translations = { error = { not_online = 'Người chơi không trực tuyến', wrong_format = 'Định dạng không chính xác', - missing_args = 'chưa nhập đủ các số (x, y, z)', + missing_args = 'Chưa nhập đủ các số (x, y, z)', missing_args2 = 'Tất cả các đối số phải được điền vào!', no_access = 'không có quyền sử dụng lệnh này', company_too_poor = 'Công ty của bạn đã phá sản', @@ -11,7 +11,7 @@ local Translations = { }, success = {}, info = { - received_paycheck = 'bạn nhận được sốt tiền thanh toán là $%{value}', + received_paycheck = 'Bạn nhận được số tiền thanh toán là $%{value}', job_info = 'Công việc: %{value} | Cấp độ: %{value2} | Làm việc: %{value3}', gang_info = 'Băng đảng: %{value} | Cấp độ: %{value2}', on_duty = 'Bạn đã sẵn sàng làm viêc!', From eb0213c60baadcad87bf4d2a022e4f8f9b88ac85 Mon Sep 17 00:00:00 2001 From: Brian <77130771+brianmork@users.noreply.github.com> Date: Wed, 22 Feb 2023 01:02:26 +0100 Subject: [PATCH 10/30] Update Norwegian language file (#934) * Updated no.lua * Bump --------- Co-authored-by: zwkf --- fxmanifest.lua | 2 +- locale/no.lua | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index a671ce9..56194dd 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'cerulean' game 'gta5' description 'QB-Core' -version '1.2.3' +version '1.2.4' shared_scripts { 'config.lua', diff --git a/locale/no.lua b/locale/no.lua index cc7694e..b51c7cb 100644 --- a/locale/no.lua +++ b/locale/no.lua @@ -4,7 +4,7 @@ local Translations = { wrong_format = 'Ugyldig format', missing_args = 'Ikke alle argumenter er lagt inn (x, y, z)', missing_args2 = 'Alle argumenter må fylles ut!', - no_access = 'Ingen tilgang til denne kommandoen', + no_access = 'Du mangler tilgang til denne kommandoen', company_too_poor = 'Arbeidsgiveren din er blakk', item_not_exist = 'Gjenstand finnes ikke', too_heavy = 'Lommene er fulle', @@ -14,24 +14,24 @@ local Translations = { not_whitelisted = 'Du har ikke tilgang til serveren', server_already_open = 'Serveren er allerede åpen', server_already_closed = 'Serveren er allerede stengt', - no_permission = 'Du har ikke tillatelser for dette..', - no_waypoint = 'Ingen veipunkt satt.', + no_permission = 'Du har ikke tillatelser til dette..', + no_waypoint = 'Ingen markør satt.', tp_error = 'Feil under teleportering.', }, success = { server_opened = 'Serveren er åpnet', server_closed = 'Serveren er stengt', - teleported_waypoint = 'Teleporter til veipunkt.', + teleported_waypoint = 'Teleporter til angitt markør.', }, info = { - received_paycheck = 'Du mottok lønnsslippen din på kr %{value}', - job_info = 'Jobb: %{value} | Grad: %{value2} | vakt: %{value3}', + received_paycheck = 'Du har mottatt lønnsslippen din på kr %{value}', + job_info = 'Jobb: %{value} | Grad: %{value2} | Vakt: %{value3}', gang_info = 'Gjeng: %{value} | Grad: %{value2}', on_duty = 'Du er nå på vakt!', off_duty = 'Du er nå av vakt!', checking_ban = 'Hei %s. Vi sjekker om du er utestengt.', join_server = 'Velkommen %s til {Server Name}.', - checking_whitelisted = 'Hei %s. Vi sjekker tilganger.', + checking_whitelisted = 'Hei %s. Vi sjekker dine tilganger.', exploit_banned = 'Du har blitt utestengt for juks. Sjekk vår Discord for mer informasjon: %{discord}', exploit_dropped = 'Du har blitt sparket for utnyttelse', }, @@ -44,23 +44,23 @@ local Translations = { z = { name = 'z', help = 'Z posisjon'}, }, }, - tpm = { help = 'TP Til Marker (kun admin)' }, - togglepvp = { help = 'Slå PVP på serveren (kun admin)' }, + tpm = { help = 'TP Til Markør (kun admin)' }, + togglepvp = { help = 'Skru på/av PVP på serveren (kun admin)' }, addpermission = { - help = 'Gi spillertillatelser (Kun gud)', + help = 'Gi spillertilganger (Kun gud)', params = { id = { name = 'id', help = 'ID på spiller' }, - permission = { name = 'permission', help = 'Tillatelsesnivå '}, + permission = { name = 'permission', help = 'Tilgangsnivå '}, }, }, removepermission = { - help = 'Fjern spillertillatelser (kun gud)', + help = 'Fjern spillertilganger (kun gud)', params = { id = { name = 'id', help = 'ID på spiller' }, - permission = { name = 'permission', help = 'Tillatelsesnivå' }, + permission = { name = 'permission', help = 'Tilgangsnivå' }, }, }, - openserver = { help = 'Åpne serveren for alle (kun admin)' }, + openserver = { help = 'Åpne opp serveren for alle (kun admin)' }, closeserver = { help = 'Lukk serveren for personer uten tillatelser (kun admin)', params = { @@ -68,7 +68,7 @@ local Translations = { }, }, car = { - help = 'Spawn Vehicle (kun admin)', + help = 'Spawn kjøretøy (kun admin)', params = { model = { name = 'model', help = 'Modellnavn på kjøretøyet' }, }, @@ -78,16 +78,16 @@ local Translations = { help = 'Gi en spiller penger (kun admin)', params = { id = { name = 'id', help = 'ID på spiller' }, - moneytype = { name = 'moneytype', help = 'Penge type (cash, bank, crypto)' }, - amount = { name = 'amount', help = 'Penge beløp' }, + moneytype = { name = 'moneytype', help = 'Type: (cash, bank, crypto)' }, + amount = { name = 'amount', help = 'Pengebeløp' }, }, }, setmoney = { help = 'Angi spillerens pengebeløp (kun admin)', params = { id = { name = 'id', help = 'ID på spiller' }, - moneytype = { name = 'moneytype', help = 'Penge type (cash, bank, crypto)' }, - amount = { name = 'amount', help = 'Penge beløp' }, + moneytype = { name = 'moneytype', help = 'Type: (cash, bank, crypto)' }, + amount = { name = 'amount', help = 'Pengebeløp' }, }, }, job = { help = 'Sjekk din jobb' }, From b5b3df14570c86df2a20711b458bf1723eb41511 Mon Sep 17 00:00:00 2001 From: Christian J Bennett <58433059+ChristianBDev@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:48:05 -0600 Subject: [PATCH 11/30] [SUGGESTION] JS guideline from 2 -> 4 spaces (#953) * Update JS Guide Line from 2 -> 4 * Update fxmanifest.lua * Update fxmanifest.lua --- .github/contributing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/contributing.md b/.github/contributing.md index 832c0c9..21fb806 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -197,5 +197,5 @@ All lua code should be done using all the best practices of proper lua using the ### JavaScript Styleguide -- Use 2 Space indentation +- Use 4 Space indentation - Don't repeat yourself.. if you're using the same operations in many different places convert them into a function with flexible variables. From 14625ec5b136b65d9bcfe3603fa8449a3cb8d2d7 Mon Sep 17 00:00:00 2001 From: JaySixty <41970914+Jamie9192@users.noreply.github.com> Date: Fri, 24 Feb 2023 02:49:41 +0000 Subject: [PATCH 12/30] Move location of starter items (#865) * Update; Location of starter items Moved the starter items to near top of the file - commonly searched for, and would be expected at top of the file * Bump --------- Co-authored-by: zwkf --- fxmanifest.lua | 2 +- shared/main.lua | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index 56194dd..c25c383 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'cerulean' game 'gta5' description 'QB-Core' -version '1.2.4' +version '1.2.5' shared_scripts { 'config.lua', diff --git a/shared/main.lua b/shared/main.lua index 6b09b12..d01b93c 100644 --- a/shared/main.lua +++ b/shared/main.lua @@ -3,6 +3,12 @@ QBShared = QBShared or {} local StringCharset = {} local NumberCharset = {} +QBShared.StarterItems = { + ['phone'] = { amount = 1, item = 'phone' }, + ['id_card'] = { amount = 1, item = 'id_card' }, + ['driver_license'] = { amount = 1, item = 'driver_license' }, +} + for i = 48, 57 do NumberCharset[#NumberCharset + 1] = string.char(i) end for i = 65, 90 do StringCharset[#StringCharset + 1] = string.char(i) end for i = 97, 122 do StringCharset[#StringCharset + 1] = string.char(i) end @@ -75,12 +81,6 @@ function QBShared.SetDefaultVehicleExtras(vehicle, config) end end -QBShared.StarterItems = { - ['phone'] = { amount = 1, item = 'phone' }, - ['id_card'] = { amount = 1, item = 'id_card' }, - ['driver_license'] = { amount = 1, item = 'driver_license' }, -} - QBShared.MaleNoGloves = { [0] = true, [1] = true, From 7620c1c74a9ce7df6af0d0dee98f0400e76b1d3b Mon Sep 17 00:00:00 2001 From: tom-osborne Date: Wed, 1 Mar 2023 23:47:21 +0000 Subject: [PATCH 13/30] Add documentation (luadoc) to functions --- server/functions.lua | 174 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 141 insertions(+), 33 deletions(-) diff --git a/server/functions.lua b/server/functions.lua index 54218f0..5feac75 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -8,12 +8,19 @@ QBCore.UsableItems = {} -- ex: local player = QBCore.Functions.GetPlayer(source) -- ex: local example = player.Functions.functionname(parameter) +---Gets the coordinates of an entity +---@param entity number +---@return vector4 function QBCore.Functions.GetCoords(entity) local coords = GetEntityCoords(entity, false) local heading = GetEntityHeading(entity) return vector4(coords.x, coords.y, coords.z, heading) end +---Gets player identifier of the given type +---@param source any +---@param idtype string +---@return string? function QBCore.Functions.GetIdentifier(source, idtype) local identifiers = GetPlayerIdentifiers(source) for _, identifier in pairs(identifiers) do @@ -24,6 +31,9 @@ function QBCore.Functions.GetIdentifier(source, idtype) return nil end +---Gets a players server id (source). Returns 0 if no player is found. +---@param identifier string +---@return number function QBCore.Functions.GetSource(identifier) for src, _ in pairs(QBCore.Players) do local idens = GetPlayerIdentifiers(src) @@ -36,6 +46,9 @@ function QBCore.Functions.GetSource(identifier) return 0 end +---Get player with given server id (source) +---@param source any +---@return table function QBCore.Functions.GetPlayer(source) if type(source) == 'number' then return QBCore.Players[source] @@ -44,6 +57,9 @@ function QBCore.Functions.GetPlayer(source) end end +---Get player by citizen id +---@param citizenid string +---@return table|nil function QBCore.Functions.GetPlayerByCitizenId(citizenid) for src in pairs(QBCore.Players) do if QBCore.Players[src].PlayerData.citizenid == citizenid then @@ -53,10 +69,16 @@ function QBCore.Functions.GetPlayerByCitizenId(citizenid) return nil end +---Get offline player by citizen id +---@param citizenid string +---@return table|nil function QBCore.Functions.GetOfflinePlayerByCitizenId(citizenid) return QBCore.Player.GetOfflinePlayer(citizenid) end +---Get player by phone number +---@param number number +---@return table|nil function QBCore.Functions.GetPlayerByPhone(number) for src in pairs(QBCore.Players) do if QBCore.Players[src].PlayerData.charinfo.phone == number then @@ -66,6 +88,8 @@ function QBCore.Functions.GetPlayerByPhone(number) return nil end +---Get all players. Returns the server ids of all players. +---@return table function QBCore.Functions.GetPlayers() local sources = {} for k in pairs(QBCore.Players) do @@ -74,13 +98,16 @@ function QBCore.Functions.GetPlayers() return sources end --- Will return an array of QB Player class instances --- unlike the GetPlayers() wrapper which only returns IDs +---Will return an array of QB Player class instances +---unlike the GetPlayers() wrapper which only returns IDs +---@return table function QBCore.Functions.GetQBPlayers() return QBCore.Players end ---- Gets a list of all on duty players of a specified job and the number +---Gets a list of all on duty players of a specified job and the number +---@param job string +---@return table, number function QBCore.Functions.GetPlayersOnDuty(job) local players = {} local count = 0 @@ -95,7 +122,9 @@ function QBCore.Functions.GetPlayersOnDuty(job) return players, count end --- Returns only the amount of players on duty for the specified job +---Returns only the amount of players on duty for the specified job +---@param job any +---@return number function QBCore.Functions.GetDutyCount(job) local count = 0 for _, Player in pairs(QBCore.Players) do @@ -110,13 +139,17 @@ end -- Routing buckets (Only touch if you know what you are doing) --- Returns the objects related to buckets, first returned value is the player buckets, second one is entity buckets +---Returns the objects related to buckets, first returned value is the player buckets, second one is entity buckets +---@return table, table function QBCore.Functions.GetBucketObjects() return QBCore.Player_Buckets, QBCore.Entity_Buckets end --- Will set the provided player id / source into the provided bucket id -function QBCore.Functions.SetPlayerBucket(source --[[ int ]], bucket --[[ int ]]) +---Will set the provided player id / source into the provided bucket id +---@param source any +---@param bucket any +---@return boolean +function QBCore.Functions.SetPlayerBucket(source, bucket) if source and bucket then local plicense = QBCore.Functions.GetIdentifier(source, 'license') SetPlayerRoutingBucket(source, bucket) @@ -127,8 +160,11 @@ function QBCore.Functions.SetPlayerBucket(source --[[ int ]], bucket --[[ int ]] end end --- Will set any entity into the provided bucket, for example peds / vehicles / props / etc. -function QBCore.Functions.SetEntityBucket(entity --[[ int ]], bucket --[[ int ]]) +---Will set any entity into the provided bucket, for example peds / vehicles / props / etc. +---@param entity number +---@param bucket number +---@return boolean +function QBCore.Functions.SetEntityBucket(entity, bucket) if entity and bucket then SetEntityRoutingBucket(entity, bucket) QBCore.Entity_Buckets[entity] = {id = entity, bucket = bucket} @@ -138,8 +174,10 @@ function QBCore.Functions.SetEntityBucket(entity --[[ int ]], bucket --[[ int ]] end end --- Will return an array of all the player ids inside the current bucket -function QBCore.Functions.GetPlayersInBucket(bucket --[[ int ]]) +---Will return an array of all the player ids inside the current bucket +---@param bucket number +---@return table|boolean +function QBCore.Functions.GetPlayersInBucket(bucket) local curr_bucket_pool = {} if QBCore.Player_Buckets and next(QBCore.Player_Buckets) then for _, v in pairs(QBCore.Player_Buckets) do @@ -153,8 +191,11 @@ function QBCore.Functions.GetPlayersInBucket(bucket --[[ int ]]) end end --- Will return an array of all the entities inside the current bucket (not for player entities, use GetPlayersInBucket for that) -function QBCore.Functions.GetEntitiesInBucket(bucket --[[ int ]]) +---Will return an array of all the entities inside the current bucket +---(not for player entities, use GetPlayersInBucket for that) +---@param bucket number +---@return table|boolean +function QBCore.Functions.GetEntitiesInBucket(bucket) local curr_bucket_pool = {} if QBCore.Entity_Buckets and next(QBCore.Entity_Buckets) then for _, v in pairs(QBCore.Entity_Buckets) do @@ -168,8 +209,13 @@ function QBCore.Functions.GetEntitiesInBucket(bucket --[[ int ]]) end end --- Server side vehicle creation with optional callback --- the CreateVehicle RPC still uses the client for creation so players must be near +---Server side vehicle creation with optional callback +---the CreateVehicle RPC still uses the client for creation so players must be near +---@param source any +---@param model any +---@param coords vector +---@param warp boolean +---@return number function QBCore.Functions.SpawnVehicle(source, model, coords, warp) local ped = GetPlayerPed(source) model = type(model) == 'string' and joaat(model) or model @@ -186,9 +232,15 @@ function QBCore.Functions.SpawnVehicle(source, model, coords, warp) return veh end --- Server side vehicle creation with optional callback --- the CreateAutomobile native is still experimental but doesn't use client for creation --- doesn't work for all vehicles! +---Server side vehicle creation with optional callback +---the CreateAutomobile native is still experimental but doesn't use client for creation +---doesn't work for all vehicles! +---comment +---@param source any +---@param model any +---@param coords vector +---@param warp boolean +---@return number function QBCore.Functions.CreateVehicle(source, model, coords, warp) model = type(model) == 'string' and joaat(model) or model if not coords then coords = GetEntityCoords(GetPlayerPed(source)) end @@ -199,7 +251,7 @@ function QBCore.Functions.CreateVehicle(source, model, coords, warp) return veh end --- Paychecks (standalone - don't touch) +---Paychecks (standalone - don't touch) function PaycheckInterval() if next(QBCore.Players) then for _, Player in pairs(QBCore.Players) do @@ -234,17 +286,28 @@ end -- Callback Functions -- --- Client Callback +---Trigger Client Callback +---@param name string +---@param source any +---@param cb function +---@param ... any function QBCore.Functions.TriggerClientCallback(name, source, cb, ...) QBCore.ClientCallbacks[name] = cb TriggerClientEvent('QBCore:Client:TriggerClientCallback', source, name, ...) end --- Server Callback +---Create Server Callback +---@param name string +---@param cb function function QBCore.Functions.CreateCallback(name, cb) QBCore.ServerCallbacks[name] = cb end +---Trigger Serv er Callback +---@param name string +---@param source any +---@param cb function +---@param ... any function QBCore.Functions.TriggerCallback(name, source, cb, ...) if not QBCore.ServerCallbacks[name] then return end QBCore.ServerCallbacks[name](source, cb, ...) @@ -252,21 +315,33 @@ end -- Items +---Create a usable item +---@param item string +---@param data function function QBCore.Functions.CreateUseableItem(item, data) QBCore.UsableItems[item] = data end +---Checks if the given item is usable +---@param item string +---@return any function QBCore.Functions.CanUseItem(item) return QBCore.UsableItems[item] end +---Use item +---@param source any +---@param item string function QBCore.Functions.UseItem(source, item) if GetResourceState('qb-inventory') == 'missing' then return end exports['qb-inventory']:UseItem(source, item) end --- Kick Player - +---Kick Player +---@param source any +---@param reason string +---@param setKickReason boolean +---@param deferrals boolean function QBCore.Functions.Kick(source, reason, setKickReason, deferrals) reason = '\n' .. reason .. '\n🔸 Check our Discord for further information: ' .. QBCore.Config.Server.Discord if setKickReason then @@ -297,8 +372,9 @@ function QBCore.Functions.Kick(source, reason, setKickReason, deferrals) end) end --- Check if player is whitelisted, kept like this for backwards compatibility or future plans - +---Check if player is whitelisted, kept like this for backwards compatibility or future plans +---@param source any +---@return boolean function QBCore.Functions.IsWhitelisted(source) if not QBCore.Config.Server.Whitelist then return true end if QBCore.Functions.HasPermission(source, QBCore.Config.Server.WhitelistPermission) then return true end @@ -307,6 +383,9 @@ end -- Setting & Removing Permissions +---Add permission for player +---@param source any +---@param permission string function QBCore.Functions.AddPermission(source, permission) if not IsPlayerAceAllowed(source, permission) then ExecuteCommand(('add_principal player.%s qbcore.%s'):format(source, permission)) @@ -314,6 +393,9 @@ function QBCore.Functions.AddPermission(source, permission) end end +---Remove permission from player +---@param source any +---@param permission string function QBCore.Functions.RemovePermission(source, permission) if permission then if IsPlayerAceAllowed(source, permission) then @@ -332,6 +414,10 @@ end -- Checking for Permission Level +---Check if player has permission +---@param source any +---@param permission string +---@return boolean function QBCore.Functions.HasPermission(source, permission) if type(permission) == "string" then if IsPlayerAceAllowed(source, permission) then return true end @@ -344,6 +430,9 @@ function QBCore.Functions.HasPermission(source, permission) return false end +---Get the players permissions +---@param source any +---@return table function QBCore.Functions.GetPermission(source) local src = source local perms = {} @@ -355,8 +444,9 @@ function QBCore.Functions.GetPermission(source) return perms end --- Opt in or out of admin reports - +---Get admin messages opt-in state for player +---@param source any +---@return boolean function QBCore.Functions.IsOptin(source) local license = QBCore.Functions.GetIdentifier(source, 'license') if not license or not QBCore.Functions.HasPermission(source, 'admin') then return false end @@ -364,6 +454,8 @@ function QBCore.Functions.IsOptin(source) return Player.PlayerData.optin end +---Toggle opt-in to admin messages +---@param source any function QBCore.Functions.ToggleOptin(source) local license = QBCore.Functions.GetIdentifier(source, 'license') if not license or not QBCore.Functions.HasPermission(source, 'admin') then return end @@ -372,8 +464,9 @@ function QBCore.Functions.ToggleOptin(source) Player.Functions.SetPlayerData('optin', Player.PlayerData.optin) end --- Check if player is banned - +---Check if player is banned +---@param source any +---@return boolean, string? function QBCore.Functions.IsPlayerBanned(source) local plicense = QBCore.Functions.GetIdentifier(source, 'license') local result = MySQL.single.await('SELECT * FROM bans WHERE license = ?', { plicense }) @@ -387,8 +480,9 @@ function QBCore.Functions.IsPlayerBanned(source) return false end --- Check for duplicate license - +---Check for duplicate license +---@param license any +---@return boolean function QBCore.Functions.IsLicenseInUse(license) local players = GetPlayers() for _, player in pairs(players) do @@ -406,17 +500,31 @@ end -- Utility functions +---Check if a player has an item [deprecated] +---@param source any +---@param items table|string +---@param amount number +---@return boolean function QBCore.Functions.HasItem(source, items, amount) if GetResourceState('qb-inventory') == 'missing' then return end return exports['qb-inventory']:HasItem(source, items, amount) end +---Notify +---@param source any +---@param text string +---@param type string +---@param length number function QBCore.Functions.Notify(source, text, type, length) TriggerClientEvent('QBCore:Notify', source, text, type, length) end ---- SQL Pattern Matching -function QBCore.Functions.PrepForSQL(source,data,pattern) +---???? ... ok +---@param source any +---@param data any +---@param pattern any +---@return boolean +function QBCore.Functions.PrepForSQL(source, data, pattern) data = tostring(data) local src = source local player = QBCore.Functions.GetPlayer(src) From 5feec5582b0d78e57190212bcbe871a5809803e7 Mon Sep 17 00:00:00 2001 From: tom-osborne Date: Thu, 2 Mar 2023 07:28:25 +0000 Subject: [PATCH 14/30] correct use of "or nil" --- server/functions.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/functions.lua b/server/functions.lua index 5feac75..c432b67 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -59,7 +59,7 @@ end ---Get player by citizen id ---@param citizenid string ----@return table|nil +---@return table? function QBCore.Functions.GetPlayerByCitizenId(citizenid) for src in pairs(QBCore.Players) do if QBCore.Players[src].PlayerData.citizenid == citizenid then @@ -71,14 +71,14 @@ end ---Get offline player by citizen id ---@param citizenid string ----@return table|nil +---@return table? function QBCore.Functions.GetOfflinePlayerByCitizenId(citizenid) return QBCore.Player.GetOfflinePlayer(citizenid) end ---Get player by phone number ---@param number number ----@return table|nil +---@return table? function QBCore.Functions.GetPlayerByPhone(number) for src in pairs(QBCore.Players) do if QBCore.Players[src].PlayerData.charinfo.phone == number then From e17a6993dd0073cc85e2c8235348f09d8314b74e Mon Sep 17 00:00:00 2001 From: Ilker Kulgu Date: Fri, 3 Mar 2023 19:01:56 +0100 Subject: [PATCH 15/30] EMS jobtype (#946) * EMS jobtype * Bump * Update fxmanifest.lua --------- Co-authored-by: zwkf --- fxmanifest.lua | 2 +- shared/jobs.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/fxmanifest.lua b/fxmanifest.lua index c25c383..edad0bb 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'cerulean' game 'gta5' description 'QB-Core' -version '1.2.5' +version '1.2.6' shared_scripts { 'config.lua', diff --git a/shared/jobs.lua b/shared/jobs.lua index 67c813d..98e805b 100644 --- a/shared/jobs.lua +++ b/shared/jobs.lua @@ -46,6 +46,7 @@ QBShared.Jobs = { }, ['ambulance'] = { label = 'EMS', + type = 'ems', defaultDuty = true, offDutyPay = false, grades = { From b6249c3783ccf9d18bf6487dad2bea0f87934f8e Mon Sep 17 00:00:00 2001 From: Index_1 <31004732+IndexH@users.noreply.github.com> Date: Sun, 5 Mar 2023 22:26:48 +0800 Subject: [PATCH 16/30] Update cn.lua (#959) Update language files --- locale/cn.lua | 109 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 102 insertions(+), 7 deletions(-) diff --git a/locale/cn.lua b/locale/cn.lua index 19d23b7..ef792da 100644 --- a/locale/cn.lua +++ b/locale/cn.lua @@ -8,21 +8,116 @@ local Translations = { company_too_poor = '你所在的公司账户目前发不起工资', item_not_exist = '该物品不存在', too_heavy = '背包已满', + location_not_exist = '位置不存在', duplicate_license = '发现重复的 Rockstar 许可证', no_valid_license = '未找到有效的 Rockstar 许可证', - not_whitelisted = '您没有被列入此服务器的白名单' + not_whitelisted = '您没有被列入此服务器的白名单', + server_already_open = '服务器已经打开', + server_already_closed = '服务器已经关闭', + no_permission = '您没有权限..', + no_waypoint = '没有设置导航点.', + tp_error = '传送时出错.', + connecting_database_error = '连接到服务器时发生数据库错误. (SQL服务器是否开启?)', + connecting_database_timeout = '连接数据库超时. (SQL服务器是否开启?)', + }, + success = { + server_opened = '服务器已开启', + server_closed = '服务器已关闭', + teleported_waypoint = '传送到导航点.', }, - success = {}, info = { - received_paycheck = '你收到了你的工资 $%{value}', - job_info = '工作: %{value} | 级别: %{value2} | 工作状态状态: %{value3}', + received_paycheck = '你收到了你的薪水 $%{value}', + job_info = '工作: %{value} | 级别: %{value2} | 工作状态: %{value3}', gang_info = '帮派: %{value} | 级别: %{value2}', on_duty = '你开始上班了!', off_duty = '你现在下班了!', - checking_ban = '你好 %s. 我们正在检查你是否被服务器封禁.', + checking_ban = '你好 %s. 我们正在检查你是否被服务器封禁。', join_server = '欢迎 %s 进入 {Server Name}.', - checking_whitelisted = '你好 %s. 我们正在检查您是否在白名单内.' - } + checking_whitelisted = '欢迎 %s. 我们正在检查您的白名单.', + exploit_banned = '您已因作弊而被禁止。 查看我们的 Discord 了解更多信息: %{discord}', + exploit_dropped = '你因为漏洞利用而被踢出服务器', + }, + command = { + tp = { + help = '传送至玩家或位置 (仅限管理员)', + params = { + x = { name = 'id/x', help = '玩家ID或X位置'}, + y = { name = 'y', help = 'Y 位置'}, + z = { name = 'z', help = 'Z 位置'}, + }, + }, + tpm = { help = '传送至导航点 (仅限管理员)' }, + togglepvp = { help = '启用/关闭 服务器PVP模式 (仅限管理员)' }, + addpermission = { + help = '授予玩家权限 (仅限God权限)', + params = { + id = { name = 'id', help = '玩家ID' }, + permission = { name = 'permission', help = '权限级别' }, + }, + }, + removepermission = { + help = '删除玩家权限 (仅限God权限)', + params = { + id = { name = 'id', help = '玩家ID' }, + permission = { name = 'permission', help = '权限级别' }, + }, + }, + openserver = { help = '为每个人打开服务器 (仅限管理员)' }, + closeserver = { + help = '为没有权限组的人关闭服务器 (仅限管理员)', + params = { + reason = { name = 'reason', help = '关闭原因(可选)' }, + }, + }, + car = { + help = '生成车辆 (仅限管理员)', + params = { + model = { name = 'model', help = '车辆型号名称' }, + }, + }, + dv = { help = '删除车辆 (仅限管理员)' }, + givemoney = { + help = '给玩家钱 (仅限管理员)', + params = { + id = { name = 'id', help = '玩家ID' }, + moneytype = { name = 'moneytype', help = '货币类型 (cash, bank, crypto)' }, + amount = { name = 'amount', help = '金额' }, + }, + }, + setmoney = { + help = '设置玩家金额 (仅限管理员)', + params = { + id = { name = 'id', help = '玩家ID' }, + moneytype = { name = 'moneytype', help = '货币类型 (cash, bank, crypto)' }, + amount = { name = 'amount', help = '金额' }, + }, + }, + job = { help = '检查你的职业' }, + setjob = { + help = '设置玩家职业 (仅限管理员)', + params = { + id = { name = 'id', help = '玩家ID' }, + job = { name = 'job', help = '职业' }, + grade = { name = 'grade', help = '职业阶级' }, + }, + }, + gang = { help = '检查你的帮派' }, + setgang = { + help = '设置玩家帮派 (仅限管理员)', + params = { + id = { name = 'id', help = '玩家ID' }, + gang = { name = 'gang', help = '帮派名称' }, + grade = { name = 'grade', help = '帮派阶级' }, + }, + }, + ooc = { help = 'OOC聊天消息' }, + me = { + help = '显示本地消息', + params = { + message = { name = 'message', help = '要发送的消息' } + }, + }, + }, } if GetConvar('qb_locale', 'en') == 'cn' then From 15a264c3c976f0ba2d84cc91bb2c17686120884e Mon Sep 17 00:00:00 2001 From: Hakos47 <76844995+hakos47@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:24:30 +0100 Subject: [PATCH 17/30] GetGroundHash returns the hash of the terrain you are on. quite useful for planting scripts --- client/functions.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/client/functions.lua b/client/functions.lua index e9f2ca8..f235581 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -991,4 +991,11 @@ function QBCore.Functions.GetGroundZCoord(coords) print(coords) return coords end -end \ No newline at end of file +end + +function QBCore.Functions.GetGroundHash(entity) + local coords = GetEntityCoords(entity) + local num = StartShapeTestCapsule(coords.x,coords.y,coords.z+4,coords.x,coords.y,coords.z-2.0, 1,1,veh,7) + local arg1, arg2, arg3, arg4, arg5 = GetShapeTestResultEx(num) + return arg5 +end From 66c88b51e05f8bbea44c58684e6de9f3d07d3307 Mon Sep 17 00:00:00 2001 From: Hakos47 <76844995+hakos47@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:29:46 +0100 Subject: [PATCH 18/30] GetGroundHash returns the hash of the terrain you are on. quite useful for planting scripts --- client/functions.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions.lua b/client/functions.lua index f235581..8f1d03c 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -995,7 +995,7 @@ end function QBCore.Functions.GetGroundHash(entity) local coords = GetEntityCoords(entity) - local num = StartShapeTestCapsule(coords.x,coords.y,coords.z+4,coords.x,coords.y,coords.z-2.0, 1,1,veh,7) + local num = StartShapeTestCapsule(coords.x,coords.y,coords.z+4,coords.x,coords.y,coords.z-2.0, 1,1,entity,7) local arg1, arg2, arg3, arg4, arg5 = GetShapeTestResultEx(num) return arg5 end From 50d73ed52bf5199c3f9f760d0e789b1ed5dcb9e2 Mon Sep 17 00:00:00 2001 From: Hakos47 <76844995+hakos47@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:44:34 +0100 Subject: [PATCH 19/30] fix lint failed return material hash , entity hit, surfaceNormal, end coords, hit, and retval --- client/functions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/functions.lua b/client/functions.lua index 8f1d03c..8772363 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -996,6 +996,6 @@ end function QBCore.Functions.GetGroundHash(entity) local coords = GetEntityCoords(entity) local num = StartShapeTestCapsule(coords.x,coords.y,coords.z+4,coords.x,coords.y,coords.z-2.0, 1,1,entity,7) - local arg1, arg2, arg3, arg4, arg5 = GetShapeTestResultEx(num) - return arg5 + local retval --[[ integer ]], hit --[[ boolean ]], endCoords --[[ vector3 ]], surfaceNormal --[[ vector3 ]], materialHash --[[ Hash ]], entityHit --[[ Entity ]] = GetShapeTestResultEx(num) + return materialHash, entityHit, surfaceNormal, endCoords, hit, retval end From 6738c06d5502a46bb73b0e56ba1de1b6afb94fed Mon Sep 17 00:00:00 2001 From: Hakos47 <76844995+hakos47@users.noreply.github.com> Date: Thu, 23 Mar 2023 15:02:35 +0100 Subject: [PATCH 20/30] Update functions.lua --- client/functions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/functions.lua b/client/functions.lua index 8772363..324b974 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -996,6 +996,6 @@ end function QBCore.Functions.GetGroundHash(entity) local coords = GetEntityCoords(entity) local num = StartShapeTestCapsule(coords.x,coords.y,coords.z+4,coords.x,coords.y,coords.z-2.0, 1,1,entity,7) - local retval --[[ integer ]], hit --[[ boolean ]], endCoords --[[ vector3 ]], surfaceNormal --[[ vector3 ]], materialHash --[[ Hash ]], entityHit --[[ Entity ]] = GetShapeTestResultEx(num) - return materialHash, entityHit, surfaceNormal, endCoords, hit, retval + local retval , success , endCoords, surfaceNormal, materialHash , entityHit = GetShapeTestResultEx(num) + return materialHash, entityHit, surfaceNormal, endCoords, success, retval end From 4ba2262a27f11b297729ffc472ebd7c5626422c1 Mon Sep 17 00:00:00 2001 From: Zerio <54480523+Z3rio@users.noreply.github.com> Date: Sat, 25 Mar 2023 14:19:51 +0100 Subject: [PATCH 21/30] Improve code readability --- client/functions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/functions.lua b/client/functions.lua index 324b974..8185648 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -995,7 +995,7 @@ end function QBCore.Functions.GetGroundHash(entity) local coords = GetEntityCoords(entity) - local num = StartShapeTestCapsule(coords.x,coords.y,coords.z+4,coords.x,coords.y,coords.z-2.0, 1,1,entity,7) - local retval , success , endCoords, surfaceNormal, materialHash , entityHit = GetShapeTestResultEx(num) + local num = StartShapeTestCapsule(coords.x, coords.y, coords.z + 4, coords.x, coords.y, coords.z - 2.0, 1, 1, entity, 7) + local retval, success, endCoords, surfaceNormal, materialHash, entityHit = GetShapeTestResultEx(num) return materialHash, entityHit, surfaceNormal, endCoords, success, retval end From 85d25bb9110effe76ae7f91f6e892a61555b572e Mon Sep 17 00:00:00 2001 From: r3ps4J <40723838+r3ps4J@users.noreply.github.com> Date: Thu, 30 Mar 2023 12:01:26 +0200 Subject: [PATCH 22/30] Fix subs not getting replaced in locales --- shared/locale.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/locale.lua b/shared/locale.lua index 34fa835..0a1bebf 100644 --- a/shared/locale.lua +++ b/shared/locale.lua @@ -20,7 +20,7 @@ local function translateKey(phrase, subs) -- Initial Scan over result looking for substituions for k, v in pairs(subs) do - local templateToFind = '%%{' .. k .. '}' + local templateToFind = '%{' .. k .. '}' result = result:gsub(templateToFind, tostring(v)) -- string to allow all types end From 4675e97f5ca33980aa2fd16bfb586ed9e609de6d Mon Sep 17 00:00:00 2001 From: RowDog Date: Fri, 31 Mar 2023 20:53:10 +0100 Subject: [PATCH 23/30] add items to shared --- shared/items.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shared/items.lua b/shared/items.lua index 77e80c0..5db1ca7 100644 --- a/shared/items.lua +++ b/shared/items.lua @@ -393,4 +393,7 @@ QBShared.Items = { ['markedbills'] = {['name'] = 'markedbills', ['label'] = 'Marked Money', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'markedbills.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Money?'}, ['labkey'] = {['name'] = 'labkey', ['label'] = 'Key', ['weight'] = 500, ['type'] = 'item', ['image'] = 'labkey.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Key for a lock...?'}, ['printerdocument'] = {['name'] = 'printerdocument', ['label'] = 'Document', ['weight'] = 500, ['type'] = 'item', ['image'] = 'printerdocument.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice document'}, + ['newscam'] = {['name'] = 'newscam', ['label'] = 'News Cam', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newscam.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A camera for the news'}, + ['newsmic'] = {['name'] = 'newsmic', ['label'] = 'News Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A microphone for the news'}, + ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'News Boom Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Boom Mic for the news'}, } From 052c3fa6fffe861b721eda724636f43a187d48e0 Mon Sep 17 00:00:00 2001 From: RowDog Date: Fri, 31 Mar 2023 21:30:43 +0100 Subject: [PATCH 24/30] capitilize the description --- shared/items.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shared/items.lua b/shared/items.lua index 5db1ca7..fc21778 100644 --- a/shared/items.lua +++ b/shared/items.lua @@ -393,7 +393,7 @@ QBShared.Items = { ['markedbills'] = {['name'] = 'markedbills', ['label'] = 'Marked Money', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'markedbills.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Money?'}, ['labkey'] = {['name'] = 'labkey', ['label'] = 'Key', ['weight'] = 500, ['type'] = 'item', ['image'] = 'labkey.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Key for a lock...?'}, ['printerdocument'] = {['name'] = 'printerdocument', ['label'] = 'Document', ['weight'] = 500, ['type'] = 'item', ['image'] = 'printerdocument.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice document'}, - ['newscam'] = {['name'] = 'newscam', ['label'] = 'News Cam', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newscam.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A camera for the news'}, - ['newsmic'] = {['name'] = 'newsmic', ['label'] = 'News Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A microphone for the news'}, - ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'News Boom Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Boom Mic for the news'}, + ['newscam'] = {['name'] = 'newscam', ['label'] = 'News Cam', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newscam.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Camera for the news'}, + ['newsmic'] = {['name'] = 'newsmic', ['label'] = 'News Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Microphone for the news'}, + ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'News Boom Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsbmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Boom Mic for the news'}, } From 0ee8ff7f3801005bc52dba3ad85b3b63e6370b2c Mon Sep 17 00:00:00 2001 From: RowDog Date: Fri, 31 Mar 2023 22:23:02 +0100 Subject: [PATCH 25/30] sorted some spacing --- shared/items.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/items.lua b/shared/items.lua index fc21778..bc3135e 100644 --- a/shared/items.lua +++ b/shared/items.lua @@ -184,7 +184,7 @@ QBShared.Items = { ['assaultshotgun_extendedclip'] = {['name'] = 'assaultshotgun_extendedclip', ['label'] = 'Shotgun EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Shotgun Extended Clip'}, ['heavyshotgun_defaultclip'] = {['name'] = 'heavyshotgun_defaultclip', ['label'] = 'Shotgun Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Default Clip'}, ['heavyshotgun_extendedclip'] = {['name'] = 'heavyshotgun_extendedclip', ['label'] = 'Shotgun EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Extended Clip'}, - ['heavyshotgun_drum'] = {['name'] = 'heavyshotgun_drum', ['label'] = 'Shotgun Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Drum'}, + ['heavyshotgun_drum'] = {['name'] = 'heavyshotgun_drum', ['label'] = 'Shotgun Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Drum'}, -- RIFLE ATTACHMENTS ['assaultrifle_defaultclip'] = {['name'] = 'assaultrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Default Clip'}, @@ -395,5 +395,5 @@ QBShared.Items = { ['printerdocument'] = {['name'] = 'printerdocument', ['label'] = 'Document', ['weight'] = 500, ['type'] = 'item', ['image'] = 'printerdocument.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice document'}, ['newscam'] = {['name'] = 'newscam', ['label'] = 'News Cam', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newscam.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Camera for the news'}, ['newsmic'] = {['name'] = 'newsmic', ['label'] = 'News Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Microphone for the news'}, - ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'News Boom Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsbmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Boom Mic for the news'}, + ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'News Boom Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsbmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Boom Mic for the news'}, } From cffc1712f302359d32376cdcbd19044888cbd58a Mon Sep 17 00:00:00 2001 From: RowDog Date: Sun, 2 Apr 2023 13:59:08 +0100 Subject: [PATCH 26/30] remove all tabs replace with spaces --- shared/items.lua | 728 +++++++++++++++++++++++------------------------ 1 file changed, 364 insertions(+), 364 deletions(-) diff --git a/shared/items.lua b/shared/items.lua index bc3135e..65e529a 100644 --- a/shared/items.lua +++ b/shared/items.lua @@ -1,399 +1,399 @@ QBShared = QBShared or {} QBShared.Items = { - -- WEAPONS - -- Melee - ['weapon_unarmed'] = {['name'] = 'weapon_unarmed', ['label'] = 'Fists', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'placeholder.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Fisticuffs'}, - ['weapon_dagger'] = {['name'] = 'weapon_dagger', ['label'] = 'Dagger', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_dagger.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A short knife with a pointed and edged blade, used as a weapon'}, - ['weapon_bat'] = {['name'] = 'weapon_bat', ['label'] = 'Bat', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_bat.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Used for hitting a ball in sports (or other things)'}, - ['weapon_bottle'] = {['name'] = 'weapon_bottle', ['label'] = 'Broken Bottle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_bottle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A broken bottle'}, - ['weapon_crowbar'] = {['name'] = 'weapon_crowbar', ['label'] = 'Crowbar', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_crowbar.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An iron bar with a flattened end, used as a lever'}, - ['weapon_flashlight'] = {['name'] = 'weapon_flashlight', ['label'] = 'Flashlight', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_flashlight.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A battery-operated portable light'}, - ['weapon_golfclub'] = {['name'] = 'weapon_golfclub', ['label'] = 'Golfclub', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_golfclub.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A club used to hit the ball in golf'}, - ['weapon_hammer'] = {['name'] = 'weapon_hammer', ['label'] = 'Hammer', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_hammer.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Used for jobs such as breaking things (legs) and driving in nails'}, - ['weapon_hatchet'] = {['name'] = 'weapon_hatchet', ['label'] = 'Hatchet', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_hatchet.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small axe with a short handle for use in one hand'}, - ['weapon_knuckle'] = {['name'] = 'weapon_knuckle', ['label'] = 'Knuckle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_knuckle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A metal guard worn over the knuckles in fighting, especially to increase the effect of the blows'}, - ['weapon_knife'] = {['name'] = 'weapon_knife', ['label'] = 'Knife', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_knife.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An instrument composed of a blade fixed into a handle, used for cutting or as a weapon'}, - ['weapon_machete'] = {['name'] = 'weapon_machete', ['label'] = 'Machete', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_machete.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A broad, heavy knife used as a weapon'}, - ['weapon_switchblade'] = {['name'] = 'weapon_switchblade', ['label'] = 'Switchblade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_switchblade.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A knife with a blade that springs out from the handle when a button is pressed'}, - ['weapon_nightstick'] = {['name'] = 'weapon_nightstick', ['label'] = 'Nightstick', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_nightstick.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A police officer\'s club or billy'}, - ['weapon_wrench'] = {['name'] = 'weapon_wrench', ['label'] = 'Wrench', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_wrench.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A tool used for gripping and turning nuts, bolts, pipes, etc'}, - ['weapon_battleaxe'] = {['name'] = 'weapon_battleaxe', ['label'] = 'Battle Axe', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_battleaxe.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A large broad-bladed axe used in ancient warfare'}, - ['weapon_poolcue'] = {['name'] = 'weapon_poolcue', ['label'] = 'Poolcue', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_poolcue.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A stick used to strike a ball, usually the cue ball (or other things)'}, - ['weapon_briefcase'] = {['name'] = 'weapon_briefcase', ['label'] = 'Briefcase', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_briefcase.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A briefcase for storing important documents'}, - ['weapon_briefcase_02'] = {['name'] = 'weapon_briefcase_02', ['label'] = 'Suitcase', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_briefcase2.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Wonderfull for nice vacation to Liberty City'}, - ['weapon_garbagebag'] = {['name'] = 'weapon_garbagebag', ['label'] = 'Garbage Bag', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_garbagebag.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A garbage bag'}, - ['weapon_handcuffs'] = {['name'] = 'weapon_handcuffs', ['label'] = 'Handcuffs', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_handcuffs.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pair of lockable linked metal rings for securing a prisoner\'s wrists'}, - ['weapon_bread'] = {['name'] = 'weapon_bread', ['label'] = 'Baquette', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'baquette.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Bread...?'}, - ['weapon_stone_hatchet'] = {['name'] = 'weapon_stone_hatchet', ['label'] = 'Stone Hatchet', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stone_hatchet.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Stone ax'}, + -- WEAPONS + -- Melee + ['weapon_unarmed'] = {['name'] = 'weapon_unarmed', ['label'] = 'Fists', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'placeholder.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Fisticuffs'}, + ['weapon_dagger'] = {['name'] = 'weapon_dagger', ['label'] = 'Dagger', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_dagger.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A short knife with a pointed and edged blade, used as a weapon'}, + ['weapon_bat'] = {['name'] = 'weapon_bat', ['label'] = 'Bat', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_bat.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Used for hitting a ball in sports (or other things)'}, + ['weapon_bottle'] = {['name'] = 'weapon_bottle', ['label'] = 'Broken Bottle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_bottle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A broken bottle'}, + ['weapon_crowbar'] = {['name'] = 'weapon_crowbar', ['label'] = 'Crowbar', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_crowbar.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An iron bar with a flattened end, used as a lever'}, + ['weapon_flashlight'] = {['name'] = 'weapon_flashlight', ['label'] = 'Flashlight', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_flashlight.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A battery-operated portable light'}, + ['weapon_golfclub'] = {['name'] = 'weapon_golfclub', ['label'] = 'Golfclub', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_golfclub.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A club used to hit the ball in golf'}, + ['weapon_hammer'] = {['name'] = 'weapon_hammer', ['label'] = 'Hammer', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_hammer.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Used for jobs such as breaking things (legs) and driving in nails'}, + ['weapon_hatchet'] = {['name'] = 'weapon_hatchet', ['label'] = 'Hatchet', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_hatchet.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small axe with a short handle for use in one hand'}, + ['weapon_knuckle'] = {['name'] = 'weapon_knuckle', ['label'] = 'Knuckle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_knuckle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A metal guard worn over the knuckles in fighting, especially to increase the effect of the blows'}, + ['weapon_knife'] = {['name'] = 'weapon_knife', ['label'] = 'Knife', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_knife.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An instrument composed of a blade fixed into a handle, used for cutting or as a weapon'}, + ['weapon_machete'] = {['name'] = 'weapon_machete', ['label'] = 'Machete', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_machete.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A broad, heavy knife used as a weapon'}, + ['weapon_switchblade'] = {['name'] = 'weapon_switchblade', ['label'] = 'Switchblade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_switchblade.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A knife with a blade that springs out from the handle when a button is pressed'}, + ['weapon_nightstick'] = {['name'] = 'weapon_nightstick', ['label'] = 'Nightstick', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_nightstick.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A police officer\'s club or billy'}, + ['weapon_wrench'] = {['name'] = 'weapon_wrench', ['label'] = 'Wrench', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_wrench.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A tool used for gripping and turning nuts, bolts, pipes, etc'}, + ['weapon_battleaxe'] = {['name'] = 'weapon_battleaxe', ['label'] = 'Battle Axe', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_battleaxe.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A large broad-bladed axe used in ancient warfare'}, + ['weapon_poolcue'] = {['name'] = 'weapon_poolcue', ['label'] = 'Poolcue', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_poolcue.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A stick used to strike a ball, usually the cue ball (or other things)'}, + ['weapon_briefcase'] = {['name'] = 'weapon_briefcase', ['label'] = 'Briefcase', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_briefcase.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A briefcase for storing important documents'}, + ['weapon_briefcase_02'] = {['name'] = 'weapon_briefcase_02', ['label'] = 'Suitcase', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_briefcase2.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Wonderfull for nice vacation to Liberty City'}, + ['weapon_garbagebag'] = {['name'] = 'weapon_garbagebag', ['label'] = 'Garbage Bag', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_garbagebag.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A garbage bag'}, + ['weapon_handcuffs'] = {['name'] = 'weapon_handcuffs', ['label'] = 'Handcuffs', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_handcuffs.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pair of lockable linked metal rings for securing a prisoner\'s wrists'}, + ['weapon_bread'] = {['name'] = 'weapon_bread', ['label'] = 'Baquette', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'baquette.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Bread...?'}, + ['weapon_stone_hatchet'] = {['name'] = 'weapon_stone_hatchet', ['label'] = 'Stone Hatchet', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stone_hatchet.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Stone ax'}, - -- Handguns - ['weapon_pistol'] = {['name'] = 'weapon_pistol', ['label'] = 'Walther P99', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small firearm designed to be held in one hand'}, - ['weapon_pistol_mk2'] = {['name'] = 'weapon_pistol_mk2', ['label'] = 'Pistol Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol_mk2.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An upgraded small firearm designed to be held in one hand'}, - ['weapon_combatpistol'] = {['name'] = 'weapon_combatpistol', ['label'] = 'Combat Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_combatpistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A combat version small firearm designed to be held in one hand'}, - ['weapon_appistol'] = {['name'] = 'weapon_appistol', ['label'] = 'AP Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_appistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small firearm designed to be held in one hand that is automatic'}, - ['weapon_stungun'] = {['name'] = 'weapon_stungun', ['label'] = 'Taser', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stungun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon firing barbs attached by wires to batteries, causing temporary paralysis'}, - ['weapon_pistol50'] = {['name'] = 'weapon_pistol50', ['label'] = 'Pistol .50', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol50.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A .50 caliber firearm designed to be held with both hands'}, - ['weapon_snspistol'] = {['name'] = 'weapon_snspistol', ['label'] = 'SNS Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_snspistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A very small firearm designed to be easily concealed'}, - ['weapon_heavypistol'] = {['name'] = 'weapon_heavypistol', ['label'] = 'Heavy Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_heavypistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A hefty firearm designed to be held in one hand (or attempted)'}, - ['weapon_vintagepistol'] = {['name'] = 'weapon_vintagepistol', ['label'] = 'Vintage Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_vintagepistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An antique firearm designed to be held in one hand'}, - ['weapon_flaregun'] = {['name'] = 'weapon_flaregun', ['label'] = 'Flare Gun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_FLARE', ['image'] = 'weapon_flaregun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handgun for firing signal rockets'}, - ['weapon_marksmanpistol'] = {['name'] = 'weapon_marksmanpistol', ['label'] = 'Marksman Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_marksmanpistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A very accurate small firearm designed to be held in one hand'}, - ['weapon_revolver'] = {['name'] = 'weapon_revolver', ['label'] = 'Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_revolver.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pistol with revolving chambers enabling several shots to be fired without reloading'}, - ['weapon_revolver_mk2'] = {['name'] = 'weapon_revolver_mk2', ['label'] = 'Violence', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_revolver_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'da Violence'}, - ['weapon_doubleaction'] = {['name'] = 'weapon_doubleaction', ['label'] = 'Double Action Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_doubleaction.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Double Action Revolver'}, - ['weapon_snspistol_mk2'] = {['name'] = 'weapon_snspistol_mk2', ['label'] = 'SNS Pistol Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_snspistol_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'SNS Pistol MK2'}, - ['weapon_raypistol'] = {['name'] = 'weapon_raypistol', ['label'] = 'Up-n-Atomizer', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_raypistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Raypistol'}, - ['weapon_ceramicpistol'] = {['name'] = 'weapon_ceramicpistol', ['label'] = 'Ceramic Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_ceramicpistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Ceramicpistol'}, - ['weapon_navyrevolver'] = {['name'] = 'weapon_navyrevolver', ['label'] = 'Navy Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_navyrevolver.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Navyrevolver'}, - ['weapon_gadgetpistol'] = {['name'] = 'weapon_gadgetpistol', ['label'] = 'Perico Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_gadgetpistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Gadgetpistol'}, + -- Handguns + ['weapon_pistol'] = {['name'] = 'weapon_pistol', ['label'] = 'Walther P99', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small firearm designed to be held in one hand'}, + ['weapon_pistol_mk2'] = {['name'] = 'weapon_pistol_mk2', ['label'] = 'Pistol Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol_mk2.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An upgraded small firearm designed to be held in one hand'}, + ['weapon_combatpistol'] = {['name'] = 'weapon_combatpistol', ['label'] = 'Combat Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_combatpistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A combat version small firearm designed to be held in one hand'}, + ['weapon_appistol'] = {['name'] = 'weapon_appistol', ['label'] = 'AP Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_appistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small firearm designed to be held in one hand that is automatic'}, + ['weapon_stungun'] = {['name'] = 'weapon_stungun', ['label'] = 'Taser', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stungun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon firing barbs attached by wires to batteries, causing temporary paralysis'}, + ['weapon_pistol50'] = {['name'] = 'weapon_pistol50', ['label'] = 'Pistol .50', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol50.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A .50 caliber firearm designed to be held with both hands'}, + ['weapon_snspistol'] = {['name'] = 'weapon_snspistol', ['label'] = 'SNS Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_snspistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A very small firearm designed to be easily concealed'}, + ['weapon_heavypistol'] = {['name'] = 'weapon_heavypistol', ['label'] = 'Heavy Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_heavypistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A hefty firearm designed to be held in one hand (or attempted)'}, + ['weapon_vintagepistol'] = {['name'] = 'weapon_vintagepistol', ['label'] = 'Vintage Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_vintagepistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An antique firearm designed to be held in one hand'}, + ['weapon_flaregun'] = {['name'] = 'weapon_flaregun', ['label'] = 'Flare Gun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_FLARE', ['image'] = 'weapon_flaregun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handgun for firing signal rockets'}, + ['weapon_marksmanpistol'] = {['name'] = 'weapon_marksmanpistol', ['label'] = 'Marksman Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_marksmanpistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A very accurate small firearm designed to be held in one hand'}, + ['weapon_revolver'] = {['name'] = 'weapon_revolver', ['label'] = 'Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_revolver.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pistol with revolving chambers enabling several shots to be fired without reloading'}, + ['weapon_revolver_mk2'] = {['name'] = 'weapon_revolver_mk2', ['label'] = 'Violence', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_revolver_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'da Violence'}, + ['weapon_doubleaction'] = {['name'] = 'weapon_doubleaction', ['label'] = 'Double Action Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_doubleaction.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Double Action Revolver'}, + ['weapon_snspistol_mk2'] = {['name'] = 'weapon_snspistol_mk2', ['label'] = 'SNS Pistol Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_snspistol_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'SNS Pistol MK2'}, + ['weapon_raypistol'] = {['name'] = 'weapon_raypistol', ['label'] = 'Up-n-Atomizer', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_raypistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Raypistol'}, + ['weapon_ceramicpistol'] = {['name'] = 'weapon_ceramicpistol', ['label'] = 'Ceramic Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_ceramicpistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Ceramicpistol'}, + ['weapon_navyrevolver'] = {['name'] = 'weapon_navyrevolver', ['label'] = 'Navy Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_navyrevolver.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Navyrevolver'}, + ['weapon_gadgetpistol'] = {['name'] = 'weapon_gadgetpistol', ['label'] = 'Perico Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_gadgetpistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Gadgetpistol'}, - -- Submachine Guns - ['weapon_microsmg'] = {['name'] = 'weapon_microsmg', ['label'] = 'Micro SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_microsmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld lightweight machine gun'}, - ['weapon_smg'] = {['name'] = 'weapon_smg', ['label'] = 'SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_smg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld lightweight machine gun'}, - ['weapon_smg_mk2'] = {['name'] = 'weapon_smg_mk2', ['label'] = 'SMG Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_smg_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'SMG MK2'}, - ['weapon_assaultsmg'] = {['name'] = 'weapon_assaultsmg', ['label'] = 'Assault SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_assaultsmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An assault version of a handheld lightweight machine gun'}, - ['weapon_combatpdw'] = {['name'] = 'weapon_combatpdw', ['label'] = 'Combat PDW', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_combatpdw.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A combat version of a handheld lightweight machine gun'}, - ['weapon_machinepistol'] = {['name'] = 'weapon_machinepistol', ['label'] = 'Tec-9', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_machinepistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A self-loading pistol capable of burst or fully automatic fire'}, - ['weapon_minismg'] = {['name'] = 'weapon_minismg', ['label'] = 'Mini SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_minismg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A mini handheld lightweight machine gun'}, - ['weapon_raycarbine'] = {['name'] = 'weapon_raycarbine', ['label'] = 'Unholy Hellbringer', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_raycarbine.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Raycarbine'}, + -- Submachine Guns + ['weapon_microsmg'] = {['name'] = 'weapon_microsmg', ['label'] = 'Micro SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_microsmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld lightweight machine gun'}, + ['weapon_smg'] = {['name'] = 'weapon_smg', ['label'] = 'SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_smg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld lightweight machine gun'}, + ['weapon_smg_mk2'] = {['name'] = 'weapon_smg_mk2', ['label'] = 'SMG Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_smg_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'SMG MK2'}, + ['weapon_assaultsmg'] = {['name'] = 'weapon_assaultsmg', ['label'] = 'Assault SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_assaultsmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An assault version of a handheld lightweight machine gun'}, + ['weapon_combatpdw'] = {['name'] = 'weapon_combatpdw', ['label'] = 'Combat PDW', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_combatpdw.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A combat version of a handheld lightweight machine gun'}, + ['weapon_machinepistol'] = {['name'] = 'weapon_machinepistol', ['label'] = 'Tec-9', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_machinepistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A self-loading pistol capable of burst or fully automatic fire'}, + ['weapon_minismg'] = {['name'] = 'weapon_minismg', ['label'] = 'Mini SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_minismg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A mini handheld lightweight machine gun'}, + ['weapon_raycarbine'] = {['name'] = 'weapon_raycarbine', ['label'] = 'Unholy Hellbringer', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_raycarbine.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Raycarbine'}, - -- Shotguns - ['weapon_pumpshotgun'] = {['name'] = 'weapon_pumpshotgun', ['label'] = 'Pump Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_pumpshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pump-action smoothbore gun for firing small shot at short range'}, - ['weapon_sawnoffshotgun'] = {['name'] = 'weapon_sawnoffshotgun', ['label'] = 'Sawn-off Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_sawnoffshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A sawn-off smoothbore gun for firing small shot at short range'}, - ['weapon_assaultshotgun'] = {['name'] = 'weapon_assaultshotgun', ['label'] = 'Assault Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_assaultshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An assault version of asmoothbore gun for firing small shot at short range'}, - ['weapon_bullpupshotgun'] = {['name'] = 'weapon_bullpupshotgun', ['label'] = 'Bullpup Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_bullpupshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact smoothbore gun for firing small shot at short range'}, - ['weapon_musket'] = {['name'] = 'weapon_musket', ['label'] = 'Musket', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_musket.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An infantryman\'s light gun with a long barrel, typically smooth-bored, muzzleloading, and fired from the shoulder'}, - ['weapon_heavyshotgun'] = {['name'] = 'weapon_heavyshotgun', ['label'] = 'Heavy Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_heavyshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A large smoothbore gun for firing small shot at short range'}, - ['weapon_dbshotgun'] = {['name'] = 'weapon_dbshotgun', ['label'] = 'Double-barrel Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_dbshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A shotgun with two parallel barrels, allowing two single shots to be fired in quick succession'}, - ['weapon_autoshotgun'] = {['name'] = 'weapon_autoshotgun', ['label'] = 'Auto Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_autoshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A shotgun capable of rapid continous fire'}, - ['weapon_pumpshotgun_mk2'] = {['name'] = 'weapon_pumpshotgun_mk2', ['label'] = 'Pumpshotgun Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_pumpshotgun_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Pumpshotgun MK2'}, - ['weapon_combatshotgun'] = {['name'] = 'weapon_combatshotgun', ['label'] = 'Combat Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_combatshotgun.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Combatshotgun'}, + -- Shotguns + ['weapon_pumpshotgun'] = {['name'] = 'weapon_pumpshotgun', ['label'] = 'Pump Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_pumpshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pump-action smoothbore gun for firing small shot at short range'}, + ['weapon_sawnoffshotgun'] = {['name'] = 'weapon_sawnoffshotgun', ['label'] = 'Sawn-off Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_sawnoffshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A sawn-off smoothbore gun for firing small shot at short range'}, + ['weapon_assaultshotgun'] = {['name'] = 'weapon_assaultshotgun', ['label'] = 'Assault Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_assaultshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An assault version of asmoothbore gun for firing small shot at short range'}, + ['weapon_bullpupshotgun'] = {['name'] = 'weapon_bullpupshotgun', ['label'] = 'Bullpup Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_bullpupshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact smoothbore gun for firing small shot at short range'}, + ['weapon_musket'] = {['name'] = 'weapon_musket', ['label'] = 'Musket', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_musket.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An infantryman\'s light gun with a long barrel, typically smooth-bored, muzzleloading, and fired from the shoulder'}, + ['weapon_heavyshotgun'] = {['name'] = 'weapon_heavyshotgun', ['label'] = 'Heavy Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_heavyshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A large smoothbore gun for firing small shot at short range'}, + ['weapon_dbshotgun'] = {['name'] = 'weapon_dbshotgun', ['label'] = 'Double-barrel Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_dbshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A shotgun with two parallel barrels, allowing two single shots to be fired in quick succession'}, + ['weapon_autoshotgun'] = {['name'] = 'weapon_autoshotgun', ['label'] = 'Auto Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_autoshotgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A shotgun capable of rapid continous fire'}, + ['weapon_pumpshotgun_mk2'] = {['name'] = 'weapon_pumpshotgun_mk2', ['label'] = 'Pumpshotgun Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_pumpshotgun_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Pumpshotgun MK2'}, + ['weapon_combatshotgun'] = {['name'] = 'weapon_combatshotgun', ['label'] = 'Combat Shotgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SHOTGUN', ['image'] = 'weapon_combatshotgun.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Combatshotgun'}, - -- Assault Rifles - ['weapon_assaultrifle'] = {['name'] = 'weapon_assaultrifle', ['label'] = 'Assault Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_assaultrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A rapid-fire, magazine-fed automatic rifle designed for infantry use'}, - ['weapon_assaultrifle_mk2'] = {['name'] = 'weapon_assaultrifle_mk2', ['label'] = 'Assault Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_assaultrifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Assault Rifle MK2'}, - ['weapon_carbinerifle'] = {['name'] = 'weapon_carbinerifle', ['label'] = 'Carbine Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_carbinerifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A lightweight automatic rifle'}, - ['weapon_carbinerifle_mk2'] = {['name'] = 'weapon_carbinerifle_mk2', ['label'] = 'Carbine Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_carbinerifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Carbine Rifle MK2'}, - ['weapon_advancedrifle'] = {['name'] = 'weapon_advancedrifle', ['label'] = 'Advanced Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_advancedrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An assault version of a rapid-fire, magazine-fed automatic rifle designed for infantry use'}, - ['weapon_specialcarbine'] = {['name'] = 'weapon_specialcarbine', ['label'] = 'Special Carbine', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_specialcarbine.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An extremely versatile assault rifle for any combat situation'}, - ['weapon_bullpuprifle'] = {['name'] = 'weapon_bullpuprifle', ['label'] = 'Bullpup Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_bullpuprifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact automatic assault rifle'}, - ['weapon_compactrifle'] = {['name'] = 'weapon_compactrifle', ['label'] = 'Compact Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_compactrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact version of an assault rifle'}, - ['weapon_specialcarbine_mk2'] = {['name'] = 'weapon_specialcarbine_mk2', ['label'] = 'Special Carbine Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_specialcarbine_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Wpecialcarbine MK2'}, - ['weapon_bullpuprifle_mk2'] = {['name'] = 'weapon_bullpuprifle_mk2', ['label'] = 'Bullpup Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_bullpuprifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Bull Puprifle MK2'}, - ['weapon_militaryrifle'] = {['name'] = 'weapon_militaryrifle', ['label'] = 'Military Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_militaryrifle.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Militaryrifle'}, + -- Assault Rifles + ['weapon_assaultrifle'] = {['name'] = 'weapon_assaultrifle', ['label'] = 'Assault Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_assaultrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A rapid-fire, magazine-fed automatic rifle designed for infantry use'}, + ['weapon_assaultrifle_mk2'] = {['name'] = 'weapon_assaultrifle_mk2', ['label'] = 'Assault Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_assaultrifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Assault Rifle MK2'}, + ['weapon_carbinerifle'] = {['name'] = 'weapon_carbinerifle', ['label'] = 'Carbine Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_carbinerifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A lightweight automatic rifle'}, + ['weapon_carbinerifle_mk2'] = {['name'] = 'weapon_carbinerifle_mk2', ['label'] = 'Carbine Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_carbinerifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Carbine Rifle MK2'}, + ['weapon_advancedrifle'] = {['name'] = 'weapon_advancedrifle', ['label'] = 'Advanced Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_advancedrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An assault version of a rapid-fire, magazine-fed automatic rifle designed for infantry use'}, + ['weapon_specialcarbine'] = {['name'] = 'weapon_specialcarbine', ['label'] = 'Special Carbine', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_specialcarbine.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An extremely versatile assault rifle for any combat situation'}, + ['weapon_bullpuprifle'] = {['name'] = 'weapon_bullpuprifle', ['label'] = 'Bullpup Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_bullpuprifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact automatic assault rifle'}, + ['weapon_compactrifle'] = {['name'] = 'weapon_compactrifle', ['label'] = 'Compact Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_compactrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact version of an assault rifle'}, + ['weapon_specialcarbine_mk2'] = {['name'] = 'weapon_specialcarbine_mk2', ['label'] = 'Special Carbine Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_specialcarbine_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Wpecialcarbine MK2'}, + ['weapon_bullpuprifle_mk2'] = {['name'] = 'weapon_bullpuprifle_mk2', ['label'] = 'Bullpup Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_bullpuprifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Bull Puprifle MK2'}, + ['weapon_militaryrifle'] = {['name'] = 'weapon_militaryrifle', ['label'] = 'Military Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RIFLE', ['image'] = 'weapon_militaryrifle.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Militaryrifle'}, - -- Light Machine Guns - ['weapon_mg'] = {['name'] = 'weapon_mg', ['label'] = 'Machinegun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_mg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An automatic gun that fires bullets in rapid succession for as long as the trigger is pressed'}, - ['weapon_combatmg'] = {['name'] = 'weapon_combatmg', ['label'] = 'Combat MG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_combatmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A combat version of an automatic gun that fires bullets in rapid succession for as long as the trigger is pressed'}, - ['weapon_gusenberg'] = {['name'] = 'weapon_gusenberg', ['label'] = 'Thompson SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_gusenberg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An automatic rifle commonly referred to as a tommy gun'}, - ['weapon_combatmg_mk2'] = {['name'] = 'weapon_combatmg_mk2', ['label'] = 'Combat MG Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_combatmg_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Combatmg MK2'}, + -- Light Machine Guns + ['weapon_mg'] = {['name'] = 'weapon_mg', ['label'] = 'Machinegun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_mg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An automatic gun that fires bullets in rapid succession for as long as the trigger is pressed'}, + ['weapon_combatmg'] = {['name'] = 'weapon_combatmg', ['label'] = 'Combat MG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_combatmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A combat version of an automatic gun that fires bullets in rapid succession for as long as the trigger is pressed'}, + ['weapon_gusenberg'] = {['name'] = 'weapon_gusenberg', ['label'] = 'Thompson SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_gusenberg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An automatic rifle commonly referred to as a tommy gun'}, + ['weapon_combatmg_mk2'] = {['name'] = 'weapon_combatmg_mk2', ['label'] = 'Combat MG Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MG', ['image'] = 'weapon_combatmg_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Combatmg MK2'}, - -- Sniper Rifles - ['weapon_sniperrifle'] = {['name'] = 'weapon_sniperrifle', ['label'] = 'Sniper Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_sniperrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A high-precision, long-range rifle'}, - ['weapon_heavysniper'] = {['name'] = 'weapon_heavysniper', ['label'] = 'Heavy Sniper', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_heavysniper.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An upgraded high-precision, long-range rifle'}, - ['weapon_marksmanrifle'] = {['name'] = 'weapon_marksmanrifle', ['label'] = 'Marksman Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_marksmanrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A very accurate single-fire rifle'}, - ['weapon_remotesniper'] = {['name'] = 'weapon_remotesniper', ['label'] = 'Remote Sniper', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER_REMOTE', ['image'] = 'weapon_remotesniper.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable high-precision, long-range rifle'}, - ['weapon_heavysniper_mk2'] = {['name'] = 'weapon_heavysniper_mk2', ['label'] = 'Heavy Sniper Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_heavysniper_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Heavysniper MK2'}, - ['weapon_marksmanrifle_mk2'] = {['name'] = 'weapon_marksmanrifle_mk2', ['label'] = 'Marksman Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_marksmanrifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Marksmanrifle MK2'}, + -- Sniper Rifles + ['weapon_sniperrifle'] = {['name'] = 'weapon_sniperrifle', ['label'] = 'Sniper Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_sniperrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A high-precision, long-range rifle'}, + ['weapon_heavysniper'] = {['name'] = 'weapon_heavysniper', ['label'] = 'Heavy Sniper', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_heavysniper.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An upgraded high-precision, long-range rifle'}, + ['weapon_marksmanrifle'] = {['name'] = 'weapon_marksmanrifle', ['label'] = 'Marksman Rifle', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_marksmanrifle.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A very accurate single-fire rifle'}, + ['weapon_remotesniper'] = {['name'] = 'weapon_remotesniper', ['label'] = 'Remote Sniper', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER_REMOTE', ['image'] = 'weapon_remotesniper.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable high-precision, long-range rifle'}, + ['weapon_heavysniper_mk2'] = {['name'] = 'weapon_heavysniper_mk2', ['label'] = 'Heavy Sniper Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_heavysniper_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Heavysniper MK2'}, + ['weapon_marksmanrifle_mk2'] = {['name'] = 'weapon_marksmanrifle_mk2', ['label'] = 'Marksman Rifle Mk II', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SNIPER', ['image'] = 'weapon_marksmanrifle_mk2.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Marksmanrifle MK2'}, - -- Heavy Weapons - ['weapon_rpg'] = {['name'] = 'weapon_rpg', ['label'] = 'RPG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RPG', ['image'] = 'weapon_rpg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A rocket-propelled grenade launcher'}, - ['weapon_grenadelauncher'] = {['name'] = 'weapon_grenadelauncher', ['label'] = 'Grenade Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_GRENADELAUNCHER', ['image'] = 'weapon_grenadelauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon that fires a specially-designed large-caliber projectile, often with an explosive, smoke or gas warhead'}, - ['weapon_grenadelauncher_smoke'] = {['name'] = 'weapon_grenadelauncher_smoke', ['label'] = 'Smoke Grenade Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_GRENADELAUNCHER', ['image'] = 'weapon_smokegrenade.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A bomb that produces a lot of smoke when it explodes'}, - ['weapon_minigun'] = {['name'] = 'weapon_minigun', ['label'] = 'Minigun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MINIGUN', ['image'] = 'weapon_minigun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable machine gun consisting of a rotating cluster of six barrels and capable of variable rates of fire of up to 6,000 rounds per minute'}, - ['weapon_firework'] = {['name'] = 'weapon_firework', ['label'] = 'Firework Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_firework.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A device containing gunpowder and other combustible chemicals that causes a spectacular explosion when ignited'}, - ['weapon_railgun'] = {['name'] = 'weapon_railgun', ['label'] = 'Railgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_railgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon that uses electromagnetic force to launch high velocity projectiles'}, - ['weapon_hominglauncher'] = {['name'] = 'weapon_hominglauncher', ['label'] = 'Homing Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_STINGER', ['image'] = 'weapon_hominglauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon fitted with an electronic device that enables it to find and hit a target'}, - ['weapon_compactlauncher'] = {['name'] = 'weapon_compactlauncher', ['label'] = 'Compact Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_compactlauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact grenade launcher'}, - ['weapon_rayminigun'] = {['name'] = 'weapon_rayminigun', ['label'] = 'Widowmaker', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MINIGUN', ['image'] = 'weapon_rayminigun.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Rayminigun'}, + -- Heavy Weapons + ['weapon_rpg'] = {['name'] = 'weapon_rpg', ['label'] = 'RPG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_RPG', ['image'] = 'weapon_rpg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A rocket-propelled grenade launcher'}, + ['weapon_grenadelauncher'] = {['name'] = 'weapon_grenadelauncher', ['label'] = 'Grenade Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_GRENADELAUNCHER', ['image'] = 'weapon_grenadelauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon that fires a specially-designed large-caliber projectile, often with an explosive, smoke or gas warhead'}, + ['weapon_grenadelauncher_smoke'] = {['name'] = 'weapon_grenadelauncher_smoke', ['label'] = 'Smoke Grenade Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_GRENADELAUNCHER', ['image'] = 'weapon_smokegrenade.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A bomb that produces a lot of smoke when it explodes'}, + ['weapon_minigun'] = {['name'] = 'weapon_minigun', ['label'] = 'Minigun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MINIGUN', ['image'] = 'weapon_minigun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable machine gun consisting of a rotating cluster of six barrels and capable of variable rates of fire of up to 6,000 rounds per minute'}, + ['weapon_firework'] = {['name'] = 'weapon_firework', ['label'] = 'Firework Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_firework.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A device containing gunpowder and other combustible chemicals that causes a spectacular explosion when ignited'}, + ['weapon_railgun'] = {['name'] = 'weapon_railgun', ['label'] = 'Railgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_railgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon that uses electromagnetic force to launch high velocity projectiles'}, + ['weapon_hominglauncher'] = {['name'] = 'weapon_hominglauncher', ['label'] = 'Homing Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_STINGER', ['image'] = 'weapon_hominglauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon fitted with an electronic device that enables it to find and hit a target'}, + ['weapon_compactlauncher'] = {['name'] = 'weapon_compactlauncher', ['label'] = 'Compact Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_compactlauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact grenade launcher'}, + ['weapon_rayminigun'] = {['name'] = 'weapon_rayminigun', ['label'] = 'Widowmaker', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MINIGUN', ['image'] = 'weapon_rayminigun.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Rayminigun'}, - -- Throwables - ['weapon_grenade'] = {['name'] = 'weapon_grenade', ['label'] = 'Grenade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_grenade.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld throwable bomb'}, - ['weapon_bzgas'] = {['name'] = 'weapon_bzgas', ['label'] = 'BZ Gas', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_bzgas.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A cannister of gas that causes extreme pain'}, - ['weapon_molotov'] = {['name'] = 'weapon_molotov', ['label'] = 'Molotov', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_molotov.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A crude bomb made of a bottle filled with a flammable liquid and fitted with a wick for lighting'}, - ['weapon_stickybomb'] = {['name'] = 'weapon_stickybomb', ['label'] = 'C4', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stickybomb.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An explosive charge covered with an adhesive that when thrown against an object sticks until it explodes'}, - ['weapon_proxmine'] = {['name'] = 'weapon_proxmine', ['label'] = 'Proxmine Grenade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_proximitymine.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A bomb placed on the ground that detonates when going within its proximity'}, - ['weapon_snowball'] = {['name'] = 'weapon_snowball', ['label'] = 'Snowball', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_snowball.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A ball of packed snow, especially one made for throwing at other people for fun'}, - ['weapon_pipebomb'] = {['name'] = 'weapon_pipebomb', ['label'] = 'Pipe Bomb', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_pipebomb.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A homemade bomb, the components of which are contained in a pipe'}, - ['weapon_ball'] = {['name'] = 'weapon_ball', ['label'] = 'Ball', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_BALL', ['image'] = 'weapon_ball.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A solid or hollow spherical or egg-shaped object that is kicked, thrown, or hit in a game'}, - ['weapon_smokegrenade'] = {['name'] = 'weapon_smokegrenade', ['label'] = 'Smoke Grenade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_c4.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An explosive charge that can be remotely detonated'}, - ['weapon_flare'] = {['name'] = 'weapon_flare', ['label'] = 'Flare pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_FLARE', ['image'] = 'weapon_flare.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small pyrotechnic devices used for illumination and signalling'}, + -- Throwables + ['weapon_grenade'] = {['name'] = 'weapon_grenade', ['label'] = 'Grenade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_grenade.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld throwable bomb'}, + ['weapon_bzgas'] = {['name'] = 'weapon_bzgas', ['label'] = 'BZ Gas', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_bzgas.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A cannister of gas that causes extreme pain'}, + ['weapon_molotov'] = {['name'] = 'weapon_molotov', ['label'] = 'Molotov', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_molotov.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A crude bomb made of a bottle filled with a flammable liquid and fitted with a wick for lighting'}, + ['weapon_stickybomb'] = {['name'] = 'weapon_stickybomb', ['label'] = 'C4', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stickybomb.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An explosive charge covered with an adhesive that when thrown against an object sticks until it explodes'}, + ['weapon_proxmine'] = {['name'] = 'weapon_proxmine', ['label'] = 'Proxmine Grenade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_proximitymine.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A bomb placed on the ground that detonates when going within its proximity'}, + ['weapon_snowball'] = {['name'] = 'weapon_snowball', ['label'] = 'Snowball', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_snowball.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A ball of packed snow, especially one made for throwing at other people for fun'}, + ['weapon_pipebomb'] = {['name'] = 'weapon_pipebomb', ['label'] = 'Pipe Bomb', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_pipebomb.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A homemade bomb, the components of which are contained in a pipe'}, + ['weapon_ball'] = {['name'] = 'weapon_ball', ['label'] = 'Ball', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_BALL', ['image'] = 'weapon_ball.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A solid or hollow spherical or egg-shaped object that is kicked, thrown, or hit in a game'}, + ['weapon_smokegrenade'] = {['name'] = 'weapon_smokegrenade', ['label'] = 'Smoke Grenade', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_c4.png', ['unique'] = true, ['useable'] = false, ['description'] = 'An explosive charge that can be remotely detonated'}, + ['weapon_flare'] = {['name'] = 'weapon_flare', ['label'] = 'Flare pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_FLARE', ['image'] = 'weapon_flare.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small pyrotechnic devices used for illumination and signalling'}, - -- Miscellaneous - ['weapon_petrolcan'] = {['name'] = 'weapon_petrolcan', ['label'] = 'Petrol Can', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PETROLCAN', ['image'] = 'weapon_petrolcan.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A robust liquid container made from pressed steel'}, - ['weapon_fireextinguisher'] = {['name'] = 'weapon_fireextinguisher', ['label'] = 'Fire Extinguisher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_fireextinguisher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable device that discharges a jet of water, foam, gas, or other material to extinguish a fire'}, - ['weapon_hazardcan'] = {['name'] = 'weapon_hazardcan', ['label'] = 'Hazardous Jerry Can', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PETROLCAN', ['image'] = 'weapon_hazardcan.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Hazardcan'}, + -- Miscellaneous + ['weapon_petrolcan'] = {['name'] = 'weapon_petrolcan', ['label'] = 'Petrol Can', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PETROLCAN', ['image'] = 'weapon_petrolcan.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A robust liquid container made from pressed steel'}, + ['weapon_fireextinguisher'] = {['name'] = 'weapon_fireextinguisher', ['label'] = 'Fire Extinguisher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_fireextinguisher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable device that discharges a jet of water, foam, gas, or other material to extinguish a fire'}, + ['weapon_hazardcan'] = {['name'] = 'weapon_hazardcan', ['label'] = 'Hazardous Jerry Can', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PETROLCAN', ['image'] = 'weapon_hazardcan.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Hazardcan'}, - -- PISTOL ATTACHMENTS - ['pistol_defaultclip'] = {['name'] = 'pistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Default Clip'}, - ['pistol_extendedclip'] = {['name'] = 'pistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Extended Clip'}, - ['pistol_flashlight'] = {['name'] = 'pistol_flashlight', ['label'] = 'Pistol Flashlight', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_flashlight.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Flashlight Attachment'}, - ['pistol_suppressor'] = {['name'] = 'pistol_suppressor', ['label'] = 'Pistol Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Suppressor Attachment'}, - ['pistol_luxuryfinish'] = {['name'] = 'pistol_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Luxury Finish'}, - ['combatpistol_defaultclip'] = {['name'] = 'combatpistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat Pistol Default Clip'}, - ['combatpistol_extendedclip'] = {['name'] = 'combatpistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat Pistol Extended Clip'}, - ['combatpistol_luxuryfinish'] = {['name'] = 'combatpistol_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat Pistol Luxury Finish'}, - ['appistol_defaultclip'] = {['name'] = 'appistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'APPistol Default Clip'}, - ['appistol_extendedclip'] = {['name'] = 'appistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'APPistol Extended Clip'}, - ['appistol_luxuryfinish'] = {['name'] = 'appistol_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'APPistol Luxury Finish'}, - ['pistol50_defaultclip'] = {['name'] = 'pistol50_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '.50 Pistol Default Clip'}, - ['pistol50_extendedclip'] = {['name'] = 'pistol50_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '.50 Pistol Extended Clip'}, - ['pistol50_luxuryfinish'] = {['name'] = 'pistol50_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '.50 Pistol Luxury Finish'}, - ['revolver_defaultclip'] = {['name'] = 'revolver_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Revovler Default Clip'}, - ['revolver_vipvariant'] = {['name'] = 'revolver_vipvariant', ['label'] = 'Pistol Variant', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Revovler Variant'}, - ['revolver_bodyguardvariant'] = {['name'] = 'revolver_bodyguardvariant', ['label'] = 'Pistol Variant', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Revovler Variant'}, - ['snspistol_defaultclip'] = {['name'] = 'snspistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SNS Pistol Default Clip'}, - ['snspistol_extendedclip'] = {['name'] = 'snspistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SNS Pistol Extended Clip'}, - ['snspistol_grip'] = {['name'] = 'snspistol_grip', ['label'] = 'Pistol Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SNS Pistol Grip Attachment'}, - ['heavypistol_defaultclip'] = {['name'] = 'heavypistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Pistol Default Clip'}, - ['heavypistol_extendedclip'] = {['name'] = 'heavypistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Pistol Extended Clip'}, - ['heavypistol_grip'] = {['name'] = 'heavypistol_grip', ['label'] = 'Pistol Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Pistol Grip Attachment'}, - ['vintagepistol_defaultclip'] = {['name'] = 'vintagepistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Vintage Pistol Default Clip'}, - ['vintagepistol_extendedclip'] = {['name'] = 'vintagepistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Vintage Pistol Default Clip'}, + -- PISTOL ATTACHMENTS + ['pistol_defaultclip'] = {['name'] = 'pistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Default Clip'}, + ['pistol_extendedclip'] = {['name'] = 'pistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Extended Clip'}, + ['pistol_flashlight'] = {['name'] = 'pistol_flashlight', ['label'] = 'Pistol Flashlight', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_flashlight.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Flashlight Attachment'}, + ['pistol_suppressor'] = {['name'] = 'pistol_suppressor', ['label'] = 'Pistol Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Suppressor Attachment'}, + ['pistol_luxuryfinish'] = {['name'] = 'pistol_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pistol Luxury Finish'}, + ['combatpistol_defaultclip'] = {['name'] = 'combatpistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat Pistol Default Clip'}, + ['combatpistol_extendedclip'] = {['name'] = 'combatpistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat Pistol Extended Clip'}, + ['combatpistol_luxuryfinish'] = {['name'] = 'combatpistol_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat Pistol Luxury Finish'}, + ['appistol_defaultclip'] = {['name'] = 'appistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'APPistol Default Clip'}, + ['appistol_extendedclip'] = {['name'] = 'appistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'APPistol Extended Clip'}, + ['appistol_luxuryfinish'] = {['name'] = 'appistol_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'APPistol Luxury Finish'}, + ['pistol50_defaultclip'] = {['name'] = 'pistol50_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '.50 Pistol Default Clip'}, + ['pistol50_extendedclip'] = {['name'] = 'pistol50_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '.50 Pistol Extended Clip'}, + ['pistol50_luxuryfinish'] = {['name'] = 'pistol50_luxuryfinish', ['label'] = 'Pistol Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '.50 Pistol Luxury Finish'}, + ['revolver_defaultclip'] = {['name'] = 'revolver_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Revovler Default Clip'}, + ['revolver_vipvariant'] = {['name'] = 'revolver_vipvariant', ['label'] = 'Pistol Variant', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Revovler Variant'}, + ['revolver_bodyguardvariant'] = {['name'] = 'revolver_bodyguardvariant', ['label'] = 'Pistol Variant', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Revovler Variant'}, + ['snspistol_defaultclip'] = {['name'] = 'snspistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SNS Pistol Default Clip'}, + ['snspistol_extendedclip'] = {['name'] = 'snspistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SNS Pistol Extended Clip'}, + ['snspistol_grip'] = {['name'] = 'snspistol_grip', ['label'] = 'Pistol Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SNS Pistol Grip Attachment'}, + ['heavypistol_defaultclip'] = {['name'] = 'heavypistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Pistol Default Clip'}, + ['heavypistol_extendedclip'] = {['name'] = 'heavypistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Pistol Extended Clip'}, + ['heavypistol_grip'] = {['name'] = 'heavypistol_grip', ['label'] = 'Pistol Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Pistol Grip Attachment'}, + ['vintagepistol_defaultclip'] = {['name'] = 'vintagepistol_defaultclip', ['label'] = 'Pistol Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Vintage Pistol Default Clip'}, + ['vintagepistol_extendedclip'] = {['name'] = 'vintagepistol_extendedclip', ['label'] = 'Pistol EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Vintage Pistol Default Clip'}, - -- SMG ATTACHMENTS - ['microsmg_defaultclip'] = {['name'] = 'microsmg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Default Clip'}, - ['microsmg_extendedclip'] = {['name'] = 'microsmg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Extended Clip'}, - ['microsmg_scope'] = {['name'] = 'microsmg_scope', ['label'] = 'SMG Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Scope Attachment'}, - ['microsmg_luxuryfinish'] = {['name'] = 'microsmg_luxuryfinish', ['label'] = 'SMG Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Luxury Finish'}, - ['smg_defaultclip'] = {['name'] = 'smg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Default Clip'}, - ['smg_extendedclip'] = {['name'] = 'smg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Extended Clip'}, - ['smg_suppressor'] = {['name'] = 'smg_suppressor', ['label'] = 'SMG Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Suppressor'}, - ['smg_drum'] = {['name'] = 'smg_drum', ['label'] = 'SMG Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Drum'}, - ['smg_scope'] = {['name'] = 'smg_scope', ['label'] = 'SMG Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Scope Attachment'}, - ['smg_luxuryfinish'] = {['name'] = 'smg_luxuryfinish', ['label'] = 'SMG Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Luxury Finish'}, - ['assaultsmg_defaultclip'] = {['name'] = 'assaultsmg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault SMG Default Clip'}, - ['assaultsmg_extendedclip'] = {['name'] = 'assaultsmg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault SMG Extended Clip'}, - ['assaultsmg_luxuryfinish'] = {['name'] = 'assaultsmg_luxuryfinish', ['label'] = 'SMG Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault SMG Luxury Finish'}, - ['minismg_defaultclip'] = {['name'] = 'minismg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Mini SMG Default Clip'}, - ['minismg_extendedclip'] = {['name'] = 'minismg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Mini SMG Extended Clip'}, - ['machinepistol_defaultclip'] = {['name'] = 'machinepistol_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Machine Pistol Default Clip'}, - ['machinepistol_extendedclip'] = {['name'] = 'machinepistol_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Machine Pistol Extended Clip'}, - ['machinepistol_drum'] = {['name'] = 'machinepistol_drum', ['label'] = 'SMG Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Machine Pistol Drum'}, - ['combatpdw_defaultclip'] = {['name'] = 'combatpdw_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Default Clip'}, - ['combatpdw_extendedclip'] = {['name'] = 'combatpdw_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Extended Clip'}, - ['combatpdw_drum'] = {['name'] = 'combatpdw_drum', ['label'] = 'SMG Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Drum'}, - ['combatpdw_grip'] = {['name'] = 'combatpdw_grip', ['label'] = 'SMG Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Grip Attachment'}, - ['combatpdw_scope'] = {['name'] = 'combatpdw_scope', ['label'] = 'SMG Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Scope Attachment'}, + -- SMG ATTACHMENTS + ['microsmg_defaultclip'] = {['name'] = 'microsmg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Default Clip'}, + ['microsmg_extendedclip'] = {['name'] = 'microsmg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Extended Clip'}, + ['microsmg_scope'] = {['name'] = 'microsmg_scope', ['label'] = 'SMG Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Scope Attachment'}, + ['microsmg_luxuryfinish'] = {['name'] = 'microsmg_luxuryfinish', ['label'] = 'SMG Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Micro SMG Luxury Finish'}, + ['smg_defaultclip'] = {['name'] = 'smg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Default Clip'}, + ['smg_extendedclip'] = {['name'] = 'smg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Extended Clip'}, + ['smg_suppressor'] = {['name'] = 'smg_suppressor', ['label'] = 'SMG Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Suppressor'}, + ['smg_drum'] = {['name'] = 'smg_drum', ['label'] = 'SMG Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Drum'}, + ['smg_scope'] = {['name'] = 'smg_scope', ['label'] = 'SMG Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Scope Attachment'}, + ['smg_luxuryfinish'] = {['name'] = 'smg_luxuryfinish', ['label'] = 'SMG Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'SMG Luxury Finish'}, + ['assaultsmg_defaultclip'] = {['name'] = 'assaultsmg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault SMG Default Clip'}, + ['assaultsmg_extendedclip'] = {['name'] = 'assaultsmg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault SMG Extended Clip'}, + ['assaultsmg_luxuryfinish'] = {['name'] = 'assaultsmg_luxuryfinish', ['label'] = 'SMG Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault SMG Luxury Finish'}, + ['minismg_defaultclip'] = {['name'] = 'minismg_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Mini SMG Default Clip'}, + ['minismg_extendedclip'] = {['name'] = 'minismg_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Mini SMG Extended Clip'}, + ['machinepistol_defaultclip'] = {['name'] = 'machinepistol_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Machine Pistol Default Clip'}, + ['machinepistol_extendedclip'] = {['name'] = 'machinepistol_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Machine Pistol Extended Clip'}, + ['machinepistol_drum'] = {['name'] = 'machinepistol_drum', ['label'] = 'SMG Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Machine Pistol Drum'}, + ['combatpdw_defaultclip'] = {['name'] = 'combatpdw_defaultclip', ['label'] = 'SMG Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Default Clip'}, + ['combatpdw_extendedclip'] = {['name'] = 'combatpdw_extendedclip', ['label'] = 'SMG EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Extended Clip'}, + ['combatpdw_drum'] = {['name'] = 'combatpdw_drum', ['label'] = 'SMG Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Drum'}, + ['combatpdw_grip'] = {['name'] = 'combatpdw_grip', ['label'] = 'SMG Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Grip Attachment'}, + ['combatpdw_scope'] = {['name'] = 'combatpdw_scope', ['label'] = 'SMG Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Combat PDW Scope Attachment'}, - -- SHOTGUN ATTACHMENTS - ['shotgun_suppressor'] = {['name'] = 'shotgun_suppressor', ['label'] = 'Shotgun Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Shotgun Suppressor Attachment'}, - ['pumpshotgun_luxuryfinish'] = {['name'] = 'pumpshotgun_luxuryfinish', ['label'] = 'Shotgun Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pump Shotgun Luxury Finish'}, - ['sawnoffshotgun_luxuryfinish'] = {['name'] = 'sawnoffshotgun_luxuryfinish', ['label'] = 'Shotgun Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sawn Off Shotgun Luxury Finish'}, - ['assaultshotgun_defaultclip'] = {['name'] = 'assaultshotgun_defaultclip', ['label'] = 'Shotgun Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Shotgun Default Clip'}, - ['assaultshotgun_extendedclip'] = {['name'] = 'assaultshotgun_extendedclip', ['label'] = 'Shotgun EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Shotgun Extended Clip'}, - ['heavyshotgun_defaultclip'] = {['name'] = 'heavyshotgun_defaultclip', ['label'] = 'Shotgun Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Default Clip'}, - ['heavyshotgun_extendedclip'] = {['name'] = 'heavyshotgun_extendedclip', ['label'] = 'Shotgun EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Extended Clip'}, - ['heavyshotgun_drum'] = {['name'] = 'heavyshotgun_drum', ['label'] = 'Shotgun Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Drum'}, + -- SHOTGUN ATTACHMENTS + ['shotgun_suppressor'] = {['name'] = 'shotgun_suppressor', ['label'] = 'Shotgun Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Shotgun Suppressor Attachment'}, + ['pumpshotgun_luxuryfinish'] = {['name'] = 'pumpshotgun_luxuryfinish', ['label'] = 'Shotgun Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pump Shotgun Luxury Finish'}, + ['sawnoffshotgun_luxuryfinish'] = {['name'] = 'sawnoffshotgun_luxuryfinish', ['label'] = 'Shotgun Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sawn Off Shotgun Luxury Finish'}, + ['assaultshotgun_defaultclip'] = {['name'] = 'assaultshotgun_defaultclip', ['label'] = 'Shotgun Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Shotgun Default Clip'}, + ['assaultshotgun_extendedclip'] = {['name'] = 'assaultshotgun_extendedclip', ['label'] = 'Shotgun EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Shotgun Extended Clip'}, + ['heavyshotgun_defaultclip'] = {['name'] = 'heavyshotgun_defaultclip', ['label'] = 'Shotgun Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Default Clip'}, + ['heavyshotgun_extendedclip'] = {['name'] = 'heavyshotgun_extendedclip', ['label'] = 'Shotgun EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Extended Clip'}, + ['heavyshotgun_drum'] = {['name'] = 'heavyshotgun_drum', ['label'] = 'Shotgun Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Shotgun Drum'}, - -- RIFLE ATTACHMENTS - ['assaultrifle_defaultclip'] = {['name'] = 'assaultrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Default Clip'}, - ['assaultrifle_extendedclip'] = {['name'] = 'assaultrifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Extended Clip'}, - ['assaultrifle_drum'] = {['name'] = 'assaultrifle_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Drum'}, - ['rifle_flashlight'] = {['name'] = 'rifle_flashlight', ['label'] = 'Rifle Flashlight', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_flashlight.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Rifle Flashlight Attachment'}, - ['rifle_grip'] = {['name'] = 'rifle_grip', ['label'] = 'Rifle Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Rifle Grip Attachment'}, - ['rifle_suppressor'] = {['name'] = 'rifle_suppressor', ['label'] = 'Rifle Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Rifle Suppressor Attachment'}, - ['assaultrifle_luxuryfinish'] = {['name'] = 'assaultrifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Luxury Finish'}, - ['carbinerifle_defaultclip'] = {['name'] = 'carbinerifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Default Clip'}, - ['carbinerifle_extendedclip'] = {['name'] = 'carbinerifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Extended Clip'}, - ['carbinerifle_drum'] = {['name'] = 'carbinerifle_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Drum'}, - ['carbinerifle_scope'] = {['name'] = 'carbinerifle_scope', ['label'] = 'Rifle Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Scope'}, - ['carbinerifle_luxuryfinish'] = {['name'] = 'carbinerifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Luxury Finish'}, - ['advancedrifle_defaultclip'] = {['name'] = 'advancedrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Advanced Rifle Default Clip'}, - ['advancedrifle_extendedclip'] = {['name'] = 'advancedrifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Advanced Rifle Extended Clip'}, - ['advancedrifle_luxuryfinish'] = {['name'] = 'advancedrifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Advanced Rifle Luxury Finish'}, - ['specialcarbine_defaultclip'] = {['name'] = 'specialcarbine_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Default Clip'}, - ['specialcarbine_extendedclip'] = {['name'] = 'specialcarbine_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Extended Clip'}, - ['specialcarbine_drum'] = {['name'] = 'specialcarbine_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Drum'}, - ['specialcarbine_luxuryfinish'] = {['name'] = 'specialcarbine_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Luxury Finish'}, - ['bullpuprifle_defaultclip'] = {['name'] = 'bullpuprifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Bullpup Rifle Default Clip'}, - ['bullpuprifle_extendedclip'] = {['name'] = 'bullpuprifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Bullpup Rifle Extended Clip'}, - ['bullpuprifle_luxuryfinish'] = {['name'] = 'bullpuprifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Bullpup Rifle Luxury Finish'}, - ['compactrifle_defaultclip'] = {['name'] = 'compactrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Compact Rifle Default Clip'}, - ['compactrifle_extendedclip'] = {['name'] = 'compactrifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Compact Rifle Extended Clip'}, - ['compactrifle_drum'] = {['name'] = 'compactrifle_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Compact Rifle Drum'}, - ['gusenberg_defaultclip'] = {['name'] = 'gusenberg_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gusenberg Default Clip'}, - ['gusenberg_extendedclip'] = {['name'] = 'gusenberg_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gusenberg Extended Clip'}, + -- RIFLE ATTACHMENTS + ['assaultrifle_defaultclip'] = {['name'] = 'assaultrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Default Clip'}, + ['assaultrifle_extendedclip'] = {['name'] = 'assaultrifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Extended Clip'}, + ['assaultrifle_drum'] = {['name'] = 'assaultrifle_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Drum'}, + ['rifle_flashlight'] = {['name'] = 'rifle_flashlight', ['label'] = 'Rifle Flashlight', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_flashlight.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Rifle Flashlight Attachment'}, + ['rifle_grip'] = {['name'] = 'rifle_grip', ['label'] = 'Rifle Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Rifle Grip Attachment'}, + ['rifle_suppressor'] = {['name'] = 'rifle_suppressor', ['label'] = 'Rifle Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Rifle Suppressor Attachment'}, + ['assaultrifle_luxuryfinish'] = {['name'] = 'assaultrifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Assault Rifle Luxury Finish'}, + ['carbinerifle_defaultclip'] = {['name'] = 'carbinerifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Default Clip'}, + ['carbinerifle_extendedclip'] = {['name'] = 'carbinerifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Extended Clip'}, + ['carbinerifle_drum'] = {['name'] = 'carbinerifle_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Drum'}, + ['carbinerifle_scope'] = {['name'] = 'carbinerifle_scope', ['label'] = 'Rifle Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Scope'}, + ['carbinerifle_luxuryfinish'] = {['name'] = 'carbinerifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Carbine Rifle Luxury Finish'}, + ['advancedrifle_defaultclip'] = {['name'] = 'advancedrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Advanced Rifle Default Clip'}, + ['advancedrifle_extendedclip'] = {['name'] = 'advancedrifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Advanced Rifle Extended Clip'}, + ['advancedrifle_luxuryfinish'] = {['name'] = 'advancedrifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Advanced Rifle Luxury Finish'}, + ['specialcarbine_defaultclip'] = {['name'] = 'specialcarbine_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Default Clip'}, + ['specialcarbine_extendedclip'] = {['name'] = 'specialcarbine_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Extended Clip'}, + ['specialcarbine_drum'] = {['name'] = 'specialcarbine_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Drum'}, + ['specialcarbine_luxuryfinish'] = {['name'] = 'specialcarbine_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Special Carbine Luxury Finish'}, + ['bullpuprifle_defaultclip'] = {['name'] = 'bullpuprifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Bullpup Rifle Default Clip'}, + ['bullpuprifle_extendedclip'] = {['name'] = 'bullpuprifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Bullpup Rifle Extended Clip'}, + ['bullpuprifle_luxuryfinish'] = {['name'] = 'bullpuprifle_luxuryfinish', ['label'] = 'Rifle Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Bullpup Rifle Luxury Finish'}, + ['compactrifle_defaultclip'] = {['name'] = 'compactrifle_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Compact Rifle Default Clip'}, + ['compactrifle_extendedclip'] = {['name'] = 'compactrifle_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Compact Rifle Extended Clip'}, + ['compactrifle_drum'] = {['name'] = 'compactrifle_drum', ['label'] = 'Rifle Drum', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_drummag.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Compact Rifle Drum'}, + ['gusenberg_defaultclip'] = {['name'] = 'gusenberg_defaultclip', ['label'] = 'Rifle Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gusenberg Default Clip'}, + ['gusenberg_extendedclip'] = {['name'] = 'gusenberg_extendedclip', ['label'] = 'Rifle EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gusenberg Extended Clip'}, - -- SNIPER ATTACHMENTS - ['sniperrifle_defaultclip'] = {['name'] = 'sniperrifle_defaultclip', ['label'] = 'Sniper Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Default Clip'}, - ['sniper_scope'] = {['name'] = 'sniper_scope', ['label'] = 'Sniper Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Scope Attachment'}, - ['snipermax_scope'] = {['name'] = 'snipermax_scope', ['label'] = 'Sniper Max Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Max Scope Attachment'}, - ['sniper_grip'] = {['name'] = 'sniper_grip', ['label'] = 'Sniper Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Grip Attachment'}, - ['heavysniper_defaultclip'] = {['name'] = 'heavysniper_defaultclip', ['label'] = 'Sniper Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Sniper Default Clip'}, - ['marksmanrifle_defaultclip'] = {['name'] = 'marksmanrifle_defaultclip', ['label'] = 'Sniper Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Default Clip'}, - ['marksmanrifle_extendedclip'] = {['name'] = 'marksmanrifle_extendedclip', ['label'] = 'Sniper EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Extended Clip'}, - ['marksmanrifle_scope'] = {['name'] = 'marksmanrifle_scope', ['label'] = 'Sniper Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Scope Attachment'}, - ['marksmanrifle_luxuryfinish'] = {['name'] = 'marksmanrifle_luxuryfinish', ['label'] = 'Sniper Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Luxury Finish'}, + -- SNIPER ATTACHMENTS + ['sniperrifle_defaultclip'] = {['name'] = 'sniperrifle_defaultclip', ['label'] = 'Sniper Suppressor', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Default Clip'}, + ['sniper_scope'] = {['name'] = 'sniper_scope', ['label'] = 'Sniper Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Scope Attachment'}, + ['snipermax_scope'] = {['name'] = 'snipermax_scope', ['label'] = 'Sniper Max Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Max Scope Attachment'}, + ['sniper_grip'] = {['name'] = 'sniper_grip', ['label'] = 'Sniper Grip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sniper Rifle Grip Attachment'}, + ['heavysniper_defaultclip'] = {['name'] = 'heavysniper_defaultclip', ['label'] = 'Sniper Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy Sniper Default Clip'}, + ['marksmanrifle_defaultclip'] = {['name'] = 'marksmanrifle_defaultclip', ['label'] = 'Sniper Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Default Clip'}, + ['marksmanrifle_extendedclip'] = {['name'] = 'marksmanrifle_extendedclip', ['label'] = 'Sniper EXT Clip', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_extendedclip.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Extended Clip'}, + ['marksmanrifle_scope'] = {['name'] = 'marksmanrifle_scope', ['label'] = 'Sniper Scope', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'smg_scope.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Scope Attachment'}, + ['marksmanrifle_luxuryfinish'] = {['name'] = 'marksmanrifle_luxuryfinish', ['label'] = 'Sniper Finish', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pistol_suppressor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Marksman Rifle Luxury Finish'}, - -- Weapon Tints - ['weapontint_black'] = {['name'] = 'weapontint_black', ['label'] = 'Default Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_black.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Default/Black Weapon Tint'}, - ['weapontint_green'] = {['name'] = 'weapontint_green', ['label'] = 'Green Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_green.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Green Weapon Tint'}, - ['weapontint_gold'] = {['name'] = 'weapontint_gold', ['label'] = 'Gold Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_gold.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gold Weapon Tint'}, - ['weapontint_pink'] = {['name'] = 'weapontint_pink', ['label'] = 'Pink Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_pink.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pink Weapon Tint'}, - ['weapontint_army'] = {['name'] = 'weapontint_army', ['label'] = 'Army Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_army.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Army Weapon Tint'}, - ['weapontint_lspd'] = {['name'] = 'weapontint_lspd', ['label'] = 'LSPD Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_lspd.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'LSPD Weapon Tint'}, - ['weapontint_orange'] = {['name'] = 'weapontint_orange', ['label'] = 'Orange Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_orange.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Orange Weapon Tint'}, - ['weapontint_plat'] = {['name'] = 'weapontint_plat', ['label'] = 'Platinum Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_plat.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Platinum Weapon Tint'}, + -- Weapon Tints + ['weapontint_black'] = {['name'] = 'weapontint_black', ['label'] = 'Default Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_black.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Default/Black Weapon Tint'}, + ['weapontint_green'] = {['name'] = 'weapontint_green', ['label'] = 'Green Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_green.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Green Weapon Tint'}, + ['weapontint_gold'] = {['name'] = 'weapontint_gold', ['label'] = 'Gold Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_gold.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gold Weapon Tint'}, + ['weapontint_pink'] = {['name'] = 'weapontint_pink', ['label'] = 'Pink Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_pink.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pink Weapon Tint'}, + ['weapontint_army'] = {['name'] = 'weapontint_army', ['label'] = 'Army Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_army.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Army Weapon Tint'}, + ['weapontint_lspd'] = {['name'] = 'weapontint_lspd', ['label'] = 'LSPD Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_lspd.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'LSPD Weapon Tint'}, + ['weapontint_orange'] = {['name'] = 'weapontint_orange', ['label'] = 'Orange Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_orange.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Orange Weapon Tint'}, + ['weapontint_plat'] = {['name'] = 'weapontint_plat', ['label'] = 'Platinum Tint', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weapontint_plat.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Platinum Weapon Tint'}, - -- ITEMS + -- ITEMS - -- Ammo ITEMS - ['pistol_ammo'] = {['name'] = 'pistol_ammo', ['label'] = 'Pistol ammo', ['weight'] = 200, ['type'] = 'item', ['image'] = 'pistol_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Pistols'}, - ['rifle_ammo'] = {['name'] = 'rifle_ammo', ['label'] = 'Rifle ammo', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Rifles'}, - ['smg_ammo'] = {['name'] = 'smg_ammo', ['label'] = 'SMG ammo', ['weight'] = 500, ['type'] = 'item', ['image'] = 'smg_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Sub Machine Guns'}, - ['shotgun_ammo'] = {['name'] = 'shotgun_ammo', ['label'] = 'Shotgun ammo', ['weight'] = 500, ['type'] = 'item', ['image'] = 'shotgun_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Shotguns'}, - ['mg_ammo'] = {['name'] = 'mg_ammo', ['label'] = 'MG ammo', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'mg_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Machine Guns'}, - ['snp_ammo'] = {['name'] = 'snp_ammo', ['label'] = 'Sniper ammo', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Sniper Rifles'}, - ['emp_ammo'] = {['name'] = 'emp_ammo', ['label'] = 'EMP Ammo', ['weight'] = 200, ['type'] = 'item', ['image'] = 'emp_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for EMP Launcher'}, + -- Ammo ITEMS + ['pistol_ammo'] = {['name'] = 'pistol_ammo', ['label'] = 'Pistol ammo', ['weight'] = 200, ['type'] = 'item', ['image'] = 'pistol_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Pistols'}, + ['rifle_ammo'] = {['name'] = 'rifle_ammo', ['label'] = 'Rifle ammo', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Rifles'}, + ['smg_ammo'] = {['name'] = 'smg_ammo', ['label'] = 'SMG ammo', ['weight'] = 500, ['type'] = 'item', ['image'] = 'smg_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Sub Machine Guns'}, + ['shotgun_ammo'] = {['name'] = 'shotgun_ammo', ['label'] = 'Shotgun ammo', ['weight'] = 500, ['type'] = 'item', ['image'] = 'shotgun_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Shotguns'}, + ['mg_ammo'] = {['name'] = 'mg_ammo', ['label'] = 'MG ammo', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'mg_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Machine Guns'}, + ['snp_ammo'] = {['name'] = 'snp_ammo', ['label'] = 'Sniper ammo', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'rifle_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for Sniper Rifles'}, + ['emp_ammo'] = {['name'] = 'emp_ammo', ['label'] = 'EMP Ammo', ['weight'] = 200, ['type'] = 'item', ['image'] = 'emp_ammo.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Ammo for EMP Launcher'}, - -- Card ITEMS - ['id_card'] = {['name'] = 'id_card', ['label'] = 'ID Card', ['weight'] = 0, ['type'] = 'item', ['image'] = 'id_card.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A card containing all your information to identify yourself'}, - ['driver_license'] = {['name'] = 'driver_license', ['label'] = 'Drivers License', ['weight'] = 0, ['type'] = 'item', ['image'] = 'driver_license.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Permit to show you can drive a vehicle'}, - ['lawyerpass'] = {['name'] = 'lawyerpass', ['label'] = 'Lawyer Pass', ['weight'] = 0, ['type'] = 'item', ['image'] = 'lawyerpass.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Pass exclusive to lawyers to show they can represent a suspect'}, - ['weaponlicense'] = {['name'] = 'weaponlicense', ['label'] = 'Weapon License', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weapon_license.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Weapon License'}, - ['visa'] = {['name'] = 'visa', ['label'] = 'Visa Card', ['weight'] = 0, ['type'] = 'item', ['image'] = 'visacard.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Visa can be used via ATM'}, - ['mastercard'] = {['name'] = 'mastercard', ['label'] = 'Master Card', ['weight'] = 0, ['type'] = 'item', ['image'] = 'mastercard.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'MasterCard can be used via ATM'}, - ['security_card_01'] = {['name'] = 'security_card_01', ['label'] = 'Security Card A', ['weight'] = 0, ['type'] = 'item', ['image'] = 'security_card_01.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A security card... I wonder what it goes to'}, - ['security_card_02'] = {['name'] = 'security_card_02', ['label'] = 'Security Card B', ['weight'] = 0, ['type'] = 'item', ['image'] = 'security_card_02.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A security card... I wonder what it goes to'}, + -- Card ITEMS + ['id_card'] = {['name'] = 'id_card', ['label'] = 'ID Card', ['weight'] = 0, ['type'] = 'item', ['image'] = 'id_card.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A card containing all your information to identify yourself'}, + ['driver_license'] = {['name'] = 'driver_license', ['label'] = 'Drivers License', ['weight'] = 0, ['type'] = 'item', ['image'] = 'driver_license.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Permit to show you can drive a vehicle'}, + ['lawyerpass'] = {['name'] = 'lawyerpass', ['label'] = 'Lawyer Pass', ['weight'] = 0, ['type'] = 'item', ['image'] = 'lawyerpass.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Pass exclusive to lawyers to show they can represent a suspect'}, + ['weaponlicense'] = {['name'] = 'weaponlicense', ['label'] = 'Weapon License', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weapon_license.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Weapon License'}, + ['visa'] = {['name'] = 'visa', ['label'] = 'Visa Card', ['weight'] = 0, ['type'] = 'item', ['image'] = 'visacard.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Visa can be used via ATM'}, + ['mastercard'] = {['name'] = 'mastercard', ['label'] = 'Master Card', ['weight'] = 0, ['type'] = 'item', ['image'] = 'mastercard.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'MasterCard can be used via ATM'}, + ['security_card_01'] = {['name'] = 'security_card_01', ['label'] = 'Security Card A', ['weight'] = 0, ['type'] = 'item', ['image'] = 'security_card_01.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A security card... I wonder what it goes to'}, + ['security_card_02'] = {['name'] = 'security_card_02', ['label'] = 'Security Card B', ['weight'] = 0, ['type'] = 'item', ['image'] = 'security_card_02.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A security card... I wonder what it goes to'}, - -- Eat ITEMS - ['tosti'] = {['name'] = 'tosti', ['label'] = 'Grilled Cheese Sandwich', ['weight'] = 200, ['type'] = 'item', ['image'] = 'tosti.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Nice to eat'}, - ['twerks_candy'] = {['name'] = 'twerks_candy', ['label'] = 'Twerks', ['weight'] = 100, ['type'] = 'item', ['image'] = 'twerks_candy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some delicious candy :O'}, - ['snikkel_candy'] = {['name'] = 'snikkel_candy', ['label'] = 'Snikkel', ['weight'] = 100, ['type'] = 'item', ['image'] = 'snikkel_candy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some delicious candy :O'}, - ['sandwich'] = {['name'] = 'sandwich', ['label'] = 'Sandwich', ['weight'] = 200, ['type'] = 'item', ['image'] = 'sandwich.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Nice bread for your stomach'}, + -- Eat ITEMS + ['tosti'] = {['name'] = 'tosti', ['label'] = 'Grilled Cheese Sandwich', ['weight'] = 200, ['type'] = 'item', ['image'] = 'tosti.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Nice to eat'}, + ['twerks_candy'] = {['name'] = 'twerks_candy', ['label'] = 'Twerks', ['weight'] = 100, ['type'] = 'item', ['image'] = 'twerks_candy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some delicious candy :O'}, + ['snikkel_candy'] = {['name'] = 'snikkel_candy', ['label'] = 'Snikkel', ['weight'] = 100, ['type'] = 'item', ['image'] = 'snikkel_candy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some delicious candy :O'}, + ['sandwich'] = {['name'] = 'sandwich', ['label'] = 'Sandwich', ['weight'] = 200, ['type'] = 'item', ['image'] = 'sandwich.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Nice bread for your stomach'}, - -- Drink ITEMS - ['water_bottle'] = {['name'] = 'water_bottle', ['label'] = 'Bottle of Water', ['weight'] = 500, ['type'] = 'item', ['image'] = 'water_bottle.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, - ['coffee'] = {['name'] = 'coffee', ['label'] = 'Coffee', ['weight'] = 200, ['type'] = 'item', ['image'] = 'coffee.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pump 4 Caffeine'}, - ['kurkakola'] = {['name'] = 'kurkakola', ['label'] = 'Cola', ['weight'] = 500, ['type'] = 'item', ['image'] = 'cola.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, + -- Drink ITEMS + ['water_bottle'] = {['name'] = 'water_bottle', ['label'] = 'Bottle of Water', ['weight'] = 500, ['type'] = 'item', ['image'] = 'water_bottle.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, + ['coffee'] = {['name'] = 'coffee', ['label'] = 'Coffee', ['weight'] = 200, ['type'] = 'item', ['image'] = 'coffee.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pump 4 Caffeine'}, + ['kurkakola'] = {['name'] = 'kurkakola', ['label'] = 'Cola', ['weight'] = 500, ['type'] = 'item', ['image'] = 'cola.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, - -- Alcohol - ['beer'] = {['name'] = 'beer', ['label'] = 'Beer', ['weight'] = 500, ['type'] = 'item', ['image'] = 'beer.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Nothing like a good cold beer!'}, - ['whiskey'] = {['name'] = 'whiskey', ['label'] = 'Whiskey', ['weight'] = 500, ['type'] = 'item', ['image'] = 'whiskey.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, - ['vodka'] = {['name'] = 'vodka', ['label'] = 'Vodka', ['weight'] = 500, ['type'] = 'item', ['image'] = 'vodka.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, - ['grape'] = {['name'] = 'grape', ['label'] = 'Grape', ['weight'] = 100, ['type'] = 'item', ['image'] = 'grape.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Mmmmh yummie, grapes'}, - ['wine'] = {['name'] = 'wine', ['label'] = 'Wine', ['weight'] = 300, ['type'] = 'item', ['image'] = 'wine.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Some good wine to drink on a fine evening'}, - ['grapejuice'] = {['name'] = 'grapejuice', ['label'] = 'Grape Juice', ['weight'] = 200, ['type'] = 'item', ['image'] = 'grapejuice.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Grape juice is said to be healthy'}, + -- Alcohol + ['beer'] = {['name'] = 'beer', ['label'] = 'Beer', ['weight'] = 500, ['type'] = 'item', ['image'] = 'beer.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Nothing like a good cold beer!'}, + ['whiskey'] = {['name'] = 'whiskey', ['label'] = 'Whiskey', ['weight'] = 500, ['type'] = 'item', ['image'] = 'whiskey.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, + ['vodka'] = {['name'] = 'vodka', ['label'] = 'Vodka', ['weight'] = 500, ['type'] = 'item', ['image'] = 'vodka.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For all the thirsty out there'}, + ['grape'] = {['name'] = 'grape', ['label'] = 'Grape', ['weight'] = 100, ['type'] = 'item', ['image'] = 'grape.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Mmmmh yummie, grapes'}, + ['wine'] = {['name'] = 'wine', ['label'] = 'Wine', ['weight'] = 300, ['type'] = 'item', ['image'] = 'wine.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Some good wine to drink on a fine evening'}, + ['grapejuice'] = {['name'] = 'grapejuice', ['label'] = 'Grape Juice', ['weight'] = 200, ['type'] = 'item', ['image'] = 'grapejuice.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Grape juice is said to be healthy'}, - -- Drugs - ['joint'] = {['name'] = 'joint', ['label'] = 'Joint', ['weight'] = 0, ['type'] = 'item', ['image'] = 'joint.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sidney would be very proud at you'}, - ['cokebaggy'] = {['name'] = 'cokebaggy', ['label'] = 'Bag of Coke', ['weight'] = 0, ['type'] = 'item', ['image'] = 'cocaine_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'To get happy real quick'}, - ['crack_baggy'] = {['name'] = 'crack_baggy', ['label'] = 'Bag of Crack', ['weight'] = 0, ['type'] = 'item', ['image'] = 'crack_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'To get happy faster'}, - ['xtcbaggy'] = {['name'] = 'xtcbaggy', ['label'] = 'Bag of XTC', ['weight'] = 0, ['type'] = 'item', ['image'] = 'xtc_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pop those pills baby'}, - ['weed_brick'] = {['name'] = 'weed_brick', ['label'] = 'Weed Brick', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weed_brick.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '1KG Weed Brick to sell to large customers.'}, - ['coke_brick'] = {['name'] = 'coke_brick', ['label'] = 'Coke Brick', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'coke_brick.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy package of cocaine, mostly used for deals and takes a lot of space'}, - ['coke_small_brick'] = {['name'] = 'coke_small_brick', ['label'] = 'Coke Package', ['weight'] = 350, ['type'] = 'item', ['image'] = 'coke_small_brick.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Small package of cocaine, mostly used for deals and takes a lot of space'}, - ['oxy'] = {['name'] = 'oxy', ['label'] = 'Prescription Oxy', ['weight'] = 0, ['type'] = 'item', ['image'] = 'oxy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'The Label Has Been Ripped Off'}, - ['meth'] = {['name'] = 'meth', ['label'] = 'Meth', ['weight'] = 100, ['type'] = 'item', ['image'] = 'meth_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A baggie of Meth'}, - ['rolling_paper'] = {['name'] = 'rolling_paper', ['label'] = 'Rolling Paper', ['weight'] = 0, ['type'] = 'item', ['image'] = 'rolling_paper.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = {accept = {'weed_white-widow', 'weed_skunk', 'weed_purple-haze', 'weed_og-kush', 'weed_amnesia', 'weed_ak47'}, reward = 'joint', anim = {['dict'] = 'anim@amb@business@weed@weed_inspecting_high_dry@', ['lib'] = 'weed_inspecting_high_base_inspector', ['text'] = 'Rolling joint', ['timeOut'] = 5000,}}, ['description'] = 'Paper made specifically for encasing and smoking tobacco or cannabis.'}, + -- Drugs + ['joint'] = {['name'] = 'joint', ['label'] = 'Joint', ['weight'] = 0, ['type'] = 'item', ['image'] = 'joint.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sidney would be very proud at you'}, + ['cokebaggy'] = {['name'] = 'cokebaggy', ['label'] = 'Bag of Coke', ['weight'] = 0, ['type'] = 'item', ['image'] = 'cocaine_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'To get happy real quick'}, + ['crack_baggy'] = {['name'] = 'crack_baggy', ['label'] = 'Bag of Crack', ['weight'] = 0, ['type'] = 'item', ['image'] = 'crack_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'To get happy faster'}, + ['xtcbaggy'] = {['name'] = 'xtcbaggy', ['label'] = 'Bag of XTC', ['weight'] = 0, ['type'] = 'item', ['image'] = 'xtc_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pop those pills baby'}, + ['coke_brick'] = {['name'] = 'coke_brick', ['label'] = 'Coke Brick', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'coke_brick.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Heavy package of cocaine, mostly used for deals and takes a lot of space'}, + ['weed_brick'] = {['name'] = 'weed_brick', ['label'] = 'Weed Brick', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'weed_brick.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '1KG Weed Brick to sell to large customers.'}, + ['coke_small_brick'] = {['name'] = 'coke_small_brick', ['label'] = 'Coke Package', ['weight'] = 350, ['type'] = 'item', ['image'] = 'coke_small_brick.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Small package of cocaine, mostly used for deals and takes a lot of space'}, + ['oxy'] = {['name'] = 'oxy', ['label'] = 'Prescription Oxy', ['weight'] = 0, ['type'] = 'item', ['image'] = 'oxy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'The Label Has Been Ripped Off'}, + ['meth'] = {['name'] = 'meth', ['label'] = 'Meth', ['weight'] = 100, ['type'] = 'item', ['image'] = 'meth_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A baggie of Meth'}, + ['rolling_paper'] = {['name'] = 'rolling_paper', ['label'] = 'Rolling Paper', ['weight'] = 0, ['type'] = 'item', ['image'] = 'rolling_paper.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = {accept = {'weed_white-widow', 'weed_skunk', 'weed_purple-haze', 'weed_og-kush', 'weed_amnesia', 'weed_ak47'}, reward = 'joint', anim = {['dict'] = 'anim@amb@business@weed@weed_inspecting_high_dry@', ['lib'] = 'weed_inspecting_high_base_inspector', ['text'] = 'Rolling joint', ['timeOut'] = 5000,}}, ['description'] = 'Paper made specifically for encasing and smoking tobacco or cannabis.'}, - -- Seed And Weed - ['weed_white-widow'] = {['name'] = 'weed_white-widow', ['label'] = 'White Widow 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g White Widow'}, - ['weed_skunk'] = {['name'] = 'weed_skunk', ['label'] = 'Skunk 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Skunk'}, - ['weed_purple-haze'] = {['name'] = 'weed_purple-haze', ['label'] = 'Purple Haze 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Purple Haze'}, - ['weed_og-kush'] = {['name'] = 'weed_og-kush', ['label'] = 'OGKush 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g OG Kush'}, - ['weed_amnesia'] = {['name'] = 'weed_amnesia', ['label'] = 'Amnesia 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Amnesia'}, - ['weed_ak47'] = {['name'] = 'weed_ak47', ['label'] = 'AK47 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g AK47'}, - ['weed_white-widow_seed'] = {['name'] = 'weed_white-widow_seed', ['label'] = 'White Widow Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed seed of White Widow'}, - ['weed_skunk_seed'] = {['name'] = 'weed_skunk_seed', ['label'] = 'Skunk Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Skunk'}, - ['weed_purple-haze_seed'] = {['name'] = 'weed_purple-haze_seed', ['label'] = 'Purple Haze Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Purple Haze'}, - ['weed_og-kush_seed'] = {['name'] = 'weed_og-kush_seed', ['label'] = 'OGKush Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of OG Kush'}, - ['weed_amnesia_seed'] = {['name'] = 'weed_amnesia_seed', ['label'] = 'Amnesia Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Amnesia'}, - ['weed_ak47_seed'] = {['name'] = 'weed_ak47_seed', ['label'] = 'AK47 Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of AK47'}, - ['empty_weed_bag'] = {['name'] = 'empty_weed_bag', ['label'] = 'Empty Weed Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_baggy_empty.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A small empty bag'}, - ['weed_nutrition'] = {['name'] = 'weed_nutrition', ['label'] = 'Plant Fertilizer', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'weed_nutrition.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Plant nutrition'}, + -- Seed And Weed + ['weed_white-widow'] = {['name'] = 'weed_white-widow', ['label'] = 'White Widow 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g White Widow'}, + ['weed_skunk'] = {['name'] = 'weed_skunk', ['label'] = 'Skunk 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Skunk'}, + ['weed_purple-haze'] = {['name'] = 'weed_purple-haze', ['label'] = 'Purple Haze 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Purple Haze'}, + ['weed_og-kush'] = {['name'] = 'weed_og-kush', ['label'] = 'OGKush 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g OG Kush'}, + ['weed_amnesia'] = {['name'] = 'weed_amnesia', ['label'] = 'Amnesia 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g Amnesia'}, + ['weed_ak47'] = {['name'] = 'weed_ak47', ['label'] = 'AK47 2g', ['weight'] = 200, ['type'] = 'item', ['image'] = 'weed_baggy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed bag with 2g AK47'}, + ['weed_white-widow_seed'] = {['name'] = 'weed_white-widow_seed', ['label'] = 'White Widow Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A weed seed of White Widow'}, + ['weed_skunk_seed'] = {['name'] = 'weed_skunk_seed', ['label'] = 'Skunk Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Skunk'}, + ['weed_purple-haze_seed'] = {['name'] = 'weed_purple-haze_seed', ['label'] = 'Purple Haze Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Purple Haze'}, + ['weed_og-kush_seed'] = {['name'] = 'weed_og-kush_seed', ['label'] = 'OGKush Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of OG Kush'}, + ['weed_amnesia_seed'] = {['name'] = 'weed_amnesia_seed', ['label'] = 'Amnesia Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of Amnesia'}, + ['weed_ak47_seed'] = {['name'] = 'weed_ak47_seed', ['label'] = 'AK47 Seed', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_seed.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A weed seed of AK47'}, + ['empty_weed_bag'] = {['name'] = 'empty_weed_bag', ['label'] = 'Empty Weed Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'weed_baggy_empty.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A small empty bag'}, + ['weed_nutrition'] = {['name'] = 'weed_nutrition', ['label'] = 'Plant Fertilizer', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'weed_nutrition.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Plant nutrition'}, - -- Material - ['plastic'] = {['name'] = 'plastic', ['label'] = 'Plastic', ['weight'] = 100, ['type'] = 'item', ['image'] = 'plastic.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'RECYCLE! - Greta Thunberg 2019'}, - ['metalscrap'] = {['name'] = 'metalscrap', ['label'] = 'Metal Scrap', ['weight'] = 100, ['type'] = 'item', ['image'] = 'metalscrap.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'You can probably make something nice out of this'}, - ['copper'] = {['name'] = 'copper', ['label'] = 'Copper', ['weight'] = 100, ['type'] = 'item', ['image'] = 'copper.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Nice piece of metal that you can probably use for something'}, - ['aluminum'] = {['name'] = 'aluminum', ['label'] = 'Aluminium', ['weight'] = 100, ['type'] = 'item', ['image'] = 'aluminum.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Nice piece of metal that you can probably use for something'}, - ['aluminumoxide'] = {['name'] = 'aluminumoxide', ['label'] = 'Aluminium Powder', ['weight'] = 100, ['type'] = 'item', ['image'] = 'aluminumoxide.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Some powder to mix with'}, - ['iron'] = {['name'] = 'iron', ['label'] = 'Iron', ['weight'] = 100, ['type'] = 'item', ['image'] = 'iron.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Handy piece of metal that you can probably use for something'}, - ['ironoxide'] = {['name'] = 'ironoxide', ['label'] = 'Iron Powder', ['weight'] = 100, ['type'] = 'item', ['image'] = 'ironoxide.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = {accept = {'aluminumoxide'}, reward = 'thermite', anim = {['dict'] = 'anim@amb@business@weed@weed_inspecting_high_dry@', ['lib'] = 'weed_inspecting_high_base_inspector', ['text'] = 'Mixing powder..', ['timeOut'] = 10000}}, ['description'] = 'Some powder to mix with.'}, - ['steel'] = {['name'] = 'steel', ['label'] = 'Steel', ['weight'] = 100, ['type'] = 'item', ['image'] = 'steel.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Nice piece of metal that you can probably use for something'}, - ['rubber'] = {['name'] = 'rubber', ['label'] = 'Rubber', ['weight'] = 100, ['type'] = 'item', ['image'] = 'rubber.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Rubber, I believe you can make your own rubber ducky with it :D'}, - ['glass'] = {['name'] = 'glass', ['label'] = 'Glass', ['weight'] = 100, ['type'] = 'item', ['image'] = 'glass.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'It is very fragile, watch out'}, + -- Material + ['plastic'] = {['name'] = 'plastic', ['label'] = 'Plastic', ['weight'] = 100, ['type'] = 'item', ['image'] = 'plastic.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'RECYCLE! - Greta Thunberg 2019'}, + ['metalscrap'] = {['name'] = 'metalscrap', ['label'] = 'Metal Scrap', ['weight'] = 100, ['type'] = 'item', ['image'] = 'metalscrap.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'You can probably make something nice out of this'}, + ['copper'] = {['name'] = 'copper', ['label'] = 'Copper', ['weight'] = 100, ['type'] = 'item', ['image'] = 'copper.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Nice piece of metal that you can probably use for something'}, + ['aluminum'] = {['name'] = 'aluminum', ['label'] = 'Aluminium', ['weight'] = 100, ['type'] = 'item', ['image'] = 'aluminum.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Nice piece of metal that you can probably use for something'}, + ['aluminumoxide'] = {['name'] = 'aluminumoxide', ['label'] = 'Aluminium Powder', ['weight'] = 100, ['type'] = 'item', ['image'] = 'aluminumoxide.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Some powder to mix with'}, + ['iron'] = {['name'] = 'iron', ['label'] = 'Iron', ['weight'] = 100, ['type'] = 'item', ['image'] = 'iron.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Handy piece of metal that you can probably use for something'}, + ['ironoxide'] = {['name'] = 'ironoxide', ['label'] = 'Iron Powder', ['weight'] = 100, ['type'] = 'item', ['image'] = 'ironoxide.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = {accept = {'aluminumoxide'}, reward = 'thermite', anim = {['dict'] = 'anim@amb@business@weed@weed_inspecting_high_dry@', ['lib'] = 'weed_inspecting_high_base_inspector', ['text'] = 'Mixing powder..', ['timeOut'] = 10000}}, ['description'] = 'Some powder to mix with.'}, + ['steel'] = {['name'] = 'steel', ['label'] = 'Steel', ['weight'] = 100, ['type'] = 'item', ['image'] = 'steel.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Nice piece of metal that you can probably use for something'}, + ['rubber'] = {['name'] = 'rubber', ['label'] = 'Rubber', ['weight'] = 100, ['type'] = 'item', ['image'] = 'rubber.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Rubber, I believe you can make your own rubber ducky with it :D'}, + ['glass'] = {['name'] = 'glass', ['label'] = 'Glass', ['weight'] = 100, ['type'] = 'item', ['image'] = 'glass.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'It is very fragile, watch out'}, - -- Tools - ['lockpick'] = {['name'] = 'lockpick', ['label'] = 'Lockpick', ['weight'] = 300, ['type'] = 'item', ['image'] = 'lockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = {accept = {'screwdriverset'}, reward = 'advancedlockpick', anim = {['dict'] = 'anim@amb@business@weed@weed_inspecting_high_dry@', ['lib'] = 'weed_inspecting_high_base_inspector', ['text'] = 'Crafting lockpick', ['timeOut'] = 7500,}}, ['description'] = 'Very useful if you lose your keys a lot.. or if you want to use it for something else...'}, - ['advancedlockpick'] = {['name'] = 'advancedlockpick', ['label'] = 'Advanced Lockpick', ['weight'] = 500, ['type'] = 'item', ['image'] = 'advancedlockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'If you lose your keys a lot this is very useful... Also useful to open your beers'}, - ['electronickit'] = {['name'] = 'electronickit', ['label'] = 'Electronic Kit', ['weight'] = 100, ['type'] = 'item', ['image'] = 'electronickit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = {accept = {'gatecrack'}, reward = 'trojan_usb', anim = nil}, ['description'] = 'If you\'ve always wanted to build a robot you can maybe start here. Maybe you\'ll be the new Elon Musk?'}, - ['gatecrack'] = {['name'] = 'gatecrack', ['label'] = 'Gatecrack', ['weight'] = 0, ['type'] = 'item', ['image'] = 'usb_device.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Handy software to tear down some fences'}, - ['thermite'] = {['name'] = 'thermite', ['label'] = 'Thermite', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'thermite.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sometimes you\'d wish for everything to burn'}, - ['trojan_usb'] = {['name'] = 'trojan_usb', ['label'] = 'Trojan USB', ['weight'] = 0, ['type'] = 'item', ['image'] = 'usb_device.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Handy software to shut down some systems'}, - ['screwdriverset'] = {['name'] = 'screwdriverset', ['label'] = 'Toolkit', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'screwdriverset.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Very useful to screw... screws...'}, - ['drill'] = {['name'] = 'drill', ['label'] = 'Drill', ['weight'] = 20000, ['type'] = 'item', ['image'] = 'drill.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'The real deal...'}, + -- Tools + ['lockpick'] = {['name'] = 'lockpick', ['label'] = 'Lockpick', ['weight'] = 300, ['type'] = 'item', ['image'] = 'lockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = {accept = {'screwdriverset'}, reward = 'advancedlockpick', anim = {['dict'] = 'anim@amb@business@weed@weed_inspecting_high_dry@', ['lib'] = 'weed_inspecting_high_base_inspector', ['text'] = 'Crafting lockpick', ['timeOut'] = 7500,}}, ['description'] = 'Very useful if you lose your keys a lot.. or if you want to use it for something else...'}, + ['advancedlockpick'] = {['name'] = 'advancedlockpick', ['label'] = 'Advanced Lockpick', ['weight'] = 500, ['type'] = 'item', ['image'] = 'advancedlockpick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'If you lose your keys a lot this is very useful... Also useful to open your beers'}, + ['electronickit'] = {['name'] = 'electronickit', ['label'] = 'Electronic Kit', ['weight'] = 100, ['type'] = 'item', ['image'] = 'electronickit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = {accept = {'gatecrack'}, reward = 'trojan_usb', anim = nil}, ['description'] = 'If you\'ve always wanted to build a robot you can maybe start here. Maybe you\'ll be the new Elon Musk?'}, + ['gatecrack'] = {['name'] = 'gatecrack', ['label'] = 'Gatecrack', ['weight'] = 0, ['type'] = 'item', ['image'] = 'usb_device.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Handy software to tear down some fences'}, + ['thermite'] = {['name'] = 'thermite', ['label'] = 'Thermite', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'thermite.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sometimes you\'d wish for everything to burn'}, + ['trojan_usb'] = {['name'] = 'trojan_usb', ['label'] = 'Trojan USB', ['weight'] = 0, ['type'] = 'item', ['image'] = 'usb_device.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Handy software to shut down some systems'}, + ['screwdriverset'] = {['name'] = 'screwdriverset', ['label'] = 'Toolkit', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'screwdriverset.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Very useful to screw... screws...'}, + ['drill'] = {['name'] = 'drill', ['label'] = 'Drill', ['weight'] = 20000, ['type'] = 'item', ['image'] = 'drill.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'The real deal...'}, - -- Vehicle Tools - ['nitrous'] = {['name'] = 'nitrous', ['label'] = 'Nitrous', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'nitrous.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Speed up, gas pedal! :D'}, - ['repairkit'] = {['name'] = 'repairkit', ['label'] = 'Repairkit', ['weight'] = 2500, ['type'] = 'item', ['image'] = 'repairkit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice toolbox with stuff to repair your vehicle'}, - ['advancedrepairkit'] = {['name'] = 'advancedrepairkit', ['label'] = 'Advanced Repairkit', ['weight'] = 4000, ['type'] = 'item', ['image'] = 'advancedkit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice toolbox with stuff to repair your vehicle'}, - ['cleaningkit'] = {['name'] = 'cleaningkit', ['label'] = 'Cleaning Kit', ['weight'] = 250, ['type'] = 'item', ['image'] = 'cleaningkit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A microfiber cloth with some soap will let your car sparkle again!'}, - ['tunerlaptop'] = {['name'] = 'tunerlaptop', ['label'] = 'Tunerchip', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'tunerchip.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'With this tunerchip you can get your car on steroids... If you know what you\'re doing'}, - ['harness'] = {['name'] = 'harness', ['label'] = 'Race Harness', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'harness.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Racing Harness so no matter what you stay in the car'}, - ['jerry_can'] = {['name'] = 'jerry_can', ['label'] = 'Jerrycan 20L', ['weight'] = 20000, ['type'] = 'item', ['image'] = 'jerry_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A can full of Fuel'}, + -- Vehicle Tools + ['nitrous'] = {['name'] = 'nitrous', ['label'] = 'Nitrous', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'nitrous.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Speed up, gas pedal! :D'}, + ['repairkit'] = {['name'] = 'repairkit', ['label'] = 'Repairkit', ['weight'] = 2500, ['type'] = 'item', ['image'] = 'repairkit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice toolbox with stuff to repair your vehicle'}, + ['advancedrepairkit'] = {['name'] = 'advancedrepairkit', ['label'] = 'Advanced Repairkit', ['weight'] = 4000, ['type'] = 'item', ['image'] = 'advancedkit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice toolbox with stuff to repair your vehicle'}, + ['cleaningkit'] = {['name'] = 'cleaningkit', ['label'] = 'Cleaning Kit', ['weight'] = 250, ['type'] = 'item', ['image'] = 'cleaningkit.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A microfiber cloth with some soap will let your car sparkle again!'}, + ['tunerlaptop'] = {['name'] = 'tunerlaptop', ['label'] = 'Tunerchip', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'tunerchip.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'With this tunerchip you can get your car on steroids... If you know what you\'re doing'}, + ['harness'] = {['name'] = 'harness', ['label'] = 'Race Harness', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'harness.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Racing Harness so no matter what you stay in the car'}, + ['jerry_can'] = {['name'] = 'jerry_can', ['label'] = 'Jerrycan 20L', ['weight'] = 20000, ['type'] = 'item', ['image'] = 'jerry_can.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A can full of Fuel'}, - -- Medication - ['firstaid'] = {['name'] = 'firstaid', ['label'] = 'First Aid', ['weight'] = 2500, ['type'] = 'item', ['image'] = 'firstaid.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'You can use this First Aid kit to get people back on their feet'}, - ['bandage'] = {['name'] = 'bandage', ['label'] = 'Bandage', ['weight'] = 0, ['type'] = 'item', ['image'] = 'bandage.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A bandage works every time'}, - ['ifaks'] = {['name'] = 'ifaks', ['label'] = 'ifaks', ['weight'] = 200, ['type'] = 'item', ['image'] = 'ifaks.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'ifaks for healing and a complete stress remover.'}, - ['painkillers'] = {['name'] = 'painkillers', ['label'] = 'Painkillers', ['weight'] = 0, ['type'] = 'item', ['image'] = 'painkillers.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For pain you can\'t stand anymore, take this pill that\'d make you feel great again'}, - ['walkstick'] = {['name'] = 'walkstick', ['label'] = 'Walking Stick', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'walkstick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Walking stick for ya\'ll grannies out there.. HAHA'}, + -- Medication + ['firstaid'] = {['name'] = 'firstaid', ['label'] = 'First Aid', ['weight'] = 2500, ['type'] = 'item', ['image'] = 'firstaid.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'You can use this First Aid kit to get people back on their feet'}, + ['bandage'] = {['name'] = 'bandage', ['label'] = 'Bandage', ['weight'] = 0, ['type'] = 'item', ['image'] = 'bandage.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A bandage works every time'}, + ['ifaks'] = {['name'] = 'ifaks', ['label'] = 'ifaks', ['weight'] = 200, ['type'] = 'item', ['image'] = 'ifaks.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'ifaks for healing and a complete stress remover.'}, + ['painkillers'] = {['name'] = 'painkillers', ['label'] = 'Painkillers', ['weight'] = 0, ['type'] = 'item', ['image'] = 'painkillers.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'For pain you can\'t stand anymore, take this pill that\'d make you feel great again'}, + ['walkstick'] = {['name'] = 'walkstick', ['label'] = 'Walking Stick', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'walkstick.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Walking stick for ya\'ll grannies out there.. HAHA'}, - -- Communication - ['phone'] = {['name'] = 'phone', ['label'] = 'Phone', ['weight'] = 700, ['type'] = 'item', ['image'] = 'phone.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Neat phone ya got there'}, - ['radio'] = {['name'] = 'radio', ['label'] = 'Radio', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'radio.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'You can communicate with this through a signal'}, - ['iphone'] = {['name'] = 'iphone', ['label'] = 'iPhone', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'iphone.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Very expensive phone'}, - ['samsungphone'] = {['name'] = 'samsungphone', ['label'] = 'Samsung S10', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'samsungphone.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Very expensive phone'}, - ['laptop'] = {['name'] = 'laptop', ['label'] = 'Laptop', ['weight'] = 4000, ['type'] = 'item', ['image'] = 'laptop.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Expensive laptop'}, - ['tablet'] = {['name'] = 'tablet', ['label'] = 'Tablet', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'tablet.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Expensive tablet'}, - ['fitbit'] = {['name'] = 'fitbit', ['label'] = 'Fitbit', ['weight'] = 500, ['type'] = 'item', ['image'] = 'fitbit.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'I like fitbit'}, - ['radioscanner'] = {['name'] = 'radioscanner', ['label'] = 'Radio Scanner', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'radioscanner.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'With this you can get some police alerts. Not 100% effective however'}, - ['pinger'] = {['name'] = 'pinger', ['label'] = 'Pinger', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pinger.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'With a pinger and your phone you can send out your location'}, - ['cryptostick'] = {['name'] = 'cryptostick', ['label'] = 'Crypto Stick', ['weight'] = 200, ['type'] = 'item', ['image'] = 'cryptostick.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Why would someone ever buy money that doesn\'t exist.. How many would it contain..?'}, + -- Communication + ['phone'] = {['name'] = 'phone', ['label'] = 'Phone', ['weight'] = 700, ['type'] = 'item', ['image'] = 'phone.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Neat phone ya got there'}, + ['radio'] = {['name'] = 'radio', ['label'] = 'Radio', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'radio.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'You can communicate with this through a signal'}, + ['iphone'] = {['name'] = 'iphone', ['label'] = 'iPhone', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'iphone.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Very expensive phone'}, + ['samsungphone'] = {['name'] = 'samsungphone', ['label'] = 'Samsung S10', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'samsungphone.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Very expensive phone'}, + ['laptop'] = {['name'] = 'laptop', ['label'] = 'Laptop', ['weight'] = 4000, ['type'] = 'item', ['image'] = 'laptop.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Expensive laptop'}, + ['tablet'] = {['name'] = 'tablet', ['label'] = 'Tablet', ['weight'] = 2000, ['type'] = 'item', ['image'] = 'tablet.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Expensive tablet'}, + ['fitbit'] = {['name'] = 'fitbit', ['label'] = 'Fitbit', ['weight'] = 500, ['type'] = 'item', ['image'] = 'fitbit.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'I like fitbit'}, + ['radioscanner'] = {['name'] = 'radioscanner', ['label'] = 'Radio Scanner', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'radioscanner.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'With this you can get some police alerts. Not 100% effective however'}, + ['pinger'] = {['name'] = 'pinger', ['label'] = 'Pinger', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'pinger.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'With a pinger and your phone you can send out your location'}, + ['cryptostick'] = {['name'] = 'cryptostick', ['label'] = 'Crypto Stick', ['weight'] = 200, ['type'] = 'item', ['image'] = 'cryptostick.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Why would someone ever buy money that doesn\'t exist.. How many would it contain..?'}, - -- Theft and Jewelry - ['rolex'] = {['name'] = 'rolex', ['label'] = 'Golden Watch', ['weight'] = 1500, ['type'] = 'item', ['image'] = 'rolex.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A golden watch seems like the jackpot to me!'}, - ['diamond_ring'] = {['name'] = 'diamond_ring', ['label'] = 'Diamond Ring', ['weight'] = 1500, ['type'] = 'item', ['image'] = 'diamond_ring.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A diamond ring seems like the jackpot to me!'}, - ['diamond'] = {['name'] = 'diamond', ['label'] = 'Diamond', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'diamond.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A diamond seems like the jackpot to me!'}, - ['goldchain'] = {['name'] = 'goldchain', ['label'] = 'Golden Chain', ['weight'] = 1500, ['type'] = 'item', ['image'] = 'goldchain.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A golden chain seems like the jackpot to me!'}, - ['10kgoldchain'] = {['name'] = '10kgoldchain', ['label'] = '10k Gold Chain', ['weight'] = 2000, ['type'] = 'item', ['image'] = '10kgoldchain.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '10 carat golden chain'}, - ['goldbar'] = {['name'] = 'goldbar', ['label'] = 'Gold Bar', ['weight'] = 7000, ['type'] = 'item', ['image'] = 'goldbar.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Looks pretty expensive to me'}, + -- Theft and Jewelry + ['rolex'] = {['name'] = 'rolex', ['label'] = 'Golden Watch', ['weight'] = 1500, ['type'] = 'item', ['image'] = 'rolex.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A golden watch seems like the jackpot to me!'}, + ['diamond_ring'] = {['name'] = 'diamond_ring', ['label'] = 'Diamond Ring', ['weight'] = 1500, ['type'] = 'item', ['image'] = 'diamond_ring.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A diamond ring seems like the jackpot to me!'}, + ['diamond'] = {['name'] = 'diamond', ['label'] = 'Diamond', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'diamond.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A diamond seems like the jackpot to me!'}, + ['goldchain'] = {['name'] = 'goldchain', ['label'] = 'Golden Chain', ['weight'] = 1500, ['type'] = 'item', ['image'] = 'goldchain.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A golden chain seems like the jackpot to me!'}, + ['10kgoldchain'] = {['name'] = '10kgoldchain', ['label'] = '10k Gold Chain', ['weight'] = 2000, ['type'] = 'item', ['image'] = '10kgoldchain.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = '10 carat golden chain'}, + ['goldbar'] = {['name'] = 'goldbar', ['label'] = 'Gold Bar', ['weight'] = 7000, ['type'] = 'item', ['image'] = 'goldbar.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Looks pretty expensive to me'}, - -- Cops Tools - ['armor'] = {['name'] = 'armor', ['label'] = 'Armor', ['weight'] = 5000, ['type'] = 'item', ['image'] = 'armor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some protection won\'t hurt... right?'}, - ['heavyarmor'] = {['name'] = 'heavyarmor', ['label'] = 'Heavy Armor', ['weight'] = 5000, ['type'] = 'item', ['image'] = 'armor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some protection won\'t hurt... right?'}, - ['handcuffs'] = {['name'] = 'handcuffs', ['label'] = 'Handcuffs', ['weight'] = 100, ['type'] = 'item', ['image'] = 'handcuffs.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Comes in handy when people misbehave. Maybe it can be used for something else?'}, - ['police_stormram'] = {['name'] = 'police_stormram', ['label'] = 'Stormram', ['weight'] = 18000, ['type'] = 'item', ['image'] = 'police_stormram.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice tool to break into doors'}, - ['empty_evidence_bag'] = {['name'] = 'empty_evidence_bag', ['label'] = 'Empty Evidence Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'evidence.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Used a lot to keep DNA from blood, bullet shells and more'}, - ['filled_evidence_bag'] = {['name'] = 'filled_evidence_bag', ['label'] = 'Evidence Bag', ['weight'] = 200, ['type'] = 'item', ['image'] = 'evidence.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A filled evidence bag to see who committed the crime >:('}, + -- Cops Tools + ['armor'] = {['name'] = 'armor', ['label'] = 'Armor', ['weight'] = 5000, ['type'] = 'item', ['image'] = 'armor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some protection won\'t hurt... right?'}, + ['heavyarmor'] = {['name'] = 'heavyarmor', ['label'] = 'Heavy Armor', ['weight'] = 5000, ['type'] = 'item', ['image'] = 'armor.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Some protection won\'t hurt... right?'}, + ['handcuffs'] = {['name'] = 'handcuffs', ['label'] = 'Handcuffs', ['weight'] = 100, ['type'] = 'item', ['image'] = 'handcuffs.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Comes in handy when people misbehave. Maybe it can be used for something else?'}, + ['police_stormram'] = {['name'] = 'police_stormram', ['label'] = 'Stormram', ['weight'] = 18000, ['type'] = 'item', ['image'] = 'police_stormram.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice tool to break into doors'}, + ['empty_evidence_bag'] = {['name'] = 'empty_evidence_bag', ['label'] = 'Empty Evidence Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'evidence.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Used a lot to keep DNA from blood, bullet shells and more'}, + ['filled_evidence_bag'] = {['name'] = 'filled_evidence_bag', ['label'] = 'Evidence Bag', ['weight'] = 200, ['type'] = 'item', ['image'] = 'evidence.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'A filled evidence bag to see who committed the crime >:('}, - -- Firework Tools - ['firework1'] = {['name'] = 'firework1', ['label'] = '2Brothers', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework1.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, - ['firework2'] = {['name'] = 'firework2', ['label'] = 'Poppelers', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework2.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, - ['firework3'] = {['name'] = 'firework3', ['label'] = 'WipeOut', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework3.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, - ['firework4'] = {['name'] = 'firework4', ['label'] = 'Weeping Willow', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework4.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, + -- Firework Tools + ['firework1'] = {['name'] = 'firework1', ['label'] = '2Brothers', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework1.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, + ['firework2'] = {['name'] = 'firework2', ['label'] = 'Poppelers', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework2.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, + ['firework3'] = {['name'] = 'firework3', ['label'] = 'WipeOut', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework3.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, + ['firework4'] = {['name'] = 'firework4', ['label'] = 'Weeping Willow', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'firework4.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Fireworks'}, - -- Sea Tools - ['dendrogyra_coral'] = {['name'] = 'dendrogyra_coral', ['label'] = 'Dendrogyra', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'dendrogyra_coral.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Its also known as pillar coral'}, - ['antipatharia_coral'] = {['name'] = 'antipatharia_coral', ['label'] = 'Antipatharia', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'antipatharia_coral.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Its also known as black corals or thorn corals'}, - ['diving_gear'] = {['name'] = 'diving_gear', ['label'] = 'Diving Gear', ['weight'] = 30000, ['type'] = 'item', ['image'] = 'diving_gear.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'An oxygen tank and a rebreather'}, - ['diving_fill'] = {['name'] = 'diving_fill', ['label'] = 'Diving Tube', ['weight'] = 3000, ['type'] = 'item', ['image'] = 'diving_tube.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['discription'] = 'An oxygen tube and a rebreather'}, - - -- Other Tools - ['casinochips'] = {['name'] = 'casinochips', ['label'] = 'Casino Chips', ['weight'] = 0, ['type'] = 'item', ['image'] = 'casinochips.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Chips For Casino Gambling'}, - ['stickynote'] = {['name'] = 'stickynote', ['label'] = 'Sticky note', ['weight'] = 0, ['type'] = 'item', ['image'] = 'stickynote.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Sometimes handy to remember something :)'}, - ['moneybag'] = {['name'] = 'moneybag', ['label'] = 'Money Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'moneybag.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A bag with cash'}, - ['parachute'] = {['name'] = 'parachute', ['label'] = 'Parachute', ['weight'] = 30000, ['type'] = 'item', ['image'] = 'parachute.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'The sky is the limit! Woohoo!'}, - ['binoculars'] = {['name'] = 'binoculars', ['label'] = 'Binoculars', ['weight'] = 600, ['type'] = 'item', ['image'] = 'binoculars.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sneaky Breaky...'}, - ['lighter'] = {['name'] = 'lighter', ['label'] = 'Lighter', ['weight'] = 0, ['type'] = 'item', ['image'] = 'lighter.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'On new years eve a nice fire to stand next to'}, - ['certificate'] = {['name'] = 'certificate', ['label'] = 'Certificate', ['weight'] = 0, ['type'] = 'item', ['image'] = 'certificate.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Certificate that proves you own certain stuff'}, - ['markedbills'] = {['name'] = 'markedbills', ['label'] = 'Marked Money', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'markedbills.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Money?'}, - ['labkey'] = {['name'] = 'labkey', ['label'] = 'Key', ['weight'] = 500, ['type'] = 'item', ['image'] = 'labkey.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Key for a lock...?'}, - ['printerdocument'] = {['name'] = 'printerdocument', ['label'] = 'Document', ['weight'] = 500, ['type'] = 'item', ['image'] = 'printerdocument.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice document'}, - ['newscam'] = {['name'] = 'newscam', ['label'] = 'News Cam', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newscam.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Camera for the news'}, - ['newsmic'] = {['name'] = 'newsmic', ['label'] = 'News Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Microphone for the news'}, - ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'News Boom Mic', ['weight'] = 500, ['type'] = 'item', ['image'] = 'newsbmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Boom Mic for the news'}, + -- Sea Tools + ['dendrogyra_coral'] = {['name'] = 'dendrogyra_coral', ['label'] = 'Dendrogyra', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'dendrogyra_coral.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Its also known as pillar coral'}, + ['antipatharia_coral'] = {['name'] = 'antipatharia_coral', ['label'] = 'Antipatharia', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'antipatharia_coral.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Its also known as black corals or thorn corals'}, + ['diving_gear'] = {['name'] = 'diving_gear', ['label'] = 'Diving Gear', ['weight'] = 30000, ['type'] = 'item', ['image'] = 'diving_gear.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'An oxygen tank and a rebreather'}, + ['diving_fill'] = {['name'] = 'diving_fill', ['label'] = 'Diving Tube', ['weight'] = 3000, ['type'] = 'item', ['image'] = 'diving_tube.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['discription'] = 'An oxygen tube and a rebreather'}, + + -- Other Tools + ['casinochips'] = {['name'] = 'casinochips', ['label'] = 'Casino Chips', ['weight'] = 0, ['type'] = 'item', ['image'] = 'casinochips.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Chips For Casino Gambling'}, + ['stickynote'] = {['name'] = 'stickynote', ['label'] = 'Sticky note', ['weight'] = 0, ['type'] = 'item', ['image'] = 'stickynote.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Sometimes handy to remember something :)'}, + ['moneybag'] = {['name'] = 'moneybag', ['label'] = 'Money Bag', ['weight'] = 0, ['type'] = 'item', ['image'] = 'moneybag.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A bag with cash'}, + ['parachute'] = {['name'] = 'parachute', ['label'] = 'Parachute', ['weight'] = 30000, ['type'] = 'item', ['image'] = 'parachute.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'The sky is the limit! Woohoo!'}, + ['binoculars'] = {['name'] = 'binoculars', ['label'] = 'Binoculars', ['weight'] = 600, ['type'] = 'item', ['image'] = 'binoculars.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Sneaky Breaky...'}, + ['lighter'] = {['name'] = 'lighter', ['label'] = 'Lighter', ['weight'] = 0, ['type'] = 'item', ['image'] = 'lighter.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'On new years eve a nice fire to stand next to'}, + ['certificate'] = {['name'] = 'certificate', ['label'] = 'Certificate', ['weight'] = 0, ['type'] = 'item', ['image'] = 'certificate.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Certificate that proves you own certain stuff'}, + ['markedbills'] = {['name'] = 'markedbills', ['label'] = 'Marked Money', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'markedbills.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Money?'}, + ['labkey'] = {['name'] = 'labkey', ['label'] = 'Key', ['weight'] = 500, ['type'] = 'item', ['image'] = 'labkey.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Key for a lock...?'}, + ['printerdocument'] = {['name'] = 'printerdocument', ['label'] = 'Document', ['weight'] = 500, ['type'] = 'item', ['image'] = 'printerdocument.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A nice document'}, + ['newscam'] = {['name'] = 'newscam', ['label'] = 'News Camera', ['weight'] = 100, ['type'] = 'item', ['image'] = 'newscam.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A camera for the news'}, + ['newsmic'] = {['name'] = 'newsmic', ['label'] = 'News Microphone', ['weight'] = 100, ['type'] = 'item', ['image'] = 'newsmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A microphone for the news'}, + ['newsbmic'] = {['name'] = 'newsbmic', ['label'] = 'Boom Microphone', ['weight'] = 100, ['type'] = 'item', ['image'] = 'newsbmic.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Useable BoomMic'}, } From 822b2e41872db14000152e04b63c13a29eb9d20e Mon Sep 17 00:00:00 2001 From: erikmeyer08 <43043270+erikmeyer08@users.noreply.github.com> Date: Fri, 14 Apr 2023 20:06:09 -0400 Subject: [PATCH 27/30] Add pacycheck reason Adds the string 'paycheck' for AddMoney function 'reason' variable. --- server/functions.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/functions.lua b/server/functions.lua index 54218f0..397eb52 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -213,16 +213,16 @@ function PaycheckInterval() if account < payment then -- Checks if company has enough money to pay society TriggerClientEvent('QBCore:Notify', Player.PlayerData.source, Lang:t('error.company_too_poor'), 'error') else - Player.Functions.AddMoney('bank', payment) + Player.Functions.AddMoney('bank', payment, 'paycheck') exports['qb-management']:RemoveMoney(Player.PlayerData.job.name, payment) TriggerClientEvent('QBCore:Notify', Player.PlayerData.source, Lang:t('info.received_paycheck', {value = payment})) end else - Player.Functions.AddMoney('bank', payment) + Player.Functions.AddMoney('bank', payment, 'paycheck') TriggerClientEvent('QBCore:Notify', Player.PlayerData.source, Lang:t('info.received_paycheck', {value = payment})) end else - Player.Functions.AddMoney('bank', payment) + Player.Functions.AddMoney('bank', payment, 'paycheck') TriggerClientEvent('QBCore:Notify', Player.PlayerData.source, Lang:t('info.received_paycheck', {value = payment})) end end @@ -426,4 +426,4 @@ function QBCore.Functions.PrepForSQL(source,data,pattern) return false end return true -end \ No newline at end of file +end From 78bde5070abf59f10f385b0d296fca8d124492d8 Mon Sep 17 00:00:00 2001 From: Kakarot <57848836+GhzGarage@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:34:51 -0500 Subject: [PATCH 28/30] PR #963 --- client/functions.lua | 5 ----- 1 file changed, 5 deletions(-) diff --git a/client/functions.lua b/client/functions.lua index e9f2ca8..64f464d 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -21,13 +21,8 @@ end function QBCore.Functions.DrawText(x, y, width, height, scale, r, g, b, a, text) -- Use local function instead SetTextFont(4) - SetTextProportional(0) SetTextScale(scale, scale) SetTextColour(r, g, b, a) - SetTextDropShadow(0, 0, 0, 0, 255) - SetTextEdge(2, 0, 0, 0, 255) - SetTextDropShadow() - SetTextOutline() SetTextEntry('STRING') AddTextComponentString(text) DrawText(x - width / 2, y - height / 2 + 0.005) From 19d47dad14a18b04e363fedf25323eef9bc02177 Mon Sep 17 00:00:00 2001 From: Kakarot <57848836+GhzGarage@users.noreply.github.com> Date: Thu, 27 Apr 2023 17:42:58 -0500 Subject: [PATCH 29/30] PR #958 --- locale/cn.lua | 84 +++++++++++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/locale/cn.lua b/locale/cn.lua index ef792da..e50d2d6 100644 --- a/locale/cn.lua +++ b/locale/cn.lua @@ -12,102 +12,102 @@ local Translations = { duplicate_license = '发现重复的 Rockstar 许可证', no_valid_license = '未找到有效的 Rockstar 许可证', not_whitelisted = '您没有被列入此服务器的白名单', - server_already_open = '服务器已经打开', - server_already_closed = '服务器已经关闭', - no_permission = '您没有权限..', - no_waypoint = '没有设置导航点.', + server_already_open = '服务器已打开', + server_already_closed = '服务器已关闭', + no_permission = '您没有此权限..', + no_waypoint = '无GPS点位设置.', tp_error = '传送时出错.', - connecting_database_error = '连接到服务器时发生数据库错误. (SQL服务器是否开启?)', - connecting_database_timeout = '连接数据库超时. (SQL服务器是否开启?)', + connecting_database_error = '连接到服务器时发生数据库错误。(SQL server是否已打开?)', + connecting_database_timeout = '与数据库的连接超时。(SQL server是否已打开?)', }, success = { - server_opened = '服务器已开启', + server_opened = '服务器已打开', server_closed = '服务器已关闭', - teleported_waypoint = '传送到导航点.', + teleported_waypoint = '传送至航路点.', }, info = { - received_paycheck = '你收到了你的薪水 $%{value}', - job_info = '工作: %{value} | 级别: %{value2} | 工作状态: %{value3}', + received_paycheck = '你收到的薪水是 $%{value}', + job_info = '工作: %{value} | 级别: %{value2} | 上班状态: %{value3}', gang_info = '帮派: %{value} | 级别: %{value2}', - on_duty = '你开始上班了!', - off_duty = '你现在下班了!', - checking_ban = '你好 %s. 我们正在检查你是否被服务器封禁。', - join_server = '欢迎 %s 进入 {Server Name}.', - checking_whitelisted = '欢迎 %s. 我们正在检查您的白名单.', - exploit_banned = '您已因作弊而被禁止。 查看我们的 Discord 了解更多信息: %{discord}', - exploit_dropped = '你因为漏洞利用而被踢出服务器', + on_duty = '你现在开始上班了!', + off_duty = '从现在开始你下班了!', + checking_ban = '你好 %s. 我们正在检查您是否被禁止.', + join_server = '欢迎 %s 加入 {Server Name}.', + checking_whitelisted = '你好 %s. 我们正在检查您是否在白名单内.', + exploit_banned = '你因作弊而被禁止。查看Discord了解更多信息:%{discord}', + exploit_dropped = '你因为被而被踢出', }, command = { tp = { - help = '传送至玩家或位置 (仅限管理员)', + help = 'TP至玩家或坐标(仅限管理员)', params = { x = { name = 'id/x', help = '玩家ID或X位置'}, - y = { name = 'y', help = 'Y 位置'}, - z = { name = 'z', help = 'Z 位置'}, + y = { name = 'y', help = 'Y位置'}, + z = { name = 'z', help = 'Z位置'}, }, }, - tpm = { help = '传送至导航点 (仅限管理员)' }, - togglepvp = { help = '启用/关闭 服务器PVP模式 (仅限管理员)' }, + tpm = { help = 'TP到标记(仅限管理员)' }, + togglepvp = { help = '切换服务器上的PVP(仅限管理员)' }, addpermission = { - help = '授予玩家权限 (仅限God权限)', + help = '授予玩家权限(仅限God)', params = { id = { name = 'id', help = '玩家ID' }, permission = { name = 'permission', help = '权限级别' }, }, }, removepermission = { - help = '删除玩家权限 (仅限God权限)', + help = '删除玩家权限(仅限上帝)', params = { id = { name = 'id', help = '玩家ID' }, permission = { name = 'permission', help = '权限级别' }, }, }, - openserver = { help = '为每个人打开服务器 (仅限管理员)' }, + openserver = { help = '为每个人打开服务器(仅限管理员)' }, closeserver = { - help = '为没有权限组的人关闭服务器 (仅限管理员)', + help = '为没有权限的人关闭服务器(仅限管理员)', params = { - reason = { name = 'reason', help = '关闭原因(可选)' }, + reason = { name = 'reason', help = '关闭原因(可选)' }, }, }, car = { - help = '生成车辆 (仅限管理员)', + help = '刷出车辆(仅限管理员)', params = { model = { name = 'model', help = '车辆型号名称' }, }, }, - dv = { help = '删除车辆 (仅限管理员)' }, + dv = { help = '删除车辆(仅限管理员)' }, givemoney = { - help = '给玩家钱 (仅限管理员)', + help = '给玩家钱(仅限管理员)', params = { id = { name = 'id', help = '玩家ID' }, - moneytype = { name = 'moneytype', help = '货币类型 (cash, bank, crypto)' }, - amount = { name = 'amount', help = '金额' }, + moneytype = { name = 'moneytype', help = '货币类型(cash, bank, crypto)' }, + amount = { name = 'amount', help = '数量' }, }, }, setmoney = { - help = '设置玩家金额 (仅限管理员)', + help = '设置玩家金额(仅限管理员)', params = { id = { name = 'id', help = '玩家ID' }, - moneytype = { name = 'moneytype', help = '货币类型 (cash, bank, crypto)' }, - amount = { name = 'amount', help = '金额' }, + moneytype = { name = 'moneytype', help = '货币类型(cash, bank, crypto)' }, + amount = { name = 'amount', help = '数量' }, }, }, - job = { help = '检查你的职业' }, + job = { help = '检查您的工作' }, setjob = { - help = '设置玩家职业 (仅限管理员)', + help = '设置玩家工作(仅限管理员)', params = { id = { name = 'id', help = '玩家ID' }, - job = { name = 'job', help = '职业' }, - grade = { name = 'grade', help = '职业阶级' }, + job = { name = 'job', help = '工作名称' }, + grade = { name = 'grade', help = '工作级别' }, }, }, gang = { help = '检查你的帮派' }, setgang = { - help = '设置玩家帮派 (仅限管理员)', + help = '设置玩家作业(仅限管理员)', params = { id = { name = 'id', help = '玩家ID' }, gang = { name = 'gang', help = '帮派名称' }, - grade = { name = 'grade', help = '帮派阶级' }, + grade = { name = 'grade', help = '帮派级别' }, }, }, ooc = { help = 'OOC聊天消息' }, @@ -126,4 +126,4 @@ if GetConvar('qb_locale', 'en') == 'cn' then warnOnMissing = true, fallbackLang = Lang, }) -end +end \ No newline at end of file From 3d0c273e3e90cf8d5f2562bb7056952839e40d1d Mon Sep 17 00:00:00 2001 From: Kakarot <57848836+GhzGarage@users.noreply.github.com> Date: Thu, 27 Apr 2023 18:09:31 -0500 Subject: [PATCH 30/30] PR #951 --- shared/items.lua | 5 +- shared/vehicles.lua | 152 +++++++++++++++++++++++++++++++++++++++++++- shared/weapons.lua | 3 + 3 files changed, 158 insertions(+), 2 deletions(-) diff --git a/shared/items.lua b/shared/items.lua index 65e529a..ba27953 100644 --- a/shared/items.lua +++ b/shared/items.lua @@ -25,6 +25,7 @@ QBShared.Items = { ['weapon_handcuffs'] = {['name'] = 'weapon_handcuffs', ['label'] = 'Handcuffs', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_handcuffs.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A pair of lockable linked metal rings for securing a prisoner\'s wrists'}, ['weapon_bread'] = {['name'] = 'weapon_bread', ['label'] = 'Baquette', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'baquette.png', ['unique'] = true, ['useable'] = false, ['description'] = 'Bread...?'}, ['weapon_stone_hatchet'] = {['name'] = 'weapon_stone_hatchet', ['label'] = 'Stone Hatchet', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_stone_hatchet.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Stone ax'}, + ['weapon_candycane'] = {['name'] = 'weapon_candycane', ['label'] = 'Candy Cane', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_candycande', ['unique'] = true, ['useable'] = true, ['description'] = 'Candy Cane'}, -- Handguns ['weapon_pistol'] = {['name'] = 'weapon_pistol', ['label'] = 'Walther P99', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistol.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A small firearm designed to be held in one hand'}, @@ -46,6 +47,7 @@ QBShared.Items = { ['weapon_ceramicpistol'] = {['name'] = 'weapon_ceramicpistol', ['label'] = 'Ceramic Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_ceramicpistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Ceramicpistol'}, ['weapon_navyrevolver'] = {['name'] = 'weapon_navyrevolver', ['label'] = 'Navy Revolver', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_navyrevolver.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Navyrevolver'}, ['weapon_gadgetpistol'] = {['name'] = 'weapon_gadgetpistol', ['label'] = 'Perico Pistol', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_gadgetpistol.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Gadgetpistol'}, + ['weapon_pistolxm3'] = {['name'] = 'weapon_pistolxm3', ['label'] = 'Pistol XM3', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_PISTOL', ['image'] = 'weapon_pistolxm3.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Pistol XM3'}, -- Submachine Guns ['weapon_microsmg'] = {['name'] = 'weapon_microsmg', ['label'] = 'Micro SMG', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_SMG', ['image'] = 'weapon_microsmg.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A handheld lightweight machine gun'}, @@ -103,6 +105,7 @@ QBShared.Items = { ['weapon_minigun'] = {['name'] = 'weapon_minigun', ['label'] = 'Minigun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MINIGUN', ['image'] = 'weapon_minigun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A portable machine gun consisting of a rotating cluster of six barrels and capable of variable rates of fire of up to 6,000 rounds per minute'}, ['weapon_firework'] = {['name'] = 'weapon_firework', ['label'] = 'Firework Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_firework.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A device containing gunpowder and other combustible chemicals that causes a spectacular explosion when ignited'}, ['weapon_railgun'] = {['name'] = 'weapon_railgun', ['label'] = 'Railgun', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_railgun.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon that uses electromagnetic force to launch high velocity projectiles'}, + ['weapon_railgunxm3'] = {['name'] = 'weapon_railgunxm3', ['label'] = 'Railgun XM3', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_railgunxm3.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon that uses electromagnetic force to launch high velocity projectiles'}, ['weapon_hominglauncher'] = {['name'] = 'weapon_hominglauncher', ['label'] = 'Homing Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_STINGER', ['image'] = 'weapon_hominglauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A weapon fitted with an electronic device that enables it to find and hit a target'}, ['weapon_compactlauncher'] = {['name'] = 'weapon_compactlauncher', ['label'] = 'Compact Launcher', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = nil, ['image'] = 'weapon_compactlauncher.png', ['unique'] = true, ['useable'] = false, ['description'] = 'A compact grenade launcher'}, ['weapon_rayminigun'] = {['name'] = 'weapon_rayminigun', ['label'] = 'Widowmaker', ['weight'] = 1000, ['type'] = 'weapon', ['ammotype'] = 'AMMO_MINIGUN', ['image'] = 'weapon_rayminigun.png', ['unique'] = true, ['useable'] = true, ['description'] = 'Weapon Rayminigun'}, @@ -381,7 +384,7 @@ QBShared.Items = { ['antipatharia_coral'] = {['name'] = 'antipatharia_coral', ['label'] = 'Antipatharia', ['weight'] = 1000, ['type'] = 'item', ['image'] = 'antipatharia_coral.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Its also known as black corals or thorn corals'}, ['diving_gear'] = {['name'] = 'diving_gear', ['label'] = 'Diving Gear', ['weight'] = 30000, ['type'] = 'item', ['image'] = 'diving_gear.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'An oxygen tank and a rebreather'}, ['diving_fill'] = {['name'] = 'diving_fill', ['label'] = 'Diving Tube', ['weight'] = 3000, ['type'] = 'item', ['image'] = 'diving_tube.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['discription'] = 'An oxygen tube and a rebreather'}, - + -- Other Tools ['casinochips'] = {['name'] = 'casinochips', ['label'] = 'Casino Chips', ['weight'] = 0, ['type'] = 'item', ['image'] = 'casinochips.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Chips For Casino Gambling'}, ['stickynote'] = {['name'] = 'stickynote', ['label'] = 'Sticky note', ['weight'] = 0, ['type'] = 'item', ['image'] = 'stickynote.png', ['unique'] = true, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Sometimes handy to remember something :)'}, diff --git a/shared/vehicles.lua b/shared/vehicles.lua index 476cac4..b114d3f 100644 --- a/shared/vehicles.lua +++ b/shared/vehicles.lua @@ -5397,4 +5397,154 @@ QBShared.Vehicles = { ['hash'] = `tiptruck2`, ['shop'] = 'truck', }, -} + ['entity3'] = { --DLC +set sv_enforceGameBuild 2802 + ['name'] = 'Entity MT', + ['brand'] = 'Overflod', + ['model'] = 'entity3', + ['price'] = 200000, + ['category'] = 'super', + ['categoryLabel'] = 'Super', + ['hash'] = `entity3`, + ['shop'] = 'luxury', + }, + ['everon2'] = { + ['name'] = 'Everon Hotring', + ['brand'] = 'Karin', + ['model'] = 'everon2', + ['price'] = 80000, + ['category'] = 'sports', + ['categoryLabel'] = 'Sports', + ['hash'] = `everon`, + ['shop'] = 'pdm', + }, + ['issi8'] = { + ['name'] = 'Issi Rally', + ['brand'] = 'Weeny', + ['model'] = 'issi8', + ['price'] = 10000, + ['category'] = 'sports', + ['categoryLabel'] = 'Sports', + ['hash'] = `issi8`, + ['shop'] = 'pdm', + }, + ['journey2'] = { + ['name'] = 'Journey II', + ['brand'] = 'Zirconium', + ['model'] = 'journey2', + ['price'] = 7000, + ['category'] = 'vans', + ['categoryLabel'] = 'Vans', + ['hash'] = `journey2`, + ['shop'] = 'pdm', + }, + ['manchez3'] = { + ['name'] = 'Manchez Scout Classic', + ['brand'] = 'Maibatsu', + ['model'] = 'manchez3', + ['price'] = 15000, + ['category'] = 'motorcycles', + ['categoryLabel'] = 'Motorcycles', + ['hash'] = `manchez3`, + ['shop'] = 'pdm', + }, + ['r300'] = { + ['name'] = '300R', + ['brand'] = 'Annis', + ['model'] = 'r300', + ['price'] = 56000, + ['category'] = 'sports', + ['categoryLabel'] = 'Sports', + ['hash'] = `r300`, + ['shop'] = 'pdm', + }, + ['surfer3'] = { + ['name'] = 'Surfer Custom', + ['brand'] = 'BF', + ['model'] = 'surfer3', + ['price'] = 15000, + ['category'] = 'vans', + ['categoryLabel'] = 'Vans', + ['hash'] = `surfer3`, + ['shop'] = 'pdm', + }, + ['tahoma'] = { + ['name'] = 'Tahoma Coupe', + ['brand'] = 'Declasse', + ['model'] = 'tahoma', + ['price'] = 12000, + ['category'] = 'coupes', + ['categoryLabel'] = 'Coupes', + ['hash'] = `tahoma`, + ['shop'] = 'pdm', + }, + ['tulip2'] = { + ['name'] = 'Tulip M-100', + ['brand'] = 'Declasse', + ['model'] = 'tulip2', + ['price'] = 80000, + ['category'] = 'muscle', + ['categoryLabel'] = 'Muscle', + ['hash'] = `tulip2`, + ['shop'] = 'pdm', + }, + ['powersurge'] = { + ['name'] = 'Powersurge', + ['brand'] = 'Western', + ['model'] = 'powersurge', + ['price'] = 7000, + ['category'] = 'motorcycles', + ['categoryLabel'] = 'Motorcycles', + ['hash'] = `powersurge`, + ['shop'] = 'pdm', + }, + ['broadway'] = { + ['name'] = 'Broadway', + ['brand'] = 'Classique', + ['model'] = 'broadway', + ['price'] = 20000, + ['category'] = 'coupes', + ['categoryLabel'] = 'Coupes', + ['hash'] = `broadway`, + ['shop'] = 'pdm', + }, + ['panthere'] = { + ['name'] = 'Panthere', + ['brand'] = 'Toundra', + ['model'] = 'panthere', + ['price'] = 55000, + ['category'] = 'sports', + ['categoryLabel'] = 'Sports', + ['hash'] = `panthere`, + ['shop'] = 'pdm', + }, + ['boor'] = { + ['name'] = 'Boor', + ['brand'] = 'Karin', + ['model'] = 'boor', + ['price'] = 23000, + ['category'] = 'compacts', + ['categoryLabel'] = 'Compacts', + ['hash'] = `boor`, + ['shop'] = 'pdm', + }, + ['eudora'] = { + ['name'] = 'Eudora', + ['brand'] = 'Willard', + ['model'] = 'eudora', + ['price'] = 17000, + ['category'] = 'sedans', + ['categoryLabel'] = 'Sedans', + ['hash'] = `eudora`, + ['shop'] = 'pdm', + }, + ['virtue'] = { + ['name'] = 'Virtue', + ['brand'] = 'Ocelot', + ['model'] = 'virtue', + ['price'] = 72000, + ['category'] = 'super', + ['categoryLabel'] = 'Super', + ['hash'] = `virtue`, + ['shop'] = 'luxury', + }, +} \ No newline at end of file diff --git a/shared/weapons.lua b/shared/weapons.lua index 1982c4a..29c9062 100644 --- a/shared/weapons.lua +++ b/shared/weapons.lua @@ -25,6 +25,7 @@ QBShared.Weapons = { [`weapon_handcuffs`] = {['name'] = 'weapon_handcuffs', ['label'] = 'Handcuffs', ['weapontype'] = 'Melee', ['ammotype'] = nil, ['damagereason'] = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered'}, [`weapon_bread`] = {['name'] = 'weapon_bread', ['label'] = 'Baquette', ['weapontype'] = 'Melee', ['ammotype'] = nil, ['damagereason'] = 'Melee killed / Whacked / Executed / Beat down / Murdered / Battered'}, [`weapon_stone_hatchet`] = {['name'] = 'weapon_stone_hatchet', ['label'] = 'Stone Hatchet', ['weapontype'] = 'Melee', ['ammotype'] = nil, ['damagereason'] = 'Knifed / Stabbed / Eviscerated'}, + [`weapon_candycane`] = {['name'] = 'weapon_candycane', ['label'] = 'Candy Cane', ['weapontype'] = 'Melee', ['ammotype'] = nil, ['damagereason'] = 'Melee Killed / Whacked / Executed / Beat down / Musrdered / Battered / Candy Caned'}, -- Handguns [`weapon_pistol`] = {['name'] = 'weapon_pistol', ['label'] = 'Pistol', ['weapontype'] = 'Pistol', ['ammotype'] = 'AMMO_PISTOL', ['damagereason'] = 'Pistoled / Blasted / Plugged / Bust a cap in'}, @@ -47,6 +48,7 @@ QBShared.Weapons = { [`weapon_navyrevolver`] = {['name'] = 'weapon_navyrevolver', ['label'] = 'Navy Revolver', ['weapontype'] = 'Pistol', ['ammotype'] = 'AMMO_PISTOL', ['damagereason'] = 'Pistoled / Blasted / Plugged / Bust a cap in'}, [`weapon_gadgetpistol`] = {['name'] = 'weapon_gadgetpistol', ['label'] = 'Gadget Pistol', ['weapontype'] = 'Pistol', ['ammotype'] = 'AMMO_PISTOL', ['damagereason'] = 'Pistoled / Blasted / Plugged / Bust a cap in'}, [`weapon_stungun_mp`] = {['name'] = 'weapon_stungun_mp', ['label'] = 'Taser', ['weapontype'] = 'Pistol', ['ammotype'] = 'AMMO_STUNGUN', ['damagereason'] = 'Died'}, + [`weapon_pistolxm3`] = {['name'] = 'weapon_pistolxm3', ['label'] = 'Pistol XM3', ['weapontype'] = 'Pistol', ['ammotype'] = 'AMMO_PISTOL', ['damagereason'] = 'Pistoled / Blasted / Plaugged / Bust a cap in'}, -- Submachine Guns [`weapon_microsmg`] = {['name'] = 'weapon_microsmg', ['label'] = 'Micro SMG', ['weapontype'] = 'Submachine Gun', ['ammotype'] = 'AMMO_SMG', ['damagereason'] = 'Riddled / Drilled / Finished / Submachine Gunned'}, @@ -105,6 +107,7 @@ QBShared.Weapons = { [`weapon_minigun`] = {['name'] = 'weapon_minigun', ['label'] = 'Minigun', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = 'AMMO_MINIGUN', ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'}, [`weapon_firework`] = {['name'] = 'weapon_firework', ['label'] = 'Firework Launcher', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = nil, ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'}, [`weapon_railgun`] = {['name'] = 'weapon_railgun', ['label'] = 'Railgun', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = nil, ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'}, + [`weapon_railgunxm3`] = {['name'] = 'weapon_railgunxm3', ['label'] = 'Railgun XM3', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = nil, ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'}, [`weapon_hominglauncher`] = {['name'] = 'weapon_hominglauncher', ['label'] = 'Homing Launcher', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = 'AMMO_STINGER', ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'}, [`weapon_compactlauncher`] = {['name'] = 'weapon_compactlauncher', ['label'] = 'Compact Launcher', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = nil, ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'}, [`weapon_rayminigun`] = {['name'] = 'weapon_rayminigun', ['label'] = 'Ray Minigun', ['weapontype'] = 'Heavy Weapons', ['ammotype'] = 'AMMO_MINIGUN', ['damagereason'] = 'Killed / Exploded / Obliterated / Destroyed / Erased / Annihilated'},