Catégories
Jeu vidéo ROBLOX ROBLOX-NIVEAU01

Donne le pouvoir de sauter plus haut

Ce script permet de donner un super-pouvoir de saut au joueur quand il touche une pièce spéciale (JumpPart).

  • Effet : Le joueur peut sauter beaucoup plus haut (200 unités au lieu de la valeur normale, qui est généralement autour de 7–8).
  • Déclencheur : Quand le joueur touche la pièce JumpPart (dans le dossier JumpFolder).

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

Saisie sous un script sous ServerScriptService :

local jumpFolder = workspace:waitForChild("JumpFolder")
local jumpPart = jumpFolder:waitForChild("JumpPart")

jumpPart.Touched:Connect(function(hit)
	local character = hit:FindFirstAncestorOfClass("Model")
	if not character then return end
	local humanoid = character:FindFirstChild("Humanoid")
	if humanoid then
		humanoid.JumpHeight = 200
	end
end)	

Explication du code pas à pas

1. Récupérer les objets dans le Workspace

local jumpFolder = workspace:WaitForChild("JumpFolder")
local jumpPart = jumpFolder:WaitForChild("JumpPart")
  • workspace:WaitForChild("JumpFolder") :
    • Le script attend que le dossier JumpFolder existe dans le Workspace.
    • Si le dossier n’existe pas encore (par exemple, s’il est créé plus tard dans le jeu), le script ne plante pas et attend qu’il soit disponible.
  • jumpFolder:WaitForChild("JumpPart") :
    • Attend que la pièce JumpPart existe à l’intérieur du dossier JumpFolder.

💡 Pourquoi WaitForChild ?

  • En Roblox, les objets peuvent être créés après que le script ait commencé à s’exécuter.
  • Sans WaitForChild, si JumpFolder ou JumpPart n’existe pas encore, le script planterait avec une erreur.
  • WaitForChild permet d’éviter cela en attendant que l’objet soit prêt.

2. Détecter quand un joueur touche la pièce

jumpPart.Touched:Connect(function(hit)
  • jumpPart.Touched :
    • C’est un événement qui se déclenche chaque fois qu’un objet touche JumpPart.
  • function(hit) :
    • hit est l’objet qui a touché JumpPart (par exemple, la main, la tête ou le torse du joueur).

3. Récupérer le modèle du personnage

local character = hit:FindFirstAncestorOfClass("Model")
if not character then return end
  • hit:FindFirstAncestorOfClass("Model") :
    • Cherche le premier ancêtre de hit qui est un Model.
    • Dans Roblox, un joueur est représenté par un Model (son personnage complet, avec toutes ses parties : tête, bras, jambes, etc.).
    • hit est une partie du corps (ex: Head, RightArm), et son ancêtre est le modèle du joueur (Character).

🔍 Exemple concret :
Si hit est la tête du joueur (Head), alors :
HeadCharacter (le Model).
La fonction renvoie donc Character.

  • if not character then return end :
    • Si character est nil (c’est-à-dire que hit n’a pas de modèle parent), le script s’arrête ici (return).
    • C’est une sécurité pour éviter les erreurs si hit n’est pas une partie d’un joueur.

4. Récupérer l’Humanoid

local humanoid = character:FindFirstChild("Humanoid")
  • character:FindFirstChild("Humanoid") :
    • Cherche l’Humanoid dans le modèle du joueur (character).
    • L’Humanoid est un composant essentiel qui gère :
      • La vie du joueur.
      • Le mouvement (saut, course, etc.).
      • La taille (BodyHeightScale, etc.).
      • La hauteur de saut (JumpHeight).

5. Vérifier si l’Humanoid existe et modifier la hauteur de saut

if humanoid then
    humanoid.JumpHeight = 200
end
  • if humanoid then :
    • Vérifie que l’Humanoid existe avant de continuer.
    • Si humanoid est nil (le joueur n’a pas d’Humanoid), le script ne fait rien pour éviter les erreurs.
  • humanoid.JumpHeight = 200 :
    • Modifie la hauteur de saut du joueur à 200 unités.
    • Effet : Le joueur peut sauter beaucoup plus haut que d’habitude (la valeur normale est généralement entre 7 et 20).

💡 Pour ajuster la hauteur de saut :

  • humanoid.JumpHeight = 50 → Saut modéré.
  • humanoid.JumpHeight = 100 → Saut très haut.
  • humanoid.JumpHeight = 200Saut extrême (attention, le joueur peut sortir de la carte !).

QCM pour tester la compréhension

Questions sur le script « Pouvoir de sauter plus haut »

  1. Que fait workspace:WaitForChild("JumpFolder") ?
    • A. Crée un dossier nommé JumpFolder.
    • B. Attend que le dossier JumpFolder existe dans le Workspace.
    • C. Supprime le dossier JumpFolder.
    • D. Change la couleur du dossier.
  1. Que représente hit dans jumpPart.Touched:Connect(function(hit) ?
    • A. La pièce JumpPart elle-même.
    • B. La partie du joueur qui a touché JumpPart (ex: la main, la tête).
    • C. Le script Lua.
    • D. Le dossier JumpFolder.
  1. À quoi sert hit:FindFirstAncestorOfClass("Model") ?
    • A. Trouve la pièce JumpPart.
    • B. Trouve le modèle du personnage (le joueur entier).
    • C. Trouve l’Humanoid directement.
    • D. Change la taille de la pièce.
  1. Que fait humanoid.JumpHeight = 200 ?
    • A. Réduit la taille du joueur.
    • B. Donne au joueur une hauteur de saut de 200 unités.
    • C. Change la couleur du joueur.
    • D. Supprime l’Humanoid.
  1. Pourquoi utilise-t-on if humanoid then ?
    • A. Pour créer un Humanoid.
    • B. Pour éviter les erreurs si l’Humanoid n’existe pas.
    • C. Pour changer la taille de la pièce.
    • D. Pour désactiver le script.
  1. Que se passe-t-il si un joueur touche JumpPart ?
    • A. Le joueur disparaît.
    • B. Le joueur peut sauter beaucoup plus haut (200 unités).
    • C. Le joueur devient plus petit.
    • D. La pièce change de couleur.
  1. Où doit-on placer la pièce JumpPart pour que le script fonctionne ?
    • A. Dans le Workspace directement.
    • B. Dans un dossier nommé JumpFolder dans le Workspace.
    • C. Dans le ServerScriptService.
    • D. Dans le StarterPack.
  1. Si on veut que le joueur saute encore plus haut, que doit-on modifier ?
    • A. Le nom de la pièce JumpPart.
    • B. La valeur de humanoid.JumpHeight (ex: 300).
    • C. La couleur de la pièce.
    • D. Le nom du dossier JumpFolder