Gönderen Konu: Günlük HOI IV Geliştirici Günlüğü - Modlama ve Özellikleri  (Okunma sayısı 213 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Ethred

Herkese selam! İlk önce, Man the Guns'ın yeni amiral özellikleri hakkında konuşacağız, sonra yeni modlama oyuncaklarını göstereceğiz. Umarım zevkinize göre olur :)

Amiral Özellikleri
Waking the Tiger ve oyunun deniz yönlerine odaklanan Man the Guns ile, Amirallere daha fazla ilerleme ve özellik kazandırmanın yanı sıra yeni beceriler vermeyi istediğinizi biliyorduk. Tüm özelliklerin üstesinden gelmek bir takım yeni şeyler de kırıyor olacak, bu yüzden bazılarının ayrıntılarında sabırlı olmanız gerekecek ;)

Amirallerin tek beceri seviyesini, WTT'de Generalleri nasıl yaptıysak ona benzer şekilde genişlettik, şimdi becerilerini ve kişiliğini daha iyi yansıtmak için 4 özellik var: Saldırı, Savunma, Manevra ve Koordinasyon. Saldırı ve Savunma oldukça basit. Manevra, filo konumlandırma ve hareket için önemli olacak daha taktiksel bir beceri iken, Koordinasyon daha örgütsel beceri ve daha fazla mücadele dışında görevleri ve diğer şeyleri etkiler. Filoları, görev güçlerini ve mücadeleyi parçalamaya başladığımızda bunları daha ayrıntılı olarak ele alacağız.

Amiraller artık kişilik özelliklerinin yanı sıra daha kazanılabilir özelliklere de erişebilecekler. Bazı kişilik özellikleri Generallerden geçer. Amirallerinizi açıp uyarlayabileceğiniz, atanabilir özellikler de var. Sonunda, kazanılabilir ve farklı deniz arazilerinde yardımcı olabilecek arazi özellikleri vardır (ayrıntılar için gelecekteki günlüğüne bakın). Amiraller seviye yükseldikçe, her seviyedeki yetenekleri karşısında güçlü noktalarda 3 puan kazanıyorlar. Görevlendirilebilir özellikler ve amiral ekran, Man the Guns'da olacakken, kişilik özellikleri ve kazanılabilir özellikler gibi temel şeyler ücretsiz yamada olacaktır. Tıpkı Waking the Tiger'in genel özellikleri gibi.


 
İşte özellik ağacı:


Görebildiğiniz gibi, özelliklerin çoğunun bir önceki özelliklere sahip olma zorunlulukları olacaktır.

Güçlü sermaye gemilerine odaklanmak istiyorsanız, Ironside gibi şeyler var, Blockade Runner gibi taşıyıcı yetenekleri için hava kontrolörü, akıncılar için gizlenme uzmanı ve sessiz avcı. Ayrıca, Flyswatter ve Fleet Protector altında daha hafif gemilerin kullanımını iyileştirmek için yollar da var. Bu önemlidir çünkü hafif gemiler, filolarınız ve deniz operasyonlarınız için çok daha gerekli olacaktır.


Modlama

Düzen

Programlama deneyimine sahip kişiler, düzen kavramına zaten aşinadır. Olmayanlar için, düzen temelde veri kaplarıdır. HoI4'te, değişkenler (ve devletler ve ülkeler gibi değişkenler olarak saklanabilecek şeyler) kaplarıdırlar.

Düzen desteği, mevcut değişken sistemdeki bir uzantıdır. Değişkenleri (ülkeler, eyaletler, birim liderleri veya dünya çapında) depolayabileceğiniz her yerde düzenini saklayabilirsiniz.

Bir örnek verelim:
_____________________________________________________________________________________________________________________
#create an example array with 3 countries, named "array_example"
add_to_array = { array_example = GER }
add_to_array = { array_example = ITA }
add_to_array = { array_example = TUR }

# calculate total pp of these 3 countries
set_temp_variable = { sum_pp = 0 }
for_each_scope_loop = {
    array = array_example
    add_to_temp_variable = { sum_pp = political_power }
}

if = {
    # do they have more than 100 pp?
    limit = { check_variable = { sum_pp > 100 } }
 
    # remove 33 pp
    for_each_scope_loop = {
        array = array_example
 
        add_political_power = -33
    }
 
    #pp spent, now do business
}
_____________________________________________________________________________________________________________________
Burada Almanya, İtalya ve Türkiye'nin bir tür anlaşma yaptığını ve toplamda 100'den fazla paya sahip olduklarında bir etki yaratmayı istediğimi varsaydım.

Bu, dizilerin kullanımına sadece bir örnektir. Diğer yazımda bulunan dizilerle etkileşimde bulunmanın birçok yolu daha var.

