[C++/Python] Official Soul(Ruh) Sistemi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Sistem Owsap Tarafından Yazılmıştır.
Ruh Efekleri Karakter'de Biraz Yükseltildi ve Bineğe/At'a Bindiğinizde Pozisyon Olarak Tekrar Official Gibi Yapıldı.
Efekt Pozisyon Güncellemesi İçin Sistem Mali Tarafından Yazıldı.





145010_c3e6a6dc9dd8c8d758182ccc33fe49dc.png

Metin2 özel sunucularında Soul (Ruh) Sistemi, oyuncuların karakterlerine özel güçler kazandırmalarını sağlayan yenilikçi ve etkileyici bir özelliktir. Bu sistem, hem PvP savaşlarını daha stratejik hale getirir hem de karakter gelişimine derinlik katar. Bu makalede, C++ ve Python dilleriyle yazılmış resmi Soul Sistemi yapısını detaylıca inceleyeceğiz.

Soul Sistemi, genellikle Metin2 oyununda karakterlerin belirli görevleri tamamlayarak ruhlar toplamasına dayanır. Bu ruhlar, karakterin攻击力 ve savunma gibi özelliklerini artıran pasif bonuslar sağlar. Ayrıca bazı soul tipleri aktif olarak kullanılabilen yetenekler sunabilir. Sistem, hem game server hem de client tarafında değişiklikler gerektirir.

C++ Tarafında Uygulama

Game server tarafında soul sistemi, genellikle char_manager.cpp, char.cpp ve packet.h gibi dosyalarda tanımlanır. Oyuncu bir soul topladığında, bu bilgi DB’ye yazılır ve karaktere özel olarak saklanır. Bu işlem sırasında soul verisi player_table ya da benzeri bir yapıya entegre edilir.

Soul verileri, Python tabanlı client tarafında uiscript dosyalarında arayüz olarak yansıtılır. Örneğin, SoulWindow.py adlı bir dosya, oyuncunun sahip olduğu soul listesini ve bu soul'ların bonuslarını göstermek için tasarlanabilir. Bu pencere, py root klasöründe tanımlanır ve root locale üzerinden dil desteği alır.

Python GUI kısmında, soul sistemine özel bir arayüz tasarımı yapılır. Kullanıcı dostu bir UI ile oyuncular soul’ları aktif edebilir, pasif bonusları görebilir ve farklı soul setleri arasında geçiş yapabilir. UIScript dosyasında soul slotları, iconlar ve bonus açıklamaları tanımlanır. Bu dosya, pack ile client’e entegre edilir.

Soul Türleri ve Özellikleri

Her soul türü, farklı bonuslar ve yetenekler sunabilir. Örneğin:
- Attack Soul: Saldırı gücünü artırır.
- Defense Soul: Fiziksel ve büyü direncini artırır.
- Elemental Soul: Belirli elementlere karşı dayanıklılık veya bonus verir.
- Active Soul: Oyuncu tarafından kullanılabilen bir yetenek içerir.

Bu soul türleri, C++ tarafında enum olarak tanımlanabilir ve her biri için farklı bonus fonksiyonları yazılabilir. Örneğin:
Kod:
enum eSoulType{[BR][/BR]    SOUL_TYPE_ATTACK = 1,[BR][/BR]    SOUL_TYPE_DEFENSE = 2,[BR][/BR]    SOUL_TYPE_ELEMENTAL = 3,[BR][/BR]    SOUL_TYPE_ACTIVE = 4[BR][/BR]};

Soul Sistemi için DB Yapısı

Veritabanında soul verileri genellikle player_soul adında bir tablo ile yönetilir. Bu tablo şu şekilde tanımlanabilir:
Kod:
CREATE TABLE player_soul ([BR][/BR]    id INT AUTO_INCREMENT PRIMARY KEY,[BR][/BR]    player_id INT NOT NULL,[BR][/BR]    soul_type TINYINT NOT NULL,[BR][/BR]    level TINYINT DEFAULT 1,[BR][/BR]    equipped BOOLEAN DEFAULT FALSE[BR][/BR]);

Bu tabloyla her oyuncunun soul envanteri ve ekipman durumu veritabanında saklanabilir.

