iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0

今天要來做遊戲內的排行榜~~


1. 新增排行榜資料夾

之前我們應該有講過Folder這個物件吧? 反正你可以把它看成Model,只不過他不會有模型自身的中心點物件 (就是沒有像Model那麼複雜啦!),他就純粹是把東西放在一起而已,而這一項遊戲內的排行榜所使用的就是資料夾。

首先,我們要在玩家加入遊戲的時候在玩家物件內新增一個資料夾,名稱一定要為leaderstats,這是系統內定的名稱,如果用其他名稱則不會生效,新增資料夾的方式你可以選擇使用玩家加入事件或直接用LocalScript,我比較懶所以我用樓摳使貴婆。

然後用Instance函式新增

local LeaderList = Instance.new("Folder", game.Players.LocalPlayer) --新增資料夾然後放到玩家內
LeaderList.Name = "leaderstats" --命名,一定要是這個名稱

接下來就簡單了,在這個資料夾裡面新增其他的外部變數物件就可以了

local LeaderList = Instance.new("Folder", game.Players.LocalPlayer)
LeaderList.Name = "leaderstats"

local Cash = Instance.new("IntValue", LeaderList)
Cash.Name = "Cash"

變數型態可以是任意的型態,但你應該不會想要在排行榜上面放CFrame啦...


2. 改變排行榜變數

不是這真的有必要教嗎,就定義出資料夾內的變數然後更改就好了。

好啦我教
我們先設定一個事件,這邊我就用當玩家點擊物件的時候,然後每一次點擊都會加一塊錢,因為是伺服器端與客戶端的程式,所以要用RemoteEvent

先把點擊的程式寫好,然後在ReplicatedStorage新增RemoteEvent,並在點擊後Fire這個事件

script.Parent.ClickDetector.MouseClick:Connect(function(Player)
	if Player then
		game:GetService("ReplicatedStorage"):WaitForChild("AddCash"):FireClient(Player)
	end
end)

然後在LocalScript接收

local LeaderList = Instance.new("Folder", game.Players.LocalPlayer)
LeaderList.Name = "leaderstats"

local Cash = Instance.new("IntValue", LeaderList)
Cash.Name = "Cash"

game:GetService("ReplicatedStorage"):WaitForChild("AddCash").OnClientEvent:Connect(function(Player)
	Cash.Value += 1
end)

然後你就完成了

好啦還是看一下完成品
https://ithelp.ithome.com.tw/upload/images/20250908/20169664fV76VcEvkO.png


明天講tags


上一篇
Day 27: 隊伍系統
下一篇
Day 29: Tags標籤系統
系列文
透過Roblox Studio學習Lua語言與基本程式邏輯30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言