RedHeavenHeroПредлагаю так: обрабатывать map.xdb, неназванным гарнизонам и заповедникам давать имя, вносить его в отдельный файл lua, который будет для каждой карты, но называться будет одинаково. В этом файле будет массив с именами, в т.ч. и теми, что дал автор. Если надо, то могу и дефолтные карты обработать, не вручную, конечно.
Добавлено через 5 минут
Таким образом, в файле Maps/Multiplayer/***/NHF-Names.lua будет примерно следующее:
NHF_UNNAMED_OBJECTS = {
DWARVEN_WARREN = {
'NHF-DwarvenWarren-0001',
'NHF-DwarvenWarren-0002',
},
GARRISON = {
'gar1',
'gar2',
'NHF-Garrison-0001',
'NHF-Garrison-0002',
'NHF-Garrison-0003',
'NHF-Garrison-0004',
},
}
Порядковые номера можно заменить на случайные.
Добавлено через 7 минут
Для экономии памяти можно безымянные объекты в массив не вносить, а только писать количество этих объектов.
NHF_UNNAMED_OBJECTS = {
DWARVEN_WARREN = {
NAMED = {
},
UNNAMED_N = 2,
},
GARRISON = {
NAMED = {
'gar1',
'gar2',
},
UNNAMED_N = 4,
},
}
Так объектов типа "гарнизон" вряд ли много будет. Следует ли экономить память?
Если есть желание, то стандартные тоже можешь обработать.
Добавлено через 9 минут
Вообще, для унификации потребуется одна большая функция взаимодействия с нужными объектами. Но тут дело в том, что скрипты по разному работают с объектами. Триггер прикосновения к городу, например, надо завершать при посещении и потом обновлять вновь. Триггер прикосновения для шахты этого не требует. В последней версии я уже объединил скрипт боя с городом, героем и монстрами. Он теперь универсален. Можно попробовать вынести функции на подобие классов, чтобы уменьшить нагрузку и количество скриптовых строк.
Раньше то проект собирался по кирпичикам, и разные скрипты на одну и ту же ситуацию были нормой. Сейчас же очень много похожего. Нужна унификация.
RedHeavenHero, что думаешь о том, чтобы объединить проект с частью NCF и даже созданием новых карт с мультиплеерными сценариями для этих героев?
Добавлено через 17 минут
По-хорошему, конечно, лучше, чтобы все имена хранились только с картой.
И подгружать только этот файл. Тогда и имен будет немного.
Создается массив в общем файле NHF, а в lua каждой карты будет лишь добавление в этот массив.