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

Roblox投票系统开发报错:尝试索引nil的'value'属性

问题解决:attempt to index nil with 'value' 投票按钮报错

问题根源

你的脚本放在StarterGui下,属于客户端脚本,但误用了全局PlayerAdded事件获取leaderstats,这会导致两个核心问题:

  • 客户端脚本运行时,当前玩家的LocalPlayer已经存在,全局PlayerAdded不会触发当前玩家的回调,votes变量永远不会被赋值,始终为nil
  • 就算回调触发,玩家也可能在回调执行完成前点击按钮,此时votes仍未赋值,照样触发报错

另外,投票逻辑应该明确操作当前本地玩家的leaderstats,而非全局玩家对象。

修正后的代码

local button = script.Parent
local player = game.Players.LocalPlayer
-- 等待本地玩家的leaderstats加载完成
local leaderstats = player:WaitForChild("leaderstats")
local votes = leaderstats:WaitForChild("Votes")

button.MouseButton1Down:Connect(function()
    votes.Value += 1
end)

关键改动说明

  • 直接获取game.Players.LocalPlayer:客户端脚本可直接访问当前玩家,无需等待全局PlayerAdded事件
  • 提前用WaitForChild加载对象:确保按钮绑定事件前,leaderstats和Votes已加载完成,从根源避免nil错误
  • 移除多余全局监听:完全适配客户端脚本的运行逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:32:36