Сортированный не есть упорядоченный. Перед тем как токсичить без причины стоит хотя бы с терминологией ознакомится.
те более если использовать пейрсы как в вашем примере, это путь к десинкам
pairs - это просто функция, которая возвращает функцию next, переданную таблицу и nil. Если у таблицы есть метаметод __pairs, то вызывается он. Таким образом, добавляется метаметод и никаких десинков нет.
Он отослал не в гугл, а на страницу вики от юзеров луа. Но это всё же такой себе источник. И как я уже сказал, pairs вообще не при делах. Всё дело в функции next. Цитата из официальной документации Lua 5.3:
Allows a program to traverse all fields of a table. Its first argument is a table and its second argument is an index in this table. next returns the next index of the table and its associated value. When called with nil as its second argument, next returns an initial index and its associated value. When called with the last index, or with nil in an empty table, next returns nil. If the second argument is absent, then it is interpreted as nil. In particular, you can use next(t) to check whether a table is empty.
The order in which the indices are enumerated is not specified, even for numeric indices. (To traverse a table in numerical order, use a numerical for.)
The behavior of next is undefined if, during the traversal, you assign any value to a non-existent field in the table. You may however modify existing fields. In particular, you may clear existing fields.
Таким образом, порядок может быть идентичен на разных машинах, а может быть и не идентичен. Поэтому изначальное утверждение Hate правдиво:
что на одном компьютере будет A, B, C а на втором C, B, A
Что касается самого вопроса. Удобство таблиц в том, что их не надо удалять функцией, но нужно реализовать уникальность юнитов. На HIVE есть готовая библиотека, которая включает в себя переписывание нативок для групп юнитов, точек, ректов и групп игроков на таблицы. Краткое описание библиотеки от автора, Bribe:
Most recently, I've revamped the old GUI Fixer Collection to a much more powerful tool: Lua-Infused GUI. Since GUI variables don't actually require strict type assignment when compiled into Lua, I was able to change Locations, Rects, Unit Groups and Player Groups into Lua tables, allowing them to consume an order of magnitude less RAM and be automatically cleaned up by Lua's garbage collector.
Как вы видите, хендлов всё так же 10000, а это значит, что TriggerRemoveActions не работает. Но почему же? - спросите вы, чтобы ответить на этот вопрос нужно для начала посмотреть на TriggerRemoveConditions, почему же он работает?
Было бы неплохо обновить информацию про TriggerAddAction, так как там что-то странное в коде.
На первом, где мы смотрим просто кол-во хендлов, закомментены TriggerRemoveAction и TriggerRemoveCondition. На втором и третьем вместо них TriggerClearActions и TriggerClearConditions. При этом третий скрин подписан как будто там используется TriggerRemoveAction и TriggerRemoveCondition. Точнее там все эти функции почему имеют окончание s, что очень странно.
Четвёртый скрин подписан TriggerRemoveConditions, хотя показан код TriggerClearConditions.
По итогу не ясно, помогает ли TriggerRemoveAction избежать проблемы или нет.
А ну Unryze уже отвечал, но всё же было бы неплохо исправить названия функций и дополнить, что TriggerRemoveAction полностью очищает действие.
clojurmagictime, как и сказал скорп, можно добавить свыше этого лимита через Shift+Enter.
Самый просто пример этой проблемы - Azure Glade Tower Defense, карта от близзард.
Там есть предмет, который называется +42 к атаке. На самом же деле внутри у него 5 способностей: +15, +15, +12, +9 и +9. Итого 60. Но на 1.26 работают только первые 4, получается всего +51. В то же время на рефе работают все 5, то есть выходит +60. Я добавил +9 ещё 10 раз и сработало как надо -- +150.
Ещё один плюс в копилку Reforged. На 1.26 каждый итем может иметь сколько угодно способностей внутри, но только первые 4 будут работать. У рефа такого нет, сделал итем с 15-ю способностями, все работают.
Этого поля нет в 1.26 в ui/miscdata.txt, на этом патче отображается только награда в золоте. Это поле было добавлено в будущих патчах, я полагаю, что в 1.29.
Важно: этот же файл используется в редакторе интерфейса, так что сначала этот файл стоит извлечь и отредактировать. Также при импорте нужно изменить путь на war3mapMisc.txt, то есть убрать war3mapimported. И нет гарантии, что этот файл не перезапишется при следующем сохранении, даже без изменения интерфейса с помощью WE.
war3mapMisc.txt используется игровыми константами карты, а не настройками интерфейса. Если в данном файле присутствуют изменения значений, которых нет в интерфейсе редакторе (те же настройки текстагов), то все изменения констант через редактор не будут сохраняться. Таким образом файл не перезаписывается при сохранении карты.
Сохранение карты два раза решает проблему, даже "сломанная" запускается.
Обработка кода JassHelper и cJass вызывается только при обычном сохранении. Все остальные способы, что сохраняют карту, не вызывают данные компиляторы. Если используются их фичи, то код не является валидным кодом JASS, поэтому карта не запускается.
nastiolink, если до этого запускался редактор рефа, то надо удалить одну запись в реестре, чтобы всё заработало. Про это уже куча вопросов была, да и в моей сборке есть нужный .reg файл для этого.
Других причин не запуска обычно нет.
ofeerist, нестандартные настройки хоткеев меняют хоткеи у спелов и приказов. Если у спела со стандартной раскладкой будет Q и в нестандарте тоже Q, то ничего не меняется.
Bergi, я не придумал хорошую реиграбельность. Попытался добавить её с помощью разных наборов противников. Например, самые сложные - это тролли, а самые простые - мурлоки.
» WarCraft 3 / Группы или таблицы в луа?
» WarCraft 3 / Что предпочтительней и почему Lua или Jass?
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Jass MythBusters
» XGM Конкурсы / Конкурс битв с боссами 2023
» WarCraft 3 / Десинхронизация
» WarCraft 3 / Танки Warcraft 3
Ред. PT153
» WarCraft 3 / Сравнительная таблица Reforged и 1.26
Там есть предмет, который называется +42 к атаке. На самом же деле внутри у него 5 способностей: +15, +15, +12, +9 и +9. Итого 60. Но на 1.26 работают только первые 4, получается всего +51. В то же время на рефе работают все 5, то есть выходит +60. Я добавил +9 ещё 10 раз и сработало как надо -- +150.
» WarCraft 3 / Десинхронизация
» WarCraft 3 / Сравнительная таблица Reforged и 1.26
» WarCraft 3 / Патч 1.36 на ПТР!
» WarCraft 3 / Патч 1.36 на ПТР!
Ред. PT153
» WarCraft 3 / Изменение цвета текста награды деревом
» WarCraft 3 / JNGP: Rebuild от PT153
Ред. PT153
» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4
Других причин не запуска обычно нет.
» WarCraft 3 / Завод ХиГаМа
» XGM Team / XGM Дайджест #2 (Февраль 2023)
Ред. PT153
» WarCraft 3 / JNGP: Rebuild от PT153
» WarCraft 3 / Локализация карты WC3 для любого патча
Ред. PT153
» WarCraft 3 / Time Defenders
Ред. PT153
» WarCraft 3 / Time Defenders
» WarCraft 3 / Time Defenders
» WarCraft 3 / Bloodmasters