Общие вопросы по модам

Самостоятельная настройка параметров игры и создание модификаций.
Аватара пользователя
Lex
Frigate
Сообщения: 510

Общие вопросы по модам

Сообщение Lex » 11 янв 2017, 00:12

Мелочь, а неприятно: новый форт съезжает на категории оружия, хотя эти категории должны бы съехать вниз:
форт съехал.png
форт съехал.png (210.81 КБ) 16729 просмотров

И второй вопрос - от чего зависит порядок появления картинки форта? У меня он в equip.all идет после кластера для всех классов, а отображается первым.
Аватара пользователя
NX-01
Сообщения: 9

Общие вопросы по модам

Сообщение NX-01 » 11 янв 2017, 14:16

Вопрос про добавление новых зданий. Он уже поднимался на страницах 4-6 этой темы, но я так и не увидел описания работающего механизма.
Я уже накатал простыню про свою неудачную попытку добавить в качестве эксперимента улучшенную копию здания, но, чтобы не заставлять раньше времени никого в этом копаться, сначала спрошу про общий порядок действий. Насколько я понял, нужно: 1. прописать в res_bld.a; 2. прописать в const.a; 3. прописать в plantype.ini, и, конечно, создать картинку, файл ini с параметрами, технологию/сделать доступным по умолчанию. С описанием не разобрался вовсе. Если нужно больше конкретики, чтобы указать на то, что я делаю неправильно, дайте отмашку, распишу.
Аватара пользователя
NX-01
Сообщения: 9

Общие вопросы по модам

Сообщение NX-01 » 12 янв 2017, 06:14

Ufnv писал(а):Украсть, скорее, можно, а вот обменять/продать - не уверен, надо хорошо так смотреть... Мне казалось, что на обмен/продажу есть условие доступности материнских технологий, которое тут не выполняется. Я могу потом посмотреть, сейчас - никак, нет кода под рукой.


Пролистал всю тему, но так и не увидел ответа на вопрос. Всё-таки ИИ может украсть добавленную таким образом технологию или нет?
Аватара пользователя
Veshnyak
Destroyer
Сообщения: 872

Общие вопросы по модам

Сообщение Veshnyak » 12 янв 2017, 16:59

NX-01 писал(а):Источник цитаты Вопрос про добавление новых зданий

Вот так получилось
► Показать

Порядок такой
1. создать в BldInfo\ *.ini с описанием здания
2. создать новую запись в BldInfo\Summary.ini для новой секции типа зданий на планете или внести название нового здания в существующую
3. создать и прописать картинку в *.ini
4. внести даные в PLANTYPE.INI, если нужно строить здание на определенных типах планет. Если нет, то достаточно прописать "AllowedByDefault" в BldInfo\ ini-файл, тогда здание можно строить на любых планетах.
В ModKit\
5. res_bld.a
call UFRegisterBuildingFromFile(bldSenat, "BldInfo/Senat.ini", /*idx:90*/L"Сенат")
6. const.a
def const bldSenat = 40
7. info.a - вплывающая подсказка (у меня не заработала)
8. в LANG\Rus\buildings.lng - добавить описание. Название секции должно совпадать с полем "Info" BldInfo\ ini-файла
9. Скомпилировать, после положить полученный rtq.txt в LANG\Rus и переименовать в rtq.lng, иначе будут сбои в локализации
10. собрать всё, в каталоге мода должна получится примерно такая структура
\BldInfo\Summary.ini
\BldInfo\Senat.ini
\Images\senat.png
\LANG\Rus\buildings.lng
\LANG\Rus\rtq.lng
\rtq.cht
\rtq.gen
\rtq.pht
\rtq.rht
\PLANTYPE.INI
11.подключить мод
roman_ke
novice
Сообщения: 3

Патчи к игре.

Сообщение roman_ke » 11 апр 2017, 14:13

>>Ufnv
Может сделаете DLC Master of Orion 2? Я когда ждал Ориона начал модить игру и в итоге получился мод второго Ориона. Призадумался и решил подождать пока не выйдет от варгаминга орион. Затем долго модил Орион от варгаминга, и по прошествии времени думаю что Polaris Sector более подходящая основа для Ориона 2, надо расы и богованов в Антаран переделать, добавив Орион 2 технологий.
Аватара пользователя
Veshnyak
Destroyer
Сообщения: 872

Общие вопросы по модам

Сообщение Veshnyak » 12 апр 2017, 18:10

roman_ke писал(а):Источник цитаты Я когда ждал Ориона начал модить игру и в итоге получился мод второго Ориона

Какую игру? Эту? Если да, то где можно увидеть, что получилось?
roman_ke писал(а):Источник цитаты надо расы и богованов в Антаран переделать, добавив Орион 2 технологий.

