MT2Dev Work - Geliştirme Günlüğü

MT2Dev

Cplusplus
Premium Üye
Üye
Mesaj
118
Çözümler
8
Beğeni
185
Puan
744
Ticaret Puanı
0
Selamlar MMOTutkunları, geliştirme günlüğü konsepti aslında uzun yıllardır çok sevdiğim, paylaşılanları okurken çok keyif aldığım ve zaman zaman da belirli fikirler aldığım çok güzel bir konsept, uzun zamandır bende bu tarz bir konu açmak istiyordum fakat çok uzun bir hazırlık aşaması gerektiğini düşündüğümden hep erteledim. Pandemi dönemi iş güç olayları hafiflemişken Mart 2020 gibi bir altyapı geliştirmeye başladım, hedefim olabildiğince güncel ve temiz bir altyapı yapmak ve tüm sorunları fixlemekti, tabii tam zamanlı olarak üzerinde çalışma fırsatı bulamadım hatta bazı dönemler iş yoğunluğu sebebiyle aylarca devam edemediğim dönemler de oldu. Geldiğim noktada hala finalden çok uzaktayım fakat asıl amacım uğraşırken keyif aldığım bir hobi projesi olmasıydı, öyle de devam ediyor. Bu konuyu açma sebebim hem okumayı seven arkadaşlara bir içerik oluşturmak hem de benim paylaştığım notlardan belki bir fikir üretecek veya kendine uyarlayacak arkadaşlara yardımcı olmak, yaklaşık 4 senelik bir süreç olduğu için biraz yer kaplayacak, başlayalım.

SERVER TARAFI;

Serverside Version Info:
/***************************************************************************************************************************
Proje Bilgisi   = MT2Dev - Yeni Nesil Altyapı (Başlangıç Tarihi = Mart 2020)
Game-DB SRC     = Mainline_Released (ServerSide)
Game-DB Derleme = FreeBSD 14.0 (GCC 13.2 - C++20)
Bilgi           = Ymir'in zamanında tercih ettiği compiler GCC, bu yüzden ben Clang yerine GCC tercih ettim.
Kodlama         = Kaynak kodları, Eric Allman'ın kodlama stili olan "Allman Style" referans alınarak düzenlendi. -
                  Ymir'in özensiz, okuması güç ve güvenlikten uzak kodlama stili tamamen değiştirildi. -
                  (Detaylı Bilgi; https://en.wikipedia.org/wiki/Indentation_style#Allman_style)
****************************************************************************************************************************/
//-------------------------------------------------------------------------------------------------------------------------//
/******************************************** KÜTÜPHANELER & ÇEŞİTLİ BİLGİLER ***********************************************
FreeBSD 32-Bit  = 14.0
GCC Compiler    = 13.2 (C++20)
Lua             = 5.0
Boost           = 1.84
MariaDB         = 10.6
DevIL           = 1.8.0 [Compiled with GNU GCC Compiler (GCC 13.2 & std=c++20)]
CryptoPP        = 8.9   [Compiled with GNU GCC Compiler (GCC 13.2 & std=c++20)]
LZO             = 2.10  [Compiled with GNU GCC Compiler (GCC 13.2 & std=c++20)]
****************************************************************************************************************************/
/*############################################## !!! ÖNEMLİ NOT, DİKKAT !!! ################################################
####### DevFix xx(Sayısı) şeklinde paylaşılan fixlerin detaylarına "ServerSide_Info.h" dosyasından ulaşabilirsiniz.#########
################################################ !!! ÖNEMLİ NOT, DİKKAT !!! ###############################################*/

*************************************
-----------------0.1V----------------
*************************************

- Mainline_Released serverside kaynak kodları "Kraizy.tgz" (/*2014 yılında sızdırılan source dosyaları*/) içinden alındı, MakeFile dosyaları builde hazır hale getirildi.
- Extern dosyası builde hazır olacak şekilde düzenlendi.
- DevFix 1 uygulandı.
- Srcs klasörünün içindeki gereksiz dosyalar temizlendi. (/*Doc dosyaları, VS build dosyaları, Tools klasörü vs.*/)
- Services.h düzenlendi, YMIR defineları ayrıldı sonradan eklenen definelarla karışmaması için.

*************************************
-----------------0.2V----------------
*************************************

