KD87
Жители-
Число публикаций
1 850 -
Регистрация
-
Последнее посещение
-
Дней в топе
16 -
AMKoin
333 [Подарить AMKoin]
Весь контент пользователя KD87
-
Новая версия: http://narod.ru/disk/25690244001/Universal%20ACDC.7z.html. Что нового: [+] добавлена функция разбивки all.spawn на level.spawn и level.game (аналог split_spawns в аивраппере) исправлена распаковка/запаковка level.spawn, поломанная в какой-то из версий.
-
FANAT, спавн Народной Солянки веселый - помимо всего прочего в нем продублированы некоторые пути (way-объекты), а acdс при запаковке такие не пропускает. Так что перед запаковкой проверь все way_... файлы на дублирующиеся секции.
-
7.9, слеши обратные, да. FANAT, батник тебе надо такой (судя по скрину): universal_acdc.pl -d all.spawn -o spavn_NS -scan config\. Но главное ActivePerl установи, без него работать ничего не будет. Ссылка в шапке темы. Обновленная версия с учетом замечаний Artos: http://narod.ru/disk/25633099001/Universal%20ACDC.7z.html. Отличия от предыдущей версии: -и конфиг, и лог теперь называются 'spawn_ids'. Если конфигу не поставить расширение в батнике, оно добавится само. -в конфиге всем секциям добавлен префикс - id уровня, на котором находится объект. Принадлежность определяется по вертексу. -ключ idx можно использовать без указания пути - конфиг появится в папке с acdc. -добавлены разделители между секциями в распакованном спавне. Появилась особенность. При распаковке спавна появляется файл guids.ltx, содержащий перечень локаций с их начальными вертексами. Удалять файл нельзя, иначе потом не запакуете c ключом -idx. Если без ключа - файл не нужен. Если интересно, пару слов из серии "Знаете ли вы...": -если в распакованном спавне проставить секциям произвольные метки (например, [6546]:flag1), а потом запустить запаковку с ключом -f flag1, то секция в спавн не пойдет. Полезно для всяких тестирований - не надо руками удалять/копировать секции. Эта фичу ввел еще бардак в первых версиях acdc.
-
Artos, [l01_escape_meshes\brkbl#0.ogf] - вот так устроит? у каждой секции будет префикс в виде имени локации согласно game.graph. Имена логов переделаю.
-
power-cat, а ты откуда исходники локации получил? конвертировал сам или взял из билда?
-
abramcumner, это я знаю Но пока не до того.
-
smeh, ты пытаешься распаковать амкашный спавн acdc для чистого ТЧ. Ничего не выйдет, естественно. Или бери универсальный acdc, или ищи acdc для амк.
-
Artos, расширение сделаю. По сохранениям - на данный момент никак. В планах есть, но там специфические проблемы - сохранения пожаты. Решить можно, но это будет не в ближайшем будущем.
-
Artos, ну да, так оно и работает. Надо самому добавлять расширение. Может, кто не ltx захочет, а что другое. smeh, в батник, в конец добавь pause и потом скажи, какая там ошибка.
-
Artos, эм, в смысле? С ключом надо вводить путь и имя файла вместе с расширением, например, ../idx.ltx. Ты про то, что в ридми про расширение не написано?
-
Новая версия: http://narod.ru/disk/25517088001/Universal%20ACDC.7z.html. Что умеет нового: 1) появился ключ -idx <путь до ltx конфига>, который формирует ltx конфиг с подобными секциями: [lights_camp_fire_omni_r1_r2_0010] id = 4197 story_id = -1 В конфиг добавляются секции для всех объектов, он предназначен для получения id и story_id объекта по его имени из игры. Делается примерно так: function id_by_name(name) local idx_file = ini_file("path_to_idx.ltx") if idx_file:line_exist(name, 'id') then return idx_file:r_s32(name, 'id') end return nil end 2) в распакованном спавне для любой секции можно задать метку 'index' ([1276]:index). При запаковке в кастом_дату такой секции добавится следующее: [fix_index] name = id; вместо name будет имя объекта, вместо id - его текущей индекс в спавне. С этим также можно работать из игры. При распаковке такого спавна, метка восстановится, из кастом даты запись удалится. Если пользоваться метками и не использовать ключ -idx при этом, генерится лог-файл, в который записывается тоже самое, что и в кастом_дату 'помеченных' секций. Сделано просто для удобства. С ключом -idx такой лог не генерируется. 3) Теперь скрипт, наткнувшись на синтаксическую ошибку, вылетает с более понятными логами в следующих случаях: -дулирование секций -отсутствие параметров в секциях, для которых нет дефолтного значения.
-
Artos, два вопроса. Первый - как лучше записать метку в кастом дату, чтобы потом не обвалить какой-нибудь игровой скрипт, который ее парсит? Второй - список таких "помеченных" секций еще нужен? В каком виде его сделать - текстовый indices.log какой-нибудь? Добавлено через 2 мин.: 7.9, можно, только желательно все поподробней расписать, можно даже по шагам - что должен делать скрипт.
-
Artos, могу совместить оба подхода. Метка будет записываться в кастом дату и при распаковке восстанавливаться, а при запаковке будет генерироваться ltx конфиг с такими секциями: [box_wood_01_0021] id = 2907 story_id = -1 для тех, кто захочет получать id по имени объекта скриптом прямо из игры.
-
7.9, идея хорошая, в принципе. Конфиг такой я могу сформировать, читать его с помощью класса ini_file вроде как тоже элементарно. К тому же не надо будет возиться с метками, да еще сохранять их в спавне. Artos, с парсером будем гемор, да. К тому же как минимум ему надо будет скармливать имена функций, из аргументов которых надо выдирать id.
-
7.9, то есть формировать сопоставление id-имя в виде конфигов, чтобы потом, сделав скриптовую функцию, получающую id по имени, использовать в скриптах имена для наглядности? я правильно понял?
-
Artos, нет, так нельзя - хранить метки в спавне. Это ж как нет-пакет - читать/писать можно строго по шаблону. Метки в alife.ltx-конфигах будут храниться, моддер ведь с ними работает. Как вариант - можно сделать парсер скриптов и конфигов, чтобы оттуда выдирать используемые индексы и формировать список из них.
-
7.9, ты все-таки не совсем понимаешь проблему Для движка никакой проблемы нет - проблема у скриптеров (причем только у тех, кто часто спавнит предметы по id), даже не столько проблема, сколько неудобство. Сошлись на том, что в помощь скриптеру будет выводится инфо-файл с этими индексами, исключительно в целях удобства. Artos, относительные пути и раньше поддерживались, просто не очевидно и никем нигде не указывалось. FEEL TEH POWER OF IO::FILE!
-
Artos, это я все понимаю. А зачем такая морока: 'fix_index=my_name_1'? Я вполне могу вывести в лог name или section_name из этой секции. В логе будет что-то типа того: [stalker_wolf] old_index = 456 new_index = 472. Или только новый индекс, или в любом другом форматировании, можно добавить story_id, мне это без разницы, на ваше усмотрение. 7.9, тут не зарезервируешь, для движка все секции должны быть заполнены. Не заставишь же мододелов делать строго по 2000 объектов на локации. Так графическая оболочка для ACDC интересна или нет?
-
7.9, сейчас так - поправил конфиг-спавны, запустил компиляцию и вуаля - сгенерирован новый спавн файл. Можно, конечно, сделать, чтобы acdc все время в памяти висел - но это уже все-таки лишнее. Artos, что касается индексов. Нет, в общем случае "залоченных" индексов сделать нельзя. Просто потому, что движок при чтении спавна читает секции строго подряд, наращивая индекс на единицу. Поэтому в спавне не должно быть пробелов в индексах, в противном случае полспавна просто не заспавнится. Во избежание этого acdc при импорте секций на всякий случай переназначает все индексы - мало ли какие там провалы в индексах после правок модмейкером. Но подумать на эту тему можно, я понимаю суть проблемы скриптера. Пока могу сделать предложенный тобой второй вариант - вывод индексов секций (в лог-файл, например), помеченных метками. Скажем, для секции, записанной вот так - [4562]:log - будет выведен старый и новый индекс после запаковки в лог-файл. Так устроит? Что касается ошибок - сделать можно. Сейчас есть развитая система дебаг-сообщений, постараюсь сделать их более информативными при обнаружении синтаксических ошибок. Фантазию не ограничиваю никак. Утилита ведь нужна прежде всего вам, мододелам, вот и пишите, чего не хватает. Конечно, не стоит ждать от perl-скрипта второй LE, а так реализовать можно почти любую разумную вещь. Вот периодически возникает мысль сделать графическую оболочку - сбоку список секций по индексам и именам, при выборе появляется список параметров (может быть, с пояснением) с возможностью правки. Такое интересно?
-
karavan, На все вопросы ты ответил сам. Да, активация (enable_anomaly) и деактивация (disable_anomaly), да, вписывать story_id, да, задавать в all.spawn
-
Artos, сделано: http://narod.ru/disk/25432988001/Universal%20ACDC.7z.html. Поддерживаются переходы на верхние уровни каталога (../), то есть можно обойтись без абсолютного пути. В архиве есть примерный батник. Прошу высказываться также не только по улучшению удобства работы с acdc, но и пожелания к его функциям. Например, сортировка секций в распакованном спавне, их вид, или может, нужны какие-то манипуляции непосредственно с данными в секциях.
-
zoidberg123456789, обнови свой распаковщик. Текущая версия нормально распаковывает/запаковывает. Ссылка, если лень лезть в репозиторий: http://narod.ru/disk/25418421001/level_cdc.7z.html
-
Real Wolf, в прошлой версии никак. В текущей версии доступно: http://narod.ru/disk/25416706001/Universal%20ACDC.rar.html. Компилировать с ключом -с, только вместо all.ltx указывать путь до папки с распакованным спавном. Если спавн в текущей папке - просто указать ключ -с.
-
Artos, я спрашиваю не насмешки ради, а развития для Я ведь как раз и разрабатываю этот самый универсальный acdc. Естественно, проверить все моды на распаковку я не могу, поэтому и прошу указать мне моды, спавн которых не распаковывается. Причины вылетов утилиты чаще всего в ошибках модостроителей, и это приходится учитывать. На данный момент проверена распаковка/запаковка спавнов модов AMK, NLC6, Народная Солянка. Также распаковываются спавны всех финалок и билдов (хотя, как показала практика, это всем побоку даже среди билдоманов гейм.ру), также есть ряд дополнительных фич (например, конвертация спавна). К сожалению, отзывов (и предложений) о работе утилитки от мододелов практически не поступает, что затрудняет дальнейшее развитие. Кстати, последняя версия - от 30 августа. Там кой-чего подправлено, в том числе парсер.
-
dragunof, распаковывает. Для спавнов от модов acdc необходимо запускать с ключом -scan [путь до папки с конфигами], предварительно удалив sections.ini от предыдущих запусков. В ридми это не разжевано, моя оплошность. Пример батника (положите папку config от мода в папку с acdc): universal_acdc.pl -d all.spawn -scan config\ pause
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