Так что у меня есть проблема, с которой я некоторое время возился с Белки. Я хочу, чтобы создать что-то, что проходит через все внутри массива, например:Поиск пустого слота в массиве и его использование
local array = [1, 2, 3, -1, 5, -1, 7, -1];
и искать те, которые являются -1, я хочу использовать только один из них, тот, который приходит первым (который в этот случай составляет от 3 до 5).
В моем скрипте, когда кто-то уничтожает определенный объект, он устанавливает, что идентификаторы объектов равны -1, а не регулярное число, поскольку в противном случае он просто вычеркивает ошибки при попытке использовать этот объект. Не знаю, хорошо ли я это объясняю.
Другой пример: игроки подключаются к определенному игровому серверу, поэтому у нас есть игроки с идентификаторами 0, 1, 3 и 4, поэтому, когда следующий игрок подключается, он получает идентификатор 2. Это то, что я получаю после с массивами.
Я попробовал несколько вещей, только то, что ближе всего к нему так:
for(local i=1; i < Array.len(); i++){
if(Array[i].id != -1){
count++;
} else {
count = i;
}
}
Но проблема с этим является то, что он принимает только последний идентификатор и заменяет его, поэтому у нас есть объекты 0 , 1, 2 и 3 Если я уничтожу 3 и создаю новый, не проблема. Если бы я уничтожал либо 0, 1 или 2 вместо этого, но и создал новый, он бы не взял этот слот, а вместо этого пошел на номер 4, который тогда не работает.
Спасибо за чтение, надеюсь, кто-нибудь там может помочь мне с этим.
РЕШИТЬ:
Это было очень просто, для кого-либо еще с той же проблемой, это то, что я сделал. Следуйте дальше, это может стать очень сложным.
Что я сделал, я добавил «break»; в другом заявлении, код ниже:
for(local i=1; i < Array.len(); i++){
if(Array[i].id != -1){
count++;
} else {
count = i;
break; // THIS
}
}
Да, я ударил себя в голове позже ...
Положите свое решение в качестве ответа, чтобы принять его, чтобы пометить вопрос как правильно решенный. – Nakilon