1- Yumurtudan çıkarılan petin açılmadan nakliyeye koyulması.
char_item.cpp açılır ve aratılır
altına ekle
2- Süresi biten petin nakliyeye koyulması.
char_item.cpp açılır ve aratılır
altına ekle
3- Kendi levelinizden büyük petin nakliyeden çıkarılması.
char_item.cpp aç ve arat
Altına ekle
4- Kendi petinizin sizin levelinizi geçmesi.
newpetsystem.cpp aç ve arat
altına ekle
5- Kendi petiniz ile aynı levele ulaştığınızda nesne exp yedirilmesi.
newpetsystem.cpp aç ve arat
kod bloğu içersindeki for döngüsüne müsait biryere ekle.
6- Kilitli itemin pete nesne exp olarak yedirilmesi.
newpetsystem.cpp aç ve arat
kod bloğu içersindeki for döngüsüne müsait biryere ekle.
7- Sol alttaki mini pet ekranında skill slotlarının kayması.
uiscript/petminiinformationwindow.py açılır ve bulunur
değiştirilir.
8- Pet levelinin anlık olarak yenilenmemesi.
newpetsystem.cpp açılır ve aratılır
kod bloğunun en altına eklenir.
9- Pet levelini yükselttikten sonra pet itemine bakıldığında hala petin eski levelinin gözükmesi(samikolado'ya teşekkürler)
10- Offlineshop'a nakliye koyunca petin levelinin değişmesi sorunu
11- Official pet sistemi için slot effect eklenilmesi [UPDATE]
12- Pet açıkken gm karakterle ip komutu yazınca core vermesi.
char_item.cpp açılır ve aratılır
Kod:
if (item2->GetVnum() == 55002) {
altına ekle
Kod:
if (item->GetAttributeValue(3) == 0) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("pet_bu_halde_konulamaz.")); return false; }
2- Süresi biten petin nakliyeye koyulması.
char_item.cpp açılır ve aratılır
Kod:
if (item2->GetVnum() == 55002) {
altına ekle
Kod:
if(item->GetAttributeValue(3) < 1){ ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PET_SURESI_BITMISKEN_BUNU_YAPAMASSIN")); return false; }
3- Kendi levelinizden büyük petin nakliyeden çıkarılması.
char_item.cpp aç ve arat
Kod:
if (item->GetVnum() == 55002 && item->GetAttributeValue(0) > 0) { int pos = GetEmptyInventory(item->GetSize()); if(pos == -1) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You don't have enought space.")); return false; }
Altına ekle
Kod:
if(GetLevel() < item->GetAttributeValue(4)) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("pet leveli senin levelinden buyuk")); return false; }
4- Kendi petinizin sizin levelinizi geçmesi.
newpetsystem.cpp aç ve arat
Kod:
void CNewPetActor::SetExp(DWORD exp, int mode) {
altına ekle
Kod:
if(GetLevel() >= m_pkOwner->GetLevel()) {return;}
5- Kendi petiniz ile aynı levele ulaştığınızda nesne exp yedirilmesi.
newpetsystem.cpp aç ve arat
Kod:
void CNewPetActor::ItemCubeFeed(int type)
kod bloğu içersindeki for döngüsüne müsait biryere ekle.
Kod:
if(GetLevel() >= m_pkOwner->GetLevel()) { m_pkOwner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Pet ile ayni seviye oldugundan item yediremezsin.")); return; }
6- Kilitli itemin pete nesne exp olarak yedirilmesi.
newpetsystem.cpp aç ve arat
Kod:
void CNewPetActor::ItemCubeFeed(int type)
kod bloğu içersindeki for döngüsüne müsait biryere ekle.
Kod:
if (itemxp->IsBind() || itemxp->IsUntilBind()) { m_pkOwner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't pet this item because is binded!")); return; }
7- Sol alttaki mini pet ekranında skill slotlarının kayması.
uiscript/petminiinformationwindow.py açılır ve bulunur
Kod:
"slot" : ({"index":0, "x":-5, "y":0, "width":16, "height":16,},{"index":1, "x":58-36-5, "y":0, "width":16, "height":16,},{"index":2, "x":80-36-5, "y":0, "width":16, "height":16,},),
değiştirilir.
Kod:
"slot" : ({"index":0, "x":4, "y":0, "width":16, "height":16,},{"index":1, "x":58-36-5+9, "y":0, "width":16, "height":16,},{"index":2, "x":80-36-5+9, "y":0, "width":16, "height":16,},),
8- Pet levelinin anlık olarak yenilenmemesi.
newpetsystem.cpp açılır ve aratılır
Kod:
void CNewPetActor::SetLevel(DWORD level)
kod bloğunun en altına eklenir.
Kod:
m_pkChar->UpdatePacket(); m_pkOwner->UpdatePacket();
9- Pet levelini yükselttikten sonra pet itemine bakıldığında hala petin eski levelinin gözükmesi(samikolado'ya teşekkürler)
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
10- Offlineshop'a nakliye koyunca petin levelinin değişmesi sorunu
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
11- Official pet sistemi için slot effect eklenilmesi [UPDATE]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
12- Pet açıkken gm karakterle ip komutu yazınca core vermesi.
OFFİCİAL PET SİSTEMİ TOPLU FİXLER ! [UZMANLIK ŞEREFİNE]
Metin2 Lobby olarak bu makalede sizlere Official Pet Sistemi üzerinde yapılan toplu fixler hakkında detaylı bilgi sunuyoruz. Bu içerik, Metin2 private server geliştirme süreçlerinde büyük önem taşıyan pet sistemini daha stabil ve kullanıcı dostu hale getirmek için geliştirilmiş güncellemeleri kapsamaktadır.
Pet Sistemi Nedir?
Pet, Metin2 oyununda oyuncuların sahip olduğu canavarlar veya yaratıklardır. Oyuncuya destek sağlar, bazı petler özel yeteneklere sahiptir ve bazıları savaş sırasında yardımcı olabilir. Ancak official sistemde zaman zaman yaşanan bug ve performans sorunları nedeniyle geliştiriciler tarafından optimize edilmeye çalışılır.
Fixler Neleri Düzeltiyor?
Toplu fixler, pet sistemindeki aşağıdaki sorunları çözmeyi amaçlamaktadır:
- Petin oyun sırasında kaybolması,
- Petin saldırmaması veya yanlış hedefe saldırması,
- Petin doğru şekilde takip etmemesi,
- Petin AI sistemlerinde meydana gelen hatalar,
- Pet item drop sistemlerinde yaşanan sorunlar,
- Petin level alma veya skill geliştirme süreçlerindeki aksaklıklar.
Uygulama Adımları
Fixler, hem game server hem de client tarafında yapılabilecek küçük düzenlemelerle uygulanabilir. Bu fixler genellikle C++ tabanlı server src üzerinde düzenlenir. Öncelikle auth ve game sunucularında gerekli veritabanı güncellemeleri yapılmalıdır.
Client Tarafında Yapılan Değişiklikler
Client tarafında yapılacak düzenlemeler genellikle uiscript ve py root dosyalarında yapılır. Pet sistemine ait arayüzlerde görülen hatalar, Python GUI üzerinden düzeltilir. Bu sayede kullanıcı dostu bir sistem ortaya konur.
Sunucu Taraflı Düzenlemeler
Game server üzerinde yapılan değişiklikler, petin davranışlarını doğrudan etkiler. Bu sebeple AI modüllerine özel dikkat gösterilir. Martysama gibi gelişmiş sistemlerle birleştirildiğinde pet sistemi çok daha güçlü bir yapıya kavuşur.
Veritabanı (DB) Ayarları
Pet sistemine özel DB tablolarında yapılan güncellemeler, petin kalıcı verilerinin doğru şekilde saklanmasını sağlar. Bu tablolar genellikle pet_system, pet_info gibi isimler taşır. Bu verilerin eksiksiz ve güvenli bir şekilde tutulması, pet sisteminin uzun vadeli çalışmasında kritik rol oynar.
Fixlerin Uygulanması İçin Gerekli Kaynaklar
Metin2 geliştiricileri için bu fixler, source edit aşamalarında büyük kolaylık sağlar. Compile işlemleri sonrasında test aşamaları yapılmalı ve gerekirse debug süreçleri uygulanmalıdır. Tüm bu işlemler Metin2 Lobby tarafından sunulan core[/BR] yapıları ile daha hızlı ve güvenli bir şekilde tamamlanabilir.
Sonuç
Official Pet Sistemi için yapılan toplu fixler, hem PvP sunucular hem de roleplay sunucular için önemli bir güncellemedir. Oyuncuların petlerine olan güveni artar, sunucu performansı yükselir ve hata oranları düşer. Bu fixlerin Metin2 Lobby tarafından derlenmesi, tüm geliştiriciler için büyük bir kolaylık sağlamaktadır.
OFFICIAL PET SYSTEM BULK FIXES! [FOR THE HONOR OF EXPERTISE]
Metin2 Lobby presents detailed information about the bulk fixes applied to the Official Pet System. This content covers updates designed to make the pet system more stable and user-friendly during Metin2 private server development processes.
What Is the Pet System?
Pets are monsters or creatures owned by players in the Metin2 game. They provide support to the player, some pets have special abilities, and some can assist during battles. However, due to occasional bugs and performance issues in the official system, developers often optimize it further.
What Issues Do These Fixes Address?
Bulk fixes aim to resolve the following issues within the pet system:
- Pets disappearing during gameplay,
- Pets not attacking or targeting incorrectly,
- Pets failing to follow properly,
- Errors in pet AI systems,
- Issues with pet item drop systems,
- Glitches related to pet leveling or skill progression.
Implementation Steps
The fixes can be applied through small adjustments on both the game server and the client side. These fixes are typically edited on C++-based server src. Initially, necessary database updates must be made on auth and game servers.
Client-Side Modifications
Modifications on the client side usually occur in uiscript and py root files. Interface-related errors in the pet system are corrected via Python GUI, resulting in a more user-friendly system.
Server-Side Adjustments
Changes made on the game server directly affect pet behavior. Therefore, special attention is given to AI modules. When combined with advanced systems like Martysama, the pet system becomes significantly stronger.
Database (DB) Configurations
Updates to DB tables specific to the pet system ensure that pet-related persistent data is stored correctly. These tables often carry names like pet_system, pet_info. Maintaining these data accurately and securely is critical for the long-term operation of the pet system.
Resources Required for Applying Fixes
These fixes greatly facilitate source edit phases for Metin2 developers. After compile procedures, testing stages should be conducted, and if needed, debug processes should be applied. All of these steps can be completed faster and more securely using Metin2 Lobby's core structures.
Conclusion
Bulk fixes for the Official Pet System are important updates for both PvP and roleplay servers. Player trust in pets increases, server performance improves, and error rates decrease. The compilation of these fixes by Metin2 Lobby provides significant convenience for all developers.
