Ofline Shop ekranı açıkken hızlı ch kullanmayı Fixleme 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 34

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar,

Son zamanlarda üretilen sistemlerin çoğu trnin kontrol amacıyla koyduğu çoğu şeyi eklemeye aciz olarak çıkarttığımızdan bir sürü bugla karşılaştığımız oluyor. Kendi Sunucularımda ofline shop kullanmadığım için pek bu bugu bilmesemde tahmin etmek çok kolay. Hızlı ch kullanarak item kopyalatma bugu çıkartmışlar ofline shop kullanan arkadaşlar varsa lütfen hızlı ch sistemlerine şunu eklesinler.

buradaki konuya göre kodları paylaşıyorum bilginiz olsun. Farklı sistem kullanan varsa kendine göre ayarlasın.

Char.cpp içinde aşağıdaki kodu aratıyoruz
Kod:
void CHARACTER::ChannelSwitch(int iNewChannel)[/FONT]
Bu fonksiyonun içindeki aşağıdaki kodu bulup üzerine bir boşluk oluşturuyoruz
Kod:
if(lMapIndex >= 10000)
Bu kodu o boşluğa yapıştırıyoruz.
Kod:
if (IsHack()) return;


Bu fonksionun asıl amacı ticaret depo vs gibi bitiminde veya market tezgahını açtığınız herşeyi ayarladınız ve kurduğunuzda size uyarı verdirtip ışınlanmamasını sağlayacaktır. Deneyen arkadaşlar görsel paylaşırsa sevinirim.
Ben normal shop ekranında denedim

Kanıt :
Ofline Shop Ekranı Açıkken Hızlı Ch Kullanmayı Fixleme (C++)

Metin2 özel sunucularında oyun deneyimini artırmak isteyen geliştiriciler sürekli olarak farklı sistemler geliştirmekte ve mevcut sistemlerde iyileştirmeler yapmaktadır. Bu sistemlerden birisi de Offline Shop sistemidir. Ancak bu sistem bazı durumlarda oyuncunun normal游戏操作larını etkileyebilir. Özellikle Offline Shop ekranı açıkken hızlı ch (kanal değiştirme) kullanılamaması gibi bir problemle karşılaşabilirsiniz. Bu durum oyuncu memnuniyetini düşürür ve sunucunuzdaki kullanıcı deneyimini olumsuz etkileyebilir.

Problemin Kaynağı Nedir?
Offline Shop sistemi genellikle client-side bir arayüz üzerinden çalışır. Bu arayüz açıldığında oyun içi diğer menülerin kilitlenmesi amaçlanır. Bu nedenle bazı tuş kombinasyonları ya da menü atlamaları engellenir. Bunlardan birisi de kanal değiştirme (ch) tuşudur. Bu kilitlenme, güvenlik amaçlıdır ancak aynı zamanda kullanıcı dostu değildir.

Fixleme Süreci
Bu hatayı düzeltmek için hem client hem de server tarafında değişiklikler yapılması gerekebilir. İlk adım olarak, client tarafında uiscript dosyasındaki offline shop penceresinin kontrol mekanizmasını değiştirmek gerekir. Burada, pencerenin açık olduğu sürece diğer tuşların kullanımını engelleyen fonksiyonu devre dışı bırakmak veya özel bir durum tanımlamak mümkündür.

Client Side Kod Örneği:
Öncelikle, uiscript dosyasında offline shop penceresini tanımlayan sınıfı bulmalısınız. Bu sınıf genellikle wndMgr ile ilişkilidir. Pencere açıldığında aktif olan tuş engelleme fonksiyonunu aşağıdaki gibi değiştirebilirsiniz:

def OpenOfflineShop(self):
self.__LoadWindow()
self.wndBoard.Show()
if not self.IsChannelChangeAllowed():
self.DisableKeyInput(False) # Kanal değiştirme tuşuna izin ver
else:
self.DisableKeyInput(True)


Server Side Kod Örneği (C++):
Sunucu tarafında, game/src/char/char.cpp dosyasında kanal değiştirme komutunun işlendiği fonksiyonu kontrol etmelisiniz. Burada, oyuncunun offline shop modunda olup olmadığını kontrol eden bir if bloğu eklemek gerekebilir:

bool CHARACTER::CanChangeChannel() const
{
if (IsOpenOfflineShop()) return true; // Kanal değiştirme izni ver
return false;
}


Test ve Uygulama
Yukarıdaki değişiklikleri yaptıktan sonra, client ve server üzerinde test yapmanız gerekir. Offline shop ekranı açıkken hızlı ch tuşuna bastığınızda kanal değiştirme işleminin gerçekleşip gerçekleşmediğini kontrol edin. Eğer başarılı olduysa, kullanıcılar artık mağaza ekranı açıkken bile kanal değiştirebilirler.

Sonuç
Metin2 özel sunucularında kullanıcı deneyimi, sunucu sahipleri tarafından en çok önem verilen konulardan biridir. Offline Shop ekranı açıkken hızlı ch kullanılamaması gibi küçük ama önemli sorunlar, oyuncuların sunucudan uzaklaşmasına neden olabilir. Bu tip hataların fixlenmesi, kullanıcı sadakatinin artırılmasında büyük rol oynar. C++ bilgisiyle bu tür sistemsel hataları çözmek, Metin2 geliştiricileri için önemli bir beceridir.


Fixing Fast Channel Change While Offline Shop Window Is Open (C++)

In Metin2 private servers, developers continuously work on creating different systems and improving existing ones to enhance the gaming experience. One such system is the Offline Shop. However, this system can sometimes interfere with the player's normal gameplay. For instance, you might encounter issues where fast channel changing (ch) does not work while the Offline Shop window is open. This can reduce player satisfaction and negatively affect user experience on your server.

What Causes This Issue?
The Offline Shop system typically operates through a client-side interface. When this interface is opened, other in-game menus are often locked. Therefore, certain key combinations or menu shortcuts, such as channel switching (ch), are blocked. This locking mechanism is intended for security purposes but may not be user-friendly.

Fix Process
To fix this issue, modifications may need to be made on both the client and server sides. First, you should modify the control mechanism of the offline shop window within the uiscript file on the client side. You can disable the function that blocks other keys while the window is open, or define a special case for specific keys.

Client Side Code Example:
First, locate the class defining the offline shop window in the uiscript file. This class is usually associated with wndMgr. You can modify the key-blocking function so that it allows channel switching when the shop window is active:

def OpenOfflineShop(self):
self.__LoadWindow()
self.wndBoard.Show()
if not self.IsChannelChangeAllowed():
self.DisableKeyInput(False) # Allow channel change key
else:
self.DisableKeyInput(True)


Server Side Code Example (C++):
On the server side, check the function handling the channel change command in the file game/src/char/char.cpp. Add an if block to check whether the player is in offline shop mode:

bool CHARACTER::CanChangeChannel() const
{
if (IsOpenOfflineShop()) return true; // Allow channel change
return false;
}


Testing and Application
After making these changes, test them on both the client and server. Check whether the fast channel change works while the Offline Shop window is open. If successful, users will be able to switch channels even while the shop window is active.

Conclusion
User experience is one of the most important aspects valued by private server owners in Metin2. Issues like inability to use fast channel change while the Offline Shop screen is open can cause players to leave the server. Fixing such minor yet impactful bugs plays a significant role in increasing user retention. Resolving such systemic issues with C++ knowledge is an essential skill for Metin2 developers.
 

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

Benzer konular

Geri
Üst Alt