Europa Universalis IV geliştirici günlüklerinde bu hafta DDRJake oyundaki yeni başlangıç ekranını ve vassal devletlerdeki misyonerleri tanıtırken, Groogy oyunun modlanabilirliğinde yapılan geliştirmeleri aktarıyor.
https://forum.paradoxplaza.com/forum/ind...7.1050634/ :Herkese merhabalar. Bugün sizlere önümüzdeki 1.23 yaması ve beraberindeki Cradle of Civilization'a dair yeni bilgiler vereceğiz, bugünkü günlüğümüz tek bir mekaniğe odaklanmaktansa çok sayıda küçük yeniliğe dair bilgi verecek.
İlk olarak, her ne kadar 1.23'ün çıkmasına daha çok olsa da herkese şimdiden 1.23'ün gelmesiyle birlikte eski kayıt dosyalarınıza 1.23'te devam edemeyeceğinizi belirtmek istiyorum. Bu durum oyunu sürekli geliştirmenin kötü yönlerinden birisi, her ne kadar kayıt dosyalarını uyumlu tutmak için çaba sarfetsek de bazı köklü değişiklikler sebebiyle bu durum mümkün olamayabiliyor. Bu da basitçe şu anlama geliyor, eğer yama çıktığında oynamakta olduğunuz oyunu henüz bitirmediyseniz 1.22 Russia yaması üzerinden bu oyunu bitirebilirsiniz, eğer 1.23 yamasını indirirseniz yarım kalan oyununuza devam edemeyeceksiniz.
Neyse ki oyunu otomatik olarak güncellenenler için de çözümümüz var, Steam üzerinden oyuna sağ tıklayıp BETAS kısmından daha önceki versiyona dönebilirsiniz, bunu yaptıktan sonra oyunun tekrardan bir güncellenmesi gerekecek ve bu güncellemeyle oyun önceki sürüme alınacak. Böylelikle daha önceki bir versiyonda oynadığınız oyunu bitirebileceksiniz.
Tekrar belirtmek istiyorum ki tüm bu kayıt dosyalarının oynanamaz hale gelmesi oyunda güncellemeler yaparken engel olmak istediğimiz bir şey, ancak bu yamada - bir kısmını henüz sizlere tanıtmadığımız - çok sayıda değişiklik sonrası ne yazık ki kayıt dosyalarını uyumlu tutmak mümkün olmadı.
Şimdi gelelim bu haftaki günlüğün konusuna, başlangıç ekranı ve vassal devletlerdeki misyonerler.
1.23 Persia yamasıyla birlikte artık oyununuz ülkenizin durumunu açıklayan bir başlangıç ekranıyla başlayacak. Bu başlangıç ekranı ülkenizin yönetiminde kullanacağınız mekanikleri size tanıtıp, ülkenizle ilgili size çeşitli bilgiler verecek.
Hangi mekaniğin hangi eklentiyle oyuna dahil edildiğini de bu ekranda görebileceksiniz.
Ana ülkelerde başlangıçta ayrıca yazılmış bir metin bulunacak ve bu metin oynamakta olduğunuz ülkenin o tarihteki durumunu size özetleyecek. Bunu dilerseniz ayarlardan kapatabileceksiniz.
Bunun yanı sıra Cradle of Civilization eklentisiyle birlikte uzun zamandır talep edilen bir mekanik olan, vassal ülkelerde misyonerlik faaliyeti yapabilme özelliği geliyor. Eğer vassalınız doğru inanışa sahip olmayan bir toprağa sahipse artık kendi misyonerlerinizi göndererek işe el koyabileceksiniz. Bu misyoner vassalınızın değil sizin misyonerlik gücünüzü kullanacak, ancak vassal bölgesinde olası negatif etkenlerden de etkilenebilecek.
Din arayüzü üzerinden vassalınızdaki yanlış inanışta bulunan toprakları görüntüleyip görüntülememeyi de ayarlayabilecek, bu arayüz üzerinden direkt olarak o bölgelere misyoner gönderebileceksiniz. Ancak unutmayın, eğer vassalınızla sizin dininiz farklıysa sizin misyonerleriniz sizin dininizi değil, vassalınızın dinini yayacaklar. Dolayısıyla vassalınızın istikrarıyla sizin için de yabancı olan bir dinin yayılması arasında karar vermeniz gerekecek.
Şimdi 1.23 yamasıyla birlikte oyunun modlanabilirliğinde yapılan geliştirmelerden bahsetmek üzere mikrofonu Groogy'e bırakıyorum.
-------------------------------------
Selamlar, PDXCON esnasında MEOIU & Taxes modcularıyla karşılaşmak gibi vahim bir olay yaşadım, bu karşılaşma sonrasında mod ekibi benden oyunun modlanabilirliğiyle alakalı çok sayıda talepte bulundu. Neyse ki bu talepler üzerinde çalışırken modcuların yanı sıra kendi içerik tasarımcılarımızın da kullanabileceği çok sayıda güzel özellik ekledim.
Gelin ilk olarak en büyük yenilikten bahsedelim, script profiler:
Normalde mod yaparken oyunu açan .exe dosyasını kullanıyordunuz, şimdi eu4_profiling isminde yeni bir exe dosyası ekledik. Oyunun bu versiyonunda her ayrı script parçasının ne kadar CPU harcadığına dair bir sayaç var. Bu sayaç eventlerden görevlere kadar her şeyi ölçebiliyor. Bunun ana oyunda değil de ayrı bir exe şeklinde olmasının sebebi oyunu az da olsa yavaşlatıyor olması. Bu fark dışında bu 2 exe dosyası arasında hiçbir fark yok. Bu eu4_profiling versiyonu da normal versiyonla birlikte eşzamanlı olarak güncelleniyor.
Profilinge başlamak için yapmanız gereken yegane şey EU4'un yüklendiği yeri göstermeniz ve eu4_profiling dosyasını açarak tıpkı normal oyundaki gibi yapmak istediğiniz değişiklikleri test etmeniz. Gerekli tüm testleri yaptıktan sonra oyun içi konsola dump_script_profiling yazarak tüm verileri profiling.log ismindeki bir log dosyasına aktarabilirsiniz.
İşin biraz daha teknik yönünü anlatmak gerekirse, bu dosyada aşağıda biraz daha ayrıntılı açıklayacağım bazı sütunlarda çeşitli değerler var ancak en önemlisi sol kısımda gördüğünüz ndoelar. En yukarıdaki satır en çok zaman harcayan efekti veya triggerı gösteriyor. Ancak root altındaki node'lar script'teki halleriyle görünüyorlar, böylelikle kolaylıkla yavaşlığa neyin sebep olduğunu bulabiliyorsunuz. Root% ve Parent% kısmı root node'un script'in aldığından ne kadar farklı olduğunu gösteriyor. Other % ise script dışındaki bir eylemin CPU harcamasını gösteriyor eğer bu kısım %100'den aşağıdaysa demek ki scriptteki bir şey CPU'nun diğer şeylerle ilgilenmesini engelliyor. Hits kısmı ise scriptin kaç kere çalıştırıldığını gösteriyor.
Ben de oyunu optimize ederken bu aracı kullandım ve ne kadar çok veriye erişebildiğimizi gördüğümde açıkçası şaşırdım, 1444'ten 1821'e kadar yaptığım testler oyundaki görevlerin çok "pahalı" olduğunu gösterdi. Bu konudan ileride bahsedeceğim.
Bir diğer değişikliği ise Scripted Triggerlarda ve Meta Script diye isimlendirdiğim özel efektlerde yaptık.
Kod:my_test_trigger = {
OR = {
has_country_modifier = $arg1$_modifier
AND = {
has_country_modifier = $arg2$_modifier
$context$ = {
NOT = { has_country_modifier = $arg1$_modifier }
}
}
}
}
my_test_trigger = { arg1=foo arg2=bar context=FROM }
Bundan kısac abahsetmek gerekirse scripted triggerlar ve efektler artık argümanları destekliyor, argümanlarda listelenen şeyler yüklenme esnasında değerlendiriliyorlar, eğer kazara çalışmayan bir şey yazarsanız error.log dosyasını gözden geçirin, bu dosyada neyin yanlış gittiğini ayrıntılı bir şekilde görebilirsiniz.
Aşağıda bu yeni özellikle Trin Tragula'nın yazdığı bir kodu görebiliyorsunuz:
Kod:Trin Tragula:
This is a (somewhat shortened and still WIP) example of how we will now be randomizing the religions for advisors granted through old and new events:
# Death of a Merchant
country_event = {
id = 736
title = "EVTNAME736"
desc = "EVTDESC736"
picture = MERCHANTS_TALKING_eventPicture
is_triggered_only = yes
trigger = {
always = yes
}
mean_time_to_happen = {
days = 1
}
immediate = {
check_if_non_state_advisor_effect = { #Hidden scripted effect, is used by scripted effect and must always be cleared in after = { } using erase_advisor_flags_effect.
chance_of_primary = 75 #Not percentages!
chance_of_tertiary = 10
chance_of_secondary = 25
}
hidden_effect = {
random_list = {
33 = { set_country_flag = theologian_flag }
33 = { set_country_flag = artist_flag }
33 = { set_country_flag = philosopher_flag }
}
}
}
option = {
name = "EVTOPTA736"
ai_chance = {
factor = 50
}
add_years_of_income = 0.25
}
option = {
name = "EVTOPTB736"
ai_chance = {
factor = 50
}
add_meritocracy_effect = yes
trigger_switch = {
on_trigger = has_country_flag
theologian_flag = {
generate_advisor_of_type_and_semi_random_religion_effect = {
advisor_type=theologian
advisor_type_if_not_state=natural_scientist
skill=1
scaled_skill = no
discount=yes
}
}
artist_flag = {
generate_advisor_of_type_and_semi_random_religion_effect = {
advisor_type=artist
advisor_type_if_not_state=artist
scaled_skill = no
skill=1
discount=yes
}
}
philosopher_flag = {
generate_advisor_of_type_and_semi_random_religion_effect = {
advisor_type=philosopher
advisor_type_if_not_state=philosopher
skill=1
scaled_skill = no
discount=yes
}
}
}
add_prestige = 15
}
}
So first we use a scripted effect called check_if_non_state_advisor_effect which sets the chances for a minority religion popping up, and specifies which ones. The reason we do this in immediate and not all in the optionbutton effect is that we want the advisor to be displayed in the tooltip when you pick him :)
What this scripted effect does with those chances depends on where in the world you are playing so I will just show the relevant part here for someone playing as Poland.
check_if_non_state_advisor_effect = {
#Needs these arguments:
#chance_of_primary = State religion
#chance_of_secondary =
#chance_of_tertiary = Remaining Heathen Religions
#Note: These are not actual chances, they are just weights, the script then uses them differently depending on what region you are in. There is a higher or lower chance of variety depending on where minorities where big historically.
hidden_effect = { #Variety - Religious Minorities
if = {
limit = {
#Lots of WIP stuff here
}
random_list = {
$chance_of_secondary$ = { set_country_flag = jewish_advisor }
$chance_of_primary$ = { set_country_flag = state_religion_advisor }
$chance_of_secondary$ = { set_country_flag = protestant_or_coptic_advisor }
$chance_of_secondary$ = { set_country_flag = reformed_or_orthodox_advisor }
$chance_of_tertiary$ = { set_country_flag = heathen_advisor }
}
}
#else_if
#else_if
#Lots of other places in the world will use these chances for other things
}
}
Now that a flag has been set in the immediate, the game will use the scripted generate_advisor_of_type_and_semi_random_religion_effect effect to actually generate the advisor, this one is actually in two steps:
generate_advisor_of_type_and_semi_random_religion_effect = {
#Actual work is done by internal_advisor_generation_effect above but it goes through this first.
#Requires check_if_non_state_advisor_effect in immediate.
#$advisor_type$ = Advisor type if state religion.
#$advisor_type_if_not_state$ = Advisor type if non-state religion.
#$scaled_skill$ = yes/no
#$skill$ = Skill Level
#$discount$ = yes/no for discount
set_country_flag = $scaled_skill$_scaled_skill_flag #Must be cleared in this effect, or we won't find it again.
if = { #If scaled skill is yes we continue after checking what level is apropriate
limit = { has_country_flag = yes_scaled_skill_flag }
if = {
limit = {
NOT = { monthly_income = 15 }
}
internal_advisor_generation_effect = {
advisor_type = $advisor_type$
advisor_type_if_not_state = $advisor_type_if_not_state$
skill = 1
discount = $discount$
}
}
else_if = {
limit = {
NOT = { monthly_income = 25 }
}
internal_advisor_generation_effect = {
advisor_type = $advisor_type$
advisor_type_if_not_state = $advisor_type_if_not_state$
skill = 2
discount = $discount$
}
}
else = {
internal_advisor_generation_effect = {
advisor_type = $advisor_type$
advisor_type_if_not_state = $advisor_type_if_not_state$
skill = 3
discount = $discount$
}
}
}
else = { #If we didn't set scaled skill to yes then we just take the skill you specified.
internal_advisor_generation_effect = {
advisor_type = $advisor_type$
advisor_type_if_not_state = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
clr_country_flag = $scaled_skill$_scaled_skill_flag #Important, unless cleared like this you will be unable to find it again.
}
This then sends the arguments provided by the event onwards to the scripted effect internal_advisor_generation_effect together with either a decided scaled skill or one provided by the event where generate_advisor_of_type_and_semi_random_religion_effect was used.
internal_advisor_generation_effect = { #Only used within generate_advisor_of_type_and_semi_random_religion_effect
#Requires check_if_non_state_advisor_effect in immediate as that gives the arguments to generate_advisor_of_type_and_semi_random_religion_effect that then passes it on to this.
#$advisor_type$ = Advisor type if state religion.
#$advisor_type_if_not_state$ = Advisor type if non-state religion.
#$skill$ = Skill Level
#$discount$ = yes/no for discount
trigger_switch = {
on_trigger = has_country_flag #Flags set by check_if_non_state_advisor_effect
state_religion_advisor = {
define_advisor = {
type = $advisor_type$
skill = $skill$
discount = $discount$
}
}
jewish_advisor = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = jewish
}
}
protestant_or_coptic_advisor = {
if = {
limit = {
OR = {
religion = catholic
religion = reformed
}
is_religion_enabled = protestant
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = protestant
}
}
else_if = {
limit = {
religion = catholic
NOT = { is_religion_enabled = protestant }
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = orthodox
}
}
else_if = {
limit = {
religion = protestant
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = catholic
}
}
else_if = {
limit = {
religion = orthodox
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = coptic
}
}
else_if = {
limit = {
religion = coptic
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = jewish
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
}
reformed_or_orthodox_advisor = {
if = {
limit = {
OR = {
religion = catholic
religion = protestant
}
is_religion_enabled = reformed
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = reformed
}
}
else_if = {
limit = {
religion = catholic
NOT = { is_religion_enabled = reformed }
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = orthodox
}
}
else_if = {
limit = {
religion = reformed
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = catholic
}
}
else_if = {
limit = {
religion = orthodox
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = coptic
}
}
else_if = {
limit = {
religion = coptic
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = orthodox
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
}
heathen_advisor = {
if = {
limit = {
religion_group = christian
capital_scope = { continent = europe }
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = jewish
}
}
else_if = {
limit = {
religion_group = christian
capital_scope = { continent = asia }
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = sunni
}
}
else_if = {
limit = {
religion_group = christian
capital_scope = { continent = africa }
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = sunni
}
}
else_if = {
limit = {
religion_group = muslim
continent = europe
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = catholic
}
}
else_if = {
limit = {
religion_group = muslim
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = coptic
}
}
else_if = {
limit = {
religion_group = eastern #Most likely won't come here but could.
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = animism
}
}
else_if = {
limit = {
religion_group = dharmic #Most likely won't come here but could.
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = animism
}
}
else_if = {
limit = {
religion_group = dharmic #Most likely won't come here but could.
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = animism
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
}
heathen_advisor = {
if = {
limit = { religion_group = christian }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = sunni
}
}
else_if = {
limit = {
religion_group = muslim
capital_scope = {
OR = {
superregion = near_east_superregion
continent = europe
region = horn_of_africa_region
}
}
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = catholic
}
}
else_if = {
limit = { religion_group = muslim }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = zoroastrian
}
}
else_if = {
limit = { religion_group = dharmic }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
religion = shiite
culture = persian
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
}
zoroastrian_advisor = {
if = {
limit = { NOT = { religion = zoroastrian } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = zoroastrian
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = hinduism
discount = $discount$
}
}
}
sikh_advisor = {
if = {
limit = { religion = sikhism }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = hinduism
discount = $discount$
}
}
else_if = {
limit = { is_religion_enabled = sikhism }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = sikhism
discount = $discount$
}
}
else_if = {
limit = { religion = hinduism }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = zoroastrian
discount = $discount$
}
}
else_if = {
limit = { religion_group = muslim }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = hinduism
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
}
confucian_advisor = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = confucianism
discount = $discount$
}
}
shinto_advisor = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = shinto
discount = $discount$
}
}
theravada_advisor = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = buddhism
discount = $discount$
}
}
mahayana_advisor = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = mahayana
discount = $discount$
}
}
vajrayana_advisor = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = vajrayana
discount = $discount$
}
}
catholic_advisor = {
if = {
limit = {
any_province = {
religion = catholic
has_discovered = ROOT
}
}
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = catholic
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
discount = $discount$
}
}
}
hinduism_advisor = {
if = {
limit = { NOT = { religion = hinduism } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = hinduism
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = sunni
discount = $discount$
}
}
}
ibadi_advisor = {
if = {
limit = { NOT = { religion = ibadi } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = ibadi
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = shiite
discount = $discount$
}
}
}
shia_advisor = {
if = {
limit = { NOT = { religion = shiite } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = shiite
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = ibadi
discount = $discount$
}
}
}
sunni_advisor = {
if = {
limit = { NOT = { religion = sunni } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = sunni
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = shiite
discount = $discount$
}
}
}
coptic_advisor = {
if = {
limit = { NOT = { religion = coptic } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = coptic
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = jewish
discount = $discount$
}
}
}
norse_advisor = {
if = {
limit = { NOT = { religion = norse_pagan_reformed } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = norse_pagan_reformed
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = totemism
discount = $discount$
}
}
}
animism_advisor = {
if = {
limit = { NOT = { religion = animism } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = animism
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = totemism
discount = $discount$
}
}
}
totemism_advisor = {
if = {
limit = { NOT = { religion = totemism } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = totemism
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = animism
discount = $discount$
}
}
}
mayan_advisor = {
if = {
limit = { NOT = { religion = mesoamerican_religion } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = mesoamerican_religion
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = nahuatl
discount = $discount$
}
}
}
nahuatl_advisor = {
if = {
limit = { NOT = { religion = nahuatl } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = nahuatl
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = mesoamerican_religion
discount = $discount$
}
}
}
inca_advisor = {
if = {
limit = { NOT = { religion = inti } }
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = inti
discount = $discount$
}
}
else = {
define_advisor = {
type = $advisor_type_if_not_state$
skill = $skill$
religion = animism
discount = $discount$
}
}
}
}
}
This effect actually creates an advisor (and it is this advisor that is shown in the tooltip on the event option button.
Last of all I use the after effect to clear the flags set by the check_if_non_state_advisor_effect
erase_advisor_flags_effect = { #Goes into the after = {} effect after check_if_non_state_advisor_effect
trigger_switch = {
on_trigger = has_country_flag
state_religion_advisor = { clr_country_flag = state_religion_advisor }
jewish_advisor = { clr_country_flag = jewish_advisor }
protestant_or_coptic_advisor = { clr_country_flag = protestant_or_coptic_advisor }
reformed_or_orthodox_advisor = { clr_country_flag = reformed_or_orthodox_advisor }
heathen_advisor = { clr_country_flag = heathen_advisor }
zoroastrian_advisor = { clr_country_flag = zoroastrian_advisor }
sikh_advisor = { clr_country_flag = sikh_advisor }
confucian_advisor = { clr_country_flag = confucian_advisor }
shinto_advisor = { clr_country_flag = shinto_advisor }
theravada_advisor = { clr_country_flag = theravada_advisor }
mahayana_advisor = { clr_country_flag = mahayana_advisor }
vajrayana_advisor = { clr_country_flag = vajrayana_advisor }
catholic_advisor = { clr_country_flag = catholic_advisor }
hinduism_advisor = { clr_country_flag = hinduism_advisor }
ibadi_advisor = { clr_country_flag = ibadi_advisor }
shia_advisor = { clr_country_flag = shia_advisor }
sunni_advisor = { clr_country_flag = sunni_advisor }
coptic_advisor = { clr_country_flag = coptic_advisor }
norse_advisor = { clr_country_flag = norse_advisor }
animism_advisor = { clr_country_flag = animism_advisor }
totemism_advisor = { clr_country_flag = totemism_advisor }
inca_advisor = { clr_country_flag = inca_advisor }
nahuatl_advisor = { clr_country_flag = nahuatl_advisor }
mayan_advisor = { clr_country_flag = mayan_advisor }
}
}
Aşağıda daha basit bir örnek görebilirsiniz:
Kod:add_mutual_opinion_modifier_effect = {
add_opinion = {
who = $scope_country$
modifier = $opinion_modifier$
}
reverse_add_opinion = {
who = $scope_country$
modifier = $opinion_modifier$
}
}
Bu özellik şu şekildeki bir eventte karşılıklı olarak opinion ekleyebilmenizi sağlıyor:
Kod:add_mutual_opinion_modifier_effect = {
scope_country = ROOT
modifier = converted_to_islam
}
Aşağıda yaptığımız ve bahsetmek istediğimiz bazı ekstra değişiklikleri inceleyebilirsiniz:Zaman içerisinde bu değişikliklerle aynı doğrultuda eklemek istediğimiz çok şey, yapmak istediğimiz çok değişiklik var ancak ne yazık ki bir gün 24 saatten oluşuyor. Söz vermek gibi olmasın ancak yapmak istediğimiz değişiklikler arasında MEIOU & Taxes'in devasa haritasını hafifletecek yönde triggered province modifierlar ve Meta scriptler için şartlı triggerlar sözkonusu.
- Görevler performans arttırıcı bir şekilde artık spesifik bölgelere odaklanabiliyor.
- export_to_variable artık value=trigger_value:[trigger_name] kullanımını destekliyor.
- else_if ve else desteği eklendi.
- Reformasyon merkezleri artık çok daha modlanabilir halde.
- Birim bazlı ülke modifierları oluşturuldu (şimdilik sadece Yeniçerileri etkiliyor)
- Şimdilik sadece birkaç trigger ve efektte geçerli olmak üzere Event Scope Value eklendi.
Son olarak aşağıdaki yama notları ilginizi çekebilir:
Kod:- years_under_vassalage trigger now supports "all_subject_country = yes" to not limit for certain subject types.
- Advisor portraits now look for "GFX_advisor_[culture_group]_[...]" before the 'GfxCulture' sprite.
- Building AI now done entirely in code. Script can still modify/override the result though. See 00_buildings.txt.
- For custom subject types with has_overlords_ruler, can_be_integrated now also determines whether spontaneous inheritance can happen.
- Added set_saved_name feature. Supprts "type = simple name = Paradox" and "type = advisor scope = FROM". Should be coupled with clear_saved_name.
- Saved Names can be accessed in localization through "[Scope.key.GetName]"
- Saved Names can be used for defining rulers, heirs, consorts, leaders, advisors and rebel leaders.
- Effects for creating rulers, heirs and consorts now support "hide_skills = yes" (same as "hidden = yes") for heirs.
- define_advisor effect now supports "location = *scope*"
- Added export_to_variable for ruler_culture, heir_culture, consort_culture, adm_advisor_culture, dip_advisor_culture, mil_advisor_culture. They will get the index of the character's religion, so can be compared to each other. The culture name can also be accessed with [Root.variable.GetCultureName] syntax.
- Added exactly same system as explained above but for religion.
- Also added export_to_variable for primary_culture, dominant_culture, religion, dominant_religion and secondary_religion for country scopes; and culture, and religion for province scopes.
- All culture and religion triggers and effects of the form "x = y" now support "variable:variable_name" (as well as scopes) as y. Triggers and effects for culture and religion groups work similarly, and implicitly take the group of the culture with the given index.
- variable_arithmetic_trigger and ai_acceptance entries will now set all export_to_variable to their original value before generating the tooltip.
- Triggers and effects that support "variable:" syntax now also support "variable:FROM:" etc.
- Modifier descriptions now support localization of the [Scope. ...] form.
- is_in_war trigger now supports scopes for defenders, attackers, participants, and war_goal_province.
- events now support "after = {}", similar to "immediate = {}" but is executed after any event option.
- Triggers and effects supporting "variable:" syntax now also support "new_variable:" syntax, calculating the would-be value if the following string was exported from. Doesn't work for the more advanced exports.
- Localization keys now also support [Root.variable_name.GetCultureGroupName] and [Root.variable_name.GetReligionGroupName] syntax.
- spawn_rebels effect now supports specifying what religion/culture they will get.
- export_to_variable now supports "value = trigger_value:[trigger_name]" to extract the limit value for a trigger. This works with all triggers of the form "[trigger_name] = [value]", where [value] is an integer, a decimal value or "yes"/"no". Caution: If the trigger evaluates as true for all values (or no values), the extracted value will be 2147483 (or -2147483).
- Added on_build effect for buildings
- Added on_destroy effect for buildings
- Added on_obsolete effect for buildings
- Added on actions for on_leader_recruited, on_general_recruited, on_admiral_recruited, on_conquistador_recruited, on_explorer_recruited
- Added support for "else_if" and "else". If one of these is placed after an "if" or "else_if", it will be executed if the "if"/"else_if" limit returns false. Example:
if = { limit = { something = yes } do_something = yes }
else_if = { limit = { something_else = yes } do_something_else = yes }
else = { do_another_thing = yes }
"else" inside an "if" still works as before, so as to not break existing script*
- Added new country trigger 'heir_culture = x', where x is culture, province, tag or rebel.
- Added new country trigger 'consort_culture = x', where x is culture, province, tag or rebel.
- Added new country trigger 'ruler_culture = x', where x is culture, province, tag or rebel.
- Added new country trigger 'heir_religion = x', where x is religion, province, tag or rebel.
- Added new country trigger 'consort_religion = x', where x is religion, province, tag or rebel.
- Added new country trigger 'ruler_religion = x', where x is religion, province, tag or rebel.
- Added new country effect 'set_heir_culture = x' , where x is culture, province, tag or rebel.
- Added new country effect 'set_consort_culture = x' , where x is culture, province, tag or rebel.
- Added new country effect 'set_ruler_culture = x' , where x is culture, province, tag or rebel.
- Added new country effect 'set_heir_religion = x' , where x is religion, province, tag or rebel.
- Added new country effect 'set_consort_religion = x' , where x is religion, province, tag or rebel.
- Added new country effect 'set_ruler_religion = x' , where x is religion, province, tag or rebel.
- Added trigger current_institution_growth.