#lua #roblox
Вопрос:
Нужно выяснить, разблокировал ли игрок эту область или нет. Все отлично работает с областями, в названии которых нет пробелов, и скрипт отказывается работать с пробелами. Кому не сложно, пожалуйста, помогите. Он должен работать с «Нейтральной зоной» и «Областью будущего».
local player = game.Players.LocalPlayer
local msg = Instance.new("Message", player.PlayerGui)
if (game.Players.LocalPlayer.AREAS.Neutral Area.Value == true) then
msg.Text = "true"
else
msg.Text = "false"
end
wait (2)
msg:Destroy()
Ответ №1:
В именах Lua не может быть пробелов. Таким образом, эта операция индексирования недопустима!
game.Players.LocalPlayer.AREAS.Neutral Area
Обычно вы использовали бы такое имя, как NeutralArea
или Neutral_Area
.
Правильный способ индексирования поля Neutral Area
с именем
game.Players.LocalPlayer.AREAS["Neutral Area"]
t.name
является синтаксическим сахаром, для t["name"]
которого работает только в том случае, если ключ на самом деле является допустимым именем/идентификатором Lua. Допустимые имена Lua состоят из подчеркивания и буквенно-цифровых символов. Но они могут не начинаться с числа…
Пожалуйста, прочтите руководство Lua. Это очень базовые знания.
Комментарии:
1. И как это объяснить? Ссылка
2. @Всеволод Я не вижу ничего такого, что бы меняло контекст вашего вопроса.
3. Я не говорю, что вы не можете использовать такие названия, как «Нейтральная зона». но если вы это сделаете, вы должны проиндексировать его, используя
["Neutral Area"]
, что вы не можете использовать.Neutral Area