Гайд по тому как создать свою форму правления. - Страница 2 - Учебники по моддингу - 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_

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

Пробел стоит перед строкой EPC:0 "Эпик 1" ?


Gelik AMG
Пробел стоит перед строкой EPC:0 "Эпик 1" ?

Нет. Поставил, но не помогло.


l_russian
 EPC:0 "Эпик 1"

Вот так должно работать, но почему у вас не работает я не понял :blink: .

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

Kerovan

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

Есть важная просьба! Пожалуйста не ленитесь разжёвывать по человечески в учебниках (если таковые будут) для людей инфу по модингу.Это не просто нужно, а очень нужно.

Хотя бы потому что есть люди которые никогда код игры парадоксов не видели в глаза. То как вы пишите для стелариса мне жутко не нравиться!!

Пример как нужно по человечески писать учебники по моддингу!!!Нажмите здесь!

И не обижайтесь на меня плиз, не хотел никого обидеть.


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

Есть важная просьба! Пожалуйста не ленитесь разжёвывать по человечески в учебниках (если таковые будут) для людей инфу по модингу.Это не просто нужно, а очень нужно.

Хотя бы потому что есть люди которые никогда код игры парадоксов не видели в глаза. То как вы пишите для стелариса мне жутко не нравиться!!

Пример как нужно по человечески писать учебники по моддингу!!!Нажмите здесь!

И не обижайтесь на меня плиз, не хотел никого обидеть.

Извините, но это надо отдельный гайд делать для людей, которые не знают про "Код" ничего.


Kerovan
Извините, но это надо отдельный гайд делать для людей, которые не знают про "Код" ничего.

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

Если все сделать качественно это же потом на годы вперед будет людям помогать!Не ленитесь а.

Я кстати ему отписал и хех он даже не знал что такое стеларис ......интересно купит ли он игру. Его учебник по мне так лучший в разделе крестов.

Поэтому я и привел его в пример.


Как получить стандартные названия? Куда вписать мою ФП?


Как получить стандартные названия? Куда вписать мою ФП?

Вы про что? Если про рандомные названия империй, то

вот этоНажмите здесь!
 
	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 }
	}
}

Просто has_government = vashaformapravlenia к существующему листу добавляешь.

[Cкрыть]

Если нет, то скажите нормально.


Вы про что? Если про рандомные названия империй, то

вот этоНажмите здесь!
 
# Generic Autocracy 1
empire_name_format = {
random_weight = {
	factor = 0
	modifier = {
		add = 1
		OR = {
			has_government = "military_dictatorship"
			has_government = "martial_empire"
			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 = "название моей ФП" #################################################
		}
		is_pirate = no
		is_primitive = no
		NOT = { is_country_type = fallen_empire }
	}
}
format = "<generic_aut_desc> [This.GetSpeciesName] <generic_states>"
noun = "[This.GetSpeciesName]"
prefix_format = "[This.GetSpeciesName] <generic_states>"
# United Human Colonies
}

[Cкрыть]

Мне просто добавить название в файл? А можно как-то отдельным фалом сделать как например с самой формой правления - 01_governments.тхт а не вписывать все в 00_governments.тхт?

00_empire_namesНажмите здесь!
 
# Generic Autocracy 1
empire_name_format = {
random_weight = {
	factor = 0
	modifier = {
		add = 1
		OR = {
			has_government = "military_dictatorship"
			has_government = "martial_empire"
			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 = "название моей ФП" #################################################
		}
		is_pirate = no
		is_primitive = no
		NOT = { is_country_type = fallen_empire }
	}
}
format = "<generic_aut_desc> [This.GetSpeciesName] <generic_states>"
noun = "[This.GetSpeciesName]"
prefix_format = "[This.GetSpeciesName] <generic_states>"
# United Human Colonies
}

[Cкрыть]

Отдельным файлом нельзя. Можно только изменить этот файл или создать продублированные неймлисты и добавить туда свою ФП убрав все остальные. Останутся оригинальные неймлисты и скопирование для вашей ФП.


Отдельным файлом нельзя. Можно только изменить этот файл или создать продублированные неймлисты и добавить туда свою ФП убрав все остальные. Останутся оригинальные неймлисты и скопирование для вашей ФП.

Значит я все правильно сделал, добавив туда свои ФП? Не могли бы вы объяснить про эвенты, неужели во всех надо будет прописывать мои новые ФП и в каких в первую очередь?


Значит я все правильно сделал, добавив туда свои ФП? Не могли бы вы объяснить про эвенты, неужели во всех надо будет прописывать мои новые ФП и в каких в первую очередь?

Желательно во всех. В первую очередь в эвентах про пиратов и обучение если надо.


Собственно та же проблема с локализацией, категорически отказывается работать.

А в от в чем проблема:

Название неправильное, должно быть _l_russian

Например:

autobuild_l_polish

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

Куда именно надо вписать ФП в евент с пиратами? Я вписал, но у меня появляется окно, которое нельзя закрыть.

Нашел методом тыка. Сюда вписать обязательно:

pirate_events.txtНажмите здесь!
 
option = {
	name = pirate.2.e
	trigger = {
		OR = {
			has_government = despotic_empire
			has_government = star_empire
			has_government = ваша диктатура
		}
	}
}
option = {
	name = pirate.2.f
	trigger = {
		OR = {
			has_government = plutocratic_oligarchy
			has_government = mega_corporation
			has_government = ваша олигархия
		}
	}
}
option = {
	name = pirate.2.g
	trigger = {
		OR = {
			has_government = indirect_democracy
			has_government = democratic_utopia
			has_government = ваша демократия

[Cкрыть]
Изменено пользователем LeGuS

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

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


Император_человечества

Приветствую всех! Судя по всему этот гайд немного устарел, ибо в файле common\policies\00_policies.txt  у меня немного друга структура и вписать это: " has_government = "socialistic_republic" " просто некуда


Император_человечества
Спойлер
2 часа назад, Император_человечества сказал:

Приветствую всех! Судя по всему этот гайд немного устарел, ибо в файле common\policies\00_policies.txt  у меня немного друга структура и вписать это: " has_government = "socialistic_republic" " просто некуда

 

Видимо это уже не нужно, все запустилось и работает. Кроме локализации. Название империи пишет на английском и не то, какое я указал, а вместо описания:"Imperium_desc". В чем может быть проблема?


Судя по всему пока я был в отпуске гайд действительно устарел, а по локализации дело может быть в кодировке или вы 0 не дописали, или :. Можете попробовать скопировать любой файл локализации, переименовать, отчистить и вписать что надо в него.


Kerovan

мдэ. как не было нормальных гайдов по модингу так и нет. печалька.


23 часа назад, Kerovan сказал:

мдэ. как не было нормальных гайдов по модингу так и нет. печалька.

Из тех кто делает годные моды для сталяриса 3 человека. Кто ещё гайды писать будет?


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

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

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

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

  Only 75 emoji are allowed.

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

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

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

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

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

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

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


admin@strategium.ru

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

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