Гайд по тому как создать свою форму правления. - Учебники по моддингу - Strategium.ru Перейти к содержимому

Гайд по тому как создать свою форму правления.

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

Предположим вы захотели создать СССР, но не удовлетворены выбором форм правления.

И я вам поведаю как легко и просто создать форму правления.

Шаг 1

Для начала список программ: Paint.net или Adobe Photoshop (для иконки) и Notepad++ (обычный блокнот ломает некоторые (вроде бы все, но не проверял) файлы).

Теперь идём по пути common\governments\ и тут два варианта, либо создать новый файл 01_governments.txt, либо добавить в старый нужные вещи.

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

Структура файлаНажмите здесь!
 
socialistic_republic = {
can_build_ruler_military_station = yes							# Крутая военная станция
#	has_heir = yes						 # наследник есть, только для монархий
#	use_regnal_names = yes		  # что-то ещё, есть только у монархий

potential = {														# Будет ли она появляться в выборе ФП
	hidden_trigger = { NOT = { is_country_type = fallen_empire } }	# скажите "Нет" павшим империям
}

ethics = {															# этики для принятия ФП
	NOT = { has_ethic = "ethic_fanatic_collectivist" }
	NOT = { has_ethic = "ethic_fanatic_individualist" }
	NOT = { has_ethic = "ethic_fanatic_spiritualist" }
	NOT = { has_ethic = "ethic_fanatic_pacifist" }
}

modifier = {														 # модификаторы
	edict_influence_cost = -0.25
	edict_length_mult = 0.25
	pop_happiness = 0.05
}

uses_mandates = yes										   # Мандаты у демократий
election_term_years = 8									   # Период выборов (если ноль поставить, то только после смерти правителя)
re_election_allowed = yes									 # Перевыборы
election_type = democratic								   # Демократический тип выборов (есть олигархический)
#	max_election_candidates = 4			  # а это для олигархов, демократам не трогать
#	election_candidates = {
#		modifier = {
#			add = 1000
#			OR = {
#				leader_class = ruler
#				AND = {
#					exists = pop_faction
#					pop_faction = {
#						is_scope_valid = yes
#						is_pop_faction_type = loyalist	   # фракция кандидатов
#					}
#				}
#			}
#		}
#		modifier = {
#			add = 100
#			OR = {
#				leader_class = admiral # возможно один из кандидатов будет вашим адмиралом, генералом или губернатором
#				leader_class = general
#				leader_class = governor
#			}
#		}
#	}

ruler_title = RT_SECRETARY								  # Титул правителя (как добавить новый будет далее), женского титула и наследника
#	ruler_title_female = RT_SECRETARY  
#	heir_title = RT_SECRETARY  
#	heir_title_female = RT_SECRETARY  

pickable_at_start = yes										 # доступна ли в редакторе
upgrade = adv_socialistic_republic						 # в какую апгрейдится 
}

[Cкрыть]

Надо дать право голоса людям, для этого идём в common\policies\.

И видим это.

Структура файла.Нажмите здесь!
 