Sistem Entegrasyonu

Soul sistemi, martysama gibi bilinen Metin2 development kaynak kodları üzerinde geliştirilebilir. Channel sunucularında da çalışması için multi-server uyumluluğu sağlanmalıdır. Aynı zamanda auth server ile entegre çalışarak, karakterin soul envanteri doğru şekilde yüklenmelidir.

Oyuncu bir soul kullanmak istediğinde, client tarafında bir packet gönderilir ve game server tarafından doğrulanır. Gerekli kontroller yapıldıktan sonra soul aktivasyonu gerçekleşir.

Sonuç

Soul Sistemi, Metin2 özel sunucularında oyuncu deneyimini ciddi anlamda artıran bir özelliktir. Hem C++ hem de Python tarafında doğru entegre edildiğinde, güçlü bir karakter gelişim mekaniği ortaya çıkar. Bu sistem, Metin2Dev süreçlerinde sıklıkla tercih edilen ve oyuncuların ilgisini çeken bir sistemdir.


Metin2 private servers, the Soul System is an innovative and impressive feature that allows players to gain special powers for their characters. This system makes PvP battles more strategic and adds depth to character progression. In this article, we will examine in detail the structure of the official Soul System written in C++ and Python.

The Soul System typically revolves around characters collecting souls by completing specific quests in the Metin2 game. These souls provide passive bonuses such as increased attack and defense stats. Additionally, some soul types offer active abilities that can be used by the player. The system requires modifications on both the game server and client sides.

Implementation on the C++ Side

On the game server side, the soul system is usually defined in files like char_manager.cpp, char.cpp, and packet.h. When a player collects a soul, this information is stored in the DB specifically for that character. During this process, soul data is integrated into structures like player_table.

Soul data is reflected in the Python-based client through uiscript files. For example, a file named SoulWindow.py can be designed to display the list of souls owned by the player and their bonuses. This window is defined in the py root folder and receives language support via root locale.

In the Python GUI section, a custom interface is created for the soul system. With a user-friendly UI, players can activate souls, view passive bonuses, and switch between different soul sets. Soul slots, icons, and bonus descriptions are defined in the UIScript file. This file is integrated into the client via pack.

Types and Features of Souls

Each soul type offers different bonuses and abilities. For example:
- Attack Soul: Increases attack power.
- Defense Soul: Enhances physical and magical resistance.
- Elemental Soul: Provides resistance or bonuses against specific elements.
- Active Soul: Contains an ability that can be used by the player.

These soul types can be defined as enums in C++, and separate bonus functions can be written for each. For example:
Kod:
enum eSoulType{[BR][/BR]    SOUL_TYPE_ATTACK = 1,[BR][/BR]    SOUL_TYPE_DEFENSE = 2,[BR][/BR]    SOUL_TYPE_ELEMENTAL = 3,[BR][/BR]    SOUL_TYPE_ACTIVE = 4[BR][/BR]};

Database Structure for the Soul System

Soul data is generally managed with a table named player_soul in the database. This table can be defined as follows:
Kod:
CREATE TABLE player_soul ([BR][/BR]    id INT AUTO_INCREMENT PRIMARY KEY,[BR][/BR]    player_id INT NOT NULL,[BR][/BR]    soul_type TINYINT NOT NULL,[BR][/BR]    level TINYINT DEFAULT 1,[BR][/BR]    equipped BOOLEAN DEFAULT FALSE[BR][/BR]);

With this table, every player's soul inventory and equipment status can be saved in the database.

System Integration

The Soul System can be developed over known Metin2 development source codes like martysama. It must be made compatible with multi-server setups to work properly on channel servers. Furthermore, it should integrate with the auth server so that the character’s soul inventory loads correctly.

When a player wants to use a soul, a packet is sent from the client side and validated by the game server. After necessary checks, the soul activation occurs.

Conclusion

The Soul System is a feature that significantly enhances the player experience in Metin2 private servers. When properly integrated on both C++ and Python sides, it creates a powerful character development mechanism. This system is frequently preferred during Metin2Dev processes and attracts players' interest.
 

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

Benzer konular

Geri
Üst Alt