You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Roblox挖矿脚本异常:仅他人挖矿时我获得金币,求技术支援

Roblox挖矿脚本异常排查与修复

问题根源

原脚本存在几个核心逻辑错误:

  1. 重复绑定点击事件:在PlayerAdded事件中给同一个岩石反复绑定点击事件,导致每次点击都会触发所有玩家绑定的事件,加钱对象混乱。
  2. 错误的玩家绑定:未使用MouseClick事件自带的点击玩家参数,反而固定使用PlayerAdded中的玩家,导致无论谁点击,都给该玩家加钱。
  3. 未初始化全局共享变量:health变量未定义初始值,且为全局变量,所有点击共享同一个健康值,逻辑完全混乱。
  4. 无效的克隆操作:克隆岩石后未将克隆体加入场景,该代码完全无效。

修复后的脚本

将以下脚本直接放置在岩石对象中(作为ServerScript):

-- 初始化岩石的健康值
local health = 10
local rock = script.Parent
local clickDetector = rock.ClickDetector
local billboard = rock.BillboardGui
local billboardText = billboard.TextLabel

-- 设置初始状态
billboard.Enabled = false
billboardText.Text = health

clickDetector.MouseClick:Connect(function(player)
    -- 检查玩家数据是否存在,避免报错
    local leaderstats = player:FindFirstChild("leaderstats")
    if not leaderstats then return end
    local money = leaderstats:FindFirstChild("Money")
    if not money then return end

    -- 更新岩石健康值
    health = health - 1
    billboard.Enabled = true
    billboardText.Text = health

    if health == 0 then
        -- 临时禁用岩石交互
        clickDetector.Parent = nil
        rock.Union.Transparency = 1
        rock.Union.CanCollide = false
        billboard.Enabled = false

        -- 给当前点击的玩家添加金币
        money.Value = money.Value + 100

        -- 重置岩石状态
        wait(5)
        clickDetector.Parent = rock
        rock.Union.Transparency = 0
        rock.Union.CanCollide = true
        health = 10
        billboardText.Text = health
    end
end)

修复说明

  • 移除冗余的PlayerAdded绑定:岩石作为公共交互对象,只需绑定一次点击事件即可。
  • 使用点击事件的玩家参数:确保金币添加给实际点击岩石的玩家。
  • 局部化健康值变量:每个岩石实例拥有独立的健康值,避免多玩家点击时的逻辑冲突。
  • 添加数据存在性检查:防止因玩家数据未加载完成导致的脚本报错。
  • 清理无效克隆代码:移除无意义的岩石克隆操作。

内容的提问来源于stack exchange,提问作者Sippy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:15:29