Bannerlord Mod Yapımı Dersleri - Öldükten Sonra Savaşa Devam Etme

Users who are viewing this thread

Sadece modlama için discord kanalı açılabilir diye düşünüyorum ilerde yapmak isteyenler oradan takım bulur, buradaki rehberi oraya da koyarsın filan. Faydalı olabilir.
eğer ilgilenirsen öyle bir şey düşünüyorum şuan
 
Ben katılırım discorda, mod yapımıyla da ilgileniyorum. Programlama ve modelleme bilgim var ama c# çok yok. Direkt olarak bir takıma katılır mıyım bilmiyorum, iş durumları belirsiz şu an ilerde zaman bulamayabilirim.
 
Ben katılırım discorda, mod yapımıyla da ilgileniyorum. Programlama ve modelleme bilgim var ama c# çok yok. Direkt olarak bir takıma katılır mıyım bilmiyorum, iş durumları belirsiz şu an ilerde zaman bulamayabilirim.
Discord: Remos#2912
beni eklersen bir tane discord sunucusu açabiliriz.
 
1 haftalık bir aradan sonra merhabalar arkadaşlar.
Daha ayrıntılı bir özellik eklemesi ile karşınızdayım. Çok uzatmadan dersimize geçelim...

Öncelikle visual studiomuzu açalım. Aşağıdaki resimde de gördüğünüz gibi yeni bir sınıf ekliyoruz. Özelliği yeni sınıfta yazacağım ben. İstiyorsanız kodları "Main"e de ekleyebilirsiniz. Bir sıkıntısı olmaz. Ben özellikleri ayrı ayrı sınıflandırmanın daha iyi olacağını düşünüyorum.
(!!!Eğer kodları "Main"e ekleyecekseniz iki üç resim aşağıdaki "Submodule.dll"e eklentiyi yapmamalısınız!!!)



Gelen pencereden "sınıf" seçiyoruz



Gelen sınıfı dilediğimiz gibi adlandırabiliriz. Ben "Kontroletme" olarak adlandırdım gördüğünüz gibi.




evet şimdi "Kontroletme" sayfasındaki her şeyi silip alttaki kodları yapıştıralım. Kodun içindeki örnek veriyorum "controlRandomAgent" gibi yeşil ifadeleri dilediğiniz gibi adlandırabilirsiniz. Kod içinde triggerlanacak şeyleri belirtmiş oluyoruz. Kodu inceleyin dediğimi anlayacaksınız. Kod multiplayer kısmındaki "CaptainBattle"dan örnek alınarak geçirilmiş olduğu için ellemedim ben...


using System;
using System.Collections.Generic;
using System.Linq;
using TaleWorlds.CampaignSystem;
using TaleWorlds.Core;
using TaleWorlds.Library;
using TaleWorlds.MountAndBlade;
using TaleWorlds.MountAndBlade.ViewModelCollection;

