[ C++ ] Metin2 CH Düşüren Fonksiyonları Kaldırmak

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 101

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba Arkadaşlar Bu Gün Sizlere Nasıl CH Düşüren Fonksiyonları Kaldırabileceğinizi Göstericem. Konu Herhangi Bir Yerden Alıntı Değildir . Öncelikle Fonksiyonlar Hakkında Bilgi Verelim.


Neden Bu Fonksiyonları Kaldırıyoruz ?


Fonksiyonları Kaldıramamızın Sebebi Serverin YMIR IP Adreslerine Uyumsuz Olması Sonucu Serveri Check'lerken Hata Yaşaması Ayrıca limit_time Ve Serverkey Gibi Lisans Olaylarınıda Kaldırmış Oluyoruz. Böylelikle Serverimizde Kanal Kapanması Ve CH Düşmesi Yaşamıyoruz .


Başlayalım.


İlk Önce game/src İçerisindeki Makefile Dosyamızı Açıyoruz.


1.png


Gri Görünen Yeri Siliyoruz.


Ardından Aşağı İniyoruz ve ,


2.png


Turuncu Yerleri Siliyoruz .


Ve Aşağı İnip ,


3.png


Gri Görünen Yeri Siliyoruz.


Ve Aşağı İnip ,


4.png


Gri Görünen Kısmı Siliyoruz Şimdi Diğer Bir Yere Geçelim. main.cpp Açıyoruz.


5.png


turuncu işaretlenen kısmı siliyoruz


Ardından Aşağı İniyoruz. if (!(pulse % ht->passes_per_sec)) Aratıyoruz .


6.png
gri işaretlenen kısımı siliyoruz.


Ve static bool g_isInvalidServer = false; Aratıyoruz.


7.png


ve Metin2Server_Check(); aratılır.


8.png


gri görünen kısmı siliyoruz.


_malloc_message = WriteMallocMessage; aratılır ;


9.png


Gri görünen kısmı siliyoruz


memset(&s_dwProfiler[0], 0, sizeof(s_dwProfiler)); aratıyoruz ;


10.png


gri görünen kısmı siliyoruz şimdi input.cpp giriyoruz.


12.png


Gri Görünen Kısmı Siliyoruz .


void CInputProcessor::pong(LPDESC d) aratıyoruz .


11.png


Gri Görünen Kısmı Siliyoruz .


input_auth giriyoruz .


12.png


Gri gözüken kısmı siliyoruz.


void CInputAuth::Login(LPDESC d, const char * c_pData) aratıyoruz ve ;


13.png


Gri Görünen Kısmı Siliyoruz.


Ve void CInputAuth::LoginOpenID(LPDESC d, const char * c_pData) aratıyoruz ;


14.png
gri renkli görünen yeri siliyoruz.


ve şimdi config.cpp giriyoruz ve


15.png


gri renkli yeri siliyoruz ardından


TOKEN("server_key") aratıyoruz ;


16.png


gri renkli yeri siliyoruz ve son işlem olarak ;


17.png


seçilen klasörü siliyoruz .


Yapılanlar ;


limit_time Kaldırıldı Artık gmake limit_time yazmanıza gerek yok sonsuza kadar kullanabilirsiniz.
Metin2ServerCheck() Kaldırıldı Artık IP Adresinizi Sürekli Kontrol Etmez.
IsInvalidServer Kaldırıldı Artık YMIR IP Adresleri Dışında Olan IPLERDE CH Çökmesi Yaşanmaz.
Server_key Kaldırıldı Artık Lisans Anahtarı İle Server Lisanslanamaz.

- Pelin Melek Aslan -
Metin2 CH Düşüren Fonksiyonları Kaldırmak

Metin2 özel sunucularında geliştirme yaparken CH düşürme mekanizmaları genellikle istenmeyen bir durum olarak karşımıza çıkar. Özellikle PVP sistemlerinde oyuncuların sürekli CH değerlerinin düşmesi sunucu deneyimini olumsuz etkileyebilir. Bu nedenle bazı geliştiriciler C++ kaynak kodlarında bulunan CH düşüren fonksiyonları kaldırmayı tercih ederler. Bu makalede Metin2Lobby olarak size bu işlemi nasıl yapacağınızı detaylıca anlatıyoruz.

CH Nedir?
CH, Metin2 oyununda karakterin kan değeridir. Karakterin sağlığını temsil eder ve saldırılar sonucunda düşebilir. Ancak bazı sistemlerde karakterin CH'si otomatik olarak düşebilir. Bu durum genellikle oyun içinde belirlenen zaman aralıklarında veya belirli eylemler sonrası gerçekleşir.

