В исходниках ХВ1 есть описание формата карт, если кратко, карты миссий живут в папках
Homeworld.big/singleplayer/<название_миссии>. Небольшой ликбез по распаковке биг-файлов можно найти
тут, для правки миссий извлеки папку
singleplayer и положи её в папку с игрой. Корабли прописываются в missphere-файлах (это обычный текстовик) директивой
Ships. Её синтаксис:
Code:
Ships Label,posx,posy,posz,rot,race,shiptype,numShips,formation|flag|color,properties[,numShips2]
Параметры:
- Label – метка группы для скрипта миссии (без пробелов) или ? (знак вопроса);
- posx, posy, posz – x/y/z-координаты;
- rot – угол поворота корабля в горизонтальной плоскости;
- race – раса: R1 (кушане), R2 (таидане), P1 (Туранские рейдеры), P2 (Стражи Садов), P3 (что успели сделать от Т-Мат), Traders (Бентузи, Голландцы и прочие – всё что в папке traders);
- shiptype – собственно, тип кораблей. Названия можно посмотреть по названиям файлов в папках r1, r2, p1, p2, traders главного бига. Например, LightInterceptor это разведчик, а StandardFrigate –штурмовой фрегат;
- numShips – кол-во кораблей (кажись, только для мультиплеера, для сингла важен другой параметр, о нём далее).
- formation - строй:
- NULL_FORMATION – не задан;
- PARADE_FORMATION – парадный;
- DELTA_FORMATION – дельта;
- BROAD_FORMATION – шеренга;
- DELTA3D_FORMATION – икс;
- CLAW_FORMATION – коготь;
- WALL_FORMATION – стена;
- SPHERE_FORMATION – сфера;
- PICKET_FORMATION – пока не в курсе.
- color – номер цветовой схемы, задаётся директивой вида colorScheme(n), где n – число от 0 до 7;
- flag – это UseAsMothership, если нужно использовать корабль в качестве флагмана, или ?
- properties – тоже пока не в курсе;
- numShips2 – то самое кол-во кораблей в сингле.
Ещё не забудь проверить mission-файл на предмет директив
ExcludeShips. Скажем, если ты попытаешься добавить в третью миссию Шпиль Стражей, то игра из-за 22-ой строчки
Code:
ExcludeShips P2,All
успешно выпадет в форточку.
И самое главное – запасись терпением и будь готов к тому, что по первой игра, вместо того, чтобы радовать результатами, будет стабильно вылетать. Запускать её лучше с параметром
/debugToFile, тогда будет создан файл
debugMessages.txt, в котором, возможно, будет указана причина вылета.