Вопросы по моддингу Crusader Kings 2 - Страница 212 - Моды и моддинг - Strategium.ru Перейти к содержимому

Вопросы по моддингу Crusader Kings 2

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

MaslovRG
i
В этой теме задаем вопросы по моддингу Crusader Kings 2.
Изменено пользователем Kassatka
Ссылка на комментарий

Закреплённые сообщения
gigant275
25 минут назад, Labes сказал:

 

Можете, пожалуйста, как пример привести содержимое файла, в котором у Вас первый ивент видит, а второй - нет?

Там ещё проблема в том ,что первый эвент не работает в другом файле с другим именем, но в этом работает 
 

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

 

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

Labes
2 часа назад, gigant275 сказал:

10 = {death}

 

Ну вот, что и требовалось доказать. Зря Вы наговариваете на namespace. =D

Замените везде death на death = yes

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

gigant275
9 часов назад, Labes сказал:

 

Ну вот, что и требовалось доказать. Зря Вы наговариваете на namespace. =D

Замените везде death на death = yes

Хорошо, но я так и не понял почему первый эвент в другом файле не работает, но если изменю, то заработает? Сейчас попробую


Всё заработало ,благодарю за помощь. После вот такого эвента с  death остальные перестают работать, у меня и в прошлый раз так было, но тогда был всего 1 эвент с такой ошибкой, поэтому я перенёс в другой файл и всё

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

gigant275

В файлах elder kings увидел всякие такие штуки

is_spellcaster = yes
is_vampire = yes
is_lycan = yes

is_mage = yes

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

 

 

Кажется  я понял, но это достаточно запутанно 
is_spellcaster = {
    OR = {
        is_mage = yes
        is_bard = yes
        is_battlemage = yes
        is_crusader = yes
        is_healer = yes
        is_knight = yes
        is_monk_education = yes
        is_nightblade = yes
        is_priest = yes
        is_savant = yes
        is_spellsword = yes
        is_sorcerer = yes
        is_witchhunter = yes
    }
}     Другие is ставиться где-то в другом месте 

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

Labes
1 час назад, gigant275 сказал:

В файлах elder kings увидел всякие такие штуки

is_spellcaster = yes
is_vampire = yes
is_lycan = yes

is_mage = yes

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

 

Снова здравствуйте. Это scripted trigger (paradoxwikis -> Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ). Можете их найти в: ...\common\scripted_triggers\*.txt

Там и примеры для проверок трейтов есть:

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

 

После приведённый выше фрагмента кода в проверках можно заменить на has_virtue_trigger = yes, так что да, это очень удобно.

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

gigant275

Добавил несколько новых рисунков 28 на 28 в модификаторы modifier_icons.dds (итоговая ширина 3976) 
Прописал всё в gfx:

spriteType = {
        name = "GFX_modifier_icons"
        texturefile = "gfx\\interface\\modifier_icons.dds"
        noOfFrames = 142
        loadType = "INGAME"
    }

приписываю к модификатору icon = 140 , ничего не работает, вместо моего появляется значок-заглушка для не существующих. Как исправить ?

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

gigant275

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

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

gigant275

Ещё один вопрос, как уничтожить артефакт ,команда destroy_artifact = не работает, как я понимаю из-за того ,что артефакт indestructible = yes не уничтожимый, но если его сделать уничтожимым будет печально ,т.к артефакт очень дорогой и может сломаться 
Предыдущий вопрос решил ,хоть и не совсем приятно) 

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

Labes
9 часов назад, gigant275 сказал:

Ещё один вопрос, как уничтожить артефакт, команда destroy_artifact = не работает, как я понимаю из-за того, что артефакт indestructible = yes не уничтожимый, но если его сделать уничтожимым будет печально, т.к артефакт очень дорогой и может сломаться 

 

Здравствуйте. Правильно ли я понимаю, что Вы хотите уничтожить indestructible артефакт?

Если честно, насколько я знаю, нормального способа от него избавиться нет. Он даже защищен от потери при наследовании от придворного.

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

Тем не менее упомянуть про него стоит, может кто-то выскажется на эту тему. Словом, перейду к сути:
В игре всегда должно существовать две безземельные империи e_rebels и e_pirates. Найти их, или их правителей, Вы не сможете.

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

