Автопостройка - Моды форумчан - Strategium.ru
Перейти к содержимому

Автопостройка

Рекомендованные сообщения

Закреплённые сообщения
Artos_VV

Спасибо за мод, избавляет от рутины...

Но есть замечание: вроде как все новое строится как задумано в моде, но в логе идет ругань на постройки электростанций и начальных лабораторий. Вроде на условия в 400 и 458 строках файла events/autobuild.txt:

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Строки в логе постоянно повторяются:

  Открыть
Нужно бы подправить, а то иные ошибки в логе можно не увидеть.

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

Ссылка на комментарий

  Artos_VV писал:
Спасибо за мод, избавляет от рутины...

Но есть замечание: вроде как все новое строится как задумано в моде, но в логе идет ругань на постройки электростанций и начальных лабораторий. Вроде на условия в 400 и 458 строках файла events/autobuild.txt:

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Строки в логе постоянно повторяются:

  Открыть
Нужно бы подправить, а то иные ошибки в логе можно не увидеть.

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

Это еррор лог? Странно, у меня он пустой. Здания строятся?

По поводу таймера хз. По идеи здания должны строиться раз в год. Но в игре эвент выполняется каждый день, возможно это вина парадоксов, а может я неправильно понимаю суть блока он ерли пульс.

Ссылка на комментарий

Iviom

Тэг every_owned_planet работает на все планеты? Или только на core миры?

Ссылка на комментарий

  Iviom писал:
Тэг every_owned_planet работает на все планеты? Или только на core миры?

Играю без секторов, специально проверять лень.

Ссылка на комментарий

Artos_VV
  had писал:
Это еррор лог? Странно, у меня он пустой. Здания строятся?

Да, в error.log. Здания то строятся, как уже и сказал, но и в лог сыпет. Вероятно некие ячейки(плитки) не подпадают под условия...

Добавил условие exists = pop перед pop = {...} и мусор в логе исчез.

Сунул свой нос поглубже в код и ... офигел малость ;)

1. Нашел неточность в строках 427 и 428 - т.е. будут строится только для "Планетарная администрация" (_1). Надо бы поправить окончания _2 и _3.

2. В каждом(!) такте игры перепроверяется не один десяток раз(!) каждая(!) ячейка на каждой(!) планете империи - такую нагрузку нужно разгружать. Я себе пока вот такой кусочек оптимизировал:

  Открыть
  had писал:
По поводу таймера хз. По идеи здания должны строиться раз в год. Но в игре эвент выполняется каждый день, возможно это вина парадоксов, а может я неправильно понимаю суть блока он ерли пульс.

Суть - этот эвент проверяется ежегодно, точнее в течении каждого года, если условие (у тебя has_edict = auto_build_3) выполняется. Если событие (постройка/апгрейд) не произошло, то и проверка продолжается. Т.о. если будет возможность что-то построить/апгрейдить в текущем году - то постройка выполняется немедленно и наступает пауза до след. года. Учитывая, что в моде три эвента - то и ежегодные паузы снивелированы...

В общем нужно глобально усовершенствовать код мода. :)

  Iviom писал:
Тэг every_owned_planet работает на все планеты? Или только на core миры?

У меня вроде сектора не затрагивает.

Изменено пользователем Artos_VV
Ссылка на комментарий

  Artos_VV писал:
Да, в error.log. Здания то строятся, как уже и сказал, но и в лог сыпет. Вероятно некие ячейки(плитки) не подпадают под условия...

Добавил условие exists = pop перед pop = {...} и мусор в логе исчез.

Сунул свой нос поглубже в код и ... офигел малость ;)

1. Нашел неточность в строках 427 и 428 - т.е. будут строится только для "Планетарная администрация" (_1). Надо бы поправить окончания _2 и _3.

2. В каждом(!) такте игры перепроверяется не один десяток раз(!) каждая(!) ячейка на каждой(!) планете империи - такую нагрузку нужно разгружать. Я себе пока вот такой кусочек оптимизировал:

1. Значит забыл обновить версию на яндекс диске, в стиме уже должно быть это исправление. Сейчас перезалью.

