Перейти к содержимому
Strategium.ru

Вопросы по моддингу в Hearts of Iron IV


Armun

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

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


Сделал мод на Беларусь, ничего особенного, просто она сразу выделяется из состава Польши и СССР, 500 кб весит, захожу в лаунчер, смотрю, не показывает сколько он весит, а когда захожу в игру все как в ваниле.


11 час назад, seva_tut сказал:

Сделал мод на Беларусь, ничего особенного, просто она сразу выделяется из состава Польши и СССР, 500 кб весит, захожу в лаунчер, смотрю, не показывает сколько он весит, а когда захожу в игру все как в ваниле.

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


danilasar
(изменено)

Доброго времени суток. Изгаляюсь над модом Economic Crisis 2013, столкнулся с удивительной проблемой: триггер ивента попросту не срабатывает. Быть может, я что-то упустил, но, глядя на множество событий этого мода, ванильных и найденных на просторах сети, разницы не заметно.

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

В логах, на удивление, никаких ошибок, связанных с этим событием или хотя бы файлом. Если спровоцировать ивент через консоль (event snr.1), проблем нет. Пожалуйста, подскажите, в чём может быть проблема?

Изменено пользователем danilasar

47 минут назад, danilasar сказал:

В логах, на удивление, никаких ошибок, связанных с этим событием или хотя бы файлом. Если спровоцировать ивент через консоль (event snr.1), проблем нет. Пожалуйста, подскажите, в чём может быть проблема?

Через консоль хоть все условия зелёными? В глобальных модах могут быть возможно каике-то свои нюансы, но вообще подобные ивенты по триггерам могут дней 15-20 созревать, пока не сработают. Но не исключена и какая-то более банальная путаница с кодом.


В 15.07.2021 в 12:34, GBV сказал:

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

Вот тебе путь, юный гений. C:\Users\Seva\OneDrive\Документы\Paradox Interactive\Hearts of Iron IV\mod


Lucifreir