voting_rights = {

potential = {
	is_country_type = default   # only normal Empires should have this policy
}

option = {
	name = "voting_not_allowed"

	potential = {
		OR = {
			has_government = "divine_mandate"
			has_government = "transcendent_empire"
			has_government = "despotic_hegemony"
			has_government = "ai_overlordship"
			has_government = "enlightened_monarchy"
			has_government = "irenic_monarchy"
			has_government = "despotic_empire"
			has_government = "star_empire"
			has_government = "socialistic_republic"	   ##################### Вот сюды добавить (если МОНАРХИЯ)
		}
	}

	policy_flags = {
		voting_not_allowed
	}

	on_enabled = {
		# custom_tooltip = "policy_allow_slavery_effect_disable"
	}

	pop_happiness = {
		base = 0
		modifier = {
			add = -0.05
			pop_has_ethic = "ethic_individualist"
		}
		modifier = {
			add = -0.1
			pop_has_ethic = "ethic_fanatic_individualist"
		}
	}
}

option = {
	name = "voting_allowed_elites_only"

	potential = {
		OR = {
			has_government = "military_dictatorship"
			has_government = "martial_empire"
			has_government = "military_junta"
			has_government = "ordered_stratocracy"
			has_government = "theocratic_oligarchy"
			has_government = "transcendent_oligarchy"
			has_government = "science_directorate"
			has_government = "illuminated_technocracy"
			has_government = "peaceful_bureaucracy"
			has_government = "irenic_protectorate"
			has_government = "plutocratic_oligarchy"
			has_government = "mega_corporation"
			has_government = "socialistic_republic"	   ##################### Вот сюды добавить (если ОЛИГАРХИЯ)
		}
	}

	policy_flags = {
		voting_allowed_elites_only
	}

	on_enabled = {
		# custom_tooltip = "policy_allow_slavery_effect_disable"
	}

	pop_happiness = {
		base = 0
		modifier = {
			add = -0.05
			pop_has_ethic = "ethic_fanatic_individualist"
		}
	}
}

option = {
	name = "voting_allowed_primary_only"

	policy_flags = {
		voting_allowed_primary_only
	}
	modifier = {}

	potential = {
		OR = {
			has_government = "military_republic"
			has_government = "martial_demarchy"
			has_government = "theocratic_republic"
			has_government = "transcendent_republic"
			has_government = "direct_democracy"
			has_government = "subconscious_consensus"
			has_government = "moral_democracy"
			has_government = "irenic_democracy"
			has_government = "indirect_democracy"
			has_government = "democratic_utopia"
			has_government = "socialistic_republic"	   ##################### Вот сюды смотрите, вот сюды надо эту строку добавить (если НЕ ОЛИГАРХИЯ ИЛИ МОНАРХИЯ)
		}
	}

	AI_weight = {
		modifier = {
			factor = 2
			OR = {
				has_ethic = "ethic_xenophile"
				has_ethic = "ethic_fanatic_xenophile"
			}
		}
		modifier = {
			factor = 0
			OR = {
				has_ethic = "ethic_xenophobe"
				has_ethic = "ethic_fanatic_xenophobe"
			}
		}
		modifier = {
			factor = 0
			has_ai_personality_type = hegemon
		}
		modifier = {
			factor = 0
			has_ai_personality_type = isolationist
		}			
		modifier = {
			factor = 2
			has_ai_personality_type = federation_builder
		}
		modifier = {
			factor = 2
			has_ai_personality_type = explorer
		}	
	}

	pop_happiness = {
		base = 0
		modifier = {
			add = -0.05
			pop_has_ethic = "ethic_xenophile"
			owner = {
				is_same_species = ROOT
			}
		}
		modifier = {
			add = -0.1
			pop_has_ethic = "ethic_fanatic_xenophile"
			owner = {
				is_same_species = ROOT
			}
		}
		modifier = {
			add = -0.05
			pop_has_ethic = "ethic_collectivist"
			owner = {
				NOT = { is_same_species = ROOT }
			}
		}
		modifier = {
			add = -0.1
			NOT = {
				pop_has_ethic = "ethic_collectivist"
				pop_has_ethic = "ethic_fanatic_collectivist"
			}
			owner = {
				NOT = { is_same_species = ROOT }
			}
		}
		modifier = {
			add = -0.05
			pop_has_ethic = "ethic_individualist"
			owner = {
				NOT = { is_same_species = ROOT }
			}
		}
		modifier = {
			add = -0.1
			pop_has_ethic = "ethic_fanatic_individualist"
			owner = {
				NOT = { is_same_species = ROOT }
			}
		}
	}
}

option = {
	name = "voting_allowed_all"

	policy_flags = {
		voting_allowed_all
	}
	modifier = {}

	potential = {
		OR = {
			has_government = "military_republic"
			has_government = "martial_demarchy"
			has_government = "theocratic_republic"
			has_government = "transcendent_republic"
			has_government = "direct_democracy"
			has_government = "subconscious_consensus"
			has_government = "moral_democracy"
			has_government = "irenic_democracy"
			has_government = "indirect_democracy"
			has_government = "democratic_utopia"
			has_government = "socialistic_republic"	   ##################### Вот сюды ставте тоже (если НЕ ОЛИГАРХИЯ ИЛИ МОНАРХИЯ)

		}
	}

	valid = {
		NOT = { 
			has_ethic = "ethic_fanatic_xenophobe"
		}
	}

	AI_weight = {
		modifier = {
			factor = 0
			OR = {
				has_ethic = "ethic_xenophobe"
				has_ethic = "ethic_fanatic_xenophobe"
			}
		}
		modifier = {
			factor = 4.0
			OR = {
				has_ethic = "ethic_xenophile"
				has_ethic = "ethic_fanatic_xenophile"
			}
		}
	}

	pop_happiness = {
		base = 0
		modifier = {
			add = -0.1
			pop_has_ethic = "ethic_xenophobe"
			owner = {
				is_same_species = ROOT
			}
		}
	}
}
}

[Cкрыть]

