Selamunaleyküm arkadaşlar daha önce paylaşılmış bir konu isteyen kapattırabilir farketmez bazı sorun yaşayan arkadaşlar için 1-2 yeri düzeltilmiştir simya butonu olan oyunlar için sol tarafa alınmıştır silme butonu
kanıt
kanıt
locale packı açılır /tr/ui/inventorywindow.py dosyası açılır CostumeButton üst kısmına veya herhangi bir kısıma eklenir. Envanterde buton gözükmemesi halinde d:/ymir work/ui/equipment_bg_without_ring.tga bu dizini d:/ymir work/ui/equipment_bag_without_ring.tga değiştirin
Kod:
{ "name" : "Sil_Slot", "type" : "grid_table", "x" : 3, "y" : 107, "start_index" : 0, "x_count" : 1, "y_count" : 1, "x_step" : 32, "y_step" : 32, },
Root packı açılır game.py dosyası açılır aratılır
Kod:
"PlayMusic": self.__PlayMusic,
alt kısıma eklenir
Kod:
"ItemSil_Index": self.__ReceiveItemSilIndex, "get_item_value": self.__GetItemValue, "InputStringStart": self.ItemSilInputOn, "InputStringEnd": self.ItemSilGetInputOff,
aratılır
Kod:
def BINARY_ServerCommand_Run(self, line):
üst kısmına eklenir
Kod:
def __ReceiveItemSilIndex(self, index): constInfo.ItemSil_Index = int(index) def __GetItemValue(self): net.SendQuestInputStringPacket(str(constInfo.ItemSil_Slot)) def ItemSilInputOn(self): constInfo.INPUT_IGNORE = 1 def ItemSilGetInputOff(self): constInfo.INPUT_IGNORE = 0
aratılır
Kod:
net.SendQuestInputStringPacket(str(constInfo.PLAYER_VID))
altına eklenir varsa eklenmez
Kod:
elif PythonIslem == "SIL_SLOT": net.SendQuestInputStringPacket(str(constInfo.SIL_SLOT))
aratılır
Kod:
def OpenQuestWindow(self, skin, idx):
değiştirilir eğer varsa aynısı değiştirilmez
Kod:
def OpenQuestWindow(self, skin, idx): if constInfo.INPUT_IGNORE == 1: return self.interface.OpenQuestWindow(skin, idx)
root uiinventory.py dosyası açılır import kısmında yoksa eklenir
Kod:
import event
aratılır
Kod:
wndEquip.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
altına eklenir
Kod:
## item Delete self.GetChild("Sil_Slot").SetSelectEmptySlotEvent(ui.__mem_func__(self.SilEmptySlot))
aratılır
Kod:
def OnDetachMetinFromItem(self):
üst kısıma eklenir
Kod:
def SilEmptySlot(self): if mouseModule.mouseController.isAttached(): attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() itemIndex = player.GetItemIndex(attachedSlotPos) if player.SLOT_TYPE_INVENTORY == mouseModule.mouseController.GetAttachedType(): item.SelectItem(itemIndex) itemDropQuestionDialog = uiCommon.QuestionDialog() miktar_pls = player.GetItemCount(attachedSlotPos) if miktar_pls != 1: itemDropQuestionDialog.SetText(("%dx %s isimli esyayi silmek istedigine emin misin?" % (miktar_pls, item.GetItemName()))) else: itemDropQuestionDialog.SetText(("%s isimli esyayi silmek istedigine emin misin?" % (item.GetItemName()))) itemDropQuestionDialog.SetAcceptEvent(lambda arg = TRUE: self.SilItem(arg, attachedSlotPos)) itemDropQuestionDialog.SetCancelEvent(lambda arg = FALSE: self.SilItem(arg, attachedSlotPos)) itemDropQuestionDialog.Open() self.itemDropQuestionDialog = itemDropQuestionDialog mouseModule.mouseController.DeattachObject() else: warn = uiCommon.PopupDialog() warn.SetText("Silinecek esya bulunamadi.") warn.Open() def SilItem(self, answer, attachedSlotPos): if not self.itemDropQuestionDialog: return if answer: constInfo.ItemSil_Slot = attachedSlotPos event.QuestButtonClick(constInfo.ItemSil_Index) snd.PlaySound('sound/ui/drop.wav') self.itemDropQuestionDialog.Close() self.itemDropQuestionDialog = None
root constinfo.py açılır en başa eklenir varsa eğer eklemeyin
Kod:
ItemSil_Slot = 0 ItemSil_Index = 0 SIL_SLOT = 0 INPUT_IGNORE = 0
Dosyalar ;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Virüs Total ;
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Envanterden İtem Silme
Metin2 özel sunucularında oyun geliştirme sürecinde, geliştiricilerin en sık karşılaştığı konulardan birisi envanterdeki itemleri silmek veya yönetmek olabilir. Bu işlem genellikle oyun içi sistemlerin geliştirilmesi, hile engelleme veya belirli eventlerle item silme gibi durumlarda gerekebilir. Bu yazıda, Metin2 özel sunucularında envanterden nasıl item silineceğini detaylıca ele alacağız.
Metin2 Item Sistemine Genel Bakış
Metin2, item tabanlı bir MMORPG'dir ve her oyuncunun envanteri, karakterin sahip olduğu itemleri barındırır. Bu envanter, hem normal kullanımda hem de geliştirme sırasında önemli bir rol oynar. Itemler; silahlar, zırhlar, aksesuarlar, consumable itemler gibi kategorilere ayrılır. Bu itemlerin doğru yönetimi, oyun dengeleri ve kullanıcı deneyimi için kritik öneme sahiptir.
Envanterden Item Silme Yöntemleri
Metin2 özel sunucularında envanterden item silmek için birkaç yöntem mevcuttur. Bunlar genellikle C++ backend tarafında oyun sunucusu üzerinde çalışır. Item silme işlemleri, genellikle belirli ID'ye sahip itemlerin silinmesiyle gerçekleştirilir. Bu işlemler doğrudan veritabanı veya oyun core üzerinden yapılabilir.
Silme İşlemi İçin Gerekli Adımlar
Öncelikle, silinmek istenen itemin ID'si bilinmelidir. Her itemin benzersiz bir ID'si vardır ve bu ID üzerinden işlem yapılır. Daha sonra, silme komutu backend'e gönderilir. Bu komut genellikle bir fonksiyon aracılığıyla çağrılır ve oyun sunucusu bu fonksiyona göre itemi envanterden kaldırır. Bu süreçte DB Core ve Game Core arasında senkronizasyon çok önemlidir.
C++ Kaynak Kodlarıyla Uygulama
Metin2 özel sunucularında envanterden item silme işlemi genellikle C++ kodları ile yapılır. Geliştiriciler, gerekli fonksiyonları src dosyalarında tanımlayıp, belirli eventlerde bu fonksiyonu çağırarak item silme işlemini gerçekleştirebilirler. Örneğin, bir quest tamamlandığında belirli bir itemin otomatik olarak silinmesi gibi. Bu tarz sistemler, oyun içindeki akışı düzenlemek için oldukça kullanışlıdır.
Python Arayüzüyle Yönetim
Bazı durumlarda, geliştiriciler Py Root veya Py GUI arayüzleriyle item yönetimini kolaylaştırmak isteyebilir. Bu tür arayüzler sayesinde, item silme işlemleri daha görsel ve kullanıcı dostu hale getirilebilir. Ancak, bu işlemler yine de backend tarafından kontrol edilir.
Hile Engelleme ve Güvenlik
Envanterden item silme işlemleri, bazen hileli durumların engellenmesi için de kullanılabilir. Örneğin, bir oyuncunun elinde olması mümkün olmayan itemler varsa, sistem bu itemleri otomatik olarak silebilir. Bu tip kontroller, oyunun adil oynanabilirliğini korumak açısından önemlidir.
Sonuç
Metin2 özel sunucularında envanterden item silme işlemi, oyun geliştirme sürecinin önemli bir parçasıdır. Bu işlem, C++ sistemler, DB Core, Python arayüzleri gibi birçok bileşenle entegre çalışarak güvenli ve kontrollü bir şekilde yapılabilir. Doğru yapılandırılmış sistemlerle hem oyun dengesi korunabilir hem de kullanıcı deneyimi artırılabilir.
Deleting Items from Inventory
In the process of developing Metin2 private servers, one of the most common issues developers encounter is deleting items from player inventories. This action is often required for implementing game systems, anti-cheat measures, or removing items after specific events. In this article, we will examine in detail how to delete items from inventory in Metin2 private servers.
Overview of the Metin2 Item System
Metin2 is an item-based MMORPG where each player's inventory holds the items their character possesses. This inventory plays a crucial role both during regular gameplay and in development phases. Items are categorized into weapons, armors, accessories, consumables, and more. Proper management of these items is critical for maintaining game balance and user experience.
Methods for Deleting Items from Inventory
There are several methods for deleting items from inventory in Metin2 private servers. These operations typically occur on the game server backend using C++. Item deletion processes are usually performed by targeting specific item IDs. Such operations can be carried out directly through the database or the game core.
Steps Required for Deletion
First, the ID of the item to be deleted must be known. Each item has a unique ID which is used to perform the deletion. Then, the deletion command is sent to the backend. Usually, this command is invoked via a function, and the game server removes the item from the inventory accordingly. During this process, synchronization between DB Core and Game Core is very important.
Implementation with C++ Source Code
Deleting items from inventory in Metin2 private servers is commonly done using C++ code. Developers can define necessary functions within the src files and call those functions during specific events to execute the deletion. For example, upon completing a quest, a certain item can be automatically removed. Such systems are highly useful for managing in-game flow.
Management Through Python Interface
In some cases, developers may prefer to manage item removal using Py Root or Py GUI interfaces for easier administration. These types of interfaces allow item deletion operations to become more visual and user-friendly. However, such operations are still controlled by the backend.
Anti-Cheat and Security
Item deletion from inventory can also serve to prevent cheating. For instance, if a player possesses an item that shouldn't exist, the system can automatically remove it. Such checks are essential for maintaining fair play in the game.
Conclusion
Deleting items from inventory in Metin2 private servers is an important part of the game development process. This operation can be securely and reliably executed through integration with C++ systems, DB Core, Python interfaces, and other components. Well-configured systems help maintain game balance and enhance user experience.
