uzun zamandır uo ile ilgilenmiyordum. en son 2010 da uo fu.ker'ı son kez güncelledim. şimdide bi connector projem vardı hemen hemen sistemlerini bitirdim. altta bi kaç ekran görüntüsü koyarak anlatmaya çalışacağım. sistem 2 taraflı yazıldı client-server olarak. connector tamamen bir virus mantığıyla yazıldı bu yüzden antiviruslerle başım belaya girdi :)

sistemi kısaca anlatayım.

client kısmı:

client benim ana formum içinde açılıyor binevi childform gibi. Bu sayede cliente direk mudahalesi olan yazılımları engelliyorum. easy uo,teot,uo f.cker, assist tarzı yazımlar için. clientde ip kontrolu mevcuttur hangi ip adresine ayarlandıysa sadece o ip adresine bağlanır aksi takdirde kendini kapatır. client yazmış olduğum dll'e bağlı olarak çalışır dll değişirse veya bulunamassa clientde açılmıcaktır. dll içinde speed koruması var. herhangi bir şekilde dll kill edilemez aksi takdirde client kendini gene kapatır. client benim formum içinden çıkartılmaya çalışılırsada kendini gene kapatır. client paketleri spyuo tarzı yazılımlarla alınmaya kalkışılırsa tekrar kendini kapatıcaktır. client hangi isimle çalışmasını istiyosanız sadece o isimle çalışacaktır. örneğin "uosunucu.exe" isminde ayarladım eğer ismi değişirse client açılmaz. client dosyalarında koruma vardır bu yüzden değişen küçük bir byte sonucu update sunucusuna bağlanacaktır ve orjinal dosyaları indirecektir. client veya connector 3. party yazılımlarla suspend edilemez... client dll ile sphereservera dogrulama kodu yollar sphereserverdada ayriyetten bi dll ve sphereserver kapanınca otomatik açılsın diye ve onaylama kodu yollasın diye ayrı bi yazılım vardır. client 3 versiyonundan 4 versiyonlarına kadar destek verdim.

resimlere geçelim
Update ve Dosya kontrolünün yapıldığı ana kısım





doğrulama tamamlanırsa otomatik ana görüntü kapanıp client açılacaktır.




yazılımın tabiki bi ücreti olacaktır 1 gün bunun üzerinde çalıştım. localde test ettigim için tam olarak problem varmı bilemiyorum... şimdilik fikirlerinizi almak istedim daha neler yapılabilir.
Adept
4.3
Dinamik ve degisken bir sunucu yapisi elde etmek icin en önemli noktalardan bir tanesi patch sistemidir. Ancak mul dosyalarinin büyüklügü nedeniyle partial patch yapilmasi gerekiyor, cünkü her degisiklik icin birkac 100 MB'lik patchler kabul edilemez.

Dolayisiyla her türlü mul dosyasini patchleyebilen bir sistem eklersen iyi olabilir.
Neran : Dinamik ve degisken bir sunucu yapisi elde etmek icin en önemli noktalardan bir tanesi patch sistemidir. Ancak mul dosyalarinin büyüklügü nedeniyle partial patch yapilmasi gerekiyor, cünkü her degisiklik icin birkac 100 MB'lik patchler kabul edilemez.

Dolayisiyla her türlü mul dosyasini patchleyebilen bir sistem eklersen iyi olabilir.

evet mantıklı yalnız ultima online hakkında fazla bilgim yok mul dosyaları nasıl editlenir ne nereye girer bilemem benim zaten işim yazılım... bunları bilmedende elimden bişey gelmez
Adept
4.3
Internette yeterince döküman var. InsideUO, Mulpatcher, vb. programlarin kaynak kodlari da yayimlanmis durumda. Bunlar ile epey hizli bir sekilde *.mul dosyalarin yapisini ögrenebilirsin. Ayrica byte to byte patch gibi yöntemlerle buna gerek bile kalmayabilir. Tamamen dosya türüyle alakasi olmayan yeterince yöntem var.

Onun disinda benim sahsi fikrim, connector ne kadar sade olursa o kadar iyi. Haberler, istatistikler, vb. bilgileri ekleyenler var, acikcasi kabaliktan baska bir sey degil bunlar bana göre. Önemli olan kullanisliliktir.
ea games birçok oyununda RTP denen ücretli patch sistemini kullanır. bizim uo auto patcher işte. bayt bayt algılıyor bütün değişikliği, hızlı da hem. ama tabi fiyatı el yakan cinsten olduğu için netteki türlü açık kaynak patchleme sistemlerine bakmanı öneririm. xdelta vs.
Xantier : ea games birçok oyununda RTP denen ücretli patch sistemini kullanır. bizim uo auto patcher işte. bayt bayt algılıyor bütün değişikliği, hızlı da hem. ama tabi fiyatı el yakan cinsten olduğu için netteki türlü açık kaynak patchleme sistemlerine bakmanı öneririm. xdelta vs.


