Zamach
Lekcja 2 z 20 w kursie Gra Roblox: Areny walki w Coddy.
Mając narzędzie w ręku, kliknięcie (lub stuknięcie) wywołuje zdarzenie Activated narzędzia — również na serwerze. Zamach odtwarza wbudowany w Roblox dźwięk cięcia mieczem: Animation wskazuje go za pomocą swojego identyfikatora, a Animator postaci, znajdujący się w jej Humanoidzie, ładuje go do ścieżki animacji, aby go odtworzyć:
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()Bez ograniczenia gracz mógłby klikać tak szybko, jak chce, więc system dla każdego gracza zapamiętuje w tabeli, kiedy nastąpił ostatni zamach, i odmawia wykonania kolejnego przed upływem Settings.SwingCooldown sekund.
Wyzwanie
Łatwy- W pobliżu początku dodaj
local lastSwing = {}oraz animacjęslash(idrbxassetid://522635514). - Zapisz
swing(player)przed PlayerAdded: zwróć sterowanie, jeśli gracz nie ma żyjącej postaci lub wykonał zamach mniej niżSettings.SwingCooldowntemu; w przeciwnym razie zapamiętaj czas i odtwórz animację slash na jego Animatorze. - W miejscu, w którym dajesz miecz, połącz jego
Activatedzswing(player).
Naciśnij Play, przytrzymaj miecz i kliknij. Następnie naciśnij Check.
Spróbuj swoich sił
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- Każdy gracz otrzymuje Kills na tablicy wyników oraz miecz przy każdym odrodzeniu
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)
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.