Günlük: EU4 - Başlangıç Ekranı, Vassal Devletlerde Misyonerlik ve Modlama Değişiklikleri
#1
diaryeu4.png

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.

RO1Ev7.jpg

Hangi mekaniğin hangi eklentiyle oyuna dahil edildiğini de bu ekranda görebileceksiniz.

pGXvDr.jpg

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.

kXGZDq.jpg

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:

3pv2V0.jpg

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:
  • 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.
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.

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.
[+] 2 üye Duman nickli üyenin bu iletisini beğendi.
Cevapla
#2
Modlarla pek fazla ilgilenmeyen biri olarak benim için çok boş bir günlük olmuş.
[+] 1 üye Manwell nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#3
:ill:
Bilincin her türlüsü hastalıktır.
[+] 1 üye Zebercet nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#4
Bu vassal mevzusu saçma olmuş. Vassalın dinini niye yayayım arkadaş? Madem vassalın dini yayılacak niye benim misyonerim gidiyor? Ben sünniyim benim din adamlarım gidip hristiyanlığı mı yayacak? Böyleyse çok saçma. Benim din adamım benim dinimi yayar. Bu ayrıca şöyle olabilse daha güzel olur. Vassallarım ve sınır komşularımda diplomasi ekranında aynı ajanlık gibi bir sistem olur. O ülkede misyonerlik faaliyeti başlatırım. Bana sınır olan vilayetlerde başlar içe doğru yayılır. Oda kendi din adamlarıyla sınır kasabalarda tedbir alabilir.
[+] 2 üye Semavi7 nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#5
Dlcnin en bol metinli ama en az içerikli günlüğü olmuş :/
[+] 1 üye Voidian nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#6
Daha çok var çıkmasına, bir çok şey var diyorlar ama nedense günlükler ciddi boş geçiyor. Eski heves yok gerçekten.
[+] 1 üye PashaZade nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#7
Kendi dininden olmayan vasalinin dinini yaymak cok sacma geldi bakalim daha ne sacmaliklar gorecegiz
Noro lim, noro lim , Asfaloth!
[+] 1 üye glorfindel nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#8
Müslüman olan misyoner katoliklik yayacak. Anladım hocam...
"c" tuşum çalışmıyor copy-paste yapıyorum.Lütfen "c"leri büyük yaz demeyiniz, iyi forumlar :)
Ara
Cevapla
#9
Vassal'ın din yayması olayı saçmalık.
[+] 1 üye Belendithas nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#10
Yine bomboş bi günlük ve saçma bi içerik. Daha fazla yorum yapmayacağım.
Sic Parvis Magna
[+] 1 üye altnkurt nickli üyenin bu iletisini beğendi.
Ara
Cevapla
#11
(18-10-2017, 01:40)altnkurt : Yine bomboş bi günlük ve saçma bi içerik. Daha fazla yorum yapmayacağım.

KEsinlikle haklısın bu seferki harbiden boş olmuş vasalların dinini değiştirmek iyi olsa da düşününce annexledikten sonra zaten değiştircez
Ara
Cevapla
#12
Eğer Liberty Desire ı fazla olan bir vassal ın dinini yayarsak ve Liberty Desire ı düşerse güzel olabilir.Modlarla pek ilgim yok bir şey söyleyemeyeceğim.
Bir Japon Atasözü der ki:
Davranışlarınızı yönetin yoksa onlar sizi yönetir.
Ara
Cevapla
 




Konuyu Okuyanlar: 1 Ziyaretçi



Strategyturk Forumları

Strategyturk Forumları tüm Türk stratejiseverler için büyük ve kaliteli bir platform olma amacı güder. Forum içerisinde çok sayıda strateji oyunu için bölüm ve bu bölümlerde haber konuları, rehberler, mod tanıtımları, multiplayer etkinlikleri ve üye paylaşımları için alanlar yer alır.