Tılsım Sistemi İçin Yeni Slot Açma | bykatil199

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba Arkadaşlar , Önce Görselle Başlamak İstiyorum.

GDRm0V.png


Sarı Renkte İşaretlediğim Yerdeki Tılsım Sistemi İçin Oraya,
Slot Açacağız.
Anlatıma Geçelim..

---AÇIYORUZ----
GameSource > Common > Servise.h

---EKLİYORUZ---

#define AHMET_TILSIM_SYSTEM

---AÇIYORUZ----
GameSource > Common > item_length.h ' aratıyoruz ITEM_BELT; altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM         "ITEM_PENDANT", #endif

---AÇIYORUZ----
GameSource > Common > length.h ' aratıyoruz WEAR_BELT; altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM         WEAR_PENDANT, #endif

---AÇIYORUZ---
GameSource > DB > ProtoReader.cpp ' "ITEM_BELT", Aratıyoruz Altına ;

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM         "ITEM_PENDANT", #endif

---AÇIYORUZ---
GameSource > GameSource> char_item.cpp 'case ITEM_BELT: aratıyoruz. Altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM         case ITEM_PENDANT: #endif

---AÇIYORUZ---

GameSource > GameSource> item.cpp 'int CItem::FindEquipCell(LPCHARACTER ch, int iCandidateCell) aratıyoruz .. altta && ITEM_BELT != GetType() yanına

---EKLİYORUZ---

Kod:
&& ITEM_PENDANT != GetType()

---AÇIYORUZ---
GameSource > GameSource> item.cpp ' else if (GetType() == ITEM_BELT) 'aratıyoruz altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM     else if (GetType() == ITEM_PENDANT)         return WEAR_PENDANT; #endif

---AÇIYORUZ---
GameSource > GameSource> item.cpp 'case ITEM_BELT: 'aratıyoruz. altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM     case ITEM_PENDANT: #endif



--- GAME SOURCE İLE İŞİMİZ BİTTİ SIRADA CLİENT SOURCE ---

---AÇIYORUZ---

ClientSource/GameLib/ItemData.h ' aratıyoruz ITEM_TYPE_BELT, ' altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM             ITEM_TYPE_PENDANT, #endif


---AÇIYORUZ---
ClientSource/UserInterface/GameType.h 'const DWORD c_Equipment_Belt = c_New_Equipment_Start + 2; ' aratıyoruz altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM     const DWORD c_Equipment_Pendant  = c_New_Equipment_Start + 3;; #endif

---AÇIYORUZ---
ClientSource/UserInterface/Locale_inc.h ' müsait biyere

---EKLİYORUZ---

Kod:
#define AHMET_TILSIM_SYSTEM

---AÇIYORUZ---
ClientSource/UserInterface/PythonıtemModule.cpp ' PyModule_AddIntConstant(poModule, "EQUIPMENT_BELT", c_Equipment_Belt); ' aratıyoruz altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM     PyModule_AddIntConstant(poModule, "EQUIPMENT_PENDANT",    c_Equipment_Pendant); #endif

---AÇIYORUZ---
ClientSource/UserInterface/PythonıtemModule.cpp ' PyModule_AddIntConstant(poModule, "ITEM_TYPE_BELT", CItemData::ITEM_TYPE_BELT); ' aratıyoruz altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM     PyModule_AddIntConstant(poModule, "ITEM_TYPE_PENDANT", CItemData::ITEM_TYPE_PENDANT); #endif

---CLİENT SOURCE İLE İŞİMİZ BİTTİ SIRADA DUMP_PROTO SOURCE AÇIYORUZ---

---AÇIYORUZ---
DUMP_PROTO/ItemCSVReader.cpp ' #include "ItemCSVReader.cpp" 'aratıp altına

---EKLİYORUZ---

Kod:
#define AHMET_TILSIM_SYSTEM

---AÇIYORUZ---
DUMP_PROTO/ItemCSVReader.cpp ' "ITEM_RING"," 'aratıp altına

---EKLİYORUZ---
Kod:
#ifdef AHMET_TILSIM_SYSTEM         "ITEM_PENDANT", #endif



----SOURCELİK İŞLER BİTTİ ROOT'DOSYAMIZI AÇIYORUZ---

---AÇIYORUZ---
Root / uitooltip.py Açıyoruz. 'elif item.ITEM_TYPE_RING == itemType: ' aratıp altına

---EKLİYORUZ---
Kod:
elif item.ITEM_TYPE_PENDANT == itemType:             self.__AppendLimitInformation()             self.__AppendAffectInformation()             self.__AppendAttributeInformation(attrSlot)

---AÇIYORUZ---
locale_tr/locale/es/ui/inventorywindow.py ' {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32}, ' aratıyoruz altına

---EKLİYORUZ---

