Хранилище данных в Roblox Lua - PullRequest
0 голосов
/ 01 мая 2020

, поэтому в настоящее время я пытаюсь заставить скрипт сохранения работать с игрой события щелчка мышью. Предполагается сохранить сколько кликов (очков) у игрока. Проблема состоит в том, что это, кажется, не экономит вообще. Событие щелчка лидеров / щелчка мыши работает, нет ошибок вывода или анализа сценария, и сценарий находится в ServerScriptService.

Вот код:

local DataStoreService = game:GetService("DataStoreService")
classData = DataStoreService:GetDataStore("PlayClass")
pointData = DataStoreService:GetDataStore("PlayPoints")

game.Players.PlayerAdded:Connect(function(player)
    local success, err = pcall(function()
        pointData:GetAsync("Player_"..player.UserId)
    end
    )
    if success then
        print("Loading Success!")
    end
    local success, err = pcall(function()
        classData:GetAsync("Player_"..player.UserId)
    end
    )
    if success then
        print("Loading Success!")
    end

    local leaderstats = Instance.new("Folder", player)
    leaderstats.Name = "leaderstats"

    local Points = Instance.new("IntValue", leaderstats)
    Points.Name = "Points"

    local Class = Instance.new("StringValue", leaderstats)
    Class.Name = "Class"
    Class.Value = "Wannabe"
    PlayerClass = player.leaderstats.Class
    PlayerPoints = player.leaderstats.Points
end)

workspace:WaitForChild("Sign")



workspace.Part.ClickDetector.MouseClick:Connect(function(player)
    workspace.Sign.Value.Value = workspace.Sign.Value.Value + 1
    workspace.Sign.SurfaceGui.SIGN.Text = workspace.Sign.Value.Value
    PlayerPoints.Value = workspace.Sign.Value.Value



    if PlayerPoints.Value < 49
    then
        PlayerClass.Value = "Wannabe"
    end

    if PlayerPoints.Value > 49
    then
        PlayerClass.Value = "Beginner"
    end

    if PlayerPoints.Value > 124
    then
        PlayerClass.Value = "Novice"
    end

    if PlayerPoints.Value > 249
    then
        PlayerClass.Value = "Intermediate"
    end

    if PlayerPoints.Value > 374
    then
        PlayerClass.Value = "Pro"
    end

    if PlayerPoints.Value > 499
    then
        PlayerClass.Value = "God"
    end

end
)

game.Players.PlayerRemoving:Connect(function(player)
    local success, err = pcall(function()
        pointData:SetAsync("Player_"..player.UserId, PlayerPoints.Value)
    end
    )
    if success then
        print ("Saving Success!")
    end
    local success, err = pcall(function()
        classData:SetAsync("Player_"..player.UserId, PlayerClass.Value)
    end
    )
    if success then
        print("Saving Success!")
    end
end)

Печатается Загрузка успешно, но Это не печатает Сохранение успеха. РЕДАКТИРОВАТЬ: я попытался добавить оператор else, чтобы увидеть ошибку, но он по-прежнему ничего не печатает.

1 Ответ

0 голосов
/ 01 мая 2020

Я могу продублировать вашу проблему, используя пустую игру, часть и сценарий. Как Kylaaa упомянул в своем комментарии, если вы сделаете это:

if success then
    print ("Saving Success!")
else
    print (err)
end 

... это покажет вам ошибку. Я не уверен из вашего комментария, если вы попробовали это таким образом. Кроме того, я не получаю ошибку каждый раз в моем выводе. В моем случае ошибка была: «403: Невозможно выполнить запись в хранилище данных из студии, если доступ к API не включен». После включения «Успешное сохранение» обнаружилось просто отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...