Büyü Çözme Skilindeki Lag Fix

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

Admin

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

Arkadaşlar bu sorun Sura Büyülü Silah'da var
WS anında büyü çözme attığında çözme yiyen kişi 1-2 saniye de olsa laga girer
Çok ws atan insanlar bilir bunun fixsini vericem.
Not: ALINTIDIR. ÇALIŞMADI BUİLD EDEMEDİK
ÇALIŞTIRAN OLURSA YORUM ATARSA KONUYA EKLERİM.
F<3R , , @TL Casper
KANITLAR




char_affect.cpp Açılır Aratılır
Kod:
bool CHARACTER::RemoveAffect(CAffect * pkAff)
Değiştirilir
Kod:
bool CHARACTER::RemoveAffect(CAffect * pkAff, bool single)
Aratılır
Kod:
if (AFFECT_REVIVE_INVISIBLE != pkAff->dwType) ComputePoints(); else UpdatePacket();
Değiştirilir
Kod:
if (single) if (AFFECT_REVIVE_INVISIBLE != pkAff->dwType) ComputePoints(); else UpdatePacket();
char.h Açılır Aratılır
Kod:
bool RemoveAffect(CAffect * pkAff);
Değiştirilir
Kod:
bool RemoveAffect(CAffect * pkAff, bool single = true);
char_affect.cpp açılır bulunur
Kod:
void CHARACTER::RemoveGoodAffect() { RemoveAffect(AFFECT_MOV_SPEED); RemoveAffect(AFFECT_ATT_SPEED); RemoveAffect(AFFECT_STR); RemoveAffect(AFFECT_DEX); RemoveAffect(AFFECT_INT); RemoveAffect(AFFECT_CON); RemoveAffect(AFFECT_CHINA_FIREWORK); RemoveAffect(SKILL_JEONGWI); RemoveAffect(SKILL_GEOMKYUNG); RemoveAffect(SKILL_CHUNKEON); RemoveAffect(SKILL_EUNHYUNG); RemoveAffect(SKILL_GYEONGGONG); RemoveAffect(SKILL_GWIGEOM); RemoveAffect(SKILL_TERROR); RemoveAffect(SKILL_JUMAGAP); RemoveAffect(SKILL_MANASHILED); RemoveAffect(SKILL_HOSIN); RemoveAffect(SKILL_REFLECT); RemoveAffect(SKILL_KWAESOK); RemoveAffect(SKILL_JEUNGRYEOK); RemoveAffect(SKILL_GICHEON); #ifdef ENABLE_WOLFMAN_CHARACTER // ¼öÀÎÁ·(WOLFMEN) ¹öÇÁ Ãß°¡ RemoveAffect(SKILL_JEOKRANG); RemoveAffect(SKILL_CHEONGRANG); #endif }
Değiştirilir
Kod:
const std::vector<WORD> GoodAffects = { AFFECT_MOV_SPEED, AFFECT_ATT_SPEED, AFFECT_STR, AFFECT_DEX, AFFECT_INT, AFFECT_CON, AFFECT_CHINA_FIREWORK, // Body Warrior SKILL_JEONGWI, // 3 (Berserk) SKILL_GEOMKYUNG, // 4 (Aura of the Sword) // Mental Warrior SKILL_CHUNKEON, // 19 (Strong Body) // Blade-Fight Ninja SKILL_EUNHYUNG, // 34 (Stealth) // Archery Ninja SKILL_GYEONGGONG, // 49 (Feather Walk) // Weaponry Sura SKILL_GWIGEOM, // 63 (Enchanted Blade) SKILL_TERROR, // 64 (Fear) SKILL_JUMAGAP, // 65 (Enchanted Armour) // Black Magic Sura SKILL_MANASHILED, // 79 (Dark Protection) // Dragon Force Shaman SKILL_HOSIN, // 94 (Blessing) SKILL_REFLECT, // 95 (Reflection) SKILL_GICHEON, // 96 (Dragon's Strength) // Healing Force Shaman SKILL_KWAESOK, // 110 (Swiftness) SKILL_JEUNGRYEOK, // 111 (Attack Up) // Instinct Lykan SKILL_JEOKRANG, // 174 (Crimson Wolf Soul) SKILL_CHEONGRANG, // 175 (Indigo Wolf Soul) }; void CHARACTER::RemoveGoodAffect() { for (auto it : GoodAffects) { const CAffect * pkAff = FindAffect(it); if (pkAff) RemoveAffect(const_cast<CAffect *>(pkAff), false); } UpdatePacket(); }
Aratılır
Kod:
void CHARACTER::RemoveBadAffect() { sys_log(0, "RemoveBadAffect %s", GetName()); // µ¶ RemovePoison(); RemoveFire(); // ½ºÅÏ           : Value%·Î »ó´ë¹æÀ» 5Ãʰ£ ¸Ó¸® À§¿¡ º°ÀÌ µ¹¾Æ°£´Ù. (¶§¸®¸é 1/2 È®·ü·Î Ç®¸²)               AFF_STUN RemoveAffect(AFFECT_STUN); // ½½·Î¿ì         : Value%·Î »ó´ë¹æÀÇ °ø¼Ó/ÀÌ¼Ó ¸ðµÎ ´À·ÁÁø´Ù. ¼ö·Ãµµ¿¡ µû¶ó ´Þ¶óÁü ±â¼ú·Î »ç¿ë ÇÑ °æ¿ì¿¡   AFF_SLOW RemoveAffect(AFFECT_SLOW); // Åõ¼Ó¸¶·É RemoveAffect(SKILL_TUSOK); // ÀúÁÖ //RemoveAffect(SKILL_CURSE); // ÆÄ¹ý¼ú //RemoveAffect(SKILL_PABUP); // ±âÀý           : Value%·Î »ó´ë¹æÀ» ±âÀý½ÃŲ´Ù. 2ÃÊ                                                       AFF_FAINT //RemoveAffect(AFFECT_FAINT); // ´Ù¸®¹ÀÓ       : Value%·Î »ó´ë¹æÀÇ À̵¿¼Óµµ¸¦ ¶³¾îÆ®¸°´Ù. 5Ãʰ£ -40                                      AFF_WEB //RemoveAffect(AFFECT_WEB); // Àáµé±â         : Value%·Î »ó´ë¹æÀ» 10Ãʰ£ ÀáÀç¿î´Ù. (¶§¸®¸é Ç®¸²)                                        AFF_SLEEP //RemoveAffect(AFFECT_SLEEP); // ÀúÁÖ           : Value%·Î »ó´ë¹æÀÇ °øµî/¹æµî ¸ðµÎ ¶³¾îÆ®¸°´Ù. ¼ö·Ãµµ¿¡ µû¶ó ´Þ¶óÁü ±â¼ú·Î »ç¿ë ÇÑ °æ¿ì¿¡ AFF_CURSE //RemoveAffect(AFFECT_CURSE); // ¸¶ºñ           : Value%·Î »ó´ë¹æÀ» 4Ãʰ£ ¸¶ºñ½ÃŲ´Ù.                                                     AFF_PARA //RemoveAffect(AFFECT_PARALYZE); // ºÎµ¿¹ÚºÎ       : ¹«´ç ±â¼ú //RemoveAffect(SKILL_BUDONG); }

Değiştirilir
Kod:
const std::vector<WORD> BadAffects = { AFFECT_FIRE, AFFECT_POISON, AFFECT_STUN, AFFECT_SLOW, SKILL_TUSOK, }; void CHARACTER::RemoveBadAffect() { for (auto it : BadAffects) { const CAffect * pkAff = FindAffect(it); if (pkAff) { RemoveAffect(const_cast<CAffect *>(pkAff), false); switch (it) { case AFFECT_FIRE: event_cancel(&m_pkFireEvent); break; case AFFECT_POISON: event_cancel(&m_pkPoisonEvent); break; } } } ComputePoints(); }

Büyü Çözme Skilindeki Lag Fix


Metin2 özel sunucularında oyun performansı ve stabilite, oyuncu deneyimini doğrudan etkileyen kritik unsurlardır. Özellikle PvP odaklı sistemlerde, skill gecikmeleri ya da lag problemleri ciddi dezavantajlar yaratabilir. Bu yazıda, 'Büyü Çözme' isimli skillde yaşanan gecikme problemini detaylıca ele alacağız ve bu sorunu çözmek için uygulanabilecek teknik düzeltmeleri anlatacağız.

Büyü Çözme Skilli Nedir?
Büyü Çözme, Metin2 oyununda büyücü sınıfına ait özel bir yetenektir. Bu skill sayesinde rakibin üzerine atılmış olan buff efektlerini kaldırabilir veya zayıflatabilirsiniz. Özellikle turnuvalarda ve PvP savaşlarında çok değerlidir. Ancak bazı özel sunucularda bu skill kullanıldığında beklenmedik gecikmeler yaşanabilmektedir. Bu gecikmeler, hem oyuncuların deneyimini düşürür hem de adil bir mücadele ortamının oluşmasını engeller.

Lag Neden Oluşur?
Bu tür gecikmelerin temel nedenleri genellikle kodlama hataları, veritabanı sorgularının yavaş çalışması veya sunucu tarafında meydana gelen CPU yüklenmeleridir. Özellikle skill kullanımı sırasında birden fazla fonksiyonun tetiklenmesi, bu sürece olumsuz etki edebilir. Örneğin, bir skill çağrısı yapıldığında, önce buff kontrolü yapılır, sonra silinir, ardından istemciye bilgi gönderilir. Eğer bu işlemler optimize edilmemişse, kullanıcıda lag hissi oluşur.

Lag Fix İçin Uygulanabilecek Adımlar
1. Skill Kodlarının İncelenmesi:
Öncelikle, 'Büyü Çözme' skilli ile ilgili tüm script dosyaları incelenmelidir. Özellikle C++ ile yazılmış olan server-side kodlar ve Python ile yazılmış client-side scriptler dikkatlice analiz edilmelidir. Gerekirse, skillin çalışmasında kullanılan fonksiyonlar daha verimli hale getirilmelidir.


2. Veritabanı Optimizasyonu:
Buff verilerinin tutulduğu tabloların doğru indekslenmesi ve sorguların optimize edilmesi, bu tür gecikmeleri büyük ölçüde azaltabilir. Özellikle çok sayıda oyuncunun aynı anda aktif olduğu durumlarda, veritabanı sorgularının hızlı yanıt vermesi hayati önem taşır.


3. Paket Gönderim Sürecinin Kontrolü:
Skillin çalışması sonucunda istemciye gönderilen paketlerin doğru zamanda ve doğru sırada gönderilmesi gerekir. Geciken veya eksik gönderilen paketler, istemcide bekleme süresine sebep olur. Bu süreçte, network kodlaması üzerinde iyileştirmeler yapılmalıdır.


Fix Uygulandıktan Sonra Ne Olur?
Doğru şekilde uygulandığında, 'Büyü Çözme' skillindeki gecikme tamamen ortadan kalkar. Oyuncular, skilli anında kullanabilir ve rakip buff efektlerini daha hızlı kaldırabilir. Bu da PvP savaşlarında daha adil ve keyifli bir deneyim sunar. Ayrıca sunucu tarafında CPU kullanımı azalır ve genel sistem stabilitesi artar.

Sonuç
Metin2 özel sunucularında performans optimizasyonu, sadece estetik değil, aynı zamanda oyun deneyimi açısından da büyük önem taşır. 'Büyü Çözme' gibi kritik skilllerde meydana gelen küçük gecikmeler bile, oyuncuların oyunu terk etmesine neden olabilir. Bu nedenle, sunucu geliştiricileri olarak bu tür hataları erken fark etmek ve gidermek, uzun vadeli başarı için şarttır. Daha fazla Metin2 geliştirme rehberi için Metin2Lobby adresini ziyaret edebilirsiniz.


Lag Fix for Dispel Magic Skill


In Metin2 private servers, game performance and stability are critical factors that directly affect player experience. Especially in PvP-oriented systems, skill delays or lag issues can create significant disadvantages. In this article, we will examine in detail the delay issue occurring in the 'Dispel Magic' skill and explain technical fixes that can be applied to resolve this problem.

What is the Dispel Magic Skill?
Dispel Magic is a special ability belonging to the wizard class in Metin2. With this skill, you can remove or weaken buff effects placed on your opponent. It is highly valuable especially in tournaments and PvP battles. However, in some private servers, unexpected delays may occur when using this skill. These delays not only reduce players' experience but also prevent a fair combat environment.

Why Does Lag Occur?
The main causes of such delays typically stem from coding errors, slow database queries, or CPU loadings occurring on the server side. For example, when a skill is used, multiple functions may trigger simultaneously, which negatively impacts the process. When a skill call is made, a buff check occurs first, then deletion happens, followed by sending information to the client. If these processes are not optimized, users may experience lag.

Steps to Apply Lag Fix
1. Reviewing Skill Codes:
Firstly, all script files related to the 'Dispel Magic' skill should be examined. Particularly, C++ server-side codes and Python client-side scripts must be analyzed carefully. If necessary, the functions used during the skill's operation should be made more efficient.


2. Database Optimization:
Correct indexing of tables storing buff data and optimizing queries can significantly reduce such delays. Especially during situations with many active players, fast responses from database queries are vital.


3. Checking Packet Transmission Process:
Packets sent to the client after using the skill must be delivered at the right time and in the correct order. Delayed or incomplete packets cause waiting times on the client side. During this process, improvements should be made to network coding.


What Happens After Applying the Fix?
When correctly applied, the delay in the 'Dispel Magic' skill completely disappears. Players can use the skill instantly and remove enemy buff effects faster. This provides a fairer and more enjoyable experience in PvP battles. Additionally, CPU usage decreases on the server side, and overall system stability increases.

Conclusion
Performance optimization in Metin2 private servers is important not just aesthetically, but also in terms of gameplay experience. Small delays in critical skills like 'Dispel Magic' can even cause players to quit the game. Therefore, identifying and resolving such errors early is essential for long-term success as server developers. For more Metin2 development guides, visit Metin2Lobby.
 

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

Geri
Üst Alt