【问题标题】:Trouble with Roblox DataStoreRoblox 数据存储的问题
【发布时间】:2021-04-02 18:02:09
【问题描述】:

情况

我正在尝试一项简单的任务来更新玩家的历史总赢盘总数。这是我根据我看过的教程使用的代码:

 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 不是 Player "Players" 的有效成员

真的很想帮忙。非常感谢!

【问题讨论】:

    标签: roblox


    【解决方案1】:

    当您使用game.Players.winningplayer 行时不会解压变量以正确找到播放器。

    尝试使用方括号代替句点。

    local winner = game.Players[winningplayer]
    local wins = winner.leaderstats.Wins
    wins.Value = wins.Value + 1
    

    【讨论】:

      猜你喜欢
      • 2019-02-28
      • 2019-06-29
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 2021-06-30
      • 2020-08-19
      • 2023-01-15
      • 2011-03-26
      相关资源
      最近更新 更多