2. Не вижу в чем преимущество random перед every, я конечно не видел код и игры и не знаю как проводится проверка, но интуитивно кажется, что особой разницы нет.

Плюс (если я не ошибаюсь) проверка random происходит единожды для планеты/клетки (по крайней мере на это намекают ванильные эвенты), то есть за раз одна клетка в год.

Если бы эвенты случались раз в год, то это бы было оптимально. То есть зарядилась очередь постройки до следующего года и норм.

Попробовал вставить is_triggered_only = yes, эвенты перестали срабатывать. Хотя у других ванильных эвентов из on_yearly_pulse = { есть эта строка.

Да, внезапно ожил еррор лог, тоже эта ошибка с попами. Добавил твою правку, вроде норм.

Раз уж заговорили об оптимизации, решил убрать лишние проверки на планеты. Вот они действительно не нужны.

Спасибо за фитбек.

Новая версия на яндексе и стиме.

Ссылка на комментарий

Iviom

Можешь залить код на гитхаб?

Изменено пользователем Iviom
Ссылка на комментарий

  Iviom писал:
Можешь залить код на гитхаб?

Это возможно, а зачем?

Ссылка на комментарий

Artos_VV
  had писал:
1. Значит забыл обновить версию на яндекс диске, в стиме уже должно быть это исправление. Сейчас перезалью.

Ну... пользуюсь тем что для пиратов ;) , пока о покупке только подумываю.

Обнову скачал, постараюсь синхронизироваться.

  had писал:
2. Не вижу в чем преимущество random перед every, я конечно не видел код и игры и не знаю как проводится проверка, но интуитивно кажется, что особой разницы нет.

Плюс (если я не ошибаюсь) проверка random происходит единожды для планеты/клетки (по крайней мере на это намекают ванильные эвенты), то есть за раз одна клетка в год.

Если бы эвенты случались раз в год, то это бы было оптимально. То есть зарядилась очередь постройки до следующего года и норм.

Как выше уже говорил, on_yearly_pulse работает ежегодно И(!) если что-либо не срабатывает по событию - то продолжает в этом году свои проверки по всем планетам и по всем ячейкам, загружая движок игры.

Т.о. применяя random для ячеек как раз и выходит некая случайная задержка/отсрочка (пока очень маленькая) перед началом застроек, дабы игрок успел среагировать. Да и движок игры менее напрягается.

  had писал:
Раз уж заговорили об оптимизации, решил убрать лишние проверки на планеты. Вот они действительно не нужны.
Помимо излишних планет нужно бы для выбранной планеты в одном цикле по ячейкам проверять все условия для построек/апгрейдов, а не размазывать по куче перебираний всех ячеек по каждому поводу. Цикл получается очень разветвленный, но зато оптимизирован и легко адаптируем под новые доп.условия.

Подскажи, плз, что означает условие is_growing = no ? То, что связано с "поп не растет" - ясно, но зачем ты его применяешь, если уже рядом используешь has_grown_pop = yes (поп уже выросший). Извиняюсь за вольные переводы ;)

Ссылка на комментарий

  Artos_VV писал:
Как выше уже говорил, on_yearly_pulse работает ежегодно И(!) если что-либо не срабатывает по событию - то продолжает в этом году свои проверки по всем планетам и по всем ячейкам, загружая движок игры.

Т.о. применяя random для ячеек как раз и выходит некая случайная задержка/отсрочка (пока очень маленькая) перед началом застроек, дабы игрок успел среагировать. Да и движок игры менее напрягается.

Помимо излишних планет нужно бы для выбранной планеты в одном цикле по ячейкам проверять все условия для построек/апгрейдов, а не размазывать по куче перебираний всех ячеек по каждому поводу. Цикл получается очень разветвленный, но зато оптимизирован и легко адаптируем под новые доп.условия.

Подскажи, плз, что означает условие is_growing = no ? То, что связано с "поп не растет" - ясно, но зачем ты его применяешь, если уже рядом используешь has_grown_pop = yes (поп уже выросший). Извиняюсь за вольные переводы ;)

