Skip to content

Latest commit

 

History

History
128 lines (104 loc) · 10.4 KB

CONTRIBUTING.md

File metadata and controls

128 lines (104 loc) · 10.4 KB

Сотрудничество

Этот файл для тех кто взаимодействует с этим репозиторием. Поэтому напишу некоторые рекомендации.


В основную ветку делается слияние (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
Перевыбираю задание и запускаю игру.
Тестирую и смотрю логи.

Иструкция по портированию карт

  1. Разместить пустой маркер в верхнем правом углу карты с именем gosa_worldSize без текста, чтобы динамичные объекты например MHQ правильно учитывали размеры карты.

  2. Разместить базу.

    • Для этого нужно разместить объект логики с типом 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 этой базы.
  3. Разместите играбельные слоты юнитов.

    • Рекомендую так-же добавить несколько ванильных слотов, чтобы за них могли играть игроки без приобретённых DLC.
  4. Создайте статичные города.

    • LocationCityCapital_F для самых больших городов, в планах там будут чаще появлятся юниты с городским камуфляжем и использоватся другая логика боя.
    • LocationCity_F обычный город, класика.
    • LocationVillage_F маленькая локация ни пару-тройку домиков, деревьев, в планах там будут дополнительные задания, а сейчас они эквивалентны обычному городу.
    • На некоторых картах города уже размещены в их cfgWorlds.
  5. Разместите ящики с оружием, медпакетами и припасы для техники.

  6. Разместите возрождаемую технику. Лодки у пристани например на островах без возможности на них найма.

    • В init ТС пропишите this setVariable ["gosa_respawnVehicle", true];
  7. Разместить слоты HeadlessClient.

    • Обязательно пропишите им имя HeadlessClient, HeadlessClient_1, HeadlessClient_2 и т.д.
      • Подсказка. При копировании объекта HeadlessClient с именем HeadlessClient у его копии имя станет автоматически HeadlessClient_1.
  8. Имя карты

    • Строка из 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
  9. Настройки карты.

    • Скопируйте в ваш mission.sqm блоки ScenarioData и CustomAttributes с заменой, из maps\arma3\glowing-octo-shame-east.Altis\mission.sqm
      • // ...
        class ScenarioData
        {
         // И содержимое тоже.
        };
        class CustomAttributes
        {
         // И содержимое тоже.
        };
        // ...
  10. Если карта значительно отличается от Altis погодой или климатом и нуждается в других камуфляжах.

    • Откройте файл glowing-octo-shame-arma2\dir\functions\fnc_getIslandType.sqf
      • Отредактируйте код, добавив новую карту, настроив для неё правильную "температуру" и год конфликта.
  11. Имя миссии в качестве примера maps\arma3

    • Отключите бинаризацию при сохранении.