namespace Modumuz
{
public class Kontroletme : MBSubModuleBase
{
// Ana kodlar kontrol ettiğimiz karakterin canlı olup olmadığını sorgalayan kısım vs.
protected override void OnApplicationTick(float dt)
{
bool flag = Game.Current != null && Game.Current.CurrentState <= Game.State.Running && Mission.Current != null && Mission.Current.Scene != null;
if (flag)
{
bool flag2 = Agent.Main != null;
if (flag2)
{
this.player = Agent.Main;
this.timeOfDeath = Mission.Current.Time;
}
else
{
bool flag3 = this.player != null && this.player.Health <= 0f && Mission.Current.Time - this.timeOfDeath >= 2f;
if (flag3)
{
List<Agent> list = Mission.Current.GetNearbyAllyAgents(new Vec2(0f, 0f), 1E+07f, this.player.Team).ToList<Agent>();
bool flag4 = list.Count > 0;
if (flag4)
{
bool flag5 = Campaign.Current != null && Campaign.Current.MainParty != null && Campaign.Current.MainParty.MemberRoster != null;
if (flag5)
{
this.controlAgentFromParty(list);
}
else
{
this.controlRandomAgent(list);
}
}
else
{
this.player = null;
}
}
}
}
}

// Random bir agent atamamızı sağlar
private void controlRandomAgent(List<Agent> agents)
{
this.controlAgent(agents.GetRandomElement<Agent>());
}

// Kontrol edilen karakter öldükten sonra trgigerlanacak şeyler
private void controlAgent(Agent agent)
{
try
{
agent.SetMaximumSpeedLimit(-1f, false);
}
catch (Exception ex)
{
}
agent.Controller = this.player.Controller;
try
{
ScoreboardVM scoreboardVM = (ScoreboardVM)Mission.Current.GetMissionBehaviour<BattleObserverMissionLogic>().BattleObserver;
scoreboardVM.IsMainCharacterDead = false;
}
catch (Exception ex2)
{
}
bool flag = agent.Name != null;
if (flag)
{
InformationManager.DisplayMessage(new InformationMessage("Şuan kontrol etmektesiniz: " + agent.Name));
}
}

private void controlAgentFromParty(List<Agent> agents)
{
List<string> list = new List<string>();
foreach (Agent agent in agents)
{
list.Add(agent.Name);
}
List<CharacterObject> list2 = Campaign.Current.MainParty.MemberRoster.Troops.ToList<CharacterObject>();
foreach (CharacterObject characterObject in list2)
{
int num = list.IndexOf(characterObject.Name.ToString());
bool flag = num != -1;
if (flag)
{
this.controlAgent(agents.ElementAt(num));
return;
}
}
this.controlRandomAgent(agents);
}

private Agent player = null;

private float timeOfDeath = -1f;
}
}

Kaydedelim yaptığımız değişiklikleri



Bu aşamayı isterseniz atlayabilirsiniz. Ben güvenlik olsun diye ekledim. Çok da mühim değil. Başvuru olarak önceki derslerde MB klasöründen eklenmesi gerekenleri göstermiştim. Üstüne resimdeki 5 dosyayı da eklemeniz iyi olabilir. Bir sıkıntı çıkarırsa silebilirsiniz. Dediğim gibi mühim değil.



Visualda son olarak şu şekilde gözükmeli kodlar



Son kez kaydedip yukarıdan "derle"ye tıklıyoruz. Kodlar modumuza eklenmiş oluyor. İşimiz bitti sayılır. Son olarak Modulesde modumuzun klasöründeki "SubModule" dosyasını açıp resimdeki gibi kodları ekliyoruz.

<SubModule>
<Name value="Modumuz"/>
<DLLName value="Modumuz.dll"/>
<SubModuleClassType value="Modumuz.Kontroletme"/>
<Tags>
<Tag key="DedicatedServerType" value="none" />
<Tag key="IsNoRenderModeElement" value="false" />
</Tags>
</SubModule>



Ve artık ölünce savaşımız bitmiyor....

 





Saygıdeğer forum ahalisi. malumunuz oyun çıktı insanlar oynamaya başladı. Mount&Blade’i Mb yapan modlama konusunda da yavaştan ilerleyebiliriz. Ben bu konuda hem bireysel java, c vs bildiğim için hem de yabancı forumdan ve Youtube’dan da takip ederek öğrendiğim için foruma ufak bir tutorial sunma niyetindeyim. İlgi görürse zamanla farklı dersler koyarım. Şuan için zaten tüm gün evde kapalı kaldığımız için zamanım bol her gün yeni dersler atmaya çalışacağım. Yakında da Türkçe forum için Bannerlord modlama bölümü açılır zannedersem. Açıldığında oraya taşınırsa konu hoş olur. Forumdan hatırlayanlar boldur. Böyle konular açıla açıla Warband modcuları gelişmişti ve Türkçe forumdan çok güzel modifikasyonlar çıkmıştı. Ben de Warband için Anadolu 1320 ve Çerilerin Uyanışı modlarının vs yapımı ile uğraşmıştım oradan da aşinayım buradaki ortama. Maalesef ki eski hesabım kapandı. 3 sene sonra yeniden uğradım buraya uzun süre de çıkmam. Özlemişim cidden mbyi. Tam sürüme doğru da bi Göktürk modu planım var hayırlısı artık Her neyse çok uzatmadan ilk derse geçiyim…






