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

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

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

Alterus
i

Данная тема предназначена для вопросов по игровым модификациям, правке файлов и сохранений.

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

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

Можно ли как-то сделать чтобы ивенты которые меня бесят не появлялись ? 

 

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

Alorian

@TsarHerobrin Узнать имя события, которое не хочется получать, найти его в файлах игры и закомментировать (поставить такой # знак перед каждой строкой кода ивента). Имя события можно либо через debug_mode узнать, когда появится, либо по поиску описания события, через локализацию.

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

TsarHerobrin

@Alorian ну как узнать я знаю ,а вот про в каждой строчке хотелось бы по подробнее ,мне что надо найти этот ивент в каждом файле игры скопировать поместить в файлик и перед каждым поставить # ? и ещё этот способ делает так что у меня и ботов ивента не будет ? 

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

Alorian
В 03.05.2024 в 06:34, TsarHerobrin сказал:

мне что надо найти этот ивент в каждом файле игры скопировать поместить в файлик и перед каждым поставить # ? и ещё этот способ делает так что у меня и ботов ивента не будет ?

Либо запускающий триггер закомментить, либо сам код ивента. Но! файлы должны быть цельные. К сожалению для ивентов не работает система, когда часть когда из файла вырезаешь и модифицируешь. Только полный файл и в нём менять. Имя должно быть ванильное.

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

TsarHerobrin

@Alorian  ну допустим мне надо чтобы child_personality.0001 не появлялся мне надо скопировать весь код в котором он учавствует как то что ниже и поставить перед ним # как я поставил ниже ?

Спойлер
child_personality_gain = {
	trigger = {
		is_adult = no
		number_of_personality_traits < personality_trait_limit
	}
	random_events = {
		100 = #child_personality.0001 # craven, lazy or arbitrary
		100 = child_personality.0002 # arrogant, compassionate or callous
		100 = child_personality.0003 # deceitful, honest or humble
		100 = child_personality.0004 # generous, diligent or patient
		100 = child_personality.0005 # wrathful, forgiving or fickle
		300 = child_personality.0006 # vengeful, chaste or stubborn - Weighted x3 because it can only be triggered as the 3rd and final personality event
		100 = child_personality.0007 # just, cynical or temperate
		300 = child_personality.0008 # greedy, gregarious or lustful - Weighted x3 because it can only be triggered as the 3rd and final personality event
		100 = child_personality.0009 # brave, calm or zealous
		100 = child_personality.0010 # ambitious, sadistic or paranoid
		100 = child_personality.0011 # content, fickle or trusting
		100 = child_personality.0012 # impatient, shy or gluttonous
		
		100 = child_personality.7000 # diligent, gregarious, temperate
		100 = child_personality.7010 # zealous, ambitious, sadistic
		100 = child_personality.7020 # shy, paranoid, craven
		100 = child_personality.7030 # lazy, gluttonous, compassionate
		600 = child_personality.7040 # lustful, chaste - Weighted x6 because it can only be triggered as the 3rd and final personality event
		100 = child_personality.7050 # just, greedy, callous
		100 = child_personality.7060 # humble, cynical, content
		100 = child_personality.7070 # vengeful, deceitful, calm
		100 = child_personality.7080 # generous, fickle, arrogant
		100 = child_personality.7090 # forgiving, trusting, patient
		100 = child_personality.7100 # honest, arbitrary, impatient
		100 = child_personality.7200 # brave, stubborn, wrathful
		10 = child_personality.7300 # eccentric, compassionate, callous
		10 = child_personality.7400 # eccentric, fickle, stubborn

 

 

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

Alorian

@TsarHerobrin Всё что после # - игрой не учитывается.

#100 = child_personality.0001 # craven, lazy or arbitrary
Ссылка на комментарий

Alorian

@TsarHerobrin P.S. И да, дополню важное - Enter игра уже воспринимает, как новую строку и если нету символа # то уже будет код считывать.

То есть после знака всё не учитывается, пока не перенёс код на новую строку, через Enter.

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

TsarHerobrin

@Alorian 

Спойлер
		#100 = child_personality.0001 # craven, lazy or arbitrary
		#100 = child_personality.0002 # arrogant, compassionate or callous
		#100 = child_personality.0005 # wrathful, forgiving or fickle
		#300 = child_personality.0006 # vengeful, chaste or stubborn - Weighted x3 because it can only be triggered as the 3rd and final personality event
		#300 = child_personality.0008 # greedy, gregarious or lustful - Weighted x3 because it can only be triggered as the 3rd and final personality event
		#100 = child_personality.0010 # ambitious, sadistic or paranoid
		#100 = child_personality.0012 # impatient, shy or gluttonous

		#100 = child_personality.7020 # shy, paranoid, craven
		#100 = child_personality.7030 # lazy, gluttonous, compassionate
		#600 = child_personality.7040 # lustful, chaste - Weighted x6 because it can only be triggered as the 3rd and final personality event
		#100 = child_personality.7050 # just, greedy, callous
		#100 = child_personality.7080 # generous, fickle, arrogant
		#100 = child_personality.7090 # forgiving, trusting, patient
		

 

вот так правильно ?

 

 

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

Grakedrik

Добрый день!

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

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

Alorian

@Grakedrik Через секцию on_action если писать, то можно подобное сделать. Используйте команду on_game_start, а далее уже в эффектах триггеры срабатывания.

 

Смотрите файлы-примеры \common\on_action\game_start.txt и \events\bookmark_events.txt, для той же Дауры, там секция кода с обозначением bookmark.0101 в событиях в папке Event:

Спойлер
###	Daurama takes Bawo under her wing.
bookmark.0101 = {
	type = character_event
	title = bookmark.0101.t
	desc = {
		desc = bookmark.0101.desc_intro
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:bayajidda = { is_alive = yes }
				}
				desc = bookmark.0101.desc_living
			}
			desc = bookmark.0101.desc_dead
		}
	}
	theme = crown
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:bayajidda
	}
	lower_center_portrait = {
		character = scope:bewo
	}

	trigger = {
		is_ai = no
		character:251181 = { is_alive = yes }
	}

	immediate = {
		play_music_cue = "mx_cue_succession"
		character:251180 = { save_scope_as = bayajidda }
		character:251181 = { save_scope_as = bewo }
		character:251252 = { save_scope_as = shawata }
		title:k_hausaland = { save_scope_as = hausaland}
	}

	# Remember your heritage, my child.
	option = {
		name = bookmark.0101.a

		#Move Bewo to Daurama's house.
		custom_tooltip = bookmark.0101.a.tt
		character:251181 = { set_house = root.house }
		add_courtier = character:251181 #Move him to your court

		#Bayajidda is, understandably, a little hurt by all this.
		character:251180 = {
			add_opinion = {
				modifier = hurt_opinion
				target = root
				opinion = -20
			}
		}

		ai_chance = {
			base = 0	#The AI should never get this event, but if they do, shouldn't opt in.
		}
	}
	
	# He is my blood, whatever his name.
	option = {
		name = bookmark.0101.b

		character:251180 = {
			add_opinion = {
				modifier = pleased_opinion
				target = root
				opinion = 40
			}
		}
		custom_tooltip = bookmark.0101.b.tt

		ai_chance = {
			base = 100	#AI doesn't get this event, but should always pick no.
		}
	}

	# The Magajiya will continue to rule!
	option = {
		name = bookmark.0101.c

		add_realm_law_skip_effects = female_preference_law
		scope:bewo = { 
			set_house = root.house
			add_trait = disinherited
		}
		scope:shawata = {	
			if = {
				limit = {
					is_alive = yes
					OR = {
						matrilinear_marriage = yes
						is_married = no
					}
				}
				custom_tooltip = bookmark.0101.c.tt
			}
			else = {
				custom_tooltip = bookmark.0101.b.tt
			}
		}
		

		ai_chance = {
			base = 0	#The AI should never get this event, but if they do, shouldn't opt in.
		}
	}
}

 

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

 

