Roblox Studio矿石系统服务器脚本无法获取Player变量求助
Roblox矿石系统服务器脚本获取Power变量报错解决方案
问题根源
- 服务器脚本无法访问LocalPlayer:
game.Players.LocalPlayer是客户端专属属性,服务器端调用会返回nil,你第二个脚本是服务器脚本,用这个方法获取玩家完全错误。 - 变量未定义:代码里
print(m.power)中的m从未声明,直接调用会触发报错。 - 错误的玩家获取逻辑:
game:GetService("Players").LocalScript是无效属性,PlayerAdded:Wait()仅会返回第一个加入服务器的玩家,和触发物体交互的玩家完全无关。
修正后的第二个脚本代码
local prox = script.Parent local ore = prox.Parent.Parent.Ore -- 初始化提示文本 prox.ObjectText = ore.Value prox.ActionText = ore.Price.Value .. "$" -- 通过交互事件获取触发的玩家 prox.Triggered:Connect(function(player) -- 安全获取玩家的power变量 local power = player:FindFirstChild("power") if power then print(power.Value) else warn("玩家" .. player.Name .. "的power变量不存在") end end)
修正说明
- 移除所有错误的LocalPlayer相关代码,改用ProximityPrompt的
Triggered事件获取触发交互的玩家,这是服务器脚本获取交互玩家的标准方式。 - 使用
player:FindFirstChild("power")替代直接访问,避免因变量未创建导致的报错。 - 修复了未定义的
m变量问题,直接使用事件返回的player对象访问power属性。
内容的提问来源于stack exchange,提问作者Onergy
相关产品推荐
相关产品推荐

