[C++] Oyuna Başlangıç - Şehirden başla Koordinat Düzenleme

  • 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

start_position.cpp


X4Bry7.png

[C++] Oyuna Başlangıç - Şehirden Başla Koordinat Düzenleme​


Metin2 özel sunucularında oyun başlatma süreci oldukça kritik bir konudur. Bu süreçte oyuncuların nerede doğacağını belirlemek, oyun deneyimini doğrudan etkiler. Bu yazıda, [C++] dilinde yazılmış bir özel sunucu üzerinde şehirden başlama sistemini nasıl özelleştireceğinizi ve koordinat düzenlemelerini nasıl yapacağınızı detaylı olarak ele alacağız.

Başlangıç Sistemi Nedir?

Oyuna başlama sistemi, oyuncuların ilk kez oyuna girdiğinde ya da karakter silindiğinde hangi konumda doğacağını belirler. Genellikle bu konumlar belirli şehirlerde olur. Metin2 özel sunucularında bu sistem, genellikle game server tarafında düzenlenir. Özellikle [C++] tabanlı sunucularda, bu ayarlar kaynak kod seviyesinde yapılandırılır.

Koordinat Sistemi ve Harita Yapısı

Metin2 oyununda koordinatlar X ve Y eksenleriyle tanımlanır. Her haritanın kendine ait koordinat sistemleri vardır. Örneğin, Devias, Sindo, Chunjo gibi şehirlerin sabit koordinatları vardır. Bu koordinatlar genellikle client tarafında map_info.xml dosyasında tanımlanmıştır. Ancak, oyuncuların doğacağı koordinatlar server tarafında ayarlanır. Bu ayarlar genellikle start_position.txt veya benzeri bir dosya ile yönetilir.

C++ Kaynak Kodunda Başlangıç Ayarları

Sunucu tarafında başlangıç koordinatlarını değiştirmek için game server src dosyalarında değişiklik yapılması gerekir. Genellikle bu dosyalar src/server/game/src/char_manager.cpp veya src/server/game/src/char.cpp gibi yerlerde bulunur. Burada tanımlanan START_POS_X ve START_POS_Y gibi değerler ile karakterlerin doğacağı konum belirlenir. Bu değerler doğrudan [C++] kodlarında tanımlanabilir veya harici dosyalardan okunabilir.

Koordinatları Dinamik Hale Getirmek

Gelişmiş sunucularda, oyuncunun son bulunduğu konuma göre başlangıç yerini değiştirebilirsiniz. Bu işlem için karakterin son konumunu veritabanında saklamak gerekir. DB core ve game core arasındaki veri alışverişini doğru şekilde yapılandırmak önemlidir. Bu sayede oyuncu şehirde ölse bile, aynı şehirde doğabilir veya belirli kurallara göre farklı şehirlerde doğabilir.

Python ve C++ Entegrasyonu

Bazı durumlarda, Python tabanlı sistemlerle C++ arasında koordinat verilerini aktarmanız gerekebilir. Özellikle py root ve uiscript dosyalarında GUI üzerinden koordinat ayarları yapıldığında, bu değerler C++ tarafına aktarılmalıdır. Bu entegrasyon için JSON benzeri yapılar veya özel protokoller kullanılabilir. Ancak dikkat edilmesi gereken önemli bir nokta, JSON formatını bozabilecek karakterlerin kullanılmamasıdır.

Martysama ve Metin2 Development Araçları

Metin2 özel sunucu geliştirme sürecinde, martysama ve diğer metin2dev araçları büyük kolaylıklar sağlar. Bu araçlar sayesinde hem client src hem de server src üzerinde çalışmak daha kolay hale gelir. Ayrıca, pack dosyaları ile kaynak kodların derlenmesi ve test edilmesi hızlı bir şekilde yapılabilir.

Sonuç

Oyuna başlama sistemi, Metin2 özel sunucularında kullanıcı deneyimini doğrudan etkileyebilecek kritik bir özelliktir. Doğru koordinat ayarları ile oyuncuların daha keyifli bir başlangıç yaşaması sağlanabilir. [C++] dilinde yazılmış sunucular üzerinde yapılan bu tür değişiklikler, profesyonel düzeyde source edit becerisi gerektirir. Ancak doğru planlama ve testlerle bu sistemler kolayca özelleştirilebilir.


[C++] Game Start - Starting From City Coordinate Editing​


The process of starting the game in Metin2 private servers is quite critical. Determining where players spawn during their first login or after character deletion directly impacts the gaming experience. In this article, we will detail how to customize the start-from-city system and coordinate editing on a private server written in [C++].

What Is The Start System?

The game start system determines where players appear when they first log into the game or after a character deletion. These locations are usually specific cities. On Metin2 private servers, this system is generally configured on the game server side. Particularly on [C++] based servers, these settings are configured at the source code level.

Coordinate System and Map Structure

In Metin2, coordinates are defined by X and Y axes. Each map has its own coordinate system. For instance, cities like Devias, Sindo, and Chunjo have fixed coordinates. These coordinates are typically defined in the map_info.xml file on the client side. However, the coordinates where players spawn are set on the server side. These are usually managed via files such as start_position.txt.

Starting Settings in C++ Source Code

To change the starting coordinates on the server side, modifications must be made in the game server src files. These files are often located in src/server/game/src/char_manager.cpp or src/server/game/src/char.cpp. Here, values like START_POS_X and START_POS_Y determine where characters appear. These values can be defined directly in the [C++] code or loaded from external files.

Making Coordinates Dynamic

On advanced servers, you may want to adjust the spawn location based on the player's last known position. This requires storing the character's last position in the database. Correctly configuring data exchange between the DB core and game core is crucial. With this, even if a player dies in a city, they can respawn in the same city or in other cities according to specific rules.

Python and C++ Integration

In some cases, you might need to transfer coordinate data between Python based systems and C++. When coordinate adjustments are made via GUI through py root and uiscript files, these values must be transferred to the C++ side. For this integration, structures similar to JSON or custom protocols can be used. However, care must be taken not to use characters that could corrupt the JSON format.

Martysama and Metin2 Development Tools

During the Metin2 private server development process, tools like martysama and other metin2dev utilities provide significant ease. These tools make working on both client src and server src more manageable. Additionally, with pack files, compiling and testing source codes can be done quickly.

Conclusion

The game start system is a critical feature in Metin2 private servers that directly affects user experience. Proper coordinate settings allow players to enjoy a more pleasant start. Modifications on [C++] based servers require professional-level source edit skills. However, with proper planning and testing, these systems can be customized easily.
 

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

Benzer konular

Geri
Üst Alt