Fendente
Lezione 2 di 20 del corso Gioco Roblox: Battlegrounds di Coddy.
Con uno strumento in mano, un clic (o un tocco) attiva l'evento Activated dello strumento, anche sul server. Un fendente riproduce il colpo di spada originale di Roblox: un oggetto Animation lo identifica tramite il suo ID e l'oggetto Animator del personaggio, all'interno del suo Humanoid, lo carica in una traccia da riprodurre:
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()Senza un limite, un giocatore potrebbe fare clic alla velocità che preferisce, quindi il sistema registra in una tabella, per ogni giocatore, quando ha eseguito l'ultimo fendente e rifiuta di eseguirne un altro entro Settings.SwingCooldown secondi.
Sfida
Facile- Verso l'inizio, aggiungi
local lastSwing = {}e l'animazioneslash(idrbxassetid://522635514). - Scrivi
swing(player)prima di PlayerAdded: esci se il giocatore non ha un personaggio in vita o ha sferrato un colpo meno diSettings.SwingCooldownfa; altrimenti memorizza l'ora e riproduci l'animazione slash sul suo Animator. - Nel punto in cui assegni la spada, collega
Activatedaswing(player).
Premi Play, impugna la spada e fai clic. Poi premi Check.
Provalo tu
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- Ogni giocatore ottiene Kills nella classifica e una spada a ogni vita
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)
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.