Efsun Aktarma Sistemi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 73

Admin

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


Merhabalar,
Bir KADIR arkadaşımız bu sistemi 2016'da satışa sunduğu fileste ben yaptım gibi birşeyler söylüyormuş böyle bilgili gözükmek için atan tutan arkadaşlara gelmeyiniz bu sistemler 2014 sonunda İbrahim tarafından yapılmıştır.


Kod:
CHAR_İTEM.CPP //ARAT case USE_CHANGE_ATTRIBUTE : //EKLE MUNASİP BİR YERE                                 if (item->GetVnum() == 78023)                                 {                                     if (!item2)                                     return false;                                                                             if (item->GetAttributeType(0) == 0)                                         {                                             if (item2->GetAttributeCount() == 0)                                             {                                                 ChatPacket(CHAT_TYPE_INFO, "Bonusu olmayan eşyalara bu işlem yapılamaz!");                                                 return false;                                             }                                                                                     if (item2->GetAttributeType(0) == 71 || item->GetAttributeType(0) == 72)                                             {                                                 ChatPacket(CHAT_TYPE_INFO, "Ortalama zarar veya Beceri Hasarı bonusu bulunan eşyalara bu yapılamaz!");                                                 return false;                                             }                                             if (item2->GetAttributeType(1) == 71 || item->GetAttributeType(1) == 72)                                             {                                                 ChatPacket(CHAT_TYPE_INFO, "Ortalama zarar veya Beceri Hasarı bonusu bulunan eşyalara bu yapılamaz!");                                                 return false;                                             }                                                 ChatPacket(CHAT_TYPE_INFO, "Eşyanın bonusları başarıyla efsun aktarma kağıdına aktarıldı.");                                                 int efsuntype1 = item2->GetAttributeType(0);                                                 int efsuntype2 = item2->GetAttributeType(1);                                                 int efsuntype3 = item2->GetAttributeType(2);                                                 int efsuntype4 = item2->GetAttributeType(3);                                                 int efsuntype5 = item2->GetAttributeType(4);                                                                                         int efsunvalue1 = item2->GetAttributeValue(0);                                                 int efsunvalue2 = item2->GetAttributeValue(1);                                                 int efsunvalue3 = item2->GetAttributeValue(2);                                                 int efsunvalue4 = item2->GetAttributeValue(3);                                                 int efsunvalue5 = item2->GetAttributeValue(4);                                                                                         int itemtype = item2->GetWearFlag();                                                                                         item->SetForceAttribute(0,efsuntype1,efsunvalue1);                                                 item->SetForceAttribute(1,efsuntype2,efsunvalue2);                                                 item->SetForceAttribute(2,efsuntype3,efsunvalue3);                                                 item->SetForceAttribute(3,efsuntype4,efsunvalue4);                                                 item->SetForceAttribute(4,efsuntype5,efsunvalue5);                                                 item->SetForceAttribute(5,1,itemtype);                                                                                                                                                                         item2->SetForceAttribute(0,0,0);                                                 item2->SetForceAttribute(1,0,0);                                                 item2->SetForceAttribute(2,0,0);                                                 item2->SetForceAttribute(3,0,0);                                                 item2->SetForceAttribute(4,0,0);                                                 item2->Save();                                                 item2->UpdatePacket();                                                                                 }                                         else                                         {                                                                                         if (!item2)                                                 return false;                                                                                                                                         if (item2->GetAttributeCount() == 0)                                                 {                                                     ChatPacket(CHAT_TYPE_INFO, "Bonusu olmayan eşyalara bu işlem yapılamaz!");                                                     return false;                                                 }                                                                                         if (item2->GetAttributeType(0) == 71 || item->GetAttributeType(0) == 72)                                                 {                                                     ChatPacket(CHAT_TYPE_INFO, "Ortalama zarar veya Beceri Hasarı bonusu bulunan eşyalara bu yapılamaz!");                                                     return false;                                                 }                                                                                         if (item2->GetAttributeType(1) == 71 || item->GetAttributeType(1) == 72)                                                 {                                                     ChatPacket(CHAT_TYPE_INFO, "Ortalama zarar veya Beceri Hasarı bonusu bulunan eşyalara bu yapılamaz!");                                                     return false;                                                 }                                                                                                                                 int efsuntype1 = item->GetAttributeType(0);                                                 int efsuntype2 = item->GetAttributeType(1);                                                 int efsuntype3 = item->GetAttributeType(2);                                                 int efsuntype4 = item->GetAttributeType(3);                                                 int efsuntype5 = item->GetAttributeType(4);                                                                                         int efsunvalue1 = item->GetAttributeValue(0);                                                 int efsunvalue2 = item->GetAttributeValue(1);                                                 int efsunvalue3 = item->GetAttributeValue(2);                                                 int efsunvalue4 = item->GetAttributeValue(3);                                                 int efsunvalue5 = item->GetAttributeValue(4);                                                                                         int itemtype = item->GetAttributeValue(5);                                                                                         if (itemtype != item2->GetWearFlag())                                                 {                                                     ChatPacket(CHAT_TYPE_INFO, "Bonuslar aktarmak istediğin eşya ile uyumlu değil!");                                                     return false;                                                 }                                                                                         item2->SetForceAttribute(0,efsuntype1,efsunvalue1);                                                 item2->SetForceAttribute(1,efsuntype2,efsunvalue2);                                                 item2->SetForceAttribute(2,efsuntype3,efsunvalue3);                                                 item2->SetForceAttribute(3,efsuntype4,efsunvalue4);                                                 item2->SetForceAttribute(4,efsuntype5,efsunvalue5);                                                                                         ChatPacket(CHAT_TYPE_INFO, "Bonuslar başarıyla %s isimli eşyana aktarıldı.",item2->GetName());                                                                                                                             item->SetCount(item->GetCount()-1);                                         }                                                                             break;                                 } UITOOLTİP.PY //ARAT def AddItemData //SU KOD BLOGUNUN ALTINA BIR YERE EKLE     def AppendAktarmaInformation(self, attrSlot):         if 0 != attrSlot:             efsun =  {                   0 : constInfo.kirmizirenk+"Efsun Yok ",                  1 : constInfo.yesilrenk+"Max HP +",                  2 : constInfo.yesilrenk+"Max SP +",                  3 : constInfo.yesilrenk+"Yaşam Enerjisi +",                  4 : constInfo.yesilrenk+"Zeka +",                  5 : constInfo.yesilrenk+"Güç +",                  6 : constInfo.yesilrenk+"Çeviklik +",                  7 : constInfo.yesilrenk+"Saldırı Hızı +",                  8 : constInfo.yesilrenk+"Hareket Hızı +",                  9 : constInfo.yesilrenk+"Büyü Hızı +",                  10 : constInfo.yesilrenk+"HP Üretimi %",                  11 : constInfo.yesilrenk+"SP Üretimi %",                  12 : constInfo.yesilrenk+"Zehirleme Değişimi %",                  13 : constInfo.yesilrenk+"Bayılma şansı %",                  14 : constInfo.yesilrenk+"Yavaşlık Değişimi %",                  15 : constInfo.yesilrenk+"Kritik Vuruş Şansı %",                  16 : constInfo.yesilrenk+"Delici Vuruş Şansı %",                  17 : constInfo.yesilrenk+"Yarı İnsanlara Karşı Güçlü %",                  18 : constInfo.yesilrenk+"Hayvanlara Karşı Güçlü %",                  19 : constInfo.yesilrenk+"Orklara Karşı Güçlü %",                  20 : constInfo.yesilrenk+"Mistiklere Karşı Güçlü %",                  21 : constInfo.yesilrenk+"Ölümsüzlere Karşı Güçlü %",                  22 : constInfo.yesilrenk+"Şeytanlara Karşı Güçlü %",                  23 : constInfo.yesilrenk+"Hasar HP Tarafından Emilicek %",                  24 : constInfo.yesilrenk+"Hasar SP Tarafından Emilicek %",                  25 : constInfo.yesilrenk+"Düşmanın Spsini Çalma Sansi %",                  26 : constInfo.yesilrenk+"Vuruş Yapıldığında Spyi geri Çalma %",                  27 : constInfo.yesilrenk+"Beden Karşısındaki Atakların Bloklanması %",                  28 : constInfo.yesilrenk+"Oklardan Korunma Şansı %",                  29 : constInfo.yesilrenk+"Kılıç Savunması %",                  30 : constInfo.yesilrenk+"Çift-El Savunması %",                  31 : constInfo.yesilrenk+"Bıçak Savunması %",                  32 : constInfo.yesilrenk+"Çan Savunması %",                  33 : constInfo.yesilrenk+"Yelpaze Savunması %",                  34 : constInfo.yesilrenk+"Oka Karşı Dayanıklılık %",                  35 : constInfo.yesilrenk+"Ateşe Karşı Dayanıklılık %",                  36 : constInfo.yesilrenk+"Simgeye Karşı Dayanıklılık %",                  37 : constInfo.yesilrenk+"Büyüye Karşı Dayanıklılık %",                  38 : constInfo.yesilrenk+"Rüzgar Dayanıklılığı %",                  39 : constInfo.yesilrenk+"Vücut Darbesini Yansıtma Şansı %",                  40 : constInfo.yesilrenk+"Lanet Yansıtılması %",                  41 : constInfo.yesilrenk+"Zehre Karşı Koyma %",                  42 : constInfo.yesilrenk+"Sp Yüklenmesi Değişti",                  43 : constInfo.yesilrenk+ "Yang Düşme Şansı %",                  44 : constInfo.yesilrenk+"Yang Düşme Şansı %",                  45 : constInfo.yesilrenk+"Eşya Düşme Şansı %",                  46 : constInfo.yesilrenk+"Trank effekt zuwachs %",                  47 : constInfo.yesilrenk+"HP Yüklenmesi Değişti %",                  48 : constInfo.yesilrenk+"Sersemletme Karşısında Bağışıklık %",                  49 : constInfo.yesilrenk+"Yavaşlatma Karşısında Bağışıklık %",                  50 : constInfo.yesilrenk+"Imun gegen Stürzen ",                  51 : constInfo.yesilrenk+" ",                  52 : constInfo.yesilrenk+"Bogenreichweite +",                  53 : constInfo.yesilrenk+"Saldırı Değeri +",                  54 : constInfo.yesilrenk+"Savunma +",                  55 : constInfo.yesilrenk+"Büyülü Saldırı Değeri +",                  56 : constInfo.yesilrenk+"Büyülü Savunma +",                  57 : constInfo.yesilrenk+" ",                  58 : constInfo.yesilrenk+"Max Dayanıklılık +",                  59 : constInfo.yesilrenk+"Savaşçılara Karşı Güçlü %",                  60 : constInfo.yesilrenk+"Ninjalara Karşı Güçlü %",                  61 : constInfo.yesilrenk+"Suralara Karşı Güçlü %",                  62 : constInfo.yesilrenk+"Şamanlara Karşı Güçlü %",                  63 : constInfo.yesilrenk+"Yaratıklara Karşı Güçlü %",                  64 : constInfo.yesilrenk+"Saldırı Değeri +",                  65 : constInfo.yesilrenk+"Savunma +",                  66 : constInfo.yesilrenk+"EXP +?%",                  67 : constInfo.yesilrenk+"Dropchance Gegenstände ",                  68 : constInfo.yesilrenk+"Dropchance Gold ",                  69 : constInfo.yesilrenk+" ",                  70 : constInfo.yesilrenk+" ",                  71 : constInfo.yesilrenk+"Beceri Hasarı %",                  72 : constInfo.yesilrenk+"Ortalama Zarar %",                  73 : constInfo.yesilrenk+"Widerstand gegen Fertigkeitsschaden ",                  74 : constInfo.yesilrenk+"durchschn. Schadenswiderstand ",                  75 : constInfo.yesilrenk+" ",                  76 : constInfo.yesilrenk+"iCafe exp-bonus ",                  77 : constInfo.yesilrenk+"iCafe Chance auf erbeuten von gegenständen ",                  78 : constInfo.yesilrenk+"Savaşçı Saldırılarına Karşı Savunma %",                  79 : constInfo.yesilrenk+"Ninja Saldırılarına Karşı Savunma %",                  80 : constInfo.yesilrenk+"Sura Saldırılarına Karşı Savunma %",                  81 : constInfo.yesilrenk+"Şaman Saldırılarına Karşı Savunma %",             }             type1 = attrSlot[0][0]             value1 = attrSlot[0][1]                         itemtype = attrSlot[5][1]                                 if type1 == 0:                 self.AppendTextLine(constInfo.kirmizirenk+"Efsun Yok")                 return                             self.AppendTextLine("%s %s" % (efsun[attrSlot[0][0]], attrSlot[0][1]))             self.AppendTextLine("%s %s" % (efsun[attrSlot[1][0]], attrSlot[1][1]))             self.AppendTextLine("%s %s" % (efsun[attrSlot[2][0]], attrSlot[2][1]))             self.AppendTextLine("%s %s" % (efsun[attrSlot[3][0]], attrSlot[3][1]))             self.AppendTextLine("%s %s" % (efsun[attrSlot[4][0]], attrSlot[4][1]))             self.AppendSpace(5)             if itemtype == 1:                 self.AppendTextLine("Zırh")             if itemtype == 16:                 self.AppendTextLine("Silah")             if itemtype == 256:                 self.AppendTextLine("Kalkan")             if itemtype == 2:                 self.AppendTextLine("Kask")             if itemtype == 4:                 self.AppendTextLine("Ayakkabı")             if itemtype == 8:                 self.AppendTextLine("Bilezik")             if itemtype == 64:                 self.AppendTextLine("Küpe")             if itemtype == 32:                 self.AppendTextLine("Kolye")                             //ARAT         ### Hair Preview Image ###         if self.__IsHair(itemVnum):                self.__AppendHairIcon(itemVnum) //A.EKLE         if itemVnum == 78023:             self.AppendAktarmaInformation(attrSlot)             CONSTINFO.PY //EKLE yesilrenk="|cff00ff00|H|h" MySQL Player > item_proto INSERT INTO `item_proto` VALUES ('78023', 0xBFACC0E7B0E6BAF1BCAD28BCB1B9B0BFEB29, 0x456673756E20416B7461726D61204B61F0FD64FD, '3', '18', '0', '1', '237696', '8196', '0', '', '360000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0'); //////////////////////////////////////////////////////////////////////////////////////////////////// EFSUN AKTARMA END ////////////////////////////////////////////////////////////////////////////////////////////////////