İlk önce indirmemiz gereken dosyalar var.

https://visualstudio.microsoft.com/tr/downloads/ (Asıl olay bunun sayesinde geçecek)
https://notepad-plus-plus.org/downloads/ (xml dosyalarını açmak için işimize yarayacaktır)





Yukarıdaki iki dosya şuanlık yeterli olacaktır. Visual Stüdyo kurulumunda resimde gördüğünüz gibi .NET seçeneği işaretli olmadan geçmemeniz gerekiyor ki işlemlerimizi yapabilelim. 8 gb gözüktüğüne bakmayın 2 gblik bi yükleme yapacak.

Kurulumuz bittikten sonra geldik ilk projemize başlamaya. Oyunun kurulu olduğu dizinde modules adlı bir klasör var. Warband modcuları aşinadır. Tüm işlemimizi orada göreceğiz. Orada “Modumuz” diye bir klasör açıyoruz. Ardından resimde gördüğünüz gibi içinde “bin” adında bir klasör ve de “SubModule” adında bir xml. dosyası açıyoruz. ( SubModule dosyasının yazılışına ve xml. dosyası olarak kaydedilmesi önemli ! )





SubModule içerisine aşağıda gördüğümüz kodu yapıştıralım.






Ardından “bin” klasörü içerisine “Win64_Shipping_Client” adında bir klasör daha açıyoruz.





Şimdilik buradaki işimiz bitti. İndirdiğimiz Visual Studioya geçebiliriz. Paneli açtıktan sonra karşımıza şurası gelecek.



Yeni Projeye tıkladıktan sonra “NET Framework” adlı kütüphaneyi seçmemiz gerekli.



Ardından aşağıdaki kısmı resimdeki gibi ayarlayıp oluştura tıklıyoruz. Konum yerine mod yapımı ile ilgili olan dosyaların nerede bulunacağını girmemiz gerek. Bir daha visual stüdyoyu açtığımızda projeyi o dosyadan açacaksınız.



Proje oluşunca bu şekilde bir ekran gelecek karşınıza sağ tarafta Class1 yazan yerin üstüne sağ tıklayıp yeniden adlandırma yapıyoruz. “Main” olarak adlandırıp gelen soruya evet diyoruz.



Ardından alttaki resimdeki gibi "public class Main"in karşısına : nokta ekleyip "MBSubModuleBase" yazıyoruz..



Sonrasında yukarıda projeye tıklayıp özelliklere giriyoruz.



Açılan pencerede solda Derleme sekmesine giriyoruz. Bu sekmede aşağıda çıkış yolu yazan kısım bizim studioda yapacağımız değişiklerin çıkacağı yer. Orayı belirlememiz gerekicek.



Buraya oluşturduğumuz “Win64_Shipping_Client” klasörünün konumunu yazmamız gerekli



Resimdeki gibi kurulu olan alandan gidip kopyalayın. Ve çıkış yolundaki her şeyi silip bunu yapıştırıyoruz. Şimdi geldik son aşamaya. Ana ekrana gelip yine yukarıdaki proje sekmesinden "Başvuru Ekle"ye tıklıyoruz.



Orada gelen sekmede gözata tıklayıp resimdeki gibi Bannerlordun ana kurulu olduğu yerdeki “Win64_Shipping_Client” klasöründeki "Talewords.vsvsvsvs.dll" olan Launcher dışındaki tüm klasörleri eklememiz gerekli. Bu dosyalar biz kodlarımızı girerken bizim referans noktalarımız olacak. Oyuna gelen her güncellemeden sonra başvuruları silip yeniden yüklemenizi öneririm. Sonuçta bu dosyaların içeriği değiştiğinde sizin modunuzun da ona uygun olması gerekicek. (Burayı dikkatle okuyup yapın ki hata olmasın)



