Fendente
Lezione 2 di 25 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
FacileFai oscillare la spada con un clic.
- Vicino all'inizio:
local lastSwing = {}e l'animazioneslash, con idrbxassetid://522635514. - Scrivi
swing(player): esci se il personaggio è morto o ha oscillato meno diSettings.SwingCooldownfa. - Altrimenti imposta
lastSwing[player] = nowe riproduci l'animazione slash sucharacter.Humanoid.Animator. - Collega
Activateddella spada aswing(player).
Premi «Gioca», impugna la spada e fai clic: il tuo personaggio sferra un fendente. Poi premi «Verifica».
Provalo tu
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- Lezione 2: qui va Swing
-- Ogni giocatore riceve una spada a ogni nuova vita
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
local sword = ServerStorage.Sword:Clone()
sword.Parent = player.Backpack
end)
end)
Tutte le lezioni di Gioco Roblox: Battlegrounds
Esercitati da solo: Playground Roblox