Digs - Персональная территория

Авторский проект Артема Глазкова
? 
        Версия для печати (цвет)  


Скачать/Download
» mapspl v1.52 (124 kb)
» mapspl.wad (44 kb)

Старые версии/old versions
» mapspl v1.51 (124 kb)

Mapspl

  Документация

mapspl.exe [command] [-option1] [-option2 ...] srcfile [addfile1] [addfile2 ...] [-dest:destfile]

Команды:
  mkid      создать индексы для сущностей
  rmid      удалить индексы для сущностей
  rmdpid    удалить повторяющиеся индексы
  extract   извлечь из основного файла все то, что отсутствует в добавочных файлах
  concat    объединить srcfile, addfile1 и т.д. (команда по умолчанию)
  help      вывести данную помощь
  
Опции:
  -ru                            переключить сообщения на русский язык
  -y                             отвечать Да на все запросы
  -dt/dst/ddt/dat:texture_name   удалить все браши с текстурой "texture_name"
                                 для всех/исходного/выходного/дополнительных файлов
  -de/dse/dae:(entity_class|ID)  удалить все сущности с именем класса "entity_class" либо
                                 идентификатором для всех/исходного/дополнительных файлов
  -rptx                          заменять текстуры
  -dest:<filename>               задает имя файла назначения
  -wprops:<filename>             задает файл, откуда будут браться свойства для worldspawn
  -sc:<filename>                 подключить файл с опциями
  -ba/ea:                        задать область отсечения для брашей/сущностей
    (r|c)/(entity_name|ID|cx/cy[/cz])/rad
                                 прямоугольная/круглая из центра
    b/x1/y1[/z1]/x2/y2[/z2]      по крайним точкам
    m/map_file                   по брашам из worldspawn
  -notar                         запретить изменение target-свойств
  -utarget:target_name           запретить изменение target-свойств с именем target_name

    По основным моментам командной строки:

