Metin moblarının saldırmaması fixi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Bir oyuncu metine saldırdığında başka bir oyuncuda o metine saldırırsa ilk saldıran oyuncu öldükten sonra metinden çıkan moblar sonradan saldıran oyuncuları hedef almıyor. Bunun çözümünü paylaşıcam.

raw


* char_battle.cpp

Arat:
Kod:
LPCHARACTER CHARACTER::GetNearestVictim(LPCHARACTER pkChr)

Bul:
Kod:
if (!pAttacker)             continue;

Değiştir:
Kod:
if (!pAttacker || pAttacker->IsDead())             continue;

Metin2 Moblarının Saldırmaması Fixi

Metin2 özel sunucularında geliştirme yaparken karşılaşılan en yaygın sorunlardan birisi, mobların karakterlere saldırı yapmamasıdır. Bu durum hem oyuncu deneyimini ciddi şekilde etkiler hem de sunucunun PvP/PvE dengesini bozar. Bu yazıda, Metin2 moblarının saldırmaması sorununu teşhis edip çözmeye yönelik detaylı bir rehber sunacağız.

Sorunun Kaynağını Anlamak

Metin2 özel sunucularında mobların saldırı yapmamasının birden fazla sebebi olabilir. Bu sebepler genellikle AI script hatalarından, server side ayarlamalardan ya da client-side eksikliklerden kaynaklanır. Öncelikle hangi katmanda hata olduğunu belirlemek gerekir.

Olası Sebepler

1. AI Script Hataları: Mobların ne zaman saldırdığını belirleyen AI dosyalarında hata olabilir. Bu dosyalar genellikle game core içinde yer alır ve doğru yapılandırılmadığında moblar pasif kalabilir.
2. Mob Attributes: Mobların level, dam, target_range gibi değerleri yanlışsa saldırı başlatamazlar.
3. Map Ayarları: Bazı haritalarda safezone aktif olabilir veya PvP modu nedeniyle moblar saldırı yapmaz.
4. Client-Side: Client tarafında bazı ayarlar ya da scriptler mob davranışlarını etkileyebilir.

Fix Adımları

Aşağıdaki adımları sırayla takip ederek bu sorunu çözebilirsiniz:

1. AI Dosyası Kontrolü
Game sunucusundaki mob_proto ve ai_proto dosyalarını kontrol edin. Mob ID’lerin doğru şekilde eşleştiğinden emin olun. AI scriptinde Aggressive veya Attack komutlarının eksik olmadığından emin olun.

2. Mob Özelliklerini Güncelle
Metin2 admin paneli üzerinden ya da doğrudan mob_proto tablosuna erişerek mobların level, hp, dam gibi değerlerini kontrol edin. Target range değeri düşükse mob, karaktere yaklaşamayabilir.

3. Map Ayarlarını Kontrol Et
Harita ayarlarını kontrol edin. Özellikle safezone, safearea, veya PvP modunun aktif olduğu bölgelerde moblar saldırmaz. map_attr.txt dosyasını inceleyin ve gerekli haritaların saldırı izni verdiğini doğrulayın.

4. Client Tarafını İncele
Client tarafında uiscript veya root klasörlerinde mob davranışlarını etkileyen scriptler olabilir. Bu scriptlerin mob saldırılarını engelleyecek bir filtre içermediğinden emin olun.

C++ Sunucu Tarafında Geliştirme

Metin2 sunucularında bu tür davranışlar genellikle C++ server source üzerinde tanımlanır. Sunucu kodlarında char_manager.cpp, battle.cpp ve mob.cpp gibi dosyaları incelemek gerekir. Bu dosyalarda CanAttack, CheckTarget gibi fonksiyonlar mobların saldırı yapma durumlarını belirler. Bu fonksiyonlarda yapılan değişiklikler, mob davranışlarını doğrudan etkiler.

Python Script Kullanımı

Bazı özel sunucular, mob davranışlarını kontrol etmek için Python GUI veya py root üzerinden çalışan scriptler kullanabilir. Bu scriptlerde mobların saldırı mesafesi, hedef seçimi gibi parametreler tanımlanabilir. Eğer Python tarafında bir hata varsa, bu da mobların pasif kalmasına neden olabilir.

Sonuç

Metin2 özel sunucularında mobların saldırmaması problemi, hem server-side hem de client-side birçok farklı nedenden kaynaklanabilir. Sorunu çözmenin en etkin yolu, sistematik olarak her katmandaki yapılandırmaları kontrol etmektir. Bu rehber sayesinde Metin2 lobby kullanıcıları, sunucularında bu sorunu daha hızlı teşhis edip çözebilirler.


Fix for Metin2 Mobs Not Attacking

One of the most common issues encountered during development on Metin2 private servers is mobs not attacking characters. This issue significantly affects player experience and disrupts the PvP/PvE balance of the server. In this article, we'll provide a detailed guide on diagnosing and fixing the Metin2 mobs not attacking issue.

Understanding the Source of the Problem[/BR]
There are several potential causes for mobs not attacking in Metin2 private servers. These issues typically arise from AI script errors, server-side configurations, or client-side problems. Identifying which layer contains the error is crucial.

Possible Causes

1. AI Script Errors: The AI files that determine when mobs attack may contain errors. These files are usually located within the game core and if misconfigured, mobs can remain passive.
2. Mob Attributes: If values like level, damage, or target_range are incorrect, mobs cannot initiate attacks.
3. Map Settings: Some maps might have safe zones active, or PvP modes preventing mob attacks.
4. Client-Side Issues: Certain settings or scripts on the client-side may affect mob behavior.

Fix Steps

Follow these steps in order to resolve this issue:

1. Check AI Files
Examine the mob_proto and ai_proto files on the game server. Ensure that mob IDs match correctly. Verify that Aggressive or Attack commands are present in the AI scripts.

2. Update Mob Properties
Through the Metin2 admin panel or directly in the mob_proto table, verify the mob's level, hp, damage, etc. If the target range value is too low, the mob may fail to approach the character.

3. Check Map Settings
Review map settings. Safe zones, safe areas, or active PvP modes in certain maps can prevent mob attacks. Examine the map_attr.txt file and confirm that required maps allow attacks.

4. Review Client Side
Check for scripts in uiscript or root folders on the client side that may influence mob behavior. Ensure they do not contain filters that block mob attacks.

C++ Server-Side Development

In Metin2 servers, such behaviors are generally defined in the C++ server source. Files such as char_manager.cpp, battle.cpp, and mob.cpp must be examined. Functions like CanAttack and CheckTarget in these files determine whether mobs initiate attacks. Modifications to these functions directly affect mob behavior.

Using Python Scripts

Some private servers use scripts running through Python GUI or py root to control mob behavior. These scripts define parameters such as attack range and target selection for mobs. If there's an error in the Python side, it may also cause mobs to remain passive.

Conclusion

The issue of mobs not attacking in Metin2 private servers can stem from various reasons on both server-side and client-side. The most effective way to resolve this issue is systematically checking configurations across each layer. With this guide, Metin2 lobby users can diagnose and fix this problem more quickly.
 

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

Benzer konular

Geri
Üst Alt