Config

Config = {}

Config.JobName = 'dir'
Config.SocietyDir = 'society_dir'
Config.BillingDir = 'okok' -- or 'ESX'

Config.Locale = 'fr'

Config.Inventory = 'ox' -- ou 'qs' selon l’inventory utilisé

Config.Blips = {
    {
        coords = vector3(1533.5856, 814.1841, 84.1692), -- À modifier selon ta map
        name = "DIR - Voirie",                          -- Nom de votre blips
        sprite = 318,                                   -- icone de votre blips sur votre carte
        scale = 0.5,                                    -- taille de votre blips
        color = 46                                      -- couleur de votre blips
    }
}

Config.JobGrades = { --  renseigner vos grades en bdd
    "recruit",
    "employee",
    "manager",
    "boss"
}

Config.PnjMission = {
    player = 0.5,                   -- 50% pour le joueur
    society = 0.5,                  -- 50% pour la société
    societyAccount = "society_dir", -- Nom du compte société dans votre base de donnée
    playerAccount = "money"         -- "money" ou "bank"
}

Config.Props = {
    { label = "🗼 Cône", model = "prop_roadcone02a" },
    { label = "🚧  Barrière plastique", model = "prop_barrier_work05" },
    { label = "⚠️  Panneau travaux", model = "prop_sign_road_05e" },
    { label = "🚧  Ruban de chantier", model = "prop_fncres_02b" },
    { label = "🚧  Radar", model = "mickystudiodev_radar_fo" }
    -- Ajoute ici d'autres props si besoin
}

Config.BossMenu = {
    job = "dir",                                    -- job en bdd
    grade = 3,                                      -- Remplace par l’ID numérique du grade "boss"
    coords = vector3(1533.5861, 814.3613, 84.1692), -- coordonnée en vector3
    heading = 180.0,                                -- coordonnée h du vector4
    icon = "fa-solid fa-briefcase",                 -- icone de votre target
    label = "Accéder au menu patron"                -- nom du target
}

Config.CoffresDir = {                                -- Coffre de la société
    {
        id = 'stash_dir_1',                          -- identifiant de votre coffre
        label = "Coffre D.I.R #1",                   -- nom du target sur votre coffre
        Coords = vec3(1543.2468, 807.9008, 78.5377), -- coordonnée en vector3
        slots = 70,                                  -- emplacement disponible a l'interieur de votre coffre
        weight = 150000                              -- poid possible a l'interieur de votre coffre
    },
    {
        id = 'stash_dir_2',
        label = "Coffre D.I.R #2",
        Coords = vec3(1537.2205, 812.3558, 84.1324),
        slots = 70,
        weight = 150000
    },
    -- Tu peux ajouter d'autres coffres ici... exemple
    -- {
    --     id = 'stash_dir_2',
    --     label = "Coffre D.I.R #2",
    --     Coords = vec3(1537.2205, 812.3558, 84.1324),
    --     slots = 70,
    --     weight = 150000
    -- },
}

Config.Garage = {
    coords = vector3(1540.0115, 799.0993, 78.5377), -- Coordonnées de la zone pour ouvrir le menu garage (ox_target)
    radius = 2.0,                                   -- Rayon de la zone ox_target

    spawnPoint = {
        coords = vector3(1548.7319, 799.7435, 77.9309), -- Coordonnées exactes où spawnent les véhicules
        heading = 331.7270                              -- Orientation du véhicule au spawn
    },

    menuOptions = {
        menuTitle = '🚗 Garage',
        parkVehicleTitle = '🅿️ Ranger véhicule'
    },

    vehicles = {
        { model = 'adder',    label = 'Adder' },
        { model = 'zentorno', label = 'Zentorno' },
        { model = 'banshee',  label = 'Banshee' },
        -- Ajoute autant de véhicules que tu veux ici
    }
}

Config.MissionSelection = {
    coords = vector3(1539.1470, 807.4653, 78.5378),
    icon = "fas fa-desktop",
    label = "Ordinateur DIR - Missions",
    options = { "reparation_borne", "reparation_rembarde" }
}