Ve her şeyi kaydedip yine ana pencerede "Derleme" kısmından şuraya tıklıyoruz.



Sol altta işlem başarı ile bitti komutunu artık dosyalarımız hazırdır demek. Bizim kendi mod dosyamızın kurulu olduğu “Win64_Shipping_Client” klasörü aşağıdaki hale gelmiş olacak.






Evet bu şekilde kurulumumuz tamamdır. Artık modumuza bir şeyler eklemeye başlayabiliriz... ...
Selamlar forum ahalisi ikinci ders olarak mantık kavrama açısından kaynak kodlarını nasıl görebileceğimizi göstermeye çalışacağım eklentileri yaparken bu kodlardan yararlanacağımız için önemli burası. Malumunuz henüz talewords modüle dosyalarını paylaşmadı bu şekilde biz ulaşmış olacağız. İlerde module dosyaları paylaşıldıktan sonra bu dersin bir önemi kalmayacak. Fakat erken aşamada bu dosyalara ulaşmadan büyük eklentiler yapamayız. Ayrıca mod yapmanın da ötesinde bu dosyaları inceleyip şuan erken erişimde aktif olmayan özellikleri de görebilirsiniz. Üstüne bunları kendi modunuzmuş gibi ayrı bi modulede aktifleştirip oyun etkisini de görebilirsiniz. Talewords çoğu özelliğin kodlarını girmiş fakat şuan aktif değil. Ben inceledim bir süre gözüme çarpanlar quest kısmında yeni görevler ve diğer dosyalarda şuan oyunda olmayan yeni diyalogları gördüm. Umarım ki talewords hızlıca aktifleştirir bunları. Şimdi geçelim dersimize

https://github.com/0xd4d/dnSpy/releases

Üstteki linkten aşağıda resimde gördüğünüz zip dosyasını indirmeniz gerekli öncelikle. Bu uygulama dediğim gibi kaynak kodlarını görmemizi sağlayacak.



İnen dosyaları istediğiniz yerde bir klasör açıp aktarın.



Ardından "dnSpy.exe" uygulamasını çalıştıralım. Açılan uygulamada sol üstten dosya sekmesinden "Aç" sekmesini seçin



Resimde gördüğünüz gibi Bannerlord'un istediğiniz bir klasöründeki dosyayı seçin. İlk derste "Talewords.vsvsvsvs" şeklinde ismi olan dosyaları göstermiştim. Bizim işlem göreceğimiz asıl kodlar bu dosyalarda. İçindeki kodları görmek istediğiniz bir dosyayı seçin. Ben örnek olarak "core" dosyasını seçtim.



Ardından yine resimde gördüğünüz gibi panele dosyalar yüklenmiş olacak. Panelden seçtiğiniz dosyaya sol taraftan tıklayın.



Altta gördüğünüz gibi ben "core" dosyasından "banner" sekmesini seçtim ve o dosyadaki oyundaki bayrak hakkında girilenleri şekildeki gibi görebiliyorum. Artık istediğim gibi bunları düzenleyebilirim. Bu uygulama aracılığı ile ileride bir moddaki özelliklerin kaynak kodlarını da görebiliriz. Fakat değişiklikleri sakın buradan yapmayın !!! Burası sadece kodları görmek için değişiklikleri buradaki kodları baz alıp inceleyip kendi "module" dosyamızda yapacağız....



Haydi iyi incelemeler...
Selamlar hepinize. Bugünkü konumuz kolaydan başlayarak yeni bir menü seçeneği eklemek olsun.

Öncelikle visual studioda projemizi açıyoruz ve alttaki gibi eklentilerimizi yapıyoruz. Bu kodlar başvuru olarak eklediğimiz ana oyun dosyalarından gereken kısımları taramamızı sağlayacak.



