Другие языки программирования и технологии
Помогите со скриптом
Я делаю свой режим в roblox studio и хочу сделать что-бы когда игрок брал предмет в руки и нажимал на экран ему добавляли монеты в leaderstats.
на роблокс студио можно было закончить
Для начала ты должен в папке "Explorer" создать некоторые объекты. Я в своём примере называть их не буду, а оставлю название по умолчанию
1) в "ReplicatedStorage" создаешь RemoteEvent;
2) в "ServerScriptService" создаешь Script;
3) В "StarterPlayer>>StarterCharacterScripts" создаешь LocalScript
В LocalScript пишешь следующий код:{
game.Players.LocalPlayer:GetMouse().Button1Down:Connect(function()
game.ReplicatedStorage.RemoteEvent:FireServer()
end)
}
в Script пишешь это:{
local ToolName = "Test" -- Имя твоего предмета
local add_score = 1 -- Сколько очков будет добавляться при клике
game.Players.PlayerAdded:Connect(function(plr)
local folder_stats = Instance.new ("Folder", plr)
folder_ stats.Name = "leaderstats"
local money = Instance.new ("IntValue", folder_stats)
money.Name = "Money"
end)
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(plr)
if plr.Character.Humanoid.Health > 0 and plr.Character:FindFirstChild(ToolName) then
plr.leaderstats.Money .Value += add_score
end
end)
}
Ты должен скопировать то, что до фигурных скобок(я их сделал визуально для границы).
Когда локальный скрипт детектит, что игрок нажимает по экрану, вызывается удалённый эвент, который считывает серверный скрипт. Этот скрипт проверяет живой ли игрок и есть ли у этого игрока нужный предмет. Если да, то ему добавляются очки. Благодаря "RemoteEvent" это действие происходит со стороны сервера, чтобы все игроки и сервер видел твой результат.
А до этого, создавалась папка с названием "leaderstats" и в ней создавалась числовое значение с именем Money. Именно этот Money будет прибавляться на фиксированное количество очков, заданное переменной add_score.
1) в "ReplicatedStorage" создаешь RemoteEvent;
2) в "ServerScriptService" создаешь Script;
3) В "StarterPlayer>>StarterCharacterScripts" создаешь LocalScript
В LocalScript пишешь следующий код:{
game.Players.LocalPlayer:GetMouse().Button1Down:Connect(function()
game.ReplicatedStorage.RemoteEvent:FireServer()
end)
}
в Script пишешь это:{
local ToolName = "Test" -- Имя твоего предмета
local add_score = 1 -- Сколько очков будет добавляться при клике
game.Players.PlayerAdded:Connect(function(plr)
local folder_stats = Instance.new ("Folder", plr)
folder_ stats.Name = "leaderstats"
local money = Instance.new ("IntValue", folder_stats)
money.Name = "Money"
end)
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(plr)
if plr.Character.Humanoid.Health > 0 and plr.Character:FindFirstChild(ToolName) then
plr.leaderstats.Money .Value += add_score
end
end)
}
Ты должен скопировать то, что до фигурных скобок(я их сделал визуально для границы).
Когда локальный скрипт детектит, что игрок нажимает по экрану, вызывается удалённый эвент, который считывает серверный скрипт. Этот скрипт проверяет живой ли игрок и есть ли у этого игрока нужный предмет. Если да, то ему добавляются очки. Благодаря "RemoteEvent" это действие происходит со стороны сервера, чтобы все игроки и сервер видел твой результат.
А до этого, создавалась папка с названием "leaderstats" и в ней создавалась числовое значение с именем Money. Именно этот Money будет прибавляться на фиксированное количество очков, заданное переменной add_score.
Молодец
мне нужен путь на деньги которые прибавлять, типа такого:
-- Представим что player это путь на игрока
player.leaderstats.Money
Если путь я угадал, то вот скрипт: (Создаёшь script в ServerScriptService)
game.Players.PlayerAdded:Connect(function(player) -- Эта функция срабатывает тогда, когда игрок зашёл в игру
while game.Players:FindFirstChild(player.Name) do -- Бесконечный цикл который работает пока игрок находится в игре
wait(1) -- Ждём секунду
player.leaderstats.Money.Value += 1 -- Добавляем 1 доллар
end
end)
Если не работает, то скинь скрипт на добавление leaderstats и Money у игрока
-- Представим что player это путь на игрока
player.leaderstats.Money
Если путь я угадал, то вот скрипт: (Создаёшь script в ServerScriptService)
game.Players.PlayerAdded:Connect(function(player) -- Эта функция срабатывает тогда, когда игрок зашёл в игру
while game.Players:FindFirstChild(player.Name) do -- Бесконечный цикл который работает пока игрок находится в игре
wait(1) -- Ждём секунду
player.leaderstats.Money.Value += 1 -- Добавляем 1 доллар
end
end)
Если не работает, то скинь скрипт на добавление leaderstats и Money у игрока
Похожие вопросы
- Помогите со скриптом авторизации и регистрации пользователей на сайте через БД
- Помогите написать скрипт сканирования файла для антивируса
- Помогите создать скрипт
- Срочно! Помогите со скриптом! HTML
- Помогите сделать скрипт на autohotkey.
- Скрипт сайта ка его редактировать и залить на хост
- c# скрипт
- Как вставить php скрипт в html сайт?
- Что такое скрипты ?
- Какой нужен тег или скрипт