Şampiyon Seviyesi Olduğunda Eski Exp'yi Sildirme

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Benim Dosyalarımda Şampiyon Seviyesi Olmak TR'deki Gibi 120 Seviye ve 1 Küp Doldurmanız Gerekiyor. Ardından Şampiyon Seviyesi Olduğumda ve Lonca'ya Exp Bağışladığım Zaman Eski Levelimdeki Sarı Exp'leri Alıyor. Çünkü Mysql'da Hala Daha Kayıtlı. Bu Nedenle Şampiyon Seviyesi Olduğunuzda Artık Şampiyon Exp'si Vermeniz Gerekiyor. Tabii Onu Source Kısmından ve Python Tarafından Ayarlamanız Gerek. Ben Şimdilik Bunun Düzeltmesini Veriyorum.
Ben Karaktere Şampiyon Seviyesini Quest ile Yapıyorum. Şampiyon Seviyesi Verdiğimde

questlua_pc.cpp'de

pc_set_conqueror_level isimli fonksyion çalışıyor.

Hemen En Altındaki return 0; kısmının üstüne ve Şampiyon Seviyesi Verme PointChange'sinin Altına Ekliyoruz.

Kod:
/* Şampiyon Seviyesi Olduğumda Lonca'ya Exp Verirken Eski Exp'yi Alıyor. */         DWORD exp = ch->GetExp();         /* Eski Exp'yi Sil. */         ch->PointChange(POINT_EXP, -exp, false, true);

KANIT:

Not: Bu Düzenlemeyi Yapmadan Önce Şampiyon Exp'si Yoksa Bile Dediğim Gibi Yeterli Tecrübe Puanı Yok. Hatası Vermiyordu. Eski Exp'den Alıyordu.
Siz Sourceden vs. Gerekli Koşulları Yaptıktan Sonra Eski Exp'yi Bile Sormaz. Fakat Ben Yine'de Sildirdim. Karar Sizin. :)

140200_f7817dcdc8402d5094e9d30b6f1cef64.png

Metin2 özel sunucularında oyuncuların gelişimini ve oyun deneyimini artırmak amacıyla birçok sistem geliştirilir. Bu sistemlerden birisi de şampiyon seviyesi sistemidir. Oyuncular belirli bir puana veya seviyeye ulaştıklarında şampiyon seviyesine geçiş yaparlar. Bu geçişte eski exp (deneyim) verilerinin silinmesi istenebilir. Bu işlem genellikle oyun içi dengenin korunması veya yeni bir başlangıç imkanı sunulması amacıyla yapılır. Bu yazıda, şampiyon seviyesine geçiş yapıldığında eski exp değerlerinin nasıl silineceği konusunu detaylıca ele alacağız.

Metin2 Sunucusunda Şampiyon Seviye Sistemi Nedir?
Metin2 özel sunucularında şampiyon seviyesi, oyuncuların belirli bir deneyim veya puan eşiğine ulaştıklarında geçtikleri bir üst seviye türüdür. Bu sistem, oyuncuların uzun süreli gelişimini ödüllendirmek ve onları oyunda tutmak için tasarlanmıştır. Şampiyon seviyesine geçiş sırasında eski exp verilerinin silinmesi, oyuncuya tamamen sıfırdan başlama fırsatı verir. Bu sayede oyuncu yeni bir yolculuğa çıkarken oyun dengesi de korunmuş olur.

Exp Silme İşleminin Amacı
Eski exp verilerinin silinmesi, oyuncuların şampiyon seviyesine geçtikten sonra daha adil bir rekabet ortamında bulunmalarını sağlar. Ayrıca, eski exp değerlerinin devam etmesi bazı sistemsel dengesizliklere neden olabilir. Örneğin, yüksek exp değerleriyle gelen oyuncular yeni başlayanlara göre hâlâ avantajlı olabilir. Bu durum, yeni oyuncuların motivasyonunu düşürebilir. Bu yüzden, şampiyon seviyesine geçişte exp silmek, hem mevcut oyuncular hem de yeni oyuncular için daha dengeli bir sistem sağlar.

C++ Kaynak Kodlarında Uygulama
Metin2 sunucu tarafında exp silme işlemi genellikle C++ kaynak kodları üzerinde yapılır. Game server programming ile entegre çalışan bu sistem, oyuncu seviyesi yükseldiğinde otomatik olarak exp değerlerini sıfırlayacak şekilde ayarlanabilir. Bu işlem için öncelikle oyuncunun şampiyon seviyesine geçip geçmediği kontrol edilmelidir. Eğer geçtiyse, exp değeri 0'a çekilir. Bu işlem, server-side scripting ile sağlanmalıdır. Bu tip sistemlerde güvenilir bir yapı kurmak için game core ve db core arasında uyumlu bir veri akışı sağlanmalıdır.

