הנפה
שיעור 2 מתוך 20 בקורס משחק Roblox: זירות קרב של Coddy.
עם כלי ביד, לחיצה (או הקשה) מפעילה את האירוע Activated של הכלי, גם בשרת. הנפת החרב מפעילה את אנימציית החיתוך של Roblox: אובייקט Animation מזהה אותה לפי המזהה שלה, וה־Animator של הדמות, שנמצא בתוך ה־Humanoid שלה, טוען אותה לרצועה כדי להפעיל אותה:
local slash = Instance.new("Animation")
slash.AnimationId = "rbxassetid://522635514"
character.Humanoid.Animator:LoadAnimation(slash):Play()ללא הגבלה, שחקן יכול ללחוץ מהר ככל שירצה, לכן כל הנפה שומרת בטבלה, לכל שחקן, מתי התרחשה ההנפה הקודמת, ומונעת הנפה נוספת במשך Settings.SwingCooldown שניות.
אתגר
קל- בחלק העליון, הוסף
local lastSwing = {}ואת האנימציהslashמסוג Animation (מזההrbxassetid://522635514). - כתוב את
swing(player)מעל PlayerAdded: החזר אם אין לשחקן דמות חיה או אם הוא הניף את החרב לפני פחות מ־Settings.SwingCooldown; אחרת, שמור את הזמן והפעל את הנפת החרב ב־Animator שלו. - במקום שבו אתה נותן את החרב, חבר את
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)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.