1 Мне кажется, что все же это не так работает, вот эвент на рабство срабатывает каждый день, хотя там условие и одной действие.

2 Что-то я не понял, можешь привести пример кода?

3 Я некоторые вещи автозаменой делал, в последней версии этого нет.

Ссылка на комментарий

Artos_VV
  had писал:
1 Мне кажется, что все же это не так работает, вот эвент на рабство срабатывает каждый день, хотя там условие и одной действие.

Зачем на кажется полагаться - смотрим в игре и в ванильных кодах эвентов. Сейчас постройки/апгрейды практически мгновенны при соблюдении заданных условий и практически ежедневны. Можно в готовой ячейке удалять здания и автомат их с задержкой секунду-три поставит в очередь постройки (или проапгрейдит). В ванильных эвентах ежегодность по флагам отслеживается... Ну да об этом пока рановато заботиться, т.к. не строить же по одному зданию в год на всех планетах. Тут еще помозговать нужно, чтобы и скорость была и игроку не мешало бы растрачивая ресурсы и ячейки.

  had писал:
2 Что-то я не понял, можешь привести пример кода?

  Открыть
  had писал:
3 Я некоторые вещи автозаменой делал, в последней версии этого нет.

Спросил из любопытства, а не то что ты уже заменил. Просто пока много переменных и прочего не знаю, а списков/описаний что-то не встречал. Вот и хотел выяснить, чтобы при случае знать когда и где применять. Не подскажешь де бы почитать про переменные, операторы и условия?

Ссылка на комментарий

  Artos_VV писал:
...

1 Я вижу, что каждый день эвенты исполняются, если бы on_yearly_pulse работал как ты говоришь, то этого бы не было по крайней мере для эвента на рабство.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Вот в вики крусайдеров нашел, потесчу еще попозже.

2 А ты пробовал это в игре? Что-то я нигде в ванильных эвентах не видел циклов или переменных, правда переменные есть в еу4, но все же мне кажется, что это слишком для игры.

3 Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Ссылка на комментарий

Artos_VV
  had писал:
1 Я вижу, что каждый день эвенты исполняются, если бы on_yearly_pulse работал как ты говоришь, то этого бы не было по крайней мере для эвента на рабство.

Ты никак не поймешь, что я говорю о том как дОлжен работать ежегодный эвент (как его разрабы спозиционировали), а не как он в моде без каких-либо флагов весь год пашет.

  had писал:
Вот в вики крусайдеров нашел, потесчу еще попозже.

Спасибо большое, пошел читать...

  had писал:
2 А ты пробовал это в игре? Что-то я нигде в ванильных эвентах не видел циклов или переменных, правда переменные есть в еу4, но все же мне кажется, что это слишком для игры.

Опять ты о "кажется" ... Игра- это движок, который читает внешние скрипты и исполняет их (помимо того, что уже в нео вшито). Скрипты, точнее их конфиги мы и пишем/правим. Как напишем - так и должен исполнять, если конечно ему это по силам. А мои примеры а раз из ванильных скриптов взяты - значит и обязан выполнять. Вот этот файл Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. (аналог твоего) в игре полностью отрабатывается. Тут все три эвента немного поправил. Но заремил апгрейд базовой лаборатории...

Ссылка на комментарий

  Artos_VV писал:
Опять ты о "кажется" ... Игра- это движок, который читает внешние скрипты и исполняет их (помимо того, что уже в нео вшито). Скрипты, точнее их конфиги мы и пишем/правим. Как напишем - так и должен исполнять, если конечно ему это по силам. А мои примеры а раз из ванильных скриптов взяты - значит и обязан выполнять. Вот этот файл ]]>Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ]]> (аналог твоего) в игре полностью отрабатывается. Тут все три эвента немного поправил. Но заремил апгрейд базовой лаборатории...

Кажется, потому что мне лень тестить. Вот и стараюсь компенсировать интуицией.

А с циклами ты наугад взял или где-то читал? Хотя я нашел в файлах, странно, что мне это не попадалось.

