forked from Simnation/Main
742 lines
22 KiB
Lua
742 lines
22 KiB
Lua
Config = {}
|
|
Config.Debug = true
|
|
|
|
Config.RenderDistance = 30.0
|
|
Config.DefaultInteractionDistance = 2.0 -- If a vending does not provide a distance this will be used as the default
|
|
|
|
-- Help us translate!
|
|
-- You can contribute by improving existing translations or adding translations for new languages
|
|
-- https://localazy.com/p/mxc
|
|
Config.Language = "en"
|
|
|
|
Config.NoFramework = false-- if set to true, ignore framework dependencies; use this parameter if no framework is used (obviously the items and actual usability are not implemented without any framework)
|
|
Config.UseOxLibMenuIfFound = false -- set to false if you don't want to use OxLib if found
|
|
Config.Blips = true -- set to false if you don't want to see blips on the minimap
|
|
Config.Sounds = true -- by default require xSound, you can edit it in config_functions.lua
|
|
|
|
Config.Target = false -- set to true if you want to use ox-target or qb-target as interaction
|
|
Config.CustomTargetResource = "" -- if you have a custom target resource name set it here
|
|
Config.AzertyKeyboard = false -- set to true if you use azerty keyboard (default qwerty)
|
|
|
|
-- Uncomment only if you want to ovverride the default translations provided by localazy
|
|
Config.Translations = {
|
|
-- %s will be replaced with selected_product_price if a product is selected
|
|
--["vending_menu_helper"] = "Please enter the code of a product.\n%s\n~INPUT_SELECT_WEAPON~ Switch camera\n~INPUT_CELLPHONE_SELECT~ Confirm selection\n~INPUT_CELLPHONE_CANCEL~ Exit",
|
|
--["selected_product_price"] = "%s - ~g~%s$~w~ \n",
|
|
--["invalid_product"] = "~r~Invalid product.~w~",
|
|
|
|
--["selection_not_valid"] = "~r~The code that you entered is not valid, please enter a valid stand code.",
|
|
--["not_enough_money"] = "~r~You don't have enough money to buy this product.",
|
|
|
|
--["already_used"] = "~r~The vending machine is being used by another player.",
|
|
|
|
--["ox_menu_header"] = "Vending Machine",
|
|
--["ox_menu_description"] = "Select product",
|
|
--["ox_menu_currency"] = "$"
|
|
|
|
--["normal_int_vanilla"] = "Press {E} to buy something from the vending machine",
|
|
--["coffee_int_vanilla"] = "Press {E} to get a coffee from the vending machine",
|
|
--["water_int_vanilla"] = "Press {E} to get a water cup",
|
|
--["cigs_int_vanilla"] = "Press {E} to buy a pack of cigarettes",
|
|
|
|
--["normal_int_target"] = "Buy something",
|
|
--["coffee_int_target"] = "Get a coffee",
|
|
--["water_int_target"] = "Refresh your mouth"
|
|
}
|
|
|
|
-- These "objects" are used by vending machines for providing human-readable names in menus, models for items, and handling payment.
|
|
|
|
-- item_name = {
|
|
-- price = number (price of the item for payment)
|
|
-- label = string (name displayed in menus, e.g., in the ox lib menu)
|
|
-- model = string (model used to populate vending machines capable of displaying items; see snack or soda for details)
|
|
-- }
|
|
|
|
-- !! "item_name" Should match the item in your inventory exactly !!
|
|
|
|
Config.Items = {
|
|
--#region coffee
|
|
coffee = { -- Used only for payment and to give the item
|
|
price = 4
|
|
},
|
|
--#endregion
|
|
|
|
--#region water
|
|
water = { -- Used only for payment and to give the item
|
|
price = 0,
|
|
ignoreGive = true
|
|
},
|
|
--#endregion
|
|
|
|
--#region snack
|
|
chips_cheese = {
|
|
label = "Chips: Big Cheese",
|
|
model = "mxc_vend_prop_item_chips1",
|
|
price = 100
|
|
},
|
|
chips_paprika = {
|
|
label = "Chips: Paprika",
|
|
model = "mxc_vend_prop_item_chips2",
|
|
price = 100
|
|
},
|
|
chips_ribs = {
|
|
label = "Chips: Sticky Ribs",
|
|
model = "mxc_vend_prop_item_chips3",
|
|
price = 100
|
|
},
|
|
chips_salt = {
|
|
label = "Chips: Salt & Sauce",
|
|
model = "mxc_vend_prop_item_chips4",
|
|
price = 100
|
|
},
|
|
chips_supersalt = {
|
|
label = "Chips: Super Salt",
|
|
model = "mxc_vend_prop_item_chips5",
|
|
price = 100
|
|
},
|
|
chips_habanero = {
|
|
label = "Chips: Habanero",
|
|
model = "mxc_vend_prop_item_chips6",
|
|
price = 100
|
|
},
|
|
chocolate_captain = {
|
|
label = "Ego Chaser Schockriegel",
|
|
model = "mxc_vend_prop_item_chocolate1",
|
|
price = 2
|
|
},
|
|
chocolate_meteorite = {
|
|
label = "EarthQuakes",
|
|
model = "mxc_vend_prop_item_chocolate2",
|
|
price = 2
|
|
},
|
|
condom = {
|
|
label = "Condom: Soth Lags",
|
|
model = "mxc_vend_prop_item_preservatives",
|
|
price = 100,
|
|
zoffset = -0.02
|
|
},
|
|
candy_zebra = {
|
|
label = "Candy: Zebrabar",
|
|
model = "mxc_vend_prop_item_candybar1",
|
|
price = 100
|
|
},
|
|
candy_psqs = {
|
|
label = "Candy: P's & Q's",
|
|
model = "mxc_vend_prop_item_candybar2",
|
|
price = 100
|
|
},
|
|
medicine_laxmax = {
|
|
label = "Medicine: Lax to the Max",
|
|
model = "mxc_vend_prop_item_medical1",
|
|
price = 100
|
|
},
|
|
medicine_alcopatch = {
|
|
label = "Medicine: AlcoPatch",
|
|
model = "mxc_vend_prop_item_medical2",
|
|
price = 100
|
|
},
|
|
medicine_mollis = {
|
|
label = "Medicine: Mollis",
|
|
model = "mxc_vend_prop_item_medical3",
|
|
price = 100
|
|
},
|
|
medicine_betta = {
|
|
label = "Medicine: Betta",
|
|
model = "mxc_vend_prop_item_medical4",
|
|
price = 100
|
|
},
|
|
gum_peppermint = {
|
|
label = "Gum: Peppermint",
|
|
model = "mxc_vend_prop_item_gum1",
|
|
price = 100
|
|
},
|
|
gum_cinnamon = {
|
|
label = "Gum: Cinnamon",
|
|
model = "mxc_vend_prop_item_gum2",
|
|
price = 100
|
|
},
|
|
gum_spearmint = {
|
|
label = "Gum: Spearmint",
|
|
model = "mxc_vend_prop_item_gum3",
|
|
price = 100
|
|
},
|
|
--#endregion
|
|
--#region soda
|
|
ecola_flasche = {
|
|
label = "E-Cola",
|
|
model = "mxc_vend_prop_item_bottle1",
|
|
price = 6
|
|
},
|
|
ecola_zero_flasche = {
|
|
label = "E-Cola Zero",
|
|
model = "mxc_vend_prop_item_bottle1",
|
|
price = 6
|
|
},
|
|
bottle_junk = {
|
|
label = "Junk",
|
|
model = "mxc_vend_prop_item_bottle2",
|
|
price = 6
|
|
},
|
|
orange_o_tang_flasche = {
|
|
label = "Orange O Tang",
|
|
model = "mxc_vend_prop_item_bottle3",
|
|
price = 6
|
|
},
|
|
orange_o_tang_zero_flasche = {
|
|
label = "Orange O Tang Zero",
|
|
model = "mxc_vend_prop_item_bottle3",
|
|
price = 6
|
|
},
|
|
bottle_tonic = {
|
|
label = "Tonic",
|
|
model = "mxc_vend_prop_item_bottle4",
|
|
price = 6
|
|
},
|
|
water_bottle = {
|
|
label = "Wasser",
|
|
model = "mxc_vend_prop_item_bottle5",
|
|
price = 6
|
|
},
|
|
sprunk_flasche = {
|
|
label = "Sprunk",
|
|
model = "mxc_vend_prop_item_bottle6",
|
|
price = 6
|
|
},
|
|
sprunk_zero_flasche = {
|
|
label = "Sprunk",
|
|
model = "mxc_vend_prop_item_bottle6",
|
|
price = 6
|
|
},
|
|
ecola_dose = {
|
|
label = "E-Cola Dose",
|
|
model = "mxc_vend_prop_item_cansoda1",
|
|
price = 4
|
|
},
|
|
orange_o_tang_dose = {
|
|
label = "Orange O Tang Dose",
|
|
model = "mxc_vend_prop_item_cansoda2",
|
|
price = 4
|
|
},
|
|
orange_o_tang_zero_dose = {
|
|
label = "Orange O Tang Dose Zero",
|
|
model = "mxc_vend_prop_item_cansoda2",
|
|
price = 4
|
|
},
|
|
junk_energy = {
|
|
label = "Junk Dose",
|
|
model = "mxc_vend_prop_item_cansoda3",
|
|
price = 4
|
|
},
|
|
sprunk_dose = {
|
|
label = "Sprunk Dose",
|
|
model = "mxc_vend_prop_item_cansoda4",
|
|
price = 4
|
|
},
|
|
sprunk_zero_dose = {
|
|
label = "Sprunk Zero Dose",
|
|
model = "mxc_vend_prop_item_cansoda4",
|
|
price = 4
|
|
},
|
|
ecola_zero_dose = {
|
|
label = "E-Cola Zero Dose",
|
|
model = "mxc_vend_prop_item_cansoda1",
|
|
price = 4
|
|
},
|
|
can_logger = {
|
|
label = "Logger dose",
|
|
model = "mxc_vend_prop_item_canbeer1",
|
|
price = 100
|
|
},
|
|
can_blarneys = {
|
|
label = "Blarneys Dose",
|
|
model = "mxc_vend_prop_item_canbeer2",
|
|
price = 100
|
|
},
|
|
can_hoplivion = {
|
|
label = "Hoplivion Dose",
|
|
model = "mxc_vend_prop_item_canbeer3",
|
|
price = 100
|
|
},
|
|
can_cerbeza = {
|
|
label = "Cerbeza Dose",
|
|
model = "mxc_vend_prop_item_canbeer4",
|
|
price = 100
|
|
},
|
|
--#endregion
|
|
--#region svapo
|
|
droelfbar = {
|
|
label = "Drölfbar Döner Ice Explosion",
|
|
model = "mxc_smoking_prop_evape_2a",
|
|
price = 20
|
|
},
|
|
droelfbar2 = {
|
|
label = "Drölfbar Pfirsich Minze Ice",
|
|
model = "mxc_smoking_prop_evape_2f",
|
|
price = 20
|
|
},
|
|
--#endregion
|
|
|
|
redwoodpack = {
|
|
label = "Packung Redwood Zigaretten",
|
|
model = "v_ret_ml_cigs",
|
|
price = 10
|
|
},
|
|
cigs_redwood2 = {
|
|
label = "Cigarettes: Redwood2",
|
|
model = "v_ret_ml_cigs2",
|
|
price = 100
|
|
},
|
|
cigs_debonaireb = {
|
|
label = "Cigarettes: Debonaire Blue",
|
|
model = "v_ret_ml_cigs3",
|
|
price = 100
|
|
},
|
|
cigs_debonaireg = {
|
|
label = "Cigarettes: Debonaire Green",
|
|
model = "v_ret_ml_cigs4",
|
|
price = 100
|
|
},
|
|
cigs_cardiaque = {
|
|
label = "Cigarettes: Cardiaque",
|
|
model = "v_ret_ml_cigs5",
|
|
price = 100
|
|
},
|
|
cigs_69brand = {
|
|
label = "Cigarettes: 69Brand",
|
|
model = "v_ret_ml_cigs6",
|
|
price = 100
|
|
},
|
|
cigs_cok = {
|
|
label = "Cigarettes: CoK",
|
|
model = "mxc_vend_prop_item_cigs1",
|
|
price = 100
|
|
},
|
|
cigs_estancia = {
|
|
label = "Cigars: Estancia",
|
|
model = "prop_cigar_pack_01",
|
|
price = 100
|
|
}
|
|
}
|
|
|
|
|
|
-- Here you can enter model and coordinates to spawn new vending machines around the map, the last value of the vector is the heading
|
|
Config.PlaceVendings = {
|
|
prop_vend_snak_01 = {
|
|
vec4(0, 0, 0, 0),
|
|
},
|
|
prop_vend_soda_01 = {
|
|
vec4(0, 0, 0, 0)
|
|
},
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
-- Here you can customize the exhibition of vending machines near certain coordinates based on the name of vending
|
|
Config.OverrideExhibition = {
|
|
{
|
|
name = "snack", -- name of vending (based on Config.Vendings)
|
|
coords = vec3(0, 0, 0),
|
|
|
|
exhibition = {
|
|
a1 = "chips_ribs",
|
|
a2 = "chips_paprika",
|
|
a3 = "chips_paprika",
|
|
a4 = "chips_paprika",
|
|
b1 = "chips_paprika",
|
|
b2 = "chips_paprika",
|
|
b3 = "chips_paprika",
|
|
b4 = "chips_ribs",
|
|
c1 = "chips_paprika",
|
|
c2 = "chips_paprika",
|
|
c3 = "chips_paprika",
|
|
c4 = "chips_paprika",
|
|
d1 = "chips_paprika",
|
|
d2 = "chips_paprika",
|
|
d3 = "chips_paprika",
|
|
d4 = "chips_paprika",
|
|
e1 = "chips_paprika",
|
|
e2 = "chips_paprika",
|
|
e3 = "chips_paprika",
|
|
e4 = "chips_paprika",
|
|
},
|
|
},
|
|
}
|
|
|
|
-- Settings for individual vending machines, if you want to disable the blip for an individual vending machine simply delete that entire section.
|
|
Config.Vendings = {
|
|
["snack"] = {
|
|
models = {`prop_vend_snak_01`},
|
|
interaction = {
|
|
vanilla = {
|
|
notify = "normal_int_vanilla",
|
|
distance = 0.35
|
|
},
|
|
target = {
|
|
label = "normal_int_target",
|
|
icon = "fa-solid fa-drumstick-bite",
|
|
distance = 3.0
|
|
}
|
|
},
|
|
|
|
blip = {
|
|
sprite = 772,
|
|
color = 0,
|
|
size = 0.5
|
|
},
|
|
|
|
-- This section is for choosing which items (from the Config.Items list) to show for each individual stand.
|
|
-- You can follow the visual tags on the in-game model to figure out where you are putting things
|
|
exhibition = {
|
|
a1 = "chips_cheese",
|
|
a2 = "chips_paprika",
|
|
a3 = "chips_ribs",
|
|
a4 = "chips_salt",
|
|
b1 = "chips_supersalt",
|
|
b2 = "chips_habanero",
|
|
b3 = "chips_cheese",
|
|
b4 = "chips_paprika",
|
|
c1 = "chocolate_captain",
|
|
c2 = "chocolate_meteorite",
|
|
c3 = "condom",
|
|
c4 = "candy_zebra",
|
|
d1 = "candy_psqs",
|
|
d2 = "gum_peppermint",
|
|
d3 = "gum_cinnamon",
|
|
d4 = "gum_spearmint",
|
|
},
|
|
|
|
--#region Advanced
|
|
Near = function(self, obj, dbId)
|
|
PopulateSnackVending(self, obj)
|
|
end,
|
|
Far = function(self, obj, dbId)
|
|
ClearSnackVending(self, obj)
|
|
end,
|
|
|
|
OnInteraction = function(self, obj, dbId)
|
|
local selection = nil
|
|
|
|
-- OxLib input dialog
|
|
if lib and Config.UseOxLibMenuIfFound then
|
|
selection = DisplayOxLibMenu(self, obj)
|
|
else
|
|
selection = DisplayInteractiveMenu(self, obj)
|
|
end
|
|
|
|
if selection then
|
|
Config.Functions.TryToBuy(self, selection, dbId, function()
|
|
SelectItemSnackVending(self, obj, selection)
|
|
end)
|
|
else
|
|
Server.SetVendingUsed(dbId, false)
|
|
end
|
|
end
|
|
--#endregion
|
|
},
|
|
["soda"] = {
|
|
models = {`prop_vend_soda_01`},
|
|
interaction = {
|
|
vanilla = {
|
|
notify = "normal_int_vanilla",
|
|
distance = 1.0
|
|
},
|
|
target = {
|
|
label = "normal_int_target",
|
|
icon = "fa-solid fa-wine-bottle",
|
|
distance = 3.0
|
|
}
|
|
},
|
|
|
|
blip = {
|
|
sprite = 827,
|
|
color = 1,
|
|
size = 0.5
|
|
},
|
|
|
|
-- This section is for choosing which items (from the Config.Items list) to show for each individual stand.
|
|
-- You can follow the visual tags on the in-game model to figure out where you are putting things
|
|
exhibition = {
|
|
a1 = "ecola_flasche",
|
|
a2 = "ecola_flasche",
|
|
a3 = "sprunk_flasche",
|
|
a4 = "sprunk_flasche",
|
|
a5 = "orange_o_tang_flasche",
|
|
a6 = "orange_o_tang_flasche",
|
|
|
|
b1 = "ecola_zero_flasche",
|
|
b2 = "orange_o_tang_zero_flasche",
|
|
b3 = "sprunk_zero_flasche",
|
|
b4 = "water_bottle",
|
|
b5 = "water_bottle",
|
|
b6 = "water_bottle",
|
|
|
|
c1 = "sprunk_dose",
|
|
c2 = "ecola_dose",
|
|
c3 = "orange_o_tang_dose",
|
|
c4 = "ecola_zero_dose",
|
|
c5 = "sprunk_zero_dose",
|
|
c6 = "orange_o_tang_zero_dose",
|
|
},
|
|
|
|
--#region Advanced
|
|
Near = function(self, obj, dbId)
|
|
PopulateSodaVending(self, obj, "mxc_vend_prop_soda_shelf")
|
|
end,
|
|
Far = function(self, obj, dbId)
|
|
ClearSodaVending(self, obj)
|
|
end,
|
|
|
|
OnInteraction = function(self, obj, dbId)
|
|
local selection = nil
|
|
|
|
-- OxLib input dialog
|
|
if lib and Config.UseOxLibMenuIfFound then
|
|
selection = DisplayOxLibMenu(self, obj)
|
|
else
|
|
selection = DisplayInteractiveMenu(self, obj)
|
|
end
|
|
|
|
if selection then
|
|
Config.Functions.TryToBuy(self, selection, dbId, function()
|
|
SelectItemSodaVending(self, obj, selection)
|
|
end)
|
|
else
|
|
Server.SetVendingUsed(dbId, false)
|
|
end
|
|
end
|
|
--#endregion
|
|
},
|
|
["coffee"] = {
|
|
item = "coffee", -- Vending machines without exhibition can set an item to be sold here (as always from Config.Items)
|
|
models = {`prop_vend_coffe_01`},
|
|
interaction = {
|
|
vanilla = {
|
|
notify = "coffee_int_vanilla",
|
|
distance = 1.1
|
|
},
|
|
target = {
|
|
label = "coffee_int_target",
|
|
icon = "fa-solid fa-mug-hot",
|
|
distance = 3.0
|
|
}
|
|
},
|
|
|
|
blip = {
|
|
sprite = 89,
|
|
color = 31,
|
|
size = 0.5
|
|
},
|
|
|
|
Far = function(self, obj, dbId)
|
|
ClearCoffeeVending(self, obj)
|
|
end,
|
|
|
|
--#region Advanced
|
|
OnInteraction = function(self, obj, dbId)
|
|
Config.Functions.TryToBuy(self, self.item, dbId, function()
|
|
StartCoffeeVending(self, obj, true)
|
|
end)
|
|
end
|
|
--#endregion
|
|
},
|
|
["water"] = {
|
|
item = "water", -- Vending machines without exhibition can set an item to be sold here (as always from Config.Items)
|
|
models = {`prop_watercooler`},
|
|
interaction = {
|
|
vanilla = {
|
|
notify = "water_int_vanilla",
|
|
distance = 1.2
|
|
},
|
|
target = {
|
|
label = "water_int_target",
|
|
icon = "fa-solid fa-glass-water",
|
|
distance = 3.0
|
|
}
|
|
},
|
|
|
|
blip = {
|
|
sprite = 499,
|
|
color = 3,
|
|
size = 0.5
|
|
},
|
|
|
|
Far = function(self, obj, dbId)
|
|
ClearWaterVending(self, obj)
|
|
end,
|
|
|
|
--#region Advanced
|
|
OnInteraction = function(self, obj, dbId)
|
|
Config.Functions.TryToBuy(self, self.item, dbId, function()
|
|
StartWaterVending(self, obj)
|
|
Status.UpdatePlayerStatus({["thirst"] = 20})
|
|
end)
|
|
end
|
|
--#endregion
|
|
},
|
|
["cigarettes"] = {
|
|
models = {`prop_vend_fags_01`},
|
|
interaction = {
|
|
vanilla = {
|
|
notify = "cigs_int_vanilla",
|
|
distance = 0.4
|
|
},
|
|
target = {
|
|
label = "normal_int_target",
|
|
icon = "fa-solid fa-smoking",
|
|
distance = 3.0
|
|
}
|
|
},
|
|
|
|
-- For this vending, this will only be used for the menu, it will not create any model
|
|
exhibition = {
|
|
a1 = "redwoodpack",
|
|
a2 = "cigs_redwood2",
|
|
a3 = "cigs_estancia",
|
|
a4 = "cigs_69brand",
|
|
a5 = "cigs_debonaireb",
|
|
a6 = "cigs_debonaireg",
|
|
b1 = "cigs_cardiaque",
|
|
b2 = "cigs_cok",
|
|
},
|
|
|
|
blip = {
|
|
sprite = 205,
|
|
color = 22,
|
|
size = 0.5
|
|
},
|
|
|
|
--#region Advanced
|
|
OnInteraction = function(self, obj, dbId)
|
|
local selection = nil
|
|
|
|
-- OxLib input dialog
|
|
if lib and Config.UseOxLibMenuIfFound then
|
|
selection = DisplayOxLibMenu(self, obj)
|
|
else
|
|
selection = DisplayInteractiveMenu(self, obj)
|
|
end
|
|
|
|
if selection then
|
|
Config.Functions.TryToBuy(self, selection, dbId, function()
|
|
SelectItemCigarettesVending(self, obj, selection)
|
|
end)
|
|
else
|
|
Server.SetVendingUsed(dbId, false)
|
|
end
|
|
end
|
|
--#endregion
|
|
},
|
|
["soda_2"] = {
|
|
parent = "soda", -- Vending machines can set a parent vending machine, this allows you to inherit all the other vending settings with the ability to override them
|
|
models = {`prop_vend_soda_02`},
|
|
interaction = {
|
|
vanilla = {
|
|
notify = "normal_int_vanilla",
|
|
distance = 1.0
|
|
},
|
|
target = {
|
|
label = "normal_int_target",
|
|
icon = "fa-solid fa-wine-bottle",
|
|
distance = 3.0
|
|
}
|
|
},
|
|
|
|
blip = {
|
|
sprite = 827,
|
|
color = 2,
|
|
size = 0.5
|
|
},
|
|
|
|
-- This section is for choosing which items (from the Config.Items list) to show for each individual stand.
|
|
-- You can follow the visual tags on the in-game model to figure out where you are putting things
|
|
exhibition = {
|
|
a1 = "ecola_flasche",
|
|
a2 = "ecola_flasche",
|
|
a3 = "sprunk_flasche",
|
|
a4 = "sprunk_flasche",
|
|
a5 = "orange_o_tang_flasche",
|
|
a6 = "orange_o_tang_flasche",
|
|
|
|
b1 = "ecola_zero_flasche",
|
|
b2 = "orange_o_tang_zero_flasche",
|
|
b3 = "sprunk_zero_flasche",
|
|
b4 = "water_bottle",
|
|
b5 = "water_bottle",
|
|
b6 = "water_bottle",
|
|
|
|
c1 = "sprunk_dose",
|
|
c2 = "ecola_dose",
|
|
c3 = "orange_o_tang_dose",
|
|
c4 = "ecola_zero_dose",
|
|
c5 = "sprunk_zero_dose",
|
|
c6 = "orange_o_tang_zero_dose",
|
|
|
|
},
|
|
|
|
--#region Advanced
|
|
Near = function(self, obj, dbId)
|
|
PopulateSodaVending(self, obj, "mxc_vend_prop_soda_shelf2")
|
|
end,
|
|
Far = function(self, obj, dbId)
|
|
ClearSodaVending(self, obj)
|
|
end,
|
|
|
|
OnInteraction = function(self, obj, dbId)
|
|
local selection = nil
|
|
|
|
-- OxLib input dialog
|
|
if lib and Config.UseOxLibMenuIfFound then
|
|
selection = DisplayOxLibMenu(self, obj)
|
|
else
|
|
selection = DisplayInteractiveMenu(self, obj)
|
|
end
|
|
|
|
if selection then
|
|
Config.Functions.TryToBuy(self, selection, dbId, function()
|
|
SelectItemSodaVending(self, obj, selection)
|
|
end)
|
|
else
|
|
Server.SetVendingUsed(dbId, false)
|
|
end
|
|
end
|
|
--#endregion
|
|
},
|
|
|
|
-- Require cfx-mxc-smoking (https://store.markz3d.com/checkout/packages/add/6245837/single)
|
|
|
|
["svapo"] = {
|
|
parent = "snack", -- Vending machines can set a parent vending machine, this allows you to inherit all the other vending settings with the ability to override them
|
|
models = {`mxc_vend_prop_svapo_01`},
|
|
|
|
blip = {
|
|
sprite = 772,
|
|
color = 0,
|
|
size = 0.5
|
|
},
|
|
|
|
exhibition = {
|
|
a1 = "droelfbar2",
|
|
a2 = "droelfbar2",
|
|
a3 = "droelfbar2",
|
|
a4 = "droelfbar2",
|
|
b1 = "droelfbar2",
|
|
b2 = "droelfbar2",
|
|
b3 = "droelfbar2",
|
|
b4 = "droelfbar2",
|
|
c1 = "droelfbar2",
|
|
c2 = "droelfbar2",
|
|
c3 = "droelfbar",
|
|
c4 = "droelfbar",
|
|
d1 = "droelfbar",
|
|
d2 = "droelfbar",
|
|
d3 = "droelfbar",
|
|
d4 = "droelfbar",
|
|
e1 = "droelfbar",
|
|
e2 = "droelfbar",
|
|
e3 = "droelfbar",
|
|
e4 = "droelfbar",
|
|
},
|
|
},
|
|
}
|