Python ile Otomasyon
Bazı özel sunucular, Python script sistemlerini kullanarak exp silme işlemini otomatikleştirebilir. Py GUI veya diğer Python tabanlı arayüzler ile adminler, belirli oyuncuların exp değerlerini elle de sıfırlayabilir. Bu işlemler py root klasöründe tanımlanan sistemler üzerinden yönetilir. Pack dosyaları ile birlikte entegre çalışan bu yapılar, hem geliştirici hem de kullanıcı açısından kolaylık sağlar. Ancak bu işlemlerde dikkatli olunmalıdır çünkü hatalı bir işlem oyun içi verilerde kalıcı hasarlara yol açabilir.

Veri Güvenliği ve Yedekleme
Exp silme işlemi gibi önemli veri değişikliklerinde, oyuncu verilerinin yedeklenmesi büyük önem taşır. Database (db) üzerinde yapılan her işlem öncesinde yedek alınmalıdır. Bu işlem, Martysama veya diğer Metin2 geliştirme araçları ile otomatikleştirilebilir. Oyun içinde meydana gelen herhangi bir sorun durumunda, bu yedekler hızlıca geri yüklenebilir. Geliştiricilerin, db core üzerinde çalışırken özellikle dikkat etmeleri gereken bu tür konular vardır.

Sonuç
Metin2 özel sunucularında şampiyon seviyesine geçişte eski exp verilerinin silinmesi, hem oyun dengesini korumak hem de yeni bir başlangıç fırsatı sunmak açısından önemlidir. Bu işlem C++ sistemler üzerinden doğrudan yapılabilirken, Python script sistemleri ile de otomatikleştirilebilir. Her iki yöntemde de güvenlik ön planda tutulmalı, db üzerindeki işlemler kontrollü yapılmalıdır.


In Metin2 private servers, many systems are developed to enhance player progression and gaming experience. One of these systems is the champion level system. Players may transition to the champion level upon reaching a certain score or level. During this transition, it may be desired to delete old exp (experience) data. This process is generally done to maintain in-game balance or provide a fresh start opportunity. In this article, we will discuss in detail how to delete old exp values when transitioning to champion level.

What Is the Champion Level System in Metin2 Servers?
In Metin2 private servers, the champion level is an upper-tier level that players reach after achieving a specific experience or point threshold. This system is designed to reward long-term player development and keep them engaged in the game. Deleting old exp data during the transition to champion level provides the player with a chance to start completely from zero. This way, while the player embarks on a new journey, the game balance is also preserved.

Purpose of Exp Deletion
Deleting old exp data ensures that players compete in a fairer environment once they reach champion level. Additionally, continuing with old exp values might cause systemic imbalances. For instance, players with high exp values may still have advantages over newcomers. This could decrease motivation for new players. Therefore, deleting exp at the time of champion level transition creates a more balanced system for both existing and new players.

Implementation in C++ Source Code
In Metin2 server-side, the exp deletion process is usually handled within C++ source codes. Integrated with game server programming, this system can be configured to automatically reset exp values when a player's level increases. First, it must be checked whether the player has reached champion level. If so, their exp value is set to 0. This process should be managed via server-side scripting. To build a reliable structure in such systems, a consistent data flow between game core and db core must be ensured.

Automation with Python
Some private servers can automate the exp deletion process by using Python script systems. Admins can manually reset exp values of specific players using Py GUI or other Python-based interfaces. These operations are managed through systems defined in the py root folder. Structures integrated with pack files provide convenience for both developers and users. However, care must be taken during these processes, as an incorrect operation could cause permanent damage to in-game data.

Data Security and Backup
For critical data modifications like exp deletion, backing up player data is extremely important. A backup must be taken before any operation performed on the database (db). This process can be automated using tools like Martysama or other Metin2 development utilities. In case of any issues occurring within the game, these backups can be quickly restored. Developers must pay special attention to such matters while working on db core components.

Conclusion
Deleting old exp data during the transition to champion level in Metin2 private servers is important both to maintain game balance and to offer a fresh start. This process can be implemented directly via C++ systems or automated using Python scripting. In both approaches, security should be prioritized, and db-related operations must be handled carefully.
 

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

Benzer konular

Geri
Üst Alt