DeathKO | v.24xx Light Farm | ORION | Beta: 17 Kasım | Official: 24 Kasım

1860 Dosyalar ile ilgili açıklamalar

K Çevrimdışı

Karaeski

Kayıtlı Üye
8 Mart 2012
387
1
16
33
# 1860 Soruce Açıklamaları



- CNpc* pMon = NULL

- CUser* pTUser = NULL,

- _MAGIC_TYPE8* pType = NULL,

- _MAGIC_TABLE* pTable = NULL



Yukarıdakiler ve bunlara benzer tanımlamalar bir sınıf yerine bir isim atamasının yapılmasıdır.

İlk satırda CNpc (Class Npc) Npc Sınıfını,

İkinci satırdaki pTUser (Class User) Kullanıcı sınıfının atamasıdır.

Başında kullandığı p ise bir "Pointer" anlamına gelmektedir.



- char send_buff[128];

Char türünde yeni bir dizi değişkeni tanımlamış uzunluğu 128 büyük ihtimalle 128 Byte olarak geçiyor



- memset(send_buff, NULL, 128)

Memset fonksiyonu hafızadaki değişkene bir değer atamaya veya üzerindeki değeri silmeye yarar.

send_buff değerine NULL atamış yani değeri boşaltmış



- SetByte, SetShort, SetDWORD nedir?

#SetByte 2 Haneli bir değeri gönderilecek olan pakete eklemek için kullanılır.

#SetShort 4 Haneli bir değeri gönderilecek olan pakete eklemek için kullanılır.

SetDWORD 8 Haneli bir değeri gönderilecek olan pakete eklemek için kullanılır.



Neden SetByte, SetShort, SetDWORD kullanılıyor?

Öncelikle :

Ebenezerdeki ana case yapısında kullanıcının ne iş yaptığını yani gelen paketin türünü belirleyen bir yapı var,

Daha sonra gelen paket türüne göre işlemler yapılmakta, Ebenezer her kullanıcının yaptığı her işe karşılık vermek zorunda ve bu yüzden kullanıcının isteğini yorumlayıp geri dönecek paketi hazırlaması gerekiyor bunun içinde,

SetByte, SetShort, SetDWORD Fonksiyonları kullanılıyor.



SetByte( send_buff, WIZ_MAGIC_PROCESS, send_index );

Burada kullanıcı skill kullanmış ki kullanan kullanıcıya geri dönecek değere "WIZ_MAGIC_PROCESS" eklemiş.

PacketDefine.h üzerinde tanımlanmış paketler SetByte ile pakete eklenir.

Bu 3 fonksiyon pakete değer eklemeye kullanıcıya vereceğiniz cevabı hazırlamakta kullanılır.



SetByte( send_buff, MAGIC_FAIL, send_index );

Yukarıda "MAGIC_FAIL" sub paketinin kullanıldığını görüyoruz. Sub paket nedir?

WIZ_MAGIC_PROCESS + MAGIC_FAIL / MAGIC_EFFECTING olarak iki ana alt paket var aslında fazla ama şimdilik bunlar yeter örnek için ;



Eğer kullanıcının kullandığı skill başarısız ise,

Alt paket olan "MAGIC_FAIL" kullanıcıya kullandığı skillin başarısız olduğunu anlatır ve ana pakete eklenir.



Eğer skill başarılı ise "MAGIC_EFFECTING" kullanıcıya kullandığı skillin başarılı olduğunu anlatır ve ana pakete eklenir.

SetByte( send_buff, MAGIC_EFFECTING, send_index );



Yani alt paketler genellikle anapakette yapılan işlemin sonucunu veya türünü belirlemeye yarıyan değerlerdir.



Konu altına "dosyaların mantığı" ile ilgili sorularınızı sorabilirsiniz, elimden geldiğince size anlatmaya çalışırım
 
21oyuncu Çevrimdışı

21oyuncu

Kayıtlı Üye
22 Mart 2012
684
5
18
39
saol kardeş bilgiler için eline koluna aklına salık :) Diyelim inş. sen bu işi biliyorsan 1886 filesleri yapacaz galiba sayende :D
 
K Çevrimdışı

Karaeski

Kayıtlı Üye
8 Mart 2012
387
1
16
33
Arkadaşlar asıl amaç forum içinde gerçekten bir geliştirici (dev.eloper) takımı oluşturmak, dosyaların geliştirilmesini sağlamak size fikir verdiyse yardımcı olduysa ben teşekkür ederim ilginiz için hepinize başarılar
 
K Çevrimdışı

Karaeski

Kayıtlı Üye
8 Mart 2012
387
1
16
33
Ogün olabilirde bilmiyorum zor olucak, C++ fonksiyonlarının çoğu yok C#'da ama yazması kolay converter var ama oturmaz diye düşünüyorum skypedan konuşabiliriz bunu yarın.

Eyvallah Gönüllü kardeş :)
 
K Çevrimdışı

Karaeski

Kayıtlı Üye
8 Mart 2012
387
1
16
33
Yapmam için önce tüm mantığı kavramam lazım, o kadar üzerine düşemiyorum vizeler finaller proje ödevleri falan var, boş vaktim yok neredeyse.. Okul bittikten sonra uğraşmayı planlıyorum