İstenilen mob'un sektirememesi/yere düşürememesi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
<blockquote data-attributes="member: 2183169" data-quote="Ray Kon" data-source="post: 20231590" class="bbCodeBlock bbCodeBlock--expandable bbCodeBlock--quote js-expandWatch">
Kod:
bool[/FONT] CActorInstance::__CanPushDestActor(CActorInstance&amp; rkActorDst)

return true;'dan bir önce eklenir.

Kod:
if (GetRace() == 1093){ return false; }
[/B]
Aratılır;
Kod:
if (NRaceData::HIT_TYPE_GOOD == c_rAttackData.iHittingType || rVictim.IsResistFallen())

Değiştirilir;
Kod:
if (GetRace() == 1093){ __HitStone(rVictim); }         ///////////         // Motion         else if (NRaceData::HIT_TYPE_GOOD == c_rAttackData.iHittingType || rVictim.IsResistFallen())
[/B]

Not: İlk GIF'teki boss ile ikinci GIF'teki bossların farklı olma sebebi, ilk Azrail ile çekeyim dedim fakat yanındaki patronlar da sektirdiği için net gözükmüyordu ben de mob vnumunu değiştirdim. Daha sonra da derleme yaptığım için tekrar azrail ile deneyemedim, Lusifer ile denedim.

Çok önemli not: Becerilerinde sekme özelliği olan moblar için geçerli değildir. Bu sekmeler core'den uygulanıyor.


45a152e429f41ce2e1fbc20f5e596583.gif
13a939b485bb6c5e003bc9be4540a97f.gif

Metin2 Özel Sunucularında Mobların Sektirememesi veya Yere Düşememesi Sorunu ve Çözüm Yolları

Metin2 özel sunucu geliştirme süreçlerinde geliştiricilerin karşılaştığı yaygın problemlerden birisi, mobların (canavarların) belirlenen alanlar dışında seyahat edememesi ya da yere düşememesidir. Bu durum hem oyun içi deneyimi olumsuz etkiler hem de PvP sistemlerinde dengesizliklere yol açabilir. Bu yazıda, Metin2 özel sunucularda mobların sektirememesi veya yere düşememesi gibi sorunlara odaklanarak nedenlerini ve çözümlerini detaylı şekilde ele alacağız.

Mob Hareket Sistemleri ve AI Yapısı Nedir?
Metin2'de moblar, belirli bir yapay zekâ (AI) sistemine göre hareket ederler. Bu sistem, mobların belirli alanlarda dolaşmasını, oyuncuları takip etmesini ve geri çekilmelerini sağlar. Ancak bazı durumlarda, bu sistem yanlış yapılandırıldığında ya da harita verilerinde hata varsa, moblar haritanın sınırları dışına çıkamaz ya da yere düşemezler.

Mobların Sektirememesi Neden Olur?
Bu sorun genellikle aşağıdaki sebeplerden dolayı ortaya çıkar:
- Harita dosyalarında (.msm) fiziksel engellerin eksik tanımlanması.
- AI scriptlerinde hatalı yol bulma algoritmaları.
- Movement_speed veya other_aggressive_range gibi ayarlamaların uygun olmaması.
- Client-side kontrol mekanizmalarının sunucu tarafında eksik uygulanması.

Yere Düşememe Sorunu
Metin2 haritalarında bazı yükseklik farkları vardır. Örneğin, bazı zindanlar ya da dağlık bölgelerde moblar düşmelere takılıp kalabilir. Bu durumda, moblar yere düşememiş olurlar. Bu da oyun içi akışı bozar. Bu problem genellikle collision (çarpışma) verilerindeki eksiklikten veya pathfinding (yol bulma) algoritmasındaki hatalardan kaynaklanır.

C++ ve Python Tabanlı Çözüm Yaklaşımları
Metin2 sunucu tarafında, bu tür hatalar genellikle C++ kaynak kodlarında düzeltilir. Özellikle game_core klasöründe yer alan AI.cpp, battle.cpp gibi dosyalar incelenerek, mobların hareket mantığı üzerinde değişiklikler yapılabilir. Ayrıca, Python GUI ile entegre çalışan bazı scriptlerle, oyun içi verileri daha net analiz edebilirsiniz.

Py Root ve Uiscript ile Görsel Kontrol[/COORD]
Py Root klasöründe yer alan Python scriptleri, istemci tarafında görsel olarak mob davranışlarını izlemeye olanak tanır. Uiscript ile geliştirilen özel arayüzlerle, geliştiriciler gerçek zamanlı olarak mobların konumlarını ve hareketlerini kontrol edebilirler. Bu sayede, sektirememe veya yere düşememe sorunlarının kökünü görebilirsiniz.