- MakeFile dosyaları optimize edildi ve renklendirildi.
- Game & DB içerisindeki tüm warningler düzeltildi. (119 adet düzeltme yapıldı hepsinin yanında //Game-DB SRC Warning Fix xx(Sayısı) şeklinde bilgi var.)

*************************************
-----------------0.3V----------------
*************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ServerSide_Info.h" dosyasından ulaşabilirsiniz.*/)

*************************************
-----------------0.4V----------------
*************************************

- Extern klasöründeki bütün bağlantılar(/*bir tutam Cryptopp hariç*/) iptal edilip direkt olarak makinanın içindeki konumlarından çekilecek şekilde ayarlandı.(/*Boyuttan ve zamandan tasarruf etmek için.*/)

*************************************
-----------------0.5V----------------
*************************************

- GCC Sürümü 10 'a yükseltildi (Son Sürüm) srcde gerekli tüm düzenlemeler yapıldı.
- Cryptopp 8.2, Boost 1.72, DevIL 1.7.8, Lzo 2.10'a yükseltildi, gerekli düzenlemeler yapıldı.
- GCC10 ile birlikte gelen tüm yeni warningler düzeltildi. (59 adet düzeltme yapıldı hepsinin yanında //GCC10 Warning Fix xx(Sayısı) şeklinde bilgi var.)

*************************************
-----------------0.6V----------------
*************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ServerSide_Info.h" dosyasından ulaşabilirsiniz.*/)
- "No TXT DB" sistemi eklendi, files db içerisindeki conf.txt dosyasında "NO TXT = 1" olursa navicat üzerinden proto ayarlaması yapabilirsiniz, eğer 0 olarak ayarlarsanız orijinal haline döner. (/*Şuana kadar hep 0 olarak, yani orijinal haliyle kullanıldı.*/)

*************************************
-----------------0.7V----------------
*************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ServerSide_Info.h" dosyasından ulaşabilirsiniz.*/)

*************************************
-----------------0.8V----------------
*************************************

- Maksimum seviye 99 olarak ayarlandı, source taraflı desteklediği maksimum sınır da 99 'a çekildi.
- Karakterler 99 Levele kadar statü puanı alabilecekler, ayrıca maksimum statü puanı 95 olarak ayarlandı
- Skiller 17 'de master olacak şekilde ayarlandı.
- DevFix 8  uygulandı.
- DevFix 9  uygulandı.
- DevFix 10 uygulandı. (Kod bloğunda "// IMMUNE_BUG_FIX" şeklinde bilgi var.)
- DevFix 11 uygulandı.
- DevFix 12 uygulandı.
- DevFix 13 uygulandı.
- DevFix 14 uygulandı.
- DevFix 15 uygulandı.
- DevFix 16 uygulandı.
- DevFix 17 uygulandı.
- DevFix 18 uygulandı. (Kod bloğunda "// WEDDING_ITEM_BLOCK_FOR_MOUNTS" şeklinde bilgi var.)
- DevFix 19 uygulandı. (Kod bloğunda "// CLEAR_SERVER_TIMER_RENEWAL" şeklinde bilgi var.)
- DevFix 20 uygulandı. (Kod bloğunda "// CHAR_LOG_RENEWAL" şeklinde bilgi var.)
- Efsun atarken aşağıdan yazan "Yükseltmeyi Değiştirdin." uyarı yazısı kapatıldı.

*************************************
-----------------0.9V----------------
*************************************

- Bütün Droplar maksimum %1000 olarak açılabilecek şekilde ayarlandı.
- Common içerisindeki bütün dosyalar tek tek incelendi, gereksiz YMIR notları kaldırıldı, kodlar düzenlendi.
- DevFix 21 uygulandı.
- DevFix 22 uygulandı.
- Sequence sistemi tamamen kaldırıldı. (/*Syserr kapatmaktan bahsetmiyorum tüm kodlarıyla beraber sistem TAMAMEN kaldırıldı.*/)

**************************************
-----------------0.10V----------------
**************************************

- DB içerisindeki bütün dosyalar tek tek incelendi, gereksiz YMIR notları ve deaktif kodlar kaldırıldı, kodlar düzenlendi.
- Game içerisindeki bütün dosyalar tek tek incelendi, gereksiz YMIR notları ve deaktif kodlar kaldırıldı, kodlar düzenlendi.
- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ServerSide_Info.h" dosyasından ulaşabilirsiniz.*/)

**************************************
-----------------0.15V----------------
**************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ServerSide_Info.h" dosyasından ulaşabilirsiniz.*/)
- P2P açığı kapatıldı, ayrıca API Tool ile yapılan saldırılar için fix diyebiliriz.

**************************************
-----------------0.20V----------------
**************************************

- Tüm libler ve common düzenlendi, kodlamalar optimize edilip yeni nesile uygun hale getirildi ve kullanılmayan tüm paketler, loglar, kodlar, dosyalar temizlendi.
- MySQL 5.5 yerine oyun sunucumuzda da kullandığımız MariaDB 10.3 'e geçiş yapıldı, src içerisinde gerekli düzenlemeler yapıldı. (Libsql için gerekli.)
- Kritik ayarların tek bir dosyada toplanması için "Ayarlar.h" adında bir header oluşturuldu, bazı ayarlar kolay ayarlanması adına buraya bağlandı.
- DevFix 23 uygulandı.
- Liblua taşındı artık direkt olarak makinanın içinden çekecek, gerekli tüm düzenlemeler yapıldı.
- Minilzo taşındı artık direkt olarak makinanın içinden çekecek, gerekli tüm düzenlemeler yapıldı.
- Cryptopp taşındı artık direkt olarak makinanın içinden çekecek, gerekli tüm düzenlemeler yapıldı. (/*Bununla beraber artık src içinde Extern klasörümüz yok.*/)
- Game ve db'nin MakeFile dosyaları daha derli toplu gözükmesi için baştan sona düzenlendi.

**************************************
-----------------0.30V----------------
**************************************

/*KRİTİK NOT = SRC Build edebilmeniz için gerekli tüm kütüphanelerin olduğu bir VDI (Yeni nesili desteklemesi için mecburi) gereklidir, başka bir VDI ile build esnasında hata alırsınız !!!*/

- GCC Sürümü 11.2 'ye yükseltildi, (Son Sürüm) srcde gerekli tüm düzenlemeler yapıldı.
- Cryptopp 8.5 'e yükseltildi, (Son Sürüm) gerekli düzenlemeler yapıldı.
- Boost 1.77 'ye yükseltildi, (Son Sürüm) gerekli düzenlemeler yapıldı.

- "-Wall" komutuyla hali hazırda derleyicinin verdiğini tüm warningleri görüyorduk. "-Wekstra" da flaglara eklendi, amaç daha da detaylı warning alıp bunları da çözmek.
- Tüm common ve db düzenlendi, kodlamalar optimize edilip yeni nesile uygun hale getirildi ve kullanılmayan tüm paketler, loglar, kodlar, dosyalar temizlendi.
- Liblerin "Makefile" dosyaları düzenlendi, "Depend" kaldırıldı.
- Lib, Game, Db içerisindeki tüm dosyaların dili Korea olarak ayarlanıp ardından formatları UTF-8'e dönüştürüldü, LC_Text'leri görmek için kolaylık sağlandı, ilerleyen aşamada komple Türkçeleştirilecek.
- DevFix 24 uygulandı.
- DevFix 25 uygulandı.
- DevFix 26 uygulandı.
- DevFix 27 uygulandı.
- DevFix 28 uygulandı.
- DevFix 29 uygulandı.
- DevFix 30 uygulandı.
- DevFix 31 uygulandı.
- DevFix 32 uygulandı.
- DevFix 33 uygulandı.
- DevFix 34 uygulandı.
- DevFix 35 uygulandı.
- DevFix 36 uygulandı.
- DevFix 37 uygulandı.
- DevFix 38 uygulandı.
- DevFix 39 uygulandı.
- DevFix 40 uygulandı.
- DevFix 41 uygulandı.
- DevFix 42 uygulandı.
- DevFix 43 uygulandı.
- DevFix 44 uygulandı.
- DevFix 45 uygulandı.
- DevFix 46 uygulandı.
- DevFix 47 uygulandı.
- DevFix 48 uygulandı.
- Level sınırı 99 olduğu için ileriki aşamada oyunculara sıkıntı çıkarmaması için Skillerin M1 olma değeri 17 'den 16 'ya düşürüldü.
/*KRİTİK NOT = Google Cloud, AWS veya Azure içinde bir sunucu kurmadıysanız bu define'ı mutlaka yorumlayarak deaktif edin !!!*/
- Google Cloud VDS, AWS, Azure gibi makinalardan sunucu açmak için gereken external ip eklentisi yapıldı.

**************************************
-----------------0.40V----------------
**************************************

- Tüm game düzenlendi, kodlamalar optimize edilip yeni nesile uygun hale getirildi ve kullanılmayan tüm paketler, loglar, kodlar, dosyalar temizlendi.
- FreeBSD yapısı içerisinde ve GCC yada Clang haricinde build etmeyi düşünmediğim için Windows build desteği tamamen kaldırıldı.
- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ServerSide_Info.h" dosyasından ulaşabilirsiniz.*/)
- İşlevsiz veya kullanılmayan tüm Kore kodları, backdoorlar, YMIR Dev'lerinin eklediği bazı fonksiyonlar, tüm kodlarıyla birlikte srcden kaldırıldı.
- Yeni komutlar do_add_rare_attr ve do_poison komutlar arasına eklendi.
- Bir loncadan ayrıldıktan veya atıldıktan sonra 1 gün bekleme şartı kaldırıldı.
- DevFix 49 uygulandı.
- DevFix 50 uygulandı.
- DevFix 51 uygulandı.
- DevFix 52 uygulandı.
- DevFix 53 uygulandı.
- DevFix 54 uygulandı. (Kod bloğunda "// FULL_SET_COMMAND_RENEWAL" şeklinde bilgi var.)
- DevFix 55 uygulandı.
- DevFix 56 uygulandı.
- DevFix 57 uygulandı.
- DevFix 58 uygulandı.
- DevFix 59 uygulandı.
- DevFix 60 uygulandı.
- DevFix 61 uygulandı.
- DevFix 62 uygulandı.
- DevFix 63 uygulandı.
- DevFix 64 uygulandı.
- DevFix 65 uygulandı.
- DevFix 66 uygulandı.
- DevFix 67 uygulandı.
- DevFix 68 uygulandı.
- DevFix 69 uygulandı.
- DevFix 70 uygulandı.
- DevFix 71 uygulandı.
- DevFix 72 uygulandı.
- DevFix 73 uygulandı.
- DevFix 74 uygulandı.  // Oldukça önemli bir kontrol, bir çok dupe sorununun önüne geçecektir.
- DevFix 75 uygulandı.
- DevFix 76 uygulandı.
- DevFix 77 uygulandı.
- DevFix 78 uygulandı.
- DevFix 79 uygulandı.
- DevFix 80 uygulandı.
- DevFix 81 uygulandı.
- DevFix 82 uygulandı.
- DevFix 83 uygulandı.
- DevFix 84 uygulandı.
- DevFix 85 uygulandı.
- DevFix 86 uygulandı.
- DevFix 87 uygulandı.
- DevFix 88 uygulandı.
- DevFix 89 uygulandı.
- DevFix 90 uygulandı.
- DevFix 91 uygulandı.
- DevFix 92 uygulandı.
- DevFix 93 uygulandı.
- DevFix 94 uygulandı.
- DevFix 95 uygulandı.
- DevFix 96 uygulandı.
- DevFix 97 uygulandı.
- Tüm makefile dosyaları düzenlendi ve günümüz şartları için gerekli olan bütün flaglar eklendi.
- Paket sistemi komple elden geçirildi, kullanılmayan paketler temizlendi, paketler kategorize edildi ve bazı olası unknown packet headers hatalarının önüne geçildi. // Gelecekten Not: Yeterli değil, tekrar bak!
- Kullanım dışı olan ve ileride çeşitli flood ataklarına davetiye çıkartabilecek AdminPage sistemi tüm kodlarıyla birlikte srcden kaldırıldı.
- CMD dosyası kaldırıldı, hem güvenlik sebebiyle hemde işlevsel olarak bakıldığında direkt olarak src içerisinden düzenlemek daha sağlıklı.
- Oyuncuların farklı krallıklardaki NPC'lerden aldığı eşyalara 3 kat fazla yang ödemesiyle alakalı kural kaldırıldı, artık tüm köylerde fiyatlar aynı olacak.
- Oyuncuların kişisel pazarlarında veya NPC'ye item satarken, oyun tarafından kesilen vergi kaldırıldı.
- Çeşitli sebepler sonucu ortaya çıkan "Buffer" problemlerini çözmek adına düzenlemeler yapıldı.
- "Buffer" delete işlemi için yeni bir fonksiyon eklendi. (/* Yanında // EXTRA_BUFFER_DELETE_FUNCTION şeklinde bilgi var. */)
- GCC 11.2 ile birlikte gelen tüm yeni warningler düzeltildi. (242 adet düzeltme yapıldı hepsinin yanında //GCC11 Warning Fix xx(Sayısı) şeklinde bilgi var.)
- Game ve DB içerisindeki "MakeFile" dosyaları düzenlendi, "Depend" kaldırıldı.
- Header guardların yerine pragma once kullanımına geçiş yapıldı, hem daha temiz bir görüntü oluşturdu hem de yeni nesile daha uygun.

**************************************
-----------------0.50V----------------
**************************************

- FreeBSD sürümü 13.1 'e yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- Boost sürümü 1.81 'e yükseltildi.(Son Sürüm), gerekli düzenlemeler yapıldı.
- CryptoPP sürümü 8.6 'ya yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- DevIL 1.7.8 sürümü statik olarak yeniden derlendi.

- GCC Sürümü 12.2 'ye yükseltildi (Son Sürüm), gerekli tüm düzenlemeler yapıldı.
- GCC 12.2 ile birlikte gelen tüm yeni warningler düzeltildi, kesinlikle -w kullanılmadı! (20 adet düzeltme yapıldı hepsinin yanında //GCC12 Warning Fix xx(Sayısı) şeklinde bilgi var.)
- DevFix 98  uygulandı.
- DevFix 99  uygulandı.
- DevFix 100 uygulandı.

**************************************
-----------------0.60V----------------
**************************************

- FreeBSD sürümü 14.0 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- Boost sürümü 1.84 'e yükseltildi.(Son Sürüm), gerekli düzenlemeler yapıldı.
- CryptoPP sürümü 8.9 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- MariaDB sürümü 10.6 'ya yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı. (Hepsinin yanında // MariaDB 10.6 Update şeklinde bilgi var.)
- DevIL sürümü 1.8.0 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- CppDepend kullanılarak tüm kodlar incelendi, düzenleme gereken yerlere comment satırları eklendi. (/*Hepsinin yanında "- CppDepend" şeklinde bilgi var, ileri versiyonlarda ilgileneceğim.*/)

- GCC Sürümü 13.2 'ye yükseltildi (Son Sürüm), gerekli tüm düzenlemeler yapıldı.
- GCC 13.2 ile birlikte gelen tüm yeni warningler düzeltildi, kesinlikle -w kullanılmadı! (2 adet düzeltme yapıldı hepsinin yanında //GCC13 Warning Fix xx(Sayısı) şeklinde bilgi var.)
- Tüm "Makefile" dosyaları yeniden yazıldı, renklendirme ve modernleştirme çalışmaları yapıldı.
- Version kaldırıldı, güncel sürüm bilgisi her sürümün içinde olan "ServerSide_Info.h" içerisinde bulunabilir.
- DevFix 101 uygulandı.
- DevFix 102 uygulandı.
- DevFix 103 uygulandı.
- DevFix 104 uygulandı.
- DevFix 105 uygulandı.
- DevFix 106 uygulandı.
- DevFix 107 uygulandı.
- DevFix 108 uygulandı.
- DevFix 109 uygulandı.
- DevFix 110 uygulandı.
- DevFix 111 uygulandı. (/* Önemli bir fix serisi, 200'den fazla yeni nullptr kontrolü içeriyor.*/)
- DevFix 112 uygulandı. (/* Alfabesinde farklı semboller içeren dillerle (Arapça, Japonca, Çince, Korece vs.) nick alınabilen sunucularda ve nick kullanımında özel harflere (?,.!:; vs.) izin veren sunucularda KESİNLİKLE KULLANILMAMALIDIR !!!!*/)
- "service.h" dosyası iptal edildi, yeni service dosyası "ServiceDefs.h" aktif edildi.
- AStyle ile gözden kaçabilecek son pürüzler de düzeltildi, kodlamalar artık daha temiz ve düzenli.
- Efektlerin gerçek zamanlı olarak güncellenmesi için ufak bir düzenleme yapıldı. (Kod bloğunda "// AFFECT_LOAD_RENEWAL" şeklinde bilgi var.)
- "Ayarlar.h" dosyasının adı "Settings.h" olarak değiştirildi, içerisine yeni ayarlar eklendi.
- "DB" tarafında Boost kütüphanesi yerine std kullanımına geçildi, std burası için yeterli, boost'a ihtiyacımız yok. (Game tarafında hala aktif.)
- Etkisi devam eden bazı iksirlerin, süresi dolmadan tekrar kullanılabilmesi engellendi.
- Ymir tarafından yapılan versiyonu her ne kadar eksik ve final sürümü için kullanışsız olsa da, debug aşamasında bazı durumlarda yardımı dokunduğu için "ENABLE_SEQUENCE_SYSTEM" revize edilerek tekrar eklendi, define yorum satırı haline getirildiği takdirde yine deaktif olacaktır.
- Debugging işlemleri için kullanışlı olan "USE_STACKTRACE" sistemi tekrar eklendi.
- Debugging işlemleri için kullanışlı olan bir diğer sistem "USE_QUERY_LOGS" eklendi. (/*Sadece test_server modunda aktif olur..*/)
- Debugging işlemleri için kullanışlı olan bir diğer sistem "ENABLE_SYSLOG_PACKET_SENT" eklendi. (/*Sadece test_server modunda aktif olur..*/)

**************************************
-----------------0.70V----------------
**************************************

- "Network Packet" sistemi baştan sona düzenlendi, paket hatalarını minimuma indirmek için çeşitli düzenlemeler yapıldı, tüm ölü kodlar temizlendi.
- "Enums.h" ve "Packets.h" isimli iki yeni header oluşturuldu, tüm paket kodları ve enumlar (/*tüm demek yanlış olabilir, aslında sadece gerekli gördüklerim*/) bu iki dosyaya taşındı,-
- Hataları tespit etmek veya düzenleme yapmak artık daha kolay olacaktır çünkü gereken tüm kodlar tek bir dosyada.
- Yukarıda bahsettiğim işlem esnasında artık kullanımına gerek kalmayan (/*yani içeriği tamamen yukarıda bahsettiğim yeni dosyalara taşınan*/); -
- "common/building.h", "common/length.h", "common/item_length.h", "common/tables.h", "db/QID.h", "game/packet.h", "game/unique_item.h" isimli dosyalar srcden kaldırıldı.


Serverside Fix Info:
/*##############################################################################################################*/
/*#####################################*/   GAME & DB Version; 40070   /*#######################################*/
/*##############################################################################################################*/
/*--------------------------------------------------------------------------------------------------------------*/
/*##############################################################################################################*/
/*######################################*/     "MT2Dev - Fixler"     /*#########################################*/
/*##############################################################################################################*/

/*FIX ISMI                           DUZELTILEN SORUNUN ACIKLAMASI                                ISLEM YAPILAN DOSYA*/
- DevFix 1   = Internal IP sorunu duzeltildi.                                                        (config.cpp)
- DevFix 2   = NPC'den 0 yanga item alamama sorunu duzeltildi.                                        (shop.cpp)
- DevFix 3   = Artik item yansitirken icgoru kuresi istemiyor.                                        (input_main.cpp)
- DevFix 4   = Dice komutu deaktif edildi, kullanmayacagim icin kapatmayi tercih ettim.                (cmd_general.cpp)
- DevFix 5   = Yere yang atma ozelligi deaktif edildi.                                                (char_item.cpp)
- DevFix 6   = Duygu maskesi olmadan duygu kullanimi aktif edildi.                                    (cmd_emotion.cpp)
- DevFix 7   = War -111 Crash sorunu duzeltildi eger sayi 0'dan dusukse (-) komut calismaz.            (cmd_general.cpp)
- DevFix 8   = Karakterin giydigi iteme efsun ekleme&degistirme acigi duzeltildi.                    (char_item.cpp)
- DevFix 9   = Lonca exploit acigi duzeltildi, gerekli kontroller eklendi.                            (input_main.cpp)
- DevFix 10  = Sersemlik islememe sorunu duzeltildi, kod bloklarinda detayli bilgi mevcut.            (item.cpp&item.h)
- DevFix 11  = Yesil efsun ve arttirma artik 40 Level alti tum itemlerde kullanilabilir.            (char_item.cpp)
- DevFix 12  = Cube r_Info core crash sorunu duzeltildi.                                            (cube.cpp)
- DevFix 13  = Nadir olarak tetiklenen onemli bir CoreDowner duzeltildi.                            (questlua_npc.cpp)
- DevFix 14  = Lonca ve Grup CoreDowner duzeltildi.                                                    (input_main.cpp)
- DevFix 15  = Dungeon Count Monster duzeltildi, artik sadece metin yada canavarsa sayilacak.        (dungeon.cpp)
- DevFix 16  = Dungeon Memory Leak duzeltildi.                                                        (dungeon.cpp)
- DevFix 17  = Nadir tetiklenen bir Cube CoreDowner duzeltildi.                                        (cube.cpp)
- DevFix 18  = Binek veya At uzerinde evlilik itemi giyme engeli eklendi.                            (char_item.cpp)
- DevFix 19  = Clear_Server_Timer fonksiyonu detaylandirildi.                                        (questlua_global.cpp)
- DevFix 20  = Char_Log fonksiyonu detaylandirildi.                                                    (questlua_global.cpp)
- DevFix 21  = Dungeon Core Downer duzeltildi.                                                        (char.cpp)
- DevFix 22  = CancelServerTimers fonksiyonu degistirildi.                                            (questmanager.cpp)
- DevFix 23  = Yuksek HP&SP oranlarinda degerlerin eksiye dusmesi duzeltildi.                        (tables.h)
- DevFix 24  = CArena::SendPacketToObserver fonksiyonu komple yenilendi.                            (arena.cpp)
- DevFix 25  = CArena::SendChatPacketToObserver fonksiyonu komple yenilendi.                        (arena.cpp)
- DevFix 26  = CArenaManager::IsLimitedItem fonksiyonu komple yenilendi, ekstralar eklendi.            (arena.cpp)
- DevFix 27  = Gerekli bazi ekstra kontroller eklendi.                                                (battle.cpp&char_item.cpp&input_main.cpp&questmanager.cpp&shop_manager.cpp&exchange.cpp&cmd_gm.cpp)
- DevFix 28  = ComputePoints cagirildiginda devreye giren HP/SP duzenlemesi.                        (char.cpp)
- DevFix 29  = Sync fonksiyonu duzenlendi, binege binince oyundan atma duzeltildi.                    (char.cpp)
- DevFix 30  = Sync fonksiyonu duzenlendi, IsNPC icerisindeki syslog detaylandirildi.                (char.cpp)
- DevFix 31  = Statuler artik son levele kadar gelmeye devam eder, normalde 90'da bitiyordu.        (char.cpp)
- DevFix 32  = APPLY_MAX_HP & APPLY_MAX_SP ve HP/SP pct ayrica affectleri duzenlendi.                (char.cpp)
- DevFix 33  = Madencilik hile engeli, mesafe kontrolu sayesinde uzaktan kazilamaz.                    (char.cpp)
- DevFix 34  = CHARACTER::IsNearWater fonksiyonu eklendi, balikcilik icin yeni bir kontrol.            (char.cpp)
- DevFix 35  = CHARACTER::SetSyncOwner fonksiyonu bastan sona duzenlendi.                            (char.cpp)
- DevFix 36  = 0 HP icin bir kontrol yoktu, olasi crash'i engellemek icin kontrol eklendi.            (char.cpp&char_battle.cpp&char_state.cpp)
- DevFix 37  = CHARACTER::Get&SetQuestFlag icerisine null pointer kontrolu eklendi.                    (char.cpp)
- DevFix 38  = CHARACTER::MountVnum icerisine ekstra kontrol eklendi.                                (char.cpp)
- DevFix 39  = Affect icin 3 yeni fonksiyon eklendi, affectleri yenilemek icin kullanilacak.        (char.h&char_affect.cpp&char_item.cpp)
- DevFix 40  = Hatali ve kontrol icermeyen bir kod blogu duzenlendi.                                (char_battle.cpp)
- DevFix 41  = Duz vuruslardaki delici patlama efekti aktif edildi.                                    (char_battle.cpp)
- DevFix 42  = Bayrak degisimi esnasinda yasanabilecek buglarin onune gecildi.                        (char_change_empire.cpp)
- DevFix 43  = Arena mapinde ata binme engeli eklendi.                                                (char_horse.cpp)
- DevFix 44  = Mor veya Yesil pot kullanildigi zamanlarda cikacak pot icme efekti eklendi.            (char_item.cpp)
- DevFix 45  = 6-7 Efsunlarin kostumlere eklenmesi engellendi.                                        (char_item.cpp)
- DevFix 46  = Izgara levrek basinca kotu afectlerin gitmesi saglandi, orijinalindeki gibi.            (char_item.cpp)
- DevFix 47  = Evlilik esyalarina efsun ekleme bugu engellendi.                                        (char_item.cpp)
- DevFix 48  = Artik size dusmeyen(owner) bir itemi yerden alamazsiniz.                                (char_item.cpp)
- DevFix 49  = Statu dagitimi esnasinda tek kontrol donusum icindi, ekstra kontrol eklendi.            (cmd_general.cpp&cmd_gm.cpp)
- DevFix 50  = Binek veya ata in bin seklinde yapilan spama ufak bir kontrol eklendi.                (cmd_general.cpp)
- DevFix 51  = Komutlardan do_state icerisinde duzenleme yapildi, fonksiyon detaylandirildi.        (cmd_gm.cpp)
- DevFix 52  = Set komutları icinde race ve cinsiyet aktif degildi, onlar aktif edildi.                (cmd_gm.cpp)
- DevFix 53  = GM'larin /level komutunda skillerin sifirlanma durumu icin duzenleme yapildi.        (cmd_gm.cpp)
- DevFix 54  = Full_Set komutu komple degistirildi, verdigi itemler ve efsunlari duzenlendi.        (cmd_gm.cpp)
- DevFix 55  = Lisani olmayan karakterlerin gorecegi metinler duzenlendi ve sadelestirildi.            (empire_text_convert.cpp)
- DevFix 56  = Loncaya alma fonksiyonuna ekstra bir kontrol eklendi.                                (guild.cpp)
- DevFix 57  = SkillRecharge fonksiyonu duzeltildi.                                                    (guild.cpp)
- DevFix 58  = Lonca para yatirma ve cekme fonksiyonlarina kontrol eklendi.                            (guild.cpp)
- DevFix 59  = Lonca daveti (invite) fonksiyonuna onemli bir kontrol eklendi.                        (guild.cpp)
- DevFix 60  = Lonca savasi esnasindaki kill fonksiyonuna izleyiciler icin kontrol eklendi.            (guild_manager.cpp)
- DevFix 61  = Handshake does not handle syserri daha detayli analiz icin gelistirildi.                (input.cpp)
- DevFix 62  = Karakter isminin 12 karakterden fazla olmamasi icin kontrol eklendi.                    (input_login.cpp)
- DevFix 63  = Header 100 syserri icin duzenleme yapildi.                                            (input_login.cpp)
- DevFix 64  = Fisilti fonksiyonu icerisine hedef kisi bilgilerini almak icin ekleme yapildi.        (input_main.cpp)
- DevFix 65  = GM karakterlerin bagirmadan yazmak icin 15 saniye bekleme sarti kaldirildi.            (input_main.cpp)
- DevFix 66  = Depodan direkt olarak kemer slotuna item koymak mumkundu, kontrol eklendi.            (input_main.cpp)
- DevFix 67  = Yeni binek sisteminde, suresi biten binekler icin bir duzenleme eklendi.                (item.cpp)
- DevFix 68  = Kontrol icin kullanilan bir sorgu, daha saglikli olacak sekilde duzenlendi.            (item.cpp)
- DevFix 69  = Create Item fonksiyonu icerisinde, AlterToMagicItem icin duzenleme yapildi.            (item_manager.cpp)
- DevFix 70  = Karakter 30 level oldugunda, gorevsiz ETP dusurebilmesi icin event eklendi.            (item_manager.cpp)
- DevFix 71  = 2. koylerdeki maymun zindanlarindan Saman dusmesi icin duzenleme yapildi.            (item_manager.cpp)
- DevFix 72  = Ufak bir duzeltme, ileride eklenecek Sandik Icgoru sistemi icin de gerekli.            (item_manager.h)
- DevFix 73  = Hata tespiti icin gerekli olabilecek bir kac syserr eklendi.                            (item_manager_read_tables.cpp&regen.cpp)
- DevFix 74  = Artik oyuncu cesitli aktivitelerde bulundugunda oyundan cikma iptal edilir.            (input_main.cpp)
- DevFix 75  = Evlilik sistemindeki lovepoints overflow sorunu duzeltildi.                            (marriage.cpp)
- DevFix 76  = Messenger_Auth ile yapilan flood saldirisi icin gerekli onlemler eklendi.            (messenger_manager.cpp)
- DevFix 77  = OX girisinde eventin acik olup olmadigini sorgulayan bir kontrol eklendi.            (OXEvent.cpp)
- DevFix 78  = Gerekli kodlara "== 0" yerine daha saglikli olan ".empty" yontemi eklendi.            (OXEvent.cpp&messenger_manager.cpp&questmanager.cpp&questnpc.cpp)
- DevFix 79  = IsPartyInDungeon fonksiyonu eklendi, grup icin gerekli kontrolleri iceriyor.            (party.cpp&h)
- DevFix 80  = Karakter olunce petin gonderilmesi kapatildi ve gerekli bir kontrol eklendi.            (PetSystem.cpp)
- DevFix 81  = Belirli maplerde ozel bufflar veren petler icin duzenleme yapildi.                    (PetSystem.cpp)
- DevFix 82  = CPVPManager::HasDuel fonksiyonu eklendi, PvP sistemi icin yeni bir eklenti.            (pvp.cpp)
- DevFix 83  = Quest fonksiyonlarinda gerekli yerlere null pointer kontrolu eklendi.                (quest.h&questlua.cpp)
- DevFix 84  = Quest fonksiyonu "_get_special_item_group" eklendi, bazi kontroller de iceriyor.        (questlua_global.cpp)
- DevFix 85  = Gerekli bazi quest fonksiyonlarinin icerisine ekstra bir update kontrolu eklendi.    (questlua_item.cpp)
- DevFix 86  = Kullanisli olabilecek 3 yeni npc quest fonksiyonu eklendi.                            (questlua_npc.cpp)
- DevFix 87  = Olusabilecek SQL Injection aciklari, "Query" fonksiyonlarindan kapatildi.            (db.cpp&log.cpp&messenger_manager.cpp)
- DevFix 88  = Binege inip binerken spamin onune gecmek icin 1 saniyelik bir kontrol eklendi.        (questlua_pc.cpp)
- DevFix 89  = Binek bonus fonksiyonunun icine gerekli bir kontrol eklendi.                            (questlua_pc.cpp)
- DevFix 90  = "/quit" islevinin icerisine ekstra bir kontrol ve komut eklendi.                        (cmd_general.cpp)
- DevFix 91  = Belirli sartlarda iki kez tetiklenen (when kill begin) quest kosulu duzenlendi.        (questmanager.cpp)
- DevFix 92  = ServerTimer fonksiyonunun syslogu detaylandirildi.                                    (questmanager.cpp)
- DevFix 93  = 4 adet NPC:: fonksiyonu yeniden duzenlendi.                                            (questnpc.cpp)
- DevFix 94  = QuestPC "EndRunning" fonksiyonuna kontrol eklendi, olasi dupelerin onune gecildi.    (questpc.cpp)
- DevFix 95  = "SECTREE_MAP::Build" fonksiyonu duzenlendi, gereksiz kodlar temizlendi.                (sectree_manager.cpp)
- DevFix 96  = Bir pazardaki itemi iki oyuncu ayni anda alinca ortaya cikan crash duzeltildi.        (shop.cpp)
- DevFix 97  = Fonksiyonlar icerisinde kullanmak icin three_arguments (arg3) destegi eklendi.        (utils.cpp&utils.h)
- DevFix 98  = CHARACTER_MANAGER::Update fonksiyonu yeni boost surumu icin yeniden duzenlendi.        (char_manager.cpp)
- DevFix 99  = CGuild::Load fonksiyonu yeni boost surumu icin yeniden duzenlendi.                    (guild.cpp)
- DevFix 100 = CGuild::AddComment fonksiyonu yeni boost icin duzenlendi ve bir syserr eklendi.        (guild.cpp)
- DevFix 101 = Test server modunda GM logosu aktif degildi, degistirilip aktif hale getirildi.        (char.cpp)
- DevFix 102 = Test server modunda beklememek icin lonca savasi baslangic suresi degistirildi.        (GuildManager.cpp)
- DevFix 103 = Test server modunda tum GM'lar Implementor olarak ayarlaniyordu, deaktif edildi.        (char.cpp&gm.cpp)
- DevFix 104 = "GUILD_SUBHEADER_CG_WITHDRAW_MONEY" fonksiyonuna max yang icin kontrol eklendi.        (input_main.cpp)
- DevFix 105 = Ymir'in es gectigi nullptr kontrolleri gerekli yerlere eklendi.                        (char_manager.cpp&item_manager.cpp)
- DevFix 106 = Hava Kilici ve Buyulu Silahin silahsiz kullanilmamasi icin kontrol eklendi.            (char_skill.cpp)
- DevFix 107 = "FuncQuery" ve "FuncAfterQuery" fonksiyonlari yenilendi.                                (db.cpp&h)
- DevFix 108 = Paket istismarini onlemek ve floodlari kontrol etmek icin duzenlemeler yapildi.        (input.cpp)
- DevFix 109 = Depo sistemindeki olasi Memory Leak onlendi.                                            (ClientManager.cpp&safebox.cpp)
- DevFix 110 = "CHARACTER::ExchangeStart" fonksiyonu yenilendi ve ekstra kontroller eklendi.        (exchange.cpp)
- DevFix 111 = Gerekli ve hatta gereksiz(garanticiyim) yerlere nullptr kontrolu eklendi.            (Lot of files have this one)
- DevFix 112 = Oyuncu nicki aratilirken gereken buyuk/kucuk harf duyarliligi kaldirildi.            (p2p.cpp)   --->   (/* BILGI: Bazi GM kodlari ve fisilti sisteminde bir oyuncu adini yazarken buyuk/kucuk harflere uyarak nicki tam olarak yazmasaniz bile aradiginiz oyuncu bulunacaktir. Ozel semboller veya harfler kullanilarak nick alinabilen sunucularda KESINLIKLE KULLANILMAMALIDIR !!!*/)

/*###################################################################################################*/
/*#############*/     "MT2Dev - Kaldirilan Sistemler, Silinen Fonksiyonlar vs."      /*##############*/
/*###################################################################################################*/

** - Listede ekli olmayan (/*veya eklemeyi unuttugum*/), Ymir'in test amacli ekledigi veya ekleyip hicbir yerde kullanmadigi tum kodlar temizlendi.
1   - XTrap
2   - HackShield
3   - Metin2Server_IsInvalid
4   - Metin2Server_Check
5   - Limit_time
6   - Libserverkey
7   - FileMonitor_FreeBSD
8   - Auction
9   - Monarch
10  - PC_Bang
11  - Traffic Profiler
12  - IP_Ban
13  - dev_log
14  - HotBackup
15  - China Event Server
16  - Distribution Test Server
17  - GTest
//18 - Sequence - 0.60V Surumunde sadece debugging kullanimi icin tekrar aktif edildi.
19  - Over9Refine
20  - Roulette
21  - Lotto
22  - SpeedServer
23  - Mobile
24  - SMS
25  - g_GoldDropTimeLimitValue
26  - Spam Event
27  - GreetMessage
28  - VCard
29  - Teen
30  - NetMarble
31  - Three Way
32  - Forked
33  - Block Exception
34  - Block Country
35  - OpenID  (/*Login4*/)
36  - Passpod (/*Login5*/)
37  - Auth Brazil
38  - Auth Japan
39  - Gereksiz butun locale kodlari
40  - DBString
41  - Billing (/*Belki tekrar aktif etmek gerekebilir, auth kisminda ikilemde kaldigim durumlar var*/)
42  - Matrix Card (/*Runup,China,SecurityCode vs. her turlusu*/)
43  - Castle
44  - Ymir'in ekledigi hicbir ise yaramayan hile/hack kontrolleri
45  - ClientPackageCryptInfo
46  - Panama
47  - Over_Time
48  - CRC (/*Ornek; Reload_crc vs.vs.*/)
49  - Revive_invisible
50  - Header_Version2
51  - ShopEX
52  - do_mount
53  - do_siege
54  - do_frog
55  - do_dice
56  - valid_ip
57  - exp_table_euckr
58  - exp_table_newcibn
59  - g_iUseLocale
60  - SUseTime
61  - HammerOfThor
62  - ItemDrop2
63  - InputUDP
64  - FN_is_battle_zone
65  - NewPlayerTable2
66  - M2_USE_POOL
67  - DEBUG_ALLOC
68  - is_twobyte_sjis
69  - check_name_sjis
70  - sjis_is_disable_name_char
71  - CLoginData::Set/GetRemainSecs
72  - Noncopyable
73  - __UNITTEST__
74  - HybridCrypt
75  - Kullanilmayan tum paket kodlari
76  - Windows build icin eklenen kodlar
77  - AdminPage sistemi (/*Komple*/)
78  - AdminMode
79  - HEADER_CG_TEXT (/*Web site P2P soket baglantisi, kullanmayi dusunenler tekrar eklemeli*/)
80  - Oyun sunucusundaki CMD dosyasi
81  - FuncDoNothing
82  - _20050304Myevan
83  - USE_DEBUG_PTR
84  - pt_log (/*PTS*/)
85  - FISHING_MAIN
86  - Safebox Money
87  - ComboSequence
88  - InitializeQuestItemTable
89  - do_console
90  - do_vote_block_chat
91  - do_change_attr
92  - do_add_attr
93  - do_add_socket
94  - do_change_rare_attr
95  - do_add_rare_attr
96  - GOST_Encrypt
97  - GOST_Decrypt
98  - DES_Encrypt
99  - DES_Decrypt
100 - KStbl
101 - hangul
102 - _under_han
103 - Enumlar icine eklenip hicbir yerde kullanilmayan kodlar (/*Hepsi degil*/)
104 - ProtoReader icerisinde ekli olup DB'de kullanilmayan tum tanimlamalar


ServiceDefs.h from serverside:
/********************************************************/
/* FILE:    ServiceDefs.h                               */
/* INFO:    All defines linked to a single header file. */
/* AUTHOR:  MT2Dev                                      */
/* DATE:    11/09/2023                                  */
/********************************************************/
#pragma once

//********************************************************************* DEBUGGING_FEATURES **********************************************************************//
//#define ENABLE_SEQUENCE_SYSTEM  // Ymir Sequence System (Useful for debugging)
#define USE_STACKTRACE            // Ymir Stacktrace System for analyze errors (Be sure to edit game/src/Makefile, USE_STACKTRACE = 1 or 0)
#define USE_QUERY_LOGS            // Logging Queries for analyzing (If it is test server of course)
#define ENABLE_SYSLOG_PACKET_SENT // Syslogs for Packet Sent (If it is test server of course)
//***************************************************************** END_OF_DEBUGGING_FEATURES *******************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//****************************************************************** FIX_AND_SECURITY_FEATURES ******************************************************************//
/* IMPORTANT NOTE!!! - Both encryption systems CANNOT BE ACTIVATED at the same time!!! Btw if you disable both, packet encryption will be COMPLETELY turned off. */
#define _IMPROVED_PACKET_ENCRYPTION_ // Ymir Improved Packet Encryption System
//#define _OLD_PACKET_ENCRYPTION_      // Ymir Old Packet Encryption System (Old ones like xtea, pong, keys etc.)
//#define ENABLE_EXTERNAL_IP_SUPPORT   // For Cloud (Oracle, Google, AWS, Azure) External IP Support
#define ENABLE_PORT_SECURITY           // P2P (API Tool) Extra Security
//************************************************************** END_OF_FIX_AND_SECURITY_FEATURES ***************************************************************//


Settings.h from serverside:
/***********************************************************************/
/* FILE:    Settings.h                                                 */
/* INFO:    All important settings are linked to a single header file. */
/* AUTHOR:  MT2Dev                                                     */
/* DATE:    26/11/2020                                                 */
/***********************************************************************/
#pragma once

// SECURITY_SETTINGS
#define CLIENT_VERSION_KEY                2407972020       // Client Version Key, it's must be same on the serverside!
#define LSS_SECURITY_KEY                4321dcba5678efgz // Ymir Security Key (Only used if _OLD_PACKET_ENCRYPTION_ is enabled)
// END_OF_SECURITY_SETTINGS

// VARIOUS_SETTINGS
#define MAP_ALLOW_LIMIT                    32         // Map Allow Limit.
#define MAX_STAT                        95         // Maximum Stat Points. (Note: The packside needs to be change too when you set another value here, to avoid gauge bug.)
#define MAX_LEVEL_POINT_CAN_STEP        98         // Maximum Level at Which The Character Will Continue to Gain Status.
#define MAX_ITEM_INTRO_STACK            200        // Maximum Number of Items Stacked (Maximum setting that can be made for now; 255).
#define GOLD_MAX                        2000000000 // Maximum Yang Limit (Maximum setting that can be made for now {int}; 2.147.483.647 Yang).
#define INVENTORY_MAX_NUM                90         // Number of Inventory Slots (90 Slots = 2 Inventory). (Note: The sum of the slots of the inventory should not exceed 255 !!)
#define INVENTORY_PAGE_COUNT            2          // Inventory Total Page Count.
#define ITEM_DROP_PENALTY_LEVEL            50         // Minimum Level to Item Drop Penalty (Note: If the low rank character is below level 50, their item will not drop.)
#define MOBS_DISAPPEARANCE_TIME            3          // Mobs disappearance time(Second) after death, it needs to be kept low to avoid lag.
#define BRAVE_CAPE_POSSIBILITY            90         // Brave Cape - Possibility (With just one click) to Attract Monsters (%90).
#define BRAVE_CAPE_MAX_DISTANCE            5000       // Brave Cape - Maximum Distance Of Monsters You Can Attract (5000).
#define STONE_INSERT_PERCENT_CHANCE        30         // Chance For Stones to be Added (%30).
#define ORE_INSERT_PERCENT_CHANCE        50         // Percentage of Success When Adding Ores to The Item (%50).
#define ITEM_ACCESSORY_SOCKET_MAX_NUM    3          // Maximum Number of Ores That Can Be Added to Interior Items.
#define PORTAL_LIMIT_TIME                10         // Cooldown Before Warp For Trading or Post-Battle Control.
#define ITEM_DESTROY_TIME                10         // The Time It Takes For an Item The Player Throws to Disappear.
#define CAN_RESET_HERE_TIME                170        // How Soon After The Character Dies Will He Be Able to Stand Up ? (170 = 10 Seconds) (Respawn Here)
#define CAN_RESET_TOWN_TIME                173        // How Soon After The Character Dies Will He Be Able to Stand Up ? (173 =  7 Seconds) (Respawn Town)
#define CAN_SHOUT_MAX_LEVEL                15         // Level Required to Shout.
#define PARTY_CAN_JOIN_MAX_LEVEL        30         // Maximum Level Difference Between Players to Enter a Group.
#define MAX_MEMBER_INTRO_PARTY            8          // Maximum Number of Players That Can Be in a Group.
#define SAFEBOX_MAX_NUM                    135        // Maximum Number of Safebox Slots (135 Slots = 3 Page).
#define SAFEBOX_PASSWORD_MAX_LEN        6          // Safebox Maximum Password Length.
#define CUBE_MAX_NUM                    24         // Maximum Number of Cube Slots.
#define CUBE_MAX_DISTANCE                1000       // Maximum Distance For Cube.
// END_OF_VARIOUS_SETTINGS

// TRICKY_SETTINGS
// WARNING: Don't change this one's, if you don't know what are you doing exactly.. - [MT2Dev Note] - 30/05/2023
#define QUEST_NAME_MAX_LEN                32
#define QUEST_STATE_MAX_LEN                64
#define MAX_ALLOW_USER                    4096
#define DRAGON_SOUL_STRENGTH_MAX        7
#define POLYMORPH_SKILL_ID                129
#define POLYMORPH_BOOK_ID                50322
#define OXEVENT_MAP_INDEX                113
// END_OF_TRICKY_SETTINGS


ServerFiles Info:
/***************************************************************************************************************************
Proje Bilgisi   = MT2Dev - Yeni Nesil Altyapı (Başlangıç Tarihi = Mart 2020)
Files Altyapı   = Maxmi 3.6
DB Altyapı      = Alman 2011 Veritabanı
****************************************************************************************************************************/
//-------------------------------------------------------------------------------------------------------------------------//
/******************************************** SÜRÜMLER & ÇEŞİTLİ BİLGİLER **************************************************
Aktif Olarak Kullanılan Sürümler = FreeBSD 14.0 / MariaDB 10.6
FreeBSD Desteklenen Sürümler     = FreeBSD 14.x (UYARI; 14'ün altındaki sürümlerde düzgün çalışmayabilir!!!)
Database Desteklenen Sürümler    = MariaDB 10.6.x (UYARI; 10.6'nın altındaki ve üstündeki sürümlerde düzgün çalışmayabilir!!!) / MySQL 8.0 (UYARI; MySQL ile test edilmedi.)
Files İçeriği Hakkında Not       = Bu proje her ne kadar altyapı olarak yeni nesile uygun olacak şekilde düzenlense de, hazırlanan oyun içeriğinde Simya, Kuşak, Aura vs. gibi yeni sistemler YOKTUR!
Files Versiyonu                  = v1.0
****************************************************************************************************************************/

**************************************
-----------------1.0V-----------------
**************************************

- Detaylı bir kontrol ve yedekleme scripti yapıldı.
- Questler tamamen düzenlendi, quest_list düzenlendi.Artık rahatça sh make.sh çekilebiliyor ayrıca qc.core verdirten tüm sorunlar çözüldü artık core vermiyor.
- Quest bölümünde qc ve make.sh dosyaları düzenlendi, optimize edildi.

/**** Quest Bölümü Yapılanlar Başlangıç ;*/
         -* Mysql_query kodu komple kaldırılıp sağlıklı bir şekilde yorum satırıyla (/* -- Mysql_query baslangic / bitis */) eklendi.
         -* Questlib ve quest_functions düzenlendi gereksiz fonksiyonlar kaldırıldı.
         -* Renkli quest yazmaya yarayan fonksiyon sağlıklı bir şekilde yorum satırıyla (/* -- Questlerde Renk Kullanma Baslangic / Bitis */) eklendi.
         -* Renkli quest yazmak için örnek kod; " say_color("yesil","Bu quest yeşil renklidir.") ". // (Bulunan renklerin kodları; mavi - yesil - kirmizi - sari - beyaz - siyah - turkuaz - pembe - turuncu -mor.)
         -* Baslangic.lua - map_sınır.lua - move_ring.lua gibi yeni questler eklendi. (/* Şimdilik sadece gerekli şeyleri ekledim. */)
/**** Quest Bölümü Yapılanlar Bitiş.*/

- Kanalların, Auth'un ve DB'nin verdiği bütün syserrler tek tek çözüldü, çok fazla boyut şişiren gereksiz 2 adet syslog src taraflı deaktif edildi.
- Config dosyaları düzenlendi güvenlik için gerekli kodlar eklendi. ("Game & Client & Files") taraflı, gerekli tüm düzenlemeleri ile beraber yapıldı.
- No TXT DB sistemi eklendi, istenirse artık veritabanından protolar düzenlenebiliyor.DB içerisinde conf.txt dosyasında "NO TXT = 0" şeklinde ayarlı "1" yaparsanız Navicat üzerinden düzenleme yapılabilir.
- Mob_proto ve item_proto ("DB-Pack-Files taraflı olarak") düzenlendi, gereksiz ve bozuk item ve moblar silindi, isim hataları tek tek düzeltildi.
- Common_drop_item, drop_item_group, etc_drop_item, mob_drop_item, special_item_group dosyalarından da silinen itemler kaldırıldı.
- Simya sistemi komple kaldırıldı.
- Efsun oranları zor TR tipine uygun olacak şekilde 4 olasılıklı olarak baştan sona düzenlendi, probları da aynı şekilde düzenlendi.
- "Şimşeğe & Rüzgara & Ateşe Karşı Dayanıklılık" efsunları işlevsizdi, hepsi aktif edildi. Aktif edilen moblar şu şekilde;

/******************************************
Şimşeğe Karşı Dayanıklılık = Sürgün Mağarası içindeki Setaou sınıfı canavarlar ve Beran-Setaou, Buz Cadısı, Güçlü Buz Cadısı, Yılan vadisindeki devler karşısında savunma.
Rüzgara Karşı Dayanıklılık = Örümcek Zindanı 1.Kat , 2.Kat , 3.Kat içerisindeki tüm örümcekler, Örümcek Barones, Kraliçe Örümcek karşısında savunma.
Ateşe   Karşı Dayanıklılık = Doyyumhwan içerisindeki tüm ateş yaratıkları ve Kırmızı Ejderha karşısında savunma.
******************************************/

- İtem_Proto ve Mob_Proto tekrar temizlendi, hatalı ve kullanılmayan nesneler ve moblar tamamen silindi. // (Oyun içeriğinde kullanılmayacağı için Simya eşyaları, Kemerler, +5 sonrası taşlar vs. buna dahil.)

// TODO:

// - Navicat tabloları tek tek incelendi, gereksiz kullanılmayan tablo ve değerler kaldırıldı.
// - Daha yüksek performans için eski motor "MyISAM" motorundan "Aria" 'ya geçiş yapıldı. (Tüm tablolar taşındı.)
// - Questler tekrar gözden geçirilecek ve yenileri eklenecek.

Muhtemelen Client kısmı buraya sığmayacak, onu da yorum olarak ekleyeyim. :LOL:
 
aha beklediğim kişilerden biri sendin valla sonunda sende açtın demekki seni cezbedebilmişiz. her gününü sabırsızlıkla bekliyorum valla :D başarılar
 
Hayırlı olsun bende yakında geliştirememe günlüğü açmayı düşünüyorum 😁 bu günlüklerin hepsini yakından takip ediyorum bir tane daha eklendi bu listeye 😁
 
CLIENT TARAFI;

NOT; Client tarafı ile fazla ilgilenemedim, son zamanlarda uğraştığım paket hataları sebebiyle server tarafına ağırlık vermiş durumdayım, zamanla eşitleneceklerdir.

Client Version Info:
/***************************************************************************************************************************
Proje Bilgisi   = MT2Dev - Yeni Nesil Altyapı (Başlangıç Tarihi = Mart 2020)
Client SRC      = Mainline_Released (ClientSide)
Client Derleme  = Visual Studio 2022
Kodlama         = Kaynak kodları, Eric Allman'ın kodlama stili olan "Allman Style" referans alınarak düzenlendi. -
                  Ymir'in özensiz, okuması güç ve güvenlikten uzak kodlama stili tamamen değiştirildi. -
                  (Detaylı Bilgi; https://en.wikipedia.org/wiki/Indentation_style#Allman_style)
****************************************************************************************************************************/
//-------------------------------------------------------------------------------------------------------------------------//
/******************************************** KÜTÜPHANELER & ÇEŞİTLİ BİLGİLER ***********************************************
Visual Studio    = 2022
C++ Standartları = C++20
Speed Tree       = 1.6
Miles            = 6.5c
DirectX          = 8
Python           = 2.7.3
Granny           = 2.11.8
DevIL            = 1.8.0  [Compiled shared with Visual Studio 2022 (v143 & std:c++20)]
LZO              = 2.10   [Compiled static with Visual Studio 2022 (v143 & std:c++20)]
LibJPEG          = 9e     [Compiled static with Visual Studio 2022 (v143 & std:c++20)]
CryptoPP         = 8.9    [Compiled static with Visual Studio 2022 (v143 & std:c++20)]
****************************************************************************************************************************/
/*############################################## !!! ÖNEMLİ NOT, DİKKAT !!! ################################################
####### DevFix 1xxx(Sayısı) şeklinde paylaşılan fixlerin detaylarına "ClientSide_Info.h" dosyasından ulaşabilirsiniz.#######
################################################ !!! ÖNEMLİ NOT, DİKKAT !!! ###############################################*/

//************************* SÜRÜM BİLGİLERİ ********************************//
//**************************************************************************//
// Debug      = Just for debug purposes.. No security, no optimization etc. //
// Disturbute =      HENÜZ YAPMADIM YAP BUNU UNUTMA !!!                     //
// Release    =      HENÜZ YAPMADIM YAP BUNU UNUTMA !!!                     //
//**************************************************************************//

***************************************
-----------------0.1V------------------
***************************************

- Mainline_Released clientside kaynak kodları "Kraizy.tgz" (/*2014 yılında sızdırılan source dosyaları*/) içinden alındı ve builde hazır hale getirildi.
- VS 2008 'den 2013 'e taşındı.
- Python 2.2 'den 2.7 'ye yükseltildi.
- Exe iconu değiştirildi.
- New_equipment, dragon_soul ve belt_system defineları "locale_inc.h" 'ye eklendi. (Oyunda aktif olması için gerekli.)
- Src Maxmi files için uyumlu hale getirildi. (/*True-False hatası fix.*/)

**************************************
-----------------0.2V-----------------
**************************************

- Src içinde warninge sebep olan 7 kod blogu düzenlendi.

**************************************
-----------------0.3V-----------------
**************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ClientSide_Info.h" dosyasından ulaşabilirsiniz.*/)

**************************************
-----------------0.4V-----------------
**************************************

- (Game & Client & Files) taraflı CheckClientVersion sistemi aktif edildi, yeni bir key atandı. (/* Bu sistem sayesinde oyuncular başka bir exe ile oyuna giriş yaparsa bir kaç saniye içinde hata alıp oyundan atılacak.*/)
- HD şekilde düzenlenmiş yeni bir metin2.ico koyuldu.

**************************************
-----------------0.5V-----------------
**************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ClientSide_Info.h" dosyasından ulaşabilirsiniz.*/)

**************************************
-----------------0.6V-----------------
**************************************

- Granny 2.11.8 'e yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- Boost 1.72 'ye yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- libjpeg-9a 'ya yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- Cryptopp 8.2 'e yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- Lzo 2.10 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- DevIL 1.8.0 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.

- EterPack içerisinden pack keyleri değiştirildi.
- Header 254 hatası fixlendi. (/*DevFix 1017*/)
- Sequence sistemi kaldırıldı. (/* Syserr kapatmaktan bahsetmiyorum tüm kodlarıyla beraber sistem TAMAMEN kaldırıldı. */)

**************************************
-----------------0.7V-----------------
**************************************

- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ClientSide_Info.h" dosyasından ulaşabilirsiniz.*/)

**************************************
-----------------0.8V-----------------
**************************************

- Cryptopp 8.5 'e yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- Boost 1.77 'ye yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.

- Paket sistemi komple elden geçirildi, kullanılmayan paketler temizlendi, paketler kategorize edildi ve bazı olası unknown packet headers hatalarının önüne geçildi.
- Client içerisindeki tüm dosyaların dili Korea olarak ayarlanıp ardından formatları UTF-8'e dönüştürüldü, notları ve local textleri görmek için kolaylık sağlandı.
- "Tools" klasörü eklendi, içinde gerekli olan tüm programlar mevcut, zamanla onlar da geliştirilecek.
- "Extern" klasörü düzenlendi, header dosyaları kategorize edildi.
- "Locale_inc.h" dosyası iptal edildi, yeni service dosyası "ServiceDefs.h" aktif edildi.
- AStyle ile gözden kaçabilecek son pürüzler de düzeltildi, kodlamalar artık daha temiz ve düzenli.
- İsimlerinde gereksiz eklentiler olan bazı fonksiyon adları (/*NEW, __, vs.*/) sadeleştirildi.
- Tüm client src düzenlendi, kodlamalar optimize edilip oyuna uygun hale getirildi ve kullanılmayan tüm paketler, loglar, kodlar, dosyalar temizlendi.
- Kullanılmayan bazı sistemler/kodlar src içerisinden kaldırıldı. (/*Tüm kaldırılanların detaylı listesine, "ClientSide_Info.h" dosyasından ulaşabilirsiniz.*/)
- Korece yazılan tüm hata metinleri İngilizce diline çevirildi.
- DevFix 1001 uygulandı.
- DevFix 1002 uygulandı.
- DevFix 1003 uygulandı.
- DevFix 1004 uygulandı.
- DevFix 1005 uygulandı.
- DevFix 1006 uygulandı.
- DevFix 1007 uygulandı.
- DevFix 1008 uygulandı.
- DevFix 1009 uygulandı.
- DevFix 1010 uygulandı.
- DevFix 1011 uygulandı.
- DevFix 1012 uygulandı.
- DevFix 1013 uygulandı.
- DevFix 1014 uygulandı.
- DevFix 1015 uygulandı.
- DevFix 1016 uygulandı.
- DevFix 1017 uygulandı.
- DevFix 1018 uygulandı.
- DevFix 1019 uygulandı.
- DevFix 1020 uygulandı.
- HEADER_GC_ITEM_SET2 paketi kaldırıldı, artık tek bir item set paketi (/*HEADER_GC_ITEM_SET*/) mevcut, olası paket hatalarını ve karışıklığı önlemek adına gerekliydi.

**************************************
-----------------0.9V-----------------
**************************************

- DevFix 1021 uygulandı.
- "ServiceDefs.h" dosyası düzenlendi, tüm define'lar buraya taşındı.

**************************************
-----------------1.0V-----------------
**************************************

- Tüm proje Visual Studio 2022'ye geçirildi, kütüphaneler (/*Boost kaldırılıp yerine std kullanıldı*/) ve oyunun client kaynak kodları VS 2022 kullanılarak yeniden derlendi.
- Görüntü kirliliğini önlemek ve düzeni korumak için tüm proje dosyaları "vs22_files" isimli harici bir klasöre taşındı.
- VS 2022 uyumluluğu için kodlarda yapılması gereken tüm modernleştirme işlemleri (/* 156 Adet */) tek tek yapıldı. (/* Hepsinin yanında // VS22 Update şeklinde bilgi var. */)

- Boost kaldırıldı.
- LibJPEG 9e 'ye yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- CryptoPP 8.9 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı.
- DevIL 1.6.5 'e düşürüldü. (Sıradaki sürümde 1.8.0'e güncellenecek.)

- DevFix 1022 uygulandı.
- DevFix 1023 uygulandı.
- DevFix 1024 uygulandı.
- DevFix 1025 uygulandı.
- DevFix 1026 uygulandı.
- DevFix 1027 uygulandı.

**************************************
-----------------2.0V-----------------
**************************************

- VS 2022 ile birlikte gelen tüm warningler çözüldü. Tüm projelerde warningler en üst seviyede (/*-Wall değil bir seviye altı olan -W4 seviyesini kullanıyorum, sebebi ise -Wall ile müdahale edemediğimiz internal header dosyalarından aldığımız warninglerin önüne geçmek..*/) aktif edildi. (25 adet düzeltme yapıldı hepsinin yanında // VS22 Warning Fix (Sayısı) şeklinde bilgi var.) - NOT: Hala devam ediyorum, tahminen 200'den fazla düzenleme gerekecek.. -_-
- DevIL 1.8.0 'a yükseltildi (Son Sürüm), gerekli düzenlemeler yapıldı. (Hepsinin yanında // DevIL 1.8.0 Update şeklinde not var.)

- CppDepend kullanılarak tüm kodlar incelendi, düzenleme gereken yerlere comment satırları eklendi. (/*Hepsinin yanında "- CppDepend" şeklinde bilgi var, ileri versiyonlarda ilgileneceğim.*/)
- Ymir tarafından yapılan versiyonu her ne kadar eksik ve final sürümü için kullanışsız olsa da, debug aşamasında bazı durumlarda yardımı dokunduğu için "ENABLE_SEQUENCE_SYSTEM" revize edilerek tekrar eklendi, define yorum satırı haline getirildiği takdirde yine deaktif olacaktır.
- "_PACKETDUMP" sistemi daha ayrıntılı şekilde bilgi vermesi için revize edildi, yeni define "_IMPROVED_PACKETDUMP_" aktif edildi.
- "ENABLE_PRINT_RECV_PACKETS" sistemi eklendi, debug modunda paket hatalarını analiz etmek için kullanışlı olacaktır.
- "EXT_PACKET_ERROR_DUMP" sistemi eklendi, aynı şekilde debug modunda paket hatalarını analiz etmek için kullanışlı olacaktır.

- "Network Packet" sistemi baştan sona düzenlendi, paket hatalarını minimuma indirmek için çeşitli düzenlemeler yapıldı, tüm ölü kodlar temizlendi.
- "Enums.h" ve "Packets.h" isimli iki yeni header oluşturuldu, tüm paket kodları ve enumlar (/*tüm demek yanlış olabilir, aslında sadece gerekli gördüklerim*/) bu iki dosyaya taşındı,-
- Hataları tespit etmek veya düzenleme yapmak artık daha kolay olacaktır çünkü gereken tüm kodlar tek bir dosyada.


Clientside Fix Info:
/*#################################################################################################################*/
/*##########################################      MT2Dev - Fixler      ############################################*/
/*#################################################################################################################*/

/*FIX ISMI                                           DUZELTILEN SORUNUN ACIKLAMASI                                      ISLEM YAPILAN DOSYA*/
- DevFix 1001 = Olasi bir unknown packet hatasini onlemek icin gerekli duzenleme yapildi.                                (PythonNetworkStreamPhaseGame.cpp)
- DevFix 1002 = Artik DEBUG modu aktifken, "_IMPROVED_PACKETDUMP_" sayesinde network paket trafigi gozlemlenebilecek.    (NetStream.cpp)
- DevFix 1003 = Gerekli bir TraceError eklendi, icerisinde gereken bilgi mevcut.                                        (GrpImage.cpp&GrpImageTexture.cpp)
- DevFix 1004 = IME icerisinde nullptr kontrolu konulmamis yerlere gerekli kontroller eklendi.                            (IME.cpp)
- DevFix 1005 = Yazdirilmamasi gereken karakterlerin (CTRL + <key>) kullanilmamasi icin kontrol eklendi.                (IME.cpp)
- DevFix 1006 = SkyBox icerisinde yanlis konumlandirilan ve gozukmeyen bir bolum duzeltildi.                            (SkyBox.cpp)
- DevFix 1007 = Ymir'in deaktif ettigi if blogu duzenlenerek tekrar aktif edildi, cunku kullanisli.                        (ActorInstanceRender.cpp)
- DevFix 1008 = Iconu pack icerisinde mevcut olmayan itemler icin genel bir icon atandi.                                (ItemData.cpp)
- DevFix 1009 = Client tarafinda eksik olan bazi flaglar ItemData icerisine eklendi.                                    (ItemData.h)
- DevFix 1010 = AddTexture fonksiyonuna erase icin ufak bir ekleme yapildi.                                                (TextureSet.cpp)
- DevFix 1011 = Artik DEBUG modu aktifken, __PERFORMANCE_CHECK__ ile paket loglari gozlemlenebilecek.                    (PythonNetworkStreamPhaseGame.cpp)
- DevFix 1012 = Eski usul ""; yerine ".clear" kullanimina gecis yapildi.                                                (AccountConnector.cpp&PythonNetworkStream.cpp)
- DevFix 1013 = Wear_Max hesaplamasinda, "c_Wear_Max" iptal edilip, yerine "WEAR_MAX_NUM" kullanildi.                    (GameType.h)
- DevFix 1014 = Gereksiz sekilde ekstra tanimlama kullanilan yerler "Cxxxx::" kullanilarak baglandi.                    (GameType.h&PythonMiniMap.cpp&InstanceBase.cpp)
- DevFix 1015 = InstanceBase.cpp icerisine kostumler icin yeni bir case eklendi, ileride lazim olacak.                    (InstanceBase.cpp)
- DevFix 1016 = Eksik bir "TraceError" satiri, gerekenler eklenerek yeniden duzenlendi.                                    (PythonCharacterManager.cpp)
- DevFix 1017 = Header254 Log problemi cozuldu.                                                                            (PythonNetworkStreamPhaseGame.cpp&PythonNetworkStreamModule.cpp)
- DevFix 1018 = Player.GetItemLink 6-7. bonusu kapsamiyordu, olasi bug'un onune gecmek icin duzenlendi.                    (PythonPlayerModule.cpp)
- DevFix 1019 = Oyuncunun bilgisayarinda "D:\\ymir work" konumu mevcutsa artik oyun acilmayacak.                        (UserInterface.cpp)
- DevFix 1020 = "D:\\ymir work" konumunun ("DVD-Rom") oyunda sebep oldugu lag ve FPS dususu sorunlari duzeltildi.        (UserInterface.cpp&EterPackManager.cpp)
- DevFix 1021 = Oyuncularin 800x600 'den daha dusuk cozunurlukte oyunu acamamasi icin kontrol eklendi.                    (PythonSystem.cpp)
- DevFix 1022 = Paket hatalarini daha net tespit etmek icin bir kac duzenleme daha yapildi.                                (PythonNetworkStream.cpp)
- DevFix 1023 = "Group::Create" fonksiyonu bastan sona duzenlendi.                                                        (parser.cpp&h)
- DevFix 1024 = Oyunda cekilen screenshotlarin kalitesi arttirildi.                                                        (PythonGraphic.cpp)
- DevFix 1025 = Network icerisine "GetLoginId" isimli yeni bir fonksiyon eklendi, ileride kullanisli olabilir.            (PythonNetworkStream.cpp&h&PythonNetworkStreamModule.cpp)
- DevFix 1026 = Pack tarafinda ".png" uzantili dosyalarin kullanimi icin duzenleme yapildi.                                (Resource.cpp)
- DevFix 1027 = TextureSet icerisinde negatif deger kontrolu yapmayan bir kod duzeltildi ve gerekli kontrol eklendi.    (TextureSet.cpp)

/*#################################################################################################################*/
/*#######################      MT2Dev - Kaldirilan Sistemler, Silinen Fonksiyonlar vs.      #######################*/
/*#################################################################################################################*/

** - Listede ekli olmayan (/*veya eklemeyi unuttugum*/), Ymir'in test amacli ekledigi veya ekleyip hicbir yerde kullanmadigi tum kodlar temizlendi.
1  - XTrap
2  - HackShield
3  - NProtect Game Guard
4  - CheckLatestFiles
5  - Auction
6  - PC_Bang
7  - AutoBan
8  - IsDev
9  - IsLive
10 - IsTest
11 - MovieMan
12 - ProcessCRC
13 - ProcessScanner
//14 - Sequence - 2.0V Surumunde sadece debugging kullanimi icin tekrar aktif edildi.
15 - SMS
16 - Mobile
17 - Matrix Card (/*Runup,China vs. her turlusu*/)
18 - OpenID  (/*Login4*/)
19 - Passpod (/*Login5*/)
20 - GAIDEN
21 - SE_LEVELUP_ON_14_FOR_GERMANY
22 - SE_LEVELUP_UNDER_15_FOR_GERMANY
23 - CACHE_DEFORMED_VERTEX
24 - Dimm
25 - Msctf
26 - OLD_rtrim
27 - DYNAMIC_POOL_STRICT
28 - EterPackPolicy_CSHybridCrypt
29 - Panama
30 - DecryptIV
31 - __MAKE_PACK__
32 - USE_VIETNAM_CONVERT_WEAPON_VNUM
33 - __MOVIE_MODE__
34 - ITEM_SMALL_DESCR_MAX_LEN
35 - MonsterAreaInfo
36 - PythonExceptionSender
37 - USE_SPEEDGRASS
38 - SPEEDTREE_DATA_FORMAT_DIRECTX
39 - __PERFORMANCE_CHECKER__
40 - Kullanilmayan locale dosyalari ve kodlari
41 - PythonNetworkDatagram
42 - PythonApplicationLogo
43 - Version
44 - _20050304Myevan
45 - m_isWaitKey
46 - __20040725_CAMERA_WORK__
47 - c_Wear_Max
48 - __IS_TEST_SERVER_MODE__
49 - __VTUNE__
50 - __ComboProcess
51 - IS_CHEONMA
52 - __UNITTEST__
53 - PERF_CHECKER_RENDER_GAME
54 - Safebox Money
55 - HEADER_GC_MOUNT
56 - ATTACK_TIME_LOG
57 - HEADER_GC_ITEM_SET2 (/*Iki adet olan set paketleri birlestirilerek teke dusuruldu, game tarafinda oldugu gibi..*/)
58 - __ATTACK_SPEED_CHECK__
59 - SaveWindowStatus
60 - LoadInterfaceStatus
61 - SaveInterfaceStatus
62 - isInterfaceConfig
63 - ApplicationStringTable
64 - USE_RELATIVE_PATH
65 - stRegisterCmdLine
66 - Metin2GameMutex
67 - __PrintTimeStamp
68 - NEEDED_COMMAND_ARGUMENT
69 - NEEDED_COMMAND_CLIPBOARD
70 - APSTUDIO_INVOKED
71 - StringCodec_Vietnamese (/*ve diger locale Vietnam ayarlari*/)
72 - WORLD_EDITOR
73 - _TEST
74 - SPHERELIB_STRICT
75 - COUNT_SHOWING_SPHERE
76 - __HEIGHT_CACHE_TRACE__
77 - __WINDOW_LEAK_CHECK__
78 - DEMO
79 - CHECKSUM_CHECK_MD5
80 - __STATIC_RANGE__
81 - CHECK_LOD
82 - USE_CRAMERS_RULE
83 - CHECK_ANSWERS
84 - _USE_CPP_RTL_FLIP


Settings.h from Clientside:
#pragma once

// SECURITY_SETTINGS
#define CLIENT_VERSION_KEY                2407972020       // Client Version Key, it's must be same on the serverside!
#define LSS_SECURITY_KEY                4321dcba5678efgz // Ymir Security Key (Only used if _OLD_PACKET_ENCRYPTION_ is enabled)
// END_OF_SECURITY_SETTINGS


ServiceDefs.h from Clientside:
/********************************************************/
/* FILE:    ServiceDefs.h                               */
/* INFO:    All defines linked to a single header file. */
/* AUTHOR:  MT2Dev                                      */
/* DATE:    11/09/2023                                  */
/********************************************************/
#pragma once

//********************************************************************* DEBUGGING_FEATURES **********************************************************************//
#ifdef _DEBUG   // DevFix 1002 & DevFix 1011
//#define ENABLE_SEQUENCE_SYSTEM  // Ymir Sequence System (Useful for debugging)
#define ENABLE_PRINT_RECV_PACKETS // Print Recv Packets   (Useful for to determine unknown packet errors)
#define _IMPROVED_PACKETDUMP_     // Improved Packet Logs (Useful for to determine unknown packet errors)
#define EXT_PACKET_ERROR_DUMP     // Extended Packet Logs (Useful for to determine unknown packet errors)
#define __PERFORMANCE_CHECK__     // Packet Performance Logs
//#define __RENDER_SLOT_AREA__    // Displaying All Slot Renderings
#endif //_DEBUG
//***************************************************************** END_OF_DEBUGGING_FEATURES *******************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//****************************************************************** FIX_AND_SECURITY_FEATURES ******************************************************************//
/* IMPORTANT NOTE!!! - Both encryption systems CANNOT BE ACTIVATED at the same time!!! Btw if you disable both, packet encryption will be COMPLETELY turned off. */
#define _IMPROVED_PACKET_ENCRYPTION_ // Ymir Improved Packet Encryption System
//#define _OLD_PACKET_ENCRYPTION_      // Ymir Old Packet Encryption System (Old ones like xtea, pong, keys etc.)
//************************************************************** END_OF_FIX_AND_SECURITY_FEATURES ***************************************************************//


Packside Info:
/***************************************************************************************************************************
Proje Bilgisi   = MT2Dev - Yeni Nesil Altyapı (Başlangıç Tarihi = Mart 2020)
Pack Bilgisi    = Metin2 EN (2014) Temiz Pack
Ekstra Dosyalar = Maxmi 3.6 Mini Pack
Kodlama         = Python kodları, Guido van Rossum&Barry Warsaw ve Nick Coghlan kodlama stili olan "PEP 8" referans alınarak düzenlendi.
                  Ymir'in özensiz, okuması güç ve güvenlikten uzak kodlama stili değiştirildi.
                  (Detaylı Bilgi; https://peps.python.org/pep-0008/)
****************************************************************************************************************************/
//-------------------------------------------------------------------------------------------------------------------------//
/******************************************** SÜRÜMLER & ÇEŞİTLİ BİLGİLER **************************************************
Desteklenen Sistemler = Windows Vista, Windows 7, Windows 8, Windows 10. (Windows 11 test edilmedi, Windows XP ve altını desteklemez!)
Pack Encrypt Methodu  = MartySama's Pack Maker Lite 2.8 (Type0 & NO-MCSP)
Python                = 2.7
Granny                = 2.11.8
Pack İçeriği Hakkında = Bu proje her ne kadar altyapı olarak yeni nesile uygun olacak şekilde düzenlense de, hazırlanan oyun içeriğinde Simya, Kuşak, Aura vs. gibi yeni sistemler YOKTUR!
Pack Versiyonu        = v1.0
****************************************************************************************************************************/

**************************************
-----------------1.0V-----------------
**************************************

- Mob_proto ve item_proto ("DB-Pack-Files taraflı olarak") düzenlendi, gereksiz ve bozuk item ve moblar silindi, isim hataları tek tek düzeltildi.
- Tüm loading resimleri ve login ekranı 1920x1080 formatına çevrildi, "HD" yeni arkaplanlar koyuldu.
- Granny sürümünü 2.11.8'e yükseltilmişti, bütün packler açılıp tek tek bütün .gr2 dosyaları 2.11.8'e dönüştürüldü.
- Eski Tip loading ekranı, köy zemini, yazı tipi gibi detaylar oyuna entegre edildi.
- GetMotionDuration - Invalid Motion Key hatası çözüldü.
- Karakter gauge bugu düzeltildi. // (Max statü 95 olarak ayarlandı, yükleme ekranında 95 son rakamdır ona ulaşınca bar fullenir, ayrıca karaktere 98 levele kadar statü puanı gelir.)
- Locale içerisindeki tüm dds ve tga dosyaları incelendi, gerekenlerde (/*neredeyse tüm .dds dosyaları*/) ufak görsel düzeltmeler yapıldı, "windows.dds" baştan sona düzenlendi ve "select.jpg" değiştirildi.
- Console modülü tamamen kaldırıldı, kullanılmayacağı için aktif halde pack içerisinde bulunması gereksiz olacaktı.
- Client&Server SRC tarafında kaldırılan tüm sistemler aynı şekilde pack içerisinden de kaldırıldı.
- Simya, Enerji, Expanded gibi yeni sistemler "Pack" içerisinden kaldırıldı.
- "Pack" içerisindeki kullanılmayan tanımlamalar, ülkelere özel ayarlar vs. gibi eklentiler kaldırıldı.
- Tüm "Pack" düzenlendi, kodlamalar optimize edildi ve "PEP 8" kurallarına göre düzenlendi.
- Tüm "Pack" içerisinde, Korece yazılmış text'ler ve yorum satırları İngilizce diline çevrildi.
- Debug modu aktiften sağ üstte gösterilen bilgilerden gereksiz olanları kaldırıldı.
- "Virtual Keyboard" eklentisi kaldırıldı.
- "BGM", "mark", "miles" klasörleri "lib" içerisine alındı, maksat temiz bir görünüm oluşturmak.


Ekstra Notlar;

Oyun kaynağından çok fazla şey kaldırırsanız, olası paket hataları ve optimizasyon sorunlarıyla karşılaşabileceğinizi unutmayın.. -_-
Modernleştirme topuna girerseniz sadece compiler sürümünü değil oyunun kodlarını da optimize etmeniz gerektiğini unutmayın.
Eklediğiniz veya kaldırdığınız sistemlerin local test sunucunuzda veya 3-5 oyuncuyla sıkıntı yaratmayıp, yüzlerce oyunculu bir live sunucuda başınıza bela açabileceğini unutmayın.
Her zaman garantici olmak, her noktaya kontrol eklemek iyidir fakat her kontrol için bir log tutturmayı unutmayın, böylece eklediğiniz kontrol bir sıkıntıya sebebiyet verirse nereden kaynaklandığını bulabilirsiniz.
Ymir'in homemade ilkel network paket alışverişi sisteminin her an problem yaratabileceğini ve düzenleme yaparken sürekli yedek almak gerektiğini unutmayın.
Fazla mükemmeliyetçi olmanın bazen faydadan çok zarar verebileceğini aklınızdan çıkartmayın ve o meşhur yazılımcı atasözünü unutmayın; çalışıyorsa elleme.
 
Son düzenleme:
Keyifle okuduğum seri ben de senin gibi özenerek detaylı bi log tutmaya çalışıyorum ve şu dediğine katılıyorum temiz olcağını düşünüp her şeyi kaldırmak doğru değil dikkat edin kafanız yanmasın arkadaşlar.
 
oyyhhh konunun güzelliğine bak ağzım açık okudum elinize sağlık dikkatle takip ediyorum. Kolaylıklar dilerim. Bu arada oyunu baştan yazmışsınız gibi ne kadar çok değişiklik yapmışsınız kendi açtığım changelogtan utandım 😅😅 çok hoşuma gitti.
 
oyyhhh konunun güzelliğine bak ağzım açık okudum elinize sağlık dikkatle takip ediyorum. Kolaylıklar dilerim. Bu arada oyunu baştan yazmışsınız gibi ne kadar çok değişiklik yapmışsınız kendi açtığım changelogtan utandım 😅😅 çok hoşuma gitti.
Teşekkürler güzel yorumun için, oyunun paket sistemi şu sıralar acayip derecede canımı sıkmakta o yüzden parti parti sağda solda tanımlı dinamik statik, struct, enum vs. ne varsa client-server birebir olacak şekilde düzenlemeye karar verdim, başka türlü kurtulamayacağım çünkü. :LOL: Aslında Aeldra örneğinden sonra protobuf kullanmak çok daha cazip bir yöntem ama onu entegre etmesi çok uzun süreceği için şimdilik rafa kaldırdım.

Bu yoruma özel ekstra bir not daha, Ymir'in geliştirici ekibi gerçekten ne yaptığını tam olarak bilmiyormuş. Korece yazılmış tüm comment satırlarını çevirip baktım neredeyse, birbirlerinin yaptıkları işlerden bile haberleri yok. Projenin en başında muhtemelen yaratıcı ekipten olan bir iki isim hariç (myevan ve levites favorim :D) sonrasında çalışan farklı geliştiriciler sanki temeli çürük bir binaya sürekli kaçak kat çıkmış gibi, official sunucuların optimizasyon sorunlarından kurtulamamasına şaşırmamak gerek..
 
Teşekkürler güzel yorumun için, oyunun paket sistemi şu sıralar acayip derecede canımı sıkmakta o yüzden parti parti sağda solda tanımlı dinamik statik, struct, enum vs. ne varsa client-server birebir olacak şekilde düzenlemeye karar verdim, başka türlü kurtulamayacağım çünkü. :LOL: Aslında Aeldra örneğinden sonra protobuf kullanmak çok daha cazip bir yöntem ama onu entegre etmesi çok uzun süreceği için şimdilik rafa kaldırdım.

Bu yoruma özel ekstra bir not daha, Ymir'in geliştirici ekibi gerçekten ne yaptığını tam olarak bilmiyormuş. Korece yazılmış tüm comment satırlarını çevirip baktım neredeyse, birbirlerinin yaptıkları işlerden bile haberleri yok. Projenin en başında muhtemelen yaratıcı ekipten olan bir iki isim hariç (myevan ve levites favorim :D) sonrasında çalışan farklı geliştiriciler sanki temeli çürük bir binaya sürekli kaçak kat çıkmış gibi, official sunucuların optimizasyon sorunlarından kurtulamamasına şaşırmamak gerek..
Bence iskeletini oluşturup bıraktılar kalanını stajyerlere yaptırdılar 😂😂
 
Paket sistemiyle aramızda ufak bir arbede yaşandı ama çalışmalar devam ediyor, güncelleme gelmesi biraz uzun sürecek gibi çünkü paketleri düzenlerken çok fazla şeyin yerini değiştirmem gerekti, bu süre zarfında konuyu takip edenlere ufak bir paylaşım yapayım, aktiflik düşmesin. :D

Bu RaR dosyasının içinde sızdırılan dosyaların içinde bulunan, Ymir&WebZen ve GF tarafından oluşturulmuş çeşitli kılavuzların (kurulum yönergeleri, patch notları vs.) Korece dilinden İngilizceye çevrilip düzenlenmiş versiyonları mevcut, merak edenler için bir içerik olsun. :coffee:
 

Dosya Eklentileri

  • Documents.rar
    29,7 KB · Gösterim: 18
Patch notlarını çevirirken billing ile ilgili kısmı da görünce uzun zamandır düşündüğüm bir soru aklıma geldi, "billing" sistemini komple kaldırıp yerine auth için ekstra bir şey koymamak yüksek online sayılarında, yığılma olduğunda veya şuan simüle edemediğim farklı bir senaryoda herhangi bir sıkıntı yaratır mı şuan pek kestiremiyorum. Aeldra dosyaları piyasaya yayıldığı zaman dikkatimi çeken ilk şey, billing sistemini #define ile tanımlayıp muhtemelen kapatıp açarak çeşitli testler yaptıklarını görmek oldu, lakin finalde onlar da kapatmayı tercih etmiş. Her zaman öğrenecek bir şeyler vardır, bu konuda tecrübesi olanlardan gelecek fikirlere de açığım.
 
Paket sistemiyle aramızda ufak bir arbede yaşandı ama çalışmalar devam ediyor, güncelleme gelmesi biraz uzun sürecek gibi çünkü paketleri düzenlerken çok fazla şeyin yerini değiştirmem gerekti, bu süre zarfında konuyu takip edenlere ufak bir paylaşım yapayım, aktiflik düşmesin. :D

Bu RaR dosyasının içinde sızdırılan dosyaların içinde bulunan, Ymir&WebZen ve GF tarafından oluşturulmuş çeşitli kılavuzların (kurulum yönergeleri, patch notları vs.) Korece dilinden İngilizceye çevrilip düzenlenmiş versiyonları mevcut, merak edenler için bir içerik olsun. :coffee:
öfkeli kalabalık olarak acil güncelleme bekliyoruz korece yazı çevirileri bizi kesmezz :D
 
Paket kodlarını düzenleme niyetiyle başladığım iş büyük ruhsal problemlere doğru ilerliyor, tüm .cpp dosyalarını tek tek açıp baştan sona kontrol ediyorum manuel olarak, 300 civarı dosyayı kontrol edip üzerinde değişiklik yapmak biraz vakit alıyor haliyle. :LOL: Manuel kontrolden kastım, bildiğiniz dümdüz baştan sona okuyorum, değişiklik gereken bir yer görürsem düzenleyip devam ediyorum, incelerken pek çok ufak detaya rastladım ve bunlardan ilginç olabileceklerini isteğe göre açıp kapatmak için define olarak tanımladım, henüz tam bir güncelleme vermekten uzağım ama ufak bir gelişim kaydı verebilirim sanıyorum;

C++:
**************************************
-----------------0.70V----------------
**************************************
/*############################################ !!! ÖNEMLİ NOT - DİKKAT !!! ##############################################
## Tüm dosyalarda, önemli kısımlara yazdığım yüzlerce not var; [MT2Dev Note] şeklinde aratarak hepsine ulaşabilirsiniz.##
###### Ayrıca Ymir developerlarının yazdığı önemli notların, Korece'den İngilizce'ye çevrilmiş versiyonlarına da; #######
### " Ymir Dev Note " şeklinde aratarak ulaşabilirsiniz, detaylı olanlarda yazan kişi ve tarih bilgisi de mevcuttur. ####
############################################## *************************** #############################################*/

- DevFix 113 uygulandı.
- DevFix 114 uygulandı.
- DevFix 115 uygulandı.
- DevFix 116 uygulandı.
- DevFix 117 uygulandı.
- DevFix 118 uygulandı.
- DevFix 119 uygulandı.
- DevFix 120 uygulandı.
- DevFix 121 uygulandı.
- DevFix 122 uygulandı.
- DevFix 123 uygulandı.

- Modern C++ dan tam anlamıyla yararlanmak için gerekli düzenlemeler yapıldı. (/*Örnek; Auto Transform, Nullptr Transform, New Smart Pointers vs.*/)
- "itertype", "typeof" gibi modern C++ standartlarında yeri olmayan tanımlar değiştirildi.
- Ymir tarafından artık kullanılmayan eski paket şifreleme yöntemi "_OLD_PACKET_ENCRYPTION_" isimli bir define içerisine alındı, aktif paket şifreleme sistemimiz olan "_IMPROVED_PACKET_ENCRYPTION_" de düzenlendi.-
- Artık her iki define deaktif edilirse paket şifreleme komple kapatılır ve paketler şifresiz olarak sorunsuz şekilde iletilir, ayrıca iki şifreleme yöntemi de aktif edilmeye hazır halde, sorunsuz çalışıyorlar.- (/*KESİNLİKLE AYNI ANDA İKİ DEFİNE AKTİF EDİLMEMELİ, AYNI ANDA SADECE 1 TANESİ AKTİF EDİLEBİLİR!!!!!!*/)
- Default olarak "_IMPROVED_PACKET_ENCRYPTION_" her zaman AKTİF olmalıdır! Paket şifrelemeyi komple deaktif etmek sadece belirli debug aşamalarında gerekli olabilir, sadece bu amaçla kullanılmalıdır.

- "Network Packet" sistemi baştan sona düzenlendi, paket hatalarını minimuma indirmek için çeşitli düzenlemeler yapıldı, tüm ölü kodlar temizlendi.
- "Enums.h" ve "Packets.h" isimli iki yeni header oluşturuldu, tüm paket kodları ve enumlar (/*tüm demek yanlış olabilir, aslında sadece gerekli gördüklerim*/) bu iki dosyaya taşındı,-
- Hataları tespit etmek veya düzenleme yapmak artık daha kolay olacaktır çünkü gereken tüm kodlar tek bir dosyada.
- Yukarıda bahsettiğim işlem esnasında artık kullanımına gerek kalmayan (/*yani içeriği tamamen yukarıda bahsettiğim yeni dosyalara taşınan*/); -
- "common/length.h", "common/item_length.h", "common/tables.h", "db/QID.h", "game/packet.h", "game/unique_item.h" isimli dosyalar srcden kaldırıldı.

- Kendimi ve daha önce yaptığım bir düzenlemeyi güncelleme ihtiyacı duydum, daha önceki sürümlerde modern tekniklere daha uygun olduğunu düşündüğüm için,
- "#pragma once" kullanımına geçiş yapmıştım fakat 2024 yılında dahi "#pragma once" hala standart olarak kabul görmüyor ve farklı alt klasörlerdeki aynı isimli header dosyaları,
- Bu uygulamadan düşük bir ihtimalle de olsa etkilenebilir, dolayısıyla eski ama daha güvenli (/*Eşsiz header isimleri düzgün şekilde ayarlandığında*/) olan header guardları kullanmaya devam etmeye karar verdim, böylesi bana daha güvende hissettiriyor. (/*Guard isimlerini benzersiz olacaklarına emin olarak tekrar düzenledim.*/)
- SRC içerisinde "unordered_map" ve "unordered_set" kullanılan tüm yerlerde std:: kullanımına geçilip boost iptal edildi.

- Peer P2P için genişletilmiş bir log sistemi eklendi. (Kod bloğunda "// EXTENDED_PEER_P2P_LOGS" şeklinde bilgi var.)
- Oyuncuların sadece 1. ve 2. köylerde pazar kurabilmesi için bir düzenleme yapıldı. (Kod bloğunda "// PRIVATE_SHOPS_ONLY_OPENABLE_IN_TOWN" şeklinde bilgi var.)
- Oyuncuların yere attığı itemlerin logunun tutulması için düzenleme yapıldı. (Kod bloğunda "// DROP_ITEM_LOG" şeklinde bilgi var.)
- GMlerin istediği oyuncuyu zehirleyebilmesi için yeni bir GM kodu eklendi. (Kod bloğunda "// POISON_COMMAND" şeklinde bilgi var.)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_POTIONS" eklendi. (/*Aktif edilirse potlar, sular gibi envai çeşit iksir sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_CAPE_OF_COURAGE" eklendi. (/*Aktif edilirse Cesaret Pelerinleri sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_METIN_STONE_DETECTOR" eklendi. (/*Aktif edilirse Metin Taşı Dedektörü sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "BOOSTED_EXP_DROP" eklendi. (/*Aktif edilirse test server modu aktifken EXP kazanımı 8 ile çarpılır, hızlandırılmış oyun içi testler için işe yarayabilir*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_BOW_DISTANCE" eklendi. (/*Aktif edilirse yay ile vuruş yapan Ninja karakterlerin hasar hesaplaması yapılırken karakterin vuruş esnasındaki mesafesi dikkate alınmaz*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_STAMINA_WALK" eklendi. (/*Aktif edilirse karakterlerin staminası bittiği zaman yürümeye başlamazlar*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_DEATH_PENALTY" eklendi. (/*Aktif edilirse karakterler öldükten sonra burada başla seçeneğini seçerse EXP kaybetmezler*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_PREVENT_DEATH_FROM_POISON" eklendi. (/*Aktif edilirse karakterler zehir hasarıyla ölebilir, normalde karakterin canı 1 olduğunda hasar vurmayı durduruyor*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_HORSE_HEALTH_AND_STAMINA" eklendi. (/*Aktif edilirse atın can azalması, stamina azalması, ölmesi gibi faktörler devre dışı kalır, at beslenmese bile ölmez*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_LOVER_NEED_SP_TO_WARP" eklendi. (/*Aktif edilirse nikah yüzüğü ile birbirine ışınlanmak isteyen evli karakterlerden ışınlanma için SP alınmaz*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_MONSTERS_POISONED_ONLY_ONCE" eklendi. (/*Aktif edilirse zehir yiyen bir mob, zehrin etkisi geçtikten (normalde moblar sadece 1 defa zehirlenirler, o süre zarfında ölmezse bir daha zehir yemez) sonra oyuncular tarafından tekrar zehirlenebilir*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_NEED_EXP_FOR_SKILL_READING" eklendi. (/*Aktif edilirse beceri geliştirme esnasında oyuncudan eksilen 20.000 EXP devre dışı kalır, EXP harcamadan işlem devam eder*/)
- "Documents" isimli yeni bir dosya eklendi, içerisinde Ymir'in orijinal developer ekibinin yazdığı patch loglarının İngilizceye çevrilip, düzenlenmiş halleri mevcut.
- Hali hazırda aktif olan veya comment satırı haline getirilmiş, işlevsel olabilecek tüm sys_log kayıtları test server modu için aktif edildi. (/*Normalde aktif olan logların bazıları da sadece test server modunda çalışacak şekilde düzenlendi.*/)


C++:
// Yeni fixler;

- DevFix 113 = Karakterler yaratilirken verilen random statlar sabit hale getirildi.                (constants.cpp)
- DevFix 114 = Eksik bir bolume gerekli "sys_log" blogu eklendi, bilgi onemli.                        (ClientManager.cpp)
- DevFix 115 = Ata veya binege belirli maplerde binilmemesi icin kontrol eklendi.                    (char_item.cpp&cmd_general.cpp)
- DevFix 116 = "CHARACTER::BuffOnAttr_ValueChange" fonksiyonu modern tarzda yenilendi.                (char_item.cpp)
- DevFix 117 = Eger oyuncu son seviyeye ulasirsa, beceri kitabi okumasi icin EXP gerekmeyecektir.    (char_skill.cpp)
- DevFix 118 = Game Masterlar artik aninda "Burada Basla" veya "Sehirde Basla" ile dirilebilirler.    (cmd_general.cpp)
- DevFix 119 = Sadece GMlerin kullanmasina izin verilen komutlara ekstra kontroller eklendi.        (cmd_general.cpp&cmd_gm.cpp)
- DevFix 120 = "Cube_make" icerisine gerekli bir -yang kontrolu eklendi.                            (cube.cpp)
- DevFix 121 = Bazi GM veya Player komutlarinda negatif(-) arg kullanimi engellendi.                (cmd_gm.cpp&cmd_general.cpp)
- DevFix 122 = Gereksiz buyuk veri tipi kullanan yerler, bellek tuketimini azaltmak icin duzenlendi.(Lot of files have this one)
- DevFix 123 = "/do_set" komutu komple yenilendi, eksik kontroller eklendi.                            (cmd_gm.cpp)
    

// ServiceDefs'in son hali;
    
/********************************************************/
/* FILE:    ServiceDefs.h                               */
/* INFO:    All defines linked to a single header file. */
/* AUTHOR:  MT2Dev                                      */
/* DATE:    11/09/2023                                  */
/********************************************************/
#ifndef __MT2DEV_SERVICEDEFS_H__
#define __MT2DEV_SERVICEDEFS_H__

//********************************************************************* DEBUGGING_FEATURES **********************************************************************//
//#define ENABLE_SEQUENCE_SYSTEM  // Ymir Sequence System (Useful for debugging)
#define USE_STACKTRACE            // Ymir Stacktrace System for Analyze Errors (Be sure to edit game/src/Makefile, USE_STACKTRACE = 1 or 0)
#define USE_QUERY_LOGS            // Logging Queries for Analyzing (If it is test server of course)
#define ENABLE_SYSLOG_PACKET_SENT // Syslogs for Packet Sent (If it is test server of course)
//***************************************************************** END_OF_DEBUGGING_FEATURES *******************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//****************************************************************** FIX_AND_SECURITY_FEATURES ******************************************************************//
/* IMPORTANT NOTE!!! - Both encryption systems CANNOT BE ACTIVATED at the same time!!! Btw if you disable both, packet encryption will be COMPLETELY turned off. */
//#define _IMPROVED_PACKET_ENCRYPTION_ // Ymir Improved Packet Encryption System
//#define _OLD_PACKET_ENCRYPTION_      // Ymir Old Packet Encryption System (Old ones like xtea, pong, keys etc.)
//#define ENABLE_EXTERNAL_IP_SUPPORT   // For Cloud (Oracle, Google, AWS, Azure) External IP Support (INFO; If you don't use external ip, NOT uncomment this!)
#define ENABLE_PORT_SECURITY           // P2P (API Tool) Extra Security
//************************************************************** END_OF_FIX_AND_SECURITY_FEATURES ***************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//********************************************************************** OPTIONAL_FEATURES **********************************************************************//
//#define UNLIMITED_POTIONS                   // Unlimited Potions (Ex; HP/SP Potions, Purple/Green Potions, Ability Potions, Blends etc.)
//#define UNLIMITED_CAPE_OF_COURAGE           // Unlimited Cape Of Courage (All Vnums)
//#define UNLIMITED_METIN_STONE_DETECTOR      // Unlimited Metin Stone Detector (All Vnums)
//#define BOOSTED_EXP_DROP                    // 8x EXP Drop Bonus (Sometimes Will Useful For Speed-up In Game Test Purposes) - (Works ONLY in test server mode!)
//#define DISABLE_BOW_DISTANCE                // Disable Bow Distance Factor in the Assasin Damage Calculation
//#define DISABLE_STAMINA_WALK                // Disable Walk Mode When Stamina is 0 (NOTE: Not only for PC's, also AI, Horse and Pets include this too!)
//#define DISABLE_DEATH_PENALTY               // Disable EXP Loss After Death (Restart Here)
//#define DISABLE_PREVENT_DEATH_FROM_POISON   // Disable Prevent Death From Poison (INFO: If this enabled, PC's can die due poison damage, HP not stay at 1.)
//#define DISABLE_HORSE_HEALTH_AND_STAMINA    // Disable Horse Health and Stamina Factors (So horse never be die, never be starving, never be out of stamina etc.)
//#define DISABLE_LOVER_NEED_SP_TO_WARP       // Disable Lovers Need SP For Warp (With Marriage Ring)
//#define DISABLE_MONSTERS_POISONED_ONLY_ONCE // Disable Monsters Poisoned Only Once (Normally players just have one chance to poison while kill the monster)
//#define DISABLE_NEED_EXP_FOR_SKILL_READING  // Disable Need EXP For Skill Reading (Normally players give 20.000 EXP for each reading)
//****************************************************************** END_OF_OPTIONAL_FEATURES *******************************************************************//
#endif //__MT2DEV_SERVICEDEFS_H__
Adsız.png

1Adsız.png
 
Paket kodlarını düzenleme niyetiyle başladığım iş büyük ruhsal problemlere doğru ilerliyor, tüm .cpp dosyalarını tek tek açıp baştan sona kontrol ediyorum manuel olarak, 300 civarı dosyayı kontrol edip üzerinde değişiklik yapmak biraz vakit alıyor haliyle. :LOL: Manuel kontrolden kastım, bildiğiniz dümdüz baştan sona okuyorum, değişiklik gereken bir yer görürsem düzenleyip devam ediyorum, incelerken pek çok ufak detaya rastladım ve bunlardan ilginç olabileceklerini isteğe göre açıp kapatmak için define olarak tanımladım, henüz tam bir güncelleme vermekten uzağım ama ufak bir gelişim kaydı verebilirim sanıyorum;

C++:
**************************************
-----------------0.70V----------------
**************************************
/*############################################ !!! ÖNEMLİ NOT - DİKKAT !!! ##############################################
## Tüm dosyalarda, önemli kısımlara yazdığım yüzlerce not var; [MT2Dev Note] şeklinde aratarak hepsine ulaşabilirsiniz.##
###### Ayrıca Ymir developerlarının yazdığı önemli notların, Korece'den İngilizce'ye çevrilmiş versiyonlarına da; #######
### " Ymir Dev Note " şeklinde aratarak ulaşabilirsiniz, detaylı olanlarda yazan kişi ve tarih bilgisi de mevcuttur. ####
############################################## *************************** #############################################*/

- DevFix 113 uygulandı.
- DevFix 114 uygulandı.
- DevFix 115 uygulandı.
- DevFix 116 uygulandı.
- DevFix 117 uygulandı.
- DevFix 118 uygulandı.
- DevFix 119 uygulandı.
- DevFix 120 uygulandı.
- DevFix 121 uygulandı.
- DevFix 122 uygulandı.
- DevFix 123 uygulandı.

- Modern C++ dan tam anlamıyla yararlanmak için gerekli düzenlemeler yapıldı. (/*Örnek; Auto Transform, Nullptr Transform, New Smart Pointers vs.*/)
- "itertype", "typeof" gibi modern C++ standartlarında yeri olmayan tanımlar değiştirildi.
- Ymir tarafından artık kullanılmayan eski paket şifreleme yöntemi "_OLD_PACKET_ENCRYPTION_" isimli bir define içerisine alındı, aktif paket şifreleme sistemimiz olan "_IMPROVED_PACKET_ENCRYPTION_" de düzenlendi.-
- Artık her iki define deaktif edilirse paket şifreleme komple kapatılır ve paketler şifresiz olarak sorunsuz şekilde iletilir, ayrıca iki şifreleme yöntemi de aktif edilmeye hazır halde, sorunsuz çalışıyorlar.- (/*KESİNLİKLE AYNI ANDA İKİ DEFİNE AKTİF EDİLMEMELİ, AYNI ANDA SADECE 1 TANESİ AKTİF EDİLEBİLİR!!!!!!*/)
- Default olarak "_IMPROVED_PACKET_ENCRYPTION_" her zaman AKTİF olmalıdır! Paket şifrelemeyi komple deaktif etmek sadece belirli debug aşamalarında gerekli olabilir, sadece bu amaçla kullanılmalıdır.

- "Network Packet" sistemi baştan sona düzenlendi, paket hatalarını minimuma indirmek için çeşitli düzenlemeler yapıldı, tüm ölü kodlar temizlendi.
- "Enums.h" ve "Packets.h" isimli iki yeni header oluşturuldu, tüm paket kodları ve enumlar (/*tüm demek yanlış olabilir, aslında sadece gerekli gördüklerim*/) bu iki dosyaya taşındı,-
- Hataları tespit etmek veya düzenleme yapmak artık daha kolay olacaktır çünkü gereken tüm kodlar tek bir dosyada.
- Yukarıda bahsettiğim işlem esnasında artık kullanımına gerek kalmayan (/*yani içeriği tamamen yukarıda bahsettiğim yeni dosyalara taşınan*/); -
- "common/length.h", "common/item_length.h", "common/tables.h", "db/QID.h", "game/packet.h", "game/unique_item.h" isimli dosyalar srcden kaldırıldı.

- Kendimi ve daha önce yaptığım bir düzenlemeyi güncelleme ihtiyacı duydum, daha önceki sürümlerde modern tekniklere daha uygun olduğunu düşündüğüm için,
- "#pragma once" kullanımına geçiş yapmıştım fakat 2024 yılında dahi "#pragma once" hala standart olarak kabul görmüyor ve farklı alt klasörlerdeki aynı isimli header dosyaları,
- Bu uygulamadan düşük bir ihtimalle de olsa etkilenebilir, dolayısıyla eski ama daha güvenli (/*Eşsiz header isimleri düzgün şekilde ayarlandığında*/) olan header guardları kullanmaya devam etmeye karar verdim, böylesi bana daha güvende hissettiriyor. (/*Guard isimlerini benzersiz olacaklarına emin olarak tekrar düzenledim.*/)
- SRC içerisinde "unordered_map" ve "unordered_set" kullanılan tüm yerlerde std:: kullanımına geçilip boost iptal edildi.

- Peer P2P için genişletilmiş bir log sistemi eklendi. (Kod bloğunda "// EXTENDED_PEER_P2P_LOGS" şeklinde bilgi var.)
- Oyuncuların sadece 1. ve 2. köylerde pazar kurabilmesi için bir düzenleme yapıldı. (Kod bloğunda "// PRIVATE_SHOPS_ONLY_OPENABLE_IN_TOWN" şeklinde bilgi var.)
- Oyuncuların yere attığı itemlerin logunun tutulması için düzenleme yapıldı. (Kod bloğunda "// DROP_ITEM_LOG" şeklinde bilgi var.)
- GMlerin istediği oyuncuyu zehirleyebilmesi için yeni bir GM kodu eklendi. (Kod bloğunda "// POISON_COMMAND" şeklinde bilgi var.)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_POTIONS" eklendi. (/*Aktif edilirse potlar, sular gibi envai çeşit iksir sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_CAPE_OF_COURAGE" eklendi. (/*Aktif edilirse Cesaret Pelerinleri sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_METIN_STONE_DETECTOR" eklendi. (/*Aktif edilirse Metin Taşı Dedektörü sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "BOOSTED_EXP_DROP" eklendi. (/*Aktif edilirse test server modu aktifken EXP kazanımı 8 ile çarpılır, hızlandırılmış oyun içi testler için işe yarayabilir*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_BOW_DISTANCE" eklendi. (/*Aktif edilirse yay ile vuruş yapan Ninja karakterlerin hasar hesaplaması yapılırken karakterin vuruş esnasındaki mesafesi dikkate alınmaz*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_STAMINA_WALK" eklendi. (/*Aktif edilirse karakterlerin staminası bittiği zaman yürümeye başlamazlar*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_DEATH_PENALTY" eklendi. (/*Aktif edilirse karakterler öldükten sonra burada başla seçeneğini seçerse EXP kaybetmezler*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_PREVENT_DEATH_FROM_POISON" eklendi. (/*Aktif edilirse karakterler zehir hasarıyla ölebilir, normalde karakterin canı 1 olduğunda hasar vurmayı durduruyor*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_HORSE_HEALTH_AND_STAMINA" eklendi. (/*Aktif edilirse atın can azalması, stamina azalması, ölmesi gibi faktörler devre dışı kalır, at beslenmese bile ölmez*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_LOVER_NEED_SP_TO_WARP" eklendi. (/*Aktif edilirse nikah yüzüğü ile birbirine ışınlanmak isteyen evli karakterlerden ışınlanma için SP alınmaz*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_MONSTERS_POISONED_ONLY_ONCE" eklendi. (/*Aktif edilirse zehir yiyen bir mob, zehrin etkisi geçtikten (normalde moblar sadece 1 defa zehirlenirler, o süre zarfında ölmezse bir daha zehir yemez) sonra oyuncular tarafından tekrar zehirlenebilir*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_NEED_EXP_FOR_SKILL_READING" eklendi. (/*Aktif edilirse beceri geliştirme esnasında oyuncudan eksilen 20.000 EXP devre dışı kalır, EXP harcamadan işlem devam eder*/)
- "Documents" isimli yeni bir dosya eklendi, içerisinde Ymir'in orijinal developer ekibinin yazdığı patch loglarının İngilizceye çevrilip, düzenlenmiş halleri mevcut.
- Hali hazırda aktif olan veya comment satırı haline getirilmiş, işlevsel olabilecek tüm sys_log kayıtları test server modu için aktif edildi. (/*Normalde aktif olan logların bazıları da sadece test server modunda çalışacak şekilde düzenlendi.*/)


C++:
// Yeni fixler;

- DevFix 113 = Karakterler yaratilirken verilen random statlar sabit hale getirildi.                (constants.cpp)
- DevFix 114 = Eksik bir bolume gerekli "sys_log" blogu eklendi, bilgi onemli.                        (ClientManager.cpp)
- DevFix 115 = Ata veya binege belirli maplerde binilmemesi icin kontrol eklendi.                    (char_item.cpp&cmd_general.cpp)
- DevFix 116 = "CHARACTER::BuffOnAttr_ValueChange" fonksiyonu modern tarzda yenilendi.                (char_item.cpp)
- DevFix 117 = Eger oyuncu son seviyeye ulasirsa, beceri kitabi okumasi icin EXP gerekmeyecektir.    (char_skill.cpp)
- DevFix 118 = Game Masterlar artik aninda "Burada Basla" veya "Sehirde Basla" ile dirilebilirler.    (cmd_general.cpp)
- DevFix 119 = Sadece GMlerin kullanmasina izin verilen komutlara ekstra kontroller eklendi.        (cmd_general.cpp&cmd_gm.cpp)
- DevFix 120 = "Cube_make" icerisine gerekli bir -yang kontrolu eklendi.                            (cube.cpp)
- DevFix 121 = Bazi GM veya Player komutlarinda negatif(-) arg kullanimi engellendi.                (cmd_gm.cpp&cmd_general.cpp)
- DevFix 122 = Gereksiz buyuk veri tipi kullanan yerler, bellek tuketimini azaltmak icin duzenlendi.(Lot of files have this one)
- DevFix 123 = "/do_set" komutu komple yenilendi, eksik kontroller eklendi.                            (cmd_gm.cpp)
    

// ServiceDefs'in son hali;
    
/********************************************************/
/* FILE:    ServiceDefs.h                               */
/* INFO:    All defines linked to a single header file. */
/* AUTHOR:  MT2Dev                                      */
/* DATE:    11/09/2023                                  */
/********************************************************/
#ifndef __MT2DEV_SERVICEDEFS_H__
#define __MT2DEV_SERVICEDEFS_H__

//********************************************************************* DEBUGGING_FEATURES **********************************************************************//
//#define ENABLE_SEQUENCE_SYSTEM  // Ymir Sequence System (Useful for debugging)
#define USE_STACKTRACE            // Ymir Stacktrace System for Analyze Errors (Be sure to edit game/src/Makefile, USE_STACKTRACE = 1 or 0)
#define USE_QUERY_LOGS            // Logging Queries for Analyzing (If it is test server of course)
#define ENABLE_SYSLOG_PACKET_SENT // Syslogs for Packet Sent (If it is test server of course)
//***************************************************************** END_OF_DEBUGGING_FEATURES *******************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//****************************************************************** FIX_AND_SECURITY_FEATURES ******************************************************************//
/* IMPORTANT NOTE!!! - Both encryption systems CANNOT BE ACTIVATED at the same time!!! Btw if you disable both, packet encryption will be COMPLETELY turned off. */
//#define _IMPROVED_PACKET_ENCRYPTION_ // Ymir Improved Packet Encryption System
//#define _OLD_PACKET_ENCRYPTION_      // Ymir Old Packet Encryption System (Old ones like xtea, pong, keys etc.)
//#define ENABLE_EXTERNAL_IP_SUPPORT   // For Cloud (Oracle, Google, AWS, Azure) External IP Support (INFO; If you don't use external ip, NOT uncomment this!)
#define ENABLE_PORT_SECURITY           // P2P (API Tool) Extra Security
//************************************************************** END_OF_FIX_AND_SECURITY_FEATURES ***************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//********************************************************************** OPTIONAL_FEATURES **********************************************************************//
//#define UNLIMITED_POTIONS                   // Unlimited Potions (Ex; HP/SP Potions, Purple/Green Potions, Ability Potions, Blends etc.)
//#define UNLIMITED_CAPE_OF_COURAGE           // Unlimited Cape Of Courage (All Vnums)
//#define UNLIMITED_METIN_STONE_DETECTOR      // Unlimited Metin Stone Detector (All Vnums)
//#define BOOSTED_EXP_DROP                    // 8x EXP Drop Bonus (Sometimes Will Useful For Speed-up In Game Test Purposes) - (Works ONLY in test server mode!)
//#define DISABLE_BOW_DISTANCE                // Disable Bow Distance Factor in the Assasin Damage Calculation
//#define DISABLE_STAMINA_WALK                // Disable Walk Mode When Stamina is 0 (NOTE: Not only for PC's, also AI, Horse and Pets include this too!)
//#define DISABLE_DEATH_PENALTY               // Disable EXP Loss After Death (Restart Here)
//#define DISABLE_PREVENT_DEATH_FROM_POISON   // Disable Prevent Death From Poison (INFO: If this enabled, PC's can die due poison damage, HP not stay at 1.)
//#define DISABLE_HORSE_HEALTH_AND_STAMINA    // Disable Horse Health and Stamina Factors (So horse never be die, never be starving, never be out of stamina etc.)
//#define DISABLE_LOVER_NEED_SP_TO_WARP       // Disable Lovers Need SP For Warp (With Marriage Ring)
//#define DISABLE_MONSTERS_POISONED_ONLY_ONCE // Disable Monsters Poisoned Only Once (Normally players just have one chance to poison while kill the monster)
//#define DISABLE_NEED_EXP_FOR_SKILL_READING  // Disable Need EXP For Skill Reading (Normally players give 20.000 EXP for each reading)
//****************************************************************** END_OF_OPTIONAL_FEATURES *******************************************************************//
#endif //__MT2DEV_SERVICEDEFS_H__
bu okçuyu nasıl kapatabilirim acaba
 
Paket kodlarını düzenleme niyetiyle başladığım iş büyük ruhsal problemlere doğru ilerliyor, tüm .cpp dosyalarını tek tek açıp baştan sona kontrol ediyorum manuel olarak, 300 civarı dosyayı kontrol edip üzerinde değişiklik yapmak biraz vakit alıyor haliyle. :LOL: Manuel kontrolden kastım, bildiğiniz dümdüz baştan sona okuyorum, değişiklik gereken bir yer görürsem düzenleyip devam ediyorum, incelerken pek çok ufak detaya rastladım ve bunlardan ilginç olabileceklerini isteğe göre açıp kapatmak için define olarak tanımladım, henüz tam bir güncelleme vermekten uzağım ama ufak bir gelişim kaydı verebilirim sanıyorum;

C++:
**************************************
-----------------0.70V----------------
**************************************
/*############################################ !!! ÖNEMLİ NOT - DİKKAT !!! ##############################################
## Tüm dosyalarda, önemli kısımlara yazdığım yüzlerce not var; [MT2Dev Note] şeklinde aratarak hepsine ulaşabilirsiniz.##
###### Ayrıca Ymir developerlarının yazdığı önemli notların, Korece'den İngilizce'ye çevrilmiş versiyonlarına da; #######
### " Ymir Dev Note " şeklinde aratarak ulaşabilirsiniz, detaylı olanlarda yazan kişi ve tarih bilgisi de mevcuttur. ####
############################################## *************************** #############################################*/

- DevFix 113 uygulandı.
- DevFix 114 uygulandı.
- DevFix 115 uygulandı.
- DevFix 116 uygulandı.
- DevFix 117 uygulandı.
- DevFix 118 uygulandı.
- DevFix 119 uygulandı.
- DevFix 120 uygulandı.
- DevFix 121 uygulandı.
- DevFix 122 uygulandı.
- DevFix 123 uygulandı.

- Modern C++ dan tam anlamıyla yararlanmak için gerekli düzenlemeler yapıldı. (/*Örnek; Auto Transform, Nullptr Transform, New Smart Pointers vs.*/)
- "itertype", "typeof" gibi modern C++ standartlarında yeri olmayan tanımlar değiştirildi.
- Ymir tarafından artık kullanılmayan eski paket şifreleme yöntemi "_OLD_PACKET_ENCRYPTION_" isimli bir define içerisine alındı, aktif paket şifreleme sistemimiz olan "_IMPROVED_PACKET_ENCRYPTION_" de düzenlendi.-
- Artık her iki define deaktif edilirse paket şifreleme komple kapatılır ve paketler şifresiz olarak sorunsuz şekilde iletilir, ayrıca iki şifreleme yöntemi de aktif edilmeye hazır halde, sorunsuz çalışıyorlar.- (/*KESİNLİKLE AYNI ANDA İKİ DEFİNE AKTİF EDİLMEMELİ, AYNI ANDA SADECE 1 TANESİ AKTİF EDİLEBİLİR!!!!!!*/)
- Default olarak "_IMPROVED_PACKET_ENCRYPTION_" her zaman AKTİF olmalıdır! Paket şifrelemeyi komple deaktif etmek sadece belirli debug aşamalarında gerekli olabilir, sadece bu amaçla kullanılmalıdır.

- "Network Packet" sistemi baştan sona düzenlendi, paket hatalarını minimuma indirmek için çeşitli düzenlemeler yapıldı, tüm ölü kodlar temizlendi.
- "Enums.h" ve "Packets.h" isimli iki yeni header oluşturuldu, tüm paket kodları ve enumlar (/*tüm demek yanlış olabilir, aslında sadece gerekli gördüklerim*/) bu iki dosyaya taşındı,-
- Hataları tespit etmek veya düzenleme yapmak artık daha kolay olacaktır çünkü gereken tüm kodlar tek bir dosyada.
- Yukarıda bahsettiğim işlem esnasında artık kullanımına gerek kalmayan (/*yani içeriği tamamen yukarıda bahsettiğim yeni dosyalara taşınan*/); -
- "common/length.h", "common/item_length.h", "common/tables.h", "db/QID.h", "game/packet.h", "game/unique_item.h" isimli dosyalar srcden kaldırıldı.

- Kendimi ve daha önce yaptığım bir düzenlemeyi güncelleme ihtiyacı duydum, daha önceki sürümlerde modern tekniklere daha uygun olduğunu düşündüğüm için,
- "#pragma once" kullanımına geçiş yapmıştım fakat 2024 yılında dahi "#pragma once" hala standart olarak kabul görmüyor ve farklı alt klasörlerdeki aynı isimli header dosyaları,
- Bu uygulamadan düşük bir ihtimalle de olsa etkilenebilir, dolayısıyla eski ama daha güvenli (/*Eşsiz header isimleri düzgün şekilde ayarlandığında*/) olan header guardları kullanmaya devam etmeye karar verdim, böylesi bana daha güvende hissettiriyor. (/*Guard isimlerini benzersiz olacaklarına emin olarak tekrar düzenledim.*/)
- SRC içerisinde "unordered_map" ve "unordered_set" kullanılan tüm yerlerde std:: kullanımına geçilip boost iptal edildi.

- Peer P2P için genişletilmiş bir log sistemi eklendi. (Kod bloğunda "// EXTENDED_PEER_P2P_LOGS" şeklinde bilgi var.)
- Oyuncuların sadece 1. ve 2. köylerde pazar kurabilmesi için bir düzenleme yapıldı. (Kod bloğunda "// PRIVATE_SHOPS_ONLY_OPENABLE_IN_TOWN" şeklinde bilgi var.)
- Oyuncuların yere attığı itemlerin logunun tutulması için düzenleme yapıldı. (Kod bloğunda "// DROP_ITEM_LOG" şeklinde bilgi var.)
- GMlerin istediği oyuncuyu zehirleyebilmesi için yeni bir GM kodu eklendi. (Kod bloğunda "// POISON_COMMAND" şeklinde bilgi var.)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_POTIONS" eklendi. (/*Aktif edilirse potlar, sular gibi envai çeşit iksir sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_CAPE_OF_COURAGE" eklendi. (/*Aktif edilirse Cesaret Pelerinleri sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "UNLIMITED_METIN_STONE_DETECTOR" eklendi. (/*Aktif edilirse Metin Taşı Dedektörü sınırsız olur*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "BOOSTED_EXP_DROP" eklendi. (/*Aktif edilirse test server modu aktifken EXP kazanımı 8 ile çarpılır, hızlandırılmış oyun içi testler için işe yarayabilir*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_BOW_DISTANCE" eklendi. (/*Aktif edilirse yay ile vuruş yapan Ninja karakterlerin hasar hesaplaması yapılırken karakterin vuruş esnasındaki mesafesi dikkate alınmaz*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_STAMINA_WALK" eklendi. (/*Aktif edilirse karakterlerin staminası bittiği zaman yürümeye başlamazlar*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_DEATH_PENALTY" eklendi. (/*Aktif edilirse karakterler öldükten sonra burada başla seçeneğini seçerse EXP kaybetmezler*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_PREVENT_DEATH_FROM_POISON" eklendi. (/*Aktif edilirse karakterler zehir hasarıyla ölebilir, normalde karakterin canı 1 olduğunda hasar vurmayı durduruyor*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_HORSE_HEALTH_AND_STAMINA" eklendi. (/*Aktif edilirse atın can azalması, stamina azalması, ölmesi gibi faktörler devre dışı kalır, at beslenmese bile ölmez*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_LOVER_NEED_SP_TO_WARP" eklendi. (/*Aktif edilirse nikah yüzüğü ile birbirine ışınlanmak isteyen evli karakterlerden ışınlanma için SP alınmaz*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_MONSTERS_POISONED_ONLY_ONCE" eklendi. (/*Aktif edilirse zehir yiyen bir mob, zehrin etkisi geçtikten (normalde moblar sadece 1 defa zehirlenirler, o süre zarfında ölmezse bir daha zehir yemez) sonra oyuncular tarafından tekrar zehirlenebilir*/)
- Opsiyonel olarak kullanılmak istenirse aktif edilebilecek yeni bir sistem olan "DISABLE_NEED_EXP_FOR_SKILL_READING" eklendi. (/*Aktif edilirse beceri geliştirme esnasında oyuncudan eksilen 20.000 EXP devre dışı kalır, EXP harcamadan işlem devam eder*/)
- "Documents" isimli yeni bir dosya eklendi, içerisinde Ymir'in orijinal developer ekibinin yazdığı patch loglarının İngilizceye çevrilip, düzenlenmiş halleri mevcut.
- Hali hazırda aktif olan veya comment satırı haline getirilmiş, işlevsel olabilecek tüm sys_log kayıtları test server modu için aktif edildi. (/*Normalde aktif olan logların bazıları da sadece test server modunda çalışacak şekilde düzenlendi.*/)


C++:
// Yeni fixler;

- DevFix 113 = Karakterler yaratilirken verilen random statlar sabit hale getirildi.                (constants.cpp)
- DevFix 114 = Eksik bir bolume gerekli "sys_log" blogu eklendi, bilgi onemli.                        (ClientManager.cpp)
- DevFix 115 = Ata veya binege belirli maplerde binilmemesi icin kontrol eklendi.                    (char_item.cpp&cmd_general.cpp)
- DevFix 116 = "CHARACTER::BuffOnAttr_ValueChange" fonksiyonu modern tarzda yenilendi.                (char_item.cpp)
- DevFix 117 = Eger oyuncu son seviyeye ulasirsa, beceri kitabi okumasi icin EXP gerekmeyecektir.    (char_skill.cpp)
- DevFix 118 = Game Masterlar artik aninda "Burada Basla" veya "Sehirde Basla" ile dirilebilirler.    (cmd_general.cpp)
- DevFix 119 = Sadece GMlerin kullanmasina izin verilen komutlara ekstra kontroller eklendi.        (cmd_general.cpp&cmd_gm.cpp)
- DevFix 120 = "Cube_make" icerisine gerekli bir -yang kontrolu eklendi.                            (cube.cpp)
- DevFix 121 = Bazi GM veya Player komutlarinda negatif(-) arg kullanimi engellendi.                (cmd_gm.cpp&cmd_general.cpp)
- DevFix 122 = Gereksiz buyuk veri tipi kullanan yerler, bellek tuketimini azaltmak icin duzenlendi.(Lot of files have this one)
- DevFix 123 = "/do_set" komutu komple yenilendi, eksik kontroller eklendi.                            (cmd_gm.cpp)
    

// ServiceDefs'in son hali;
    
/********************************************************/
/* FILE:    ServiceDefs.h                               */
/* INFO:    All defines linked to a single header file. */
/* AUTHOR:  MT2Dev                                      */
/* DATE:    11/09/2023                                  */
/********************************************************/
#ifndef __MT2DEV_SERVICEDEFS_H__
#define __MT2DEV_SERVICEDEFS_H__

//********************************************************************* DEBUGGING_FEATURES **********************************************************************//
//#define ENABLE_SEQUENCE_SYSTEM  // Ymir Sequence System (Useful for debugging)
#define USE_STACKTRACE            // Ymir Stacktrace System for Analyze Errors (Be sure to edit game/src/Makefile, USE_STACKTRACE = 1 or 0)
#define USE_QUERY_LOGS            // Logging Queries for Analyzing (If it is test server of course)
#define ENABLE_SYSLOG_PACKET_SENT // Syslogs for Packet Sent (If it is test server of course)
//***************************************************************** END_OF_DEBUGGING_FEATURES *******************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//****************************************************************** FIX_AND_SECURITY_FEATURES ******************************************************************//
/* IMPORTANT NOTE!!! - Both encryption systems CANNOT BE ACTIVATED at the same time!!! Btw if you disable both, packet encryption will be COMPLETELY turned off. */
//#define _IMPROVED_PACKET_ENCRYPTION_ // Ymir Improved Packet Encryption System
//#define _OLD_PACKET_ENCRYPTION_      // Ymir Old Packet Encryption System (Old ones like xtea, pong, keys etc.)
//#define ENABLE_EXTERNAL_IP_SUPPORT   // For Cloud (Oracle, Google, AWS, Azure) External IP Support (INFO; If you don't use external ip, NOT uncomment this!)
#define ENABLE_PORT_SECURITY           // P2P (API Tool) Extra Security
//************************************************************** END_OF_FIX_AND_SECURITY_FEATURES ***************************************************************//

//---------------------------------------------------------------------------------------------------------------------------------------------------------------//

//********************************************************************** OPTIONAL_FEATURES **********************************************************************//
//#define UNLIMITED_POTIONS                   // Unlimited Potions (Ex; HP/SP Potions, Purple/Green Potions, Ability Potions, Blends etc.)
//#define UNLIMITED_CAPE_OF_COURAGE           // Unlimited Cape Of Courage (All Vnums)
//#define UNLIMITED_METIN_STONE_DETECTOR      // Unlimited Metin Stone Detector (All Vnums)
//#define BOOSTED_EXP_DROP                    // 8x EXP Drop Bonus (Sometimes Will Useful For Speed-up In Game Test Purposes) - (Works ONLY in test server mode!)
//#define DISABLE_BOW_DISTANCE                // Disable Bow Distance Factor in the Assasin Damage Calculation
//#define DISABLE_STAMINA_WALK                // Disable Walk Mode When Stamina is 0 (NOTE: Not only for PC's, also AI, Horse and Pets include this too!)
//#define DISABLE_DEATH_PENALTY               // Disable EXP Loss After Death (Restart Here)
//#define DISABLE_PREVENT_DEATH_FROM_POISON   // Disable Prevent Death From Poison (INFO: If this enabled, PC's can die due poison damage, HP not stay at 1.)
//#define DISABLE_HORSE_HEALTH_AND_STAMINA    // Disable Horse Health and Stamina Factors (So horse never be die, never be starving, never be out of stamina etc.)
//#define DISABLE_LOVER_NEED_SP_TO_WARP       // Disable Lovers Need SP For Warp (With Marriage Ring)
//#define DISABLE_MONSTERS_POISONED_ONLY_ONCE // Disable Monsters Poisoned Only Once (Normally players just have one chance to poison while kill the monster)
//#define DISABLE_NEED_EXP_FOR_SKILL_READING  // Disable Need EXP For Skill Reading (Normally players give 20.000 EXP for each reading)
//****************************************************************** END_OF_OPTIONAL_FEATURES *******************************************************************//
#endif //__MT2DEV_SERVICEDEFS_H__
şu documents packini bi görebiliyor muyuz acaba :D
 
bu okçuyu nasıl kapatabilirim acaba
Kendinize iş çıkartmayıp sadece oyundaki yay ve okları yok edin, src tarafında çok fazla işlem gerekir hiç gerek yok.
şu documents packini bi görebiliyor muyuz acaba :D
Paket sistemiyle aramızda ufak bir arbede yaşandı ama çalışmalar devam ediyor, güncelleme gelmesi biraz uzun sürecek gibi çünkü paketleri düzenlerken çok fazla şeyin yerini değiştirmem gerekti, bu süre zarfında konuyu takip edenlere ufak bir paylaşım yapayım, aktiflik düşmesin. :D

Bu RaR dosyasının içinde sızdırılan dosyaların içinde bulunan, Ymir&WebZen ve GF tarafından oluşturulmuş çeşitli kılavuzların (kurulum yönergeleri, patch notları vs.) Korece dilinden İngilizceye çevrilip düzenlenmiş versiyonları mevcut, merak edenler için bir içerik olsun. :coffee:

Bu yorumuma ek olarak eklemiştim.
 
Geri
Üst