Config.Missions = {
    maintenance = {
        {
            name = "reparation_borne",
            label = "Réparation de Borne d'Autoroute",
            position = 'top',
            coords = {
                { pos = vector3(853.8965, 70.3133, 67.9899),     heading = 222.6877 },
                { pos = vector3(2410.4834, 2874.7634, 40.2810),  heading = 213.2238 },
                { pos = vector3(2605.5989, 5299.0464, 44.6718),  heading = 287.6510 },
                { pos = vector3(1122.9032, 6509.9854, 20.9895),  heading = 355.7383 },
                { pos = vector3(-616.2646, 5638.3257, 38.6691),  heading = 57.7348 },
                { pos = vector3(-1528.0267, 4999.5645, 62.2399), heading = 43.5644 },
                { pos = vector3(-3054.4736, 1735.1147, 36.7424), heading = 102.2475 },
            },
            reward = { money = 150 },
            steps = {
                {
                    animation = "WORLD_HUMAN_CLIPBOARD",
                    label = "Analyse de la borne (prise de notes)...",
                    position = 'top'
                    --prop = `prop_notepad_02`
                },
                {
                    animation = "WORLD_HUMAN_WELDING",
                    label = "Réparation de la borne...",
                    position = 'top'
                    --prop = `prop_welding_mask_01`
                },
                {
                    animation = { dict = "amb@world_human_stand_mobile@male@text@base", name = "base" },
                    label = "Contrôle final de la borne...",
                    position = 'top'
                    --prop = `xm_prop_x17_tablet_01`
                }
            },
            tool = nil
        },
        {
            name = "reparation_rembarde",
            label = "Réparation de la rembarde de sécurité",
            reward = { money = 250 },
            coords = {
                { pos = vector3(692.2556, -161.8367, 48.7982),   heading = 61.4102 },
                { pos = vector3(2161.5806, 2708.3525, 48.2177),  heading = 39.0208 },
                { pos = vector3(2828.9448, 3474.5208, 55.0096),  heading = 62.9652 },
                { pos = vector3(2855.1121, 4239.0107, 50.0403),  heading = 107.8731 },
                { pos = vector3(2530.4204, 5465.3394, 44.5525),  heading = 110.4482 },
                { pos = vector3(-862.2656, 5454.0366, 34.7616),  heading = 20.9191 },
                { pos = vector3(-1280.1132, 5272.7070, 51.2440), heading = 22.4560 },
                { pos = vector3(-2114.0281, 4455.7915, 62.1849), heading = 175.6228 },
                { pos = vector3(-2013.7560, -436.1148, 11.5648), heading = 311.2932 },
                { pos = vector3(-1416.8219, -761.6663, 11.1468), heading = 8.0206 }
            },
            steps = {
                {
                    animation = { dict = "melee@large_wpn@streamed_core", name = "ground_attack_on_spot" },
                    label = "Réparation de la barrière en cours...",
                    duration = 6000,
                    prop = `gr_prop_gr_hammer_01`,
                    position = 'top'
                }
            },
            tool = nil
        }
    },
}

Config.LockerRoom = vector3(1558.5809, 836.6234, 84.1325)

Config.Outfits = {
    dir = {
        male = {
            {
                label = "Tenue Employé",
                outfit = {
                    tshirt_1 = 15,
                    tshirt_2 = 0,
                    torso_1 = 50,
                    torso_2 = 0,
                    decals_1 = 0,
                    decals_2 = 0,
                    chain_1 = 0,
                    chain_2 = 0,
                    arms = 19,
                    pants_1 = 9,
                    pants_2 = 0,
                    shoes_1 = 71,
                    shoes_2 = 1,
                    helmet_1 = -1,
                    helmet_2 = 0,
                    glasses_1 = -1,
                    glasses_2 = 0,
                    bproof_1 = 0,
                    bproof_2 = 0
                }
            },
            -- Ajoute d'autres tenues homme ici si besoin
        },
        female = {
            {
                label = "Tenue Employée",
                outfit = {
                    tshirt_1 = 153,
                    tshirt_2 = 0,
                    torso_1 = 3,
                    torso_2 = 0,
                    decals_1 = 0,
                    decals_2 = 0,
                    chain_1 = 0,
                    chain_2 = 0,
                    arms = 0,
                    pants_1 = 129,
                    pants_2 = 0,
                    shoes_1 = 24,
                    shoes_2 = 0,
                    helmet_1 = -1,
                    helmet_2 = 0,
                    glasses_1 = -1,
                    glasses_2 = 0,
                    bproof_1 = 0,
                    bproof_2 = 0
                }
            },
            -- Ajoute d'autres tenues femme ici si besoin
        }
    }
}

Config.Notifications = {
    open = {
        message = "📢 DIR ouverte ! Les agents sont disponibles.",
        type = "success", -- success, error, info, warning, etc.
        position = "top"  -- top, top-right, top-left, bottom, etc.
    },
    close = {
        message = "📢 DIR fermée. Aucun agent n’est disponible.",
        type = "error",
        position = "top"
    },
    busy = {
        message = "📢 DIR en intervention. Merci de votre compréhension.",
        type = "info",
        position = "top"
    },
    missionStart = {
        type = "success",
        position = "top",
        duration = 5000
    },
    missionComplete = {
        type = "success",
        position = "top",
        duration = 5000
    },
    missionInProgress = {
        type = "error",
        position = "top",
        duration = 5000
    },
    spawnZoneOccupied = {
        title = "DIR",
        messageKey = "spawnZoneOccupied",
        type = "error",
        position = "top",
        duration = 5000
    },
    vehicleSpawned = {
        title = "DIR",
        messageKey = "vehicleSpawned",
        type = "success",
        position = "top",
        duration = 5000
    },
    parkVehicle = {
        title = "DIR",
        messageKey = "parkVehicle",
        type = "success",
        position = "top",
        duration = 5000
    },
    notInVehicle = {
        title = "DIR",
        messageKey = "notInVehicle",
        type = "error",
        position = "top",
        duration = 5000
    },
    outfitApplied = {
        title = "DIR",
        messageKey = "outfitApplied",
        type = "success",
        position = "top",
        duration = 5000
    },
    outfitReset = {
        title = "DIR",
        messageKey = "outfitReset",
        type = "success",
        position = "top",
        duration = 5000
    }
}

Mis à jour