Kod:
{"index":item.EQUIPMENT_PENDANT, "x":115, "y":145, "width":32, "height":32},

---AÇIYORUZ---
item_proto.txt Açıyoruz Tılsım Kodlarıyla Hepsini Değiştiriyoruz..

İNDİRME LİNK :
VİRUSTOTAL :
Tılsım Sistemi İçin Yeni Slot Açma

Metin2 özel sunucularında Tılsım sistemi, oyuncuların karakterlerini güçlendirmek için kullandıkları önemli bir özelliktir. Bu sistemde eşyaların slotları artırılarak daha fazla bonus özellik kazandırılması mümkündür. Ancak bazı özel sunucularda slot sayısı sınırlı olabilir. Bu durumda Tılsım sistemi için yeni slot açma işlemi, geliştiriciler tarafından manuel olarak yapılmak zorundadır.

Tılsım slot açma işlemi, genellikle C++ tabanlı sunucu kaynak kodlarında değişiklik yapılmasını gerektirir. Sunucu tarafında bulunan game core dosyalarında tanımlanan maksimum slot sayısı değiştirilerek yeni slotlar açılabilir. Bu işlem sırasında dikkat edilmesi gereken en önemli konu, hem client src hem de server src arasında tutarlılığın sağlanmasıdır. Aksi takdirde oyuncular yeni slotları göremeyebilir veya sistem doğru çalışmayabilir.

Öncelikle Tılsım sistemine ait kaynak kodlar incelenmelidir. Genellikle Martysama veya diğer Metin2Dev tabanlı kaynaklarda bu sistem uiscript dosyalarında tanımlıdır. Py GUI üzerinden kullanıcı arayüzüne entegre edilen bu sistem, py root klasörlerinde de desteklenmelidir. Bu yapıya uygun geliştirme yapabilmek için Python ve C++ bilgisi oldukça önemlidir.

Yeni slot ekleme süreci şu adımları içerir:

- Sunucu tarafında tılsım sistemine ait DB tablolarının güncellenmesi
- Auth ve Game sunucularında gerekli tanımlamaların yapılması
- Client tarafında UI güncellemesi
- Pack dosyalarının yeniden derlenmesi

Bu işlemler sırasında Metin2 compile işlemi de doğru yapılmak zorundadır. Derleme esnasında hata alınmaması için tüm sistem bileşenleri uyumlu olmalıdır. Geliştiriciler, source edit yaparken hem game core hem de db core üzerinde değişiklikleri dikkatlice gerçekleştirmelidir.

Tılsım sistemi özel sunucular için avantaj sağlar. Oyuncular daha fazla bonusla karakterlerini güçlendirip PvP savaşlarında üstünlük elde edebilirler. Bu nedenle geliştiriciler, Tılsım slot sayısını artırmak suretiyle sunucunun rekabet gücünü artırabilirler. Bu işlem Metin2 PvP sistem geliştirmeleri bağlamında stratejik bir öneme sahiptir.

Sonuç olarak, Tılsım sistemi için yeni slot açma işlemi, Metin2 özel sunucu geliştiricileri için karmaşık ama güçlü bir yöntemdir. Doğru uygulandığında hem oyuncu deneyimi hem de sunucu popülerliği artar.


Unlocking New Slots for the Talisman System

In Metin2 private servers, the Talisman system is a vital feature that allows players to enhance their characters. Increasing the number of slots on items within this system can provide additional bonuses. However, on some private servers, the number of available slots may be limited. In such cases, developers must manually unlock new slots for the Talisman system.

Adding new slots typically requires modifications in the server-side C++ source code. The maximum slot count defined in the game core files must be adjusted. It's crucial to maintain consistency between the client src and server src; otherwise, players may not see the new slots or the system might malfunction.

Firstly, the source codes related to the Talisman system should be reviewed. In most Martysama or other Metin2Dev-based sources, this system is defined in the uiscript files. The interface integrated via Py GUI must also be supported within the py root folders. To perform development compatible with this structure, knowledge of both Python and C++ is essential.

The process of adding new slots includes:

- Updating the DB tables related to the Talisman system on the server side
- Implementing necessary definitions in Auth and Game servers
- Updating the UI on the Client side
- Recompiling the Pack files

During these processes, proper Metin2 compilation is required. To avoid errors during compilation, all system components must remain compatible. Developers must carefully implement changes in both game core and db core when performing source edits.

The Talisman system provides advantages for private servers. Players can strengthen their characters with more bonuses and gain superiority in PvP battles. Therefore, developers can increase the competitiveness of their server by expanding the number of Talisman slots. This action holds strategic importance in the context of Metin2 PvP system enhancements.

In conclusion, unlocking new slots for the Talisman system is a complex but powerful method for Metin2 private server developers. When applied correctly, it enhances both player experience and server popularity.​
 

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

Benzer konular

Geri
Üst Alt