Показать сообщение отдельно
Старый 18.12.2011, 13:13   #142
Karabas-Barabas
Местный
 
Регистрация: 08.02.2009
Сообщений: 2,078
Отправить сообщение для Karabas-Barabas с помощью ICQ
По умолчанию

Usage:

SimpleCutter.exe -inp <inp file name> -outp <outp file name>
[-mh <map height in meters>] [-add <file to add>]
[-shift <X offeset> <Y offset>]
[-cut <X1> <Y1> <X2> <Y2>] [-cutbr]
[-cutaf <include distance in meters>]
[-rest <outp rest file name>]

file name must have *.static or *.mis extension

форматы входных и выходных файлов определяются только по расширениям
.static - бинарный формат Ила
.mis (или .txt) - текстовый формат миссий Ила, значения объектов
такие же как у Act.jar, но с некоторым расширением:
- в секции [NStationary] кроме BI_1
может быть ещё C_47 - это Mountain$Suribachi, используется
на карте Iwo
- для задания мостов может быть использовано сколько угодно
звеньев, важно только чтобы у них были правильные типы
самолётов и число точек маршрута у каждого звена было четным
(напр. для каждого моста можно использовать своё звено)
в одной команде могут использоваться файлы разных форматов в
любых сочетаниях (напр. можно добавить в бинарному статику
объекты из миссии, вырезать кусок и сохранить в виде миссии,
а всё остальное сохранить в виде бинарного статика)

обязательно должны быть указаны входной (-inp <inp file name>) и выходной
(-outp <outp file name>) файл, остальные параметры опциональные

все числовые значения (<map height in meters>,<X offeset>,<Y offset>,
<X1>,<Y1>,<X2>,<Y2>,<include distance in meters>) - целые числа,
причем <map height in meters> и <include distance in meters> -
положительные, остальные могут быть отрицательными
все значения в метрах
координаты - как в полном редакторе Ила - т.е. координаты 0,0 имеет
левый нижний угол карты

-mh <map height in meters> - высота карты (размер по вертикали) в метрах
( высота map_t.tga * 200 ), необходимо указывать если на карте
есть мосты и нужно преобразовывать их координаты из actors формата
в метры (может быть проще указывать её всегда :-) )
считается одинаковой для всех входных и выходных файлов

-add <file to add> - файл, который будет добавлен к входному
если в файлах на одном и том же месте будут объект, то в результирующем
будут они оба, никаких "интелектуальных" проверок не делается

-shift <X offeset> <Y offset> - сместить все объекты на столько метров.
учтите, что мосты могут сместиться некорректно, если смещения не
кратны 200 метрам

-cut <X1> <Y1> <X2> <Y2> - вырезать кусок карты, попадающий в квадрат с углами
( <X1> , <Y1> ) - ( <X2> , <Y2> ), относительное расположение углов квадрата
не важно (т.е. напр. можно указать левый нижний и правый вехний углы, или
правый нижний и левый верхний; по сути берутся объекты, координата X которых
лежит между X1 и X2, и координата Y лежит между Y1 и Y2)
аэродромный маршрут считается попавшим в этот квадрат если хотя бы одна его
точка попадает в квадрат

-cutaf <include distance in meters> - вырезать участки, находящиеся в районе
аэродромов, берутся точки взлёта ("красные стрелки") и все точки аэродромных
маршрутов, и выразаются квадраты со стороной длиной
<include distance in meters>*2 и центрами в соотв. точках (ну немного
оптимизированно - если точка попадает в квадрат другой точки, то квадрат
укрупняется чтобы охватить квадраты обеих точек и т.д.)

-cutbr - вырезать все мосты

-rest <outp rest file name> - в этот файл помещаются все объекты из входных
файлов, не попавшие в выходные (т.е. всё остальное)
если из входных файлов ничего не вырезано (не используется ни один из ключей
-cut -cutaf -cutbr) то в выходной файл сохраняется всё что было во
входном файле, соотв. файл rest будет пустым (точнее корректным файлом
не содержащим объектов)

если указаны все ключи, то порядок операций следующий:
- к входному файлу (-inp <inp file name>) добавляется файл, заданный
ключом -add <file to add>,
- объекты смещаются на -shift <X offeset> <Y offset>
- вырезается кусок, заданный -cut <X1> <Y1> <X2> <Y2>
- из него выразаются зоны филдов и мосты
- всё что не попало в выразынный кусок попадает в файл,
заданный ключом -rest <outp rest file name>

т.к. объединение файлов делается без изысков (см. описание ключа -add),
настоятельно рекомендую при вырезании куска для правки обязательно
сохранять остальное (ключ -rest), а затем объединять отредактированное
с этим остальным, и не редактировать объекты в непосредственной близости
к границе вырезанной области

примеры использования:

SimpleCutter.exe -inp my.static -outp my.mis -mh 512000
конвертация из бинарного формата в текстовый

SimpleCutter.exe -inp my.mis -outp my.static -mh 512000
конвертация из текстового формата в бинарный

SimpleCutter.exe -mh 512000 -inp my.static -cutaf 1000
-outp af.static -rest rest.static
вырезаются зоны филдов

SimpleCutter.exe -mh 512000 -inp my.static -cutbr
-outp bridges.mis -rest rest.static
вырезаются мосты и сохраняются в виде текстового файла

PS: у меня не получилось редакторовать мосты разлоченным полным редактором,
так что предлагаю такой способ:
- вырезаем мосты в файл миссии
SimpleCutter.exe -mh 512000 -inp my.static -cutbr
-outp bridges.mis -rest rest.static
- правим маршруты обычным полным редактором
- добиваемся чтобы файл миссии корректно сконвертировался в статик
SimpleCutter.exe -mh 512000 -inp bridges.mis -outp bridges.static
- загружаем этот статик в полный редактор - если раcположение мостов
устраивает то добавляем его к остальному
SimpleCutter.exe -mh 512000 -inp rest.static
-add bridges.static -outp my2.static

PPS: думаю, что для лучшего понимания особенностей работы утилиты, желательно
прочитать описание формата бинарного файла actors.static ( _actors.spec.txt )

PPPS: вообщето SimpleCutter.exe - это очень простая обёртка к библиотеке
манипулирования .static файлами ActorsIO.dll, желающие могут реализовать
существенно более умную и гибкую обработку объектов :-))
Karabas-Barabas вне форума   Ответить с цитированием