-
İçerik sayısı
1.387 -
Katılım
-
Son ziyaret
-
Günün Kazananı
202 -
Puan
944,726,918 [ Bağış Yap ]
OzkanOzdemir kullanıcısının paylaşımları
-
Nationel Transfer there is no character available for transfer hatası
OzkanOzdemir , we1982 kullanıcısının konusuna cevap verdi - Genel Yardım
Fonksiyon içerisini komple yorum satırı olarak değiştir ve ardından içerisine sadece denemek için paket gönderme işlemini bırak bunu da şu şekilde yapıyorsun. void CUser::NationChange(Packet & pkt) { Packet result(WIZ_NATION_CHANGE); result Send(&result); } Yukarıdaki bahsettiğim yere breakpoint koyuyorsun daha sonrasında oyuna giriyorsun. Nation Change penceresini açıyorsun işlemi yapmaya başlıyorsun. Client paketi Servera attığında senin bu breakpointin tetiklenecek ardından 0x01 diye belirttiğim yeri değiştirerek böyle denemeye devam ediyorsun. Oyundan çıkmadan breakpoint tetiklediği anda yapabilirsin değiştirme işlemini ve senin bahsettiğin hata hangi değer de çıkıyor buna bakıyorsun. Örnek verelim ki 0x05 değerinde çıktı. Yorum satırı yaptığın fonksiyon içerisinden aynı paket nereye denk geliyor bakıyorsun eğer ki yoksa prosedürden dönen bir 0x05 değeri vardır ona bakıyorsun ve orada ne yanlışlık var anlıyorsun. Bu kadar basit. -
Server yazilimi geliştirme
OzkanOzdemir , trcod3r kullanıcısının konusuna cevap verdi - Serbest Konular
-
Server yazilimi geliştirme
OzkanOzdemir , trcod3r kullanıcısının konusuna cevap verdi - Serbest Konular
Bir atasözü der ki "Bu ortam için 'Open Source' pişmanlıktır." -
14xx Moradon Arena Attack Sorunu
OzkanOzdemir , UntouchableS kullanıcısının konusuna cevap verdi - Genel Yardım
Sen hala anlamıyorsun beni önemli olan senin sorununun yazması değil. O attığın resimler ile senin sorununun hiç bir alakasının olmaması bu da bilmiyor oluşundan kaynaklanıyor. Bilmiyorsan öğrenmeye çalış sorununu düzeltmeye değil bunu söylüyorum sana ama sen gidip hala yardım etmek zorunda değilsin gibi havalara giriyorsun. Tabi ki senin şu sorununa yardım etmek zorunda değilim ve başkası da değil. KODevelopers nedir? konusunu aç oku ne dedim yada ne dedik dosyalarınızı biz yada başkası düzeltecek değil bilmiyorsanız öğrenmeye çalışın ona göre konular açın. Sen şuan milleti ve beni enayi yerine koyuyorsun, neden mi açıklayayım. Bu sorunu çözdüğümüzde diğer sorunun hakkında gelip buraya konu açacaksın sonra onu çözdüğümüzde diğerini açacaksın senin dosyalarını bana yada başkasına yaptıracaksın. Aynen bunu yapıyorsun şuan bunu herkes görüyor kimse de yardım etmek istemiyor bu halde olduğun için ve beni kötü konuşuyor olarak görüyorsunuz ya ona bitiyorum. Ben size sadece öğrenin diyorum kendinize bir şeyler katın kendin de farkındasın hiç bir bilgin yok verdiğin resim ve açtığın konu alakasız yerlerden sadece gitmişsin dosyaları açmışsın resim koyayım diye onu eklemişsin bu kadar basit. Bilgin yoksa gel sor skype vereyim zaten profile de yazıyor anlatayım sana neyin ne olduğunu ama baştan anlatayım senin sorununun çözümünü anlatacağımı sanma sakın. Ben sana balık vermeyeceğim tutmasını öğreteceğim sen o balığı kendin tutacaksın. Eğer ki bu işi para için yapıyorsanız dilenciden hiç bir farkınız yok şu açtığınız konularla bunu bilin. -
14xx Moradon Arena Attack Sorunu
OzkanOzdemir , UntouchableS kullanıcısının konusuna cevap verdi - Genel Yardım
Hayır yeterli olmuyor, konu içerisinde eklediğin kaynak kodlarında senin yaşadığın sorun ile ilgili herhangi bir alaka yok yanından bile geçmiyor. Eğer ki öğrenmek istiyorsan baştan başla ben sana şimdi şurayı şurayı düzelt diyeceğim anlayamayacaksın yapamayacaksın. Kusura bakma kimse senin sorunlarını direk çözecek değil. Bıktım yemin ediyorum öğrenmek istiyorsanız düzgünce gelin şunu anlat diyin anlatayım anasını satayım. Sorunum var diyip hiç bir şeyden habersizsin sonra senin mizahın mı böyle. -
14xx Moradon Arena Attack Sorunu
OzkanOzdemir , UntouchableS kullanıcısının konusuna cevap verdi - Genel Yardım
Merhaba, koyduğun resimler ile sorunun hakkında nasıl bir ilişki var? -
v1299 Dsoyları Full Olarak Elinde Olan Varmı!
OzkanOzdemir , jagu kullanıcısının konusuna cevap verdi - Genel İstek
Sunucuyu ve domaini almadıysan onları da verebiliriz istiyorsan? -
"Failed Logging Into The Game (255)"
OzkanOzdemir ,
DeathRowkullanıcısının konusuna cevap verdi - YardımBak baştan anlatıyorum; GameServer.ini içerisindeki DSN adreslerini kendi veritabanını yönlendirdiğin ODBC isimlerini gir. Eğer ki elinde kaynak kodları varsa WIZ_LOGIN paketini kontrol edeceksin bu da LoginHandler.cpp içerisindeki LoginProcess fonksiyonuna yönleniyor. Orada -1 veya 255 olarak paket attığı bir yer var mı ona bak. Eğer ki elinde kaynak kodları yoksa SQL Profiller açıyorsun oyuna giriyorsun Server seçiyorsun o sırada SQL Profiller Output ekranına hangi prosedürü çalıştırdıysa o düşüyor. Örnek verelim GAME_LOGIN prosedürünü çalıştırdı. GAME_LOGIN prosedürünü açıyorsun orada RETURN -1 veya RETURN 255 veya bRet = -1 veya bRet = 255 olan kodların bir satır yukarısında ne kontrol yapıyor da bu değerleri döndürüyor diye bakacaksın. Bunların hangisinin çalıştığını merak ediyorsan da RETURN veyahut bRet değerlere 0,1,2 değerlerini verebilirsin -1 veya 255 yerine 0 verdiğin zaman direk Nation Select ekranına geçersin. 1 verdiğin zaman Karakter Seçme (Karus) ekranına geçersin. 2 verdiğin zaman Karakter Seçme (Elmorad) ekranına geçersin. Böylelikle anlarsın neyin ne olduğunu. -
"Failed Logging Into The Game (255)"
OzkanOzdemir ,
DeathRowkullanıcısının konusuna cevap verdi - YardımServer listesine tıkladığında SQL Profiller ile hangi prosedürü çalıştırıyor ise onu açacaksın kontrol edeceksin. RETURN yada bRet değerler içerisinde 255 yada -1 var mı diye bak eğer varsa onları döndürüyor demektir. -
"Failed Logging Into The Game (255)"
OzkanOzdemir ,
DeathRowkullanıcısının konusuna cevap verdi - YardımWIZ_LOGIN paketinin çağırdığı fonksiyon sanırım LoginProcess fonksiyonu bunu kontrol et. GAME_LOGIN prosedürünü yada ACCOUNT_LOGIN prosedürünü hangisini çağırıyorsa Server seçtiğinde onu kontrol et. Hangisini çağırdığını anlamak için dosyaları Visual Studio ile Debug modunda açtığında Output ekranında yazacaktır. Bir başka yol SQL Profiller kullanabilirsin. -
Database / files / exe iliskisi nedir? 1299
OzkanOzdemir , espandot kullanıcısının konusuna cevap verdi - Genel Yardım
Bu Client ile her oyuna girebiliyorum diye bir mantık yok onu baştan belirteyim. Sebebini şimdi anlatacağım bütün hepsine değinmiş oluruz böylelikle anlarsın. Bu arada aşağıdaki anlatacağım şeyler KO için geçerlidir. Ayrıca öyle ahım şahım bilimsel terimler ile anlatmayacağım, anlayacağınız dilden anlatacağım. İlk öncelikle Database yani bizim dilimizde Veritabanı nedir ve oyun ile ilişkisi nasıl oluyor? Siz oyuna girdiğinizde eğer ki girdiğiniz sunucu otomatik üyelik ise yani direk Login ekranında ID PW yazdığınızda üyelik oluşturabiliyorsanız bu sizin girdiğiniz ID PW gibi bilgilerini o sunucunun tutması gerekiyor. Peki sunucu ID PW gibi bilgileri neden tutmak zorunda ondan bahsedelim. Bir daha ki oyuna girdiğinde ID PW yazdığında sunucu bunu kontrol etmek zorunda. Doğru bilgiler mi girdin, bu üyelik yasaklanmış mı, bu üyelik şuan oyunda mı gibi kontrolleri sağlayacak. Bunları sağlamak için de bu bilgileri veritabanı içerisinde tutması gerekiyor. Peki bu bilgilere erişmesi için nasıl bir yol izlemesi gerekiyor. Knight OnLine için SQL Server kullanıyoruz veritabanı için tabi daha başka veritabanı türleri var ama biz SQL kullanıyoruz. SQL içerisinde senin ID PW kontrolünü yapmak için Query komutları girmemiz gerekiyor ve bu komutlar ve kontroller baya uzun olduğu için tek bir Query komutu ile bitmeyeceği için SQL taraflı prosedür çağırıyoruz. Bu prosedür içerisinde gerekli kontrolleri yapıyoruz ona göre sunucu geriye bir değer alıyor yani oyuna girip girememe açısından ve bunu sana yönlendiriyor. Bütün geri kalan olaylar da aynı bu şekilde işlemektedir. Sunucu veritabanı içerisinde bilgileri depolar oradan erişim sağlar ve ona göre işlemler uygular. Hani yok benim elimde öyle bir sorunsuz veritabanı var, yok her şey fixlenmiş durumda dediklerine buradan inanmıyorsunuz. Veritabanı sadece verileri tutmaya yarıyor bu kadar basit. Veritabanı olayını anlattık şimdi gelelim diğer mantıklar nelerdir? Her Client ile oyuna giremezsin sebebini anlatayım. KnightOnLine.exe Client içerisindeki gördüğün dosyaları okuyor bu dosyaların aslında bir okuma sırası mevcut. Örnek verelim; TBL dosyalarının okuması neden değişiyor yada üst sürümlerde UI_IUS.tbl hatası alıyoruz bunun sebebi nedir? Şimdi TBL dosyaları normal öbür gördüğün dosyalar gibi doğrudan açılmıyor bunlar şifrelenmiş durumdadır. Şifrelemek hem dosya boyutunu küçültüyor hem de başkalarının bu dosyayı açmasını engelliyor. (tabi herkesin değil hani işi bilen kişi uğraşıp bunun şifrelemesini çözebiliyor kırılmayacak sistem yok :) ) KnightOnLine.exe açıldığında dosyaları okumaya başlıyor ilk öncelikle ilk açıldığında hangi dosya lazım onu düşünelim. Oyunu açtık ilk karşımıza Logo geliyor değil mi NTTGame yazıyor önceden K2 Network yazardı hani girişteki cinematic Logo geliyor. İlk önce yani okuması gereken şey bu Logo'nun dosyaları oluyor. Onlar da UI klasörü içerisindeki co_logo_us.uif gibi bir dosyaydı hatırladığım kadarıyla. Sen böyle oyuna girmeye devam ettikçe karşına gelecek şeyleri yüklüyor ona göre işleme alıyor. TBL okumasına gelelim neden bahsettik UI_US.tbl dosyasından değil mi? Genellikle sürüm değiştirdiğimizde bu dosyanın hata verdiğini görürüz. Sebebi ise şudur, KnightOnLine.exe dosyanın şifrelemesini açtıktan sonra ilk önce sütun bilgilerini alıyor dosya içerisinden bunlarda sütun sırasının hangi veri tipinde olacağı hakkında oluyor. Yine bir örnek verelim Item_Org_us.tbl için ilk sütun UInt32 okur ondan sonraki Byte gelir daha sonrası String gelir gibisinden. Bundan önce şunu da anlatayım oyuna girişteki Logo yada Login penceresini okumak için UI_US.tbl içerisindeki sütun sırasına göre okuyor o dosyaların isimlerini yani Logo için atıyorum ilk sütundaki co_logo_us.tbl dosyasını alıyor. Şimdi sütun bilgilerini okudu ve artık elimizde tüm UI_US.tbl var. Ama söyle bir durum mevcut KO.exe içerisinde bu bilgileri tutması gereken bir alan lazım ve bunu struct ile tutuyor. Aşağıya kafamdan bir örnek yazıyorum. struct _TABLE_UI { std::string m_szLogo; std::string m_szLogin; std::string m_szCharacterSelect; std::string m_szInventory; ... }; Eğer ki bizim struct içerisindeki dosya uzantısı olarak tuttuğumuz string değerleri UI_US.tbl içerisindeki sütun sayısı ile uyuşmazsa KnightOnLine.exe okuyamayacaktır ve patlayacaktır. Aynı şekil diğer dosyalar içinde geçerlidir. Bütün dosyaların bir okuma sırası vardır yani hayal ederseniz sütun gibi düşünebilirsiniz. Tabi bunun yanında girememe yada herhangi bir sunucuya ait KO.exe kullanamama gibi durumların başka sebepleri de mevcut. Belki VERSION değerini değiştirmiş olabilirler, port değiştirmiş olabilirler, gelen giden paketleri şifrelemiş olabilirler, daha sayamayacağım tonla şey var. Bunların hepsi senin her Client ile girmeni engelliyor. -
Merhaba @ BORAN aramıza hoş geldin.
-
Minaks Thorn Skili Hakkında...
OzkanOzdemir ,
donz05kullanıcısının konusuna cevap verdi - Genel YardımKodun nasıl olduğu hakkında bir fikrim yok ama olay şöyle işliyor ona göre senin yazman gerekiyor ben sadece mantığını yazıyorum. Sendeki kodun hali; /* int32 damage; damage hesaplandığı yer; */ if (pAttacker->isinParty()) { if (hasMinaksThorn()) { CParty * pParty = g_pMain->GetParty(GetPartyID()); if (pParty) { for (uint8_t i = 0; i { CPlayer * pPlayer = pParty->members[i]; if (pPlayer == nullptr) continue; pPlayer->HpChange(-(damage)); } } } } Aslında olması gereken hali; /* int32 damage; damage hesaplandığı yer; */ if (pAttacker->isinParty()) { if (hasMinaksThorn()) { CParty * pParty = g_pMain->GetParty(pAttacker->GetPartyID()); if (pParty) { for (uint8_t i = 0; i { CPlayer * pPlayer = pParty->members[i]; if (pPlayer == nullptr) continue; pPlayer->HpChange(-(damage)); } } } } -
özkan reis 2195 unpack exe paylaşmışsın ya suankı sürümle uyumlumudur yardımcı olurmusun biraz unpack için napmamız lazım araştırabileceğim bi kaynak varmı
-
Skill kısayol sütununa kaydedilemez?
OzkanOzdemir , moylin kullanıcısının konusuna cevap verdi - Genel Yardım
What!? Can you share any picture? -
SRC Dosyaları için UNPACK (İSTEK)
OzkanOzdemir , xenasanqelo kullanıcısının konusuna cevap verdi - Yardımcı Program Paylaşımları
Knight Online HDR Unpacker 1298 sürümünden örnek alırsak Item yada Object klasöründe tonla bulunan dosyaları düşün bunların hepsi bir dosya haline getirilmiş ve .SRC uzantısı verilmiş. HDR ise bu SRC dosyası içerisindeki birleştirilmiş tüm dosyaların hangi offset ile hangi dosya ismiyle ve hangi dosya boyutuyla tutulduğunu gösteren bir dosya yapısı yani anlayacağın yukarıdaki yaptığım program ile sorunsuz bir şekilde çıkartabilirsin. Ayrıca geri .SRC uzantılı dosya haline getirmek istiyorsan Start alabildiğin herhangi bir Launcher.exe dosyasını açabilirsin o kendiliğinden .SRC uzantılı olarak toplayacaktır. -
1299 Rabbit/Christmass tree R atak damage ayarlaması hakkında yardım lütfen.
OzkanOzdemir , Julien kullanıcısının konusuna cevap verdi - Genel Yardım
[Gizli İçerik]- 16 yanıt
-
- 2
-
-
- 1299
- rabbit/christmass
-
(7 tane daha)
İle Etiketeklendi:
-
Skil efeck değiştirme sorunu
OzkanOzdemir , craxer22 kullanıcısının konusuna cevap verdi - Genel Yardım
Eğer ki oyuncu isen Server taraflı senin TBL dosyalarını kontrol ediyorlar eğer ki herhangi bir değişiklik yaptıysan bunu anlıyorlar ve seni oyundan atıyorlar. Bu yüzden senin yapabileceğin bir şey olmuyor. -
Skil efeck değiştirme sorunu
OzkanOzdemir , craxer22 kullanıcısının konusuna cevap verdi - Genel Yardım
Server sahibi misin yoksa oyuncu musun onu belirt ilk önce?