Roblox制作Baldi Basics同人游戏:拾取物品后Coins≥7判断失效无报错
问题分析与解决
你的核心问题是脚本提前销毁导致后续判断逻辑未执行:在增加硬币后,你立刻调用了script.Parent:Remove(),而当前脚本是script.Parent的子物体,这会直接销毁脚本本身,导致后面的if判断代码根本没机会运行。
修复后的脚本
调整代码执行顺序,把移除父物体的操作放到所有逻辑的最后:
script.Parent.ClickDetector.MouseClick:Connect(function(plr) -- 增加硬币数量 plr.leaderstats.Coins.Value = plr.leaderstats.Coins.Value + 1 -- 播放拾取音效 script.Parent.Sound:Play() -- 执行场景切换相关操作 game.ServerStorage.artem.Parent = workspace game.Workspace.lobby:Stop() game.Workspace.artem_passive.Parent = game.ReplicatedStorage -- 检查硬币是否达到7个 if plr.leaderstats.Coins.Value >= 7 then game.Workspace["ready up"]:Play() game.Workspace["invisible wall"].CanCollide = false end -- 最后销毁当前笔记本物体 script.Parent:Remove() end)
额外检查项
- 确认
game.Workspace["ready up"]是有效的Sound实例,且Volume属性不为0,没有被其他脚本暂停或销毁。 - 确认
game.Workspace["invisible wall"]是BasePart类的实例(如Part、UnionOperation),拼写完全一致,没有大小写错误。 - 建议把排行榜脚本里的旧语法
connect改为Roblox推荐的大写Connect:
game.Players.PlayerAdded:Connect(function(plr) local f = Instance.new("Folder", plr) f.Name = "leaderstats" local coins = Instance.new("IntValue", f) coins.Name = "Coins" coins.Value = 0 end)
内容的提问来源于stack exchange,提问作者VWOS
相关产品推荐
相关产品推荐

