휘두르기
Coddy의 Roblox 게임: 배틀그라운드 코스 레슨. 20개 중 2번째.
도구를 손에 들고 클릭(또는 탭)하면 서버에서도 Tool의 Activated 이벤트가 발생합니다. 휘두를 때 Roblox 자체의 검 휘두르기 동작을 재생합니다. Animation은 ID로 애니메이션을 지정하고, Humanoid 안에 있는 캐릭터의 Animator가 애니메이션을 트랙에 불러와 재생합니다.
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()제한이 없으면 플레이어는 원하는 만큼 빠르게 클릭할 수 있으므로, 휘두를 때마다 플레이어별로 테이블에 마지막 휘두른 시점을 기록하고 Settings.SwingCooldown초 안에는 다시 휘두르지 못하게 합니다.
챌린지
쉬움- 상단 가까이에
local lastSwing = {}과slashAnimation(rbxassetid://522635514ID)을 추가하세요. - PlayerAdded 위에
swing(player)을 작성하세요. 플레이어에게 살아 있는 캐릭터가 없거나 마지막으로 휘두른 지Settings.SwingCooldown보다 짧은 시간이 지났다면 반환하고, 그렇지 않으면 시간을 기억한 뒤 해당 Animator에서 slash를 재생하세요. - 검을 지급하는 곳에서 검의
Activated를swing(player)에 연결하세요.
Play를 눌러 검을 들고 클릭하세요. 그런 다음 Check를 누르세요.
직접 해보기
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- 모든 플레이어는 리더보드에 Kills가 표시되고, 새 생명이 시작될 때마다 검을 받습니다
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)
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.