Lua Workspace.Gromaniak85.LocalScript:7:应为';)';(要关闭';(';在第25列),获取';.2xblock';

Lua Workspace.Gromaniak85.LocalScript:7:应为';)';(要关闭';(';在第25列),获取';.2xblock';,lua,roblox,Lua,Roblox,我想做的是得到chracters躯干到区块的距离。我不知道为什么,但当我引用文件夹时,它会给出那个错误 这是错误代码: Workspace.Gromaniak85.LocalScript:7:Expected')(要关闭'('在第25列),获得'.2xblock' local DistanceRemote = game:GetService("ReplicatedStorage").DistanceFromBlock local player = script.Parent.

我想做的是得到chracters躯干到区块的距离。我不知道为什么,但当我引用文件夹时,它会给出那个错误

这是错误代码: Workspace.Gromaniak85.LocalScript:7:Expected')(要关闭'('在第25列),获得'.2xblock'

local DistanceRemote = game:GetService("ReplicatedStorage").DistanceFromBlock
local player = script.Parent.Parent
local BrickMultipliers = game.Workspace.BrickMultipliers

while true do
    wait(0.5)
    local distancefrom2x = (game.Workspace[player.Name].UpperTorso.Position - BrickMultipliers.2xblock.Position).magnitude --error happens there
    print(distancefrom2x)
end
以下是studio中的情况:


我真的不知道该怎么办,所以我非常感谢您的帮助!!

在Lua中,您不能引用以符号(包括数字)开头的对象。您必须将其用方括号和引号括起来。这意味着您还可以去掉点(.):
brickmulti钳s[“2xblock”].Position
这将整数(2)与字符串的其余部分(xblock)结合起来,使Roblox能够成功引用您的部件。

根据名称,不能以数字开头

Lua中的名称(也称为标识符)可以是拉丁语的任意字符串 字母、阿拉伯-印度数字和下划线,不以字母开头 数字且不是保留字。标识符用于命名 变量、表字段和标签

以下关键字为保留关键字,不能用作名称:

 and       break     do        else      elseif    end
 false     for       function  goto      if        in
 local     nil       not       or        repeat    return
 then      true      until     while
因此,这是无效语法:
brickmulti钳子.2xblock.Position

语法var.Name只是var[“Name”]的语法糖:

变量::=前缀xp'.'名称

因此,这种方便的语法只适用于Lua标识符(名称)

As
2xblock
以数字开头,因此不能作为名称。因此
brickmulti钳子.2xblock
会导致错误

对于任何不是Lua名称的表键,必须使用方括号表示法


brickmulti钳s[“2xblock”]

字段名不能以数字开头。请将其重命名为其他名称。或者以
brickmulti钳s[“2xblock”]的身份访问它.Position
请选择代码而不是图像:
tostring
不将整数与字符串组合。虽然您的解决方案是正确的,但您的推理非常幼稚、误导和错误。