Merhaba Turkmmo Ailesi
Sizdeki definelere göre yaparsanız daha sağlıklı olur defineler farklı olabilir
Yapamayan arkadaşlar için kendi uiPrivateShopBuilder.py Dosyamı Paylaşıyorum
İyi Kullanımlar...
Metin2 özel sunucularında kullanıcı dostu arayüzler ve gelişmiş sistemler, oyuncuların deneyimini ciddi anlamda artırır. Bu bağlamda, inventory slot marking yani envanter slot işaretleme sistemi, oyuncuların eşyalarını daha verimli yönetmelerini sağlar. Özellikle Python tabanlı uiscript ile yazılmış bu sistem, Great arayüzüne entegre edildiğinde hem estetik hem de işlevsel olarak çok güçlü bir çözüm sunar. Bu makalede, Metin2 özel sunucularında Python ile yazılmış inventory slot marking sisteminin Great arayüzüne nasıl uyarlanacağı detaylı olarak ele alınacaktır.
İnventory Slot Marking Nedir?
Envanter slot işaretleme sistemi, oyuncuların envanterindeki belirli eşyaları görsel olarak işaretlemesine olanak tanır. Bu sayede örneğin, bir oyuncu değerli eşyalarını veya PvP hazırlığı yaparken kullandığı silahları kolayca ayırt edebilir. İşaretlemeler genellikle simgelerle ya da renkli çerçevelerle yapılır. Bu sistem, Python ile yazılmış uiscript tabanlı arayüzlerde kolayca entegre edilebilir.
Great Arayüzü ve Python Entegrasyonu
Great arayüzü, Metin2 özel sunucularında yaygın olarak kullanılan modern ve şık bir arayüz sistemidir. Python desteklediği için, geliştiricilerin özelleştirme konusunda büyük esnekliği vardır. Inventory slot marking sistemi bu arayüze entegre edilirken, uiscript dosyalarında gerekli değişiklikler yapılarak her slot için özel bir işaretleme mekanizması oluşturulabilir. Bu sistem genellikle py root klasöründe barındırılır ve pack ile derlenir.
Python Kod Yapısı ve Uygulama Adımları
Py root dizininde yer alan inventory.py dosyasına, her slotun durumuna göre işaretlenmesini sağlayan bir fonksiyon yazılır. Bu fonksiyon, örneğin bir eşyanın özel bir nesne olduğunu belirtmek için icon veya border şeklinde görsel olarak gösterilebilir. Bu işlem için Python GUI fonksiyonları kullanılır. Örneğin:
def mark_slot(self, slot_index, mark_type):
if mark_type == 'special':
self.mark_image(slot_index, 'special_icon.png')
Veritabanı Entegrasyonu
Bu sistem, db tarafında da eşyaların özel olarak işaretlenmesini sağlayabilir. Game server üzerinde, bir eşya belirli bir kategoriye aitse, bu bilgi veritabanında saklanabilir ve client tarafında Python ile okunarak ekrana yansıtılabilir. Bu sayede, sunucu sahipleri istedikleri eşyaları otomatik olarak işaretleyebilirler. Bu sistem, game core ve auth sistemlerine entegre edilebilir.
Geliştiriciye Notlar
Metin2 özel sunucu geliştirme sürecinde, bu tür sistemlerin doğru çalışması için server src ve client src uyumlu olmalıdır. Ayrıca compile işlemi sırasında herhangi bir hata oluşmaması için source edit işlemleri dikkatli yapılmalıdır. Martysama gibi kaynaklar, bu süreçte yardımcı olabilir. Bu sistemle birlikte PvP oyunlarında stratejik avantaj sağlayacak eşyalar kolayca ayırt edilebilir.
Sonuç
Inventory slot marking sistemi, Great arayüzüne Python ile entegre edildiğinde kullanıcı deneyimini ciddi anlamda artırır. Geliştiriciler bu sistemi kullanarak, oyuncuların eşyaları daha hızlı tanımasını ve kullanmasını sağlayabilirler. Bu tür gelişmiş sistemler, Metin2 özel sunucularının rekabet avantajı sağlamasına yardımcı olur.
In Metin2 private servers, user-friendly interfaces and advanced systems significantly enhance the player experience. In this context, the inventory slot marking system allows players to manage their items more efficiently. Especially when implemented with Python-based uiscript and adapted to the Great interface, this system offers both aesthetic and functional advantages. This article will detail how the inventory slot marking system written in Python can be adapted for the Great interface in Metin2 private servers.
What is Inventory Slot Marking?
The inventory slot marking system enables players to visually highlight specific items in their inventory. For example, players can easily distinguish valuable items or weapons used for PvP preparation. These markings are usually done via icons or colored borders. This system can be easily integrated into Python-based uiscript interfaces.
Great Interface and Python Integration
The Great interface is a modern and sleek UI system widely used in Metin2 private servers. Since it supports Python, developers have significant flexibility in customization. When integrating the inventory slot marking system into this interface, necessary modifications can be made in the uiscript files to create a custom marking mechanism for each slot. This system is typically located in the py root folder and compiled via pack.
Python Code Structure and Implementation Steps
In the inventory.py file located in the py root directory, a function is added to mark slots based on their item status. For instance, visual indicators such as an icon or border can denote that an item is special. This process uses Python GUI functions. Example:
def mark_slot(self, slot_index, mark_type):
if mark_type == 'special':
self.mark_image(slot_index, 'special_icon.png')
Database Integration
This system can also allow marking items specially on the database side. On the game server, if an item belongs to a certain category, this information can be stored in the database and read by Python on the client side to be displayed on screen. This allows server owners to automatically mark desired items. The system can be integrated with game core and auth systems.
Notes for Developers
In Metin2 private server development, server src and client src must be compatible for these systems to work correctly. Additionally, source edit operations should be performed carefully to avoid errors during the compile process. Resources like Martysama can assist in this process. With this system, strategically important items in PvP games can be quickly identified.
Conclusion
When the inventory slot marking system is integrated into the Great interface using Python, it significantly enhances user experience. Developers can use this system to help players identify and use their items faster. Such advanced systems aid Metin2 private servers in gaining competitive advantages.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Arkadaşımız forum da bu sistemin Great offline shop için itemi koyduğunda kırmızı olmasını anlattı sizlere bende tamamen bu sistemi greata uyarlamayı anlatıcağım sizeSizdeki definelere göre yaparsanız daha sağlıklı olur defineler farklı olabilir
Kod:
// Aratın class PrivateShopBuilder(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.__LoadWindow() self.itemStock = {} self.tooltipItem = None self.priceInputBoard = None self.days = 0 self.title = "" // Altına Ekleyin ; if app.WJ_ENABLE_TRADABLE_ICON: self.interface = None self.wndInventory = None self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)} *********************************************************************** // Aratın def Destroy(self): self.ClearDictionary() self.itemSlot = None self.btnOk = None self.btnClose = None self.titleBar = None self.priceInputBoard = None // Altına Ekleyin ; if app.WJ_ENABLE_TRADABLE_ICON: self.interface = None self.wndInventory = None self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)} ******************************************************************************* // Aratın ; def Open(self,title,days,interface): self.days = days self.title = title if len(title) > 25: title = title[:22] + "..." self.itemStock = {} shop.ClearPrivateShopStock() self.SetCenterPosition() self.Refresh() self.Show() // Altına Ekleyin if app.WJ_ENABLE_TRADABLE_ICON: self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)} self.interface = interface self.interface.SetOnTopWindow(player.ON_TOP_WND_PRIVATE_SHOP) self.interface.RefreshMarkInventoryBag() ************************************************************************** // Aratın def Close(self): global g_isBuildingPrivateShop g_isBuildingPrivateShop = False self.title = "" self.itemStock = {} shop.ClearPrivateShopStock() if self.priceInputBoard: self.priceInputBoard.Close() self.priceInputBoard = None // Altına Ekleyin if app.WJ_ENABLE_TRADABLE_ICON: for privatePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items(): if self.wndInventory and itemInvenPage == self.wndInventory.GetInventoryPageIndex(): self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos) self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)} self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE) self.interface.RefreshMarkInventoryBag() ******************************************************************** // Aratın ; def Refresh(self): getitemVNum=player.GetItemIndex [***] self.itemSlot.RefreshSlot() // Altın Ekleyin if app.WJ_ENABLE_TRADABLE_ICON: self.RefreshLockedSlot() ********************************************************************** // Aratın def OnSelectEmptySlot(self, selectedSlotPos): [***] priceInputBoard = uiCommon.MoneyInputDialog() // Altına Ekleyin if app.WJ_ENABLE_TRADABLE_ICON: self.CantTradableItem(selectedSlotPos, attachedSlotPos) ************************************************************************* // Aratın def OnSelectItemSlot(self, selectedSlotPos): [***] snd.PlaySound("sound/ui/drop.wav") // Altına Ekleyin ; if app.WJ_ENABLE_TRADABLE_ICON: (itemInvenPage, itemSlotPos) = self.lockedItems[selectedSlotPos] if self.wndInventory and itemInvenPage == self.wndInventory.GetInventoryPageIndex(): self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos) self.lockedItems[selectedSlotPos] = (-1, -1) ******************************************************************************** // Aratın def CancelInputPrice(self): // Altına Ekleyin if app.WJ_ENABLE_TRADABLE_ICON: itemInvenPage = self.priceInputBoard.sourceSlotPos / player.INVENTORY_PAGE_SIZE itemSlotPos = self.priceInputBoard.sourceSlotPos - (itemInvenPage * player.INVENTORY_PAGE_SIZE) if self.wndInventory and itemInvenPage == self.wndInventory.GetInventoryPageIndex(): self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos) self.lockedItems[self.priceInputBoard.targetSlotPos] = (-1, -1) ********************************************************************************* // Sayfanın Sonun Ekleyin def OnUpdate(self): if app.WJ_ENABLE_TRADABLE_ICON: self.RefreshLockedSlot() if app.WJ_ENABLE_TRADABLE_ICON: def CantTradableItem(self, destSlotIndex, srcSlotIndex): itemInvenPage = srcSlotIndex / player.INVENTORY_PAGE_SIZE localSlotPos = srcSlotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE) self.lockedItems[destSlotIndex] = (itemInvenPage, localSlotPos) if self.wndInventory and itemInvenPage == self.wndInventory.GetInventoryPageIndex(): self.wndInventory.wndItem.SetCantMouseEventSlot(localSlotPos) def RefreshLockedSlot(self): if self.wndInventory: for privatePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items(): if self.wndInventory and itemInvenPage == self.wndInventory.GetInventoryPageIndex(): self.wndInventory.wndItem.SetCantMouseEventSlot(itemSlotPos) self.wndInventory.wndItem.RefreshSlot() def BindInterface(self, interface): self.interface = interface def OnTop(self): if self.interface: self.interface.SetOnTopWindow(player.ON_TOP_WND_PRIVATE_SHOP) self.interface.RefreshMarkInventoryBag() def SetInven(self, wndInventory): from _weakref import proxy self.wndInventory = proxy(wndInventory)
Yapamayan arkadaşlar için kendi uiPrivateShopBuilder.py Dosyamı Paylaşıyorum
İyi Kullanımlar...
İnventory Slot Marking Sistemi Great Uyarlaması (Python)
Metin2 özel sunucularında kullanıcı dostu arayüzler ve gelişmiş sistemler, oyuncuların deneyimini ciddi anlamda artırır. Bu bağlamda, inventory slot marking yani envanter slot işaretleme sistemi, oyuncuların eşyalarını daha verimli yönetmelerini sağlar. Özellikle Python tabanlı uiscript ile yazılmış bu sistem, Great arayüzüne entegre edildiğinde hem estetik hem de işlevsel olarak çok güçlü bir çözüm sunar. Bu makalede, Metin2 özel sunucularında Python ile yazılmış inventory slot marking sisteminin Great arayüzüne nasıl uyarlanacağı detaylı olarak ele alınacaktır.
İnventory Slot Marking Nedir?
Envanter slot işaretleme sistemi, oyuncuların envanterindeki belirli eşyaları görsel olarak işaretlemesine olanak tanır. Bu sayede örneğin, bir oyuncu değerli eşyalarını veya PvP hazırlığı yaparken kullandığı silahları kolayca ayırt edebilir. İşaretlemeler genellikle simgelerle ya da renkli çerçevelerle yapılır. Bu sistem, Python ile yazılmış uiscript tabanlı arayüzlerde kolayca entegre edilebilir.
Great Arayüzü ve Python Entegrasyonu
Great arayüzü, Metin2 özel sunucularında yaygın olarak kullanılan modern ve şık bir arayüz sistemidir. Python desteklediği için, geliştiricilerin özelleştirme konusunda büyük esnekliği vardır. Inventory slot marking sistemi bu arayüze entegre edilirken, uiscript dosyalarında gerekli değişiklikler yapılarak her slot için özel bir işaretleme mekanizması oluşturulabilir. Bu sistem genellikle py root klasöründe barındırılır ve pack ile derlenir.
Python Kod Yapısı ve Uygulama Adımları
Py root dizininde yer alan inventory.py dosyasına, her slotun durumuna göre işaretlenmesini sağlayan bir fonksiyon yazılır. Bu fonksiyon, örneğin bir eşyanın özel bir nesne olduğunu belirtmek için icon veya border şeklinde görsel olarak gösterilebilir. Bu işlem için Python GUI fonksiyonları kullanılır. Örneğin:
def mark_slot(self, slot_index, mark_type):
if mark_type == 'special':
self.mark_image(slot_index, 'special_icon.png')
Veritabanı Entegrasyonu
Bu sistem, db tarafında da eşyaların özel olarak işaretlenmesini sağlayabilir. Game server üzerinde, bir eşya belirli bir kategoriye aitse, bu bilgi veritabanında saklanabilir ve client tarafında Python ile okunarak ekrana yansıtılabilir. Bu sayede, sunucu sahipleri istedikleri eşyaları otomatik olarak işaretleyebilirler. Bu sistem, game core ve auth sistemlerine entegre edilebilir.
Geliştiriciye Notlar
Metin2 özel sunucu geliştirme sürecinde, bu tür sistemlerin doğru çalışması için server src ve client src uyumlu olmalıdır. Ayrıca compile işlemi sırasında herhangi bir hata oluşmaması için source edit işlemleri dikkatli yapılmalıdır. Martysama gibi kaynaklar, bu süreçte yardımcı olabilir. Bu sistemle birlikte PvP oyunlarında stratejik avantaj sağlayacak eşyalar kolayca ayırt edilebilir.
Sonuç
Inventory slot marking sistemi, Great arayüzüne Python ile entegre edildiğinde kullanıcı deneyimini ciddi anlamda artırır. Geliştiriciler bu sistemi kullanarak, oyuncuların eşyaları daha hızlı tanımasını ve kullanmasını sağlayabilirler. Bu tür gelişmiş sistemler, Metin2 özel sunucularının rekabet avantajı sağlamasına yardımcı olur.
Inventory Slot Marking System Great Adaptation (Python)
In Metin2 private servers, user-friendly interfaces and advanced systems significantly enhance the player experience. In this context, the inventory slot marking system allows players to manage their items more efficiently. Especially when implemented with Python-based uiscript and adapted to the Great interface, this system offers both aesthetic and functional advantages. This article will detail how the inventory slot marking system written in Python can be adapted for the Great interface in Metin2 private servers.
What is Inventory Slot Marking?
The inventory slot marking system enables players to visually highlight specific items in their inventory. For example, players can easily distinguish valuable items or weapons used for PvP preparation. These markings are usually done via icons or colored borders. This system can be easily integrated into Python-based uiscript interfaces.
Great Interface and Python Integration
The Great interface is a modern and sleek UI system widely used in Metin2 private servers. Since it supports Python, developers have significant flexibility in customization. When integrating the inventory slot marking system into this interface, necessary modifications can be made in the uiscript files to create a custom marking mechanism for each slot. This system is typically located in the py root folder and compiled via pack.
Python Code Structure and Implementation Steps
In the inventory.py file located in the py root directory, a function is added to mark slots based on their item status. For instance, visual indicators such as an icon or border can denote that an item is special. This process uses Python GUI functions. Example:
def mark_slot(self, slot_index, mark_type):
if mark_type == 'special':
self.mark_image(slot_index, 'special_icon.png')
Database Integration
This system can also allow marking items specially on the database side. On the game server, if an item belongs to a certain category, this information can be stored in the database and read by Python on the client side to be displayed on screen. This allows server owners to automatically mark desired items. The system can be integrated with game core and auth systems.
Notes for Developers
In Metin2 private server development, server src and client src must be compatible for these systems to work correctly. Additionally, source edit operations should be performed carefully to avoid errors during the compile process. Resources like Martysama can assist in this process. With this system, strategically important items in PvP games can be quickly identified.
Conclusion
When the inventory slot marking system is integrated into the Great interface using Python, it significantly enhances user experience. Developers can use this system to help players identify and use their items faster. Such advanced systems aid Metin2 private servers in gaining competitive advantages.
