Salut les gars, j’ai un système permettant aux joueurs de modifier le texte de l’étiquette de statut et de l’étiquette d’intérêt. la sauvegarde de mes données ne fonctionne pas. Quelqu’un peut-il m’aider ?
Service de script serveur :
Gestionnaire de profils (Script)
— Charger le service Roblox DataStore local DataStoreService = game:GetService(“DataStoreService”) local profileDataStore = DataStoreService:GetDataStore(“PlayerProfiles”) — DataStore pour les profils de joueurs — Fonction : Charger la fonction locale du profil du joueur loadPlayerProfile(player) local playerKey = ” Player_” .. player.UserId print(“Chargement des données pour le joueur :”, player.Name) succès local, profileData = pcall(function() return profileDataStore:GetAsync(playerKey) end) en cas de succès et profileData puis print(“Données trouvées :”, profileData.Status, profileData.Interests) player:SetAttribute(“Status”, profileData.Status) player:SetAttribute(“Intérêts”, profileData .Intérêts) else print(“Aucune donnée trouvée ou erreur :”, succès) player:SetAttribute(“Status”, “Available”) player:SetAttribute(“Intérêts”, “Aucun spécifié”) end end — Fonction : Enregistrer le profil du joueur, fonction locale savePlayerProfile(player) local playerKey = “Player_” .. player.UserId local profileData = { Status = player:GetAttribute(“Status”) ou “Available”, Intérêts = joueur:GetAttribute(“Intérêts “) ou “Aucun spécifié” } print(“Stocker les données pour le joueur :”, joueur.Nom, profileData) succès local, message d’erreur = pcall(function() profileDataStore:SetAsync(playerKey, profileData) end) en cas de succès alors print(“Données enregistrées avec succès pour :”, player.Name) else warn(“Erreur lors de l’enregistrement des données pour ” .. player.Name .. ” : ” .. errorMessage) end end — Événement : lorsqu’un joueur rejoint le jeu game.Players.PlayerAdded:Connect(function(player) loadPlayerProfile(player) end) — Événement : lorsqu’un joueur quitte le jeu game.Players.PlayerRemoving:Connect(function(player) savePlayerProfile(player) end)
StarterGui->ProfileGui :
ProfilUIManager (LocalScript)
— Connexions aux éléments de l’interface utilisateur — Connexions aux éléments de l’interface utilisateur local player = game.Players.LocalPlayer local profileFrame = script.Parent:WaitForChild(“ProfileFrame”) local statusLabel = profileFrame:WaitForChild(“StatusLabel”) local InterestLabel = profileFrame :WaitForChild(“InterestLabel”) — Fonction : Mise à jour du profil, affichage de la fonction locale updateProfile() statut local = player:GetAttribute(“Statut”) ou “Available” centres d’intérêt locaux = player:GetAttribute(“Intérêts”) ou “Aucun spécifié” statusLabel.Text = “Statut : ” .. status InterestLabel.Text = “Intérêts : ” .. intérêts end — Surveiller les changements d’attributs player:GetAttributeChangedSignal(“Status”):Connect(updateProfile) player:GetAttributeChangedSignal(“Interests”):Connect(updateProfile) — Afficher le profil au démarrage du jeu updateProfile() DevDAmaro (DevDAmaro) 22 décembre 2024, 1h06 #2
Assurez-vous que les services API sont activés. S’ils fonctionnent et ne fonctionnent pas, essayez ceci :
local DataStoreService = game:GetService(“DataStoreService”) local profileDataStore = DataStoreService:GetDataStore(“PlayerProfiles”) — DataStore pour les profils de joueurs, fonction locale loadPlayerProfile(player) local playerKey = “Player_” .. player.UserId print(“Chargement des données pour Player:”, player.Name, “with key:”, playerKey) succès local, profileData = pcall(function() return profileDataStore:GetAsync(playerKey) end) en cas de succès et profileData puis print(“Données trouvées :”, profileData) player:SetAttribute(“Status”, profileData.Status ou “Available”) player:SetAttribute(“Intérêts”, profileData.Interests ou “Aucun spécifié”) sinon print (“Aucune donnée trouvée ou erreur :”, succès, profileData) player:SetAttribute(“Status”, “Available”) player:SetAttribute(“Intérêts”, “Aucun spécifié”) fin fin fonction locale savePlayerProfile(player) local playerKey = “Player_” .. player.UserId local profileData = { Status = player:GetAttribute(“Status”) ou “Available”, Interests = player:GetAttribute(” Centres d’intérêt”) ou “Aucun spécifié” } print(“Enregistrer les données pour le joueur :”, player.Name, “with key:”, playerKey, profileData) succès local, errorMessage = pcall(function() profileDataStore:UpdateAsync(playerKey, function(existingData)existentData =existentData ou {}existentData.Status = profileData.Status existanteData.Interests = profileData.Interests renvoie la fin des données existantes) fin) en cas de succès, imprimez(“Données enregistrées avec succès for:”, joueur .Name) else warn(“Erreur lors de l’enregistrement des données pour ” .. player.Name .. “: ” .. errorMessage) end end game.Players.PlayerAdded:Connect (fonction (joueur) loadPlayerProfile (joueur) fin) game.Players.PlayerRemoving: Connect (fonction (joueur) savePlayerProfile (joueur) fin)
et imprimez quelque chose sur la fonction pdate pour vous assurer que lorsqu’une valeur change, la fonction s’exécute.
#Problème #denregistrement #des #textes #GUI #Prise #charge #des #scripts #Forum #des #développeurs