Eksik Birşey Durmuyor Ama Deneyin Eksiklik Var İse Gideririm.

Not : İtemin flagını ayarlayın ust uste konmasın bug olusuyordu öyle hatırlıyorum.
Efsun Aktarma Sistemi Nedir?


Efsun Aktarma Sistemi, Metin2 özel sunucularında oyuncuların sahip oldukları efsunlanmış eşyaların efsunlarını başka bir eşyaya aktarabilmesini sağlayan gelişmiş bir sistemdir. Bu sistem sayesinde oyuncular, değerli ve zor elde edilen efsunları koruyabilirken aynı zamanda daha güçlü veya farklı bir eşya kullanabilmektedir. Bu işlem genellikle riskli olup, başarısızlık durumunda efsun veya eşya kaybı yaşanabilir. Bu nedenle doğru strateji ve hazırlıkla yaklaşılması gerekir.

Metin2 Lobby'de Efsun Aktarma Sistemleri

Metin2 özel sunucu geliştiricileri, oyuncuların deneyimini artırmak amacıyla efsun aktarma sistemlerini hem C++ hem de Python tabanlı olarak geliştirmektedir. Bu sistemler genellikle game core üzerinde çalışır ve db core ile entegre şekilde verileri yönetir. Metin2Lobby, bu konuda detaylı kaynaklar, py gui örnekleri ve uiscript dosyaları sunmaktadır.

