[C++] 100 Slot Ticaret Penceresi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
1657983442739-png.81675
[/CENTER]




Metin2 gibi MMORPG oyunlarında, oyuncuların eşyalarını alıp satması veya takas yapabilmesi için geliştirilen özel sistemler vardır. Bu sistemlerden birisi de 100 Slot Ticaret Penceresi'dir. Bu pencere, standart 45 slotlu ticaret sistemini genişleterek daha fazla eşya transferine olanak tanır. Bu yazıda, C++ dilinde yazılmış 100 slotlu bir ticaret penceresi nasıl geliştirilir, hangi dosyalar üzerinde değişiklikler yapılır, hangi kod parçaları önemlidir gibi konulara değineceğiz.

Neden 100 Slot?
Orijinal Metin2 sunucularda standart ticaret penceresi 45 slot içerir. Ancak bazı özel sunucular (özellikle PvP odaklı olanlar), oyuncuların daha büyük miktarlarda eşya taşımalarına ve ticaret yapmalarına olanak tanıyan gelişmiş sistemler kullanmak ister. Bu nedenle 100 slotlu bir ticaret penceresi, hem oyuncu deneyimini artırır hem de sunucu sahiplerine daha fazla özelleştirme imkanı sunar.

Geliştirme Ortamı
Sistem C++ tabanlıdır. Sunucu tarafında game ve auth dosyaları üzerinde çalışılır. Bu sistem, Martysama veya benzeri Metin2 kaynak kodları üzerinde geliştirilebilir. Geliştirme sırasında client tarafında da bazı değişiklikler yapılması gerekir. Özellikle uiscript ve py dosyalarında GUI düzenlemeleri yapılmalıdır.

Sunucu Tarafı Kodlama
Game sunucusunda, exchange.cpp ve exchange.h dosyalarında değişiklikler yapılır. Burada slot sayısı sabit olarak tanımlanmıştır. Örneğin:

Kod:
const int EXCHANGE_ITEM_MAX_NUM = 45;


Bu değeri 100 olarak değiştirmek yeterli olmayabilir. Çünkü bu işlem sadece sunucu tarafında değil, istemci ile olan iletişimde de değişiklik gerektirir. Packet yapıları, veri gönderme ve alma işlemleri de bu değişikliğe göre yeniden düzenlenmelidir.

Client Tarafı Uygulama
Client tarafında uiscript/ExchangeWindow.py gibi dosyalarda grafiksel arayüz tanımlanır. Burada slot sayısı sabit olarak ayarlanmıştır. Bu dosya içinde bulunan window_size, slot_list gibi tanımlamalar değiştirilmelidir. Aynı zamanda Python tarafında root klasöründeki dosyalar da eşlik eden yapıya göre güncellenmelidir.

100 slot sayısına göre grid boyutları ayarlanmalı ve kullanıcı arayüzü buna göre yeniden konumlandırılmalıdır. Bu işlem sırasında PyGUI veya benzeri arayüz geliştirme araçları kullanılabilir.

Test ve Derleme
Değişiklikler yapıldıktan sonra sunucu derlenir ve test edilir. Herhangi bir hata oluşmaması için hem game hem de client tarafının uyumlu olması gerekir. Aksi takdirde, oyuncular arasında bağlantı kopuklukları veya veri tutarsızlıkları oluşabilir.

Sonuç
100 slotlu ticaret penceresi, Metin2 özel sunucularında kullanıcılara daha fazla esneklik sunar. Oyuncular daha fazla eşyayı aynı anda takas edebilir. Bu da özellikle PvP sunucularında eşya satışları ve donanım paylaşımı için büyük kolaylık sağlar. Sistemin doğru çalışması için C++ bilgisi ve Metin2 kaynak kodlarına aşinalık oldukça önemlidir.


Metin2 and similar MMORPG games have special systems developed for players to buy, sell or trade items. One of these systems is the 100 Slot Trade Window. This window expands the standard 45-slot trading system and allows more item transfers. In this article, we will discuss how to develop a 100-slot trade window in C++, which files need modifications, and which code parts are important.

Why 100 Slots?
Standard trade windows in original Metin2 servers contain 45 slots. However, some private servers (especially PvP-oriented ones) want to allow players to carry and trade larger amounts of items, so they use advanced systems. Therefore, a 100-slot trade window enhances player experience and offers more customization options to server owners.

Development Environment
The system is based on C++. Modifications are made in game and auth files on the server side. This system can be developed using Metin2 source codes like Martysama. Some changes are also required on the client side, especially in GUI-related files such as uiscript and py.

Server-Side Coding
In the game server, modifications are done in exchange.cpp and exchange.h. Here, the slot count is defined as a constant. For example:

Kod:
const int EXCHANGE_ITEM_MAX_NUM = 45;


Simply changing this value to 100 may not be sufficient because this change affects communication between client and server. Packet structures and data sending/receiving operations must also be adjusted accordingly.

Client-Side Implementation
On the client side, the graphical interface is defined in files such as uiscript/ExchangeWindow.py. The slot count is set as fixed here. Definitions like window_size and slot_list must be changed. Additionally, files in the root folder on the Python side should also be updated to match the changes.

Grid sizes should be adjusted according to the 100 slots number and the user interface should be repositioned accordingly. During this process, UI tools such as PyGUI can be used.

Testing and Compilation
After modifications, the server must be compiled and tested. Both game and client sides must be compatible to avoid any errors. Otherwise, disconnections or data inconsistencies might occur between players.

Conclusion
A 100-slot trade window provides more flexibility to users in Metin2 private servers. Players can trade more items at once, which significantly helps item sales and equipment sharing, especially on PvP servers. Knowledge of C++ and familiarity with Metin2 source codes are essential for the system to function correctly.​
 

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

Benzer konular

Geri
Üst Alt