Yaratabileceğiniz veya değiştirebileceğiniz dizilere ek olarak, oyun "oyun değişken dizilerini" destekleyecektir."Oyun değişkenleri" ne benzer şekilde, çeşitli kapsamlarda oyun verilerinde kullanılan sabit dizilere erişebileceksiniz. Örneğin, ülke kapsamındaki "düşman" dizisine erişmek, bir ülkenin düşmanlarına erişmenizi sağlayacaktır.

Meta Efektleri ve Meta Tetikleyiciler

Bu, EU4'ten ödünç aldığımız bir şeydir, ancak uygulama ve kullanım farklıdır. Meta efektler ve meta tetikleyiciler, modcuların dinamik olmayan efektleri / tetikleyicileri (değiştiricileri kabul etmeyen ve yalnızca statik belirteçleri veya sabit değerleri kullanabilenleri) değişkenleri kabul ediyormuş gibi kullanmasına izin verecektir. Açıklamak zor ve bir örnek verelim! Aşağıdaki kodu dikkate alın:
_____________________________________________________________________________________________________________________
add_equipment_to_stockpile = {
    type = infantry_equipment_2
    amount = eq_amount
}
_____________________________________________________________________________________________________________________
Bu efektte, miktar dinamiktir ve bir değişken kullanılarak ayarlanabilir (burada eq_amount değişkenine ayarlanmıştır).

Ancak meta efektler ile her şey mümkündür! Meta efektler, script'lerin, metinler gibi davranıp etkilerini yürütmek için değişkenler ve komut dosyasıyla yerelleştirmeyi, efektleri içinde kullanmalarına izin verecektir. Şimdi önceki etkiyi, eq_type ve eq_level'de depolanan değişkenler olarak ekipman tipi ve ekipman seviyesini kabul edelim.
_____________________________________________________________________________________________________________________
set_temp_variable = { eq_type = 1 }
set_temp_variable = { eq_amount = 10 }
set_temp_variable = { eq_level = 2 }

meta_effect = {
    text = {
        add_equipment_to_stockpile = {
            type = [EQ_TYPE]_[EQ_LEVEL]
            amount = eq_amount
        }
    }
    EQ_LEVEL = "[?eq_level|.0]"
    EQ_TYPE = "[This.GetEquipmentName]"
}

# scripted localization
defined_text = {
    name = GetEquipmentName
    text = {
        trigger = {
            check_variable = { eq_type = 0 }
        }
        localization_key = "infantry_equipment"
    }
    text = {
        trigger = {
            check_variable = { eq_type = 1 }
        }
        localization_key = "artillery_equipment"
    }
    # tüm ekipmanları buraya bir endeks verin
}
_____________________________________________________________________________________________________________________

Burada iki argüman alan bir meta_effect oluşturduk. Bu argümanlar, meta efekti içindeki parametreleri ([EQ_TYPE] ve [EQ_LEVEL]) değiştirmede kullanılacaktır. EQ_TYPE biraz daha karmaşıktır, yazıya dökülmüş bir yerelleştirme ile değiştirilmektedir. Bu komut dosyası yerelleştirmesi, eq_type değişkenini kontrol eder ve değerine bağlı olarak, ekipman için anahtar belirtecini döndürür. 0 ise, infantry_equipment öğesinden dönecektir. Eğer iki ise, artillery_equipmenti iade eder.

Sonuç olarak [EQ_TYPE], "artillery_equipment" ile değiştirilir ve [EQ_LEVEL], "2" ile değiştirilir, efektimiz şu şekilde oluşturulur:
_____________________________________________________________________________________________________________________
add_equipment_to_stockpile = {
    type = artillery_equipment_2
    amount = eq_amount
}
_____________________________________________________________________________________________________________________

Scripted_effects veya scripted_triggers içinde meta_effects kullanmak ve değiştirmek mümkün olacak, bu yüzden bu kıvrımlı parçalar sadece bir kez yazılacaktır.

Dinamik değiştiriciler

Şu anda değiştiricilerimiz sadece statik değerler içerebilir ve bunlar içinde değişkenleri kullanamazsınız. Dinamik değiştiricilerle, ülkeye ve eyaletlere bu tür değiştiricileri eklemek mümkün olacak. Bazı şeyleri basit tutmak için, dinamik modifiye edicilerin yalnızca efektlerle eklenmesi ve kaldırılmasıyla sınırlı kaldık, ancak gelecekte bazı QoL iyileştirmeleri eklenebilir.

Bildirimleri, değişkenleri değiştirici değerleri olarak kabul etmeleri dışında, statik değiştiricilere benzer.

_____________________________________________________________________________________________________________________
dynamic_modifier_example = {
    political_power_factor = pp_factor_variable
}
_____________________________________________________________________________________________________________________

Bunun gibi bir dinamik değiştirici ilan ettikten sonra, bu değiştiriciyi geçerli kapsama eklemek için aşağıdaki efekti çalıştırabilirsiniz.

