Golpe
Lección 2 de 20 del curso Juego de Roblox: Combates en la arena de Coddy.
Con una herramienta en la mano, al hacer clic (o tocar la pantalla) se dispara el evento Activated de la herramienta, también en el servidor. Un golpe reproduce el tajo de espada propio de Roblox: una Animation lo identifica mediante su id y el Animator del personaje, dentro de su Humanoid, la carga en una pista para reproducirla:
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()Sin un límite, un jugador podría hacer clic tan rápido como quisiera, así que cada golpe recuerda cuándo ocurrió el último, por jugador, en una tabla, y rechaza otro durante los siguientes Settings.SwingCooldown segundos.
Desafío
Fácil- Cerca de la parte superior, añade
local lastSwing = {}y la animaciónslash(idrbxassetid://522635514). - Escribe
swing(player)encima de PlayerAdded: devuelve si el jugador no tiene un personaje con vida o si ha blandido la espada hace menos deSettings.SwingCooldown; de lo contrario, recuerda la hora y reproduce la animación de corte en su Animator. - Donde entregas la espada, conecta su
Activatedaswing(player).
Pulsa Play, sostén la espada y haz clic. Después, Check.
Pruébalo tú mismo
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
print("Swords deal " .. Settings.SwordDamage .. " damage")
-- Cada jugador obtiene Kills en la tabla de clasificación y una espada cada vez que reaparece
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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.