Ardından alttaki kodu şekildeki gibi yapıştırıyoruz. Bu yeni bir menü eklememizi ve sonucunda triggerlanacak şeyi girmiş olduk. Bu tarz kodların işleyişini oyunun modül dosyalarını inceleyerek öğrenebilirsiniz.






ve bu şekilde bir manzara ile karşılaşıyoruz



dnSpy uygulamasından da kod dizinin module dosyamıza nasıl girildiğini de görebiliriz. Uygulamanın nasıl işlediğini de anlamış olursunuz




İyi forumlar dilerim hepinize...
1 haftalık bir aradan sonra merhabalar arkadaşlar. Bugün daha ayrıntılı bir özellik eklemesi yapacağız. Çok uzatmadan dersimize geçelim

Öncelikle visual studiomuzu açalım. Aşağıdaki resimde de gördüğünüz gibi yeni bir sınıf ekliyoruz. Özelliği yeni sınıfta yazacağım ben. İstiyorsanız kodları "Main"e de ekleyebilirsiniz. Bir sıkıntısı olmaz. Ben özellikleri ayrı ayrı sınıflandırmanın daha iyi olacağını düşünüyorum.
(!!!Eğer kodları "Main"e ekleyecekseniz iki üç resim aşağıdaki "Submodule.dll"e eklentiyi yapmamalısınız!!!)



Gelen pencereden "sınıf" seçiyoruz



Gelen sınıfı dilediğimiz gibi adlandırabiliriz. Ben "Kontroletme" olarak adlandırdım gördüğünüz gibi.




evet şimdi "Kontroletme" sayfasındaki her şeyi silip alttaki kodları yapıştıralım. Kodun içindeki örnek veriyorum "controlRandomAgent" gibi yeşil ifadeleri dilediğiniz gibi adlandırabilirsiniz. Kod içinde triggerlanacak şeyleri belirtmiş oluyoruz. Kodu inceleyin dediğimi anlayacaksınız. Kod multiplayer kısmındaki "CaptainBattle"dan örnek alınarak geçirilmiş olduğu için ellemedim ben...




Kaydedelim yaptığımız değişiklikleri



Bu aşamayı isterseniz atlayabilirsiniz. Ben güvenlik olsun diye ekledim. Çok da mühim değil. Başvuru olarak önceki derslerde MB klasöründen eklenmesi gerekenleri göstermiştim. Üstüne resimdeki 5 dosyayı da eklemeniz iyi olabilir. Bir sıkıntı çıkarırsa silebilirsiniz. Dediğim gibi mühim değil.



Visualda son olarak şu şekilde gözükmeli kodlar



Son kez kaydedip yukarıdan "derle"ye tıklıyoruz. Kodlar modumuza eklenmiş oluyor. İşimiz bitti sayılır. Son olarak Modulesde modumuzun klasöründeki "SubModule" dosyasını açıp resimdeki gibi kodları ekliyoruz.





Ve artık ölünce savaşımız bitmiyor....





3-4 güne yeni derslere geçmeyi planlıyorum. Saygılar....


Anlatım için Ster'in ve ikinci ders için GlorifiedPig'in tutorialından yararlandım.
Katkıları için thanks to Ster, GlorifiedPig and Rafaws​





