Mobların Becerileri ile Sektirememesi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
konu ile bağlantılıdır.
Lazım olan bazı arkadaşalar varmış;

2dcc1fda5924ca98963ad00a45931c33.gif


char_skill.cpp

Kod:
float fx, fy;                 float degree = GetDegreeFromPositionXY(m_pkChr->GetX(), m_pkChr->GetY(), pkChrVictim->GetX(), pkChrVictim->GetY());                 if (m_pkSk->dwVnum == SKILL_HORSE_WILDATTACK){                     degree -= m_pkChr->GetRotation();                     degree = fmod(degree, 360.0f) - 180.0f;                     if (degree > 0) { degree = m_pkChr->GetRotation() + 90.0f; }                     else { degree = m_pkChr->GetRotation() - 90.0f; }                 }                 GetDeltaByDegree(degree, fCrushSlidingLength, &fx, &fy);                 //sys_log(0, "CRUSH! %s -> %s (%d %d) -> (%d %d)", m_pkChr->GetName(), pkChrVictim->GetName(), pkChrVictim->GetX(), pkChrVictim->GetY(), (long)(pkChrVictim->GetX()+fx), (long)(pkChrVictim->GetY()+fy));                 long tx = (long)(pkChrVictim->GetX() + fx);                 long ty = (long)(pkChrVictim->GetY() + fy);                 pkChrVictim->Sync(tx, ty);                 pkChrVictim->Goto(tx, ty);                 pkChrVictim->CalculateMoveDuration();                 pkChrVictim->SyncPacket();

Değiştir

