Hi Developers...
Это консольное приложение демонстрирует облегченное решение мелких 'фэйлов' при создании карты.
Пример использования:
Code
@mapfixer.exe /mapname test /t /d /logfile log.txt
pause
Где:
/mapname - подгружает карту test(без расширения).
/logfile - Полное имя лога(включая расширение).
/t - Проверка на повтор значения "targetname"(В лог)
/d - Удаление всех плохих объектов, включает:
Все типы брашей с текстурой aa_default.
Поврежденные mesh и curve.
Поврежденные Entity (not key classname).
Некоторые(пока не все) объекты из сп(actor и т.д.)
Объекты misc_model и misc_prefab(not key model)(красный куб).
Примечания:
1)С большими картами (от 5 мб) может грузить процессор до XX%, утечек быть не должно.
2)Если приложение выбило вам строку "What?! ..... index = X, то по возможности скиньте сюда карту.
Что планирую добавить:
1)Проверка значений worldspawn'a.
2)Проверка наличия и расположения текстуры LGV и entity RP.
3)Проверка наличия необходимых "спавнеров".
Больше вроде как ничего и не нужно :з
Если появится свободное время, то пильну заполнение свободного места на определенных текстурах травой, кустами, деревьями и просто мусором.
Но только на 2D.
Скачать: RGHost.
P.S Не помешало бы закрепить тему.
Добавлено (25.03.2012, 19:37)
Небольшое обновление до версии 0.02 beta.
Исправления:
Code
+Ускорено получение списка всех брашей и элементов (за 5 секунд обрабатывает карту в 5мб содержащую до 10к).
+Исправлено получение имени текстуры с каждой стороны дефолтной браши.
+Переписан код подгрузки карты, возможна загрузка ЦП до 10%.
-Время сохранения карты увеличено, в этом была необходимость :3
Скачать: RGHost.
Напомню еще раз - все вопросы, предложения, подарки и просьбы в ЛС.
Сюда не постить, сообщения будут стерты.
P.S И следите за логом в режиме реального времени :3
Это избавит от лишних проблем.
Добавлено (28.03.2012, 15:37)
Обновление до версии 0.03 beta
Code
+Добавлены фильтры для брашей и объектов.
/filter brush(субстринг_браши,субстринг_браши2,субстринг_брашиN)
Пример: /filter brush(_dec,dec_) - удалит все декали на карте.
/filter entity(субтринг_имения_класснэйма\полное_имя_кея\субтринг_значения, и так далее)
Пример: /filter entity(misc_model\model\foliage_drygrass,misc_model\model\foliage_shrub)
Также для второго и третьего пункта(кея и значения) можно добавить в любое место(в конец или начало) - это %%% или только для кея это &&&
%%% - Неважно есть ли такое значение, или его нет. Фильтр будет идти только по класснэйму или класснэйму/кею.
&&& - Добавляем если кея вдруг не может оказаться (к примеру если сделать вот так: model&&& - то при отсутствии в элементе кея model, он попадет под фильтр).
Чуть больше примеров:
/filter entity(actor_\%%%\%%%,misc_model\model&&&\%%%,misc_prefab\model&&&\%%%)
1.Удалит все объекты в класснэйме которого присутствует субстринг actor_.
2.Удалит все объекты с класснэймом misc_model у которых отсутствует кей model.
3.Как и второе, только с класснэймом misc_prefab.
ВАЖНО:
1.В скобках не должно быть пробелов, а также все три значения должны обязательно присутствовать.
2.Дефолтные значения входящие в фильтр(входят при любых обстоятельствах, не повторяйте):
Local $filter_brushes = _ArrayCreate(1,"aa_default")
Local $filter_entities = _ArrayCreate(3,"actor_\%%%\%%%","misc_model\model&&&\%%%","misc_prefab\model&&&\%%%")
+Переписал код получения плохих объектов, их сортировки и сохранения карты.
Теперь карта сохраняется за пару секунд :3
+Достаточно большие багфиксы в особенности с синтаксисом layer объектов.
+Небольшие изменения в лог файле.
Скачать: RGHost.
Добавлено (22.04.2012, 17:30)
Обнаружил достаточно значимую ошибку с неверным получением размера массива со списком объектов карты. Ответ в любом случае выходил равным 1.
Сам не знаю почему, но вроде все работает. Не стал трогать.
Если возникнут проблемы, то подредактируйте карту - добавьте там парочку объектов.