Т.е. алгоритм простой: генерируете случайного персонажа, передаете ему артефакт, отправляете его ко двору одного из этих ребят, убиваете его.

Как итог - артефакт будет у "невидимого" персонажа, а значит его (артефакт) видно тоже не будет. Т.е. выглядеть это будет примерно так:

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

 

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

Но другого способа в голову не приходит. Хотя, может я просто перегрелся :D

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

gigant275

Попробую.

появились ещё вопросы:
Персонажи имеющие черту с бессмертием почему-то стареют, т.е портрет и модификатор на боевые навыки immortal = yes 

Ещё интересно как скрыть черту ,именно чтобы она не была пустым местом в окошке с чертами , а полностью скрыть

И подскажите как нормально реализовать долгоживущих персонажей, посмотрел в elder king там наделяют чертой с бессмертием ,а после есть эвент на убийство этих персонажей ,когда они достигают определённого возраста. Но у меня такое не работает, возможно из-за того ,что immortal = yes работает не совсем корректно , к примеру, недавно персонаж умер от какой-то черты отнимающей здоровье  

 

Проверил файлы игры, вроде проблема с бессмертием решена, но заметил ещё одну "скрытую" черту scarred_type_номер она тоже занимает место в окне с трэйтами 

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

gigant275
15 часов назад, Labes сказал:

 

Здравствуйте. Правильно ли я понимаю, что Вы хотите уничтожить indestructible артефакт?

Если честно, насколько я знаю, нормального способа от него избавиться нет. Он даже защищен от потери при наследовании от придворного.

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

Тем не менее упомянуть про него стоит, может кто-то выскажется на эту тему. Словом, перейду к сути:
В игре всегда должно существовать две безземельные империи e_rebels и e_pirates. Найти их, или их правителей, Вы не сможете.

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

Т.е. алгоритм простой: генерируете случайного персонажа, передаете ему артефакт, отправляете его ко двору одного из этих ребят, убиваете его.

Как итог - артефакт будет у "невидимого" персонажа, а значит его (артефакт) видно тоже не будет. Т.е. выглядеть это будет примерно так:

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

 

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

Но другого способа в голову не приходит. Хотя, может я просто перегрелся :D

А куда в коде вписывать нужный артефакт ?

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

Labes
53 минуты назад, gigant275 сказал:

А куда в коде вписывать нужный артефакт ?

 

Снова здравствуйте.

Для примера я просто использовал random_artifact, который мне позволял сделать save_event_target_as для случайного артефакта:

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

 

Вам же нужно определить нужный артефакт проверками, и использовать save_event_target_as уже для него.  Например так:

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

 

Также стоит учесть, что подобных артефактов у персонажа может быть несколько.

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

gigant275
2 часа назад, Labes сказал:

 

Снова здравствуйте.

Для примера я просто использовал random_artifact, который мне позволял сделать save_event_target_as для случайного артефакта:

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

 

Вам же нужно определить нужный артефакт проверками, и использовать save_event_target_as уже для него.  Например так:

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

 

Также стоит учесть, что подобных артефактов у персонажа может быть несколько.

 Артефакт пропал , но потом он почему-то вернулся обратно  (спустя несколько дней). Я тестировал не на ванильной карте ,а с модом на другую ,может здесь нет такого титула ?  e_pirates , просто созданный придворный остаётся при дворе ) Сейчас попробую в игре. В ванильной игре получилось. Возможно тогда поставить на артефакт флаг и поставить в условиях активирования артефакта ,чтобы  этого флага не было, а можно ли поставить флаг на конкретный артефакт ? Потом ещё поставить custom_tooltip ,типо артефакт повреждён, потом можно будет сделать решение на починку ,чтобы она была чуть дешевле ,чем создавать артефакт заново 

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

Labes
45 минут назад, gigant275 сказал:

Артефакт пропал , но потом он почему-то вернулся обратно  (спустя несколько дней). Я тестировал не на ванильной карте ,а с модом на другую ,может здесь нет такого титула ?  e_pirates , просто созданный придворный остаётся при дворе )

 

Насколько мне известно, игра требует наличия e_rebels и e_pirates. В ченджлоге к 3.0 есть упоминание, что Парадоксы что-то меняли с их проверками в решениях и т.д., но не думаю, что они теперь не требуются. Более того, в обоих глобальных модификациях которые у меня под рукой (AGoT и Geheimnisnacht) они представлены.

