所以,我正在开发一款 Roblox 游戏,我想制作一个秘密房间并奖励找到它的玩家徽章,但问题是徽章给予者不起作用,我的徽章给予者也被锁定,所以我不知道不要意外地将其放入地图中。它也位于密码门后面,周围都是上锁的部件。这是我的代码。
local badgeService = game:GetService("BadgeService")
local id = 2133435079
script.Parent.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
badgeService:AwardBadge(plr.UserId,id)
end
end)
我尝试解锁徽章授予者,但没有成功。
我也尝试过常规测试,但也不起作用
根据错误,听起来您没有防止
plr
为零的情况。如果 hit.Parent
不是玩家的角色模型,就会发生这种情况。
local badgeService = game:GetService("BadgeService")
local players = game:GetService("Players")
local id = 2133435079
script.Parent.Touched:Connect(function(hit)
local plr = players:GetPlayerFromCharacter(hit.Parent)
if plr then
badgeService:AwardBadge(plr.UserId, id)
end
end)
您也可以尝试切换到本地脚本并使用它 这可能行不通,因为我不太擅长烤卢奥
local badgeservice = game:GetService("BadgeService")
local player = game.Players.LocalPlayer
local id = 123456789
script.Parent.Baseplate.Touched:Connect(function()
if player then
badgeservice:AwardBadge(player.UserId, id)
elseif not player then
warn("This is not a player")
end
end)