80 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local savedLooks = {}
 | 
						|
local filePath = "data/saved_looks.json"
 | 
						|
 | 
						|
-- Holt die Lizenz-ID des Spielers
 | 
						|
local function getLicenseIdentifier(src)
 | 
						|
    for _, id in ipairs(GetPlayerIdentifiers(src)) do
 | 
						|
        if id:find("license:") then
 | 
						|
            return id
 | 
						|
        end
 | 
						|
    end
 | 
						|
    return nil
 | 
						|
end
 | 
						|
 | 
						|
-- Resource Start: Datei laden
 | 
						|
AddEventHandler("onResourceStart", function(resource)
 | 
						|
    if resource == GetCurrentResourceName() then
 | 
						|
        loadLooks()
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
-- Client fordert Looks an
 | 
						|
RegisterServerEvent("lookchanger:requestLooks")
 | 
						|
AddEventHandler("lookchanger:requestLooks", function()
 | 
						|
    local src = source
 | 
						|
    local license = getLicenseIdentifier(src)
 | 
						|
    if not license then
 | 
						|
        print("[LookChanger] Warnung: Kein gültiger Identifier für Spieler " .. src)
 | 
						|
        return
 | 
						|
    end
 | 
						|
 | 
						|
    local data = savedLooks[license] or {}
 | 
						|
    TriggerClientEvent("lookchanger:setSavedLooks", src, data)
 | 
						|
end)
 | 
						|
 | 
						|
-- Look speichern
 | 
						|
RegisterServerEvent("lookchanger:saveLook")
 | 
						|
AddEventHandler("lookchanger:saveLook", function(category, slot, lookData)
 | 
						|
    local src = source
 | 
						|
    local license = getLicenseIdentifier(src)
 | 
						|
    if not license then
 | 
						|
        print("[LookChanger] Warnung: Kein gültiger Identifier für Spieler " .. src)
 | 
						|
        return
 | 
						|
    end
 | 
						|
 | 
						|
    savedLooks[license] = savedLooks[license] or {}
 | 
						|
    savedLooks[license][category] = savedLooks[license][category] or {}
 | 
						|
    savedLooks[license][category][slot] = lookData
 | 
						|
 | 
						|
    print(("[LookChanger] Spieler %s hat Slot %s (%s) gespeichert."):format(license, slot, category))
 | 
						|
    saveLooks()
 | 
						|
end)
 | 
						|
 | 
						|
-- Looks aus Datei laden
 | 
						|
function loadLooks()
 | 
						|
    local file = LoadResourceFile(GetCurrentResourceName(), filePath)
 | 
						|
    if file then
 | 
						|
        local parsed = json.decode(file)
 | 
						|
        if parsed then
 | 
						|
            savedLooks = parsed
 | 
						|
            print("[LookChanger] Looks erfolgreich geladen.")
 | 
						|
        else
 | 
						|
            print("[LookChanger] Fehler beim Parsen der Datei.")
 | 
						|
            savedLooks = {}
 | 
						|
        end
 | 
						|
    else
 | 
						|
        print("[LookChanger] Keine Datei gefunden. Starte mit leerer Datenbank.")
 | 
						|
        savedLooks = {}
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
-- Looks in Datei speichern
 | 
						|
function saveLooks()
 | 
						|
    local jsonData = json.encode(savedLooks)
 | 
						|
    local success = SaveResourceFile(GetCurrentResourceName(), filePath, jsonData, -1)
 | 
						|
    if success then
 | 
						|
        print("[LookChanger] Looks erfolgreich gespeichert.")
 | 
						|
    else
 | 
						|
        print("[LookChanger] Fehler beim Speichern!")
 | 
						|
    end
 | 
						|
end
 |