Next Run · Modlar
Next Run Mod Kılavuzu
Next Run modlarının nasıl çalıştığı, dosya yapısı ve oyun bileşenleri hakkında ayrıntılı açıklama. Kendi modlarınızı oluşturup yayımlarken hızlı yanıtlar için bu bağlantıyı kaydedin.
1. Genel
Bu belge Next Run'daki mod sistemini açıklar: modları nasıl kuracağınızı, kendi modlarınızı nasıl oluşturacağınızı ve onları diğer oyuncularla nasıl paylaşacağınızı anlatır.
- Modların nasıl oluşturulduğunu ve nasıl çalıştığını anlamak için 2. bölümü en az bir kez okuyun.
- 3. ve 4. bölümleri başvuru olarak kullanın.
- Nasıl çalıştığını uygulamada görmek için oyundaki örnekleri kullanın, Steam Workshop'ta: https://steamcommunity.com/app/1295870/workshop/.
- Sürüm 1.1.0 için oyun dosyalarını burada bulabilirsiniz: https://clarusvictoria.com/files/next_run_files_examples_1.1.0.zip.
2. Mod sistemi
Oyunu başlattıktan ve "Oyna" ile "Oyun oluştur" düğmelerine tıkladıktan sonra oyun dizinindeki Mods klasörü taranır. Bu dizindeki her alt klasör, modinfo.json dosyası varsa mod olarak kabul edilir.
2.1. Steam Workshop, modların kurulumu ve yayımlanması
Oyunu Steam istemcisinden çalıştırırsanız, "Oyna" menüsünde aşağıdaki düğmeleri içeren bir "Modlar" paneli bulunur:
- Steam Workshop
- Modlar klasörü
- Yayımla
- Kılavuz
2.1.1. Steam Workshop
Steam Workshop'u Steam istemcisi içinde açar. Bir modu indirmek için ona abone olun. İndirme otomatik olarak başlar; mod büyükse biraz zaman alabilir. İndirme durumu Steam istemcisinde gösterilir.
2.1.2. Modlar klasörü
Oyununuzun Modlar klasörünü açar.
2.1.3. Yayımla
Oyun, Mods klasörünü otomatik olarak tarar ve yazarı olarak listelendiğiniz tüm modları Steam Workshop'a yükler.
- Mod yeniyse, steam_id otomatik olarak oluşturulur.
- Mod zaten varsa güncellenir.
- Yükleme sırasında yayımlama düğmesinin görünümü değişir.
- Mod yalnızca içerikte değişiklik varsa yayımlanır.
- modinfo.json dosyasındaki değişiklik içerik değişikliği olarak sayılmaz.
- Yayımlanan modlar dünya çapındaki oyunculara açılır. Steam Workshop modları dağıtmanın tek yolu değildir — mod klasörünü Mods dizinine koyarak doğrudan da paylaşabilirsiniz.
2.1.4. Kılavuz
Bu kılavuza bağlantı.
2.2. JSON dosyaları
Oyundaki tüm veriler ve metinler JSON biçimini kullanır. Düz metinden temel fark, verilerin {} küme parantezleri içinde olması gerektiğidir.
JSON sözdizimi kaynakları:
- https://en.wikipedia.org/wiki/JSON
- https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON
Oyun dosyalarındaki örnekleri referans olarak kullanmanızı öneririz.
2.3. Dosya yapısı
Her mod oyununkine benzer bir klasör yapısına sahiptir. Bu dosyalar yeni içerik ekler veya mevcut içeriği değiştirir. JSON dosyaları oyun öğelerini ekler veya değiştirir. Diğer biçimlerdeki (png, ogg) dosyalar bütünüyle değiştirilir.
Örnek: data/game.json dosyası oluşturup içindeki "Warrior" varlığını (oyun sınıfı) değiştirirseniz yalnızca bu sınıf değişir; game.json içindeki diğer varlıklar aynı kalır. portrait_warrior_front.png dosyasını eklerseniz, isim eşleştiği için oyundaki ilgili görseli tamamen değiştirir.
Bir modun içinde zorunlu ve isteğe bağlı dosya ve klasörler vardır. Standart yapı şöyledir:
- Mod klasörünün adı (herhangi bir ad olabilir, mod adı değildir)
- modinfo.json
- preview.png
- data/
- icons/
- sounds/
- texts/
- tiles/
Daha iyi anlamak için oyundaki örnekleri ve mevcut modları incelemenizi öneririz. Aşağıda her klasör ve dosyanın ayrıntılı açıklaması yer alır.
2.3.1. modinfo.json
Mod meta verilerini içeren dosya. Bu verilerin bir kısmı mod yayımlanırken Steam Workshop tarafından kullanılır.
- title — modun adı, Steam'de gösterilir.
- version — mod sürümü.
- description — mod açıklaması.
- tags — Steam Workshop'ta gezinmek için etiketler.
- order — modların yüklenme sırası. Aynı verileri değiştiren birden fazla mod varsa order değeri yüksek olan, düşük olanı geçersiz kılar.
- steam_id — elle belirtmeniz gerekmez, yayımlama sırasında otomatik oluşur.
- created_time — oluşturulma zamanı.
- changed_time — değiştirilme zamanı.
- Başka alanlar ekleyebilirsiniz, ancak yalnızca dosya içinde kullanılır. Modun yazarı Steam Workshop üzerinden otomatik belirlenir.
2.3.2. preview.png
Modun Steam Workshop'taki simgesi. Önerilen çözünürlük 256x256 veya 512x512'dir. En boy oranı kare olmalıdır. Şeffaf PNG veya JPG kabul edilir.
2.3.3. data
JSON veri dosyalarının bulunduğu klasör. Mevcut oyun varlıklarını değiştiren veya yenilerini ekleyen dosyaları içerir. Yalnızca değiştirmeniz veya eklemeniz gereken dosyaları ve alanları oluşturabilirsiniz. Değiştirilebilir verilerin ayrıntılı açıklaması 3. bölümde verilmiştir.
2.3.4. icons
Oyunun simgelerinin bulunduğu klasör. GUI ve karolar dışında çoğu görseli içerir. Farklı oyun durumları için birkaç standart boyut ve katman kullanılır. Oyunda şeffaf arka planlı PNG dosyaları kullanılır.
2.3.5. sounds
Sesler ve müziklerin bulunduğu klasör. Yeni dosyalar ekleyebilir veya mevcutları değiştirebilirsiniz. Kullanılan biçim OGG'dir.
2.3.6. texts
Oyunun yerelleştirilmiş metinlerinin bulunduğu klasör. Her dosya bir dili temsil eder ve IETF BCP-47 / ISO standardını kullanır. Şu anda 13 dil desteklenir: ruRU.json, trTR.json, jaJP.json, koKR.json, zhTW.json, zhCN.json, plPL.json, ptBR.json, itIT.json, esES.json, frFR.json, deDE.json, enUS.json.
2.3.7. tiles
Karoların görsellerini içeren klasör. Şeffaf arka planlı PNG dosyaları kullanılır. Standart karo boyutu 256x384'tür. Karolar toprak, nesneler, orman, dağlar, yollar gibi birden çok katmandan oluşur.
2.4. Mod senkronizasyonu
Bir mod edindikten sonra, oyun her başlatıldığında Steam Atölyesinde yayımlanan en son sürümle otomatik olarak senkronize edilir.
Modun yazarı sensen senkronizasyon yapılmaz ve mod dosyaları üzerine yazılmaz. Bu, mod üzerinde çalışırken oyunu yeniden başlattığında değişikliklerinin kaybolmamasını sağlar.
Başkasının modunu temel alarak bir mod oluşturmak istiyorsan, oyunu yeniden başlatmadan önce şunları yapmalısın:
- Mod klasörünün adını, kimliğinden farklı herhangi bir adla değiştir.
- modinfo.json dosyasındaki şu alanları sil: "author", "created_time", "steam_id", "changed_time".
2.5. Veri birleştirme
Modların ve oyunun JSON veri dosyaları değiştirilmez, birleştirilir.
Birleştirme sırası:
- Temel olarak oyunun JSON dosyalarındaki özgün varlıklar alınır.
- Üzerlerine mod verileri uygulanır. Modlar, modinfo.json dosyasındaki order alanında tanımlanan önceliklere göre uygulanır.
Birleştirme sırasında tüm bileşenlerin her alanı ayrı ayrı işlenir. Örneğin bir varlıkta "hideIfZero":true varsa ve değerin false olması gerekiyorsa, alanı silmek yeterli değildir — "hideIfZero":false değerini açıkça belirtmeniz gerekir.
list.json dosyasındaki listeler aynı şekilde birleştirilir. Sadece tek bir öğe eklemek istiyorsanız tüm alanlarıyla her listeyi çoğaltmanız gerekmez. Ancak yalnızca basit veriler içeren listeler tamamen değiştirilir; örneğin RndGoodEvents ve RndEvents.
3. Bileşenler
Next Run ECS mimarisi üzerine kuruludur. Oyun tamamen varlıklardan oluşur. Bir varlık, bileşenler için bir kaptır ve yalnızca id alanını içerir. Diğer tüm veriler bileşenlerle tanımlanır. Tüm veriler JSON dosyalarında belirlenir.
Bir JSON dosyasındaki örnek kayıt:
"Speed": {
"Button": {"panel": "statsPanel","iconType": "btnBig","numText1Type": "total","icon": "arrow2"},
"Tooltip": {"text": "Speed"},
"Total": {"now": 25}
}Bu örnek, üç bileşenli "Speed" varlığını tanımlar: Düğme — oyundaki düğmenin görünümünü ve davranışını belirler; Tooltip — bilgi balonu açıklaması; Toplam — varlığın sayısal değeri, bu örnekte hız 25'tir.
Aşağıda bileşenlerin ve alanlarının daha ayrıntılı açıklaması vardır. Bazı bileşen özellikleri otomatik olarak tanımlanır ve JSON dosyalarında düzenlenemez. Örneğin, bir zindanın Temizleme zorluğu, seviyeye ve oyun tarafından hesaplanan diğer parametrelere bağlıdır.
3.2. Tooltip
Düğmenin bilgi balonu içeriğini tanımlar.
- text = string, oyunda görünen varlık adı.
- dontShowDuration = bool, varlığın süre değerini göstermeyi engeller.
- hideSources = bool, bu değeri etkileyen kaynak varlıkların gösterimini engeller.
- hideAsSubjTT = bool, ilişkili varlıklar için kaynak olarak bu nesnenin gösterimini engeller.
- desc = string, açıklama metni, ipucunun başında yer alır.
- desc2 = string, açıklama metni, ipucunun sonunda yer alır.
- redDesc = string, kırmızı renkle vurgulanan açıklama metni, sonunda yer alır.
- totalTextAs = string, "Toplam" yerine kullanılan metin.
- ttPos = string, ipucunun düğmeye göre konumu, seçenekler "top", "left".
3.3. GameClass
Bir oyun sınıfının mekaniğini tanımlar.
- text = string, oyunda sınıf adı.
- portrait_back = string, sınıf seçiminde arka plan görseli 391x598.
- portrait_front = string, sınıf seçiminde sınıf görseli 411x620, şeffaf.
- figurine = string, haritadaki karakter avatarı görseli 149x243.
- doll = string, envanterde sınıfın siyah-beyaz görseli 460x784.
- bonusSkill1 = string, bonus olarak verilen 1. beceri adı.
- bonusSkillVal1 = double, 1. becerinin bonus miktarı.
- bonusSkill2 = string, bonus olarak verilen 2. beceri adı.
- bonusSkillVal2 = double, 2. becerinin bonus miktarı.
- debuffSkill1 = string, ceza alan 1. beceri adı.
- debuffSkillVal1 = double, 1. ceza miktarı.
- debuffSkill2 = string, ceza alan 2. beceri adı.
- debuffSkillVal2 = double, 2. ceza miktarı.
- gold = double, sınıfın başlangıç Altın miktarı.
- remains = double, başlangıçtaki kalıntı sayısı.
- equip = List<string>, başlangıçta kuşanılacak eşyaların listesi.
- units = string, başlangıçtaki yaratık adı.
- itemName = string, başlangıçtaki envanter eşyasının adı.
- itemNum = double, başlangıçtaki envanter eşyası sayısı.
- learnList = string, öğrenilecek büyü veya plan listesi adı, liste list.json dosyasındadır.
- learnNum = double, listeden öğrenilecek büyü veya plan sayısı.
- lessTime = double, cehennem saldırıları arasındaki sürenin ne kadar kısaldığı.
- manaBonus = double, mana bonusu, maksimum ve toplam.
- upgradeDexterityBonusMod = double, Çeviklik becerisinden gelen yükseltme bonusu.
- skillPointsPerLevel = double, seviye başına verilen beceri puanı sayısı.
- upgradeManaCostMod = double, büyü yükseltme verimliliği bonusu.
- freeRegion = bool, ücretsiz bölge.
- necroBonus = bool, Nekromant oynanışı ve bonusları.
- druidBonus = bool, Druid oynanışı ve bonusları.
- stances = bool, duruşlar/biçimler/emirler var mı.
- defStance = string, varsayılan duruş.
- notDemo = bool, sınıf demoda kullanılamaz.
- notTutorial = bool, sınıf Eğitimi modunda kullanılabilir mi.
3.4. GameMode
Bir oyun modunun mekaniğini tanımlar.
- text = string, oyundaki mod adı.
- back = string, mod seçiminde arka plan görseli 391x598.
- moreTime = double, cehennem saldırıları arasındaki sürenin ne kadar uzadığı.
- lessTime = double, cehennem saldırıları arasındaki sürenin ne kadar kısaldığı.
- woundChance = double, yara alma Şansı.
- notDemo = bool, mod demoda kullanılamaz.
- scenario = string, bu mod için özel harita adı.
- noHellAttacks = bool, bu modda cehennem saldırıları yok (kum havuzu gibi).
- savesOnExitOnly = bool, bu modda kayıt yalnızca oyundan çıkarken yapılır.
3.5. Biome
Biyom mekaniğini belirler.
- frequency = double, harita oluşturulurken biyomun ortaya çıkma sıklığı; sayı ne kadar yüksekse o kadar sık. 0 ise üretilmez. Lava biyomu final bölge olarak her zaman oluşur.
- hexBase = string, bu biyom için altıgen temel karo, yerleşimlerin altına serilir.
- music = string, biyomun müzik parçası dosya adı.
- hexPatterns = List<string>, biyomdaki nesne şablonlarının listesi. Bir deste gibi çalışır: şablonlar karıştırılıp rastgele çekilir, 0'a ulaşınca yeniden oluşturulur. Şablon biçimi: ad1#ad2, # nesneler arasındaki ayırıcıdır.
- mobLevel1 .. mobLevel8 = string, bölge seviyesine göre üretilen yaratıkların adı.
3.6. TileAsset
Harita üzerindeki bir nesnenin görünümünü belirler.
- tileMap = string, LandTilemap — toprak yüzeyi, ObjectTilemap — normal nesne, RoadTilemap — yol vb.; fark, katmanların üst üste bindirilme sırasıdır.
- rawSprite = string, haritaya eklenecek 256x384 görsel.
- icon = string, tüm TileMap katmanlarının üzerinde eklenecek simge.
- buttonIcon = bool, simgenin Button'dan alınması gerekip gerekmediği.
- delLevel = double, nesnenin bir eylemle kaldırılma zorluğu.
3.7. Shop
Mağaza mekaniğini tanımlar.
- slots = int, mağazadaki yuva sayısı.
- type = string, list.json içindeki mağaza ürün yelpazesi adı.
3.8. Item
Bir eşyanın mekaniğini tanımlar.
- slot = string, ekipman yuvasının adı.
- stackable = bool, aynı yığında birden fazla eşya olup olamayacağı.
- upgradable = bool, eşyanın yükseltilip yükseltilemeyeceği; yükseltme süresi seviyeye bağlıdır.
- upProgress = double, yükseltme süresi.
- order = double, mağazadaki eşya sırası; sayı ne kadar küçükse o kadar yukarıda.
3.9. Mob
Bir yaratığın mekaniğini tanımlar.
- hell = bool, yaratık cehennem kökenli. Rüşvet cezası. Cehennem saldırılarına katılır. Kalıntı bonusu.
- undead = bool, yaratık ölümsüz. Rüşvet verilemez. Özel yükseltme mekaniği.
- type = string, yaratık sınıfı — "Warriors", "Defenders", "Mages", "Gatherers", "Crafters". Arka plan rengini, oyuncuya isabet Şansını, hasar türünü ve ganimet türünü belirler.
- upMob = string, yaratığın yükseltildiğinde olacağı isim.
- upCostName = string, yükseltme için gereken eşya adı.
- upCostNum = double, gerekli kaynak miktarı, varsayılan 1.
3.10. Dungeon
Zindan mekaniğini tanımlar.
- magic = bool, zindan büyülü. Hasar, ganimet ve eklere etki eder.
- boss = bool, final zindan.
3.11. Ruins
Harabeler mekaniğini — eşya arama yerlerini — tanımlar.
3.12. Addon
Eklenti mekaniği. Eklentiler zindan veya harabelerin bulunduğu hücrede yer alan, parametrelerini değiştiren ve ayrı ödüller veren nesnelerdir.
- skill = string, zindan Temizleme veya harabe incelemesi tamamlandığında oyuncunun alacağı beceri. "Random" veya örneğin "Strength" belirtilebilir.
- unit = string, eylem tamamlandıktan sonra alınacak bonus yaratık. "Random" yazılabilir.
- item = string, eylem tamamlandıktan sonra alınacak bonus eşya. "Random" yazılabilir.
- phyChanceMulti = double, Temizleme sırasında fiziksel hasar Şansı çarpanı. Örneğin %50.
- magChanceMulti = double, Temizleme sırasında büyü hasarı Şansı çarpanı. Örneğin %50.
- progressMulti = double, Temizleme veya İnceleme eyleminin ne kadar daha uzun süreceği. Örneğin %100.
- dmgMulti = double, Temizleme sırasında hasar miktarı çarpanı. Örneğin %50.
3.13. Build
Bu nesnenin bir yapı olduğunu belirtir.
3.14. Center
Bu nesnenin bir yerleşim olduğunu belirtir.
- captureProgress = double, yerleşimi ele geçirmek için gereken çaba.
- upProgress = double, yerleşimi yükseltmek için gereken çaba.
- upCostName1 = string, yükseltme için gereken 1. eşyanın adı.
- upCostNum1 = double, 1. eşyanın gerekli miktarı.
- upCostName2 = string, 2. eşyanın adı.
- upCostNum2 = double, 2. eşyanın miktarı.
- upCostName3 = string, 3. eşyanın adı.
- upCostNum3 = double, 3. eşyanın miktarı.
- upProp = string, yerleşimin yükseltileceği varlık.
3.15. Gatherable
Bu nesnenin Kaynak toplama ile elde edilebileceğini ve kaynak sağlayacağını belirtir.
- gather = string, elde edilecek kaynak adı.
- deposit = bool, bu kaynağın bir maden yatağı olup olmadığı; evet ise burada maden inşa edilebilir.
3.16. AlliedForest
Druid olarak oynarken "Müttefik ormanı" mekaniğini ve değerlerini tanımlar.
- allyBonus = double, "Müttefik ormanı" bonusunun değeri.
3.17. Graveyard
Nekromant için önemli olan mezarlık mekaniğini tanımlar. Burada elde edilebilecek kalıntı miktarı rastgele belirlenir.
- now = double, mevcut kalıntı değeri.
- rndMin = double, kalıntı sayısının minimum rastgele değeri.
- rndMax = double, kalıntı sayısının maksimum rastgele değeri.
- rndCeil = bool, rastgele değer hesaplanırken yukarı yuvarlama.
3.18. Pred
Eylem bileşeni. Bileşenin çoğu işlevi kodda saklıdır, ancak bazı kısımlar kullanılabilir.
- action = string, eylem tamamlandığında çalışacak eylem adı.
- local = bool, nesneyle etkileşim için aynı hücrede bulunma gerekliliği.
- attackPred = bool, bu eylem Saldırı niteliğinde; bir savaş büyüsü uygulanırsa otomatik olarak çalışır.
- gatherPred = bool, bu eylem Kaynak toplama niteliğinde; kaynak toplama büyüsü uygulanırsa otomatik çalışır.
- craftPred = bool, bu eylem zanaat niteliğinde; zanaat büyüsü uygulanırsa otomatik çalışır.
- skill = string, eylemi gerçekleştirmek için kullanılan beceri; örneğin saldırı eylemleri için Saldırı becerisi kullanılır.
- longPred = bool, bu eylem anlık değildir ve zaman gerektirir.
- repeat = bool, eylem durdurulana kadar tekrarlanır.
- noOwner = bool, bu eylem için herhangi bir nesnenin seçilmesi gerekmez.
- skipLongTooltip = bool, eylem için basitleştirilmiş ipucu kullanır.
- onlyClass = string, bu eylem (duruş, biçim veya emir türü) yalnızca belirli bir sınıfa açıktır.
3.19. Total
Bir varlığın sayısal değerini tanımlayan bileşen; genellikle miktarı ifade eder.
- now = double, mevcut değer.
- inc = double, tur başına artış.
- max = double, maksimum değer.
- min = double, minimum değer.
- rndMin = double, rastgele sayının minimum değeri.
- rndMax = double, rastgele sayının maksimum değeri, now değerini değiştirir.
- rndCeil = bool, rastgele değer oluşturulurken yukarı yuvarlama.
- overMax = bool, sınırın aşılmasına izin verir.
- delIfZero = bool, değer 0 ise sil.
- numPercent = bool, değer yüzde midir.
3.20. Level
Bir varlığın Seviye bileşeni.
- now = double, mevcut değer.
- max = double, maksimum değer.
- min = double, minimum değer.
- localLevelPlus = int, yerel seviye bonusu; yalnızca haritadaki nesneler için çalışır, seviyeleri bölge seviyesi artı bu değer olur.
3.21. Duration
Bir varlığın süresini tanımlayan bileşen.
- now = double, mevcut değer.
- max = double, maksimum değer.
- min = double, minimum değer.
- delIfZero = bool, değer 0 ise sil.
3.22. Mods
Değiştirici listesi bileşeni. Bu bileşen oluşturulduğunda diğer varlıkları etkileyen bir değişiklik seti oluşur. Varlık silindiğinde bu değişiklikler kaybolur.
- radius = int, değiştiricinin etki yarıçapı; yalnızca haritada çalışır.
- objType = string, değiştiricinin uygulanacağı varlık türü, örneğin "Stat", "Skill", "Prop", "Item", "ModableVal", "PropMod".
- objName = string, varlık adı, örneğin "Speed".
- objComp = string, değiştirilecek bileşen, örneğin "Total", "Level".
- objKey = string, bileşende değiştirilecek alan, örneğin "now", "inc", "max".
- modType = string, alanı etkileme yöntemi: "add", "mult", "addPerLevel", "multPerLevel".
- now = double, değişikliğin değeri.
- subjTooltipText = string, dinamik ipucuna özne bilgisi eklenir.
- skipPerTooltip = bool, ipucunda PerLevel yerine Plus kullanılır.
- skipSubjTooltip = bool, bu özne için ipucunu atla.
3.23. ModableVals
Oyun için küresel değişkenler listesi bileşeni. Belirli bir varlığa bağlama koşullu. Bu değişkenlerin çoğu mantığı oyunun kodunda saklıdır.
- now = double, değişkenin değeri.
3.24. Slot
Bu bileşen varlığı envanterde bir yuva olarak tanımlar.
- name = string, yuva adı. Bir eşyanın bu yuvaya konması için Item bileşenindeki slot alanıyla eşleşmelidir.
3.25. Container
Bu varlığı hücrelere sahip bir konteyner olarak tanımlar.
- cells = int, konteynerdeki hücre sayısı.
- cellsPanel = string, panel adı.
3.26. Tom
Bu varlığın öğrenilebilen ve büyü veya yükseltme veren bir büyü tomarı olduğunu belirtir.
- cast = string, öğrenilecek büyünün adı.
3.27. Cast
Bu varlığın bir büyü olduğunu belirtir.
- mana = double, büyünün mana maliyeti.
- predSkill = string, bu büyü etkinleştirildiğinde hangi eylem türünün tetikleneceği; örneğin Attack türü için saldırı eylemleri otomatik başlar.
- notSkills = string, bu büyünün kullanılması için hangi eylemin gerektiğine dair ipucu.
- attack = double, Saldırı türü eylemleri ne kadar hızlandırdığı; bu büyü hasarı olarak düşünülebilir.
- gather = double, Kaynak toplama eylemlerini ne kadar hızlandırdığı.
- craft = double, zanaat eylemlerini ne kadar hızlandırdığı.
- heal = double, oyuncu kahramanının ne kadar iyileştiği.
- newEvent = string, büyünün tetiklediği etkinlik adı; genellikle güçlendirme türü etkinliklerdir.
- teleport = bool, seçilen konuma ışınlanma.
- explore = double, bu hücreyi ve komşu hücreleri keşfeder.
3.28. Blueprint
Plan varlığının mekaniği.
- item = string, üretilecek eşyanın adı.
- build = string, inşa edilecek yapının adı.
- costName1 = string, üretim için gereken 1. eşya adı.
- costNum1 = double, 1. eşyanın gerekli miktarı.
- costName2 = string, 2. eşya adı.
- costNum2 = double, 2. eşya miktarı.
- costName3 = string, 3. eşya adı.
- costNum3 = double, 3. eşya miktarı.
3.29. Cost
Satın alma ve satış için fiyatı belirleyen fiyat bileşeni.
- raw = double, temel fiyat, değiştiriciler olmadan. Satın alma ve satış fiyatları buradan hesaplanır.
3.30. Event
Etkinlik bileşeni.
- uniq = bool, etkinlik benzersizdir; aynı isimde yeni bir etkinlik gelirse eski olan silinir.
- rndEvent = bool, etkinlik rastgeledir.
- nextEvent1 = string, mevcut etkinlik bittiğinde başlayacak ilk etkinlik adı.
- nextEvent2 = string, mevcut etkinlik bittiğinde başlayacak ikinci etkinlik adı.
- castType = string, büyünün güçlendirme etkisi türü; aynı türü olanı geçersiz kılar.
3.31. Proc
Şans mekaniği bileşeni; örneğin hastalık oluşma olasılığı.
- addEvent = string, şans gerçekleşirse çalışacak etkinlik.
3.32. ProcMod
Bir varlığın şans (proc) olasılığını etkilemesini sağlayan bileşen.
- proc = string, bu bileşenin etkilediği proc adı.
- chance = double, etki gücü; işlevin bir kısmı koddadır.
- dependsLevel = bool, varlığın seviyesine bağlılık.
3.33. Usable
Tek kullanımlık eşyalar için bileşen; örneğin iksirler. Kullan eylemiyle etkinleşir ve etkisini verir.
- stat = string, etkilediği stat adı.
- skill = string, etkilediği beceri adı.
- nowBonus = double, Total.now alanını etkileyen bonus.
- maxBonus = double, Total.max alanını etkileyen bonus.
- cure = bool, eğer doğruysa Hastalık etkisini iyileştirir.
3.34. Drankable
Haritadaki bir nesnenin içilebildiğini belirtir; örneğin Göl, Vaha vb.
3.35. Sphinx
Haritadaki bir görev nesnesi olan Sfenks bileşeni. Parametreler, bölge seviyelerine göre otomatik belirlenir.
3.36. Living_tree
Haritadaki görev nesnesi Canlı ağaç bileşeni. Parametreler, bölge seviyelerine göre otomatik belirlenir.
3.37. Vision
Oyuncu kahramanı bu varlığın bulunduğu konuma girdiğinde haritada artırılmış görüş yarıçapı sağlayan nesne mekaniği.
- explore = int, keşif yarıçapı. 1 — normal keşif, 2 — bir hücre daha geniş.
3.38. Remains
Kalıntı bileşeni olarak varlık tanımı. Bu varlıkların ölümsüzlere dönüştürülmesine izin verir.
3.39. Audio_comp
Bu varlığın türüne bağlı olarak belirli seslerin çalınmasını sağlayan bileşen.
- click = string, varlığa tıklandığında çalınan ses; eylemler ve büyüler için kullanılır.
- added = string, varlık oluşturulduğunda çalınan ses; etkinlikler için kullanılır.
- ambient1 = string, ortam sesi parça 1.
- ambient2 = string, ortam sesi parça 2.
- ambient3 = string, ortam sesi parça 3.
- process = List<string>, eylem devam ederken çalınan ses adları listesi.
- waits = List<double>, sesler arasında bekleme süreleri listesi.
- finish = string, eylem tamamlandığında çalınan ses.
- rndProcess = bool, çalma sırasında küçük rastgele ses efektleri.
3.40. Childs
Bir varlık için özyineli olarak yeni varlıklar oluşturan bileşen.
- list = List<Entity>, belirli bir varlık için otomatik olarak oluşturulup bağlanan çocukların listesi.
3.41. Preds
Belirli bir varlık için eylemler oluşturan bileşen; çoğu varlık oyun kodunda tanımlıdır.
- list = List<string>.
3.42. Equip
Bu eşyanın kahramana kuşanılabileceğini belirten etiket bileşeni.
3.43. Res
Bu varlığın bir kaynak olduğunu gösteren gösterge bileşeni. İpuçları, animasyonlar ve oyun özetleri için gereklidir.
3.44. TurnAct
Bu bileşen, varlığın her oyun tikinde kontrol edilmesi gerektiğini belirtir; örneğin Total ve Duration bileşenleri için.
4. Listeler
list.json dosyası, varlık veya bileşen olmayan veri bölümlerini içerir. Bunlar, oyun içeriği üretmek için çeşitli listeleri tanımlar.
4.1. RndGoodEvents
Oyunun hemen başında oluşturulan olumlu rastgele etkinlikler listesi.
4.2. RndEvents
Oyun ilerledikçe oluşturulan olumlu ve olumsuz rastgele etkinlikler listesi.
4.3. Generator_dungeon_addons_physical
Fiziksel hasarlı zindanlar için oluşturulan eklentiler listesi.
4.4. Generator_dungeon_addons_magical
Büyü hasarlı zindanlar için oluşturulan eklentiler listesi.
4.5. Generator_ruins_addons
Harabeler için oluşturulan eklentiler listesi.
4.6. Generator_settlement_levels
Bölge seviyeleri ile yerleşim varlık adları arasındaki eşleşmeleri içeren liste; örneğin "lvl1":"Village" ifadesi 1. seviye bir bölgede Village türü yerleşim üretileceği anlamına gelir.
4.7. Generator_rar_metals
Bölge seviyeleri ile maden yatağı adları arasındaki eşleşmeleri içeren liste; örneğin "lvl2":"Deposit_tin" ifadesi 2. seviye bir bölgede kalay yatağı oluşacağı anlamına gelir.
4.8. Generator_mages
Bölge seviyeleri ile büyücü adları arasındaki eşleşmeleri içeren liste; bunlar büyücü kulelerini korumak için oluşturulur. Örneğin "lvl3":"Priestesses" ifadesi 3. seviye bölgede Priestesses oluşturulacağı anlamına gelir.
4.9. LevelMobs_
Zindan Temizleme veya harabe incelemesinde tutsakları kurtardıktan sonra oyuncunun aldığı, farklı bölge seviyeleri için yaratık listeleri.
4.10. Crafter_start, Lord_start, Mage_start,
GameClass bileşeninde, learnList alanında farklı sınıfların başlangıçta aldığı çeşitli eşya listeleri. Öğelerin sayısı boş envanter yuvalarıyla sınırlıdır.
- obj = string, eşya adı.
- min = double, minimum rastgele sayı.
- max = double, maksimum rastgele sayı.
- chance = double, tam olarak bu eşyanın üretilme Şansı.
- Diğer sınıflar için farklı plan veya büyüler öğrenilmesi gerekiyorsa başka listeler de oluşturup bağlayabilirsiniz.
4.11. Gold_
Bu liste, bölge seviyesine bağlı olarak ne kadar Altın üretileceğini tanımlar. Altın, haritadaki tüm ödül türlerinde %50 olasılıkla görünür. Sözdizimi için 4.10'a bakın.
4.12. Loot_-
Bölge seviyesine bağlı ödül üretimini tanımlayan liste grubu. Yaratıklar, zindanlar, harabeler için uygulanır. Yaratıklar için belirli eşyaların düşme olasılığını %50 ihtimalle belirler; kalan %50 için 4.13'teki listeler kullanılır. Sözdizimi için 4.10'a bakın.
4.13. Warriors_, Defenders_, Mages_, Gatherers_, Crafters_,
Bölge seviyesine ve yaratık sınıfına bağlı ödül üretimini tanımlayan liste grubu. Yalnızca yaratıklar için kullanılır. Bu listeler, özellikle büyücülerde daha sık büyü tomarı ve asa düşmesi gibi sınıfa bağlı ödülleri %50 olasılıkla üretmek için Loot_- listelerinin genişletmesidir. Sözdizimi için 4.10'a bakın.
4.14. Shop_, Books_
Farklı bölge seviyeleri için listeler; örneğin Books5 veya Shop6. Mağaza ürün yelpazesini oluşturmak için kullanılır. Sözdizimi için 4.10'a bakın. Bu listeler Shop bileşeninde, type alanında tanımlanır; kuleler için oyun kodundan üretilir.
