не удалось выполнить синтаксический анализ, потому что} не вставлен? - PullRequest
2 голосов
/ 21 мая 2019

Настройка сервера Fivem и попытка заставить esx_policejobs работать после добавления пользовательских job_grades. Получили ошибку и застряли на несколько часов, я не знаю, что я здесь что-то упускаю или нет?

Theres также консольная строка, в которой написано обратное отображение стека в другой файл .lua, так что может ли это быть проблемой вместо фактического файла конфигурации?

Посмотрел снова и снова конфиг и честно не могу найти проблему

    recruit = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 1500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 80 },
    },

    private = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    private-first-class = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 }
    },

    sergeant = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    lieutenant = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    captain = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    inspector = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    deputy-chief = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    assistant-chief = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

    chief-of-police = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },
}

Не должно быть никаких ошибок конфигурации

Ошибка в консоли:

Failed to load script config.lua.
Error loading script server/main.lua in resource esx_policejob: @esx_policejob/server/main.lua:5: attempt to index a nil value (global 'Config')
stack traceback:
        @esx_policejob/server/main.lua:5: in main chunk```

Ответы [ 2 ]

4 голосов
/ 21 мая 2019

Проблема с тире в именах ключей таблицы. Руководство дает подсказку о форме конструктора таблицы :

Поле формы name = exp эквивалентно ["name"] = exp.

A имя должно быть:

Имена (также называемые идентификаторами) в Lua могут быть любой строкой букв, цифр и подчеркиваний, не начинающейся с цифры и не являющейся зарезервированным словом. Идентификаторы используются для именования переменных, полей таблицы и меток.

Это означает, что вы должны использовать вторую форму конструктора таблицы ["name"] = exp для всего, что не является допустимым идентификатором.

['chief-of-police'] = {
    { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
    { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
    { weapon = 'WEAPON_PUMPSHOTGUN', components = { 2000, 6000, nil }, price = 70000 },
    { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
    { weapon = 'WEAPON_STUNGUN', price = 500 },
    { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
}
0 голосов
/ 21 мая 2019

Ошибка в вашем коде "частного" зарезервированного слова:

>>>>private = {
        { weapon = 'WEAPON_APPISTOL', components = { 0, 0, 1000, 4000, nil }, price = 10000 },
        { weapon = 'WEAPON_ADVANCEDRIFLE', components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
        { weapon = 'WEAPON_NIGHTSTICK', price = 0 },
        { weapon = 'WEAPON_STUNGUN', price = 500 },
        { weapon = 'WEAPON_FLASHLIGHT', price = 0 },
    },

  1. стол должен быть построен
    myTable = {}
  1. после того, как таблица существует, вы можете определить ключ:
    myTable["some.key"] = {}
  1. , если вам нужна дополнительная клавиша, следующим шагом будет:
    myTable["some.key"]["sub.key"] = {}  
    myTable["some.key"]["sub.key"]["value_1"] = "123"
    myTable["some.key"]["sub.key"]["value_2"] = "456"

в конце вы можете использовать трюк:

    local myTables = {}
    myTables["table_name"] = myTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...