roblox - Roblox 数据存储的问题
问题描述
情况
我正在尝试一项简单的任务来更新玩家的历史总获胜总数。这是我根据我看过的教程使用的代码:
local DataStoreService = game:GetService("DataStoreService")
local myDataStore = DataStoreService:GetDataStore("myDataStore")
game.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
local data
local success, errormessage = pcall(function()
data = myDataStore:GetAsync(player.UserId.."-wins")
end)
if success then
wins.Value = data
else
print("There was an error while getting your data")
warn(errormessage)
end
end)
game.Players.PlayerRemoving:Connect(function(player)
local success, errormessage = pcall(function()
myDataStore:SetAsync(player.UserId.."-wins",player.leaderstats.Wins.Value)
end)
if success then
print("Player Data successfully saved")
else
print("There was an error when saving data")
warn(errormessage)
end
end)
当一个玩家在我的游戏中赢得一轮时,我可以通过一个名为“获胜玩家”的变量来识别获胜者。所以我尝试更新玩家获胜总数的命令如下:
game.Players.winningplayer.leaderstats.Wins.Value = game.Players.winningplayer.leaderstats.Wins.Value + 1
问题
不幸的是,当这种情况发生时,我收到一条错误消息:winingplayer is not a valid member of Player "Players"
真的很想帮忙。非常感谢!
解决方案
当您使用game.Players.winningplayer
不解压缩变量的行来正确找到播放器时。
尝试使用方括号而不是句点。
local winner = game.Players[winningplayer]
local wins = winner.leaderstats.Wins
wins.Value = wins.Value + 1
推荐阅读
- asp.net - .Net Core 身份登录页面无法在 IIS 上运行托管应用程序
- solr - 在多个 Solr 字段中搜索值
- android - Android,以GridLayoutManager和ImageView为单元格内容的RecyclerView不适合垂直空间
- spring-boot - 如何在spring-resource-server中获取OidcUser,而不是在@AuthenticationPrincipal中获取Jwt?
- flutter - 将另一侧的按钮与浮动操作按钮对齐
- c - 从文件读取时输出返回空结果
- api - 如何在 Lucene 搜索语法中指定查询参数?
- python - 从python中的txt文件中删除某个单词的代码
- javascript - Cypress intercept doesn't work when file is cached on a disk
- sass - Gramex 未检测到 SCSS