С самой формой правления всё, остались мелочи.

Шаг 2

Рандомные имена, это та ещё заморочка если придумывать новые, но если просто добавить ФП к существубщему списку, то всё будет ОКЕЙ.

common/random_names

МногабукавНажмите здесь!
 Для начал лист частей.

empire_name_parts_list = {
key = "consensus_mat_desc"
parts = {
	"Interstellar" = 3 # цифра, это шанс на выпадение
	"Galactic" = 3
	"United" = 3
}
}

А это формат.

empire_name_format = {
random_weight = {
	factor = 0
	modifier = {
		add = 1
		OR = {
			has_government = "socialistic_republic"		 # формы правления для формата
			has_government = "adv_socialistic_republic"
		}
		is_pirate = no
		is_primitive = no
		NOT = { is_country_type = fallen_empire }
	}
}
format = "<democracy_pac> of [This.Capital.System.GetName]"		# первое, лист частей, второе, название родного мира.
noun = "[This.Capital.System.GetName]"
prefix_format = "[This.Capital.System.GetName] <democracy_pac>"
# Empire of Sol
}

И вот ещё пример.

empire_name_format = {
random_weight = {
	factor = 0
	modifier = {
		add = 4
		OR = {
			has_government = "socialistic_republic"
			has_government = "adv_socialistic_republic"
		}
		is_pirate = no
		is_primitive = no
		NOT = { is_country_type = fallen_empire }
	}
}
format = "[This.GetSpeciesNamePlural] <democracy_pac>" # а здесь вместо системы используется название расы
noun = "[This.GetSpeciesNamePlural]"
prefix_format = "[This.GetSpeciesNamePlural] <democracy_pac>"
# Human Empire
}

Или вот.

empire_name_format = {
random_weight = {
	factor = 0
	modifier = {
		add = 1
		OR = {
			has_government = "socialistic_republic"
			has_government = "adv_socialistic_republic"
		}
		is_pirate = no
		is_primitive = no
		NOT = { is_country_type = fallen_empire }
	}
}
format = "[This.GetSpeciesNamePlural] <democracy_pac_mid_desc> <democracy_pac>" # <democracy_pac_mid_desc> это прилагательные, типо там например  Human [b][i][u]Socialist[/u][/i][/b] State
noun = "[This.GetSpeciesNamePlural]"
prefix_format = "[This.GetSpeciesNamePlural] <democracy_pac>"
# Human Star Empire
}

[Cкрыть]

Можно просто добавить ФП рядом с другими ФП в уже существующих форматах.

Шаг 3

gfx\interface\icon\governments

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

Можно это всё просто игнорировать если что, рисуйте что хотите.

Запускаем Paint.net и перекрашиваем теократию

...Нажмите здесь!
 be8cd072de76.jpgc7d7ab8004ce.jpg[Cкрыть]

Тоесть РиСУЕм.

Разрешение 44х44 пикселя.

Сохранять в .dds и в A8R8G8B8

Имя файла такое же как и название (или можно просто добавить туда строку icon = "gfx/interface/icons/governments/military_dictatorship.dds" например)

*Нажмите здесь!
 c20e79bbd415.jpg[Cкрыть]

Если вы всё сделали правильно, то альфаканал сохранится и не будет графических артефактов.

Шаг 4

Текст, текст должен быть.

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

Идём в common\start_screen_messages и создаём там файл с любым английским названием без пробелов.

# Socialistic Republic
part = {
location = 1												 # какой это блок текста (0 это первый, 1 это второй, 2 это третий, можете добавить 3 четвёртый, но я не проверял игру с таким модом)
localization = "START_SCREEN_PART_TWO_SOCIALISTIC_REPUBLIC"				   # самое важное, строка для файла локализации

trigger = {
	has_government = socialistic_republic													   # тригер для блока текста
	NOT = { has_country_flag = custom_start_screen }
}
}

Далее прямым курсом в localisation.

Там желательно создать новый файл (в формате yml).

Что там должно быть.

l_russian:
 socialistic_republic:0 "Социалистическая республика" # ФП на экране выбора формы правления
 socialistic_republic_desc:0 "Этот тип правления - республика, основаная на идеи социальной справедливости, правители избераются демократическим путём каждые 15 лет." # описание, убогое, но сойдёт пока
 START_SCREEN_PART_TWO_SOCIALISTIC_REPUBLIC:0 "Но настали смутные времена, и тогда пришёл сильный лидер и обьединил пролитариев всех стран и установил порядок и социальное равенство на планете." # второй блок текста на стартовом экране, убог, но сойдёт пока