Вы можете проверить факт их наличия в файлах: ...\common\landed_titles\*.txt

 

52 минуты назад, gigant275 сказал:

Возможно тогда поставить на артефакт флаг и поставить в условиях активирования артефакта ,чтобы этого флага не было, а можно ли поставить флаг на конкретный артефакт? Потом ещё поставить custom_tooltip, типа артефакт повреждён, потом можно будет сделать решение на починку, чтобы она была чуть дешевле, чем создавать артефакт заново 

 

Да, конечно, Вы можете вешать флаги на любой артефакт:

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

 

И решение на ремонт тоже можно сделать без проблем, более того, в ванили есть подобный ивент при наследовании, когда Вам предлагают отремонтировать старенький артефакт или же избавиться от него.

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

gigant275
1 час назад, Labes сказал:

 

Насколько мне известно, игра требует наличия e_rebels и e_pirates. В ченджлоге к 3.0 есть упоминание, что Парадоксы что-то меняли с их проверками в решениях и т.д., но не думаю, что они теперь не требуются. Более того, в обоих глобальных модификациях которые у меня под рукой (AGoT и Geheimnisnacht) они представлены.

Вы можете проверить факт их наличия в файлах: ...\common\landed_titles\*.txt

 

 

Да, конечно, Вы можете вешать флаги на любой артефакт:

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

 

И решение на ремонт тоже можно сделать без проблем, более того, в ванили есть подобный ивент при наследовании, когда Вам предлагают отремонтировать старенький артефакт или же избавиться от него.

Посмотрел , этих титулов действительно нет.
Поставил на артефакт флаг, посмотрел (в игре) он действительно стоит ,но условие NOT = {has_artifact_flag = a_powerful_artifact_martial_01_destroy} всегда горит зелёным , если этот флаг есть, если его нет. Написал вроде всё правильно, перекопировал название , всё-равно зелёным 

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

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

Labes
15 часов назад, gigant275 сказал:

Посмотрел , этих титулов действительно нет.

 

А Вы разве не Elder Kings модифицируете? Я специально проверил, там e_rebels и e_pirates присутствуют.

 

15 часов назад, gigant275 сказал:

Поставил на артефакт флаг, посмотрел (в игре) он действительно стоит, но условие NOT = {has_artifact_flag = a_powerful_artifact_martial_01_destroy} всегда горит зелёным, если этот флаг есть, если его нет. Написал вроде всё правильно, перекопировал название, всё-равно зелёным 

 

Мне сейчас не совсем сподручно что-то проверять, но пока можете посмотреть в сторону persistent_event_target. Он может быть Вам полезен.

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

gigant275
13 часа назад, Labes сказал:

 

А Вы разве не Elder Kings модифицируете? Я специально проверил, там e_rebels и e_pirates присутствуют.

 

 

Мне сейчас не совсем сподручно что-то проверять, но пока можете посмотреть в сторону persistent_event_target. Он может Вам помочь.

Нет , я просто часто заглядываю в файлы этого мода. 
persistent_event_target , посмотрел ,попробовал , не понял. 

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

Labes
36 минут назад, gigant275 сказал:

persistent_event_target посмотрел, попробовал, не понял. 

 

Благодаря save_persistent_event_target Вы можете сохранять "цель" в какой-то scope на продолжительной основе.

К примеру, можно сохранить персонажа (ну или артефакт ;)) в scope титула:

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

 

Потом, в нужном месте, предварительно "достав" из выбранного scope, его можно использовать:

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

 

Это даже возможно использовать в локализации:

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

 

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

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

gigant275
1 минуту назад, Labes сказал:

 

Благодаря save_persistent_event_target Вы можете сохранять "цель" в какой-то scope на продолжительной основе.

К примеру, можно сохранить персонажа (ну или артефакт ;)) в scope титула:

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

 

Потом, в нужном месте, его можно использовать, предварительно "достав" из выбранного scope:

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

 

Это даже возможно использовать в локализации:

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

 

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

