local QBCore = exports['qb-core']:GetCoreObject() RegisterNetEvent('QBCore:Client:UpdateObject', function() QBCore = exports['qb-core']:GetCoreObject() end) PlayerJob = {} local Targets = {} local Props = {} local Blips = {} local onDuty = false local alcoholCount = 0 local function jobCheck() canDo = true if not onDuty then TriggerEvent('QBCore:Notify', Loc[Config.Lan].error["not_clocked_in"], 'error') canDo = false end return canDo end RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() QBCore.Functions.GetPlayerData(function(PlayerData) PlayerJob = PlayerData.job if PlayerData.job.onduty then if PlayerData.job.name == "tequilala" then TriggerServerEvent("QBCore:ToggleDuty") end end end) end) RegisterNetEvent('QBCore:Client:OnJobUpdate') AddEventHandler('QBCore:Client:OnJobUpdate', function(JobInfo) PlayerJob = JobInfo onDuty = PlayerJob.onduty end) RegisterNetEvent('QBCore:Client:SetDuty') AddEventHandler('QBCore:Client:SetDuty', function(duty) onDuty = duty end) AddEventHandler('onResourceStart', function(r) if GetCurrentResourceName() == r then QBCore.Functions.GetPlayerData(function(PlayerData) PlayerJob = PlayerData.job if PlayerData.job.name == "tequilala" then onDuty = PlayerJob.onduty end end) end end) CreateThread(function() local bossroles = {} for grade in pairs(QBCore.Shared.Jobs["tequilala"].grades) do if QBCore.Shared.Jobs["tequilala"].grades[grade].isboss == true then if bossroles["tequilala"] then if bossroles["tequilala"] > tonumber(grade) then bossroles["tequilala"] = tonumber(grade) end else bossroles["tequilala"] = tonumber(grade) end end end for _, v in pairs(Config.Locations) do if v.zoneEnable then JobLocation = PolyZone:Create(v.zones, { name = v.label, debugPoly = Config.Debug }) JobLocation:onPlayerInOut(function(isPointInside) if not isPointInside and onDuty and PlayerJob.name == "tequilala" then TriggerServerEvent("QBCore:ToggleDuty") end end) Blips[#Blips+1] = makeBlip({coords = v.blip, sprite = 79, col = v.blipcolor, scale = 0.7, disp = 6, name = v.label}) end end if not Props["cocktails"] then Props["cocktails"] = makeProp({prop = `v_res_mchopboard`, coords = vector4(-562.81, 288.66, 82.18+1.1, -270.0)}, 1, 0) end if not Props["cocktails2"] then Props["cocktails2"] = makeProp({prop = `v_res_mchopboard`, coords = vector4(-566.03, 287.47, 85.38+1.1, -270.0)}, 1, 0) end if not Props["coffee"] then Props["coffee"] = makeProp({prop = `prop_coffee_mac_02`, coords = vector4(-562.76, 289.95, 82.18+1.1, -300.0)}, 1, 0) end if not Props["coffee2"] then Props["coffee2"] = makeProp({prop = `prop_coffee_mac_02`, coords = vector4(-566.02, 288.01, 85.38+1.1, -300.0)}, 1, 0) end if not Props["laptop"] then Props["laptop"] = makeProp({prop = `prop_laptop_01a`, coords = vector4(-560.62, 289.25, 82.18+1.12, -75.0)}, 1, 0) end if Config.MLO == "base" and Config.useDLC == true then if not Props["drums"] then Props["drums"] = makeProp({prop = `sf_prop_sf_drum_kit_01a`, coords = vector4(-550.89, 284.21, 82.98, -75.0)}, 1, 0) end if not Props["mic"] then Props["mic"] = makeProp({prop = `v_ilev_fos_mic`, coords = vector4(-551.78, 286.25, 82.98, -75.0)}, 1, 0) end if not Props["mic2"] then Props["mic2"] = makeProp({prop = `v_ilev_fos_mic`, coords = vector4(-552.05, 282.87, 82.98, -75.0)}, 1, 0) end if not Props["gcase"] then Props["gcase"] = makeProp({prop = `sf_prop_sf_guitar_case_01a`, coords = vector4(-550.35, 287.01, 82.98, -0.0)}, 1, 0) end if not Props["gcase2"] then Props["gcase2"] = makeProp({prop = `sf_prop_sf_guitar_case_01a`, coords = vector4(-550.82, 281.7, 82.98, -180.0)}, 1, 0) end CreateModelHide(vector3(-549.85, 284.39, 82.98), 1.5, -1682380775, true) CreateModelHide(vector3(-552.55, 284.92, 82.98), 10.5, 134974407, true) CreateModelHide(vector3(-552.55, 284.92, 82.98), 10.5, 395681893, true) CreateModelHide(vector3(-552.55, 284.92, 82.98), 10.5, 61087258, true) end CreateModelHide(vector3(-562.26, 288.59, 82.18), 1.5, -1720513558, true) CreateModelHide(vector3(-564.27, 279.39, 82.98), 1.5, -501934650, true) CreateModelHide(vector3(-565.5, 287.46, 85.38), 1.5, -242975151, true) CreateModelHide(vector3(-565.5, 287.46, 85.38), 1.5, 1923645595, true) CreateModelHide(vector3(-562.15, 289.79, 82.18), 1.5, 1923645595, true) CreateModelHide(vector3(-562.15, 289.79, 82.18), 1.5, -242975151, true) Targets["TeqFridge"] = exports['qb-target']:AddBoxZone("TeqFridge", vector3(-562.82, 285.87, 82.18), 1.9, 0.2, { name="TeqFridge", heading = 355.0, debugPoly=Config.Debug, minZ=81.18, maxZ=82.18 }, { options = { { event = "jim-tequilala:Shop", icon = "fas fa-archive", label = Loc[Config.Lan].targetinfo["open_fridge"], job = "tequilala", shop = Config.DrinkItems }, }, distance = 1.5 }) Targets["TeqFridge2"] = exports['qb-target']:AddBoxZone("TeqFridge2", vector3(-562.66, 287.85, 82.18), 2.0, 0.2, { name="TeqFridge2", heading = 355.0, debugPoly=Config.Debug, minZ=81.18, maxZ=82.18 }, { options = { { event = "jim-tequilala:Shop", icon = "fas fa-archive", label = Loc[Config.Lan].targetinfo["open_fridge"], job = "tequilala", shop = Config.DrinkItems }, }, distance = 1.5 }) Targets["TeqFridge3"] = exports['qb-target']:AddBoxZone("TeqFridge3", vector3(-562.47, 289.47, 82.18), 1.2, 0.2, { name="TeqFridge3", heading = 355.0, debugPoly=Config.Debug, minZ=81.18, maxZ=82.18 }, { options = { { event = "jim-tequilala:Shop", icon = "fas fa-archive", label = Loc[Config.Lan].targetinfo["open_fridge"], job = "tequilala", shop = Config.DrinkItems }, }, distance = 1.5 }) Targets["TeqFridge4"] = exports['qb-target']:AddBoxZone("TeqFridge4", vector3(-566.03, 285.29, 85.38), 1.6, 0.2, { name="TeqFridge4", heading = 355.0, debugPoly=Config.Debug, minZ=84.38, maxZ=85.38 }, { options = { { event = "jim-tequilala:Shop", icon = "fas fa-archive", label = Loc[Config.Lan].targetinfo["open_fridge"], job = "tequilala", shop = Config.DrinkItems }, }, distance = 1.5 }) Targets["TeqFridge5"] = exports['qb-target']:AddBoxZone("TeqFridge5", vector3(-565.94, 286.94, 85.38), 1.6, 0.2, { name="TeqFridge5", heading = 355.0, debugPoly=Config.Debug, minZ=84.38, maxZ=85.38 }, { options = { { event = "jim-tequilala:Shop", icon = "fas fa-archive", label = Loc[Config.Lan].targetinfo["open_fridge"], job = "tequilala", shop = Config.DrinkItems }, }, distance = 1.5 }) --HAND WASHES Targets["TeqWash"] = exports['qb-target']:AddBoxZone("TeqWash", vector3(-561.32, 286.1, 82.18), 0.5, 0.35, { name="TeqWash", heading = 355.0, debugPoly=Config.Debug, minZ=81.78, maxZ=82.18 }, { options = { { event = "jim-tequilala:washHands", icon = "fas fa-hand-holding-water", label = Loc[Config.Lan].targetinfo["wash_hands"] }, }, distance = 1.5 }) Targets["TeqWash2"] = exports['qb-target']:AddBoxZone("TeqWash2", vector3(-561.2, 287.4, 82.18), 0.5, 0.35, { name="TeqWash2", heading = 355.0, debugPoly=Config.Debug, minZ=81.78, maxZ=82.18 }, { options = { { event = "jim-tequilala:washHands", icon = "fas fa-hand-holding-water", label = Loc[Config.Lan].targetinfo["wash_hands"] }, }, distance = 1.5 }) --COUNTERS Targets["TeqCounter"] = exports['qb-target']:AddBoxZone("TeqCounter", vector3(-560.91, 287.37, 82.18), 0.45, 0.25, { name="TeqCounter", heading = 353.0, debugPoly=Config.Debug, minZ=82.18, maxZ=82.58 }, { options = { { event = "jim-tequilala:Stash", icon = "fas fa-wine-glass-alt", label = Loc[Config.Lan].targetinfo["open_counter"], stash = "Counter" }, }, distance = 2.0 }) Targets["TeqCounter2"] = exports['qb-target']:AddBoxZone("TeqCounter2", vector3(-561.02, 286.07, 82.18), 0.45, 0.25, { name="TeqCounter2", heading = 356.0, debugPoly=Config.Debug, minZ=82.18, maxZ=82.58 }, { options = { { event = "jim-tequilala:Stash", icon = "fas fa-wine-glass-alt", label = Loc[Config.Lan].targetinfo["open_counter"], stash = "Counter2" }, }, distance = 2.0 }) Targets["TeqCounter3"] = exports['qb-target']:AddBoxZone("TeqCounter3", vector3(-561.16, 284.79, 82.18), 0.45, 0.25, { name="TeqCounter3", heading = 353.0, debugPoly=Config.Debug, minZ=82.18, maxZ=82.58 }, { options = { { event = "jim-tequilala:Stash", icon = "fas fa-wine-glass-alt", label = Loc[Config.Lan].targetinfo["open_counter"], stash = "Counter3" }, }, distance = 2.0 }) Targets["TeqCounter4"] = exports['qb-target']:AddBoxZone("TeqCounter4", vector3(-564.12, 286.87, 85.38), 0.45, 0.25, { name="TeqCounter4", heading = 356.0, debugPoly=Config.Debug, minZ=85.38, maxZ=85.98 }, { options = { { event = "jim-tequilala:Stash", icon = "fas fa-wine-glass-alt", label = Loc[Config.Lan].targetinfo["open_counter"], stash = "Counter4" }, }, distance = 2.0 }) Targets["TeqCounter5"] = exports['qb-target']:AddBoxZone("TeqCounter5", vector3(-564.24, 285.57, 85.38), 0.45, 0.25, { name="TeqCounter5", heading = 353.0, debugPoly=Config.Debug, minZ=85.38, maxZ=85.98 }, { options = { { event = "jim-tequilala:Stash", icon = "fas fa-wine-glass-alt", label = Loc[Config.Lan].targetinfo["open_counter"], stash = "Counter5" }, }, distance = 2.0 }) --CASH REGISTERS Targets["TeqReceipt"] = exports['qb-target']:AddBoxZone("TeqReceipt", vector3(-562.97, 287.49, 82.18), 0.4, 0.4, { name="TeqReceipt", heading = 350.0, debugPoly=Config.Debug, minZ=82.18, maxZ=82.78 }, { options = { { event = "jim-payments:client:Charge", icon = "fas fa-credit-card", label = Loc[Config.Lan].targetinfo["charge_customer"], job = "tequilala", img = "

" } }, distance = 2.0 }) Targets["TeqReceipt2"] = exports['qb-target']:AddBoxZone("TeqReceipt2", vector3(-566.27, 284.69, 85.38), 0.4, 0.4, { name="TeqReceipt2", heading = 0.0, debugPoly=Config.Debug, minZ=85.38, maxZ=86.03 }, { options = { { event = "jim-payments:client:Charge", icon = "fas fa-credit-card", label = Loc[Config.Lan].targetinfo["charge_customer"], job = "tequilala", img = "

" } }, distance = 2.0 }) --COCKTAIL CHOPPING BOARDS Targets["TeqCocktails"] = exports['qb-target']:AddBoxZone("TeqCocktails", vector3(-562.81, 288.67, 82.18), 0.6, 0.4, { name="TeqCocktails", heading = 0.0, debugPoly=Config.Debug, minZ=82.18, maxZ=82.58 }, { options = { { event = "jim-tequilala:Crafting", icon = "fas fa-cocktail", label = Loc[Config.Lan].targetinfo["prepare_cocktails"], job = "tequilala", craftable = Crafting.Cocktails, header = Loc[Config.Lan].menu["prepare_cockt"] }, }, distance = 2.0 }) Targets["TeqCocktails2"] = exports['qb-target']:AddBoxZone("TeqCocktails2", vector3(-566.03, 287.48, 85.38), 0.6, 0.4, { name="TeqCocktails2", heading = 0.0, debugPoly=Config.Debug, minZ=85.38, maxZ=85.98 }, { options = { { event = "jim-tequilala:Crafting", icon = "fas fa-cocktail", label = Loc[Config.Lan].targetinfo["prepare_cocktails"], job = "tequilala", craftable = Crafting.Cocktails, header = Loc[Config.Lan].menu["prepare_cockt"] }, }, distance = 2.0 }) --BEER TAPS Targets["TeqTap"] = exports['qb-target']:AddBoxZone("TeqTap", vector3(-560.94, 288.04, 82.18), 0.65, 0.2, { name="TeqTap", heading = 355.0, debugPoly=Config.Debug, minZ=82.23, maxZ=82.98 }, { options = { { event = "jim-tequilala:Crafting", icon = "fas fa-beer", label = Loc[Config.Lan].targetinfo["pour_beer"], job = "tequilala", craftable = Crafting.Beer, header = Loc[Config.Lan].menu["beer_menu"] }, }, distance = 1.5 }) Targets["TeqTap2"] = exports['qb-target']:AddBoxZone("TeqTap2", vector3(-561.17, 285.42, 82.18), 0.65, 0.2, { name="TeqTap2", heading = 355.0, debugPoly=Config.Debug, minZ=82.23, maxZ=82.98 }, { options = { { event = "jim-tequilala:Crafting", icon = "fas fa-beer", label = Loc[Config.Lan].targetinfo["pour_beer"], job = "tequilala", craftable = Crafting.Beer, header = Loc[Config.Lan].menu["beer_menu"] }, }, distance = 1.5 }) Targets["TeqTap3"] = exports['qb-target']:AddBoxZone("TeqTap3", vector3(-564.21, 286.28, 85.38), 0.65, 0.2, { name="TeqTap3", heading = 355.0, debugPoly=Config.Debug, minZ=85.38, maxZ=86.18 }, { options = { { event = "jim-tequilala:Crafting", icon = "fas fa-beer", label = Loc[Config.Lan].targetinfo["pour_beer"], job = "tequilala", craftable = Crafting.Beer, header = Loc[Config.Lan].menu["beer_menu"] }, }, distance = 1.5 }) --COFFEE Targets["TeqCoffee"] = exports['qb-target']:AddBoxZone("TeqCoffee", vector3(-562.76, 289.95, 82.18), 0.6, 0.4, { name="TeqCoffee", heading = 40.0, debugPoly=Config.Debug, minZ=82.23, maxZ=82.78 }, { options = { { event = "jim-tequilala:JustGive", icon = "fas fa-mug-hot", label = Loc[Config.Lan].targetinfo["pour_coffee"], job = "tequilala", id = "coffee"}, }, distance = 2.0 }) Targets["TeqCoffee2"] = exports['qb-target']:AddBoxZone("TeqCoffee2", vector3(-566.02, 288.01, 85.38), 0.2, 0.4, { name="TeqCoffee2", heading = 347.0, debugPoly=Config.Debug, minZ=85.38, maxZ=85.98 }, { options = { { event = "jim-tequilala:JustGive", icon = "fas fa-mug-hot", label = Loc[Config.Lan].targetinfo["pour_coffee"], job = "tequilala", id = "coffee"}, }, distance = 2.0 }) --CLOCKIN Targets["TeqClockin"] = exports['qb-target']:AddBoxZone("TeqClockin", vector3(-560.68, 289.25, 82.18), 0.6, 0.6, { name="TeqClockin", heading = 15.0, debugPoly=Config.Debug, minZ=82.18, maxZ=82.68 }, { options = { { type = "server", event = "QBCore:ToggleDuty", icon = "fas fa-user-check", label = Loc[Config.Lan].targetinfo["toggle_duty"], job = "tequilala" }, { event = "qb-bossmenu:client:OpenMenu", icon = "fas fa-list", label = Loc[Config.Lan].targetinfo["open_bossmenu"], job = bossroles }, }, distance = 2.0 }) if Config.MLO == "base" then --DOOR TELEPORTS Targets["TeqDoor"] = exports['qb-target']:AddBoxZone("TeqDoor", vector3(-561.63, 290.16, 82.18), 0.2, 1.15, { name="UniDoor", heading = 355.0, debugPoly=Config.Debug, minZ=81.23, maxZ=83.33 }, { options = { { event = "jim-tequilala:Door", icon = "fas fa-door-open", label = Loc[Config.Lan].targetinfo["top_bar_access"], job = "tequilala", door = 2 }, }, distance = 2.0 }) Targets["TeqDoor2"] = exports['qb-target']:AddBoxZone("TeqDoor2", vector3(-565.28, 284.32, 85.38), 0.2, 1.2, { name="UniDoor2", heading = 355.0, debugPoly=Config.Debug, minZ=84.38, maxZ=86.78 }, { options = { { event = "jim-tequilala:Door", icon = "fas fa-door-open", label = Loc[Config.Lan].targetinfo["top_bar_exit"], job = "tequilala", door = 1 }, }, distance = 2.0 }) --ENTRANCE CHARGE Targets["TeqReceipt3"] = exports['qb-target']:AddBoxZone("TeqReceipt3", vector3(-562.79, 279.08, 82.98), 0.4, 0.4, { name="TeqReceipt3", heading = 340.0, debugPoly=Config.Debug, minZ=82.78, maxZ=83.58 }, { options = { { event = "jim-payments:client:Charge", icon = "fas fa-credit-card", label = Loc[Config.Lan].targetinfo["charge_customer"], job = "tequilala", img = "

" } }, distance = 2.0 }) if Config.useDLC then --Instruments Targets["TeqDrums"] = exports['qb-target']:AddBoxZone("TeqDrums", vector3(-550.68, 284.58, 82.97), 1.8, 1.0, { name="TeqDrums", heading = 353.0, debugPoly=Config.Debug, minZ=81.97, maxZ=83.57 }, { options = { { event = "jim-tequilala:anim", icon = "fas fa-drum", label = Loc[Config.Lan].targetinfo["use_drum_kit"], anim= "drum", } }, distance = 2.0 }) Targets["TeqGuitar"] = exports['qb-target']:AddBoxZone("TeqGuitar", vector3(-550.33, 287.31, 82.98), 1.4, 0.6, { name="TeqGuitar", heading = 0.0, debugPoly=Config.Debug, minZ=81.98, maxZ=82.78 }, { options = { { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["acoustic"], anim= "guitar", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["flying_v"], anim= "guitarelectric", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["gibson"], anim= "guitarelectric2", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["love_fist_quitar"], anim= "guitarelectric4", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["dime_green"], anim= "guitarelectric3", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["dime_red"], anim= "guitarelectric5", }, }, distance = 2.0 }) Targets["TeqGuitar2"] = exports['qb-target']:AddBoxZone("TeqGuitar2", vector3(-550.82, 281.41, 82.98), 1.4, 0.6, { name="TeqGuitar2", heading = 0.0, debugPoly=Config.Debug, minZ=81.98, maxZ=82.78 }, { options = { { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["acoustic"], anim= "guitar", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["flying_v"], anim= "guitarelectric", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["gibson"], anim= "guitarelectric2", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["love_fist_quitar"], anim= "guitarelectric4", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["dime_green"], anim= "guitarelectric3", }, { event = "jim-tequilala:anim", icon = "fas fa-guitar", label = Loc[Config.Lan].targetinfo["dime_red"], anim= "guitarelectric5", }, }, distance = 2.0 }) end elseif Config.MLO == "hass" then --ENTRANCE CHARGE Targets["TeqReceipt3"] = exports['qb-target']:AddBoxZone("TeqReceipt3", vector3(-563.28, 278.75, 83.14), 0.45, 0.35, { name="TeqReceipt3", heading = 0.0, debugPoly=Config.Debug, minZ=83.14, maxZ=83.54 }, { options = { { event = "jim-payments:client:Charge", icon = "fas fa-credit-card", label = Loc[Config.Lan].targetinfo["charge_customer"], job = "tequilala", img = "

" } }, distance = 2.0 }) end for i = 1, #Config.Locations do if Config.Locations[i].Booth.enableBooth then Targets["TeqBooth"..i] = exports['qb-target']:AddCircleZone("TeqBooth"..i, Config.Locations[i].Booth.coords, 0.75, {name="TeqBooth"..i, debugPoly=Config.Debug, useZ=true, }, { options = { { event = "jim-tequilala:client:playMusic", icon = "fab fa-youtube", label = Loc[Config.Lan].targetinfo["dj_booth"], job = "tequilala", zone = i, }, }, distance = 2.0 }) end end end) RegisterNetEvent('jim-tequilala:anim', function(data) if data.anim == "drum" then FreezeEntityPosition(PlayerPedId(), false) ExecuteCommand("e drummer") SetEntityCoords(PlayerPedId(), -549.95, 284.37, 82.98-0.8, 0, 0, 0, false) SetEntityHeading(PlayerPedId(), 111.6) Wait(100) ExecuteCommand("e drummer") else ExecuteCommand("e ".. (data.anim)) end end) RegisterNetEvent('jim-tequilala:Door', function(data) DoScreenFadeOut(500) while not IsScreenFadedOut() do Citizen.Wait(10) end if data.door == 1 then SetEntityCoords(PlayerPedId(), -561.78, 289.85, 82.18, 0, 0, 0, false) SetEntityHeading(PlayerPedId(), 174.28) elseif data.door == 2 then SetEntityCoords(PlayerPedId(), -565.27, 284.67, 85.38, 0, 0, 0, false) SetEntityHeading(PlayerPedId(), 355.47) end DoScreenFadeIn(1000) Wait(100) end) RegisterNetEvent('jim-tequilala:washHands', function(data) QBCore.Functions.Progressbar('washing_hands', Loc[Config.Lan].progressbar["washing_hands"], 5000, false, false, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_arresting", anim = "a_uncuff", flags = 8, }, {}, {}, function() TriggerEvent('QBCore:Notify', Loc[Config.Lan].success["success_washed_hands"], 'success') end, function() TriggerEvent('inventory:client:busy:status', false) TriggerEvent('QBCore:Notify', Loc[Config.Lan].error["cancelled"], 'error') end, data.icon) end) RegisterNetEvent('jim-tequilala:Stash', function(data) TriggerServerEvent("inventory:server:OpenInventory", "stash", "Tequila_"..data.stash) TriggerEvent("inventory:client:SetCurrentStash", "Tequila_"..data.stash) end) RegisterNetEvent('jim-tequilala:Shop', function(data) if not jobCheck() then return end local event = "inventory:server:OpenInventory" if Config.JimShop then event = "jim-shops:ShopOpen" end TriggerServerEvent(event, "shop", "tequilala", data.shop) end) RegisterNetEvent('jim-tequilala:Crafting:MakeItem', function(data) local bartext = "" for i = 1, #Crafting.Cocktails do for k, v in pairs(Crafting.Cocktails[i]) do if data.item == k then bartext = Loc[Config.Lan].menu["mixing"] bartime = 7000 animDictNow = "anim@heists@prison_heiststation@cop_reactions" animNow = "cop_b_idle" end end end for i = 1, #Crafting.Beer do for k, v in pairs(Crafting.Beer[i]) do if data.item == k then bartext = Loc[Config.Lan].menu["pouring"] bartime = 3000 animDictNow = "mp_ped_interaction" animNow = "handshake_guy_a" end end end if data.item == "coffee" then bartext = Loc[Config.Lan].menu["pouring"] bartime = 3000 animDictNow = "mp_ped_interaction" animNow = "handshake_guy_a" end QBCore.Functions.Progressbar('making_food', bartext..QBCore.Shared.Items[data.item].label, bartime, false, true, { disableMovement = true, disableCarMovement = false, disableMouse = false, disableCombat = false, }, { animDict = animDictNow, anim = animNow, flags = 8, }, {}, {}, function() TriggerServerEvent('jim-tequilala:Crafting:GetItem', data.item, data.craft) Wait(500) TriggerEvent("jim-tequilala:Crafting", data) end, function() -- Cancel TriggerEvent('inventory:client:busy:status', false) end, data.item) end) RegisterNetEvent('jim-tequilala:Crafting', function(data) local Menu = {} Menu[#Menu + 1] = { header = data.header, txt = "", isMenuHeader = true } Menu[#Menu + 1] = { icon = "fas fa-circle-xmark", header = "", txt = Loc[Config.Lan].menu["close"], params = { event = "" } } for i = 1, #data.craftable do for k, v in pairs(data.craftable[i]) do if k ~= "amount" then local text = "" setheader = ""..QBCore.Shared.Items[tostring(k)].label if data.craftable[i]["amount"] ~= nil then setheader = setheader.." x"..data.craftable[i]["amount"] end local disable = false local checktable = {} for l, b in pairs(data.craftable[i][tostring(k)]) do if b == 1 then number = "" else number = " x"..b end text = text.."- "..QBCore.Shared.Items[l].label..number.."
" settext = text checktable[l] = HasItem(l, b) end for _, v in pairs(checktable) do if v == false then disable = true break end end if not disable then setheader = setheader.." ✔️" end Menu[#Menu + 1] = { disabled = disable, icon = k, header = setheader, txt = settext, params = { event = "jim-tequilala:Crafting:MakeItem", args = { item = k, craft = data.craftable[i], craftable = data.craftable, header = data.header } } } settext, setheader = nil end end end exports['qb-menu']:openMenu(Menu) end) function FoodProgress(ItemMake, craftable) QBCore.Functions.Progressbar('making_food', Loc[Config.Lan].progressbar["pouring_prog"]..QBCore.Shared.Items[ItemMake].label, 3000, false, false, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_ped_interaction", anim = "handshake_guy_a", flags = 8, }, {}, {}, function() TriggerServerEvent('jim-tequilala:Crafting:GetItem', ItemMake, craftable) end, function() -- Cancel TriggerEvent('inventory:client:busy:status', false) TriggerEvent('QBCore:Notify', "Cancelled!", 'error') end, ItemMake) end RegisterNetEvent('jim-tequilala:JustGive', function(data) if not onDuty then TriggerEvent('QBCore:Notify', Loc[Config.Lan].error["not_clocked_in"], 'error') else FoodProgress(data.id) end end) RegisterNetEvent('jim-tequilala:client:DrinkAlcohol', function(itemName) if itemName == "ambeer" then ExecuteCommand("e beer3") elseif itemName == "dusche" then ExecuteCommand("e beer1") elseif itemName == "logger" then ExecuteCommand("e beer2") elseif itemName == "pisswasser" then ExecuteCommand("e beer4") elseif itemName == "pisswasser2" then ExecuteCommand("e beer5") elseif itemName == "pisswasser3" then ExecuteCommand("e beer6") elseif itemName == "b52" or itemName == "brussian" or itemName == "bkamikaze" or itemName == "cappucc" or itemName == "ccookie" or itemName == "iflag" or itemName == "kamikaze" or itemName == "sbullet" or itemName == "voodoo" or itemName == "woowoo" then ExecuteCommand("e whiskey") elseif itemName == "icream" then ExecuteCommand("e icream") elseif itemName == "rum" then ExecuteCommand("e rumb") elseif itemName == "gin" then ExecuteCommand("e ginb") elseif itemName == "scotch" then ExecuteCommand("e whiskeyb") elseif itemName == "vodka" or itemName == "amaretto" or itemName == "curaco" then ExecuteCommand("e vodkab") else ExecuteCommand("e flute") end QBCore.Functions.Progressbar("snort_coke", Loc[Config.Lan].progressbar["drinking"]..QBCore.Shared.Items[itemName].label.."..", math.random(3000, 6000), false, true, { disableMovement = false, disableCarMovement = false, disableMouse = false, disableCombat = true, }, {}, {}, {}, function() -- Done ExecuteCommand("e c") toggleItem(false, itemName, 1) if QBCore.Shared.Items[itemName].hunger then TriggerServerEvent("QBCore:Server:SetMetaData", "hunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + QBCore.Shared.Items[itemName].hunger) TriggerServerEvent("consumables:server:addHunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + QBCore.Shared.Items[itemName].hunger) end if QBCore.Shared.Items[itemName].thirst then TriggerServerEvent("QBCore:Server:SetMetaData", "thirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) TriggerServerEvent("consumables:server:addThirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) end alcoholCount = alcoholCount + 1 if alcoholCount > 1 and alcoholCount < 4 then TriggerEvent("evidence:client:SetStatus", "alcohol", 200) elseif alcoholCount >= 4 then TriggerEvent("evidence:client:SetStatus", "heavyalcohol", 200) AlienEffect() end end, function() -- Cancel ExecuteCommand("e c") QBCore.Functions.Notify(Loc[Config.Lan].error["cancelled"], "error") end, itemName) end) function AlienEffect() StartScreenEffect("DrugsMichaelAliensFightIn", 3.0, 0) Wait(math.random(5000, 8000)) local ped = PlayerPedId() RequestAnimSet("MOVE_M@DRUNK@VERYDRUNK") while not HasAnimSetLoaded("MOVE_M@DRUNK@VERYDRUNK") do Citizen.Wait(0) end SetPedCanRagdoll( ped, true ) ShakeGameplayCam('DRUNK_SHAKE', 2.80) SetTimecycleModifier("Drunk") SetPedMovementClipset(ped, "MOVE_M@DRUNK@VERYDRUNK", true) SetPedMotionBlur(ped, true) SetPedIsDrunk(ped, true) Wait(1500) SetPedToRagdoll(ped, 5000, 1000, 1, false, false, false ) Wait(13500) SetPedToRagdoll(ped, 5000, 1000, 1, false, false, false ) Wait(120500) ClearTimecycleModifier() ResetScenarioTypesEnabled() ResetPedMovementClipset(ped, 0) SetPedIsDrunk(ped, false) SetPedMotionBlur(ped, false) AnimpostfxStopAll() ShakeGameplayCam('DRUNK_SHAKE', 0.0) StartScreenEffect("DrugsMichaelAliensFight", 3.0, 0) Wait(math.random(45000, 60000)) StartScreenEffect("DrugsMichaelAliensFightOut", 3.0, 0) StopScreenEffect("DrugsMichaelAliensFightIn") StopScreenEffect("DrugsMichaelAliensFight") StopScreenEffect("DrugsMichaelAliensFightOut") end RegisterNetEvent('jim-tequilala:client:Drink', function(itemName) if itemName == "sprunk" or itemName == "sprunklight" then ExecuteCommand("e sprunk") elseif itemName == "ecola" or itemName == "ecolalight" then ExecuteCommand("e ecola") elseif itemName == "cranberry" then ExecuteCommand("e wine") elseif itemName == "coffee" then ExecuteCommand("e coffee") end QBCore.Functions.Progressbar("drink_something", Loc[Config.Lan].progressbar["drinking"]..QBCore.Shared.Items[itemName].label.."..", 5000, false, true, { disableMovement = false, disableCarMovement = false, disableMouse = false, disableCombat = true, }, {}, {}, {}, function() ExecuteCommand("e c") toggleItem(false, itemName, 1) TriggerServerEvent("QBCore:Server:SetMetaData", "thirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) TriggerServerEvent("consumables:server:addThirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) end, function() -- Cancel ExecuteCommand("e c") end, itemName) end) RegisterNetEvent('jim-tequilala:client:Eat', function(itemName) if itemName == "crisps" then ExecuteCommand("e crisps") else ExecuteCommand("e burger") end QBCore.Functions.Progressbar("eat_something", Loc[Config.Lan].progressbar["eating"]..QBCore.Shared.Items[itemName].label.."..", 5000, false, true, { disableMovement = false, disableCarMovement = false, disableMouse = false, disableCombat = true, }, {}, {}, {}, function() -- Done ExecuteCommand("e c") toggleItem(false, itemName, 1) if QBCore.Shared.Items[itemName].hunger then TriggerServerEvent("QBCore:Server:SetMetaData", "hunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + QBCore.Shared.Items[itemName].hunger) TriggerServerEvent("consumables:server:addHunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + QBCore.Shared.Items[itemName].hunger) end if QBCore.Shared.Items[itemName].thirst then TriggerServerEvent("QBCore:Server:SetMetaData", "thirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) TriggerServerEvent("consumables:server:addThirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + QBCore.Shared.Items[itemName].thirst) end TriggerServerEvent('hud:server:RelieveStress', math.random(2, 4)) end, function() -- Cancel ExecuteCommand("e c") end, itemName) end) -- CUSTOM DJ BOOTH STUFF RegisterNetEvent('jim-tequilala:client:playMusic', function(data) exports['qb-menu']:openMenu({ { isMenuHeader = true, header = '
' }, { icon = "fas fa-circle-xmark", header = "", txt = Loc[Config.Lan].menu["close"], params = { event = "qb-menu:client:closemenu" } }, { icon = "fab fa-youtube", header = Loc[Config.Lan].menu["play_song"], txt = Loc[Config.Lan].menu["youtube_link"], params = { event = 'jim-tequilala:client:musicMenu', args = { zoneNum = data.zone } } }, { icon = "fas fa-pause", header = Loc[Config.Lan].menu["pause_music"], txt = Loc[Config.Lan].menu["pause_music"], params = { isServer = true, event = 'jim-tequilala:server:pauseMusic', args = { zoneNum = data.zone } } }, { icon = "fas fa-play", header = Loc[Config.Lan].menu["resume_music"], txt = Loc[Config.Lan].menu["resume_music"], params = { isServer = true, event = 'jim-tequilala:server:resumeMusic', args = { zoneNum = data.zone } } }, { icon = "fas fa-volume-off", header = Loc[Config.Lan].menu["volume"], txt = Loc[Config.Lan].menu["change_volume"], params = { event = 'jim-tequilala:client:changeVolume', args = { zoneNum = data.zone } } }, { icon = "fas fa-stop", header = Loc[Config.Lan].menu["turn_off_music"], txt = Loc[Config.Lan].menu["stop_music"], params = { isServer = true, event = 'jim-tequilala:server:stopMusic', args = { zoneNum = data.zone } } } }) end) RegisterNetEvent('jim-tequilala:client:musicMenu', function(data) local dialog = exports['qb-input']:ShowInput({ header = 'Sangvalg', submitText = "Okay", inputs = { { type = 'text', isRequired = true, name = 'song', text = Loc[Config.Lan].menu["youtube_link"] } } }) if dialog then if not dialog.song then return end TriggerServerEvent('jim-tequilala:server:playMusic', dialog.song, data.zoneNum) end end) RegisterNetEvent('jim-tequilala:client:changeVolume', function(data) local dialog = exports['qb-input']:ShowInput({ header = 'Musik volume', submitText = "Okay", inputs = { { type = 'text', isRequired = true, name = 'volume', text = Loc[Config.Lan].menu["min_max"] } } }) if dialog then if not dialog.volume then return end TriggerServerEvent('jim-tequilala:server:changeVolume', dialog.volume, data.zoneNum) end end) AddEventHandler('onResourceStop', function(resource) if resource ~= GetCurrentResourceName() then return end for k in pairs(Targets) do exports['qb-target']:RemoveZone(k) end for _, v in pairs(Props) do DeleteEntity(v) end end)