Для этого DLC не надо. Нужны картинки рас, кораблей, технологий. Тексты описаний. И собрать всё вместе. Мод Star Wars служит отличным примером, что это возможно.
Аватара пользователя
Veshnyak
Destroyer
Сообщения: 872

Общие вопросы по модам

Сообщение Veshnyak » 11 дек 2017, 12:08

Владимир, несколько вопросов
1. rtq.err после компиляции выдает предупреждение "race.a: Warning! At 1242 67 : Attribute not predefined CheckStopWarPlayerAbuse".
Это без изменения файлов. Явно баг какой-то.
2. В rtq_es.bat появились ключи
-at
-gat
Для чего они? С ними компиляция выдает виндовую ошибку "Прекращена работа программы....". Если их удалить - все работает.
Аватара пользователя
Ufnv
Senior Developer
Сообщения: 1150

Общие вопросы по модам

Сообщение Ufnv » 11 дек 2017, 14:46

Veshnyak писал(а):Источник цитаты Владимир, несколько вопросов
1. rtq.err после компиляции выдает предупреждение "race.a: Warning! At 1242 67 : Attribute not predefined CheckStopWarPlayerAbuse".

Это - нормально. В языке любому объекту можно добавить атрибут/метод динамически, что и происходит. Поэтому - warning, а не error.

Это без изменения файлов. Явно баг какой-то.
2. В rtq_es.bat появились ключи
-at
-gat
Для чего они? С ними компиляция выдает виндовую ошибку "Прекращена работа программы....". Если их удалить - все работает.

А. Это - для генерации списка непереведенных фраз и подсос частично переведенных. Можно спокойно удалять из батника.
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 27 дек 2017, 11:29

Возвращаясь к:
Ufnv писал(а):Источник цитаты Я могу сделать для сценариев "кодированный текст", типа $ui.lng$123 - чтобы брал 123-й id из ui.lng
- будет ли это (возможность локализации сценария) сделано (и когда?)?
Дополнительно: В настоящий момент 'сценарии' невозможно запустить, если игроку разрешена только одна конкретная раса.
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 29 дек 2017, 01:13

(пусть будет тут для информации)
Оказывается ключики -gat и -at довольно полезны при работе над локализациями текстов.

-gat = generete_additional_translation полностью рабочая опция, с которой в файл .gat записываются все строки/фразы не имеющие перевода.
-at = additional_translation - опция добавление из файла .at в код (и в файл докализации .lng) строк имеющих перевод. Важно(!), чтобы в папке МодКита был хотя бы пустой файл .at, в противном случае компилятор зависает!

Т.о. при "черновом" запуске компилятора в rtq.gat появятся все проиндекстированные строки без перевода. К каждой строке будет добавлена заготовка: Lang "".
Беря по-строчно (или блоками) из rtq.gat, копипастим в rtq.at и в Lang "" добавляем нужный перевод.
При последующем запуске компилятора - переведенные строки окажутся в нужном месте!

P.S. Имеются и др. ключики:
-nss = no_strings_sort
-is = insert_strings
-a, -na = assist, no_assist
-af, -naf = assistfile, no_assistfile
-ef, -nef = errorfile, no_errorfile

//спасибо, добавил в "описание файлов игры" =V.
Comissar
Interceptor
Сообщения: 63

Патчи к игре.

Сообщение Comissar » 27 окт 2018, 23:56

а можно в каком нибудь патче добаить прионам-орионам модуль гиперперехода в кораблики? а то собрать ты его собрал - а использовать в атаке никак. налетит толпяк в миллиард истребителей и привет.
Аватара пользователя
p0rc0_r0ss0
Destroyer
Сообщения: 1153

Патчи к игре.

Сообщение p0rc0_r0ss0 » 03 ноя 2018, 23:01

Comissar писал(а):Источник цитаты а можно в каком нибудь патче добаить прионам-орионам модуль гиперперехода в кораблики? а то собрать ты его собрал - а использовать в атаке никак. налетит толпяк в миллиард истребителей и привет.

Вообще, возможность редактировать чужие конфигурации была бы мега фича.
Comissar
Interceptor
Сообщения: 63

Патчи к игре.

Сообщение Comissar » 03 ноя 2018, 23:38

просто сверхразвитые цивилизации... а самого необходимого модуля и нет. не хорошо :D
Аватара пользователя
Artos
Frigate
Сообщения: 530

Патчи к игре.

Сообщение Artos » 04 ноя 2018, 05:52

Comissar писал(а):Источник цитаты можно в каком нибудь патче добаить прионам-орионам модуль гиперперехода в кораблики?

Ни что не мешает взять самому и, запустив конструктор кораблей (-design), отредактировать в файле default.ds или default_lum.ds проекты прионо-орионовских кораблей.

Примечание:
► Показать
Comissar
Interceptor
Сообщения: 63

Патчи к игре.

Сообщение Comissar » 04 ноя 2018, 13:14