Kod:
if (m_pkChr->IsPC()) {                     float fx, fy;                     float degree = GetDegreeFromPositionXY(m_pkChr->GetX(), m_pkChr->GetY(), pkChrVictim->GetX(), pkChrVictim->GetY());                     if (m_pkSk->dwVnum == SKILL_HORSE_WILDATTACK) {                         degree -= m_pkChr->GetRotation();                         degree = fmod(degree, 360.0f) - 180.0f;                         if (degree > 0) { degree = m_pkChr->GetRotation() + 90.0f; }                         else { degree = m_pkChr->GetRotation() - 90.0f; }                     }                     GetDeltaByDegree(degree, fCrushSlidingLength, &fx, &fy);                     //sys_log(0, "CRUSH! %s -> %s (%d %d) -> (%d %d)", m_pkChr->GetName(), pkChrVictim->GetName(), pkChrVictim->GetX(), pkChrVictim->GetY(), (long)(pkChrVictim->GetX()+fx), (long)(pkChrVictim->GetY()+fy));                     long tx = (long)(pkChrVictim->GetX() + fx);                     long ty = (long)(pkChrVictim->GetY() + fy);                     pkChrVictim->Sync(tx, ty);                     pkChrVictim->Goto(tx, ty);                     pkChrVictim->CalculateMoveDuration();                     pkChrVictim->SyncPacket();                 }

Mobların Becerileri ile Sektirememesi


Metin2 özel sunucularında geliştirilen sistemlerden biri de mobların sahip olduğu becerilerdir. Ancak bu becerilerin oyunculara karşı etkili olabilmesi için dikkat edilmesi gereken bazı önemli noktalar vardır. Özellikle PvP sistemlerinde çalışan sunucularda mob becerilerinin doğrudan sektirmemesi büyük önem taşır. Bu durum, hem oyuncu deneyimini korur hem de sunucunun dengesini sağlar.

Mob Becerileri Nedir?
Metin2'de moblar, belirli becerilere sahip olabilirler. Bu beceriler genellikle saldırı, savunma veya destek niteliğinde olabilir. Örneğin bir boss mobun 'paralize' ya da 'kanalama' gibi becerileri olabilir. Ancak bu becerilerin etkileri oyuncular üzerinde istenmeyen şekilde çalışırsa, sistem bozulabilir.

Neden Beceriler Sektirmemeli?
Oyuncularla yapılan savaşlarda, mobların becerilerinin doğrudan sektirme etkisi yaratması istenmez. Seçtirme, oyuncunun kontrolünü kaybetmesine neden olur ve bu da PvP dengesini bozar. Özellikle C++ tabanlı sistemlerde bu kontroller manuel olarak ayarlanmalıdır. Python kök dosyalarında da bu tür kontrol mekanizmaları aktif tutulmalıdır.

Becerilerin Kontrolü Nasıl Sağlanır?
Mob becerilerinin sektirme etkilerini engellemek için öncelikle game core üzerinde değişiklik yapılmalıdır. Özellikle beceri sistemlerinde, oyuncuya karşı aktif etkilerin kontrolü sağlanmalıdır. Bu işlem genellikle uiscript veya py root üzerinde yapılır. Martysama gibi sistemlerle entegre çözümler geliştirilebilir.

Sunucu Kaynağı ve Geliştirme
Metin2 özel sunucularında beceri sistemlerini düzenlemek için server src dosyalarında değişiklik yapılması gerekir. Bu kaynak kodlar genellikle C++ ile yazılmıştır. Compile işlemi sonrası beceri sistemleri yeniden derlenmelidir. Oyuncu güvenliği açısından bu tür sistemlerde auth ve db kontrolleri de aktif olmalıdır.

Py GUI ve Kullanıcı Arayüzü
Becerilerin etkileri kullanıcı arayüzünde de doğru şekilde gösterilmelidir. Py GUI sistemleri, becerilerin ne zaman aktif olduğunu ve hangi etkiye sahip olduğunu göstermek için kullanılabilir. Bu sayede hem geliştirici hem de oyuncu becerilerin nasıl çalıştığını takip edebilir.

Sonuç
Mob becerilerinin sektirme etkilerinden uzak tutulması, Metin2 özel sunucularında dengeyi korumanın temel adımlarındandır. Game server programming süreçlerinde bu kontrollerin sağlanması, oyuncu memnuniyetini artırır. Metin2lobby.com olarak bu gibi gelişmiş sistemleri aktif şekilde geliştirmeye devam ediyoruz.


Why Monster Skills Should Not Knock Players Back


Metin2 private servers often implement monster skills for gameplay enhancement. However, certain precautions must be taken to ensure these skills do not negatively affect players. Particularly in PvP oriented servers, it's crucial that monster abilities do not directly knock players back. This ensures a better player experience and maintains server balance.

What Are Monster Skills?
In Metin2, monsters can possess various skills such as attack, defense, or support abilities. For instance, a boss may have skills like 'paralyze' or 'channeling'. If these skills impact players in unwanted ways, the overall game system might become unbalanced.

Why Should Skills Not Knock Back?
During player versus monster battles, if monster skills directly cause knockback effects, it disrupts gameplay and breaks the PvP balance. Such controls must be manually handled in C++-based systems. Similarly, these control mechanisms should remain active in Python root files.

How to Control Skill Effects?
To prevent knockback effects from monster skills, modifications should be made in the game core. Specifically, active skill effects against players must be controlled. This is typically done via uiscript or py root files. Integrated solutions can also be developed using systems like Martysama.

Server Resources and Development
Editing skill systems on Metin2 private servers requires modifications in server src files. These source codes are generally written in C++. After compile operations, the skill systems need to be recompiled. Additionally, auth and db checks should be active for player security.

Py GUI and User Interface
Skill effects should be accurately displayed in the user interface. Py GUI systems can be used to show when skills are active and what their effects are. This allows both developers and players to monitor how the skills function.

Conclusion
Preventing monster skills from knocking players back is essential for maintaining balance in Metin2 private servers. Ensuring these controls during game server programming increases player satisfaction. At Metin2lobby.com, we continue to develop such advanced systems actively.​
 

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

Benzer konular

Geri
Üst Alt