Change Sex or Change Skill Without Relog

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
İşte başlıkta belirtildiği gibi, oyunda yeniden giriş yapmadan yetenek değiştirme ve karakterin cinsiyetini gerçek zamanlı olarak değiştirme.
As stated in the title, changing skills without needing to relog in the game and changing the character’s gender in real-time.
Kod:
char.cpp #ifdef ENABLE_CHANGESEX_CHANGESKILL_WITHOUT_RELOG void CHARACTER::Fixeletationspo() {     UpdatePacket();     SET_BIT (m_bAddChrState, ADD_CHARACTER_STATE_SPAWN);     m_afAffectFlag.Set (AFF_SPAWN);     ViewReencode();     REMOVE_BIT (m_bAddChrState, ADD_CHARACTER_STATE_SPAWN);     m_afAffectFlag.Reset (AFF_SPAWN); } #endif bool CHARACTER::ChangeSex() { #ifdef ENABLE_FIX_GAME_CORE_BUG     if (GetWear(WEAR_COSTUME_BODY) || GetWear(WEAR_COSTUME_HAIR))     {         return false;     } #endif     int src_race = GetRaceNum();     switch (src_race)     {         case MAIN_RACE_WARRIOR_M:             m_points.job = MAIN_RACE_WARRIOR_W;             break;         case MAIN_RACE_WARRIOR_W:             m_points.job = MAIN_RACE_WARRIOR_M;             break;         case MAIN_RACE_ASSASSIN_M:             m_points.job = MAIN_RACE_ASSASSIN_W;             break;         case MAIN_RACE_ASSASSIN_W:             m_points.job = MAIN_RACE_ASSASSIN_M;             break;         case MAIN_RACE_SURA_M:             m_points.job = MAIN_RACE_SURA_W;             break;         case MAIN_RACE_SURA_W:             m_points.job = MAIN_RACE_SURA_M;             break;         case MAIN_RACE_SHAMAN_M:             m_points.job = MAIN_RACE_SHAMAN_W;             break;         case MAIN_RACE_SHAMAN_W:             m_points.job = MAIN_RACE_SHAMAN_M;             break;         default:             sys_err ("CHANGE_SEX: %s unknown race %d", GetName(), src_race);             return false;     }     sys_log (0, "CHANGE_SEX: %s (%d -> %d)", GetName(), src_race, m_points.job);     #ifdef ENABLE_CHANGESEX_CHANGESKILL_WITHOUT_RELOG     Fixeletationspo();     #endif     return true; } char.h w public:         #ifdef ENABLE_CHANGESEX_CHANGESKILL_WITHOUT_RELOG         void            Fixeletationspo();         #endif Definicja: #define ENABLE_CHANGESEX_CHANGESKILL_WITHOUT_RELOG

Metin2'de Tekrar Giriş Yapmadan Cinsiyet veya Beceri Değiştirme Sistemi

Metin2 özel sunucularında oyuncuların daha fazla özelleştirilebilirlik ve esneklik istemesi doğrultusunda bazı geliştiriciler, oyuncuların karakter cinsiyetini ya da becerilerini tekrar giriş yapmadan değiştirebilmesi için sistemler geliştirmektedir. Bu tür sistemler, kullanıcı deneyimini artırarak oyuncuların daha kolay bir şekilde karakterlerini özelleştirmesine olanak tanır.

Cinsiyet ve Beceri Değiştirme Sistemleri Neden Gereklidir?
Metin2 özel sunucularında, oyuncular bazen karakterlerini oluşturduktan sonra cinsiyet ya da beceri seçimlerinden dolayı pişman olabilirler. Normalde bu değişiklikleri yapabilmek için karakter silinmeli ya da sunucuya yeniden giriş yapılmalıdır. Ancak gelişmiş sunucu yapılarında, bu işlemleri tekrar bağlanmadan yapabilmek büyük avantaj sağlar.

Sistem Geliştirme ve Kodlama Adımları
Bu sistemin geliştirilmesi için öncelikle C++ tabanlı bir Game Server üzerinde çalışmak gerekir. Oyun sunucusunun karakter veri yapısı üzerinde değişiklik yapılması gerekir. Özellikle CHARACTER_MANAGER::SaveCharacter fonksiyonu üzerinden cinsiyet veya beceri verileri güncellemek mümkündür.

Python Arayüzü ile Kullanıcı Etkileşimi
Oyuncuların bu işlemi kolayca yapabilmesi için Python GUI arayüzleri kullanılır. UIscript dosyalarında butonlar ve menüler tasarlanarak, oyuncu istediği zaman cinsiyet ya da beceri değiştirme işlemi yapabilir. Bu işlemler genellikle packet_handler üzerinden sunucuya gönderilir.

Güvenlik ve Veri Kontrolü
Herhangi bir veri değişikliği sırasında güvenlik ön planda tutulmalıdır. Oyuncunun sahip olduğu item, seviye gibi veriler kontrol edilerek, hile yapılmasının önüne geçilmelidir. DB Core üzerinden bu kontroller sağlanabilir.

Sunucu Tarafında Gerçekleştirilen Değişiklikler
Cinsiyet değişikliğinde CHARACTER struct'ı üzerinde cinsiyet değişkeni güncellenir. Beceri değişikliğinde ise SKILL_MANAGER sınıfı üzerinden oyuncunun mevcut becerileri silinip, yeni beceriler atanabilir. Bu işlemler sırasında AUTH ve GAME sunucuları senkronize çalışmalıdır.

Özel Sunucularda Popülerlik
Metin2 özel sunucularında bu tip özelleştirme sistemleri giderek popülerleşmektedir. Özellikle PvP sunucularında, oyuncuların farklı stratejiler için beceri setlerini hızlıca değiştirebilmesi büyük avantaj sağlar. Bu sayede oyuncu sadakati artar ve sunucu kalitesi yükselmektedir.

Sonuç
Tekrar giriş yapmadan cinsiyet veya beceri değiştirme sistemi, Metin2 özel sunucularında kullanıcı dostu bir özellik olarak dikkat çeker. Doğru uygulandığında hem oyuncu memnuniyetini artırır hem de sunucu yönetimini kolaylaştırır. Bu sistem, Metin2 Development (metin2dev) dünyasında önemli bir yer tutmaktadır.


Changing Sex or Skill Without Relogging in Metin2

In Metin2 private servers, developers aim to provide more customization and flexibility for players. Some systems allow players to change their character's gender or skills without having to log out and back in. These systems enhance user experience by enabling easier character customization.

Why Are Gender and Skill Change Systems Needed?
In private Metin2 servers, players may regret their initial gender or skill choices after creating their characters. Normally, such changes require deleting the character or relogging. However, in advanced server builds, these modifications can be done without reconnecting, which offers great advantages.

Development and Coding Steps
To implement this system, you must work on a C++ based Game Server. Modifications are required on the character data structure. Specifically, the CHARACTER_MANAGER::SaveCharacter function can be used to update gender or skill data.

User Interaction via Python Interface
Python GUI interfaces allow players to easily perform these actions. Buttons and menus can be designed in UIscript files, letting players switch gender or skills anytime. These actions are typically sent to the server via packet_handler.

Security and Data Validation
Security is paramount during any data modification. The player’s items, level, and other stats should be validated to prevent cheating. These checks can be implemented via the DB Core.

Server-Side Modifications
During gender changes, the gender variable in the CHARACTER struct is updated. For skill changes, existing skills can be removed and new ones assigned through the SKILL_MANAGER class. During these operations, both AUTH and GAME servers must remain synchronized.

Popularity in Private Servers
Customization features like these are increasingly popular in Metin2 private servers. Especially in PvP-focused servers, players benefit from quickly switching skill sets for different strategies. This increases player loyalty and improves overall server quality.

Conclusion
The no-relog gender or skill change system is a user-friendly feature in Metin2 private servers. When implemented correctly, it boosts player satisfaction and simplifies server management. It holds significant importance in the Metin2 Development (metin2dev) world.
 

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

Benzer konular

Geri
Üst Alt