Artos писал(а):Источник цитаты
Comissar писал(а):Источник цитаты можно в каком нибудь патче добаить прионам-орионам модуль гиперперехода в кораблики?

Ни что не мешает взять самому и, запустив конструктор кораблей (-design), отредактировать в файле default.ds или default_lum.ds проекты прионо-орионовских кораблей.

Примечание:
► Показать

у меня именно стим)
Аватара пользователя
Artos
Frigate
Сообщения: 530

Патчи к игре.

Сообщение Artos » 04 ноя 2018, 18:08

Comissar писал(а):Источник цитаты у меня именно стим

Ну в таком случае возможны варианты:
1. Скачать с сайта Ящериц Polaris Sector - v1.06g Update и, распаковав его, временно использовать вместо стимовской недоделки... ;
2. Взять тут файлы default.ds и default_lum.ds с добавленными модулями контроля гиперпереходов для прионо-арионовских кораблей и использовать их вместо оригинальных;
3. Взять уже исправленный соответствующий default.ds или default_lum.ds из актуального Мода "Неофициальные исправления ошибок текущей версии PS". В этом варианте у прионо-арионовских кораблей, помимо добавленных модулей контроля гиперпереходов, рабочие щиты(!)
Аватара пользователя
Darkreigh
Frigate
Сообщения: 751

Общие вопросы по модам

Сообщение Darkreigh » 18 ноя 2018, 21:38

не помню, может уже спрашивал где-то
в race.a в районе 6324-6345

Код: Выделить всё

if (rbvNone != call UFGetBonusSelected(rbEnergyLifeform))
      call UFSetECOPlanetBuildingCount(PlanetHandle, bldPlanetaryFactory, 10)
      call UFSetECOPlanetBuildingCount(PlanetHandle, bldOrbitalFactory, 3)
    else
      call UFSetECOPlanetBuildingCount(PlanetHandle, bldPlanetaryFactory, 3)
      call UFSetECOPlanetBuildingCount(PlanetHandle, bldOrbitalFactory, 1)
      call UFSetECOPlanetBuildingCount(PlanetHandle, bldFarm, 29)
      call UFSetPlanetResource(PlanetHandle, resFood, 150000)
    end if
как для одной определенной расы вместо 29 ферм поставить 28?
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 18 ноя 2018, 22:46

Darkreigh, по хорошему, если "для одной определенной расы" то править не race.a, а файл конкретной расы (r_Xxx.a). В конец почти пустой функции phrase CreateHomeworld(PlanetHandle) можно вставить строки, которые просто переназначат кол-во ферм на требуемое:

Код: Выделить всё

  phrase CreateHomeworld(PlanetHandle)
    ::CreateHomeworld(PlanetHandle)
    if (rbvNone = call UFGetBonusSelected(rbEnergyLifeform))
      call UFSetECOPlanetBuildingCount(PlanetHandle, bldFarm, Num) //<
    end if
  end phrase

Или же можно в race.a, но тогда нужно знать константу-идентификатор требуемой расы raceID (raceSha ... raceLum) и тогда вместо одной строки с фермами получится 5:

Код: Выделить всё

      call UFSetECOPlanetBuildingCount(PlanetHandle, bldOrbitalFactory, 1)
      if (this.raceID == raceLog) //< идентификатор требуемой расы
        call UFSetECOPlanetBuildingCount(PlanetHandle, bldFarm, Num) //< Num требуемое кол-во ферм
      else
        call UFSetECOPlanetBuildingCount(PlanetHandle, bldFarm, 29) // исходная строка
      end if
      call UFSetPlanetResource(PlanetHandle, resFood, 150000)
- это для Логанов.
Аватара пользователя
Darkreigh
Frigate
Сообщения: 751

Общие вопросы по модам

Сообщение Darkreigh » 18 ноя 2018, 23:14

да, через race.a работает. спасибо.
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 19 ноя 2018, 06:25

(по следам топика "дом, милый дом")
Ufnv писал(а):Источник цитаты А зачем "псевдо-типы"? Не проще нормальный тип добавить?
Покопавшись с различным вариантами реализации "домашних" планет для некоторых рас, всё же тоже пришёл к выводу, что разумнее добавить новые (под)типы планет. Жаль что нет возможности использовать прелести ООП (объектно ориентированного программирования) и использовать объект шаблона исходной планеты требуемого типа, но... что доступно - на том и строим. :)
Однако в процессе создания новых типов планет проявился нюанс:
Планет каждого нового типа требуется в игре по одной каждого. Для этого используем параметр 'Generate Manual 1 RND 1'. И тут начались непонятки, первоначально новые типы планет были вставлены в начало файла PLANTYPE.INI (т.е. перед "Гайкой"). По какой-то причине планеты генерились рядом с гайками и земными... Перенес в конец файла (после астероидов) и подправил различные иные параметры в создаваемых типах. Планеты стали генериться нормально, т.е. 'основными' в пакете планет у звезды. Перед заключительной чисткой строк и пр. по какой то причине опять планеты стали генериться в соседстве с землями/гайками(?). А после переноса блока кода с новыми типами планет в начало файла - все стало работать как задумано...
Ufnv, собственно вопрос:"Почему такое происходит? Чем грозит такая 'нестабильность' поведения кода, зависящего от места расположения строк в файле? Есть ли возможность исправить/избавиться от коллизий?"
Блок строк кода новых типов планет:
► Показать
Аватара пользователя
Ufnv
Senior Developer
Сообщения: 1150