Посмотрел код, думаю, есть смысл начинать с конца. А еще засунуть все здания в одну ветку условий, тогда будет меньше проверок.

Но на самом деле это не так важно, если эвент будет стрелять раз в год.

Изменено пользователем had
Ссылка на комментарий

Artos_VV
  had писал:
А с циклами ты наугад взял или где-то читал? Хотя я нашел в файлах, странно, что мне это не попадалось.
Я пока только начал изучать коды Стеллариса и все что пишу найдено и взято из ванильных файлов разрабов.
  had писал:
Посмотрел код, думаю, есть смысл начинать с конца. А еще засунуть все здания в одну ветку условий, тогда будет меньше проверок.
Я пока лучше поизучаю доступные операторы и переменные, т.к. очень много нужно бы заложить, чтобы играбельно было. Все же не дело, когда робот тебе игру (и настроение) портит.
  had писал:
Но на самом деле это не так важно, если эвент будет стрелять раз в год.
Важно чтобы не в год стрелял, а в нужное игроку время. Кратко: отслеживая (не)достаточность ресурсов и влияния не мешать игроку своими по(пере)стройками, а помогать ресурсы держать в оптимале и не банкротиться/затариваться.
Ссылка на комментарий

  Artos_VV писал:
Я пока только начал изучать коды Стеллариса и все что пишу найдено и взято из ванильных файлов разрабов.

Важно чтобы не в год стрелял, а в нужное игроку время. Кратко: отслеживая (не)достаточность ресурсов и влияния не мешать игроку своими по(пере)стройками, а помогать ресурсы держать в оптимале и не банкротиться/затариваться.

1. Я вон выше кинул ссылку, там больше функций, чем в ванильных кодах, хотя про вайл, иф, елсе, там ничего нет.

2. Можно поставить требование по ресурсам, это не проблема, у меня они просто копятся и так.

Можно еще MTH сунуть, но насколько я помню, вычисление MTH тоже нагружает.

Ссылка на комментарий

Artos_VV
  had писал:
1. Я вон выше кинул ссылку, там больше функций, чем в ванильных кодах, хотя про вайл, иф, елсе, там ничего нет.

Там много чего, к сожалению, нет, хотя в scopes.txt уже хотя бы if-else упомянуты.

  had писал:
2. Можно поставить требование по ресурсам, это не проблема, у меня они просто копятся и так.
На начальной стадии игры провалы по ресурсам не редки у каждого игрока (не читера).
  had писал:
Можно еще MTH сунуть, но насколько я помню, вычисление MTH тоже нагружает.

Что такое MTH? (сорри, за моё невежество)

В общем поиграл, почитал, почесал репу - зачесались руки... и модернизировал маленько этот мод.

Вот что получилось: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. (идет для v1.1.0, отдается на растерзание создателю темы и всем другим)

- введен ключевой модуль "Тотальный губернатор" от(в)ключающий все остальные. Это чтобы по кучке ческбоксов не тыкать. Да и далее сюда можно общие условия добавлять, например, наличие на планете губернатора;

- добавлен модуль авто-расчистки заблокированных ячеек планет. Пока расчищает в случайном порядке, но научить приоритетам с учетом ресурсов не так уж невозможно;

- везде добавлено условие на "неведение строительства на планете", дабы не создавать очередей построек на планетах;

- доделан апгрейд базовых научных лабораторий с учетом ресурсов в ячейках (да и прочие апгрейды);

- при постройке новых зданий учитываются пищевые ресурсы, т.е. ячейки с пищей (пока) не застраиваются. Сейчас пишу доп. блок по строительству новых ферм для начального этапа развития колоний на планетах.

- ну и др.правки/добавки/оптимизашки... ;)

Ссылка на комментарий

  Artos_VV писал:
...

Не знаю, ну допустим поставить срабатывание эвента при2к минералов.

Пока накопится 2к минералов, они могли бы пойти в дело, апнуть пару зданий, остальные в очередь, профит уже идет.

К тому же 2к - это не много, ну десяток корветов, но не факт, что понадобится десяток корветов.

