Düellodaki oyuncuya saldırı Engel && Gmlere saldırı Engel

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
newstuf ekli fileslere uyumludur. örneğin martysama

galiba başka biri düello modunda ise o modda olduğu için diğer düello modundaki kişiye saldırabiliyor
serbestide kapatabilirsiniz

gmlere saldırı engel paylaşma sebebim

ateş hayaleti zehir hamleden atak yenilebiliyor.


chat_battle

Kod:
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType) { //dışardaki oyuncu düellodaki oyuncuya saldıramasın if (CPVPManager::instance().IsFighting(this) == false&&  CPVPManager::instance().IsFighting(pkVictim) == true) return false; //dışardaki oyuncu düellodaki oyuncuya saldıramasın //gmlere saldırı engel     if (IsPC() && pkVictim->IsGM())         return false; //gmlere saldırı engel


//gmnin saldırması engel.
if (GetGMLevel() > GM_PLAYER)
return false;
//gmnin saldırması engel.

battle.cpp


Kod:
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim) {     //dışardaki oyuncu düellodaki oyuncuya saldıramasın if (CPVPManager::instance().IsFighting(ch) == false&&  CPVPManager::instance().IsFighting(victim) == true) return false;     //dışardaki oyuncu düellodaki oyuncuya saldıramasın         //gmlere saldırı engel    if (victim->IsGM())         return false;     //gmlere saldırı engel

//gmnin saldırması engel.
if (victim->GetGMLevel() > GM_PLAYER)
return false;
//gmnin saldırması engel.











update
sadece bu fonskiyonu eklseniz yeterli
tüm haritalarda düello yapan oyuncuya saldırı engellendi
belirli haritalarda düelloda değilken tüm oyunculara saldırı engellendi.
belirli haritada yabancı bayrağa saldırmak için düello yapman gerekiyor

2 tane engellenmesi gereken açık mevcut.
1-saldırı yapılmıyorsa bile animasyonla rakip oyuncu yere düşürülebiliyor.
2- 4 tane oyuncu düello modunda birbirine serbestle saldırabilir
serbeste almadan farklı bayrakda saldırabilir.

Kod:
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim) {     // Hedef olu ise saldırı yapılamaz     if (victim->IsDead())         return false;     // GM oyuncusuna saldırı engelleniyor     if (victim->IsGM())         return false;     // Zayıf durumda veya gozlemci modundaki bir oyuncuya saldırı engelleniyor     if (victim->IsObserverMode())         return false;     // Pazar karakterlerine saldırı engelleniyor     if (victim->GetRaceNum() >= 30000 && victim->GetRaceNum() <= 30100)         return false;     //zulfikar2 https://forum.turkmmo.com/konu/3860605-duellodaki-oyuncuya-saldiri-engel-gmlere-saldiri-engel/ if (CPVPManager::instance().IsFighting(ch) == false&&  CPVPManager::instance().IsFighting(victim) == true) return false;     //zulfikar2 https://forum.turkmmo.com/konu/3860605-duellodaki-oyuncuya-saldiri-engel-gmlere-saldiri-engel/     if ((ch->GetMapIndex() == 61 || ch->GetMapIndex()  == 62 || ch->GetMapIndex()  == 63) && CPVPManager::instance().IsFighting(ch) == false)         return false;     {         SECTREE    *sectree = NULL;         sectree    = ch->GetSectree();         if (sectree && sectree->IsAttr(ch->GetX(), ch->GetY(), ATTR_BANPK))             return false;



bunuda eklemeniz gerekmekte




bonus1

bonus2

Düellodaki Oyuncuya Saldırı Engel && GMlere Saldırı Engel Sistemi

Metin2 özel sunucularında güvenlik ve oyun içi deneyimi artırmak için geliştirilen bu sistem, oyuncuların GMler veya diğer oyuncularla istenmeyen çatışmalar yaşamamasını sağlar. Bu yazıda, hem Düello sırasında oyunculara saldırı engelleyen hem de GMlere saldırı yapmayı önleyen sistemlerin nasıl kurulacağını ve yapılandırılacağını detaylı olarak ele alacağız.

Düello Sistemi Nedir?
Metin2 özel sunucularında, oyuncular genellikle PvP savaşları için düello sistemini kullanırlar. Ancak bazı durumlarda, bu sistem dışındaki oyuncuların düelloda olan iki kişiye karışması veya GMler gibi yetkili karakterlerin saldırıya uğraması istenmez. İşte bu noktada devreye saldırı engelleme sistemleri girer.

Sistem Nasıl Çalışır?
Bu sistem, genellikle C++ tabanlı game core üzerinde geliştirilir. Ana mantık, bir oyuncu başka bir oyuncuya saldırı komutu verdiğinde, önce hedefin GM olup olmadığına ya da mevcut bir düello içinde olup olmadığına göre işlem yapılır. Eğer hedef GM ise veya düello sırasında başka bir oyuncuya saldırı girişiminde bulunulursa, saldırı iptal edilir ve gerekli mesaj kullanıcıya gösterilir.

Kurulum Adımları
1. Game Core Dosyalarının Düzenlenmesi
Game core dosyalarında bulunan combat fonksiyonları üzerinde değişiklik yapılması gerekir. Özellikle 'char_battle.cpp' veya benzeri dosyalarda, saldırı başlatma kontrolü yapılırken GM kontrolü ve düello kontrolü eklenmelidir.

2. Python Tarafında GUI Ayarları
Oyuncuya saldırı izni verilmemesi durumunda, Python GUI üzerinden uyarı mesajı gösterilebilir. Bu mesajlar genellikle 'uiscript' dosyalarında tanımlanır ve 'py root' üzerinden çalıştırılır.

GMlere Saldırı Engeli
GMlere saldırı engellemek için, saldırı başlatan oyuncu tarafından hedef GM mi diye kontrol edilir. Eğer GM ise, saldırı engellenir ve oyuncuya 'Yetkili karaktere saldıramazsınız!' gibi bir mesaj gönderilir. Bu kontrol genellikle C++ üzerinden yapılır ve DB üzerinden GM listesi alınabilir.

Düello İçindeki Oyunculara Müdahale Engeli
Düello sırasında başka bir oyuncu, iki oyuncunun arasına girip saldırı başlatamamalıdır. Bu durumda, DuelManager sınıfı üzerinden aktif düello kontrolü yapılır. Eğer hedef oyuncu bir düelloda ise, saldırı iptal edilir.

Avantajlar
- Oyun içi deneyimi artırır
- Yetkili karakterlerin güvende olmasını sağlar
- Haksız müdahaleleri önler
- PvP sistemini daha adil kılar

Sonuç
Bu tür saldırı engel sistemleri, Metin2 özel sunucularında kaliteli bir PvP deneyimi sunmak için kritik öneme sahiptir. Metin2lobby.com olarak, bu tür gelişmiş sistemleri sunucularınıza entegre etmek için gerekli kaynakları ve rehberleri sürekli paylaşmaya devam ediyoruz. Bu sayede hem güvenliği hem de oynanışı optimize edebilirsiniz.

Kaynak Kodlar: Metin2lobby.com


Attack Block System for Players in Duel && Attack Block System for GMs

In Metin2 private servers, this security and gameplay enhancement system prevents unwanted conflicts between players and GMs or other players during duels. In this article, we will explain in detail how to set up and configure systems that block attacks against GMs and prevent attacks on duel participants.

What Is the Duel System?
In Metin2 private servers, players often use the duel system for PvP battles. However, in some cases, it's undesirable for non-dueling players to interfere with ongoing duels or for GMs or other officials to be attacked. This is where attack blocking systems come into play.

How Does the System Work?
This system is typically developed on a C++ based game core. The main logic checks whether the target is a GM or currently in a duel before allowing a player to initiate an attack. If the target is a GM or if a player tries to attack someone else during an active duel, the attack is canceled and an appropriate message is shown to the user.

Installation Steps
1. Editing Game Core Files
Changes must be made to combat functions within the game core files. Specifically, in files like 'char_battle.cpp', checks for GM status and duel status should be added when verifying an attack attempt.

2. GUI Adjustments in Python
If an attack is blocked, a warning message can be displayed via Python GUI. These messages are usually defined in 'uiscript' files and executed through 'py root'.

Blocking Attacks Against GMs
To block attacks against GMs, the system checks if the targeted character is a GM. If so, the attack is blocked and a message such as 'You cannot attack a GM!' is sent to the player. This check is usually performed in C++ and may involve fetching a list of GMs from the database.

Preventing Interference During Duels
During a duel, another player should not be able to intervene by attacking one of the duelists. Here, the DuelManager class checks for active duels. If the target player is already in a duel, the attack is canceled.

Advantages
- Enhances in-game experience
- Ensures safety of GM characters
- Prevents unfair interference
- Makes PvP more balanced

Conclusion
Such attack-blocking systems are crucial for delivering high-quality PvP experiences in Metin2 private servers. At Metin2lobby.com, we continuously provide resources and guides to help you integrate these advanced systems into your server. This way, you can optimize both security and gameplay.

Source Codes: Metin2lobby.com
 

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

Benzer konular

Geri
Üst Alt