Как брать из массива сразу все элементы (координаты)?

mikilikala

Новичок
Автор темы
12
1
Версия MoonLoader
Другое
Приветствую! Хочу сделать спавн машин при заходе в игру. Как взять все координаты из массива veh? В консоли вылазит варнинг bad argument.
Lua:
local veh =
{
    {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
    {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691}
}

function Vehicles()
    createVehicle(unpack(veh))
end
addEventHandler("onResourceStart", root, Vehicles)
 
Последнее редактирование:

meowprd

Тот самый Котовский
Проверенный
1,280
712
Lua:
local veh =
{
    {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
    {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691}
}

for k, v in pairs(veh) do
    print(v[1])
    print(v[2])
    print(v[3])
    print(v[4])
    print(v[5])
    print(v[6])
    print(v[7])
    print("end\n")
end

Lua:
411
2505.1791992188
-1664.51953125
13.391730308533
0
0
90
end

411
2501.7138671875
-1658.6333007812
13.387635231018
0
0
140.31568908691
end
 

Fott

Простреленный
3,431
2,265
Lua:
local veh =
{
    {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
    {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691}
}

function getlen(table)
    local len = 0
    for _,_ in pairs(table) do
        len = len + 1
    end
    return len
end
for num = 1, getlen(veh) do
    for _, res in pairs(veh[num]) do
        print(res)
    end
    print('\nend\n')
end

Lua:
local veh =
{
    {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
    {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691}
}

function getlen(table)
    local len = 0
    for _,_ in pairs(table) do
        len = len + 1
    end
    return len
end
for num = 1, getlen(veh) do
    for _, res in pairs(veh[num]) do
        print(table.unpack(veh[num]))
    end
    print('\nend\n')
end
 
Последнее редактирование:

meowprd

Тот самый Котовский
Проверенный
1,280
712
Lua:
local veh =
{
    {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
    {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691}
}

function getlen(table)
    local len = 0
    for _,_ in pairs(table) do
        len = len + 1
    end
    return len
end
for num = 1, getlen(veh) do
    for _, res in pairs(veh[num]) do
        print(res)
    end
    print('\nend\n')
end
что еще за getlen()?
А как же стандартный подсчет?
Lua:
local veh =
{
    {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
    {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691}
}

for num = 1, #veh do
    for _, res in pairs(veh[num]) do
        print(res)
    end
    print('\nend\n')
end
 

meowprd

Тот самый Котовский
Проверенный
1,280
712
Для слабаков. На самом деле я просто забыл про него, но там под капотом скорее всего тот же цикл
экономим строчки кода
раньше в lua это была функция table.maxn (вроде как), но потом ее заменили на решетку, не знаю работает ли она через цикл или нет, но факт в том, что это стандартная функция и стоит этим пользоваться
(твой код - это тоже самое, как написать while true do в качестве цикла for)
 

Fott

Простреленный
3,431
2,265
экономим строчки кода
раньше в lua это была функция table.maxn (вроде как), но потом ее заменили на решетку, не знаю работает ли она через цикл или нет, но факт в том, что это стандартная функция и стоит этим пользоваться
(твой код - это тоже самое, как написать while true do в качестве цикла for)
1627143187503.png
 
  • Нравится
Реакции: meowprd

mikilikala

Новичок
Автор темы
12
1
Посмотрел варианты и понял, что проще сделать уже так:


Lua:
function Vehicles()
    local spawnVeh =
    {
        {411, 2505.1791992188, -1664.51953125, 13.391730308533, 0, 0, 90},
        {411, 2501.7138671875, -1658.6333007812, 13.387635231018 ,-0, 0, 140.31568908691},
    }

    for i=1, #spawnVeh do
        createVehicle(unpack(spawnVeh[i]))
    end
end
addEventHandler("onResourceStart", root, Vehicles)