Sistem Nasıl Çalışır?

Efsun aktarma işlemi genellikle belirli miktarda aktarma taşı, kristal veya özel para gibi materyallerle gerçekleştirilir. Oyuncu, aktarmak istediği efsunlu eşyayı ve hedef eşyayı seçtikten sonra sisteme girer. Sistemin sunduğu arayüz genellikle py root ile yazılmıştır ve kullanıcı dostu bir UI içerir. İşlem sırasında belirlenen şans oranlarına göre efsun aktarımı gerçekleşir. Başarısızlık halinde efsun ya da eşya kaybolabilir.

Python GUI ile Efsun Aktarma

Geliştiriciler, Python ile yazılmış GUI sistemleri sayesinde kullanıcıya görsel olarak destek sunar. Bu sistemler genellikle martysama tarzı özel uiscript dosyalarıyla entegre çalışır. Böylece hem geliştirici hem de oyuncu tarafı için sade ve etkili bir sistem ortaya çıkar.

Efsun Aktarma Sistemi Kodlama Örnekleri

Efsun aktarma sistemi, genellikle C++ tabanlı server src dosyalarında tanımlanır. Metin2 server src üzerinde yapılan değişiklikler, auth ve game servislerini etkileyebilir. Sistem ayrıca DB üzerinde efsun verilerini saklamak için özel tablolar içerir. Bu veriler, source edit ile kolayca özelleştirilebilir.