Далее в папке on_action создаём txt файл, обзываем попроще, в него примерно такое пишем:

Спойлер
on_game_start = {
	effect = {
		### 867 - THE GREAT ADVENTURERS ###
		character:251187 = {
			if = {
				limit = {
					is_alive = yes
					is_landed = yes
					AND = {
						character:251180 = { is_ai = yes }
						character:251181 = {
							is_ai = yes
							is_alive = yes
						}
					}
				}
				trigger_event = {
					id = bookmark.0101
					days = { 21 35 }
				}
			}
		}
	}
}

 

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

 

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

Grakedrik

 

@Alorian  Хм. А что написать вместо character:251187character:root или character:scoped_ruler? Чтобы триггерился мой созданный персонаж?

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

Grakedrik

@Alorian Хм. Что-то у меня не выходит. Можете посмотреть в чём дело?

Спойлер

namespace = wikka_main_story_events

wikka_main_story_events.001 = {
    type = character_event
    title = wikka_main_story_events.001.t
    desc = wikka_main_story_events.001.desc
    theme = witchcraft
    content_source = wikka

    center_portrait = {
        character = scope:scoped_ruler
        animation = personality_zealous
    }
    trigger = {
        is_ai = no
        root.faith = faith:wikka
    }
    immediate = {
        play_music_cue = "mx_cue_succession"
        save_scope_as = scoped_ruler
    }
    option = {
        name = wikka_main_story_events.001.a

        add_realm_law_skip_effects = female_only_law
        add_realm_law_skip_effects = single_heir_succession_law
        }
        custom_tooltip = wikka_main_story_events.001.a.tt

        ai_chance = {
            base = 0
        }
    }
    option = {
        name = wikka_main_story_events.001.b
        }
        custom_tooltip = wikka_main_story_events.001.b.tt

        ai_chance = {
            base = 0
        }
    }
}

