Roblox Lua报Expected identifier错误 如何用玩家名变量设置JumpPower与WalkSpeed
错误根因
你遇到的是两处Lua基础语法错误:
- 字符串赋值未加引号:
local playerName = OykkoIsBack中OykkoIsBack是字符串值,未加引号时Lua会将其识别为未定义的变量,需要用双引号/单引号包裹。 - 动态索引语法错误:
.操作符后只能跟固定的成员名,如果你要通过变量的值作为索引取表内成员,必须使用方括号[]包裹变量。你写的Players.(playerName)完全不符合Lua语法规则,这就是触发Expected identifier, got '('报错的直接原因。
修正后代码
-- 优先用GetService获取Roblox服务,避免路径变更导致报错 local Players = game:GetService("Players") -- 字符串用引号包裹 local playerName = "OykkoIsBack" -- 用[]通过变量索引玩家对象 Players[playerName].Character.Humanoid.JumpPower = 100 -- 同步修改WalkSpeed可新增一行 Players[playerName].Character.Humanoid.WalkSpeed = 20
优化建议
上述基础代码在玩家角色未加载时会抛出空值错误,新增加载判断逻辑运行会更稳定:
local Players = game:GetService("Players") local playerName = "OykkoIsBack" local targetPlayer = Players:FindFirstChild(playerName) if targetPlayer then -- 等待角色加载完成 local character = targetPlayer.Character or targetPlayer.CharacterAdded:Wait() -- 等待人形对象加载完成 local humanoid = character:WaitForChild("Humanoid") humanoid.JumpPower = 100 humanoid.WalkSpeed = 20 end
内容的提问来源于stack exchange,提问作者Oykko
相关产品推荐
相关产品推荐