Saygıdeğer forum ahalisi. malumunuz oyun çıktı insanlar oynamaya başladı. Mount&Blade’i Mb yapan modlama konusunda da yavaştan ilerleyebiliriz. Ben bu konuda hem bireysel java, c vs bildiğim için hem de yabancı forumdan ve Youtube’dan da takip ederek öğrendiğim için foruma ufak bir tutorial sunma niyetindeyim. İlgi görürse zamanla farklı dersler koyarım. Şuan için zaten tüm gün evde kapalı kaldığımız için zamanım bol her gün yeni dersler atmaya çalışacağım. Yakında da Türkçe forum için Bannerlord modlama bölümü açılır zannedersem. Açıldığında oraya taşınırsa konu hoş olur. Forumdan hatırlayanlar boldur. Böyle konular açıla açıla Warband modcuları gelişmişti ve Türkçe forumdan çok güzel modifikasyonlar çıkmıştı. Ben de Warband için Anadolu 1320 ve Çerilerin Uyanışı modlarının vs yapımı ile uğraşmıştım oradan da aşinayım buradaki ortama. Maalesef ki eski hesabım kapandı. 3 sene sonra yeniden uğradım buraya uzun süre de çıkmam. Özlemişim cidden mbyi. Tam sürüme doğru da bi Göktürk modu planım var hayırlısı artık Her neyse çok uzatmadan ilk derse geçiyim…






İlk önce indirmemiz gereken dosyalar var.

https://visualstudio.microsoft.com/tr/downloads/ (Asıl olay bunun sayesinde geçecek)
https://notepad-plus-plus.org/downloads/ (xml dosyalarını açmak için işimize yarayacaktır)





Yukarıdaki iki dosya şuanlık yeterli olacaktır. Visual Stüdyo kurulumunda resimde gördüğünüz gibi .NET seçeneği işaretli olmadan geçmemeniz gerekiyor ki işlemlerimizi yapabilelim. 8 gb gözüktüğüne bakmayın 2 gblik bi yükleme yapacak.

Kurulumuz bittikten sonra geldik ilk projemize başlamaya. Oyunun kurulu olduğu dizinde modules adlı bir klasör var. Warband modcuları aşinadır. Tüm işlemimizi orada göreceğiz. Orada “Modumuz” diye bir klasör açıyoruz. Ardından resimde gördüğünüz gibi içinde “bin” adında bir klasör ve de “SubModule” adında bir xml. dosyası açıyoruz. ( SubModule dosyasının yazılışına ve xml. dosyası olarak kaydedilmesi önemli ! )





SubModule içerisine aşağıda gördüğümüz kodu yapıştıralım.






Ardından “bin” klasörü içerisine “Win64_Shipping_Client” adında bir klasör daha açıyoruz.





Şimdilik buradaki işimiz bitti. İndirdiğimiz Visual Studioya geçebiliriz. Paneli açtıktan sonra karşımıza şurası gelecek.



Yeni Projeye tıkladıktan sonra “NET Framework” adlı kütüphaneyi seçmemiz gerekli.



Ardından aşağıdaki kısmı resimdeki gibi ayarlayıp oluştura tıklıyoruz. Konum yerine mod yapımı ile ilgili olan dosyaların nerede bulunacağını girmemiz gerek. Bir daha visual stüdyoyu açtığımızda projeyi o dosyadan açacaksınız.



Proje oluşunca bu şekilde bir ekran gelecek karşınıza sağ tarafta Class1 yazan yerin üstüne sağ tıklayıp yeniden adlandırma yapıyoruz. “Main” olarak adlandırıp gelen soruya evet diyoruz.



Ardından alttaki resimdeki gibi "public class Main"in karşısına : nokta ekleyip "MBSubModuleBase" yazıyoruz..



Sonrasında yukarıda projeye tıklayıp özelliklere giriyoruz.



Açılan pencerede solda Derleme sekmesine giriyoruz. Bu sekmede aşağıda çıkış yolu yazan kısım bizim studioda yapacağımız değişiklerin çıkacağı yer. Orayı belirlememiz gerekicek.



Buraya oluşturduğumuz “Win64_Shipping_Client” klasörünün konumunu yazmamız gerekli



Resimdeki gibi kurulu olan alandan gidip kopyalayın. Ve çıkış yolundaki her şeyi silip bunu yapıştırıyoruz. Şimdi geldik son aşamaya. Ana ekrana gelip yine yukarıdaki proje sekmesinden "Başvuru Ekle"ye tıklıyoruz.