Спойлер

on_game_start = {
    events = {
        character:scope:scoped_ruler = {
            if = {
            religion:wikka_religion
                        }
                    }
                trigger_event = {
                    id = wikka_main_story_events.001
                    days = { 5 10 }
                }
            }
        }
    }
}

 

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

Alorian

@Grakedrik В вашем on_game_start миллиард слишком много лишних скобок. Правила скриптинга нужно выполнять - на каждую открывающую скобку, нужно делать ОДНУ закрывающую. Всё лишнее будет приводить к ошибкам. Далее - обращение к events = { вам не нужно. Зачем ставить то, что по итогу не выполняется? В оригинальном файле, там свои события выполняются, в которых уже собственные проверки. То есть если мы ставим Event, то это сработает на весь мир при старте игры, но уже в самих событиях произойдёт обработка проверки, нужно ли запускать. Вам же иное нужно, значит эту область действий убираем. 

В общем, если у вас персонаж через меню-создания сделан, то

Спойлер
on_game_start = {
	effect = {
		if = {
			limit = {
				is_from_ruler_designer = yes
			}
			trigger_event = {
				id = wikka_main_story_events.001
				days = { 5 10 }
			}
		}
	}
}

 

 

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

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

Grakedrik

@Alorian к сожалению, не получается. А для варианта через веру что нужно сделать? Извините что задалбываю.

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

Alorian

@Grakedrik Ну во-первых, у вас в событии wikka_main_story_events.001 также лишние скобки - если вы их не убрали, то ивент не запустится. Я проверял изначально только код в on_action области, потому что он главнее, но намёк сделал, что стоит проверить всё.

Вообще в скриптинге, если не работает - сначала проверяется ЦЕЛОСТНОСТЬ кода, его правильность. Потом уже, когда убедились, что везде нету синтаксических и орфографических ошибок, начинаем проверять ФУНКЦИОНАЛЬНОСТЬ. Области применения и прочие вещи. Ибо если функциональность кода верная, работать всё равно не будет, если где ошибка закралась в скобке или названии команды.

В on_game_start области, я вот так с наскоку не нашёл вариант, чтобы на созданного в редакторе применить срабатывание. На готовых - получилось легко, а вот так... Жаль, что не понятна область применения is_from_ruler_designer = yes. В той части кода, где это используется, идет добавление в секции на ачивку. Возможно где-то ещё подобный вариант команды не получится использовать. Хз. В любом случае, если тут важен функционал, а не красивость, то можно через Решения сделать.

Спойлер
wikka_decision = {
	picture = "gfx/interface/illustrations/decisions/decision_destiny_goal.dds"
	major = yes

	ai_check_interval = 120

	desc = ТУТ_ССЫЛКА_НА_ОПИСАНИЕ_desc

	is_shown = {
		faith = faith:wikka
		NOT = {
			is_target_in_global_variable_list = {
				name = unavailable_unique_decisions
				target = flag:reclaim_britannia_decision
			}
		}
	}

	is_valid = {
		
	}

	is_valid_showing_failures_only = {
		
	}

	effect = {
		add_to_global_variable_list = {
			name = unavailable_unique_decisions
			target = flag:reclaim_britannia_decision
		}
		trigger_event = wikka_main_story_events.001
	}
	
	ai_potential = {
		always = no
	}

	ai_will_do = {
		base = 0
	}
}

 

В is_shown на показ решения, если вера wikki, а чтобы одноразово, добавляем проверку глобального flag в игру. Ниже в решении, при срабатывании этот же флаг и вешаем. То есть однократное использование будет, а дальше уже проверка наличия флага не позволит маячить этому решению в игре.

Чтобы ИИ не использовал решение, ставим в ai_potential = { always = no } и ai_will_do = { base = 0 }. Два железобетонных модификатора, чтобы отвадить ИИ юзать и видеть решение. С этими проверками для ИИ можно даже в коде проверку на веру не делать... Но тут уж вкусовщина. 

 

Спойлер
namespace = wikka_main_story_events

wikka_main_story_events.001 = {
    type = character_event
    title = wikka_main_story_events.001.t
    desc = wikka_main_story_events.001.desc
    theme = witchcraft
    content_source = wikka

    center_portrait = {
        character = scope:scoped_ruler
        animation = personality_zealous
    }
    trigger = {
        is_ai = no
        faith = faith:wikka
    }
    immediate = {
        play_music_cue = "mx_cue_succession"
        save_scope_as = scoped_ruler
    }
    option = {
        name = wikka_main_story_events.001.a

        add_realm_law_skip_effects = female_only_law
        add_realm_law_skip_effects = single_heir_succession_law
        custom_tooltip = wikka_main_story_events.001.a.tt

        ai_chance = {
            base = 0
        }
    }
    option = {
        name = wikka_main_story_events.001.b
        custom_tooltip = wikka_main_story_events.001.b.tt

        ai_chance = {
            base = 0
        }
    }
}

 

Это уже само тело ивента, в нём можно в принципе делать проверку на веру, а можно не делать. В данном случае всё равно, ибо в коде файла решения уже всё прописано. 

 

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

Grakedrik

@Alorian Спасибо за помощь! Ивент у меня так и не получился. Но решение заработало сразу. Однако кое-что работает всё равно не корректно. У меня отсутствует локализация. Создал два файла wikka_decision_I_russian.yml (положил в директорию localization>russian) и wikka_main_story_events_I_russian.yml (положил в директорию localization>russian>event_localization).

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

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

У меня отсутствует локализация.

Ключ локализации в начале не забыли l_russian: добавить? И кодировка должна быть UTF-8 with BOM

WsygcVv.png

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

TsarHerobrin

мне над сделать решение , чтобы при нажатии у одного из придворных появлялось вдохновение на путешествие или чтобы генерировался персонаж с вдохновение на путешествие что мне для этого надо сделать ? 

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

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

  • Ответы 1,081
  • Создано
  • Последний ответ
  • Просмотры 148197

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

  • Alorian

    146

  • Кодекс

    77

  • Labes

    57

  • Xowk

    21

  • Stics

    19

  • Aurelius36

    18

  • LuciferMorningstar

    16

  • himitsu7

    16

  • Desidur

    14

  • Shaha

    14

  • TsarHerobrin

    14

  • Cromwell7

    13

  • korolevskiypingvin

    13

  • ustas_papa

    13

  • Лагос

    12

  • svetlovanton

    12

  • azgudda

    11

  • Basileus

    11

  • Grakedrik

    11

  • ROOT123

    11

  • Mayonez_kun

    10

  • Филипп1999

    10

  • archi900

    10

  • Cobalt XIV

    10

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

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

Дoбро

Как скачать моды из Steam? https://steamworkshopdownloader.io

Alterus

i Данная тема предназначена для вопросов по игровым модификациям, правке файлов и сохранений.

srx47

без лаунчера: 1) кидать моды в *\Documents\Paradox Interactive\Crusader Kings III\mod   2) содать текстовый файл *\Documents\Paradox Interactive\Crusader Kings III\dlc_load.js

Labes

Здравствуйте. Вы немного не туда воюете =) Вам сначала нужно добавить русскую культуру в список культур, для которых доступна инновация. Инновации прописаны в нескольких файлах. Например иннова

Labes

"На то воля Божья"

Кодекс

В запущенной игре, прямо можно с стартового меню. Слева внизу settings (иконка выглядит как свиток с галочкой), далее пункт game, подпункт language

Labes

@Mr.Weis Здравствуйте. Нужды создавать отдельную тему не было, вопросы по редактированию файлов сохранения можно задать -> ТУТ.   Если я все правильно понял, Вы посредством правки файла с

Keksik

@Labes @Mr.Weis раз ответ дан, то перенёс тему сюда. 

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

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


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

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