Aller au contenu
Forma Roblox

Rechercher dans la formation

Module 05 · Systèmes de jeu

Examen du module 5 — Systèmes de jeu

Leaderstats, sauvegarde fiable, inventaire, interfaces, animations et tweens. Réussis au moins 70 % pour débloquer le badge du module.

Ton meilleur résultat : Pas encore tenté

Questions de l’examen

17 questions · réussite à partir de 70 % · réponds à tout puis corrige

  1. Question 1QCMTu veux afficher l’étape et les pièces de chaque joueur dans le tableau des scores. Quelle approche est correcte ?
  2. Question 2Trouve le bugDans l’Obby des Nuages, Etape contient le numéro du dernier checkpoint validé, et un checkpoint N n’est accepté que si N vaut Etape + 1. Ce code (raccourci : la vérification de distance du module 4 a été retirée) laisse pourtant les joueurs sauter des étapes. Où est le bug ?
    local Players = game:GetService("Players")
    local checkpoint = script.Parent
    local numero = tonumber(checkpoint.Name)
    
    checkpoint.Touched:Connect(function(autrePartie)
    	local player = Players:GetPlayerFromCharacter(autrePartie.Parent)
    	local leaderstats = player and player:FindFirstChild("leaderstats")
    	local etape = leaderstats and leaderstats:FindFirstChild("Etape")
    	if etape and etape:IsA("IntValue") and numero and numero > etape.Value then
    		etape.Value = numero
    	end
    end)
  3. Question 3QCMÀ quels moments notre système de la leçon 2 sauvegarde-t-il les données d’un joueur ? (plusieurs réponses possibles)

    Plusieurs réponses possibles : coche toutes les bonnes.

  4. Question 4Vrai ou fauxLa fonction passée à UpdateAsync peut contenir un task.wait(1) pour laisser le temps à d’autres serveurs de finir.
  5. Question 5QCMDans la fonction passée à UpdateAsync, que se passe-t-il si tu renvoies nil ?
  6. Question 6Trouve le bugCe code de sauvegarde semble marcher, mais des joueurs perdent toute leur progression après avoir changé de pseudo. Quelle ligne est en cause ?
    local function sauvegarder(player, donnees)
    	local cle = "Joueur_" .. player.Name
    	local succes, erreur = pcall(function()
    		return magasin:UpdateAsync(cle, function(ancienne)
    			return donnees, { player.UserId }
    		end)
    	end)
    	if not succes then
    		warn("Sauvegarde impossible :", erreur)
    	end
    end
  7. Question 7QCMTon jeu est en ligne depuis un mois. Pour ajouter un champ victoires, un ami te conseille de renommer le DataStore DonneesJoueurs_v1 en DonneesJoueurs_v2. Quelle est la conséquence ?
  8. Question 8QCMPour acheter une traînée, que doit envoyer le client au serveur via AcheterObjet ?
  9. Question 9Vrai ou fauxComme le ModuleScript Catalogue est dans ReplicatedStorage, un exploiteur peut baisser les prix pour tout le monde en modifiant sa copie du module.
  10. Question 10QCMPourquoi régler ResetOnSpawn = false sur le ScreenGui de l’Obby des Nuages ?
  11. Question 11QCMAvec AnchorPoint = (1, 1) et Position = {1, 0}, {1, 0}, où se place un bouton ?
  12. Question 12QCMTu colles dans ton jeu l’identifiant d’une animation publiée par un autre créateur, qui ne te l’a pas partagée. Que se passe-t-il ?
  13. Question 13QCMUn développeur appelle animator:LoadAnimation(animation) à chaque clic sur un bouton, puis :Play(). Pourquoi est-ce une mauvaise idée ?
  14. Question 14QCMQuel TweenInfo décrit une plateforme qui met 4 secondes à monter, redescend, et recommence sans fin, avec des départs et arrivées en douceur ?
  15. Question 15Vrai ou fauxL’événement Completed d’un tween se déclenche aussi quand on appelle tween:Pause().
  16. Question 16Améliore ce promptLes sauvegardes de fin de partie se perdent parfois quand un serveur ferme. Tu demandes à Claude Code de corriger ça. Quelle version du prompt donnera le meilleur résultat ?
    Le prompt de départ
    fais que la sauvegarde marche quand le serveur ferme

    Choisis la meilleure version de ce prompt.

  17. Question 17Trouve le bugTrouve la faille dans ce code généré par IA. Une IA a ajouté un bonus de 100 pièces pour la victoire. Dans la leçon, le RemoteEvent Victoire va seulement du serveur vers le client. Où est la faille ?
    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local victoire = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("Victoire") :: RemoteEvent
    local BONUS_VICTOIRE = 100
    local recompenses: { [Player]: boolean } = {}
    victoire.OnServerEvent:Connect(function(player: Player)
    	local leaderstats = player:FindFirstChild("leaderstats")
    	local pieces = leaderstats and leaderstats:FindFirstChild("Pieces")
    	if pieces and pieces:IsA("IntValue") and not recompenses[player] then
    		recompenses[player] = true
    		pieces.Value += BONUS_VICTOIRE
    	end
    end)
    Players.PlayerRemoving:Connect(function(player: Player)
    	recompenses[player] = nil
    end)

← Retour au module 05