Menu
CoddyTech

המנצחים

שיעור 8 מתוך 18 בקורס משחק Roblox: הישרדות באסונות של Coddy.

הישרדות בסיבוב שווה ניצחון. כשהסיבוב מסתיים, כל שחקן שעדיין נמצא ב-survivors מקבל אחד:

for player in survivors do
	player.leaderstats.Wins.Value += 1
end

+= מוסיף לערך במקום. כדי לבדוק אם מישהו שרד, next(survivors) מחזיר את המפתח הראשון בטבלה, או nil כשהיא ריקה.

השחקנים צריכים רגע כדי לקרוא את התוצאה לפני שספירת הזמן לאחור בלובי מחזירה את הלוח, לכן הסיבוב מסתיים ב-task.wait(3).

challenge icon

אתגר

בינוני

כשהסיבוב מסתיים:

  1. תן לכל שורד ‎+1 Wins (במקום לספור אותם).
  2. אחרי שהמפה מושמדת, הצג Survivors win! אם מישהו שרד, או Nobody survived! אם אף אחד לא שרד.
  3. המתן 3 שניות לפני הספירה לאחור הבאה בלובי.

לחץ על Play, שרוד סיבוב וצפה ב-Wins שלך, ואז לחץ על Check.

נסו בעצמכם

local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)

local lobbySpawn = workspace.LobbySpawn

print("Rounds last " .. Settings.RoundLength .. " seconds")

-- כל שחקן מקבל Wins בטבלת המובילים
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local wins = Instance.new("IntValue")
	wins.Name = "Wins"
	wins.Parent = leaderstats
end)

-- לוח הסטטוס בלובי
local gui = Instance.new("SurfaceGui")
gui.Parent = workspace.StatusBoard

local status = Instance.new("TextLabel")
status.Name = "Status"
status.Size = UDim2.fromScale(1, 1)
status.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
status.TextColor3 = Color3.fromRGB(255, 255, 255)
status.TextScaled = true
status.Text = "Welcome to Disaster Survival!"
status.Parent = gui

local function setStatus(text)
	status.Text = text
end

local function teleport(player, target)
	local character = player.Character
	if character then
		character:PivotTo(target.CFrame + Vector3.new(0, 4, 0))
	end
end

-- לולאת הסיבובים
while true do
	for seconds = Settings.Intermission, 1, -1 do
		setStatus("Intermission: " .. seconds)
		task.wait(1)
	end

	local map = ServerStorage.Maps.Island:Clone()
	map.Name = "Map"
	map.Parent = workspace

	local survivors = {}
	for _, player in Players:GetPlayers() do
		local character = player.Character
		if character and character.Humanoid.Health > 0 then
			teleport(player, map.Spawn)
			survivors[player] = true
			character.Humanoid.Died:Connect(function()
				survivors[player] = nil
			end)
		end
	end

	for seconds = Settings.RoundLength, 1, -1 do
		setStatus("Time left: " .. seconds)
		task.wait(1)
	end

	local count = 0
	for player in survivors do
		count += 1
		teleport(player, lobbySpawn)
	end
	map:Destroy()
	print("Survivors: " .. count)
end
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה משחק Roblox: הישרדות באסונות