Risk Faktörleri ve Güvenlik Önlemleri

Efsun aktarma işlemleri genellikle riskli olduğu için sunucular, bu işlem sırasında backup almalı ya da işlem öncesi oyuncudan onay almalıdır. Bu tür sistemlerin test aşaması önemlidir. Metin2 compile süreci sırasında dikkatli davranılması gerekir. Hatalı kodlama, sunucu çökmesine veya veri kaybına neden olabilir.

Paketlenmiş Sistemler

Bazı geliştiriciler, pack olarak sunulan efsun aktarma sistemlerini doğrudan kullanabilmektedir. Bu sistemler genellikle Metin2Dev gibi platformlarda bulunur. Ancak özelleştirme yapabilmek için C++ ve Python bilgisi gerekebilir.

Sonuç

Efsun Aktarma Sistemi, Metin2 özel sunucularında oyun içi deneyimi ciddi anlamda artırır. Doğru tasarlandığında, oyuncuların sadakati ve sunucu geliri artar. Metin2Lobby üzerinden sunulan kaynaklarla bu sistemi kendi sunucunuza entegre edebilir, test edebilir ve özelleştirebilirsiniz.


What is the Enchant Transfer System?


The Enchant Transfer System is an advanced feature in Metin2 private servers that allows players to transfer enchantments from one item to another. This way, players can preserve valuable and hard-to-obtain enchantments while equipping stronger or different items. The process is often risky, and failure may result in the loss of either the enchantment or the item. Therefore, this system requires careful preparation and strategy.