Всего для 3 артефактов, а как именно это потом связать с артефактом.  active = { }  - что здесь написать ?  Т.е я сохраняю артефакт (вместо e_yi_ti тип артефакта?) , после в active = { } я должен достать persistent_event_target:yi_ti_emperor_god_name , и написать что такого не должно быть ,т.е NOT = { persistent_event_target:yi_ti_emperor_god_name } ?

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

Labes

@gigant275  Давайте для начала попробуем разобраться с вашими флагами.

Если артефакта всего три, попробую сделать на коленке пример. Прошу учесть, что он не претендует на лучшее решение.

Смотрите, у Вас в 00_on_actions.txt должен быть on_artifact_inheritance, который отрабатывает при наследовании артефактов.

В ванили, например, из него вызывается ивент MNM.5107, который отвечает за наследование ингредиентов.

 

Для проверки флага в блоке active артефакта должно быть что-то наподобие:

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

 

Где artifact_not_rusty - ключ локализации. Т.е.:

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

 

Вам нужно определиться с критериями старения артефакта. Для примера, при наследовании артефакта я буду повышать стадию его старения:

Спойлер

character_event = {
    id = HFP.16111
    hide_window = yes
    is_triggered_only = yes

    trigger = {
            FROM = { has_artifact_flag = unique_artifact_1 }
            NOT = { has_global_flag = unique_artifact_1_rusty }
    }

    immediate = {
        FROM = {
            if = {
                limit = { has_artifact_flag = rusty_stage_2    }
                set_global_flag = unique_artifact_1_rusty # Artifact rusty for now
                clr_artifact_flag = rusty_stage_2
                break = yes
            }
            if = {
                limit = { has_artifact_flag = rusty_stage_1    }
                set_artifact_flag = rusty_stage_2
                clr_artifact_flag = rusty_stage_1
                break = yes
            }
            if = {
                limit = {
                    NOT = { has_artifact_flag = rusty_stage_1 }
                    NOT = { has_artifact_flag = rusty_stage_2 }
                    NOT = { has_global_flag = unique_artifact_1_rusty }
                }
                set_artifact_flag = rusty_stage_1
            }        
        }
    }
}

Обратите внимание, предполагается, что у артефакта есть флаг unique_artifact_1. Ивент можно расширить для двух оставшихся артефактов.

 

Нужно не забыть в on_artifact_inheritance в секцию events добавить этот новый ивент HFP.16111 (я выбрал случайный свободный ID).

Что происходит:

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

Соответственно, при "ремонте" артефакта достаточно просто сделать clr_global_flag = unique_artifact_1_rusty

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

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

  • Ответы 4,505
  • Создано
  • Последний ответ
  • Просмотры 452079

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

  • El Búho

    312

  • Aurelius36

    262

  • Kassatka

    178

  • Armun

    84

  • e479

    75

  • iamtofik

    75

  • Alana

    73

  • Alariko

    64

  • Антипа

    62

  • Yandere-chan

    54

  • gigant275

    47

  • dorimi

    38

  • Eclairius

    38

  • Zuzuzaza

    34

  • WvWvW

    32

  • Evk

    32

  • White Drake

    31

  • Labes

    31

  • mrPunk

    30

  • Pipiskus

    30

  • Breton

    29

  • KomninAdrian

    28

  • Redononr

    25

  • Kerovan

    24

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

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

Kassatka

Сделайте в своём моде новый текстовый файлик в common\dynasties\ и создавайте новые династии по образцу \common\dynasties\00_dynasties.txt Используйте такой диапазон номеров, который не используе

Carrachiolla

Я придумал все же. Тупо скопировал все файлы длц и извлек в одну папку. Потом взял папку interface и уже в ней заменил нотепадом во всех файлах все scale = 1.0f на scale = 0.5f. Правда там были не тол

Kassatka

Уточните вопрос, не до конца понял. Чтоб на начало игры большое количество титулов принадлежало одному персонажу, нужног редактировать историю всех этих титулов в папке \history\titles\ . Чтоб разреши

rugraver

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

El Búho

AND = {       religion_group = pagan       trait = sympathy_christendom }

El Búho

@Carrachiolla  defines.lua     ENFORCE_ONE_OF_EACH_HOLDING = 1  Так как файлы ванили лучше вообще никогда не трогать, то в любом моде создаёшь директорию common\defines, в ней файл lua

Foulyn

Вот, что пока получилось для эльфиек.  

Foulyn

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

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

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


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

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