Нули после двоеточия обязательны.

Это вроде как всё. Если найдёте ещё что-то, то пишите в эту тему. Принимаю любую конструктивную критику.

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

Шаг 5

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

Карочеговорянадодобавитьстроку has_government ="socialistic_republic" ко всем ивентам, которые требуют демократическую форму правления.

А вот в pretender_events.txt не надо ничего если у вас демократия, а вот с пиратами надо сразу сделать, я вставил рядом с пацифистами т.к. лень писать локализацию.

В Notepad++ вводите в поиск по файлам has_goverment = "Что нибудь" и вставляем нужные вещи.

Надо, чтобы все файлы локализации были в кодировке UTF-8 обязательно с BOM. Без него не работает.

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

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

Не подскажешь, как сунуть в свою фракцию флаг human_2?

Чет я даже не пойму где фракции лежат.

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

Не подскажешь, как сунуть в свою фракцию флаг human_2?

Чет я даже не пойму где фракции лежат.

А что за фракции, расы что-ли? Я тебя не понимаю.

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

А что за фракции, расы что-ли? Я тебя не понимаю.

Ну да.

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

Если вы про заскриптованые, то они лежат по пути prescripted_countries\ , если про расы из редактора, то Документы\Paradox Interactive\Stellaris\user_empire_designs.txt

Изменить флаг у расы тупо сменив название значка

	empire_flag={
	icon={
		category="spherical"
		file="flag_spherical_22.dds"		  #####Вот тута
	}
	background={
		category="backgrounds"
		file="horizontal.dds"
	}
	colors={
		"dark_blue"
		"blue"
		"null"
		"null"
	}
}

на flag_human_2, категорию на human, бэкграунды лежат flags\backgrounds, цвета тоже во flags.

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

Если вы про заскриптованые, то они лежат по пути prescripted_countries\ , если про расы из редактора, то Документы\Paradox Interactive\Stellaris\user_empire_designs.txt

Изменить флаг у расы тупо сменив название значка

на flag_human_2, категорию на human, бэкграунды лежат flags\backgrounds, цвета тоже во flags.

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

Создал людей на основе человеческого содружества, но игра вместо flags={ human_2 custom_start_screen} написала flags={ human_2custom_start_screen} Из-за чего все поломалось.

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

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

Создал людей на основе человеческого содружества, но игра вместо flags={ human_2 custom_start_screen} написала flags={ human_2custom_start_screen} Из-за чего все поломалось.

Аааааааа, ясно.

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

mr_john

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

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

θάνατος
Папки и файлы добавь, непонятно где искать названия империй и иконки.

С икноками хз, а названия в "common/random_names"

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

mr_john
С икноками хз, а названия в "common/random_names"

Я в курсе, не в курсе многие другие

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

К сожелению я опять потерял возможность редактировать главный пост, а путь до рандомных имён каждый дебил найдёт, я просто ЗаБыЛ указать путь, бывает.

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

Gelik AMG

Почему не работает локализация?

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

θάνατος
Почему не работает локализация?

Попробуйте открыть "l_russian" (папка с игрой/localisation), найти формы правления (у меня они где-то с 4850-4860 строчки начинаются) и там (я привел свой корявый пример):

"kommunistiske_republikken:0 "Коммунистическая республика"

kommunistiske_republikken_desc:0 "§LЭто общество, которое полностью уничтожило классовую дифференциацию.!§"

Там же, но немного ниже должность правителя. "START_SCREEN_PART_TWO" где-то с 6500 строчки начинается

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

Почему не работает локализация?

Вы забыли завершающий зан. "

Я его в руководство добавить забыл.

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

Gelik AMG
Вы забыли завершающий зан. "

Я его в руководство добавить забыл.

Все значения стоят. Но у меня не в одном моде, что я пробую сделать локализация не работает.

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

Все значения стоят. Но у меня не в одном моде, что я пробую сделать локализация не работает.

Тоесть вы поставили ковычки в конце? И ноль после двоиточия? И двоиточие? l_russian: не забыли?

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

Gelik AMG
Тоесть вы поставили ковычки в конце? И ноль после двоиточия? И двоиточие? l_russian: не забыли?

Да.

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

Gelik AMG
Покажите образец пжлйста.

ЛокализацияНажмите здесь!
 61c3fc2f111d.png [Cкрыть]
Ссылка на комментарий

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

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

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

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

  Only 75 emoji are allowed.

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

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

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

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

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

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

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


admin@strategium.ru

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

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