Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Config = {}
- Public = {}
- Config.Framework = "ESX" -- "ESX"/"QBCore"
- Config.Inventory = "ox" -- "ox"/"qb"
- Config.FinderBlipActive = true
- Config.InteractionType = "3dtext"-- "ox-target"/"3dtext"/"helpnotification"
- Config.Debug = false
- Config.MinCops = 1
- Config.CopJobs = {
- 'police',
- 'fbi'
- }
- Config.GPSTimer = 60 -- seconds (GPS will be stopped after Config.GPSTimer seconds)
- Config.GPSInterval = 10 -- seconds (How often the stolen vehicle's position is shown to cops)
- Config.GPSRadius = 120.0 -- The radius of the red circle
- Config.UseGPSOffset = true -- Randomize the center of the red circle
- Config.GPSBlip = {
- id = 227,
- color = 1,
- scale = 1.0,
- label = "Stolen Vehicle"
- }
- -- Default hotwires work using ox_lib. Please download ox_lib or edit Public.HotwireProgress and Public.HotwireSkillcheck
- Config.HotwireType = "skillcheck" -- "progress"/"skillcheck"
- Config.Hotwire = {
- ["progress"] = {
- hotwire_time = 20, -- seconds
- },
- ["skillcheck"] = {
- consecutive_skillchecks = 6,
- difficulty = 'easy' -- 'easy'/'medium'/'hard'
- }
- }
- Config.ShowDeliveryBlipOnlyInStolenVehicle = true
- Config.DeliveryPos = {
- {
- pos = vector3(3333.6, 5160.34, 19.1),
- showBlip = true,
- blip = {
- id = 303,
- color = 1,
- scale = 1.0,
- label = "Stolen Vehicle Delivery"
- }
- },
- {
- pos = vector3(-57.0, -2659.6, 6.9),
- showBlip = true,
- blip = {
- id = 303,
- color = 1,
- scale = 1.0,
- label = "Stolen Vehicle Delivery"
- }
- }
- }
- Config.UseLockpick = true
- Config.LockpickItem = 'lockpick'
- Config.UseDrill = true
- Config.DrillItem = 'drill'
- Config.DrillTime = 1 -- seconds
- Config.PayAccountMoney = 'black_money'
- Config.EarnAccountMoney = 'black_money'
- Config.GuardCombatAbility = 2 -- 0 / 1 / 2
- Config.VehicleFinder = {
- pos = vector4(1993.5, 3050.5, 46.27, 141.7),
- blip = {
- id = 671,
- color = 1,
- scale = 1.0,
- label = "Finder"
- },
- npc = 'u_m_m_streetart_01',
- anim = {
- dict = 'amb@prop_human_seat_chair@female@arms_folded@idle_a',
- name = 'idle_c'
- }
- }
- -- Make sure that these prices and the ones in possible_vehicles are the same!
- Config.VehiclePrices = {
- ['cinquemila'] = 100000,
- ['comet5'] = 70000,
- ['sultanrs'] = 25000,
- ['elegy'] = 30000,
- ['italirsx'] = 150000,
- ['zeno'] = 120000,
- }
- Config.OneVehTheft = {
- price = 20000,
- possible_vehicles = {
- ['elegy'] = 30000,
- ['comet5'] = 70000,
- --... You can add more random vehicles!
- },
- positions = {
- {
- pos = vector4(1381.9, 1118.6, 114.6, 45.35),
- guards = {
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- pos = vector4(1388.2, 1120.7, 114.6, 70.8),
- },
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- pos = vector4(1370.6, 1122.9, 114.12, 294.8),
- },
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- pos = vector4(1382.05, 1129.7, 114.3, 113.4),
- },
- },
- },
- {
- pos = vector4(-221.9, -1330.6, 30.9, 286.3),
- guards = {
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- pos = vector4(-220.8, -1326.3, 30.9, 238.1),
- },
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- pos = vector4(-214.3, -1317.7, 30.9, 206.92),
- },
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- pos = vector4(-212.4, -1334.3, 34.9, 31.18),
- }
- }
- }
- },
- }
- Config.TwoVehTheft = {
- trailer_blip = {
- id = 67,
- color = 1,
- scale = 1.0,
- label = "Trailer"
- },
- drivingStyle = 524735, --https://vespura.com/fivem/drivingstyle/
- drivingSpeed = 20.0,
- price = 60000,
- possible_vehicles = {
- ['cinquemila'] = 100000,
- ['italirsx'] = 150000,
- ['zeno'] = 120000,
- --... You can add more random vehicles!
- },
- positions = {
- {
- pos = vector4(-499.05, -2823.6, 5.99, 314.6),
- guards = {
- {
- car = 'dubsta',
- pos = vector4(-520.9, -2826.7, 5.99, 289.1),
- npcs = {
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- seat = -1 -- -1 is driver
- },
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- seat = 0 -- -1 is driver
- },
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- seat = 1 -- -1 is driver
- },
- }
- },
- {
- car = 'dominator',
- pos = vector4(-513.96, -2851.9, 5.99, 238.81),
- npcs = {
- {
- npc = 'u_m_m_streetart_01',
- weapon = 'WEAPON_PISTOL',
- seat = -1 -- -1 is driver
- }
- }
- },
- },
- },
- },
- }
- Config.BuyGarageMoneyAccount = 'black_money'
- --[[
- 994.5925, -3002.594, -39.64699
- -1350.0, 160.0, -100.0
- 800.13696, -3001.4297, -65.14074
- ]]
- Config.Garages = {
- {
- name = "garage_1",
- price = 30000,
- inside = vector4(797.592, -3012.012, -70.000, 5.38),
- outside = vector4(474.9, -1325.16, 28.5, 294.8),
- veh_take_out = vector4(478.56, -1333.13, 29.17, 255.11),
- positions = {
- vector4(800.141, -2996.755, -69.000, 90.0),
- vector4(800.268, -3002.740, -69.000, 90.0),
- vector4(800.296, -3008.445, -69.000, 90.0),
- },
- blip = {
- show = 'everyone', -- 'everyone'/'owner'/'noone'
- id = 357,
- color = 1,
- scale = 1.0,
- label = "Hidden Garage"
- }
- }
- }
- Config.VehicleDamages = {
- ['door_broken'] = 15,
- ['tire_broken'] = 15,
- ['light_broken'] = 15
- }
- Config.RepairPrice = 100 -- $ every 1% lost in vehicle's condition
- Public.ClientNotification = function(msg, type)
- FW.ClientNotify(msg)
- end
- Public.ServerNotification = function(source, msg, type)
- FW.ServerNotify(source, msg, type)
- end
- Public.AlertCops = function(vehicle, coords)
- -- If you have a custom dispatch system, edit this function!
- TriggerServerEvent('F_VehThief:AlertCops', NetworkGetNetworkIdFromEntity(vehicle), GetDisplayNameFromVehicleModel(GetEntityModel(vehicle))) -- Sends a notification to the jobs in Config.CopJobs
- TriggerServerEvent('F_VehThief:SendGPSToCops', NetworkGetNetworkIdFromEntity(vehicle)) -- Sends the stolen vehicle location to the jobs in Config.CopJobs
- end
- Public.HotwireProgress = function(cb)
- if exports.ox_lib:progressCircle({
- duration = Config.Hotwire['progress'].hotwire_time * 1000,
- position = 'bottom',
- useWhileDead = false,
- canCancel = false,
- disable = {
- car = true,
- move = true,
- combat = true
- },
- anim = {
- dict = 'anim@veh@plane@howard@front@ds@base',
- clip = 'hotwire'
- },
- }) then cb() end
- end
- Public.Drill = function(cb)
- if exports.ox_lib:progressCircle({
- duration = Config.DrillTime * 1000,
- position = 'bottom',
- useWhileDead = false,
- canCancel = false,
- disable = {
- car = true,
- move = true,
- combat = true
- },
- anim = {
- dict = 'anim@heists@fleeca_bank@drilling',
- clip = 'drill_left_fail'
- },
- }) then cb() end
- end
- Public.HotwireSkillcheck = function(cb)
- local success = nil
- while not HasAnimDictLoaded('anim@veh@plane@howard@front@ds@base') do
- RequestAnimDict('anim@veh@plane@howard@front@ds@base')
- Wait(100)
- end
- TaskPlayAnim(PlayerPedId(), 'anim@veh@plane@howard@front@ds@base', 'hotwire', 8.0, 8.0, -1, 31, 1.0, 0, 0, 0)
- while not success do
- local skillchecks = {}
- for i=1,3 do
- table.insert(skillchecks, Config.Hotwire['skillcheck'].difficulty)
- end
- success = exports.ox_lib:skillCheck(skillchecks, {'w', 'a', 's', 'd'})
- if success then
- exports.ox_lib:cancelSkillCheck()
- StopEntityAnim(PlayerPedId(), 'hotwire', 'anim@veh@plane@howard@front@ds@base', 1.0)
- cb()
- end
- Wait(0)
- end
- end
- Config.Labels = {
- ['press_to_talk'] = 'Press [E] to talk',
- ['press_to_talk_helpnotification'] = 'Press ~INPUT_CONTEXT~ to talk',
- ['talk'] = "Talk",
- ['not_enough_cops'] = "There are not enough cops",
- ['finder_text'] = "What are you looking for?",
- ['vehicles'] = 'Vehicles:',
- ['gps'] = 'GPS:',
- ['guards'] = 'Guards:',
- ['reward'] = 'Reward:',
- ['price'] = 'Price:',
- ['info'] = "Info",
- ['cancel'] = "CANCEL",
- ['confirm'] = "CONFIRM",
- ['info-1'] = "I will send you the location of the vehicle, but be careful: there may be guards. Open the vehicle using a lockpick and run as fast as you can! A GPS may be present in your vehicle and police will be able to see your position! If you have a garage, you can take the vehicle here to remove the GPS.",
- ['info-2'] = "I will send you the location of the truck, but be careful: there may be guards. Drill the truck's ramp and then open the vehicles using lockpicks! A GPS may be present in your vehicle and police will be able to see your position! If you have a garage, you can take the vehicle here to remove the GPS.",
- ['not_enough_money'] = "You do not have enough money!",
- ['job_start'] = "You accepted the job! Check your map.",
- ['break_window_target'] = "Break Window",
- ['use_lockpick_kit_target'] = "Use Lockpick Kit",
- ['break_window_3dtext'] = "[E] Break Window",
- ['use_lockpick_kit_3dtext'] = "[G] Use Lockpick Kit",
- ['break_window_helpnotification'] = "~INPUT_CONTEXT~ Break Window",
- ['use_lockpick_kit_helpnotification'] ="~INPUT_DETONATE~ Use Lockpick Kit",
- ['cops_notification'] = "A %s was stolen! Check your GPS!",
- ['open_garage_3dtext'] = "[E] Garage",
- ['open_garage_helpnotification'] = "~INPUT_CONTEXT~ Garage",
- ['open_garage_target'] = "Garage",
- ['exit_garage_3dtext'] = "[E] Exit Garage",
- ['exit_garage_helpnotification'] = "~INPUT_CONTEXT~ Exit Garage",
- ['exit_garage_target'] = "Exit Garage",
- ['veh_not_stolen'] = "This is not a stolen vehicle!",
- ['garage_full'] = "Your garage is full!",
- ['price_2'] = "Price",
- ['slots'] = "Slots",
- ['buy_this_garage'] = "Would you like to buy this garage?",
- ['garage_bought'] = "You bought this garage!",
- ['garage_veh_data'] = "Name: %s\nCondition: %s\n[E] Take Out\n[G] Repair (%s$)",
- ['sell_vehicle'] = "Sell Vehicle",
- ['sell_this_vehicle'] = "Would you like to sell this vehicle?",
- ['you_earned'] = "You earned %s$",
- ['sell_3dtext'] = "[E] Sell Vehicle",
- ['sell_helpnotification'] = "~INPUT_CONTEXT~ Sell Vehicle",
- ['drill_target'] = "Drill",
- ['drill_3dtext'] = "[E] Drill",
- ['drill_helpnotification'] = "~INPUT_CONTEXT~ Drill",
- ['no_drill'] = "You do not have a drill!"
- }
- while not Utils do
- Wait(10)
- end
- -- UI STUFF, DO NOT TOUCH!
- Config.OneVehTheft.minGuards = Utils.GetMinGuards(Config.OneVehTheft.positions)
- Config.OneVehTheft.maxGuards = Utils.GetMaxGuards(Config.OneVehTheft.positions)
- Config.OneVehTheft.minReward = tostring(math.floor(Utils.GetMinReward(Config.OneVehTheft.possible_vehicles)/1000))..'k'
- Config.OneVehTheft.maxReward = tostring(math.floor(Utils.GetMaxReward(Config.OneVehTheft.possible_vehicles)/1000))..'k'
- Config.TwoVehTheft.minGuards = Utils.GetMinGuards2(Config.TwoVehTheft.positions)
- Config.TwoVehTheft.maxGuards = Utils.GetMaxGuards2(Config.TwoVehTheft.positions)
- Config.TwoVehTheft.minReward = tostring(math.floor(Utils.GetMinReward(Config.TwoVehTheft.possible_vehicles)/1000))..'k'
- Config.TwoVehTheft.maxReward = tostring(math.floor(Utils.GetMaxReward(Config.TwoVehTheft.possible_vehicles)/1000))..'k'
Add Comment
Please, Sign In to add comment