просто бывает, берешь чью то наработку. Переписываешь с jass на lua. Перестает работать. Тысячу раз проверишь, и думаешь: "Че не так то?".
решил инициировать переменные, перестал работать код.
так работало, пока не заметил, что базу не инициирует
Color = { {},{} }                        
Setting = { {},{} }
решил добавить бд
Color = {{}} --{ {},{} }
Setting = {{}} --{ {},{} }  
                        
 --Gold Bounty
   Color[0][0] = 255
   Color[0][1] = 220
   Color[0][2] = 0
   Color[0][3] = 255
   Setting[0][0] = 0.0 -- Velocity 1
   Setting[0][1] = 0.03 -- Velocity 2
   Setting[0][2] = 2.0 -- Fadepoint
   Setting[0][3] = 3.0 -- Lifespan
   Setting[0][4] = -16.0 -- OffsetX
--Lumber Bounty
   Color[1][0] = 0
   Color[1][1] = 200
   Color[1][2] = 80
   Color[1][3] = 255
   Setting[1][0] = 0.0 -- Velocity 1
   Setting[1][1] = 0.03 -- Velocity 2
   Setting[1][2] = 2.0 -- Fadepoint
   Setting[1][3] = 3.0 -- Lifespan
   Setting[1][4] = -16.0 -- OffsetX
Короче, двумерные массивы не работает триггер, не исполняется код и пр =( без них все работает.

Далее. Общеизвестно, что нумерация индексов в Lua начинается с 1. А потому
Color = { {},{} }                        
Setting = { {},{} }
Color содержит таблицы в индексах 1 и 2, как и таблица Setting.
Более того, вопросы о массивах уже были. Первый и второй.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
Далее. Общеизвестно, что нумерация индексов в Lua начинается с 1. А потому
Color = { {},{} }                        
Setting = { {},{} }
Color содержит таблицы в индексах 1 и 2, как и таблица Setting.
Более того, вопросы о массивах уже были. Первый и второй.
Принятый ответ
27
prog, че то метатаблицы очень сложны в понимании. нет примеров для новичков.. Я смотрел справочник.

Color содержит таблицы в индексах 1 и 2, как и таблица Setting.
теперь понял

PT153, я так понял
Color = {{}}
равнозначно как
Color = [1][1]
или
Color = {{{}}}
равнозначно как
Color = [1][1][1]

Color = { {},{} } -- > равнозначно Color = { {}=1,{}=2 }
т.е. получается так:
Color[1][1] = ...
Color[1][2] = ...
Color = { {},{},{} } -- > равнозначно Color = { {}=1,{}=2,{}=3 }
т.е. получается так:
Color[1][1] = ...
Color[1][2] = ...
Color[1][3] = ...
так?

чтобы создать двумерный массив, надо создать две таблицы
A = {} --одномерный массив, создаем таблицу
A[1] = ...
A[2] = ...
A[3] = ...

--для двумерного создаем две таблицы
Color = {} --одномерный массив, создаем таблицу
Color[1] = {} --двумерный массив, создаем таблицу
Color[1][1] = ...
Color[1][2] = ...
чтобы использовать 2 индекс, нужно создать еще одну таблицу
Color[2] = {}
Color[2][1] = ...
Color[2][2] = ...

--для 3-его индекса создаем еще одну таблицу
Color[3] = {}
Color[3][1] = ...
Color[3][2] = ...

рабочий код
						Color = {}
                        Setting = {}  
                        
                        --Gold Bounty
                            Color[1] = {}
                            Color[1][1] = 255
                            Color[1][2] = 220
                            Color[1][3] = 0
                            Color[1][4] = 255
                            Setting[1] = {}
                            Setting[1][1] = 0.0 -- Velocity 1
                            Setting[1][2] = 0.03 -- Velocity 2
                            Setting[1][3] = 2.0 -- Fadepoint
                            Setting[1][4] = 3.0 -- Lifespan
                            Setting[1][5] = -16.0 -- OffsetX
                        --Lumber Bounty
                            Color[2] = {}
                            Color[2][1] = 0
                            Color[2][2] = 200
                            Color[2][3] = 80
                            Color[2][4] = 255
                            Setting[2] = {}
                            Setting[2][1] = 0.0 -- Velocity 1
                            Setting[2][2] = 0.03 -- Velocity 2
                            Setting[2][3] = 2.0 -- Fadepoint
                            Setting[2][4] = 3.0 -- Lifespan
                            Setting[2][5] = -16.0 -- OffsetX
Если циклом буду работать, ниче не поломается)

prog, таблицы надо удалять или не надо? где-то видел, что используют точки в переменных, тоже своего рода способ описания .
28
Color = { {},{} } -- > равнозначно Color = { {}=1,{}=2 }
Равнозначный вариант имеет неверный синтаксис.
13
Или так:
function newArray(dim_count, dim_size)
	local arr = {}
	for i = 1, dim_size do
		if (dim_count > 1) then
			arr[i] = newArray(dim_count - 1, dim_size)
		end
	end
    return arr
end

local a = newArray(2, 10)

a[1][1] = 5     -- OK
a[1][1][1] = 5  -- Error
a[12][12] = 5  -- Error

print(a[1][1])      -- a[1][1] == 5
21
-- тут синтаксическая ошибка
Color = { {},{},{} } -- > равнозначно Color = { {}=1,{}=2,{}=3 }

--
Color = { {},{},{} } -- > равнозначно следующему коду:

Сolor = { }
Color[1] = { }
Color[2] = { }
Color[3] = { }
27
вопрос: нужно ли удалять таблицу? если нужно, то это в корне меняет дело. Я еще думал тысячи таблиц плодить под свою систему.
ладно нужно
21
ScopteRectuS:
-- тут синтаксическая ошибка
Color = { {},{},{} } -- > равнозначно Color = { {}=1,{}=2,{}=3 }

--
Color = { {},{},{} } -- > равнозначно следующему коду:

Сolor = { }
Color[1] = { }
Color[2] = { }
Color[3] = { }
Двумерный массив нельзя просто создать и использовать как хеш-таблицу джазовую. Для каждой ячейки нужно создавать свою таблицу.
Создавать каждый индекс вручную муторно. Лично я делаю примерно так:
    my2dArray = { }

    setValue = function(parrentKey, childKey, value)
        if my2dArray[parrentKey] == nil then
            my2dArray[parrentKey] = { }
        end

        my2dArray[parrentKey][childKey] = value
    end
27
ScopteRectuS, спасибо за исправление. Пока что надо сделать/опробоваиь, потом буду думать.
21
Насколько я знаю, ничего удалять не нужно. Да и функции для удаления таблицы не существует. Таблица будет сама удалена сборщиком мусора, если на неё не будет активных ссылок. Но вот когда сборка мусора сработает - неизвестно. Сборку мусора можно запустить вручную через функцию collectgarbage()
27
а может ли таблица хранить несколько значении? просто вспомнил, что у lua return можно вернуть несколько значении. или это опять волшебство lua
28
ладно нужно
А таблицу никак не удалить. Она сама удалится, когда не будет содержать в себе нужные объекты.

а может ли таблица хранить несколько значении
Ну как бы да.
lua return можно вернуть несколько значении
Так-то возвращается таблица с возвращёнными элементами.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.