Другие языки программирования и технологии

Как сохранить скорость игрока в своей игре roblox studio

Не пойму просто как можно сохранить скорость после выхода, и чтобы она оставалась такой после перезахода
В Roblox Studio существует несколько способов сохранения скорости игрока, в зависимости от того, как именно вы хотите ее сохранить.



Установите скорость игрока в его объекте "Humanoid". Это позволит сохранить скорость игрока при перемещении его по миру.


game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = 16 -- Установите любое значение скорости
end)
end)

  1. Если вы хотите сохранить скорость игрока при переключении между игровыми серверами, вы можете использовать службу данных Roblox "DataStoreService".


local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")

game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new ("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player

local speed = Instance.new ("IntValue")
speed.Name = "Speed"
speed.Value = playerDataStore:GetAsync(player.UserId) or 16 -- Установите любое значение скорости
speed.Parent = leaderstats

player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = speed.Value
end)
end)

game.Players.PlayerRemoving:Connect(function(player)
local success, err = pcall(function()
playerDataStore:SetAsync(player.UserId, player.leaderstats.Speed.Value)
end)
end)

Это простой пример кода, который сохраняет скорость игрока в службе данных и загружает ее при следующем входе игрока.
АА
Артем Антонов
929
Лучший ответ
Жанибек Кошкумбеков Так то работает да, но как подставить, чтобы это было 2 значения в лидерстатсе, когда уже есть готовый скрипт денег

local DataStore = game:GetService("DataStoreService")
local ds = DataStore:GetDataStore("CashSaveSystem")

game.Players.PlayerAdded:Connect(function(player)
local leader = Instance.new ("Folder", player)
leader.Name = "leaderstats"
local Cash = Instance.new ("IntValue", leader)
Cash.Name = "Money"
Cash.Value = ds:GetAsync(player.UserId) or 0
ds:SetAsync(player.UserId, Cash.Value)
Cash.Changed:Connect(function()
ds:SetAsync(player.UserId, Cash.Value)

end)
end)
Чтобы сохранить скорость игрока после выхода из игры, вы можете использовать службу данных в Roblox. Служба данных сохраняет значения между игровыми сессиями, поэтому скорость игрока будет сохранена и после перезахода. Вот пример кода, который демонстрирует, как сохранять скорость игрока и загружать ее при входе в игру:
 lua 
-- Получить службу данных
local DataStoreService = game:GetService("DataStoreService")
-- Название хранилища данных
local SPEED_DATASTORE_NAME = "PlayerSpeedDatastore"
-- Получить хранилище данных
local PlayerSpeedData = DataStoreService:GetDataStore(SPEED_DATASTORE_NAME)

-- Функция загрузки скорости игрока
local function loadPlayerSpeed(player)
-- Получить идентификатор игрока
local playerId = player.UserId
-- Получить сохраненную скорость игрока из хранилища данных
local savedSpeed = PlayerSpeedData:GetAsync(tostring(playerId))
-- Если скорость была сохранена, установить игроку сохраненную скорость
if savedSpeed then
player.Character.Humanoid.WalkSpeed = savedSpeed
end
end

-- Функция сохранения скорости игрока
local function savePlayerSpeed(player)
-- Получить идентификатор игрока
local playerId = player.UserId
-- Получить текущую скорость игрока
local currentSpeed = player.Character.Humanoid.WalkSpeed
-- Сохранить скорость игрока в хранилище данных
PlayerSpeedData:SetAsync(tostring(playerId), currentSpeed)
end

-- Обработчик для события PlayerAdded
local function onPlayerAdded(player)
-- Загрузить скорость игрока при входе в игру
loadPlayerSpeed(player)
-- Подписаться на событие Leaving для сохранения скорости игрока при выходе из игры
player.CharacterRemoving:Connect(function()
savePlayerSpeed(player)
end)
end

-- Для каждого игрока, уже находящегося в игре, зарегистрировать скорость игрока
for _, player in ipairs(game.Players:GetChildren()) do
onPlayerAdded(player)
end

-- Подписаться на событие PlayerAdded для регистрации новых игроков в игре
game.Players.PlayerAdded:Connect(onPlayerAdded)
Этот код сохраняет скорость игрока каждый раз при выходе из игры и загружает ее при входе в игру. Для сохранения данных используется служба данных `DataStoreService`.
Дмитрий *
Дмитрий *
2 055