2026-04-15 21:35:01 +02:00

166 lines
9.2 KiB
Lua

Config = {}
-- ══════════════════════════════════════════════════════════════
-- FRAMEWORK & DATABASE
-- ══════════════════════════════════════════════════════════════
Config.Framework = "esx" -- "esx" | "newqb" | "oldqb"
Config.NewESX = true
Config.SQL = "oxmysql"
-- ══════════════════════════════════════════════════════════════
-- FEATURES
-- ══════════════════════════════════════════════════════════════
Config.Blip = true -- Map-Blips anzeigen
Config.Debug = false -- Debug-Ausgaben in der Console
-- Fahrzeug-Schlüssel System
Config.Vehiclekey = true
Config.VehicleKeySystem = "jaksam" -- jaksam | qs-vehiclekeys | wasabi-carlock | qb-vehiclekeys
Config.VehicleRemoveKey = true
Config.VehicleRemoveKeySystem = "jaksam"
-- Kraftstoff System
Config.EnableFuel = true
Config.FuelSystem = "x-fuel" -- LegacyFuel | x-fuel | ox-fuel | nd-fuel | frfuel | cdn-fuel
-- Impound
Config.Impound = true
Config.ImpoundPrice = 1500
Config.MoneyType = "bank"
-- Marker Farbe (Einpark-Zone)
Config.MarkerR = 255
Config.MarkerG = 165
Config.MarkerB = 0
Config.MarkerA = 200
-- NPC Einstellungen (standard)
Config.DefaultNpcModel = "a_m_m_prolhost_01"
Config.NpcInteractRadius = 2.5 -- Abstand zum NPC für E-Interaktion
Config.ParkRadius = 6.0 -- Einpark-Radius
-- Wie oft (ms) Fahrzeugpositionen gespeichert werden (Standard: 30 Sek.)
Config.PersistSaveInterval = 1000
-- ══════════════════════════════════════════════════════════════
-- ADMIN
-- ══════════════════════════════════════════════════════════════
-- ACE Permission die admins brauchen: add_ace group.admin mercyv-garage.admin allow
Config.AdminAce = "mercyv-garage.admin"
-- ══════════════════════════════════════════════════════════════
-- BENACHRICHTIGUNGEN
-- ══════════════════════════════════════════════════════════════
Config.Notify = {
GARAGE_OPEN_LATE = "Garage wird geladen...",
NO_VEHICLE = "Du besitzt kein Fahrzeug.",
NOT_OWNED = "Dieses Fahrzeug gehört dir nicht.",
WRONG_CLASS = "Diese Fahrzeugklasse ist hier nicht erlaubt.",
SPAWN_BLOCKED = "Spawn-Platz ist belegt.",
PARKED_IN = "Fahrzeug eingeparkt.",
TOOK_OUT = "Fahrzeug ausgeparkt.",
NO_ACCESS = "Kein Zugang zu dieser Garage.",
NO_MONEY = "Nicht genug Geld.",
IMPOUND_PAID = "Gebühr bezahlt.",
ALREADY_OUT = "Dieses Fahrzeug ist bereits draußen.",
ADMIN_SAVED = "Garage gespeichert.",
ADMIN_DELETED = "Garage gelöscht.",
ADMIN_NO_PERM = "Keine Berechtigung.",
}
-- ══════════════════════════════════════════════════════════════
-- NOTIFICATION FUNCTIONS (anpassen wenn nötig)
-- ══════════════════════════════════════════════════════════════
Config.ClientNotification = function(message, msgType, length)
exports['hex_4_hud']:Notify("Garage", message, msgType or "info", length or 3000)
end
Config.ServerNotification = function(source, message, msgType, length)
TriggerClientEvent("hex_4_hud:Notify", source, "Garage", message, msgType or "info", length or 3000)
end
-- ══════════════════════════════════════════════════════════════
-- FAHRZEUG-KLASSEN
-- ══════════════════════════════════════════════════════════════
Config.AllowedClasses = {
["normal"] = {[0]=true,[1]=true,[2]=true,[3]=true,[4]=true,[5]=true,
[6]=true,[7]=true,[8]=true,[9]=true,[10]=true,[11]=true,
[12]=true,[13]=true,[17]=true,[18]=true,[19]=true,[20]=true},
["aircraft"] = {[15]=true,[16]=true},
["boat"] = {[14]=true},
["jobgarage"]= {[0]=true,[1]=true,[2]=true,[3]=true,[4]=true,[5]=true,
[6]=true,[7]=true,[8]=true,[9]=true,[10]=true,[11]=true,
[12]=true,[13]=true,[14]=true,[15]=true,[16]=true,
[17]=true,[18]=true,[19]=true,[20]=true},
["impound"] = {[0]=true,[1]=true,[2]=true,[3]=true,[4]=true,[5]=true,
[6]=true,[7]=true,[8]=true,[9]=true,[10]=true,[11]=true,
[12]=true,[13]=true,[14]=true,[15]=true,[16]=true,
[17]=true,[18]=true,[19]=true,[20]=true},
}
-- ══════════════════════════════════════════════════════════════
-- JOB-FAHRZEUGE (für Jobgaragen)
-- Diese Fahrzeuge werden in der Job-Garage angezeigt
-- ══════════════════════════════════════════════════════════════
Config.JobVehicles = {
["police"] = {
{ model = "gbpolbisonhf", label = "Polizei Bison HF", grade = 0 },
{ model = "police3", label = "Polizei Cruiser", grade = 0 },
{ model = "police4", label = "Polizei Buffalo", grade = 0 },
{ model = "police2", label = "Polizei Stanier", grade = 0 },
{ model = "gbpolbisonstx", label = "Polizei Bison STX", grade = 0 },
},
["ambulance"] = {
{ model = "ambulance", label = "Krankenwagen", grade = 0 },
{ model = "frogger", label = "Frogger", grade = 0 },
},
}
-- ══════════════════════════════════════════════════════════════
-- FUEL HELPER
-- ══════════════════════════════════════════════════════════════
Config.SetVehicleFuel = function(vehicle, level)
if not Config.EnableFuel then
SetVehicleFuelLevel(vehicle, (level or 90) + 0.0)
return
end
local fs = Config.FuelSystem
if fs == 'LegacyFuel' then exports["LegacyFuel"]:SetFuel(vehicle, level)
elseif fs == 'x-fuel' then exports["x-fuel"]:SetFuel(vehicle, level)
elseif fs == 'ox-fuel' then SetVehicleFuelLevel(vehicle, level + 0.0)
elseif fs == 'nd-fuel' then exports["nd-fuel"]:SetFuel(vehicle, level)
elseif fs == 'frfuel' then exports.frfuel:setFuel(vehicle, level)
elseif fs == 'cdn-fuel' then exports['cdn-fuel']:SetFuel(vehicle, level)
else SetVehicleFuelLevel(vehicle, (level or 90) + 0.0) end
end
-- ══════════════════════════════════════════════════════════════
-- KEY HELPERS
-- ══════════════════════════════════════════════════════════════
function GiveVehicleKeys(plate, model, vehicle)
if not Config.Vehiclekey then return end
local ks = Config.VehicleKeySystem
if ks == 'jaksam' then TriggerServerEvent("vehicles_keys:selfGiveVehicleKeys", plate)
elseif ks == 'qs-vehiclekeys' then exports['qs-vehiclekeys']:GiveKeys(plate, GetDisplayNameFromVehicleModel(model))
elseif ks == 'wasabi-carlock' then exports.wasabi_carlock:GiveKey(plate)
elseif ks == 'qb-vehiclekeys' then TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', plate) end
end
function RemoveVehicleKeys(plate, model, vehicle)
if not Config.VehicleRemoveKey then return end
local ks = Config.VehicleRemoveKeySystem
if ks == 'jaksam' then TriggerServerEvent("vehicles_keys:selfRemoveKeys", plate)
elseif ks == 'qs-vehiclekeys' then exports['qs-vehiclekeys']:RemoveKeysAuto()
elseif ks == 'wasabi-carlock' then exports.wasabi_carlock:RemoveKey(plate)
elseif ks == 'qb-vehiclekeys' then TriggerServerEvent('qb-vehiclekeys:client:RemoveKeys', plate) end
end