А так будут этим минералы мертвым грузом лежать, хотя могли бы работать.

Я пока в своей тестовой версии поставил условие на 250 влияния, чтобы можно было эдикт ввести, не отключая автопостройку за влияние.

mean_time_to_happen

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Лучше конечно через is_triggered_only = yes и 00_on_actions, но я не понимаю почему не работает как надо, так что сделаю пока раз в месяц.

Не думаю, что общий эдикт нужен, это в европе можно одним решением скрыть системные решения, тк решения не активны сами по себе, а вешают флаги, тут через флаги не очень хочется делать.

Через активные эдикты как-то нагляднее.

is_ai = no в триггере не нужен. ИИ не будет включать эдикт и должен выключить его (не проверял).

Блокеры убираются инстантно и без вычета цены? Я правильно понял?

Думал так сделать, но хотелось бы нормально, как с постройкой зданий (очередь, цена, техи). Спрашивал на парадоксплазе у разраба по этому поводу, но он не ответил.

Команду add_building_construction = мне посоветовал тот же разраб, в ванильных эвентах она не встречается.

Зачем у тебя условие is_colony = yes ? Разве random_owned_planet = { не проверяет то же самое?

Не понятно зачем проверка на ресурсы, энергия не требуется для строительства, минералы и так проверяются командой add_building_construction

Проверка на еду в клетке тоже не нужна, единственный случай, если в клетке еда и минералы, например, всегда в таком случае еда имеет низший приоритет. Придумать бы правило для постройки ферм, но я не нашел как можно считать остаток еды планеты, а делать сложный алгоритм для учета попов, кол-ва ферм и модификаторов мне лень.

break = yes тоже не нужен, если я правильно понимаю работу if.

is_robot_pop разве синтов не считает? Тогда они не будут становиться рабами.

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

Я вот пытаюсь починить мод Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Пока пришел к такому правилу для размножения, игра перестала ругаться на синтаксис, но все равно где-то ошибка, ибо работает не как надо

файл 00_rules удалил из архива мода, чтобы было проще тестить.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

В общем, если есть мысли, я заинтересован.

Ссылка на комментарий

А еще возникла мысль занести все под 1 эвент.

Ссылка на комментарий

Присоединиться к обсуждению

Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Ответы 346
  • Создано
  • Последний ответ
  • Просмотры 51261

Лучшие авторы в этой теме

  • had

    158

  • Artos_VV

    26

  • plm1234

    14

  • Че Бурашка

    11

  • Kelnimiir

    11

  • Alex Kit

    8

  • mahmud

    8

  • hind

    8

  • Resso

    7

  • Pasha223

    7

  • Naugrim12

    7

  • HugoBo-SS

    6

  • sanas

    5

  • VitaliiCN

    5

  • frezer123

    5

  • Дейтерий

    4

  • Evil1Russian

    3

  • flexus

    3

  • fenix293

    3

  • belior

    3

  • AngryRussian

    3

  • He3Hak0MeLL

    3

  • NopzHopz

    3

  • nekitosh

    3

Лучшие авторы в этой теме

Популярные сообщения

had

Картинка   Hide     Скачать: Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

had

Обновил мод, исправил меню. Кто качал с яндекс диска - нужно перекачать. Но если вы не используете 2 других мода с меню, то забейте.

had

@LeGuS Вчера была ошибка, она исправлена. Не будет.

had

Нет, я такого пока не находил, поэтому и до сих пор не запилил в мод. Не случалось у меня проблем с пищей, первого растущего поселенца ставим в ферму, потом возвращаемся после сообщения о безработице

had

Не включай остальные настройки мода в меню и будет только этот эдикт.

had

Обновил до 1.3

had

Мне так лень разбираться, что я просто перезалью архив.

had

Обновлено до v2.6 Улучшена локализация. Изменена логика специализированных планет. Переименование автоматических строительных кораблей. Уникальные постройки теперь будут учит

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу

1/18/2025 2:31:17 PM

Copyright © 2008-2025 Strategium.ru Powered by Invision Community

×
×
  • Создать...