Orada gelen sekmede gözata tıklayıp resimdeki gibi Bannerlordun ana kurulu olduğu yerdeki “Win64_Shipping_Client” klasöründeki "Talewords.vsvsvsvs.dll" olan Launcher dışındaki tüm klasörleri eklememiz gerekli. Bu dosyalar biz kodlarımızı girerken bizim referans noktalarımız olacak. Oyuna gelen her güncellemeden sonra başvuruları silip yeniden yüklemenizi öneririm. Sonuçta bu dosyaların içeriği değiştiğinde sizin modunuzun da ona uygun olması gerekicek. (Burayı dikkatle okuyup yapın ki hata olmasın)



Ve her şeyi kaydedip yine ana pencerede "Derleme" kısmından şuraya tıklıyoruz.



Sol altta işlem başarı ile bitti komutunu artık dosyalarımız hazırdır demek. Bizim kendi mod dosyamızın kurulu olduğu “Win64_Shipping_Client” klasörü aşağıdaki hale gelmiş olacak.






Evet bu şekilde kurulumumuz tamamdır. Artık modumuza bir şeyler eklemeye başlayabiliriz... ...
Selamlar forum ahalisi ikinci ders olarak mantık kavrama açısından kaynak kodlarını nasıl görebileceğimizi göstermeye çalışacağım eklentileri yaparken bu kodlardan yararlanacağımız için önemli burası. Malumunuz henüz talewords modüle dosyalarını paylaşmadı bu şekilde biz ulaşmış olacağız. İlerde module dosyaları paylaşıldıktan sonra bu dersin bir önemi kalmayacak. Fakat erken aşamada bu dosyalara ulaşmadan büyük eklentiler yapamayız. Ayrıca mod yapmanın da ötesinde bu dosyaları inceleyip şuan erken erişimde aktif olmayan özellikleri de görebilirsiniz. Üstüne bunları kendi modunuzmuş gibi ayrı bi modulede aktifleştirip oyun etkisini de görebilirsiniz. Talewords çoğu özelliğin kodlarını girmiş fakat şuan aktif değil. Ben inceledim bir süre gözüme çarpanlar quest kısmında yeni görevler ve diğer dosyalarda şuan oyunda olmayan yeni diyalogları gördüm. Umarım ki talewords hızlıca aktifleştirir bunları. Şimdi geçelim dersimize

https://github.com/0xd4d/dnSpy/releases

Üstteki linkten aşağıda resimde gördüğünüz zip dosyasını indirmeniz gerekli öncelikle. Bu uygulama dediğim gibi kaynak kodlarını görmemizi sağlayacak.



İnen dosyaları istediğiniz yerde bir klasör açıp aktarın.



Ardından "dnSpy.exe" uygulamasını çalıştıralım. Açılan uygulamada sol üstten dosya sekmesinden "Aç" sekmesini seçin



Resimde gördüğünüz gibi Bannerlord'un istediğiniz bir klasöründeki dosyayı seçin. İlk derste "Talewords.vsvsvsvs" şeklinde ismi olan dosyaları göstermiştim. Bizim işlem göreceğimiz asıl kodlar bu dosyalarda. İçindeki kodları görmek istediğiniz bir dosyayı seçin. Ben örnek olarak "core" dosyasını seçtim.



Ardından yine resimde gördüğünüz gibi panele dosyalar yüklenmiş olacak. Panelden seçtiğiniz dosyaya sol taraftan tıklayın.



Altta gördüğünüz gibi ben "core" dosyasından "banner" sekmesini seçtim ve o dosyadaki oyundaki bayrak hakkında girilenleri şekildeki gibi görebiliyorum. Artık istediğim gibi bunları düzenleyebilirim. Bu uygulama aracılığı ile ileride bir moddaki özelliklerin kaynak kodlarını da görebiliriz. Fakat değişiklikleri sakın buradan yapmayın !!! Burası sadece kodları görmek için değişiklikleri buradaki kodları baz alıp inceleyip kendi "module" dosyamızda yapacağız....