CH Otomatik Düşümü Neden Olur?
Otomatik CH düşümü genellikle oyun içindeki regen sisteminden kaynaklanabilir. Bu sistem, oyuncuların uzun süre hareketsiz kalması durumunda CH düşürmeyi amaçlar. Ancak özel sunucularda bu sistemin devre dışı bırakılması istenebilir. Bu durumda C++ seviyesinde düzenlemeler yapılması gerekir.

CH Düşüren Fonksiyonları Kaldırmak
CH düşüren fonksiyonlar, genellikle game server src dosyalarında bulunur. Özellikle char.cpp, char_manager.cpp, regen.cpp gibi dosyalarda CH yönetimi yapılır. Bu dosyaları açarak CH düşüren fonksiyonları bulup yorum satırına alabilir veya tamamen kaldırabilirsiniz.

Örnek Kod Düzenlemesi
Aşağıdaki örnek bir karakterin CH değerini otomatik düşüren fonksiyonu göstermektedir:

Kod:
[COLOR=#9365b8]if (ch->GetHP() > ch->GetMaxHP())[/COLOR][BR][/BR][COLOR=#9365b8]    ch->PointChange(POINT_HP, -1);[/COLOR]


Bu kodu yorum satırına alarak CH düşümünü engelleyebilirsiniz:

Kod:
[COLOR=green]// if (ch->GetHP() > ch->GetMaxHP())[/COLOR][BR][/BR][COLOR=green]//     ch->PointChange(POINT_HP, -1);[/COLOR]


Sunucu Derleme İşlemi
Değişiklik yaptıktan sonra mutlaka Metin2 compile işlemini gerçekleştirmeniz gerekir. Game server programming ile ilgili bilgi sahibi olmanız bu işlemi daha verimli hale getirecektir. Derleme işlemi doğru yapılmazsa değişiklikler aktif olmayacaktır.

CH Sistemlerinin Kontrolü
Oyuncuların CH değerlerinin kontrolü sırasında db core ve game core yapılarının senkronize çalıştığından emin olmalısınız. CH sistemlerinde yapılan değişiklikler doğrudan server src üzerinde etkili olur. Bu nedenle source edit işlemleri özenle yapılmalıdır.

Yedek Almayı Unutmayın
Herhangi bir değişiklik yapmadan önce kaynak kodlarınızdan yedek almanız önerilir. Böylece beklenmedik bir hata durumunda kolayca eski haline döndürebilirsiniz.

Sonuç
Metin2 özel sunucularında CH düşüren fonksiyonların kaldırılması, oyun içi deneyimi iyileştirebilir. Özellikle PVP sistem odaklı sunucularda bu tür ayarlamalar önemlidir. Metin2Lobby olarak bu gibi gelişmiş C++ sistemlerinde size yardımcı olmaya devam edeceğiz.


Removing CH Reducing Functions in Metin2

In Metin2 private server development, CH reduction mechanisms often appear as unwanted behavior. In PVP systems, constant CH drops can negatively impact the server experience. Therefore, some developers prefer to remove CH reducing functions from C++ source codes. In this article, Metin2Lobby explains how to perform this operation in detail.

What is CH?
CH represents the health value of a character in Metin2. It decreases after attacks and certain actions. However, in some systems, CH may drop automatically over time or based on specific triggers.

Why Does CH Auto-Drop Occur?
Automatic CH drop is usually due to the in-game regen system. This system reduces CH if players remain idle for extended periods. In private servers, disabling this system might be desired, which requires modifications at the C++ level.

Removing CH Reducing Functions
CH-reducing functions are typically located within game server src files. Files like char.cpp, char_manager.cpp, regen.cpp handle CH management. You can locate these functions and comment them out or remove them entirely.

Example Code Modification
The following code example shows a function that reduces CH automatically:

Kod:
[COLOR=#9365b8]if (ch->GetHP() > ch->GetMaxHP())[/COLOR][BR][/BR][COLOR=#9365b8]    ch->PointChange(POINT_HP, -1);[/COLOR]


You can prevent CH reduction by commenting out the code:

Kod:
[COLOR=green]// if (ch->GetHP() > ch->GetMaxHP())[/COLOR][BR][/BR][COLOR=green]//     ch->PointChange(POINT_HP, -1);[/COLOR]


Server Compilation Process
After making changes, you must perform a Metin2 compile. Knowledge of game server programming will make this process more efficient. If compilation is not done correctly, the changes will not take effect.

Monitoring CH Systems
Ensure synchronization between db core and game core structures when monitoring CH values. Changes made in CH systems directly affect the server src. Therefore, source edit operations must be performed carefully.

Always Backup Your Files
Before making any modifications, it is recommended to backup your source files. This way, you can easily revert to the previous state in case of unexpected errors.

Conclusion
Removing CH-reducing functions in Metin2 private servers can improve gameplay experience. Such adjustments are especially important for PVP systems-focused servers. As Metin2Lobby, we will continue to assist you with such advanced C++ systems.​
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt