как исправить Players.louie43pro.PlayerGui.admin.Frame.LocalScript: 10: Ожидаемый идентификатор при синтаксическом анализе выражения, получил ')' ошибку roblox studio?

У меня проблема в студии Roblox. Когда я пытаюсь создать командный сценарий администратора, используя локальный сценарий, возникает ошибка. Ошибка

Players.louie43pro.PlayerGui.admin.Frame.LocalScript: 10: Ожидаемый идентификатор при синтаксическом разборе выражения, получил ')'

Я пробовал много всего, чтобы исправить эту ошибку. пожалуйста помоги.

Это сценарий, который у меня есть

local rs = game:GetService("ReplicatedStorage")
local commandEvent = rs:WaitForChild("CommandEvent")

local frame = script.Parent
local enter = frame.Enter
local box = frame.CommandBox
 
--takes command and splits it up
local function get_command()
    local command = ()
    for word in string.gmatch(box.Text, "\S+") do
        table.insert(command, word)
    end
    local action = command[1]
    local person = command[2]
    
    print(action)
    print(person)
    
    commandEvent:FireServer(action, person)
    
    box.Text = " "
end

enter.MouseButton1Click:Connect(get_command)

Кто-нибудь может мне помочь с моей проблемой? пожалуйста..


person The Electical Sides    schedule 27.02.2021    source источник
comment
замените local command = () на local command = {}, вам нужны фигурные скобки для создания таблицы, а не скобки. вы использовали оператор вызова там, где нужен конструктор таблицы.   -  person Piglet    schedule 27.02.2021


Ответы (1)


local command = () недопустимый синтаксис Lua.

() - оператор вызова. Вы хотите создать значение таблицы, поэтому используйте конструктор таблицы {}

local command = {}

А может вы забыли название функции? Вы также можете сделать что-то вроде этого

local command = getMeSomeTable()

Тогда вызов оператора имел бы смысл. Эта функция, конечно же, должна возвращать таблицу.

Как только вы исправите эту ошибку, вы столкнетесь с другой ошибкой из-за использования недопустимой escape-последовательности. Замените \S на %S, чтобы соответствовать непробельному символу.

Если вы не найдете 2 совпадений, вы столкнетесь со следующей ошибкой. Поэтому вы должны проверить, действительно ли command имеет два элемента с ключами 1 и 2, прежде чем вы их проиндексируете.

Так что, может быть, добавить что-нибудь вроде

if action and person then command:FireServer(action, person) end
person Piglet    schedule 27.02.2021