Haydi iyi incelemeler...
Selamlar hepinize. Bugünkü konumuz kolaydan başlayarak yeni bir menü seçeneği eklemek olsun.

Öncelikle visual studioda projemizi açıyoruz ve alttaki gibi eklentilerimizi yapıyoruz. Bu kodlar başvuru olarak eklediğimiz ana oyun dosyalarından gereken kısımları taramamızı sağlayacak.



Ardından alttaki kodu şekildeki gibi yapıştırıyoruz. Bu yeni bir menü eklememizi ve sonucunda triggerlanacak şeyi girmiş olduk. Bu tarz kodların işleyişini oyunun modül dosyalarını inceleyerek öğrenebilirsiniz.






ve bu şekilde bir manzara ile karşılaşıyoruz



dnSpy uygulamasından da kod dizinin module dosyamıza nasıl girildiğini de görebiliriz. Uygulamanın nasıl işlediğini de anlamış olursunuz




İyi forumlar dilerim hepinize...
1 haftalık bir aradan sonra merhabalar arkadaşlar. Bugün daha ayrıntılı bir özellik eklemesi yapacağız. Çok uzatmadan dersimize geçelim

Öncelikle visual studiomuzu açalım. Aşağıdaki resimde de gördüğünüz gibi yeni bir sınıf ekliyoruz. Özelliği yeni sınıfta yazacağım ben. İstiyorsanız kodları "Main"e de ekleyebilirsiniz. Bir sıkıntısı olmaz. Ben özellikleri ayrı ayrı sınıflandırmanın daha iyi olacağını düşünüyorum.
(!!!Eğer kodları "Main"e ekleyecekseniz iki üç resim aşağıdaki "Submodule.dll"e eklentiyi yapmamalısınız!!!)



Gelen pencereden "sınıf" seçiyoruz



Gelen sınıfı dilediğimiz gibi adlandırabiliriz. Ben "Kontroletme" olarak adlandırdım gördüğünüz gibi.




evet şimdi "Kontroletme" sayfasındaki her şeyi silip alttaki kodları yapıştıralım. Kodun içindeki örnek veriyorum "controlRandomAgent" gibi yeşil ifadeleri dilediğiniz gibi adlandırabilirsiniz. Kod içinde triggerlanacak şeyleri belirtmiş oluyoruz. Kodu inceleyin dediğimi anlayacaksınız. Kod multiplayer kısmındaki "CaptainBattle"dan örnek alınarak geçirilmiş olduğu için ellemedim ben...




Kaydedelim yaptığımız değişiklikleri



Bu aşamayı isterseniz atlayabilirsiniz. Ben güvenlik olsun diye ekledim. Çok da mühim değil. Başvuru olarak önceki derslerde MB klasöründen eklenmesi gerekenleri göstermiştim. Üstüne resimdeki 5 dosyayı da eklemeniz iyi olabilir. Bir sıkıntı çıkarırsa silebilirsiniz. Dediğim gibi mühim değil.



Visualda son olarak şu şekilde gözükmeli kodlar



Son kez kaydedip yukarıdan "derle"ye tıklıyoruz. Kodlar modumuza eklenmiş oluyor. İşimiz bitti sayılır. Son olarak Modulesde modumuzun klasöründeki "SubModule" dosyasını açıp resimdeki gibi kodları ekliyoruz.





Ve artık ölünce savaşımız bitmiyor....





3-4 güne yeni derslere geçmeyi planlıyorum. Saygılar....


Anlatım için Ster'in ve ikinci ders için GlorifiedPig'in tutorialından yararlandım.
Katkıları için thanks to Ster, GlorifiedPig and Rafaws​
Süpersin
 
Çok yararlı olmuş şahsen şuan mod işine bulaşmak istemesem de uğraşmak isteyen arkadaşlar için güzel bir kaynak olur. Merak ettiğim bir şey var bu arada mod tools ilerleyen dönemde geldiğinde başlığın hâla geçerliliği olacak mı?
 
Back
Top Bottom