Задать вопрос
@Hoiran

Fire is not a valid member of Script в Roblox Studio?

Я хочу сделать дата стор где хранится множество значений. Но сами значение у меня находятся в другом скрипте. Я их соеденил с помощью bindableEvent. Но потом мне выдало ошибку которую вы можете видеть в вопросе. Я пытался сделать без bindableEvent:Fire(), но в таком случае выдаёт ошибку "attempt to concatenate string with nil"
Код дата стор скрипта можете видеть ниже.
local bindableEvent = script.Parent
bindableEvent:Fire()

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

local playerUserId = 'Player_'..playerUserId
local data = playerData:GetAsync(playerUserId)
if data then
coinStat.Value = data['Coins']
Rebirth.Value = data['Rebirth']
else
coinStat.Value = 0
Rebirth.Value = 0
end

local function create_table(player)
local player_stats = {}
for _, stat in pairs(player:WaitForChild("leaderstats"):GetChildren()) do
player_stats[stat.Name] = stat.Value
end
return player_stats
end

local function onPlayerExit(player)
local player_stats = create_table(player)
local success, err = pcall(function()
local playerUserId = 'Player_'..player.UserId
playerData:SetAsync(player.UserId,player_stats)
end)

if not success then
warn('Could not save data')
end
end

game.Players.PlayerAdded:Connect(onPlayerJoin)
game.Players.PlayerRemoving:Connect(onPlayerExit)

Код основного скрипта:
local players = game:GetService("Players")

players.PlayerAdded:Connect(function(player)

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

local coinStat = Instance.new("IntValue")
coinStat.Name = "Coins"
coinStat.Value = 0
coinStat.Parent = leaderstatsfolder

local Rebirths = Instance.new("IntValue", leaderstatsfolder)
Rebirths.Name = "Rebirths"
Rebirths.Value = 0

local Multiplier = Instance.new("IntValue")
Multiplier.Name = "Multiplier"
Multiplier.Value = 0
Multiplier.Parent = player

local Decal1 = game.Workspace.Coin.Decal1
local Decal2 = game.Workspace.Coin.Decal2
local Coin = game.Workspace.Coin
Coin.Touched:Connect(function(hit)
coinStat.Value = coinStat.Value + 1
end)
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player)
if Multiplier.Value == 0 then
coinStat.Value = coinStat.Value + 1
else coinStat.Value = coinStat.Value + 1 * Multiplier.Value
end
end)
while wait (1) do
coinStat.Value = coinStat.Value + 1
end
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player)

end)
end)
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы