MOD ŞEREFİNE İsim değiştirme [C++]

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
ARKADAŞLAR SELAMLAR MOD ŞEREFİNE SİZLERE GÜZEL BİR SİSTEM İLE GELDİM GÖRSEL VE ŞIKLIK KATACAKTIR
İYİ KULLANMALAR QUEST DEĞİLDİR SRC TARAFLI






202640_042a7955caaf9d33b9b3c5a6031cf2c3.jpg

MOD ŞEREFİNE İsim Değiştirme Sistemi - C++ ile Uygulama

Metin2 özel sunucularında kullanıcıların karakterlerine modifikasyon yapmaları için birçok sistem geliştirilmektedir. Bu sistemlerden birisi de MOD ŞEREFİNE İsim Değiştirme sistemidir. Bu modül sayesinde oyuncular, belirli bir maliyet karşılığında karakter isimlerini değiştirebilirler. Bu işlem genellikle C++ tabanlı sunucu tarafında gerçekleştirilir. Bu yazıda, C++ dilinde nasıl bir isim değiştirme sistemi kurulacağını adım adım ele alacağız.

İsim Değiştirme Sisteminin Temel Yapısı

İsim değiştirme sistemi, genellikle game server üzerinde çalışır. Oyuncu tarafından istenen isim değişikliği talebi, auth-server veya doğrudan game-server üzerinden veritabanında güncellenir. Bu süreçte dikkat edilmesi gereken bazı önemli hususlar vardır:

- Yeni ismin mevcut isimlerle çakışmaması gerekir.
- Karakter ismi değişikliği sırasında belirli maliyetler (gold, item vb.) alınabilir.
- Sunucu tarafında isim geçerlilik kontrolleri yapılmalıdır.

Sunucu Tarafında C++ ile Geliştirme

İsim değiştirme sistemi, C++ ile yazılmış bir server src dosyasında geliştirilir. Bu sistemde genellikle bir komut veya GUI üzerinden kullanıcıdan yeni isim alınır. Ardından bu isim, sunucu tarafında doğrulanır ve veritabanına yazılır. Örnek olarak bir fonksiyon şu şekilde olabilir:

Kod:
void ChangeCharacterName(LPCHARACTER ch, const char* newName) { if (IsNameValid(newName) && !IsNameInUse(newName)) { // Veritabanında isim güncelleme işlemi DBManager::instance().UpdateCharacterName(ch->GetPlayerID(), newName); ch->SetName(newName); } else { ch->ChatPacket(CHAT_TYPE_INFO, 'Gecersiz isim veya zaten kullaniliyor.'); } }


İsim Geçerlilik Kontrolü

Oyuncudan alınan yeni isim, bazı kurallara göre kontrol edilmelidir. Örneğin:

- Boşluk içeremez veya sadece boşluklardan oluşamaz.
- Belirli sembolleri veya özel karakterleri içermemelidir.
- Minimum ve maksimum karakter uzunluğunu karşılamalıdır.

Veritabanı Entegrasyonu

İsim değiştirme işleminin kalıcı olması için db core üzerinde uygun tabloya erişim sağlanmalıdır. Genellikle karakter bilgilerinin tutulduğu tabloda yer alan 'name' alanı güncellenir. Bu işlem sırasında güvenlik önlemleri alınmalı ve SQL injection gibi saldırılara karşı koruma sağlanmalıdır.

Sunucu Taraflı İstemci Entegrasyonu

Yeni isim değiştirme sistemi, client src tarafında da desteklenmelidir. Bu, genellikle bir GUI arayüzü ile yapılır. Oyuncu arayüzden isim değiştirme seçeneğini seçer, yeni ismini girer ve işlem başlatılır. Bu işlemler genellikle uiscript veya benzeri arayüz yapıları ile entegre edilir.

Sonuç

MOD ŞEREFİNE isim değiştirme sistemi, Metin2 özel sunucularında kullanıcı dostu bir özellik sunar. C++ tabanlı sunucu tarafında doğru bir şekilde entegre edildiğinde, kullanıcılar kolayca isim değişimleri yapabilirler. Bu modülün geliştirilmesi sırasında hem güvenlik hem de kullanıcı deneyimi göz önünde bulundurulmalıdır.


Honor MOD Name Change System - Implementation with C++

Many systems are developed for users to modify their characters in Metin2 private servers. One of these systems is the Honor MOD Name Change system. With this module, players can change their character names by paying a certain cost. This process is usually performed on the server-side using C++. In this article, we will examine how to build a name change system in C++ step by step.

Basic Structure of Name Change System

The name change system typically runs on the game server. The player's request to change the name is updated in the database either through the auth-server or directly on the game server. Some important points to consider during this process include:

- The new name must not conflict with existing names.
- Certain costs (gold, items, etc.) may be charged during the character name change.
- Name validity checks must be performed on the server side.

Development on Server-Side with C++

The name change system is developed within a C++ based server src file. Typically, a command or GUI receives the new name from the user. Then, the name is validated on the server and written to the database. An example function might look like this:

Kod:
void ChangeCharacterName(LPCHARACTER ch, const char* newName) { if (IsNameValid(newName) && !IsNameInUse(newName)) { // Update name in database DBManager::instance().UpdateCharacterName(ch->GetPlayerID(), newName); ch->SetName(newName); } else { ch->ChatPacket(CHAT_TYPE_INFO, 'Invalid name or already in use.'); } }


Name Validity Checks

The new name provided by the player must be validated according to certain rules. For example:

- It cannot contain spaces or consist only of spaces.
- It should not include specific symbols or special characters.
- Must meet minimum and maximum length requirements.

Database Integration

To make the name change permanent, access to the appropriate table in the db core must be ensured. Usually, the 'name' field in the table storing character information is updated. Security measures must be taken during this process, and protection against attacks such as SQL injection should be implemented.

Client-Side Integration

The new name change system must also be supported on the client src side. This is usually done via a GUI interface. The player selects the name change option from the UI, enters the new name, and initiates the process. These operations are typically integrated using uiscript or similar UI structures.

Conclusion

The Honor MOD name change system offers a user-friendly feature in Metin2 private servers. When properly integrated on the C++ based server-side, users can easily change their names. During the development of this module, both security and user experience should be considered.
 

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

Geri
Üst Alt