Frapper
Leçon 2 sur 20 du cours Jeu Roblox : Arènes de combat de Coddy.
Avec un outil en main, un clic (ou un appui) déclenche l’événement Activated de l’outil, également sur le serveur. Un coup joue l’animation de coup d’épée de Roblox : un objet Animation la désigne par son identifiant, et l’Animator du personnage, à l’intérieur de son Humanoid, la charge dans une piste pour la jouer :
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()Sans limite, un joueur pourrait cliquer aussi vite qu’il le souhaite. Le jeu mémorise donc, dans une table, le moment du dernier coup pour chaque joueur et refuse d’en accepter un autre avant que Settings.SwingCooldown secondes se soient écoulées.
Défi
Facile- Près du début, ajoute
local lastSwing = {}et l’Animationslash(idrbxassetid://522635514). - Écris
swing(player)au-dessus de PlayerAdded : retourne si le joueur n’a pas de personnage vivant ou s’il a frappé il y a moins deSettings.SwingCooldown; sinon, mémorise l’heure et lance l’animation slash sur son Animator. - À l’endroit où tu donnes l’épée, connecte son
Activatedàswing(player).
Appuie sur Play, tiens l’épée et clique. Puis Check.
Essayez vous-même
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- Chaque joueur obtient Kills dans le classement et une épée à chaque réapparition
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local kills = Instance.new("IntValue")
kills.Name = "Kills"
kills.Parent = leaderstats
player.CharacterAdded:Connect(function()
local sword = ServerStorage.Sword:Clone()
sword.Parent = player.Backpack
end)
end)
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.