任何人都可以帮助我使用“GnomeCode”脚本吗?我收到的错误消息如下:

问题描述 投票:0回答:0
18:13:51.541  Infinite yield possible on 'ReplicatedStorage.Events:WaitForChild("GetData")'  -  Studio
  18:13:51.541  Stack Begin  -  Studio
  18:13:51.541  Script 'ServerScriptService.Datastore', Line 9  -  Studio - Datastore:9
  18:13:51.541  Stack End  -  Studio

我的脚本看起来像这样:

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")

local database = DataStoreService:GetDataStore("database")
local functions = ReplicatedStorage:WaitForChild("Events")
local events = ReplicatedStorage:WaitForChild("Functions")
local getDataFunc = functions:WaitForChild("GetData")
local exitEvent = events:WaitForChild("ExitGame")

local MAX_SELECTED_TOWERS = 5

local data = {}

local function LoadData(player)
    local success = nil
    local playerData = nil
    local attempt = 1

    repeat
        success, playerData = pcall(function()
            return database:GetAsync(player.UserId)
        end)
    
        attempt += 1
        if not success then
            warn(playerData)
            task.wait()
        end
    
    until success or attempt == 3

    if success then
        print("Connection Success")
        if not playerData then
            print("New Player, Giving Default Data")
            playerData = {
                ["Credits"] = 175,
                ["SelectedTowers"] = {"Iron Man MK5"},
                ["OwnedTowers"] = {"Iron Man MK5", "Wolverine"}
            }
        end
        data[player.UserId] = playerData
    else
        warn("Unable to get data for player", player.UserId)
        player:Kick("There was a problem getting your data, We're Sorry!")
    end
end
Players.PlayerAdded:Connect(LoadData)

local function SaveData(player)
    if data[player.UserId] then
        local success = nil
        local playerData = nil
        local attempt = 1

        repeat
            success, playerData = pcall(function()
                return database:UpdateAsync(player.UserId, function()
                    return data[player.UserId]
                end)
            end)

            attempt += 1
            if not success then
                warn(playerData)
                task.wait()
            end

        until success or attempt == 3

        if success then
            print("Data Saved Successfully")
        else
            warn("Unable to get save data for", player.UserId)
        end
    else
        warn("No Session Data For", player.UserId)
    end

end
exitEvent.OnServerEvent:Connect(function(player)
    SaveData(player)
    data[player.UserId] = nil
end)

game:BindToClose(function()
    if not RunService:IsStudio() then
        for index, player in pairs(Players:GetPlayers()) do
                task.spawn(function()
                SaveData(player)
            end)
        end
    else
        print ("Shutting Down Inside Studio")
    end
end)


getDataFunc.OnServerInvoke = function(player)
    return data[player.UserId]
end

如果有人知道如何解决这个问题,我将不胜感激,谢谢。

我正在使用“GnomeCodes”塔防教程视频制作塔防游戏,我在最后一个和“让玩家选择塔”部分所以这就是我期待发生的事情但是每当我玩测试它时,塔都是空白的并且没有地方可以看到。

function testing lua roblox infinite
© www.soinside.com 2019 - 2024. All rights reserved.