сокращение кода

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,478
1,113
Версия MoonLoader
привет
пишу скрипт для спавна каров по типу /spawncar [Название]
но так как этих каров дохрена, у меня будет очень много строк "sampRegisterChatCommand"
вопрос:
можно как-то сократить это? не знаю, может создать переменные с названием машин, но только так, чтобы все названия были в строчку типа "Infernus, Bullet, Turismo, Buffalo", а не
"Bullet"
"Turismo"
"Infernus"
"Buffalo"
ну чтобы меньше кода было
 
Решение
до меня вроде дошло
Посмотреть вложение 37705
Посмотреть вложение 37706
вроде бы все работает
еще вопрос, у тебя вот столбик есть
[402] = "Buffalo",
[451] = "Turismo",
[411] = "Infernus"
в строчку такое можно делать?
Да, можно, просто, делая столбиком, это выглядит более читаемо.

DolgorukovGTA

Известный
Проверенный
652
345
1. Создать массив с машинами.
2. Зарегистрировать команду с функцией, принимающей название автомобиля. Проверить через конструкцию for k, v in pairs() (в аргумент функции вставляешь переменную, отвечающую за массив), является ли параметр эквивалентным значению элемента массива.
 
  • Нравится
Реакции: Dmitriy Makarov

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,478
1,113
1. Создать массив с машинами.
2. Зарегистрировать команду с функцией, принимающей название автомобиля. Проверить через конструкцию for k, v in pairs(), является ли параметр эквивалентным значению элемента массива.
я не делал подобное
можешь пример привести если не сложно с этими карами?
Bullet, Turismo, Infernus
команда /spawn [Название]
 

DolgorukovGTA

Известный
Проверенный
652
345
я не делал подобное
можешь пример привести если не сложно с этими карами?
Bullet, Turismo, Infernus
команда /spawn [Название]
Для создания автомобиля используется функция:
Lua:
createCar(model, x, y, z)
Первым параметром подается ID модели транспорта, который тебе нужно заспавнить, 2, 3, 4-ый параметры - координаты, в которых этот транспорт будет заспавнен. Для примера, я буду использовать координаты 0, 0, 0, находящиеся в центре карты.

Lua:
local m = { -- создадим массив, где значениями элементов будут служить названия т/c, а индексами - номера их моделей
    [402] = "Buffalo",
    [451] = "Turismo",
    [411] = "Infernus"
}

function main()
    -- самостоятельно добавишь необходимые проверки на загрузку SF\SAMP
    sampRegisterChatCommand("veh", function(param) -- регистрируем команду с функцией, принимающей параметр
        for k, v in pairs(m) do -- делаем "пробежку" по элементам массива m
            if param == v then -- проверяем, эквивалентен ли введенный параметр значению элемента массива
                createCar(k, 0, 0, 0) -- создаем автомобиль с ID индекса элемента в нулевых координатах
                break -- преждевременно выходим из цикла
            end
        end
    end)
    wait(-1) -- ставим функцию main в режим ожидания
end
 
  • Нравится
Реакции: Dmitriy Makarov

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,478
1,113
Для создания автомобиля используется функция:
не, у мя админ-кмд есть /vec
в планах сделать так, чтобы при вводе /spawn Infernus, будет прописываться /vec 411 0 0, это я смогу сделать
мне нужно тогда сделать массив как ты говоришь, я это не умею)
 

DolgorukovGTA

Известный
Проверенный
652
345
не, у мя админ-кмд есть /vec
в планах сделать так, чтобы при вводе /spawn Infernus, будет прописываться /vec 411 0 0, это я смогу сделать
мне нужно тогда сделать массив как ты говоришь, я это не умею)
Я внизу объяснил как, принцип такой же.
 
  • Нравится
Реакции: Dmitriy Makarov

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,478
1,113
Первым параметром подается ID модели транспорта, который тебе нужно заспавнить, 2, 3, 4-ый параметры - координаты, в которых этот транспорт будет заспавнен. Для примера, я буду использовать координаты 0, 0, 0, находящиеся в центре карты.
до меня вроде дошло
37705

37706

вроде бы все работает
еще вопрос, у тебя вот столбик есть
[402] = "Buffalo",
[451] = "Turismo",
[411] = "Infernus"
в строчку такое можно делать?
 

DolgorukovGTA

Известный
Проверенный
652
345
до меня вроде дошло
Посмотреть вложение 37705
Посмотреть вложение 37706
вроде бы все работает
еще вопрос, у тебя вот столбик есть
[402] = "Buffalo",
[451] = "Turismo",
[411] = "Infernus"
в строчку такое можно делать?
Да, можно, просто, делая столбиком, это выглядит более читаемо.