Roblox Lua脚本求助:实现浆果采摘后1分钟重生可再次采摘
修复Roblox浆果采摘脚本:实现重复采摘功能
原脚本的核心问题是点击后销毁了ClickDetector,导致1分钟冷却结束后没有可恢复的交互组件,自然无法再次触发采摘。下面是修复后的完整脚本,以及关键修改说明:
修复后的脚本
local grape = script.Parent.grapes local sound = script.Parent.Union.Sound local click = script.Parent.ClickDetector -- 改为local变量,避免全局污染 local Toolname = "Berries" local function onClicked(Player) -- 立即关闭交互,防止重复触发 click.MaxActivationDistance = 0 -- 隐藏浆果+播放音效 grape.Transparency = 1 sound:Play() -- 克隆道具到玩家背包 local replicatedStorage = game:GetService("Lighting") -- 注:通常道具建议放在ReplicatedStorage,这里保留原路径 local tool = replicatedStorage:FindFirstChild(Toolname) if tool then local toolClone = tool:Clone() toolClone.Parent = Player.Backpack else warn(Toolname .. " not found in Lighting.") end -- 等待1分钟冷却 task.wait(60) -- 推荐用task.wait替代wait,更稳定 -- 恢复浆果显示和交互状态 grape.Transparency = 0 click.MaxActivationDistance = 8 end -- 绑定点击事件 click.MouseClick:Connect(onClicked) -- 用Connect替代旧的connect,符合Roblox新规范
关键修改点
- 移除ClickDetector销毁操作:删掉
click = script.Parent.ClickDetector:Destroy(),保留组件才能在冷却后恢复交互。 - 变量本地化:将
click和Toolname改为local变量,避免全局变量冲突问题。 - 优化事件绑定:用
Connect替代旧的connect,符合Roblox最新API规范;用task.wait替代wait,性能更稳定。 - 调整逻辑顺序:先关闭交互再执行后续操作,防止玩家在冷却前重复点击触发多次采摘。
内容的提问来源于stack exchange,提问作者dayll
相关产品推荐
相关产品推荐

