client / userinferface / PythonPlayerEventHandler.h
Arat:
Değiştir:
src client/gamelib/ActorInstaceEvent.cpp
Arat:
Değiştir:
Arat:
Değiştir:
src client/gamelib/ActorInstace.h
Arat:
Değiştir:
MaviAyGames | lalaker1 Hilelerinde Pro Damageyi Engellemek İçin Yeni Yöntem!
Metin2 özel sunucularında güvenlik arttırmaya devam ediyoruz. Bu makalede, MaviAyGames tarafından geliştirilen lalaker1 hilesine karşı Pro Damage kullanımını engelleyen yeni bir yöntemi detaylı olarak ele alacağız. Bu yöntem, sunucu güvenliği açısından büyük önem taşımaktadır ve özellikle C++ tabanlı sunucu kaynak kodlarında uygulanabilir.
Pro Damage Nedir?
Pro Damage, Metin2 özel sunucularda oyuncuların hileli olarak yüksek hasar üretmesini sağlayan bir yöntemdir. Bu hile, genellikle C++ veya Python tabanlı sistemler üzerinden entegre edilir ve oyun içi dengeleri ciddi şekilde bozar. Özellikle PvP sistemlerinde adaleti ortadan kaldırarak deneyimi olumsuz etkiler.
Hile Tespiti Zorlukları
Hilelerin tespiti, gelişmiş sistemlerde bile zaman zaman zordur. Özellikle lalaker1 gibi modifiye edilmiş hileler, farklı yollarla hasar değerlerini manipüle ederek sunucuya gönderir. Bu nedenle sunucu tarafında bu tür saldırıları engellemek için daha sofistike yaklaşımlar gereklidir.
Yeni Yöntem: Sunucu Tarafında Hasar Kontrolü
Sunucu tarafında, her saldırı işleminin kontrol edildiği bir sistem kurulabilir. Bu sistem, C++ ile yazılmış game_core dosyalarında geliştirilir. Oyuncudan gelen hasar verisi, belirlenen eşik değerlerinin üzerindeyse, bu veri engellenir veya kullanıcıya uyarı gönderilir. Bu sayede Pro Damage gibi hilelerin etkileri minimize edilir.
Uygulama Adımları:
1. Game_core/src/char_battle.cpp dosyasına erişin.
2. Hasar hesaplama fonksiyonlarını izleyin.
3. Her hasar olayında maksimum hasar limiti kontrolü yapın.
4. Aşırı hasar durumunda loglama ve engelleme mekanizması oluşturun.
Örnek Kod Bloğu:
if (damage > MAX_ALLOWED_DAMAGE) {
Log('Pro Damage detected for character: ' + ch.GetName());
BlockAttack(ch);
}
Python Tabanlı Kontroller
Metin2 sunucularında py_root dizininde bulunan Python betikleriyle de benzer kontroller yapılabilir. Özellikle py_gui veya uiscript üzerinden oyun içi olaylar takip edilirken, anomali tespiti yapılarak hileli davranışlar engellenebilir. Bu yöntem, daha esnek bir yapı sağlar ancak performans etkisi göz önünde bulundurulmalıdır.
Sunucu Güvenliği Arttırma Yöntemleri
Sunucu güvenliğini artırmak için aşağıdaki adımlar da önerilir:
- Yetkisiz paketleri engelleyen sistemler kurun.
- Auth ve game sunucusu arasında şifrelenmiş bağlantılar kullanın.
- Her olayı loglayın ve analiz edin.
- Kaynak kodlarda değişiklik yaparken dikkatli olun.
Sonuç
Metin2 özel sunucularında hilelere karşı alınabilecek önlemler sürekli gelişmektedir. Pro Damage gibi hilelerin etkisini azaltmak için hem C++ hem de Python tabanlı çözümler kullanılabilir. Bu makalede anlatılan yöntemler, geliştiriciler için iyi bir başlangıç noktası teşkil eder. Güvenliği artırmak isteyen herkes, bu tarz yöntemleri kendi sistemlerine adapte edebilir.
MaviAyGames | New Method to Prevent Pro Damage in lalaker1 Cheats!
We continue to enhance security on Metin2 private servers. In this article, we will examine in detail a new method that prevents the use of Pro Damage against the lalaker1 cheat developed by MaviAyGames. This method is crucial for server security and can be applied especially in C++ based server source codes.
What is Pro Damage?
Pro Damage is a technique used in Metin2 private servers that allows players to generate high damage through cheating. This cheat is typically integrated via C++ or Python-based systems and seriously disrupts in-game balances. Especially in PvP systems, it eliminates fairness and negatively affects the gameplay experience.
Difficulties in Cheat Detection
Detecting cheats can still be challenging even in advanced systems. Particularly modified cheats like lalaker1 manipulate damage values through various methods before sending them to the server. Therefore, more sophisticated approaches are required on the server side to prevent such attacks.
New Method: Server-Side Damage Control
A system can be established on the server-side where each attack process is monitored. This system is developed within C++ written game_core files. If the damage data coming from the player exceeds predetermined threshold values, this data is blocked or a warning is sent to the user. Thus, the effects of cheats like Pro Damage are minimized.
Implementation Steps:
1. Access the game_core/src/char_battle.cpp file.
2. Follow the damage calculation functions.
3. Implement maximum damage limit checks for each damage event.
4. Create logging and blocking mechanisms for excessive damage situations.
Sample Code Block:
if (damage > MAX_ALLOWED_DAMAGE) {
Log('Pro Damage detected for character: ' + ch.GetName());
BlockAttack(ch);
}
Python-Based Controls
Similar controls can also be implemented using Python scripts located in the py_root directory of Metin2 servers. While monitoring in-game events via py_gui or uiscript, anomalies can be detected and cheating behaviors prevented. This method provides a more flexible structure but performance impact should be considered.
Methods to Increase Server Security
The following steps are also recommended to increase server security:
- Set up systems that block unauthorized packets.
- Use encrypted connections between auth and game servers.
- Log and analyze every event.
- Be cautious when making changes to source code.
Conclusion
Measures taken against cheats in Metin2 private servers are continuously evolving. Solutions based on both C++ and Python can be used to reduce the impact of cheats like Pro Damage. The methods described in this article serve as a good starting point for developers. Everyone who wishes to enhance security can adapt these types of methods to their own systems.
Arat:
Kod:
virtual void OnHit
Değiştir:
Kod:
void CPythonPlayerEventHandler::OnHit(UINT uSkill, CActorInstance& rkActorVictim, BOOL isSendPacket, bool fakedata = false) { //block lalaker1prodmg if (fakedata == false){ TraceError("HACK GASIT FMM"); return; } DWORD dwVIDVictim=rkActorVictim.GetVirtualID(); // Update Target CPythonPlayer::Instance().SetTarget(dwVIDVictim, FALSE); // Update Target if (isSendPacket) { //#define ATTACK_TIME_LOG #ifdef ATTACK_TIME_LOG static std::map<DWORD, float> s_prevTimed; float curTime = timeGetTime() / 1000.0f; bool isFirst = false; if (s_prevTimed.end() == s_prevTimed.find(dwVIDVictim)) { s_prevTimed[dwVIDVictim] = curTime; isFirst = true; } float diffTime = curTime-s_prevTimed[dwVIDVictim]; if (diffTime < 0.1f && !isFirst) { TraceError("ATTACK(SPEED_HACK): %.4f(%.4f) %d", curTime, diffTime, dwVIDVictim); } else { TraceError("ATTACK: %.4f(%.4f) %d", curTime, diffTime, dwVIDVictim); } s_prevTimed[dwVIDVictim] = curTime; #endif CPythonNetworkStream& rkStream=CPythonNetworkStream::Instance(); rkStream.SendAttackPacket(uSkill, dwVIDVictim); } if (!rkActorVictim.IsPushing()) return; // °Ĺ´ë ¸ó˝şĹÍ ąĐ¸˛ Á¦żÜ extern bool IS_HUGE_RACE(unsigned int vnum); if (IS_HUGE_RACE(rkActorVictim.GetRace())) return; CPythonCharacterManager::Instance().AdjustCollisionWithOtherObjects(&rkActorVictim); const TPixelPosition& kPPosLast=rkActorVictim.NEW_GetLastPixelPositionRef(); SVictim kVictim; kVictim.m_dwVID=dwVIDVictim; kVictim.m_lPixelX=long(kPPosLast.x); kVictim.m_lPixelY=long(kPPosLast.y); rkActorVictim.TEMP_Push(kVictim.m_lPixelX, kVictim.m_lPixelY); m_kVctkVictim.push_back(kVictim); }
src client/gamelib/ActorInstaceEvent.cpp
Arat:
Kod:
virtual void OnHit
Değiştir:
Kod:
virtual void OnHit(UINT uMotAttack, CActorInstance& rkActorVictim, BOOL isSendPacket, bool fakedata)
Arat:
Kod:
CActorInstance::__OnHit
Değiştir:
Kod:
rkEventHandler.OnHit(uSkill, rkActorVictm, isSendPacket, true);
src client/gamelib/ActorInstace.h
Arat:
Kod:
virtual void OnHit(UINT uSkill, CActorInstance& rkActorVictim, BOOL isSendPacket) = 0;
Değiştir:
Kod:
virtual void OnHit(UINT uSkill, CActorInstance& rkActorVictim, BOOL isSendPacket, bool fakedata) = 0;
MaviAyGames | lalaker1 Hilelerinde Pro Damageyi Engellemek İçin Yeni Yöntem!
Metin2 özel sunucularında güvenlik arttırmaya devam ediyoruz. Bu makalede, MaviAyGames tarafından geliştirilen lalaker1 hilesine karşı Pro Damage kullanımını engelleyen yeni bir yöntemi detaylı olarak ele alacağız. Bu yöntem, sunucu güvenliği açısından büyük önem taşımaktadır ve özellikle C++ tabanlı sunucu kaynak kodlarında uygulanabilir.
Pro Damage Nedir?
Pro Damage, Metin2 özel sunucularda oyuncuların hileli olarak yüksek hasar üretmesini sağlayan bir yöntemdir. Bu hile, genellikle C++ veya Python tabanlı sistemler üzerinden entegre edilir ve oyun içi dengeleri ciddi şekilde bozar. Özellikle PvP sistemlerinde adaleti ortadan kaldırarak deneyimi olumsuz etkiler.
Hile Tespiti Zorlukları
Hilelerin tespiti, gelişmiş sistemlerde bile zaman zaman zordur. Özellikle lalaker1 gibi modifiye edilmiş hileler, farklı yollarla hasar değerlerini manipüle ederek sunucuya gönderir. Bu nedenle sunucu tarafında bu tür saldırıları engellemek için daha sofistike yaklaşımlar gereklidir.
Yeni Yöntem: Sunucu Tarafında Hasar Kontrolü
Sunucu tarafında, her saldırı işleminin kontrol edildiği bir sistem kurulabilir. Bu sistem, C++ ile yazılmış game_core dosyalarında geliştirilir. Oyuncudan gelen hasar verisi, belirlenen eşik değerlerinin üzerindeyse, bu veri engellenir veya kullanıcıya uyarı gönderilir. Bu sayede Pro Damage gibi hilelerin etkileri minimize edilir.
Uygulama Adımları:
1. Game_core/src/char_battle.cpp dosyasına erişin.
2. Hasar hesaplama fonksiyonlarını izleyin.
3. Her hasar olayında maksimum hasar limiti kontrolü yapın.
4. Aşırı hasar durumunda loglama ve engelleme mekanizması oluşturun.
Örnek Kod Bloğu:
if (damage > MAX_ALLOWED_DAMAGE) {
Log('Pro Damage detected for character: ' + ch.GetName());
BlockAttack(ch);
}
Python Tabanlı Kontroller
Metin2 sunucularında py_root dizininde bulunan Python betikleriyle de benzer kontroller yapılabilir. Özellikle py_gui veya uiscript üzerinden oyun içi olaylar takip edilirken, anomali tespiti yapılarak hileli davranışlar engellenebilir. Bu yöntem, daha esnek bir yapı sağlar ancak performans etkisi göz önünde bulundurulmalıdır.
Sunucu Güvenliği Arttırma Yöntemleri
Sunucu güvenliğini artırmak için aşağıdaki adımlar da önerilir:
- Yetkisiz paketleri engelleyen sistemler kurun.
- Auth ve game sunucusu arasında şifrelenmiş bağlantılar kullanın.
- Her olayı loglayın ve analiz edin.
- Kaynak kodlarda değişiklik yaparken dikkatli olun.
Sonuç
Metin2 özel sunucularında hilelere karşı alınabilecek önlemler sürekli gelişmektedir. Pro Damage gibi hilelerin etkisini azaltmak için hem C++ hem de Python tabanlı çözümler kullanılabilir. Bu makalede anlatılan yöntemler, geliştiriciler için iyi bir başlangıç noktası teşkil eder. Güvenliği artırmak isteyen herkes, bu tarz yöntemleri kendi sistemlerine adapte edebilir.
MaviAyGames | New Method to Prevent Pro Damage in lalaker1 Cheats!
We continue to enhance security on Metin2 private servers. In this article, we will examine in detail a new method that prevents the use of Pro Damage against the lalaker1 cheat developed by MaviAyGames. This method is crucial for server security and can be applied especially in C++ based server source codes.
What is Pro Damage?
Pro Damage is a technique used in Metin2 private servers that allows players to generate high damage through cheating. This cheat is typically integrated via C++ or Python-based systems and seriously disrupts in-game balances. Especially in PvP systems, it eliminates fairness and negatively affects the gameplay experience.
Difficulties in Cheat Detection
Detecting cheats can still be challenging even in advanced systems. Particularly modified cheats like lalaker1 manipulate damage values through various methods before sending them to the server. Therefore, more sophisticated approaches are required on the server side to prevent such attacks.
New Method: Server-Side Damage Control
A system can be established on the server-side where each attack process is monitored. This system is developed within C++ written game_core files. If the damage data coming from the player exceeds predetermined threshold values, this data is blocked or a warning is sent to the user. Thus, the effects of cheats like Pro Damage are minimized.
Implementation Steps:
1. Access the game_core/src/char_battle.cpp file.
2. Follow the damage calculation functions.
3. Implement maximum damage limit checks for each damage event.
4. Create logging and blocking mechanisms for excessive damage situations.
Sample Code Block:
if (damage > MAX_ALLOWED_DAMAGE) {
Log('Pro Damage detected for character: ' + ch.GetName());
BlockAttack(ch);
}
Python-Based Controls
Similar controls can also be implemented using Python scripts located in the py_root directory of Metin2 servers. While monitoring in-game events via py_gui or uiscript, anomalies can be detected and cheating behaviors prevented. This method provides a more flexible structure but performance impact should be considered.
Methods to Increase Server Security
The following steps are also recommended to increase server security:
- Set up systems that block unauthorized packets.
- Use encrypted connections between auth and game servers.
- Log and analyze every event.
- Be cautious when making changes to source code.
Conclusion
Measures taken against cheats in Metin2 private servers are continuously evolving. Solutions based on both C++ and Python can be used to reduce the impact of cheats like Pro Damage. The methods described in this article serve as a good starting point for developers. Everyone who wishes to enhance security can adapt these types of methods to their own systems.
