Catégories
Jeu vidéo ROBLOX ROBLOX-NIVEAU01

Donne le pouvoir de courir plus vite

Créer un part « SpeedPart » sous un folder « SpeedFolder »pour donner au joueur le pouvoir de courir plus vite :

Saisie sous un script sous ServerScriptService :

local speedFolder = workspace:waitForChild("SpeedFolder")
local speedPart = speedFolder:waitForChild("SpeedPart")

speedPart.Touched:Connect(function(hit)
	local character = hit:FindFirstAncestorOfClass("Model")
	if not character then return end
	local humanoid = character:FindFirstChild("Humanoid")
	if humanoid then
		humanoid.WalkSpeed = 100
	end
end)	

Comment fonctionne ce script ?

Ce script Lua crée un bonus de vitesse : quand un joueur touche le part, il devient plus rapide.

1. Les variables : ranger des objets dans des « boîtes »

local speedFolder = workspace:waitForChild("SpeedFolder")
local speedPart = speedFolder:waitForChild("SpeedPart")

Une variable, c’est comme une boîte avec une étiquette, dans laquelle on range quelque chose pour s’en servir plus tard.

  • speedFolder est une variable qui contient le dossier SpeedFolder (un dossier rangé dans le jeu, le workspace).
  • speedPart est une variable qui contient la partie SpeedPart, qui se trouve à l’intérieur de ce dossier.

waitForChild("...") veut dire « attends que cet objet existe, puis récupère-le ». C’est plus sûr que d’aller le chercher directement, car parfois le jeu met un petit moment à charger tous les objets.

2. L’événement Touched : réagir à un contact

speedPart.Touched:Connect(function(hit)

Touched est un événement : c’est un signal qui se déclenche automatiquement dès qu’un objet touche speedPart. Un événement, c’est comme une sonnette : elle ne fait rien toute seule, mais dès qu’on appuie dessus, ça déclenche une action.

:Connect(function(hit) ... end) veut dire « quand la sonnette retentit, exécute cette fonction ». La fonction reçoit une information appelée hit, qui est l’objet qui a touché la partie (par exemple, un bras, une jambe, un accessoire du joueur).

3. Récupérer le joueur à partir de l’objet touché

lua

local character = hit:FindFirstAncestorOfClass("Model")
if not character then return end

Le problème, c’est que hit n’est pas le joueur en entier : c’est juste un petit morceau de son corps. Alors le script remonte « dans l’arbre » pour retrouver le personnage complet :

  • FindFirstAncestorOfClass("Model") veut dire « cherche parmi les parents de cet objet, le premier qui est un Model » (le personnage entier est un Model).
  • if not character then return end veut dire « si on n’a rien trouvé, on arrête la fonction ici » (par sécurité, au cas où ce ne soit pas un joueur qui a touché la partie).
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
    humanoid.WalkSpeed = 100
end

Chaque personnage contient un objet Humanoid, qui gère ses caractéristiques (vie, vitesse, etc.). Le script le récupère avec FindFirstChild("Humanoid"), puis change sa propriété WalkSpeed (vitesse de marche) à 100, ce qui rend le joueur beaucoup plus rapide que la normale (16 par défaut).

En résumé

Toucher la partie → l’événement se déclenche → le script retrouve le joueur → il augmente sa vitesse.

À quoi sert une variable comme ‘speedPart’ dans ce script ?

  • Elle sert à créer une nouvelle partie dans le jeu
  • Elle sert uniquement à afficher du texte à l’écran
  • Elle supprime l’objet du jeu
  • Elle sert à ranger et nommer un objet pour pouvoir le réutiliser facilement

Que représente l’événement ‘Touched’ ?

  • Une variable qui stocke la vitesse du joueur
  • Une commande qui affiche un message d’erreur
  • Un signal qui se déclenche automatiquement quand un objet touche la partie
  • Un minuteur qui se déclenche toutes les secondes

Que reçoit la fonction connectée à l’événement Touched (le paramètre ‘hit’) ?

  • Le nom du joueur uniquement
  • La vitesse actuelle du joueur
  • L’objet exact qui est entré en contact avec la partiet
  • Le dossier SpeedFolder

Pourquoi utilise-t-on ‘FindFirstAncestorOfClass(« Model »)’ sur ‘hit’ ?

  • Pour changer la couleur du personnage
  • Pour remonter jusqu’au personnage complet du joueur à partir du morceau touché
  • Pour créer un nouveau personnage
  • Pour supprimer l’objet touché

Que fait la ligne ‘humanoid.WalkSpeed = 100’ ?

  • Elle augmente la vitesse de marche du personnage à 100
  • Elle téléporte le joueur
  • Elle donne 100 points de vie au joueur
  • Elle supprime l’Humanoid

A toi de créer un nouveau part pour rendre la vitesse normal au joueur