Общие вопросы по модам

Сообщение Ufnv » 19 ноя 2018, 11:51

Когда заселяется сектор планетами, то сначала выбираются звезды для тех, кто с типом "Manual", по порядку. Им выбираются звезды по их предпочтениям. Соответственно, если предпочтения планет совпадают, а подходящих звезд мало, то запросто могут быть две планеты в системе.

Таким образом, рекомендация при добавлении нового "хорошего" типа, уменьшать кол-во earthlike, например. Или сделать другие предпочтения. Например, сделать для Ocean_HW Prefer "F" AnySize 0 "A" AnySize 1 "G" AnySize 2 "K" AnySize 2 "B" AnySize 2 "M" AnySize 3
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 19 ноя 2018, 20:27

Ufnv, большое спасибо за разъяснение.

Спрошу все же еще раз в этой теме про:
1. Проблема с call UFChangePlanetType(PlanetHandle, 3).
Описание проблемы в теме терраформинга.

2. Как добавить (и возможно ли вообще) свою рабочую UserFunc? Текст вопроса тут.
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 21 ноя 2018, 06:02

Ufnv, похоже удалось найти причину сбоя в работе функции call UFChangePlanetType(PlanetHandle, 3) - при смене типа уже обустроенной планеты эта функция (как предполагаю) пытается сохранить на планете все уже имеющиеся на планете постройки и население. Если на исходной планете кол-во шахт/ферм и т.п. значительно превышает кол-во "разведанных ресурсов" на проапрейденной (терраформированной) планете, то происходит сбой! Нередко, из-за чрезмерно избыточных шахт исчезают фабрики(заводы), а орб.верфи остаются. Дополнительно могут исчезать и несколько "лишних" шахт. И, пока "излишки" построек не будут удалены "руками" - недоступно строить фабрики и (иногда) шахты.
На сейчас, приходится использовать такой вариант-костыль:
► Показать
т.е. перед процессом апгрейда планеты (Upgrade == 3) помимо удаления явно лишнего (гидропонки, купола и т.п.) удаляю все предположительно излишние шахты, оставляя не более 2(!) каждого типа.
Заодно, по окончании удаляю все оставшиеся излишки:
► Показать
- тогда процесс апгейда планет происходит без потерь заводов :!:
Предложение-просьба: неплохо бы дать возможность модмейкерам считывать из параметров исходной планеты её поле "Upgrade", тогда можно было бы точнее управлять процессом апгрейда/терраформирования. ;) Ну а верхом пожелания была бы возможность считывать и устанавливать (Get|Set) строковые значений параметров для планеты: Nova, Destroy, Degrade и Upgrade. :)
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 08 дек 2018, 16:41

Ufnv, при написании мода "Случайные события" (например авария с лабораторией) где предусмотрены частичные разрушения строений и гибель населения, использую функцию UFGetAISkill(). Столкнулся с тем, что во второй половине игры (~3050 год) эта функция стала выдавать 255 вместо положенных ей 0..3 (skEasy..skHard). А ведь на эту функцию завязана и игра (функции богованов, пиратов, и т.п.)!
Вопрос: В чем может быть причина такого сбоя функции и/или как это обойти?

Также, попытался расширить мод "Домашние миры", добавив Люменам их "родной мир" на базе "СуперЗемли" ("Heavy_HW"), однако(!) ничего не вышло. :( Планета с новым типом создается и заселяется, но на экране планеты полностью отсутствует интерфейс отображения допустимых построек и уже построенных. Попробовал просто поселить Люменов на СуперЗемле ("Heavy") - результат аналогичный, т.е. отсутствие интерфейса.
В чём может быть проблема?
Аватара пользователя
Artos
Frigate
Сообщения: 530

Общие вопросы по модам

Сообщение Artos » 11 дек 2018, 03:15

Получил ответ на 2-ой вопрос, т.е. почему отсутствовал интерфейс построек:
Чтобы полноценно пользоваться планетой владельцу должны быть доступны технологии соответствующих куплов... СтОили выдать люменам технологию куполов с радиационной защитой и они отлично поселились на "СуперЗемле".

Вернуться в «Настройка/модификации»