Mount&Blade Mod Yapımcıları Soru - Cevap Konusu

Users who are viewing this thread

Arkadaşlar merhaba warband a bannerlord modu yaptım ama bir bug var oyunda Hancı silah tüccarı gibi troopların kolu-kafası ayrı üstündeki kıyafetler ayrı nasıl çözebilirim
 

Tronuen

Recruit
Ben başka moddaki bazı özellikleri kendi moduma almak istiyorum (misal; görev, harita, kıyafet ve silah görünümleri). Nasıl yaparım bunu? Module system'i açtım. O yararlanacağım modun kopyasına yönlendidim adresi ama python kodlarına bakıyorum o moddan hiçbir eser yok. Bir sürü farklı asker isimleri ve özellikleri yazmıyor. Sadece orjinal oyundaki asker isimleri özellikleri yazıyor.
Açıkçası baştan yeni bir mod yapmak yerine yapılmış bir moda bazı değşiklikler, eklemeler, çıkarmalar falan yapmak istiyorum nasıl yaparım? Module systemi açtım ama sanki 0'dan başlatıyormuş gibi o.
 
Ben başka moddaki bazı özellikleri kendi moduma almak istiyorum (misal; görev, harita, kıyafet ve silah görünümleri). Nasıl yaparım bunu? Module system'i açtım. O yararlanacağım modun kopyasına yönlendidim adresi ama python kodlarına bakıyorum o moddan hiçbir eser yok. Bir sürü farklı asker isimleri ve özellikleri yazmıyor. Sadece orjinal oyundaki asker isimleri özellikleri yazıyor.
Açıkçası baştan yeni bir mod yapmak yerine yapılmış bir moda bazı değşiklikler, eklemeler, çıkarmalar falan yapmak istiyorum nasıl yaparım? Module systemi açtım ama sanki 0'dan başlatıyormuş gibi o.
eğer o içinden materyal vs.. almak istediğin mod OSP değilse hiçbir şekilde alamazsın herhangi bir dosyayı. Yasaktır ve cezası büyüktür. module system modu sıfırlar native geri döndürür eğer o modun module systemi yayınlanmamışsa bir değişiklik yapamazsın.
 

Tronuen

Recruit
HyperCharge'ın krallık ekleme dersindeki gibi krallık eklerken şöyle bir hata aldım:
0nlqxI.png
O derste anlatılan leydi ekleme ve bayrak ekleme kısımlarını atlamıştım ama sorunun ondan olduğunu sanmıyorum. Çünkü daha önce de native üzerinde deneme yaparken dediğim yerleri atlamıştım ve olmuştu. Şimdi diplomacy mod'un üzerinden krallık ekliyorum.
 
HyperCharge'ın krallık ekleme dersindeki gibi krallık eklerken şöyle bir hata aldım:
0nlqxI.png
O derste anlatılan leydi ekleme ve bayrak ekleme kısımlarını atlamıştım ama sorunun ondan olduğunu sanmıyorum. Çünkü daha önce de native üzerinde deneme yaparken dediğim yerleri atlamıştım ve olmuştu. Şimdi diplomacy mod'un üzerinden krallık ekliyorum.
module_presentation da 8775. satırı kontrol et bir hatanın orda olduğunu söylüyor ve sanırsam hatan kod içi yanlış söz dizimi olabilir
 

RecursiveHarmony

