Golpear
Lição 2 de 20 do curso Jogo de Roblox: Campos de batalha da Coddy.
Com uma ferramenta em mãos, um clique (ou toque) dispara o evento Activated da ferramenta, também no servidor. Um golpe reproduz o corte de espada do próprio Roblox: uma Animation o identifica pelo ID, e o Animator do personagem, dentro do Humanoid, carrega a animação em uma faixa para reproduzi-la:
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()Sem um limite, um jogador poderia clicar tão rápido quanto quisesse, então o golpe registra quando ocorreu o último, por jogador, em uma tabela, e recusa outro durante Settings.SwingCooldown segundos.
Desafio
Fácil- Próximo ao início, adicione
local lastSwing = {}e a Animationslash(idrbxassetid://522635514). - Escreva
swing(player)acima de PlayerAdded: retorne se o jogador não tiver um personagem vivo ou tiver golpeado há menos deSettings.SwingCooldown; caso contrário, registre o horário e reproduza o slash no Animator do personagem. - Onde você entrega a espada, conecte o
Activateddela aswing(player).
Pressione Jogar, segure a espada e clique. Depois, Verificar.
Experimente você mesmo
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- Todo jogador recebe Kills no placar e uma espada a cada vida
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)
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.