Yeni EAO'ların uygulanması çok kolaydır, yeni bir tane oluşturabilir veya "dahil edebilir" ve mevcut olanı api'de yerel olarak genişletebilir / değiştirebilirsiniz.
Bir EAO aşağıdaki gibi temel bir yapıya sahiptir
Kod:
equipment_type = { mio_cat_eq_all_light_tank mio_cat_eq_all_medium_tank }
research_categories = { mio_cat_tech_light_armor_and_modules mio_cat_tech_medium_armor_and_modules }
Bu, EAO'ya özelliklerle hangi ekipmanı etkileyeceğini ve hangi teknoloji kategorilerine uygulanacağını söylemek için hareket eder. Burada EAO'ların ekipman kategorileri için yeni bir koleksiyon türü kullanıyoruz; bunlar, her örnek için her birini ayrı ayrı bildirmek zorunda kalmak yerine hepsine tek bir belirteçle başvurmanıza olanak tanıyan komut dosyası tanımlı ekipman türleri kümeleridir.
Kod:
initial_trait = {
name = generic_mio_initial_trait_standardized_production
equipment_bonus = {
armor_value = -0.05
defense =-0.05
}
production_bonus = {
production_cost_factor = -0.1
}
}
Daha sonra, EAO'nun başladığı değiştiriciler olan ilk özelliği tanımlıyoruz, bunlar ekipman değiştiricilerini, üretim değiştiricilerini veya fon kazancı veya araştırma bonusu hızı gibi EAO değiştiricilerini etkileyebilir.
Kod:
trait = {
token = generic_mio_trait_simplified_suspension
name = generic_mio_trait_simplified_suspension
icon = GFX_generic_mio_trait_icon_reliability
position = { x=1 y=0 }
equipment_bonus = {
reliability = 0.05
}
}
trait = {
token = generic_mio_trait_crew_ergonomics
name = generic_mio_trait_crew_ergonomics
icon = GFX_generic_mio_trait_icon_maximum_speed
position = { x=4 y=0 }
relative_position_id = generic_mio_trait_simplified_suspension
equipment_bonus = {
maximum_speed = 0.02
defense = 0.02
}
}
trait = {
token = generic_mio_trait_improved_tracks
name = generic_mio_trait_improved_tracks
icon = GFX_generic_mio_trait_icon_maximum_speed
position = { x=0 y=2 }
relative_position_id = generic_mio_trait_simplified_suspension
any_parent = { generic_mio_trait_simplified_suspension }
equipment_bonus = {
reliability = 0.05
maximum_speed = 0.05
}
}
Şimdi özellikleri tanımlıyoruz, özellik ızgarasında nerede bulunduklarını ve bağlandıkları herhangi bir ebeveyne sahip olup olmadıklarını ve özelliğin erişilebilir olması için hangi ebeveynlerin gerekli olduğunu beyan edebiliriz. Yukarıda olduğu gibi any_parent tetikleyicisine sahibiz. Ayrıca karşılıklı münhasırlık ve hoi4'ün ağaçlarından beklenen diğer şeyler gibi şeyler de yapabiliriz.
Özellikleri oluştururken her zaman her şeyi etkilemek zorunda değiliz, bir özelliği yalnızca belirli ekipmanı etkileyecek şekilde sınırlayabiliriz. "limit_to_equipment_type" kullanarak, tanımlanan "equipment_type" kategorilerinde bulunması GEREKEN bir ekipman türü seçebiliriz.
Kod:
tree_header_text = {
text = mio_header_tank_construction
x = 3
}
Son olarak normal EAO kurulumu için başlıklarımız vardır, bunlar ızgara üzerinde konumlandırabileceğiniz metin girişleridir. Her zaman aynı ızgara konumundaki bir özelliğin üzerinde olacaklardır ve sabit nokta numaralarıdır, bu nedenle ızgaralar arasında geçiş yapabilirler.
Şimdi bu yeni bir EAO için harika çalışıyor, ancak şimdi mevcut olanı alıp her EAO için bunu çoğaltmak zorunda kalmadan biraz daha benzersiz hale getirmek için genişletmekten bahsedelim.
Kod:
include = generic_medium_tank_organization
Bu include satırı, tanımlanan EAO'daki tüm komut dosyasını alacak ve bu yeni EAO için kullanacaktır; şimdi bu include'ı da değiştirebiliriz. Özellik olmayan değerleri normal olarak bildirebiliriz ve bunlar hoi4'ün komut dosyasının diğer bölümlerindeki ebeveynlikte olduğu gibi geçersiz kılınacaktır. Ancak özellikler bir ağaç oldukları için bazı açık komutlara sahip olmaları gerekir.
Kod:
add_trait = {
token = ENG_mio_trait_expanded_turret_capacity
name = ENG_mio_trait_expanded_turret_capacity
icon = GFX_generic_mio_department_icon_tank_medium_tank_engine
special_trait_background = yes
position = { x=1 y=1 }
relative_position_id = generic_mio_trait_all_round_cupola
any_parent = { generic_mio_trait_all_round_cupola }
limit_to_equipment_type = { mio_cat_eq_all_medium_tank }
equipment_bonus = {
reliability = 0.05
armor_value = 0.05
breakthrough = 0.05
}
}
Burada add trait satırını kullanarak ağaca sadece bu EAO için başka bir ağaç eklediğimizi görebiliyoruz, hatta burada dahil edilen EAO'da bildirilen bir özellik için token kullanarak ona bir ebeveyn de verebiliyoruz. add'e ek olarak dilersek "remove_trait" ve "override_trait" de yapabiliriz.
Ağaçlar için bahsedeceğim son kısım allowed ve available bloklarıdır. Allowed & available blokları oyundaki diğer bloklar gibi çalışır. EAO'ları herhangi bir sebepten dolayı kilitleyebiliyoruz. Yani bir karar veya ulusal odaklanma nedeniyle bir özelliğin kullanılabilir olmasını durdurmak istiyorsanız bunu yapabilirsiniz. Ve EAO'ları belirli ülkelere kilitlemenize izin verir, ancak diğer izin verilen bloklarda olduğu gibi yalnızca yüklendiğinde çalıştırılır.
EAO'ların son kısmı politikalardır
Kod:
mio_policy_land_cutting_corners = {
icon = GFX_mio_policy_cutting_corners
allowed = {
OR = {
has_mio_equipment_type = armor
has_mio_equipment_type = motorized
has_mio_equipment_type = mechanized
has_mio_equipment_type = anti_tank
has_mio_equipment_type = flame
has_mio_equipment_type = anti_air
has_mio_equipment_type = artillery
has_mio_equipment_type = rocket
has_mio_equipment_type = infantry
}
}
available = { has_mio_size > 5}
equipment_bonus = {
same_as_mio = {
build_cost_ic = -0.1
reliability = -0.05
soft_attack = -0.05
hard_attack = -0.05
armor_value = -0.05
}
}
}
Bu komut dosyasındaki bir politikadır. Uygulaması çok basittir ancak EAO'lar için birkaç özel şeyimiz var. Has_mio_equipment_type, EAO'nun "equipment_type = {...." içinde tanımlanmış belirli bir birim türüne sahip olup olmadığını sormak için kullanılan tetikleyicidir, bu nedenle politikaların yalnızca istediğiniz EAO'lar için izin verildiğinden veya mevcut olduğundan emin olmak için çok kullanışlıdır. Son olarak same_as_mio'ya sahibiz, bu dinamik olarak stat bonusunun "equipment_type = {...." için tanımlanan ekipmana uygulanmasını sağlar. Böylece bir politika ile eklediğimiz zırh bonusunun doğru ekipmana yönelik olup olmadığı veya hepsini kapsayıp kapsamadığı konusunda endişelenmemize gerek yok, onlara doğru şekilde izin verdiğimiz sürece değiştiricileri "same_as_mio" altına ekliyoruz.
Bu, EAO'ların modlama açısından temel bölümlerinin çoğunun hızlı bir özetidir, ancak hala net olmayan bir şey varsa soru sormaktan çekinmeyin.