Lua творит какой-то пи3Dец

Sleash

Известный
Автор темы
89
159
Версия MoonLoader
.026-beta
Пишу мини-игру на Lua + mimgui, идёт проверка на то, нажал ли игрок на опред. область, если "да", то ещё несколько проверок, в конце такой код:
Lua:
--    code...
else
    print(tempTable[i][j], startedTable[i][j])
    tempTable[i][j] = data.SelInt
    print(tempTable[i][j], startedTable[i][j])
end
-- code...
После чего получаю в консоли такой выход:
Код:
script.lua: 0 0
script.lua: *число* *число*
Пример ниже:
1687445061094.png

Внимание вопрос: Какого йуха?
Может я чего-то не понимаю, но массив startedTable изменяется (а точнее приравнивается к tempTable) только при вызове функции, которая в свою очередь срабатывает только при вводе команды
 

wojciech?

Известный
Проверенный
404
360
lua не хранит таблицы в переменных, там лишь указатели на них. и в момент, когда ты приравниваешь started к temp фактически у тебя остается только одна таблица, к которой они оба и ссылаются. от того, когда ты изменяешь temp изменяется и started
 
  • Нравится
Реакции: #Northn

Sleash

Известный
Автор темы
89
159
lua не хранит таблицы в переменных, там лишь указатели на них. и в момент, когда ты приравниваешь started к temp фактически у тебя остается только одна таблица, к которой они оба и ссылаются. от того, когда ты изменяешь temp изменяется и started
Понял, спасибо, для меня это как-то дико, но всё равно попробую как-то это обойти
 

wojciech?

Известный
Проверенный
404
360
Понял, спасибо, для меня это как-то дико, но всё равно попробую как-то это обойти
чтобы этого избежать, если тебе нужны идентичные таблицы, но с разными указателями, можно просто тупо копировать их (рекурсировно разбирать и присваивать идентичным ключам одно и тоже значение, кроме таблиц внутри, их нужно прогонять через ту же функцию)