Обновление от 26.09.2024
Готова первая версия программы которая перегоняет миссии SSF и SS1 в редактор карт.
Это альфа версия программы, код совершенствуется, возможны баги.
Программа конвертирует все типы карт для игр серии SS1 и SSF
Известная проблемы:
- ландшафт перегоняет, но редактировать пока не получается, любая попытка изменить приводит к рандомным багам тайлов в редакторе карт. Идеально пока конвертировать карту и править все что угодно но только не ландшафт.
- возможен краш карт созданных ранее в редакторе карт QED из за бага со звуками (редактор карт не хочет при компилировании добавлять звуки на карте), причина кроется в самом редакторе карт, проблему постараюсь решить.
- вроде как в миссиях компании идет смещение всплывающий текст - скрипт из за этого всплывающий текст может появится не там где изначально задуман.
Проделанная работа:
- Решено и расшифровано все.
Планы:
- дальнейшее улучшение алгоритмов.
- выход на релизную версию.
- перенос в оконный режим.
Как работает:
- Запускаем программу и смотрим что пишет + читаем нижеуказанную инструкцию.
- Подопытную карту идеально класть рядом с программой, карта должна иметь название на английском языке без пробелов.
- Для конвертирования надо применить английскую команду C, так же есть команда P но она не относится к конвертированию это разбор карты на составляющие бинарные файлы
- Затем указать название карты с ее расширением.
- На выходе получаем папку map.000 - там лежит все готовое для редактора карт. Эту папку необходимо перетащить в maps.ca пр необходимости переименовать с map.000 в интервале от 001 до 255.
- Запускаем редактор карт в нем должна появится новая карта с названием "good convert map"
- В целом все.
Map converter for SS1 & SSF, конвертер карт для SS1 & SSF
Модераторы: zarathustra, kit
- NASHRIPPER
- Сержант
- Сообщения: 112
- Зарегистрирован: 21 фев 2012, 19:15
- Контактная информация:
Map converter for SS1 & SSF, конвертер карт для SS1 & SSF
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось NASHRIPPER 26 сен 2024, 12:46, всего редактировалось 2 раза.
- NASHRIPPER
- Сержант
- Сообщения: 112
- Зарегистрирован: 21 фев 2012, 19:15
- Контактная информация:
Re: Map inject для Противостояния 3 или обратный реверс карт
Резерв
Теперь обсудим полученные файлы программой Map_parser_for_SSF.exe более подробно
Что на данный момент я расшифровал и уже успешно могу либо планирую перегонять в редактор карт:
+ map_info - Брифинг миссии- не портировано
+ mis_desc - Брифинг миссии - не портировано
+ map_mini - миникарта - принцип отображения ясен в редактор карт не портирован
+ map_rhombs - ланшафт - принцип отображения ясен в редактор карт не портирован
map_flags
map_landnames
+ map_objects - вся статика которая отображается на карте - софт для импорта в редактор карт готов
+ mis_unitnames - имена юнитов - софт для импорта в редактор карт готов
mis_groups
+ mis_mapunits - расстановка юнитов на карте - софт для импорта в редактор карт готов
mis_players - игроки
mis_woofers - звуки
mis_zones - зоны
+ mis_scripts - скрипты - софт для импорта в редактор карт готов (работает 50/50 требует напильника)
map_mines - мины
+ mis_support - файл отвечающий за подкрепления и флаги откуда подкрепление лезет - софт для импорта в редактор карт готов
mis_phrases
mis_objects
Теперь обсудим полученные файлы программой Map_parser_for_SSF.exe более подробно
Что на данный момент я расшифровал и уже успешно могу либо планирую перегонять в редактор карт:
+ map_info - Брифинг миссии- не портировано
+ mis_desc - Брифинг миссии - не портировано
+ map_mini - миникарта - принцип отображения ясен в редактор карт не портирован
+ map_rhombs - ланшафт - принцип отображения ясен в редактор карт не портирован
map_flags
map_landnames
+ map_objects - вся статика которая отображается на карте - софт для импорта в редактор карт готов
+ mis_unitnames - имена юнитов - софт для импорта в редактор карт готов
mis_groups
+ mis_mapunits - расстановка юнитов на карте - софт для импорта в редактор карт готов
mis_players - игроки
mis_woofers - звуки
mis_zones - зоны
+ mis_scripts - скрипты - софт для импорта в редактор карт готов (работает 50/50 требует напильника)
map_mines - мины
+ mis_support - файл отвечающий за подкрепления и флаги откуда подкрепление лезет - софт для импорта в редактор карт готов
mis_phrases
mis_objects
Последний раз редактировалось NASHRIPPER 06 авг 2024, 22:08, всего редактировалось 4 раза.
- NASHRIPPER
- Сержант
- Сообщения: 112
- Зарегистрирован: 21 фев 2012, 19:15
- Контактная информация:
Re: Map inject для Противостояния 3 или обратный реверс карт
mis_objects он же просто objects
Берем файл Objects, файл с объектами.
Ну в первую очередь это бинарный файл.
Информация об одном объекте занимает 8 байт:
E807 5800 04 29 00 00
Uw=2984 Vw=152 ObG=4 Ob=33 HP=0 Typ=0
2 байта Uw координата, 2 байта Vw координата, 1 байт ObG что это (Дом, забор, дерево), 1 байт Ob непосредственно что за объект, 1 байт HP хитпоинты, 1 байт хз.
Информация об байте ObG:
1 - объекты stand
2 - объекты камни пни и т.д
3 - стоящие объекты
4 - деревья
5 - дороги
6 - Дома
7 - заборы
8 - ?
9 - воронки и т.д
10 - мосты
Но точно не помню П3 или П4 это сей файл я отследил лет 7 назад.
Берем файл Objects, файл с объектами.
Ну в первую очередь это бинарный файл.
Информация об одном объекте занимает 8 байт:
E807 5800 04 29 00 00
Uw=2984 Vw=152 ObG=4 Ob=33 HP=0 Typ=0
2 байта Uw координата, 2 байта Vw координата, 1 байт ObG что это (Дом, забор, дерево), 1 байт Ob непосредственно что за объект, 1 байт HP хитпоинты, 1 байт хз.
Информация об байте ObG:
1 - объекты stand
2 - объекты камни пни и т.д
3 - стоящие объекты
4 - деревья
5 - дороги
6 - Дома
7 - заборы
8 - ?
9 - воронки и т.д
10 - мосты
Но точно не помню П3 или П4 это сей файл я отследил лет 7 назад.
Последний раз редактировалось NASHRIPPER 06 авг 2024, 00:00, всего редактировалось 2 раза.
- NASHRIPPER
- Сержант
- Сообщения: 112
- Зарегистрирован: 21 фев 2012, 19:15
- Контактная информация:
Re: Map inject для Противостояния 3 или обратный реверс карт
mis_unitnames
mis_mapunits
2 этих файла взаимосвязаны между собой
mis_unitnames хранит последовательную информацию имен юнитов
mis_mapunits хранит информацию расстановки юнитов на карте
Оба эти фала сильно зависят друг от друга именно их взаимосвязь позволяет получить файл mapunits который кушает редактор карт.
Софт для объединения этой дружбы уже написан и готов он успешно импортирует все юниты в редактор карт, но в планах сделать что-то крупное по этому свет увидит позже
Краткая информация что зашифровано в mis_mapunits
Информация о расстановке юнитов в компилированной карте занимает 13 байт или же 11 значений:
1. uint8_t Зона (GRP=)
2. uint8_t Здоровье (HP=)
3. uint8_t Патроны (Ammo=)
4. uint8_t Опыт(Expa=)
5. uint8_t Жизни (Lives=)
6. uint8_t Тип техники (ID=)
7. uint8_t Пассажиры (In=)
8. uint16_t Координата U (U=)
9. uint16_t Координата V (V=)
10. uint8_t (Dir=)
11. uint8_t Принадлежность 0/1/2/3/(Owner=) 0 - игрок 1 - враг 2 - союзник 3 - нейтральный
Если есть пассажиры в технике то сразу после юнита посадки идет информация о юнитах всего 8 байт или 8 значений:
1. uint8_t Зона (GRP=)
2. uint8_t Здоровье (HP=)
3. uint8_t Патроны (Ammo=)
4. uint8_t Опыт(Expa=)
5. uint8_t Жизни (Lives=)
6. uint8_t Тип техники (ID=)
Краткая информация что зашифровано в mis_unitnames
там просто зашифрованы имена юнитов которые прописываются в файле UNITS из архива desc_common.sue полностью вся выборка из этого файла.
Название каждого юнита занимает 16 байт информации и так по кругу.
mis_mapunits
2 этих файла взаимосвязаны между собой
mis_unitnames хранит последовательную информацию имен юнитов
mis_mapunits хранит информацию расстановки юнитов на карте
Оба эти фала сильно зависят друг от друга именно их взаимосвязь позволяет получить файл mapunits который кушает редактор карт.
Софт для объединения этой дружбы уже написан и готов он успешно импортирует все юниты в редактор карт, но в планах сделать что-то крупное по этому свет увидит позже
Краткая информация что зашифровано в mis_mapunits
Информация о расстановке юнитов в компилированной карте занимает 13 байт или же 11 значений:
1. uint8_t Зона (GRP=)
2. uint8_t Здоровье (HP=)
3. uint8_t Патроны (Ammo=)
4. uint8_t Опыт(Expa=)
5. uint8_t Жизни (Lives=)
6. uint8_t Тип техники (ID=)
7. uint8_t Пассажиры (In=)
8. uint16_t Координата U (U=)
9. uint16_t Координата V (V=)
10. uint8_t (Dir=)
11. uint8_t Принадлежность 0/1/2/3/(Owner=) 0 - игрок 1 - враг 2 - союзник 3 - нейтральный
Если есть пассажиры в технике то сразу после юнита посадки идет информация о юнитах всего 8 байт или 8 значений:
1. uint8_t Зона (GRP=)
2. uint8_t Здоровье (HP=)
3. uint8_t Патроны (Ammo=)
4. uint8_t Опыт(Expa=)
5. uint8_t Жизни (Lives=)
6. uint8_t Тип техники (ID=)
Краткая информация что зашифровано в mis_unitnames
там просто зашифрованы имена юнитов которые прописываются в файле UNITS из архива desc_common.sue полностью вся выборка из этого файла.
Название каждого юнита занимает 16 байт информации и так по кругу.
- NASHRIPPER
- Сержант
- Сообщения: 112
- Зарегистрирован: 21 фев 2012, 19:15
- Контактная информация:
Re: Map inject для Противостояния 3 или обратный реверс карт
mis_scripts
Скрипты, полностью разобраны и прекрасно перегоняются в редактор карт примерно на 90% осталась сложная логика но всему свое время.
Честно тут очень сложно объяснить как они работают это непростой труд перегонки их в редактор карт, софт уже написан который будет так же чуть позже.
Скрипты, полностью разобраны и прекрасно перегоняются в редактор карт примерно на 90% осталась сложная логика но всему свое время.
Честно тут очень сложно объяснить как они работают это непростой труд перегонки их в редактор карт, софт уже написан который будет так же чуть позже.
- NASHRIPPER
- Сержант
- Сообщения: 112
- Зарегистрирован: 21 фев 2012, 19:15
- Контактная информация:
Re: Map inject для Противостояния 3 или обратный реверс карт
Файл mis_support
Также взаимосвязан с mis_unitnames
Краткая информация что зашифровано в mis_support
Начало файла:
1. Uint32_t - флаг указывающий на размер файла support (данные 4 байта отображаются моей программой,
игра выкидывает данные значения, если файл брать из папки XCHNG;
Следом идет информация о Флагах - всего 16 контейнеров
общим размером 320 байт, каждый контейнер занимает 20 байт информации;
Указана последовательность для редактора карт если конвертировать из готовой карты:
1. Uint32_t - U координата
2. Uint32_t - V координата
5. Uint32_t - Количество флагов
3. Uint32_t - ХЗ
4. Uint32_t - ХЗ
Следом идет флаг указывающий на количество букв в названии подкрепления:
1. Uint8_t + Название подкрепления
После название идет информация о количестве юнитов в подкреплении(пассажиры в транспорте не учитываются):
1. Uint32_t
Следом идет информация непосредственно о юнитах в подкреплении занимающих 7 значений 7 байт информации:
6. Uint8_t - ID название техники это номер последовательности который берется из файла mis_unitnames
1. Uint8_t - Grp номер группы
2. Uint8_t - HP предположительно
3. Uint8_t - Ammo предположительно
4. Uint8_t - Expa предположительно
5. Uint8_t - Lives предположительно
7. Uint8_t - In число пассажиров
Если пассажиры в транспорте есть то следом идет информация о юнитах в транспорте,
каждый юнит занимает 6 значений 6 байт информации:
6. Uint8_t - ID название техники это номер последовательности который берется из файла mis_unitnames
1. Uint8_t - Grp номер группы
2. Uint8_t - HP предположительно
3. Uint8_t - Ammo предположительно
4. Uint8_t - Expa предположительно
5. Uint8_t - Lives предположительно
Также взаимосвязан с mis_unitnames
Краткая информация что зашифровано в mis_support
Начало файла:
1. Uint32_t - флаг указывающий на размер файла support (данные 4 байта отображаются моей программой,
игра выкидывает данные значения, если файл брать из папки XCHNG;
Следом идет информация о Флагах - всего 16 контейнеров
общим размером 320 байт, каждый контейнер занимает 20 байт информации;
Указана последовательность для редактора карт если конвертировать из готовой карты:
1. Uint32_t - U координата
2. Uint32_t - V координата
5. Uint32_t - Количество флагов
3. Uint32_t - ХЗ
4. Uint32_t - ХЗ
Следом идет флаг указывающий на количество букв в названии подкрепления:
1. Uint8_t + Название подкрепления
После название идет информация о количестве юнитов в подкреплении(пассажиры в транспорте не учитываются):
1. Uint32_t
Следом идет информация непосредственно о юнитах в подкреплении занимающих 7 значений 7 байт информации:
6. Uint8_t - ID название техники это номер последовательности который берется из файла mis_unitnames
1. Uint8_t - Grp номер группы
2. Uint8_t - HP предположительно
3. Uint8_t - Ammo предположительно
4. Uint8_t - Expa предположительно
5. Uint8_t - Lives предположительно
7. Uint8_t - In число пассажиров
Если пассажиры в транспорте есть то следом идет информация о юнитах в транспорте,
каждый юнит занимает 6 значений 6 байт информации:
6. Uint8_t - ID название техники это номер последовательности который берется из файла mis_unitnames
1. Uint8_t - Grp номер группы
2. Uint8_t - HP предположительно
3. Uint8_t - Ammo предположительно
4. Uint8_t - Expa предположительно
5. Uint8_t - Lives предположительно