Martysama ve Diğer Geliştirici Kaynakları
Metin2 geliştiricileri arasında popüler olan Martysama gibi sistemler, bu tarz sorunları çözmek için örnek AI scriptleri ve C++ modifikasyonları sunar. Bu tür kaynaklardan faydalanmak, geliştiricilerin hataları daha hızlı teşhis etmesini sağlar.

Sunucu Tarafında Test ve Debugging
Olası hataları tespit etmek için, sunucu tarafında debug logları aktif edilmeli ve AI modülünden gelen veriler izlenmelidir. Auth ve game server logları üzerinden, mobların nerede takıldığını analiz etmek mümkündür. Bu süreçte DB Core ile entegre çalışan sorgularla, mobların spawn noktaları ve AI ID'leri kontrol edilebilir.

Önerilen Ayarlar ve Yapılandırmalar
Aşağıda, mobların doğru şekilde seyahat etmesi için önerilen bazı yapılandırma ayarları verilmiştir:
- AI Range: 50-100 arası.
- Movement Speed: 100-200 arası.
- Pathfinding Distance: 10-20 arası.
Bu ayarlar, harita tiplerine göre optimize edilmelidir.

Sonuç
Metin2 özel sunucularında mob davranışları, oyun deneyimini doğrudan etkiler. Seçtirememe veya yere düşememe gibi hatalar, oyunun akışını bozabileceği gibi, PvP sistemlerinde ciddi avantaj/denge problemleri de yaratabilir. Bu nedenle, C++ ve Python tabanlı gelişmiş sistemlerle bu tür hatalar erken aşamada tespit edilmeli ve düzeltilmelidir.


Preventing Mobs from Moving Through Walls or Falling in Metin2 Private Servers

In Metin2 private server development, one of the common issues developers face is mobs not being able to move through certain areas or failing to fall down onto lower platforms. This issue negatively impacts the in-game experience and can create imbalances during PvP events. In this article, we will examine the causes and solutions for preventing mobs from moving through sectors or falling in Metin2 private servers, focusing on the topic while also adding relevant general information about the niche where needed.

What Are Mob Movement Systems and AI Structure?
In Metin2, mobs follow a specific artificial intelligence (AI) system that allows them to wander within defined zones, chase players, or retreat. However, if this system is incorrectly configured or map data contains errors, mobs may be unable to leave their designated area or fall off cliffs.

Why Can't Mobs Move Through Areas?
This issue usually occurs due to the following reasons:
- Missing physical obstacle definitions in map files (.msm).
- Incorrect pathfinding algorithms in AI scripts.
- Improperly set movement_speed or other_aggressive_range values.
- Incomplete implementation of client-side control mechanisms on the server side.

Problem of Mobs Not Falling Down
Some maps in Metin2 have height differences, such as dungeons or mountainous terrains. In these areas, mobs may get stuck and fail to fall down, which disrupts gameplay flow. This problem often stems from missing collision data or errors in the pathfinding algorithm.

C++ and Python-Based Solution Approaches
Such issues in Metin2 server-side are typically fixed within the C++ source code. Particularly, files like AI.cpp and battle.cpp located in the game_core folder can be examined to modify mob movement logic. Additionally, scripts integrated with Python GUI allow real-time analysis of in-game data.

Visual Control with Py Root and Uiscript
Python scripts located in the Py Root folder allow developers to visually monitor mob behavior on the client side. Custom interfaces built with Uiscript enable real-time tracking of mob positions and movements, allowing you to identify the root cause of movement restrictions or falling issues.

Resources Like Martysama and Other Developer Tools
Popular among Metin2 developers, systems like Martysama offer sample AI scripts and C++ modifications to resolve such issues. Utilizing these resources helps developers detect errors more quickly.

Testing and Debugging on Server-Side[/BR]To identify potential errors, debug logs must be enabled on the server-side, and data coming from the AI module should be monitored. By analyzing logs from both auth and game servers, you can determine where mobs are getting stuck. During this process, queries integrated with DB Core can be used to check mob spawn points and AI IDs.

Suggested Settings and Configurations
Below are some recommended configuration settings to ensure mobs move correctly:
- AI Range: Between 50-100.
- Movement Speed: Between 100-200.
- Pathfinding Distance: Between 10-20.
These settings should be optimized according to map types.

Conclusion
Mob behaviors in Metin2 private servers directly affect the gaming experience. Issues like inability to pass through sectors or falling can disrupt game flow and cause serious balance problems in PvP systems. Therefore, advanced systems based on C++ and Python should be used to detect and fix such errors early.
 

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

Benzer konular

Geri
Üst Alt