Снова здравствуйте. Подскажите, какой командой можно установить требования к улучшению отношений (а именно прожатому дипломатическому действию Улучшить отношения или Relation improve). Мне нужно создать ai_chance = { modifier = { для эвента, повышающий шанс определённого действия со стороны ИИ в том случае, если он улучшает отношения с другой страной-участником эвента.


Lucifreir

Может быть кто-нибудь знает как хотя б называется этот opinion_modifier, который Улучшает отношения?

И ещё: чтобы получить прилагательное страны в тексте локализации, мне нужно использовать [ROOT.GetAdjective], верно? Знаю, что мог бы просто проверить, но надо набить пятнадцать сообщений, да так и проще.

)


26 минут назад, Lucifreir сказал:

Может быть кто-нибудь знает как хотя б называется этот opinion_modifier, который Улучшает отношения?

 

Если посмотреть в /common/opinion_modifiers/, то можно найти там модификатор improve_relation, который по видимости за это и отвечает.

27 минут назад, Lucifreir сказал:

И ещё: чтобы получить прилагательное страны в тексте локализации, мне нужно использовать [ROOT.GetAdjective], верно? Знаю, что мог бы просто проверить, но надо набить пятнадцать сообщений, да так и проще.

 

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


Lucifreir
(изменено)
14 минуты назад, GBV сказал:

Если посмотреть в /common/opinion_modifiers/, то можно найти там модификатор improve_relation, который по видимости за это и отвечает.

Блин. Странно что я туда уже смотрел, но видел-таки всё же фигу.

Ещё вопросец: как работает modifier = { в том случае, если он нужен мне не один? Такое построение кода будет правильным?

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

 

Изменено пользователем Lucifreir
Пунктуация.

35 минут назад, Lucifreir сказал:

Ещё вопросец: как работает modifier = { в том случае, если он нужен мне не один? Такое построение кода будет правильным?

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

Технически наверное будет правильно, но здесь важна логика модификаторов, нужно учитывать, что factor в модификаторах умножается на исходное значение фактора 10, что конечно в данном примере даст огромный прирост вероятности выбора, особенно если оба модификатора активируются по своим условиям, будет 10*80*800. Если нужно например прибавить к вероятности, то вместо фактора можно использовать add = 80, если нужно какой-то вариант отсечь вообще, то его вероятность можно обнулять с factor = 0.


Lucifreir

Извиняюсь за очередное беспокойство и гору текста, но видимо я опять чего-то не понимаю. Где-то в цепочке эвентов есть косяк, который не позволяет завершить её до конца:

Цитата

news_event = {
    id = heartsofcringe_political_news.1
    title = heartsofcringe_political_news.1.t
    desc = heartsofcringe_political_news.1.d
    picture = GFX_news_event_001
    
    major = yes
    
    is_triggered_only = yes
    
    option = {
        name = heartsofcringe_political_news.1.a
        random_country = {
            limit = {
                has_opinion = {
                    target = ROOT
                    value > 15
                }
            }
            country_event = {
                id = heartsofcringe_event.4
                days = 2
            }
        }
    }
}

 

country_event = {
    id = heartsofcringe_event.4
    title = heartsofcringe_event.4.t
    desc = heartsofcringe_event.4.d
    picture = GFX_mussolinitwitter
    
    is_triggered_only = yes
    fire_only_once = yes
    
    option = {
        name = heartsofcringe_event.4.a
        ai_chance = {
            factor = 2
            modifier = {
                add = 3
                is_major = yes
            }
        }
        random_other_country = {
            limit = {
                has_country_leader = {
                    name = "Benito Mussolini"
                        ruling_only = yes
                }
            }
            country_event = {
                id = heartsofcringe_event.5
                days = 1
                random_days = 2
            }
            add_stability = -0.1
        }
        add_political_power = 10
        add_war_support = 0.1
    }
    option = {
        name = heartsofcringe_event.4.b
        ai_chance = {
            factor = 7
        }
        random_other_country = {
            limit = {
                has_country_leader = {
                    name = "Benito Mussolini"
                        ruling_only = yes
                }
            }
            country_event = {
                id = heartsofcringe_event.6
                days = 1
                random_days = 2
            }
            add_stability = -0.05
        }
        add_stability = 0.05
    }
    option = {
        name = heartsofcringe_event.4.c
        ai_chance = {
            factor = 1
            modifier = {
                add = 4
                is_major = no
            }
            modifier = {
                add = 4
                FROM = { has_opinion_modifier = improve_relation }
            }
        }
        add_political_power = -25
        add_stability = -0.05
        add_war_support = 0.05
    }
}
country_event = {
    id = heartsofcringe_event.5
    title = heartsofcringe_event.5.t
    desc = heartsofcringe_event.5.d
    picture = GFX_mussolinitwitter
    
    is_triggered_only = yes
    
    option = {
        name = heartsofcringe_event.5.a
        add_opinion_modifier = {
            target = ROOT
            modifier = diplomats_removal
        }
    }
    option = {
        name = heartsofcringe_event.5.b
    }
}
country_event = {
    id = heartsofcringe_event.6
    title = heartsofcringe_event.6.t
    desc = heartsofcringe_event.6.d
    picture = GFX_mussolinitwitter
    
    is_triggered_only = yes
    
    option = {
        name = heartsofcringe_event.6.a
    }
    option = {
        name = heartsofcringe_event.6.b
    }
}

Я уже голову сломал, пытаясь понять в чём дело. Лог ошибок молчит, в игре при выборе опций всегда пишется что у той-то страны произойдёт необходимый эвент, через консоль все эвенты вызываются, но в игре не происходят (даже если запустить эвент через консоль, следующий, вызываемый через opinion = { всё равно никак не запускается!). Пытался подкрутить шанс ИИ на тот или иной исход, исключить большую часть вариантов - финал известен. Буду очень благодарен, если кто-нибудь ткнёт меня в какое-нибудь очевидное упущение. Ах да, первый эвент вызывается через on_action, я не стал кидать код оттуда, чтоб не раздувать и так большое сообщение, да и проблема в самих эвентах. Пространства имён заданы, всё в правильных папках по очевидным путям.


1 час назад, Lucifreir сказал:

Я уже голову сломал, пытаясь понять в чём дело.

Сложна, утро пятницы, а вы тут мозги людям уже ломаете. 

1 час назад, Lucifreir сказал:

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

Но вообще я встречал такое, что именно новостные ивенты из on_action не срабатывают, хотя всё остальное рядом работает. Возможно, это связано с текущей областью действия (scope), может не хочет вызываться в области конкретного тега.

1 час назад, Lucifreir сказал:

(даже если запустить эвент через консоль, следующий, вызываемый через opinion = { всё равно никак не запускается!)

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


Mister Daunito-Prostofilj

В каких файлах локализации расположены описания лидеров стран и лидеров партий?


48 минут назад, Mister Daunito-Prostofilj сказал:

В каких файлах локализации расположены описания лидеров стран и лидеров партий?

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


Pavel_ogrizko

А как делаются скриптовые миры? Когда при определенном значении победных очков заключается мир. 


Дорогие любители контурных карт и модов, у меня созрел вопрос: как добавить озвучку дивизий для определённой страны? У меня просто страна белогвардейцев из РИ и я бы хотел сделать для них озвучку советских солдат.


10 часов назад, Pavel_ogrizko сказал:

А как делаются скриптовые миры? Когда при определенном значении победных очков заключается мир. 

Можно же посмотреть, как это делается в игре, наиболее очевидный пример в Зимней войне:

Спойлер

#Surrender when Soviet has taken too much land
country_event = {
    id = finland.7
    title = finland.7.t
    desc = finland.7.d
    picture = GFX_report_event_soviet_tanks_snow
    
    trigger = {
        tag = FIN
        has_war_with = SOV
        surrender_progress > 0.25
        has_civil_war = no
        is_in_faction = no
    }

    mean_time_to_happen = { days = 20 }

    fire_only_once = yes

    #Surrender and offer territory
    option = {
        name = finland.7.a
        ai_chance = {
            base = 8
        }
        SOV = {
            country_event = { id = finland.8 }
        }
        custom_effect_tooltip = finland.7.a_tt
        effect_tooltip = {
            SOV = { 
                white_peace = {
                    tag = FIN 
                    message = FIN_agree_peace 
                } 
            }
            transfer_state = 146
            transfer_state = 147
            if = {
                limit = {
                    722 = {
                        is_claimed_by = SOV
                    }
                }
                SOV = { remove_state_claim = 722 }
            }
        }
    }

    #Never give up!
    option = {
        name = finland.7.b
        ai_chance = {
            base = 2
            modifier = {
                factor = 0
                is_historical_focus_on = yes
            }
        }
    }
}

 


Flamme

Доброго дня.

Сумел, наконец, решить проблему с некорректным отображением двигателей у заготовленных проектов (оказывается достаточно было поставить "empty" в модуле двигателя в "default_modules" в файлах соответствующих корпусов и игра спокойно подгрузила всё как надо). Теперь возник такой вопрос: решил я добавить в двигатели ещё один модуль - нулевого уровня (для отображения кораблей с устаревшими движками) - всё поставил, всё поменял. Зашёл в игру, заглянул в китайские крейсера и увидел, что вместо обычной иконки с изображением двигателя там повисла иконка со знаком вопроса. При этом сам модуль подгрузился верно, локализация тоже встала без помех.

Спойлер

    cruiser_ship_engine_0 = {
        category = cruiser_ship_engine
        sfx = sfx_ui_sd_module_engine

        
        add_stats = {
            naval_speed = 3
            fuel_consumption = 6
            build_cost_ic = 200
        }
        
        multiply_stats = {
            naval_speed = 0.1
            reliability = -0.1
        }
        
        can_convert_from = {
            module_category = cruiser_ship_engine
            convert_cost_ic = 2500
        }
    }

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

Спойлер

    ship_deck_space = {
        category = ship_deck_space
        gfx = ship_deck_space

        add_stats = {
            carrier_size = 15
            build_cost_ic = 1200
        }
        manpower = 300 #outside the add_stats section for code reasons
        multiply_stats = {
            naval_speed = -0.03
        }
        build_cost_resources = {
            steel = 1
        }
        dismantle_cost_ic = 700
    }

В общем. Может кто-нибудь сможет подсказать что не так?


Flamme

И ещё вопрос: может кто-то видел или знает, можно ли как-то закрепить за авиакрылом определённую модель самолётов, чтобы она не перевооружалась на более новые?

_________
добавлено 2 минуты спустя

Или, как вариант, привязать технологическую модель самолётов к технологической модели авианосцев, чтобы, например, авианосцы созданные на базе определённого корпуса не могли брать на борт самолёты выше определённого технологического уровня?


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

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

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

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

  Only 75 emoji are allowed.

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

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

×   Вы не можете вставлять картинки напрямую. Загрузите или вставьте их через URL.

  • Ответы 2,874
  • Создано
  • Последний ответ
  • Просмотры 549821

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

  • GBV

    576

  • sanstepon5

    143

  • Zelchenko

    39

  • Lazarka

    34

  • leopold2014

    31

  • Flamme

    29

  • Simplicissimus

    28

  • Michael Cudlitz

    25

  • Ostpreussen

    24

  • Spas12RUE

    23

  • Lucifreir

    22

  • Москит

    21

  • urittney

    21

  • Кусяша

    20

  • evgenyevx

    20

  • hasdf

    19

  • Fantom_Nightcore

    19

  • El Búho

    18

  • Август Рихтер

    18

  • mr.Kaf

    18

  • GeneralM

    17

  • Оружейник

    16

  • ss warrior

    16

  • gmanP

    15

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

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

Дон Андрон

Переписываете имя лидеров из нужного файла на русский язык. Если ещё заморочиться, то в строке DESC можно кратко расписать биографию/цитаты/факты о лидере.

GBV

Когда неизвестны теги марионеток или хозяев, на выручку может прийти махинации с областью значений OVERLORD, например такую конструкцию можно придумать:   Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

GBV

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

evgenyevx

Находишь в файле фокусов СССР (Hearts of Iron IV/common/national_focus/soviet.txt) фокус на "Пропаганду коллективизма" (по умолчанию 603 строка) и "Положительный героизм" (681 строка), и удаляешь стро

zx3

Кто-нибудь знает где находится файл, который отвечает за то какие бонусы получает страна при усилении? Хочу убрать оттуда бонусы для войск

kaizerreih

Помогите пожалуйста! Хочу сделать чтоб после акупации страны вылазил эвент на переиминование провинции и стейда.

kaizerreih

Если я правильно понял то вот bookmarks = {     bookmark = {         name = "New world"                       -название сценария         desc = "BLITZKRIEG_DESC"         date = 1948.8.14.

ti1xoh9

фотки для ивентов - .dds файлы (397*153, возможно, без альфа-канала) кладутся в папку gfx/event_pictures или gfx/events и прописываются в коде ивента.  личные иконки (82*82 пикселя, прозрачный фо

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

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

    • alexis
    • Blackfyre Kreis
×
×
  • Создать...