Этот файл для тех кто взаимодействует с этим репозиторием. Поэтому напишу некоторые рекомендации.
В основную ветку делается слияние (merge) всех коммитов из других веток одновременно с повышением внутриигровой версии.
Это нужно чтобы не путаться когда игроки сообщают об ошибках ссылаясь на версию.
В основную ветку нежелательно делать push force, лучше исправить ошибки и версию поднять.
Вообщем это относительно стабильная ветка master.
Разработка ведется в других ветках.
Например в pre или dev или другой не так важно.
В их коммитах например может обнаружится некоторые опечатки, поэтому иногда коммиты обединяются в один или вовсе все переписываются, и делается push force, что может поменять некоторым коммитам хэш, это не должно приводить к серьёзным проблемам если код не сильно изменен, по этой-же причине я не делаю много правок за раз.
Если вы делаете pull request не делайте его в master и не повышайте версию, такие действия в master длжны быть централизованы для стабильности.
Отправляйте исправления или новые возможности в другие ветки.
Лучше поменьше изменений за раз т.к. несмотря на ужасный код он мне хорошо понятен и подконтролен, а большой новый код можно в новый файл залить.
Стабильной версии как таковой нет, все альфа, повышаю версию просто в конце "работы" вечера.
Можете быть смелее!
Мне приятно что-то необычное.
Учтите что здесь не потребители, поэтому не приветствуются решения вроде нажми кнопку получишь результат или сюрприз все в одном.
Скрипты работают на 90% поэтому их всегда нужно чинить править.
Несмотря на то что есть проблемы, я все равно буду рад если вы обнаружите и сообщите мне о новых, это экономит время.
Идеи так-же приветствуются даже если они так и не будут реализованы.
Как протестировать.
Можно установить GitHub Desktop.
Далее скачать в нем код, т.е. сделать clone, рекомендую на диск C: потому что далее ссылки будут, а буква диска может поменяться.
В директории с миссиями создать например папку gosa-symlink.карта/ не так важно, и создать там символьные ссылки на код.
В дальнейшем можно просто обновлять код в приложении без распаковки архива.
И после в игре уже актуальную миссию перезапустить, все.
Но иногда нужно копировать файлы, потому что движок такой например.
Как я проверяю миссию на приватном удаленном сервере...
В консоли linux на сервере
Переходим в директорию с кодом
cd ~/git/glowing-octo-shame-arma2/
Обновляем код на сервере (На другом устройстве уже отправил измененный код в репозиторий)
git pull --rebase=true
Переключаемся на тестовую ветку, pre например, и обновляемся опять
git checkout pre && git pull
Проверяем
git status
Удаляем все миссии на сервере
rm -rf ~/a2oa-server-private/mpmissions/*
Собираю миссию дебаг, размещая файлы сразу на сервере (поэтому в этот момент нельзя перезапускать задание)
OUT=~/a2oa-server-private/mpmissions/ ./tools/build_pbo_linux.sh -d
Перевыбираю задание и запускаю игру.
Тестирую и смотрю логи.
-
Разместить пустой маркер в верхнем правом углу карты с именем
gosa_worldSize
без текста, чтобы динамичные объекты например MHQ правильно учитывали размеры карты. -
Разместить базу.
- Для этого нужно разместить объект логики с типом
LocationBase_F
.- В его инициализации прописать
this setVariable ['gosa_Location_type', 0];
.- Где
0
это обычная база,1
база-аэропорт,2
база-авианосец.
- Где
- В его инициализации прописать
- Разместить обекты точек возрождения этой базы, рекомендую тип логики
LocationRespawnPoint_F
, тип логики не важен, потому-что вероятно будет изменен в будущем.- В инициализации этих точек прописать
this setVariable ['gosa_respawn_type', 0];
- Где
0
это все типы юнитов,1
пилоты,2
экипаж авианосца. - У типа
LocationRespawnPoint_F
gosa_respawn_type
по умолчанию уже равен0
, у других типов-1
.
- Где
- В инициализации этих точек прописать
- Синхронизируйте объект логики базы
LocationBase_F
с объектами точек возрожденияLocationRespawnPoint_F
этой базы.
- Для этого нужно разместить объект логики с типом
-
Разместите играбельные слоты юнитов.
- Рекомендую так-же добавить несколько ванильных слотов, чтобы за них могли играть игроки без приобретённых DLC.
-
Создайте статичные города.
LocationCityCapital_F
для самых больших городов, в планах там будут чаще появлятся юниты с городским камуфляжем и использоватся другая логика боя.LocationCity_F
обычный город, класика.LocationVillage_F
маленькая локация ни пару-тройку домиков, деревьев, в планах там будут дополнительные задания, а сейчас они эквивалентны обычному городу.- На некоторых картах города уже размещены в их cfgWorlds.
-
Разместите ящики с оружием, медпакетами и припасы для техники.
-
Разместите возрождаемую технику. Лодки у пристани например на островах без возможности на них найма.
- В init ТС пропишите
this setVariable ['gosa_respawnVehicle', true];
- В init ТС пропишите
-
Разместить слоты HeadlessClient.
- Обязательно пропишите им имя
HeadlessClient
,HeadlessClient_1
,HeadlessClient_2
и т.д.- Подсказка. При копировании объекта HeadlessClient с именем
HeadlessClient
у его копии имя станет автоматическиHeadlessClient_1
.
- Подсказка. При копировании объекта HeadlessClient с именем
- Обязательно пропишите им имя
-
Имя карты
- Строка из
mission.sqm
briefingName="RHS CO 00 gosa cup_chernarus_A3 East v0.0.5.908 DEBUG";
- Соблюдайте порядок разделённый пробелами.
- Имя модификации (может быть пропущено). Например
RHS
илиCUP
.- Необходимо только в том случае если на карте размещены объекты из модификации. Если используется только карта, но не объекты, то имя модификации указывать не нужно.
CO
это режим. сокращенный COOP.00
количество слотов, две цифры.glowing-octo-shame
- Имя карты.
- Сторона.
- Версия. Обязательно с буквой v и разделено тремя точками.
DEBUG
- Имя модификации (может быть пропущено). Например
- Строка из
-
Настройки карты.
- Скопируйте в ваш
mission.sqm
блокиScenarioData
иCustomAttributes
с заменой, изmaps\arma3\glowing-octo-shame-east.Altis\mission.sqm
-
// ... class ScenarioData { // И содержимое тоже. }; class CustomAttributes { // И содержимое тоже. }; // ...
-
- Скопируйте в ваш
-
Если карта значительно отличается от
Altis
погодой или климатом и нуждается в других камуфляжах.- Откройте файл
glowing-octo-shame-arma2\dir\functions\fnc_getIslandType.sqf
- Отредактируйте код, добавив новую карту, настроив для неё правильную "температуру" и год конфликта.
- Откройте файл
-
Имя миссии в качестве примера
maps\arma3
- Отключите бинаризацию при сохранении.