[C++] Bağırma level sınırı kaldırma

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar,


Konunun başlığında da yazdığı gibi chat level sınırı kaldırmayı anlatacağım.
Hemen anlatıma geçiyorum..😄

input_main.cpp açılır ve aratılır

Kod:
http://paste2.org/vGxbkIhv

LENkmb.png


değiştirilir

Kod:
http://paste2.org/m0s3c9tm

OBNYQ3.png



😄



Metin2 Sunucularında C++ ile Bağırma Level Sınırının Kaldırılması

Giriş
Metin2 özel sunucularında oyuncuların deneyimini artırmak adına geliştiriciler tarafından birçok farklı değişiklik yapılmaktadır. Bunlardan biri de bağırma level sınırı konusudur. Standart Metin2 sistemlerinde oyuncuların belirli bir levelin üzerinde bağırması engellenmiştir. Ancak bazı özel sunucularda bu sınır kaldırılarak her seviyedeki oyuncunun serbestçe bağırabilmesi sağlanabilir. Bu işlem genellikle game server tarafında C++ kaynak kodları üzerinde değişiklik yapılarak gerçekleştirilir.

Neden Bağırma Level Sınırı Kaldırılır?
Özel sunucularda oyuncu etkileşimi ve PvP yoğunluğu gibi faktörler önemlidir. Bağırma limiti kaldırıldığında düşük level oyuncular da yüksek level olanlara kolayca ulaşabilir veya ekip kurabilir. Bu da oyun içi sosyal yapıyı güçlendirir. Ayrıca bazı sunucularda özel etkinlikler sırasında tüm oyuncuların duyabileceği şekilde kampanya mesajları atılması da istenebilir. Bu gibi durumlarda bağırma seviyesi sınırlaması kalkmalıdır.

C++ Kaynak Kodlarda Gerekli Değişiklikler
Metin2 sunucu kaynak kodları genellikle C++ dilinde yazılmıştır. Bağırma komutları genellikle game/src/char.cpp veya benzeri dosyalarda tanımlanmıştır. Burada ChatPacket fonksiyonu üzerinden bağırma işlemi kontrol edilir. Standart olarak burada bir level kontrolü yapılır. Örneğin, if (ch->GetLevel() < MIN_SHOUT_LEVEL) gibi bir kontrol varsa, bu satır silinerek veya değiştirilerek bağırma seviyesi sınırı kaldırılabilir.

Dikkat Edilmesi Gerekenler
Bu tür değişiklikler yapılırken sunucu stabilitesi korunmalıdır. Yanlış bir değişiklik sistemi bozabilir. Özellikle db_core ve game_core arasında tutarsızlık oluşmamalıdır. Ayrıca bağırma sınırı kaldırıldığında spam riski artar. Bu yüzden ekstra filtreleme veya cooldown mekanizması eklemek iyi bir fikirdir.

Python ve UİScript Entegrasyonu
Sunucu tarafında yapılan bu değişikliklerin yanı sıra, bazı geliştiriciler py_root ve uiscript üzerinden de kullanıcı arayüzüne müdahale edebilir. Ancak bağırma seviye kontrolü genellikle tamamen sunucu tarafında olduğu için, UI üzerinde değişiklik yapmak gerekmez. Ancak, bağırma limiti olmayan bir sistemde UI tarafında da bu bilgiyi güncelleyecek scriptler yazılabilir.

Sonuç
C++ üzerinde yapılan küçük ama etkili değişiklikler sayesinde Metin2 özel sunucularında bağırma sistemi özelleştirilebilir. Bu tür sistemlerin geliştirilmesi, martysama ve diğer geliştirici toplulukları tarafından desteklenmektedir. Metin2Lobby gibi platformlar sayesinde bu konuda daha fazla kaynak ve örnek incelenebilir. Bu sayede hem oyuncu deneyimi artırılır hem de sunucu yöneticileri için daha esnek bir yapı oluşturulur.


Removing Shout Level Limit in Metin2 Servers with C++

Introduction
In Metin2 private servers, many different modifications are made by developers to enhance the player experience. One of these is the shout level limit. In standard Metin2 systems, players are restricted from shouting above a certain level. However, in some private servers, this limit can be removed so that players of all levels can freely shout. This process is typically done by making changes to the game server side through C++ source code.

Why Remove the Shout Level Limit?
Player interaction and PvP intensity are important factors on private servers. When the shout limit is lifted, low-level players can easily reach out to high-level ones or form parties. This strengthens the in-game social structure. Additionally, during special events on some servers, it may be desired for campaign messages to be heard by all players. In such cases, the shout level restriction should be lifted.

Required Changes in C++ Source Code
Metin2 server source codes are generally written in C++. Shout commands are usually defined in files like game/src/char.cpp or similar. Here, the shout operation is controlled via the ChatPacket function. By default, a level check is performed. For example, if there is a control like if (ch->GetLevel() < MIN_SHOUT_LEVEL), removing or modifying this line will eliminate the shout level limit.

Things to Consider
When making such changes, server stability must be preserved. Incorrect changes might break the system. Especially, inconsistencies between db_core and game_core should be avoided. Also, after removing the shout limit, spam risk increases. Therefore, adding extra filtering or cooldown mechanisms would be a good idea.

Python and UIScript Integration
Alongside changes made on the server side, some developers may modify the user interface through py_root and uiscript. However, since shout level checks are mostly handled entirely on the server side, UI changes may not be necessary. But in a no-shout-limit system, scripts updating this information in the UI can be implemented.

Conclusion
Through small but effective changes in C++, the shout system in Metin2 private servers can be customized. Such developments are supported by communities like martysama. Platforms like Metin2Lobby allow further resources and examples to be explored. This way, both player experience is enhanced and more flexible structures are created for server administrators.
 

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

Benzer konular

Geri
Üst Alt