Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Роблокс гуи и бейджи

Halit Ученик (158), открыт 1 неделю назад
как сделать так чтобы при нажатии кнопки гуи выдавался бейдж(почему то не выдаёт)
_G.pricend = 25000
local bdgid = 1064930656514018
local badgService = game:GetService("BadgeService")
local button = script.Parent
local plr = game.Players.LocalPlayer
button.MouseButton1Click:Connect(function()
if _G.counter >= _G.pricend then
local tween = game:GetService("TweenService")
local part = workspace.Union
local info = TweenInfo.new (1)
local target = {Position = Vector3.new (19.67, 17.632, 18.337)}
local tweens = tween:Create(part, info, target)
tweens:Play()
wait(1)
if not badgService:UserHasBadge(plr.UserId, bdgid) then
badgService:AwardBadge(plr.UserId, bdgid)
end
_G.counter -= _G.pricend
task.wait(2)
plr:Kick("The End!Thank for playing")
workspace.succes:Play()
print("You buyed end!")
else
print("Error!")
workspace.err:Play()
end
end)
(я знаю что этим скриптом возможно могу призвать демонов, просто сорри не оч в этой теме хорош) и пишет
Sorry, badges can only be awarded by Roblox game servers
я уже пробовал в игре получить но не получилось(
2 ответа
Цветикъ Гуру (2758) 1 неделю назад
Фу, роблокс. Лучше меня с собой заберите
HalitУченик (158) 1 неделю назад
Cпасибо тебе, помог!
yungh47e Профи (558) 1 неделю назад
Запредельный уровень программирования


А вдруг поможет Нейронка:

Сообщение "Sorry, badges can only be awarded by Roblox game servers" означает, что вы не можете непосредственно назначать значки (бейджи) из клиентского скрипта (как скрипт, который вы привели).

Назначение значков должно происходить на стороне сервера игры (Roblox game servers), чтобы обеспечить безопасность и предотвратить возможные злоупотребления.

Чтобы назначить значок игроку в вашей игре, вы должны вызвать функцию AwardBadge на сервере игры, а не на клиенте. Для этого вам нужно создать серверный скрипт, который будет обрабатывать событие нажатия кнопки на клиенте и назначать значок при выполнении условий.

Ниже пример того, как можно реализовать это на стороне сервера:

 local bdgid = 1064930656514018 
local badgService = game:GetService("BadgeService")

game.Players.PlayerAdded:Connect(function(player)
local button = player.PlayerGui:WaitForChild("YourButtonName") -- Подставьте имя вашей кнопки
button.MouseButton1Click:Connect(function()
if _G.counter >= _G.pricend then
-- ваша логика для анимации и других действий
if not badgService:UserHasBadge(player.UserId, bdgid) then
badgService:AwardBadge(player.UserId, bdgid)
end
-- ваша остальная логика
end
end)
end)

Этот скрипт следует поместить в скрипт на стороне сервера (ServerScriptService). При подключении игрока к серверу, скрипт ожидает, что кнопка будет создана в его интерфейсе и присоединяется к событию MouseButton1Click. Когда игрок нажимает кнопку, проверяется, имеет ли он уже значок, и если нет, то назначается.
HalitУченик (158) 1 неделю назад
не очень помогает, пишет "Infinite yield possible on 'Players.HOloDALNAkk228.PlayerGui:WaitForChild("endbutton")'"
Похожие вопросы