317 lines
		
	
	
	
		
			8.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			317 lines
		
	
	
	
		
			8.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
Config = {}
 | 
						|
 | 
						|
-- Allgemeine Einstellungen
 | 
						|
Config.Debug = true
 | 
						|
Config.UseBackgroundImages = true
 | 
						|
Config.MaxLicenseAge = 365 -- Tage bis Ablauf
 | 
						|
Config.RenewalDays = 30 -- Tage vor Ablauf für Verlängerung
 | 
						|
 | 
						|
-- Berechtigte Jobs
 | 
						|
Config.AuthorizedJobs = {
 | 
						|
    ['police'] = true,
 | 
						|
    ['sheriff'] = true,
 | 
						|
    ['government'] = true,
 | 
						|
    ['judge'] = true,
 | 
						|
    ['lawyer'] = true,
 | 
						|
    ['ambulance'] = true, -- Für medizinische Lizenzen
 | 
						|
    ['mechanic'] = true   -- Für Fahrzeug-Lizenzen
 | 
						|
}
 | 
						|
 | 
						|
-- Jobs that can reactivate specific license types
 | 
						|
Config.ReactivationPermissions = {
 | 
						|
    ['police'] = {'weapon_license', 'drivers_license'},
 | 
						|
    ['admin'] = {'id_card', 'passport', 'business_license'},
 | 
						|
    ['ambulance'] = {'medical_license'},
 | 
						|
    ['driving_school'] = {'drivers_license'},
 | 
						|
    ['harbor'] = {'boat_license'},
 | 
						|
    ['airport'] = {'pilot_license'}
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
-- Lizenz-Typen
 | 
						|
Config.LicenseTypes = {
 | 
						|
    ['id_card'] = {
 | 
						|
        label = 'Personalausweis',
 | 
						|
        icon = 'fas fa-id-card',
 | 
						|
        color = '#667eea',
 | 
						|
        price = 50,
 | 
						|
        required_items = {},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 3650, -- 10 Jahre
 | 
						|
        required_job = nil,
 | 
						|
        description = 'Offizieller Personalausweis'
 | 
						|
    },
 | 
						|
    ['drivers_license'] = {
 | 
						|
        label = 'Führerschein',
 | 
						|
        icon = 'fas fa-car',
 | 
						|
        color = '#f093fb',
 | 
						|
        price = 500,
 | 
						|
        required_items = {'driving_test_certificate'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 5475, -- 15 Jahre
 | 
						|
        required_job = 'driving_school',
 | 
						|
        description = 'Berechtigung zum Führen von Kraftfahrzeugen',
 | 
						|
        classes = {
 | 
						|
            'A', 'A1', 'A2', 'B', 'BE', 'C', 'CE', 'D', 'DE'
 | 
						|
        }
 | 
						|
    },
 | 
						|
    ['weapon_license'] = {
 | 
						|
        label = 'Waffenschein',
 | 
						|
        icon = 'fas fa-crosshairs',
 | 
						|
        color = '#4facfe',
 | 
						|
        price = 2500,
 | 
						|
        required_items = {'weapon_course_certificate', 'psychological_evaluation'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 1095, -- 3 Jahre
 | 
						|
        required_job = 'police',
 | 
						|
        description = 'Berechtigung zum Führen von Schusswaffen',
 | 
						|
        restrictions = {
 | 
						|
            'Nur für registrierte Waffen',
 | 
						|
            'Regelmäßige Überprüfung erforderlich',
 | 
						|
            'Nicht übertragbar'
 | 
						|
        }
 | 
						|
    },
 | 
						|
    ['passport'] = {
 | 
						|
        label = 'Reisepass',
 | 
						|
        icon = 'fas fa-passport',
 | 
						|
        color = '#43e97b',
 | 
						|
        price = 150,
 | 
						|
        required_items = {'birth_certificate', 'id_card'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 3650, -- 10 Jahre
 | 
						|
        required_job = 'government',
 | 
						|
        description = 'Internationales Reisedokument'
 | 
						|
    },
 | 
						|
    ['business_license'] = {
 | 
						|
        label = 'Gewerbeschein',
 | 
						|
        icon = 'fas fa-briefcase',
 | 
						|
        color = '#fa709a',
 | 
						|
        price = 1000,
 | 
						|
        required_items = {'business_plan', 'tax_certificate'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 1825, -- 5 Jahre
 | 
						|
        required_job = 'government',
 | 
						|
        description = 'Berechtigung zur Ausübung eines Gewerbes'
 | 
						|
    },
 | 
						|
    ['pilot_license'] = {
 | 
						|
        label = 'Pilotenlizenz',
 | 
						|
        icon = 'fas fa-plane',
 | 
						|
        color = '#667eea',
 | 
						|
        price = 5000,
 | 
						|
        required_items = {'flight_hours_log', 'medical_certificate'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 730, -- 2 Jahre
 | 
						|
        required_job = 'airport',
 | 
						|
        description = 'Berechtigung zum Führen von Luftfahrzeugen'
 | 
						|
    },
 | 
						|
    ['boat_license'] = {
 | 
						|
        label = 'Bootsführerschein',
 | 
						|
        icon = 'fas fa-ship',
 | 
						|
        color = '#00f2fe',
 | 
						|
        price = 800,
 | 
						|
        required_items = {'boat_course_certificate'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 1825, -- 5 Jahre
 | 
						|
        required_job = 'harbor',
 | 
						|
        description = 'Berechtigung zum Führen von Wasserfahrzeugen'
 | 
						|
    },
 | 
						|
    ['medical_license'] = {
 | 
						|
        label = 'Approbation',
 | 
						|
        icon = 'fas fa-user-md',
 | 
						|
        color = '#ff6b6b',
 | 
						|
        price = 0, -- Kostenlos für Ärzte
 | 
						|
        required_items = {'medical_degree', 'medical_exam'},
 | 
						|
        can_expire = false,
 | 
						|
        validity_days = nil,
 | 
						|
        required_job = 'ambulance',
 | 
						|
        description = 'Berechtigung zur Ausübung der Heilkunde'
 | 
						|
    },
 | 
						|
    ['hunting_license'] = {
 | 
						|
        label = 'Jagdschein',
 | 
						|
        icon = 'fas fa-crosshairs',
 | 
						|
        color = '#8b5a3c',
 | 
						|
        price = 300,
 | 
						|
        required_items = {'hunting_course_certificate'},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 1095, -- 3 Jahre
 | 
						|
        required_job = 'police',
 | 
						|
        description = 'Berechtigung zur Ausübung der Jagd'
 | 
						|
    },
 | 
						|
    ['fishing_license'] = {
 | 
						|
        label = 'Angelschein',
 | 
						|
        icon = 'fas fa-fish',
 | 
						|
        color = '#4ecdc4',
 | 
						|
        price = 50,
 | 
						|
        required_items = {},
 | 
						|
        can_expire = true,
 | 
						|
        validity_days = 365, -- 1 Jahr
 | 
						|
        required_job = 'police',
 | 
						|
        description = 'Berechtigung zum Angeln in öffentlichen Gewässern'
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
-- Standorte für Lizenz-Ausgabe
 | 
						|
Config.LicenseLocations = {
 | 
						|
    ['city_hall'] = {
 | 
						|
        label = 'Rathaus',
 | 
						|
        coords = vector3(-544.85, -204.13, 38.22),
 | 
						|
        blip = {
 | 
						|
            sprite = 419,
 | 
						|
            color = 2,
 | 
						|
            scale = 0.8
 | 
						|
        },
 | 
						|
        available_licenses = {
 | 
						|
            'id_card', 'passport', 'business_license'
 | 
						|
        },
 | 
						|
        ped = {
 | 
						|
            model = 'a_m_m_business_01',
 | 
						|
            coords = vector4(-544.9543, -204.8450, 37.2151, 219.1676)
 | 
						|
        }
 | 
						|
    },
 | 
						|
    ['driving_school'] = {
 | 
						|
        label = 'Fahrschule',
 | 
						|
        coords = vector3(-829.22, -1209.58, 7.33),
 | 
						|
        blip = {
 | 
						|
            sprite = 225,
 | 
						|
            color = 46,
 | 
						|
            scale = 0.8
 | 
						|
        },
 | 
						|
        available_licenses = {
 | 
						|
            'drivers_license'
 | 
						|
        },
 | 
						|
        ped = {
 | 
						|
            model = 'a_m_y_business_02',
 | 
						|
            coords = vector4(-829.22, -1209.58, 6.33, 90.0)
 | 
						|
        }
 | 
						|
    },
 | 
						|
    ['police_station'] = {
 | 
						|
        label = 'Polizeiwache',
 | 
						|
        coords = vector3(441.07, -979.76, 30.69),
 | 
						|
        blip = {
 | 
						|
            sprite = 60,
 | 
						|
            color = 29,
 | 
						|
            scale = 0.8
 | 
						|
        },
 | 
						|
        available_licenses = {
 | 
						|
            'weapon_license'
 | 
						|
        },
 | 
						|
        ped = {
 | 
						|
            model = 's_m_y_cop_01',
 | 
						|
            coords = vector4(441.07, -979.76, 29.69, 270.0)
 | 
						|
        }
 | 
						|
    },
 | 
						|
    ['hospital'] = {
 | 
						|
        label = 'Krankenhaus',
 | 
						|
        coords = vector3(307.7, -1433.4, 29.9),
 | 
						|
        blip = {
 | 
						|
            sprite = 61,
 | 
						|
            color = 1,
 | 
						|
            scale = 0.8
 | 
						|
        },
 | 
						|
        available_licenses = {
 | 
						|
            'medical_license'
 | 
						|
        },
 | 
						|
        ped = {
 | 
						|
            model = 's_m_m_doctor_01',
 | 
						|
            coords = vector4(307.7, -1433.4, 28.9, 180.0)
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
-- Kommandos
 | 
						|
Config.Commands = {
 | 
						|
    ['license'] = {
 | 
						|
        name = 'lizenz',
 | 
						|
        help = 'Lizenz-System öffnen',
 | 
						|
        restricted = true -- Nur für berechtigte Jobs
 | 
						|
    },
 | 
						|
    ['mylicense'] = {
 | 
						|
        name = 'meinelizenz',
 | 
						|
        help = 'Eigene Lizenzen anzeigen',
 | 
						|
        restricted = false -- Für alle Spieler
 | 
						|
    },
 | 
						|
    ['givelicense'] = {
 | 
						|
        name = 'givelicense',
 | 
						|
        help = 'Lizenz an Spieler vergeben',
 | 
						|
        restricted = true,
 | 
						|
        admin_only = true
 | 
						|
    },
 | 
						|
    ['revokelicense'] = {
 | 
						|
        name = 'revokelicense',
 | 
						|
        help = 'Lizenz entziehen',
 | 
						|
        restricted = true,
 | 
						|
        admin_only = false
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
-- Keybinds
 | 
						|
Config.Keybinds = {
 | 
						|
    ['open_license_menu'] = {
 | 
						|
        key = 'F6',
 | 
						|
        command = 'lizenz',
 | 
						|
        description = 'Lizenz-System öffnen'
 | 
						|
    },
 | 
						|
    ['show_my_licenses'] = {
 | 
						|
        key = 'F7',
 | 
						|
        command = 'meinelizenz',
 | 
						|
        description = 'Meine Lizenzen anzeigen'
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
-- Benachrichtigungen
 | 
						|
Config.Notifications = {
 | 
						|
    ['no_permission'] = {
 | 
						|
        message = 'Du hast keine Berechtigung!',
 | 
						|
        type = 'error'
 | 
						|
    },
 | 
						|
    ['no_players_nearby'] = {
 | 
						|
        message = 'Keine Spieler in der Nähe!',
 | 
						|
        type = 'error'
 | 
						|
    },
 | 
						|
    ['license_not_found'] = {
 | 
						|
        message = 'Keine Lizenz gefunden!',
 | 
						|
        type = 'error'
 | 
						|
    },
 | 
						|
    ['license_expired'] = {
 | 
						|
        message = 'Diese Lizenz ist abgelaufen!',
 | 
						|
        type = 'warning'
 | 
						|
    },
 | 
						|
    ['license_expires_soon'] = {
 | 
						|
        message = 'Diese Lizenz läuft bald ab!',
 | 
						|
        type = 'warning'
 | 
						|
    },
 | 
						|
    ['license_granted'] = {
 | 
						|
        message = 'Lizenz erfolgreich ausgestellt!',
 | 
						|
        type = 'success'
 | 
						|
    },
 | 
						|
    ['license_revoked'] = {
 | 
						|
        message = 'Lizenz wurde entzogen!',
 | 
						|
        type = 'info'
 | 
						|
    },
 | 
						|
    ['photo_saved'] = {
 | 
						|
        message = 'Foto gespeichert!',
 | 
						|
        type = 'success'
 | 
						|
    },
 | 
						|
    ['insufficient_funds'] = {
 | 
						|
        message = 'Nicht genügend Geld!',
 | 
						|
        type = 'error'
 | 
						|
    },
 | 
						|
    ['missing_items'] = {
 | 
						|
        message = 'Benötigte Gegenstände fehlen!',
 | 
						|
        type = 'error'
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
-- Sounds
 | 
						|
Config.Sounds = {
 | 
						|
    ['card_flip'] = 'sounds/card_flip.mp3',
 | 
						|
    ['camera_shutter'] = 'sounds/camera_shutter.mp3',
 | 
						|
    ['notification'] = 'sounds/notification.mp3'
 | 
						|
}
 | 
						|
 | 
						|
-- Datenbank-Einstellungen
 | 
						|
Config.Database = {
 | 
						|
    ['table_name'] = 'player_licenses',
 | 
						|
    ['auto_cleanup'] = true, -- Alte Lizenzen automatisch löschen
 | 
						|
    ['cleanup_days'] = 365 -- Nach wie vielen Tagen löschen
 | 
						|
}
 |