İyi günler ,
Eklentinin işlevi şu şekilde ,
Eşyanın altında eşya ile yapamayacaklarını gösterir. Kodlarda daha detaylı anlaşılıyor.
Farklı şeylere uyarlayabilirsiniz. Antiflaglardan çekiyor.[/RIGHT]
Eklentinin işlevi şu şekilde ,
Eşyanın altında eşya ile yapamayacaklarını gösterir. Kodlarda daha detaylı anlaşılıyor.
Farklı şeylere uyarlayabilirsiniz. Antiflaglardan çekiyor.[/RIGHT]
Ali Y.-Berkay K.
Eğer Depola kısmıyla ilgili hata alıyorsanız şu işlemi uygulayın ;
Metin2 özel sunucularında geliştirme yaparken, oyuncuların deneyimini artırmak için eşya sistemlerini özelleştirmek oldukça önemlidir. Özellikle Python dili, bu süreçte güçlü bir araç olarak karşımıza çıkar. Bugün konumuz; '[Python] Item Altı Bu Eşya İle Yapamayacakların Eklentisi' yani bir eşyanın altındaki diğer eşya ile etkileşim kuramaması veya özel işlemler yapılmasını sağlayacak bir eklenti geliştirmektir.
Neden Bu Eklenti Gereklidir?
Metin2 oyununda bazı eşyaların belirli kurallara tabi olması gerekir. Örneğin, bir karakterin belirli bir silahı kullanabilmesi için seviyesi, sınıfı ya da statüsü belirli şartları karşılamalıdır. Aynı şekilde, bir eşyanın altında başka bir eşya olduğunda, bu ikili etkileşimi kontrol etmek istenebilir. Bu tür özel durumlar için geliştirilen eklentiler, hem PvP sistemlerinde hem de oyun içi dengeler için hayati bir rol oynar.
Python ile Nasıl Uygulanır?
Python, Metin2'nin client-side ve server-side işlemleri için oldukça yaygın bir şekilde kullanılmaktadır. Özellikle Py Root ve UIScript dosyalarında yapılan düzenlemelerle eşya sistemleri üzerinde geniş kontroller sağlanabilir. Bu eklentide odak noktamız, bir eşyanın altına başka bir eşya geldiğinde ne tür işlemler yapılacağıdır.
Örnek Senaryo:
Bir oyuncu, bir silahın altına belirli bir zırh parçasını sürüklediğinde, bu iki eşya arasında bir uyumsuzluk varsa, işlem iptal edilmelidir. Bu senaryoda Python tarafında bir kontrol fonksiyonu yazılır. Bu fonksiyon, item_slot üzerinden hangi eşyanın hangi slota yerleştirilmeye çalıştığını kontrol eder. Eğer belirlenen kurala uyulmuyorsa, işlem engellenir.
Python Kod Yapısı
Python kodları genellikle game.py veya inventory.py gibi dosyalarda düzenlenir. Burada önemli olan, item_slot ve item_id değerlerini doğru şekilde okumak ve bu değerlere göre işlem yapmaktır. Örneğin, bir eşyanın ID'si 1000 ve altına yerleştirilmek istenen eşya 1001 ise, bu iki eşya uyumlu değilse işlem iptal edilir.
C++ ile Entegrasyon
Metin2'nin server-side tarafı genellikle C++ ile yazılmıştır. Python tarafında yapılan kontroller, sunucu tarafında tanımlanmış event sistemleri ile entegre edilmelidir. Bu sayede hem client hem de server tarafında tutarlı bir yapı sağlanır. Bu eklenti, Martysama tarzı gelişmiş sistemlerle de kolayca entegre edilebilir.
Sonuç
Python kullanarak Metin2 özel sunucularında eşya sistemlerini özelleştirmek, hem geliştiriciler hem de oyuncular için büyük avantajlar sağlar. Bu eklenti ile, eşya altı işlemlerini kontrol etmek ve daha gelişmiş sistemler oluşturmak mümkün olur. Metin2 Lobby olarak, bu tarz sistemlerin geliştirilmesine katkı sunmayı hedefliyoruz.
When developing on Metin2 private servers, customizing item systems is essential for enhancing player experience. Particularly, the Python language emerges as a powerful tool during this process. Today’s topic is '[Python] Item Below This Cannot Be Used With That Item Add-on', which refers to an add-on that prevents interaction between items placed below each other or enables special operations between them.
Why Is This Add-on Necessary?
In Metin2, certain items must follow specific rules. For example, a character needs to meet level, class, or stat requirements to use certain weapons. Similarly, when one item is placed under another, the interaction between these two items might need to be controlled. Such add-ons play a vital role both in PvP systems and for balancing in-game mechanics.
How Can It Be Implemented with Python?
Python is widely used for both client-side and server-side operations in Metin2. Especially through modifications in Py Root and UIScript files, extensive control over item systems can be achieved. In this add-on, our focus will be on what kind of operations occur when an item is placed under another one.
Example Scenario:
Suppose a player tries to drag a specific armor piece under a weapon. If there is an incompatibility between these two items, the operation should be canceled. In this scenario, a control function is written in Python. This function checks which item is being placed into which slot via item_slot. If the defined rule is not followed, the operation is blocked.
Python Code Structure
Python codes are usually edited in files like game.py or inventory.py. The key here is to correctly read item_slot and item_id values and perform operations accordingly. For instance, if an item has ID 1000 and the item to be placed under it is 1001, and these two items are incompatible, the action is canceled.
Integration with C++
The server-side of Metin2 is generally written in C++. Controls made on the Python side must be integrated into event systems defined on the server-side. This ensures consistency across both client and server sides. This add-on can also easily integrate with advanced systems like Martysama.
Conclusion
Customizing item systems in Metin2 private servers using Python offers significant advantages for both developers and players. With this add-on, controlling item-under-item operations and creating more advanced systems become possible. At Metin2 Lobby, we aim to contribute to the development of such systems.
Kod:
def __AppendPotionInformation(self): //arat def AppendAntiFlagInformation(self): flagList = [ [item.ITEM_ANTIFLAG_GIVE, "Takasla"], [item.ITEM_ANTIFLAG_DROP, "Düşür"], [item.ITEM_ANTIFLAG_SELL, "Sat"], [item.ITEM_ANTIFLAG_MYSHOP, "Pazarla"], [item.ITEM_ANTIFLAG_SAFEBOX, "Depola"], ] antiflagNames = "" for i in xrange(len(flagList)): if item.IsAntiFlag(flagList[i][0]): antiflagNames += flagList[i][1] antiflagNames += "," if antiflagNames != "": self.AppendSpace(5) self.AppendTextLine("[ Bu Eşya İle Yapamayacakların ]", self.DISABLE_COLOR) textLine = self.AppendTextLine(antiflagNames[:-1], self.DISABLE_COLOR, True) textLine.SetFeather() // üstüne ekle self.ShowToolTip() //arat self.AppendAntiFlagInformation() //üstüne ekle.
Eğer Depola kısmıyla ilgili hata alıyorsanız şu işlemi uygulayın ;
Kod:
// PythonItemModule.cpp PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_SAFEBOX", CItemData::ITEM_ANTIFLAG_SAFEBOX); PyModule_AddIntConstant(poModule, "ANTIFLAG_SAFEBOX", CItemData::ITEM_ANTIFLAG_SAFEBOX); // Uygun kısımlara ekle.
Metin2'de Python Kullanarak Eşya Sistemleri Geliştirmek
Metin2 özel sunucularında geliştirme yaparken, oyuncuların deneyimini artırmak için eşya sistemlerini özelleştirmek oldukça önemlidir. Özellikle Python dili, bu süreçte güçlü bir araç olarak karşımıza çıkar. Bugün konumuz; '[Python] Item Altı Bu Eşya İle Yapamayacakların Eklentisi' yani bir eşyanın altındaki diğer eşya ile etkileşim kuramaması veya özel işlemler yapılmasını sağlayacak bir eklenti geliştirmektir.
Neden Bu Eklenti Gereklidir?
Metin2 oyununda bazı eşyaların belirli kurallara tabi olması gerekir. Örneğin, bir karakterin belirli bir silahı kullanabilmesi için seviyesi, sınıfı ya da statüsü belirli şartları karşılamalıdır. Aynı şekilde, bir eşyanın altında başka bir eşya olduğunda, bu ikili etkileşimi kontrol etmek istenebilir. Bu tür özel durumlar için geliştirilen eklentiler, hem PvP sistemlerinde hem de oyun içi dengeler için hayati bir rol oynar.
Python ile Nasıl Uygulanır?
Python, Metin2'nin client-side ve server-side işlemleri için oldukça yaygın bir şekilde kullanılmaktadır. Özellikle Py Root ve UIScript dosyalarında yapılan düzenlemelerle eşya sistemleri üzerinde geniş kontroller sağlanabilir. Bu eklentide odak noktamız, bir eşyanın altına başka bir eşya geldiğinde ne tür işlemler yapılacağıdır.
Örnek Senaryo:
Bir oyuncu, bir silahın altına belirli bir zırh parçasını sürüklediğinde, bu iki eşya arasında bir uyumsuzluk varsa, işlem iptal edilmelidir. Bu senaryoda Python tarafında bir kontrol fonksiyonu yazılır. Bu fonksiyon, item_slot üzerinden hangi eşyanın hangi slota yerleştirilmeye çalıştığını kontrol eder. Eğer belirlenen kurala uyulmuyorsa, işlem engellenir.
Python Kod Yapısı
Python kodları genellikle game.py veya inventory.py gibi dosyalarda düzenlenir. Burada önemli olan, item_slot ve item_id değerlerini doğru şekilde okumak ve bu değerlere göre işlem yapmaktır. Örneğin, bir eşyanın ID'si 1000 ve altına yerleştirilmek istenen eşya 1001 ise, bu iki eşya uyumlu değilse işlem iptal edilir.
C++ ile Entegrasyon
Metin2'nin server-side tarafı genellikle C++ ile yazılmıştır. Python tarafında yapılan kontroller, sunucu tarafında tanımlanmış event sistemleri ile entegre edilmelidir. Bu sayede hem client hem de server tarafında tutarlı bir yapı sağlanır. Bu eklenti, Martysama tarzı gelişmiş sistemlerle de kolayca entegre edilebilir.
Sonuç
Python kullanarak Metin2 özel sunucularında eşya sistemlerini özelleştirmek, hem geliştiriciler hem de oyuncular için büyük avantajlar sağlar. Bu eklenti ile, eşya altı işlemlerini kontrol etmek ve daha gelişmiş sistemler oluşturmak mümkün olur. Metin2 Lobby olarak, bu tarz sistemlerin geliştirilmesine katkı sunmayı hedefliyoruz.
Developing Item Systems with Python in Metin2
When developing on Metin2 private servers, customizing item systems is essential for enhancing player experience. Particularly, the Python language emerges as a powerful tool during this process. Today’s topic is '[Python] Item Below This Cannot Be Used With That Item Add-on', which refers to an add-on that prevents interaction between items placed below each other or enables special operations between them.
Why Is This Add-on Necessary?
In Metin2, certain items must follow specific rules. For example, a character needs to meet level, class, or stat requirements to use certain weapons. Similarly, when one item is placed under another, the interaction between these two items might need to be controlled. Such add-ons play a vital role both in PvP systems and for balancing in-game mechanics.
How Can It Be Implemented with Python?
Python is widely used for both client-side and server-side operations in Metin2. Especially through modifications in Py Root and UIScript files, extensive control over item systems can be achieved. In this add-on, our focus will be on what kind of operations occur when an item is placed under another one.
Example Scenario:
Suppose a player tries to drag a specific armor piece under a weapon. If there is an incompatibility between these two items, the operation should be canceled. In this scenario, a control function is written in Python. This function checks which item is being placed into which slot via item_slot. If the defined rule is not followed, the operation is blocked.
Python Code Structure
Python codes are usually edited in files like game.py or inventory.py. The key here is to correctly read item_slot and item_id values and perform operations accordingly. For instance, if an item has ID 1000 and the item to be placed under it is 1001, and these two items are incompatible, the action is canceled.
Integration with C++
The server-side of Metin2 is generally written in C++. Controls made on the Python side must be integrated into event systems defined on the server-side. This ensures consistency across both client and server sides. This add-on can also easily integrate with advanced systems like Martysama.
Conclusion
Customizing item systems in Metin2 private servers using Python offers significant advantages for both developers and players. With this add-on, controlling item-under-item operations and creating more advanced systems become possible. At Metin2 Lobby, we aim to contribute to the development of such systems.