Enchant Transfer Systems on Metin2 Lobby

Metin2 private server developers implement enchant transfer systems using both C++ and Python frameworks. These systems typically operate on the game core and interact with the db core for data management. Metin2Lobby offers detailed resources, py gui examples, and uiscript files related to these systems.

How Does the System Work?

The enchant transfer process usually requires specific materials such as transfer stones, crystals, or special currency. After selecting the enchanted item and the target item, the player enters the system. The interface is generally developed using py root and features user-friendly UI designs. The success rate is determined by predefined odds, and failure might lead to the loss of the enchantment or the item itself.

Enchant Transfer via Python GUI

Developers use Python-based GUI systems to provide visual support to users. These systems integrate seamlessly with custom uiscript files, similar to martysama's style, resulting in clean and efficient interfaces for both developers and players.

Coding Examples for Enchant Transfer System

The enchant transfer system is primarily defined within C++-based server src files. Modifications made to Metin2 server src affect both auth and game services. Additionally, the system includes custom tables in the DB to store enchantment data. Such data can be customized through source edit.

Risk Factors and Security Measures

Since enchant transfer processes are inherently risky, servers should take backups or require confirmation before executing transfers. Testing is crucial during implementation. Care must be taken during the Metin2 compile phase, as incorrect coding could cause server crashes or data loss.

Pre-Packaged Systems

Some developers use pre-packaged enchant transfer systems available as packs. These systems are often found on platforms like Metin2Dev. However, customization may still require knowledge of C++ and Python.

Conclusion

The Enchant Transfer System significantly enhances the gameplay experience in Metin2 private servers. When properly implemented, it increases player loyalty and server revenue. You can integrate, test, and customize this system on your own server using the resources provided on Metin2Lobby.
 

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

Geri
Üst Alt