@Tronuen
Tuple index out of range hatası vermiş muhtemelen sorun factions[fac_kingdom_1][6] kısmında
Diyorki svadya krallığında 7'den az eleman var. (Dizilerde index olayı o dan başlar yani 6 demek 7. eleman demek). 7. eleman renk oluyor.
module_factions'ı aç. Önce bi hizalamaya bak. Python'da hizalama önemlidir. her krallığın başındaki ("kingdom_ ve devamı aynı hizadan başlamalı.
 

Tronuen

Recruit
BladeofWar's ve RecursiveHarmony hatayı ararken ilginç bir şey keşfettim. Hatayı bulmak için module_presentation ve module_factions'a baktım syntax veya hizalama hatası yoktu. Ben de module_factions'un en altına :
print(factions[fac_kingdom_1])
input()
yazdım. Yani kingdom_1'in elemanlarını ekrana bastır deyip Run'ladım. Normal kodlama biliyorsanız anlarsınız zaten. Şöyle bir sonuç çıktı:
6yywvR.png
Gördüğünüz gibi 7 elemanlı ve son elemanı renk kodu. Yani hiç bir sıkıntı yok. Fakat bu 7 veya daha az kültür olduğu zaman geçerli. 8. kültürü eklediğim zaman şöyle oluyor:
lMopfO.png
7. eleman gözükmüyor ve 5.elemanın içi boş oluyor. Bu niye böyle oluyor 😅 9 kültür yapınca da aynısı oluyor. 7 kültürden fazlasını yapınca böyle bug oluşuyor.
 

raytreyz

Recruit
Merhaba, oyunda esnasında oluşan hataları bildirmemiz için bir sayfa mevcut mu ?
Örneğin, herhangi karakterle teklif alişverişi yaparken otomatik teklif verdikten sonra para kısmını silersek oyun donup kapanıyor.
 

RecursiveHarmony

@Tronuen
Bu biraz karışık olacak :smile:
Şimdi biraz modül sistemin işleyişinden gidelim. factions dosyaları üzerinden anlatayım. header_factions'da bi sıkıntı yok. process_factions' ta da eğer ellemediysen bu iki dosyayı.
build_module.bat dosyası modülü yaratırken bu process dosyalarını sırayla okuyor. Geldi process_factions'a

from module_factions import * -> 1
....
save_python_header() -> 2

1. de factions dizisini okuyor.
2. de factions dizisindeki id'lerden yararlanarak ID_factions.py dosyasını oluşturuyor.
Sonrasında
from ID_factions import *
komutunu görünce bu dosyayı okuyup içindekileri kullanıyor.

Şimdi senin
print(factions[fac_kingdom_1])
input()
kodunu module_factions'ın altına eklersek fac_kingdom_1 değişkenini kullanabilmek için
from ID_factions import *
komutunu dosyanın üstüne eklemek gerekiyor.
Bu durum normalde 2. adımdan sonra gerçekleşen ID_factions.py dosyasının okunmasını 1. adımın başına taşıyor. Bu da senin eski güncellenmemiş indeksleri kullanmana sebebiyet veriyor.
ID_factions'a bakarsan
fac_kingdom_1 = 15
Sen sürekli bu değeri kullanıyorsun. Bu nedenle 7 kültürde player_supporters_faction, 8 kültürde player_faction okuyor. 9, 10, 11 diye devam etsen sürekli 9.yu yazar.
Bu yazdıklarım 2. gönderindeki ekran görüntülerini açıklıyor. İlk gönderin hala muamma :smile:
Tahminimce sen bu "module_" dosyalarının altına biraz kaçak kod yazıp bu ID_factions dosyasını bir yerlerde olması gerekenden erken import etmişsin. Şimdi build_module.bat dosyasında process_factions ve öncesinde yürütülen dosyaları ve onlarla alakalı dosyaları bir incele bak bakalım kaçak bir import var mı 🧐
 

Tronuen

Recruit
RecursiveHarmony çok teşekkür ederim, dediklerini anladım. Kontrol ettim kaçak bir import göremedim. Bu diplomacy moda ait olan compile.py dosyasından başka onu açmaya çalışan yoktu(1'i hariç o normalinde de var ama). Gittim normal kaynak kodlarında iki kültür ve krallık ekledim sorunsuz çalıştı. Allah Allah dedim. Orada oluyor burada niye olmuyor. Ben de bu diplomacy modun kaynak kodlarını tekrar indirdim baştan başladım herşeye gene aynı hatayı verdi. Anladım bu modun kaynak kodlarında sıkıntı var. Sonra gittim normal build_module.bat dosyasını kopyalayıp yapıştırdım buraya ve onu çalıştırdım(Biliyorsunuz diplomacy modda compile.bat ve ona benzer diğer bir bat var). Neyse gene bir sürü hata verdi ama baktım ID_factionsa artık yeni eklediğim kültürleri ve krallıkları yazmış. Sonra bir daha compile ettiğimde hatasız compile etti.
HlXUhq.png
Tekrar ikinci kez çalıştırdığımda ama bu sefer diplomacy moda ait olan compilerı kullanarak:
mulG6u.png
Compile.bat dosyasını ard arda iki kere çalıştırınca olmuyor. Önce normal build_module.bat dosyasını sonra compile.bat dosyasını çalıştırınca oluyor. Benim anladığım kadarıyla bu diplomacy modun compile.py dosyasında bi sıkıntı var herhalde. Yani senin bahsettiğin durum. Oraya gelmeden önce nerde import ediyorsa artık. Amaaaaannn neyse ne. Çözdük sorunu sonunda. Ama ilginç bir macera oldu benim için.😁 Sağol tekrardan.
 
RecursiveHarmony çok teşekkür ederim, dediklerini anladım. Kontrol ettim kaçak bir import göremedim. Bu diplomacy moda ait olan compile.py dosyasından başka onu açmaya çalışan yoktu(1'i hariç o normalinde de var ama). Gittim normal kaynak kodlarında iki kültür ve krallık ekledim sorunsuz çalıştı. Allah Allah dedim. Orada oluyor burada niye olmuyor. Ben de bu diplomacy modun kaynak kodlarını tekrar indirdim baştan başladım herşeye gene aynı hatayı verdi. Anladım bu modun kaynak kodlarında sıkıntı var. Sonra gittim normal build_module.bat dosyasını kopyalayıp yapıştırdım buraya ve onu çalıştırdım(Biliyorsunuz diplomacy modda compile.bat ve ona benzer diğer bir bat var). Neyse gene bir sürü hata verdi ama baktım ID_factionsa artık yeni eklediğim kültürleri ve krallıkları yazmış. Sonra bir daha compile ettiğimde hatasız compile etti.
HlXUhq.png
Tekrar ikinci kez çalıştırdığımda ama bu sefer diplomacy moda ait olan compilerı kullanarak:
mulG6u.png
Compile.bat dosyasını ard arda iki kere çalıştırınca olmuyor. Önce normal build_module.bat dosyasını sonra compile.bat dosyasını çalıştırınca oluyor. Benim anladığım kadarıyla bu diplomacy modun compile.py dosyasında bi sıkıntı var herhalde. Yani senin bahsettiğin durum. Oraya gelmeden önce nerde import ediyorsa artık. Amaaaaannn neyse ne. Çözdük sorunu sonunda. Ama ilginç bir macera oldu benim için.😁 Sağol tekrardan.
o şundan kaynaklıyor diye biliyorum. Dosya türlerinin hepsini aynı anda compile etmiyor sistem, mesela sırasına göre .bat a önce hangi dosya yazıldı ise önce onu çevirir. Mesela sen bir troop'a yeni bir item ekleyeceksin diyelim. Ve .bat da process_item, process_troops'dan daha sonra işleme alındığı için hata verir. Bu yüzden önce yeni ekleyeceğin itemi module_items'e kaydedip compile eder ve daha sonra troop'a eklersen hata almazsın
 

deli43

Knight
Ve .bat da process_item, process_troops'dan daha sonra işleme alındığı için hata verir. Bu yüzden önce yeni ekleyeceğin itemi module_items'e kaydedip compile eder ve daha sonra troop'a eklersen hata almazsın

iki kez ard arda çalıştırdığın zaman o hata gider ilk itemi kaydetip tanıtıp daha sonra troopa vermekle zaman kaybetmeyin diye diyorum
 

RecursiveHarmony

Tronuen
Senin kullandığın diplomasi modülü WRECK compileri kullanıyor. Bunu Lav yazmış. Linkini verdiğim compiler konusunda bu benim, BladeofWar's ve deli43'ün idler, sırayla ekleme ve 2 kere ardarda compile etme mevzuslarıyla ilgili şöyle diyor.
Vanilla compiler requires two sets of entity references: static references contained in ID_*.py files (icon_player) and quoted references ("icon_player") which are calculated at compile-time. This creates a number of problems. For example, it's impossible to simply add a new icon and a new party which will use that icon: modder must add a new icon, compile the module to regenerate the ID files, and only then he can add a new party. W.R.E.C.K. offers a solution to this problem by introducing a dynamic reference (icon.player) which can be used freely and everywhere, replacing both types of vanilla references. Note that while W.R.E.C.K. sticks to standard Warband prefixes, strings are referenced as s.<string_name> instead of str.<string_name>. This is the only deviation from the scheme, necessitated by the fact that str is a global keyword in Python.
Bi şekilde çözmüş ama kaynak kod fazla uzun ve ben Python'dan genel olarak pek çakmıyorum. Tam olarak birşey diyemicem.
...Sonra gittim normal build_module.bat dosyasını kopyalayıp yapıştırdım buraya ve onu çalıştırdım(Biliyorsunuz diplomacy modda compile.bat ve ona benzer diğer bir bat var). Neyse gene bir sürü hata verdi ama baktım ID_factionsa artık yeni eklediğim kültürleri ve krallıkları yazmış. Sonra bir daha compile ettiğimde hatasız compile etti.
...
Tekrar ikinci kez çalıştırdığımda ama bu sefer diplomacy moda ait olan compilerı kullanarak:
...
Compile.bat dosyasını ard arda iki kere çalıştırınca olmuyor. Önce normal build_module.bat dosyasını sonra compile.bat dosyasını çalıştırınca oluyor. Benim anladığım kadarıyla bu diplomacy modun compile.py dosyasında bi sıkıntı var herhalde...
WRECK'in hangi dosyadan çalıştırıldığını compilerin konusunda belirtmemiş Lav. Diplomasi modunun kaynak kodunu ararken şu muhabbete denk geldim steam'de. Orada diyor ki
please compile from source code (build_module_lav.bat)
Sen galiba yanlış dosyadan compile ediyorsun modülü.
 

ismailkhan

Regular
Merhabalar forumda baya bir zaman önceden varrak nickli arkadaş witcher 3 tarzı chainmail kaplaması paylaşmıştı osp olarak fakat şimdi kaldırmış aranızda bu kaplamaya sahip olan varsa atabilirmi
 
Top Bottom