ilerleyen zamanlarda bu duruma el atıcam. şimdilik başka işlerimde var. connector projem yoktu zaten boş kaldığımdan yaptım bunu fırsat buldukça bu patch kısmıylada ilgilenicem...
Neran un söylediği gibi bir patch sistemi kullanırsan bu senin sistemine büyük bir artı katacaktır.
arkadaşlar mantıgını detaylı bi şekilde açıklayabilirseniz daha kolay olur. yani şu dosyabuna ihtiyaç duyar 100mb lık dosyaya bişey eklendiginde 101 mb olur bu 1mb lık dosyayı 100mblık dosyaya yazman lazim gibisinden. yani tam olarak açıklama olursa yapması sorun değil ama hiç bimedigim konu hakkındada yorum yapamam olur veya olmaz diye.
Varan ın bi programı vardı Neran ın söylediği şekilde patch yapan o programı bulup inceleyebilirsen çok yararı olur aslında.Bende link i yok ama Neran da vardır büyük ihtimal program.Onun haricinde mulpatcher programının patch mantığını kavrayabilirsen de aynı şeye ulaşabilirsin.

https://www.ultima-strike.com/indir/mulpatcher-v97
peki bu mul dosyalarının hangisi önemli ? ben bi static mul dosyasını biliyorum oda land fix için kullanılırdı lol asıl önemli konuda bu sistem yapılabilir lakin dosyalar yazıldıktan sonra client tarafından kontrol edilemez ve değiştirilmeye müsait olur.
Sunucunun kullandığı tüm dosyalar önemli.Sunucunun client versiyonuna göre verdata veya art , static dosyaları , yine sunucunun kullanımına göre map dosyaları vs. vs.
Bu patch sisteminde sunucunun kullanacağı yeni patch ile oyuncuda bulunan dosyalar arasındaki farklar kontrol edilip gerekli yerlere patch yapılacak.Sunucu dosyalarının değiştirilmesi ihtimaline karşı şöyle bişey yapabilirsin.Oyun dosyaları sadece senin yazdığın bir program ile değiştirilebilir.Onun haricinde herhangi bir değişiklik yapabilmek söz konusu olmaz(öyle bi ihtimal varsa tabi) yada connector her açıldığında mevcut dosyalar arasındaki farklar kontrol edilir,farklılık varsa her seferinde tekrar patch yapılır.Client açıkken de oyun dosyaları üzerinde değişiklik yapılamayacağına göre yapılan değişikliğin herhangi bir önemi kalmaz.
dosyaların md5ini alarak check ettiriceksiniz işte. bir de patch demek illa boyutun artması olmaz. mesela map0.mul'un boyutu hiçbir zaman değişemez içindeki değerler değişir ama boyutu, haritanın büyüklüğü değişmedikçe değişmez. patcher kodlamayla uğraşacaklara tavsiye yani :p
pyramid :
Neran : Dinamik ve degisken bir sunucu yapisi elde etmek icin en önemli noktalardan bir tanesi patch sistemidir. Ancak mul dosyalarinin büyüklügü nedeniyle partial patch yapilmasi gerekiyor, cünkü her degisiklik icin birkac 100 MB'lik patchler kabul edilemez.

Dolayisiyla her türlü mul dosyasini patchleyebilen bir sistem eklersen iyi olabilir.

evet mantıklı yalnız ultima online hakkında fazla bilgim yok mul dosyaları nasıl editlenir ne nereye girer bilemem benim zaten işim yazılım... bunları bilmedende elimden bişey gelmez

ultima online dosyaları ile ilgili bilgiye ihtiyacın yok. binary patching olarak ineternette aratırsan çeşitli kaynaklara erişebilirsin. ancak tamamen gereksiz, binary patching bir connector için fazla bir özellik. açıkçası connectorun kendisinden daha büyük bir proje olur.
sistem az çok kafamda şekillendi. bana bir standart orjinal verdata mul dosyası ve içine aynı verdata'dan tek bir yama yapılmış dosya lazım. işleyiş sistemini görmem açısından. eğer düşündüğüm gibiyse çok basit birşey. değilse baya bi uğraştırır.
Bu arada yanlızca oyun dosyaları için düşünüyorsan, mul dosyalarını editleme yetisine sahip açık kaynak kodlu programlara da göz atabilirsin. Eklenecek şey belli olduktan sonra o programlın kullandığı yolla da ekleyebilirsin.



Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.