mapspl.exe [command] [-option1] [-option2 ...] srcfile [addfile1] [addfile2 ...] [-dest:destfile]
    srcfile – исходный (основной) файл. addfile1... – дополнительные или добавочные файлы (возможно использование символов * и ? в именах). destfile – файл назначения. Если он не указан, то результат операции будет помещен в исходный файл.

    mkid/rmid
    Создать/удалить индекс. Индексирование добавляет каждой сущности параметр «id» с уникальным значением. Исключение составляет «worldspawn», который единственный на карту и поэтому сам себе ключ. При операциях извлечения/объединения при наличии индекса происходит поиск по нему. Помимо точного соотношения сущностей это еще добавляет скорости обработки.
    Индекс это строковое значение, обязательно содержащее символ «#» и не содержащее символы «*» (звездочка) и «?» (вопросительный знак).
    Отсутствие индекса заставляет искать среди всех не индексированных, а это полный перебор всего того, что лежит за пределами «worldspawn».

    rmdpid
    Удаление дублирующих индексов. Дублирование индексов может происходить при копировании сущностей.

    extract
    Технология разбивки на части следующая. Индексируем карту и делаем ее копию. Далее открываем копию в редакторе и вырезаем из нее кусок карты, с которым хотим работать отдельно. Либо наоборот: вырезаем все, кроме куска. Сути это не меняет. Затем запускаем утилиту с параметром extract указав в качестве добавочного то, что осталось от копии. Результатом операции будет карта, включающая в себя все то, что не содержится в добавочном файле. Т.е. добавочный плюс результирующий должны дать полную карту.
    При извлечении происходит поиск для сущности, и если она найдена, то помечается особым образом и уже не сохраняется в результат. Критерием поиска при отсутствии индекса является совпадение свойств «worldspawn» и «spawnflags». Если сущность не брашевая, то также учитывается свойство «origin». В случае с брашами происходит их перебор на совпадение координат и имени текстуры. Сущность, у которой все браши помечены, также не попадает в результат.
    В большинстве случаев индексирование не является чем-то обязательным. К нему можно прибегать только в определенных случаях. Сами индексы (прописанные руками) могут использоваться, например, для удаления вспомогательных сущностей, которые при конечной сборке не нужны.

    concat
    Объединение карт. Для каждого добавочного файла делается перебор сущностей. Если сущности нет, то она добавляется. Проверка на совпадение происходит, как и при команде «extract». Далее происходит проверка наличия брашей. Браш сверяется по координатам и имени текстуры (если не указан параметр -rptx). Если не нашелся, то добавляется. Исключением являются сущности с неуникальным идентификатором (см. ниже опцию -nuid).
    При сливании файлов не проверяются свойства. То есть, если в исходном файле присутствует сущность такая же, как в добавочном, то за основу берется сущность из исходного файла, а из добавочного информация теряется. То же самое с двумя добавочными файлами: приоритетнее тот, что указан раньше.
    Команда concat является командой по умолчанию. Т.е. если файл карты и все дополнительные карты имеют расширение, то данную команду можно опустить.

    Команда extract и concat можно выполнять и без указания дополнительных файлов. Например, для того, чтобы убрать ненужные браши и сущности.

    -dt/dst/ddt/dat:texture_name
    Удаление из всех/исходного/выходного/дополнительных файлов брашей, у которых текстура хотя бы одной из сторон равняется texture_name. Когда выделяем комнату или регион из всей карты в отдельный файл, появляются естественные дыры. В частности, дверные проемы. Чтобы их не было, можно заделать такие дыры брашами со специальной текстурой. В момент слияния файлов нужно указать данную опцию, и такие браши будут удалены.
    В параметре можно использовать символы маски «*» и «?».

    -de/dse/dae:entity_class
    Удаление из всех/исходного/дополнительных файлов сущностей с параметром «classname» равным entity_class. Если в параметре присутствует символ «#», то удаляются сущности с заданным идентификатором, а не именем класса. Использоваться это может для отладки. К примеру, в текущей части карты есть дверь, которая открывается ключом, а ключ располагается в другой части. Чтобы не приходилось вводить что-то типа «impulse 9» в консоли каждый раз, можно добавить в текущую часть аналогичный ключ, а при слиянии указать опцию -de/dse/dae, указав нужный класс.
    Но самый распространенный случай, скорее всего, это сущность «info_player_start». Чтобы карта могла стартовать, на ней должна присутствовать данная сущность, причем в единственном экземпляре. Данная опция позволит при слиянии удалить все точки старта, кроме одной.
    В параметре можно использовать символы маски «*» и «?». Например, следующая команда удалит всех монстров с карты:
  mapspl mymap.map –y –de:monster_*

    -nuid
    Опция –nuid позволяет задать не уникальный идентификатор. При включении в результат (concat) добавочных файлов при наличии у сущности идентификатора происходит поиск уже имеющейся сущности с таким же ID, и, если находится, то новая сущность в результат не будет включена. Сущности с идентификаторами, заданными с помощью -nuid не подвергаются проверке и всегда включаются в результат.
    Опция создавалась в основном для промежуточных элементов, которые будут удалены при финальной сборке. Наличие -nuid позволяет всем таким сущностям задать единый ID. Имеется также предопределенный неуникальный идентификатор #temp.

    -rptx
    Данная опция используется при слиянии карт. Перед тем как добавить браш, команда concat проверяет наличие этого браша в исходном файле. Если браш найден, то при данной опции в нем будут заменены все текстуры (вместе со сдвигом, положением и растяжением). Данная опция была введена специально для разработки карт несколькими людьми.
    Во-первых, это можно использовать для наложения текстур. То есть, один человек делает карту, занимаясь архитектурой и не обращая особого внимания на текстуры. Потом отдает карту второму и второй занимается подгонкой текстур, в то время, как первый продолжает строить карту. После того, как второй завершил свою работу, файл вливается в исходный с указанием опции -rptx.
    Второй способ использования опции - смена архитектуры. Ситуация аналогична предыдущей, но теперь нужно подправить браш. Для этого делаем копию браша и покрываем специальной текстурой, которая впоследствии будет удалена из файла с помощью -ddt. Если позволяет редактор, то скрываем браш (в *Radiant кнопка H). Далее берем исходный браш и делаем нужные преобразования. После переноса в исходном браше будет заменена текстура, вследствие чего он будет удален, и на его место встанет новый.
    Здесь следует быть внимательным, при указании опции удаления браша. Если задать -dt,-dst или -dat, то браш будет удален еще до того, как попадет в выходной файл и подмены текстуры не произойдет. Следовательно, единственной разумной опцией в данном случае будет -ddt.

    -wprops:<filename>
    Позволяет все свойства класса "worldspawn" брать из другого файла. Может быть полезной, когда свойства еще не до конца установлены, их много, а также много частей, на которые разбита карта. Достаточно внести изменения свойств в один файл и затем при сборке любой части воспользоваться этой опцией.

    -sc:<filename>
    Позволяет подключать файл с правилами преобразования. В принципе, в файле может быть указано все то, что можно написать в командной строке. При этом каждая опция, имя файла и прочее пишутся каждый в своей строке. Перед строкой можно поставить «//», что будет означать закомментированную строку.

    -ba/ea:(r,c,b,m)
    Данные опции позволяют отбросить из выходного файла браши/сущности. Областей можно задавать несколько. На принадлежность области проверяется только одна точка. У простой (не брашевой) сущности это свойство «origin». Для браша или группы брашей вычисляется описывающий параллелепипед, со сторонами параллельными координатным плоскостям, и берется центральная точка.
    «r» и «c» задают область центром и радиусом. Для «r» это расстояние в разные стороны от центра до стенок. В данном случае удобно использовать с указанием сущности или класса. (Сущность указывается идентификатором, который отличается от имени класса наличием символа «#»). Например, я привык перемещать «info_player_start» туда, где в данный момент происходят построения. Т.е. записал опцию с указанием данной сущности и потом можно не переписывать: сущность подвинул, область тоже подвинулась куда нужно.
    Если все же центр задали координатой, то z можно опустить. Тогда фигура будет бесконечным цилиндром.
    «m» позволяет подключить map-файл, в котором в качестве областей берутся браши из worldspawn. Такие области можно нарисовать прямо в карте, а потом сохранить отдельно (через функцию «сохранить выделенные»).
    «b» хороша, если не хотим использовать дополнительные файлы, и прямоугольная область нас устраивает. Здесь можно также опустить z.
    Вообще, опция разрабатывалась как предпроцесс перед компиляцией. Т.е. можно редактировать всю карту, а за счет указания данных областей компилировать только нужную часть.

    -notar, -utarget
    Начиная с версии 1.52 mapspl добавляет к target-свойствам префиксы (разные для разных файлов). Это позволяет не заботиться самому об уникальности target-свойств. Для главного файла используется префикс main_, для первого добавочного add0_, для второго - add1_ и т.д.
    Опция -notar позволяет отключить данный механизм.
    Опция -utarget:target_name запрещает добавлять префикс к target-свойствам содержащим значение target_name
    
    Свойство, в значение которого нужно добавить префикс, определяется по наличию подстроки target. Поэтому, если утилита будет использоваться для мода, вводящего новые свойства target (например, killtarget2), то это также будет работать.

© 2005-16, Powered By Digs (Написать письмо, vk)