Öncelikle Selamın Aleyküm ,
Ben Tıslayan Piton bu tısımı sizler için tıslıyorum(bu konuyu sizler için paylaşıyorum)
Bunu baya kişi demeyelimde birkaç kişi istiyordu.
Bende paylaşayım dedim nasıl görünüm kazancak dersenizde vereceğim dosya'nın içerisinde mevcut zaten oradan da bakabilirsiniz.
Fakat başlık yanlış anlaşılmaya sebebiyet versin istemiyorum bu yeni depo ve nesne market tasarımı değildir.
Depoya tıklarken açılan ve Depo Açılsın mı ? Veya ItemShop açılsın mı ? tarzında birşeydir.
uiinventory.py Açılır
ve
Aratılır :
Üstüne eklenir
Son olarak
interfacemodule.py Açılır :
class Interface(object): <<== Aratılır
ve Üstüne Eklenir : Nesnedepomenu = 0
Buradan resmini görebilirsiniz depo aç ve itemshop aç'ın :
BUTON PNG'LER :
Eğer serveriniz png jpg türü dosyalara izin vermiyorsa şunu uygulayın
Client src:
../ScriptLib/Resource.cpp:
Açılır
m_resManager.RegisterResourceNewFunctionPointer("tga", NewImage);
Aratılır
Altına Eklenir :
m_resManager.RegisterResourceNewFunctionPointer("png", NewImage);
m_resManager.RegisterResourceNewFunctionPointer("jpg", NewImage);
VT :
Kanıt için
CPP Taraflı Kodları Vermedim çünkü ekleyenler vardır diye düşünmüştüm ama bazı bilmeyen kişilerde olduğunu hesaba katıyorum ve
anlatımı veriyorum :
Ben Tıslayan Piton bu tısımı sizler için tıslıyorum(bu konuyu sizler için paylaşıyorum)
Bunu baya kişi demeyelimde birkaç kişi istiyordu.
Bende paylaşayım dedim nasıl görünüm kazancak dersenizde vereceğim dosya'nın içerisinde mevcut zaten oradan da bakabilirsiniz.
Fakat başlık yanlış anlaşılmaya sebebiyet versin istemiyorum bu yeni depo ve nesne market tasarımı değildir.
Depoya tıklarken açılan ve Depo Açılsın mı ? Veya ItemShop açılsın mı ? tarzında birşeydir.
uiinventory.py Açılır
ve
Aratılır :
Kod:
# DSSButton def ClickDSSButton(self): print "click_dss_button" self.interface.ToggleDragonSoulWindow()
Kod:
def ClickMallButton(self): import interfaceModule if 0==interfaceModule.Nesnedepomenu: interfaceModule.Nesnedepomenu = 1 self.tahta1 = ui.BoardWithTitleBar() self.tahta1.SetSize(355, 90) self.tahta1.SetCenterPosition() self.tahta1.AddFlag('float') self.tahta1.AddFlag('movable') self.tahta1.SetTitleName("Depo") self.tahta1.Show() self.itemshop1 = ui.Button() self.itemshop1.SetEvent(self._item_shop) self.itemshop1.SetParent(self.tahta1) self.itemshop1.SetPosition(185, 35) self.itemshop1.SetUpVisual("d:/ymir work/ui/DepoButton/NesneAc1.png") self.itemshop1.SetOverVisual("d:/ymir work/ui/DepoButton/NesneAc2.png") self.itemshop1.SetDownVisual("d:/ymir work/ui/DepoButton/NesneAc3.png") self.itemshop1.SetText(" ") self.itemshop1.Show() self.depo1 = ui.Button() self.depo1.SetEvent(self._depo_ac) self.depo1.SetParent(self.tahta1) self.depo1.SetPosition(20, 35) self.depo1.SetUpVisual("d:/ymir work/ui/DepoButton/DepoAc1.png") self.depo1.SetOverVisual("d:/ymir work/ui/DepoButton/DepoAc2.png") self.depo1.SetDownVisual("d:/ymir work/ui/DepoButton/DepoAc3.png") self.depo1.SetText(" ") self.depo1.Show() else: interfaceModule.Nesnedepomenu = 0 self.tahta1.Hide() self.itemshop1.Hide() self.depo1.Hide() def _item_shop(self): import interfaceModule interfaceModule.Nesnedepomenu = 0 self.tahta1.Hide() self.itemshop1.Hide() self.depo1.Hide() net.SendChatPacket("/click_mall") def _depo_ac(self): import interfaceModule interfaceModule.Nesnedepomenu = 0 self.tahta1.Hide() self.itemshop1.Hide() self.depo1.Hide() net.SendChatPacket("/click_safebox")
Son olarak
interfacemodule.py Açılır :
class Interface(object): <<== Aratılır
ve Üstüne Eklenir : Nesnedepomenu = 0
Buradan resmini görebilirsiniz depo aç ve itemshop aç'ın :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
BUTON PNG'LER :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Eğer serveriniz png jpg türü dosyalara izin vermiyorsa şunu uygulayın
Client src:
../ScriptLib/Resource.cpp:
Açılır
m_resManager.RegisterResourceNewFunctionPointer("tga", NewImage);
Aratılır
Altına Eklenir :
m_resManager.RegisterResourceNewFunctionPointer("png", NewImage);
m_resManager.RegisterResourceNewFunctionPointer("jpg", NewImage);
VT :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kanıt için
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
' e teşekkürler. CPP Taraflı Kodları Vermedim çünkü ekleyenler vardır diye düşünmüştüm ama bazı bilmeyen kişilerde olduğunu hesaba katıyorum ve
anlatımı veriyorum :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Yeni Depo ve ItemShop Butonu
Metin2 Lobby olarak kullanıcılarımızın oyun deneyimini artırmak amacıyla sürekli yenilikler geliştirmekteyiz. Bu doğrultuda, sunucularınızda daha fazla esneklik ve kullanıcı dostu bir arayüz sağlamak adına Yeni Depo ve ItemShop Butonu sistemi geliştirildi. Bu sistem sayesinde hem oyuncular daha kolay erişim sağlayacak hem de geliştiriciler özel sistem entegrasyonlarını daha verimli yönetebileceklerdir.
Depo Sisteminin Geliştirilmesi
Geleneksel Metin2 depo yapısı sınırlı sayıda slot sunar. Ancak özel sunucularda daha fazla esneklik istenmektedir. Yeni depo sistemiyle birlikte, oyuncuların eşya saklama kapasitesi artırılmış, aynı zamanda farklı depolar arasında geçiş imkanı da sunulmuştur. Bu sistem, C++ backend tarafında geliştirilmiş ve veritabanı (DB) ile entegre çalışacak şekilde tasarlanmıştır.
Depo butonuna basıldığında açılan pencere, kullanıcıya özel olarak tasarlanmış UI scriptleri ile oluşturulmuştur. Bu sayede hem görsel açıdan şık bir görünüm sağlanmış hem de işlevsellik artırılmıştır. Python GUI kullanılarak menü stilleri özelleştirilebilir hale getirilmiştir.
ItemShop Entegrasyonu
ItemShop butonu ise oyuncuların oyun içi satın alımlarını kolayca yapabilmesi için geliştirilmiştir. Bu buton sayesinde oyuncular doğrudan oyun içinden markete ulaşabilir, bonuslar, item paketleri veya özel ödüller satın alabilirler. Sistem, py root klasöründe barındırılan Python scriptleri ile kontrol edilmektedir.
ItemShop sistemi, auth ve game sunucuları arasında güvenli veri aktarımı sağlamaktadır. Paketleme işlemi sırasında özel komut dosyaları ile derlenerek sisteme entegre edilir. Bu sayede hem güvenlik sağlanır hem de sunucu performansı optimize edilir.
Teknik Detaylar
Sistem, C++ tabanlı sunucu kaynak kodları üzerinde geliştirilmiş olup, Martysama gibi tanınmış geliştiricilerin kullandığı yapıya uyumlu hale getirilmiştir. Client SRC tarafında gerekli değişiklikler yapılmış ve UI Script ile butonlar dinamik olarak çağrılır hale getirilmiştir.
Python GUI yardımıyla arayüz özelleştirmeleri kolayca yapılabilir. Py UI ile buton konumları, stilleri ve fonksiyonları değiştirilebilir. Bu sistem, hem geliştirici hem de kullanıcı açısından kolay kullanım sunmaktadır.
Avantajlar
Yeni Depo ve ItemShop Butonu sistemi ile birlikte:
- Oyuncu sadakati artar.
- Sunucu yönetiminde kolaylık sağlanır.
- Eşya ve depolama yönetimi daha verimlidir.
- Satın alma işlemleri hızlı ve güvenlidir.
- UI/UX kalitesi yükseltilir.
Tüm bu gelişmelerle birlikte, Metin2 sunucularınız daha profesyonel ve kullanıcı dostu hale gelir. Geliştirme sürecinde core, db core gibi temel bileşenler optimize edilmiş, sunucu performansı artırılmıştır.
New Depot and ItemShop Button
Metin2 Lobby continuously develops innovations to enhance our users experience. In this direction, we have developed the New Depot and ItemShop Button system to provide more flexibility and user-friendly interfaces on your servers. With this system, players will have easier access while developers will be able to manage custom system integrations more efficiently.
Development of the Depot System
The traditional Metin2 depot structure offers a limited number of slots. However, private servers often require more flexibility. The new depot system increases players storage capacity and allows switching between different depots. This system has been developed on the C++ backend and designed to work integrated with the database (DB).
When the depot button is clicked, the window is created using custom-designed UI scripts. Thus, both a visually appealing appearance and enhanced functionality are provided. Menu styles can be customized using Python GUI.
ItemShop Integration
The ItemShop button enables players to easily make in-game purchases. Through this button, players can directly access the marketplace from within the game and purchase bonuses, item packages, or special rewards. The system is controlled by Python scripts located in the py root folder.
The ItemShop system ensures secure data transfer between the auth and game servers. During packaging, custom command files are compiled and integrated into the system. This ensures both security and optimized server performance.
Technical Details
The system was developed on C++ based server source codes and made compatible with structures used by known developers such as Martysama. Necessary changes were made on the client SRC side and buttons are now called dynamically through UI Script.
Interface customizations can be easily done with Python GUI. Button positions, styles, and functions can be modified via Py UI. This system provides ease of use for both developers and users.
Advantages
With the New Depot and ItemShop Button system:
- Player loyalty increases.
- Server management becomes easier.
- Item and storage management become more efficient.
- Purchase processes are fast and secure.
- UI/UX quality is improved.
With all these developments, your Metin2 servers become more professional and user-friendly. During the development process, fundamental components such as core and db core have been optimized to increase server performance.
