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
 | 