_____________________________________________________________________________________________________________________
set_variable = { pp_factor_variable = 0.15 }
add_dynamic_modifier = { modifier = dynamic_modifier_example }
_____________________________________________________________________________________________________________________

Bu örnek, kapsam ülkesine "dynamic_modifier_example" dinamik değiştiricisini ekleyecektir. Bu değiştirici, ülkede bulunan "pp_factor_variable" değerine eşit ülke pp kazanç faktörü verecektir. Bu örnekte, 0.15 kaydedildi, böylece ülke% 15 daha fazla pp kazancı elde edecek. Pp faktörü değişken katmanının değerini başka bir etkiyle değiştirdiğinizde, ülkenin aldığı bonus da güncellenecektir.

Dinamik modifiye simgeleri vermek mümkün. Bu durumda GUI'de görünürler. Örneğin, bir simge tanımlanmışsa, "national spirits" olsaydı, eklenen ülke dinamik değiştiricileri görünecektir.



Bu örnekte, Türkiye'nin içinde iki dinamik değiştirici vardır. Ve burada bir simge tanımladık, böylece national spirits listesinde ortaya çıktı. Bu dinamik değiştiricilerin her ikisi de aynı, ancak bir tanesi İtalya'da hedefleniyor, diğeri ise Fransa'da hedefleniyor ve bu kapsamlardan “Yakıt Kapasitesi” nin değeri okunuyor. Ayrıca, bu değiştiricileri ekleyen etki bir süre tanımladı ve bu değiştiriciler bundan dolayı iki gün içinde kaldırılacak.

Daha fazla Scripted-GUI özellikleri

Canlı versiyondaki bazı talihsiz hata ve analizleri düzeltmekten başka, scriptli GUI'ler için "dinamik listeler" desteği de ekliyoruz.

Dinamik listeler, modcuların kendi listelerini oluşturmasına ve bu listeleri belirttikleri bir dizi kullanarak doldurmasına izin verecektir. Eski bir geliştirici günlüğünde, bu sneak peeki gösterdim:



Buradaki her hücre, 64 elemanlık bir dizi kullanılarak dinamik olarak yaratılır ve her elemanın değeri, hücre durumunu temsil eder. Her hücre elemanı, dizi elemanının kapsamını ve değerini kullanarak oluşturulmaktadır.

Başka, daha aşağı yeryüzüne örnek:



Alt liste ülkenin müttefikleri kullanılarak doldurulur. Almanya için bu dizinin iki unsuru var, İtalya ve Türkiye böylece alt listede iki giriş oluşturur. Alt listenin elemanlarını oluştururken, kapsam, elemandaki her girişe göre değişir (eğer eleman kasılamazsa, örnekte de gösterilmiş olan elemanın değerine ve indeksine erişmenin yolları vardır)

Üst liste, ülke kapsamında saklanan bir dizi kullanılarak oluşturulur ve başlangıçta boştur. “Öğe Ekle” düğmesine basıldığında, listenin kendisini güncelleyen bu diziye rastgele bir ülke ekleyen bir etki çağrılır.

Izgara olarak gösterilen orta bayraklar da başka bir dinamik liste. Bu örnek listelerin içindeki listelerin de mümkün olduğunu göstermek için verilmiştir.

Şimdilik için benden bu kadar, görüşmek üzere...
« Son Düzenleme: 06 Eylül 2018, 21:07:17 Gönderen: Ethred »
 
Sıralanan üye(ler) bu iletiyi beğendi: kerem1249, 25itroy25, TheAnime

Çevrimdışı RoadWarriror

  • Community Manager
  • Yönetici
  • Ataşe
  • *
  • İleti: 400
  • Beğenildi: 64 kere
  • Bütün insanlar dünyadaki denizler gibi kardeşlerdi
    • Profili Görüntüle
Ellerine sağlık, harika olmuş.
 

Çevrimdışı kerem1249

  • Hedefinden asla sapma
  • Yönetici
  • Orgeneral
  • *
  • İleti: 3235
  • Beğenildi: 150 kere
  • Eşsiz gözlerin, senden başkası yok benim için.
    • Profili Görüntüle
    • Kerem1249 Blogu
Büyük önder Atatürk'ün portresini bir günlükte uzun zaman sonra kullanmaları çok güzel.
Biz Türkler tarih boyunca bağımsızlık ve özgürlük timsali olmuş bir milletiz.
Mustafa Kemal Atatürk

1881~
O'nu sonsuzluğa uğurlayışımızın 80. yıldönümünde tükenmez bir özlemle anıyoruz.
 
Sıralanan üye(ler) bu iletiyi beğendi: 25itroy25

 

Forumdan uzaklaştırmalara itiraz, yasal talepler veya uygunsuz içerik bildirimlerinizi İletişim Sayfamız üzerinden yapabilirsiniz. 3 gün içerisinde yanıt verilecektir.