en basit yoldan kill efekt duel efekt

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
ve birleştirlmiş ve basitleştirilmiş hali.


Bu yolla birçok efekti çağırabilirsiniz.
mesela yürürken bile efekt yapabilirsiniz.

Sistem şöyle işler
Ws yollarken 2 tarafa efekt.
ws başlarken 2 tarafa efekt.
ws bitiminde 2 tarafa efekt.

diğer konulardan farkı kolay yoldan yapılması ve ölen oyuncuyada ölüm efekti eklenmesi

d:/ymir work/effect/etc/pvp/

bu bölüme atılacak dosyalar.

Kod:
Pvpp .cpp like void CPVPManager::Insert(LPCHARACTER pkChr, LPCHARACTER pkVictim) {     if (pkChr->IsDead() || pkVictim->IsDead())         return;     CPVP kPVP(pkChr->GetPlayerID(), pkVictim->GetPlayerID());     CPVP * pkPVP;     if ((pkPVP = Find(kPVP.m_dwCRC)))     {         if (pkPVP->Agree(pkChr->GetPlayerID()))         {             pkVictim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s님과의 대결 시작!"), pkChr->GetName());             pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s님과의 대결 시작!"), pkVictim->GetName()); // #ifdef ENABLE_PVP_EFFECT_SYSTEM //ekleeee //1. oyuncu ws başlama efekti             pkVictim->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/go.mse");         //    2. oyuncu ws başlama efekti             pkChr->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/go.mse");                     //ekleeee           // #endif         }         return;     }     pkPVP = M2_NEW CPVP(kPVP);     pkPVP->SetVID(pkChr->GetPlayerID(), pkChr->GetVID());     pkPVP->SetVID(pkVictim->GetPlayerID(), pkVictim->GetVID());     m_map_pkPVP.emplace(pkPVP->m_dwCRC, pkPVP);     m_map_pkPVPSetByID[pkChr->GetPlayerID()].emplace(pkPVP);     m_map_pkPVPSetByID[pkVictim->GetPlayerID()].emplace(pkPVP);     pkPVP->Packet();     char msg[CHAT_MAX_LEN + 1];     snprintf(msg, sizeof(msg), LC_TEXT("%s님이 대결신청을 했습니다. 승낙하려면 대결동의를 하세요."), pkChr->GetName());     pkVictim->ChatPacket(CHAT_TYPE_INFO, msg);     pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s에게 대결신청을 했습니다."), pkVictim->GetName()); // #ifdef ENABLE_PVP_EFFECT_SYSTEM //ekleeee // 1. oyuncu ws yollama efekt     pkChr->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/pvp_open1.mse");     //2. oyuncu ws başlama efekt     pkVictim->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/pvp_open2.mse");     //ekleeee // #endif     // NOTIFY_PVP_MESSAGE     LPDESC pkVictimDesc = pkVictim->GetDesc();     if (pkVictimDesc)     {         TPacketGCWhisper pack;         int len = MIN(CHAT_MAX_LEN, strlen(msg) + 1);         pack.bHeader = HEADER_GC_WHISPER;         pack.wSize = sizeof(TPacketGCWhisper) + len;         pack.bType = WHISPER_TYPE_SYSTEM;         strlcpy(pack.szNameFrom, pkChr->GetName(), sizeof(pack.szNameFrom));         TEMP_BUFFER buf;         buf.write(&pack, sizeof(TPacketGCWhisper));         buf.write(msg, len);         pkVictimDesc->Packet(buf.read_peek(), buf.size());     }     // END_OF_NOTIFY_PVP_MESSAGE } Like bool CPVPManager::Dead(LPCHARACTER pkChr, DWORD dwKillerPID) {     CPVPSetMap::iterator it = m_map_pkPVPSetByID.find(pkChr->GetPlayerID());     if (it == m_map_pkPVPSetByID.end())         return false;     bool found = false;     sys_log(1, "PVPManager::Dead %d", pkChr->GetPlayerID());     TR1_NS::unordered_set<CPVP*>::iterator it2 = it->second.begin();     while (it2 != it->second.end())     {         CPVP * pkPVP = *it2++;         DWORD dwCompanionPID;         if (pkPVP->m_players[0].dwPID == pkChr->GetPlayerID())             dwCompanionPID = pkPVP->m_players[1].dwPID;         else             dwCompanionPID = pkPVP->m_players[0].dwPID;         if (dwCompanionPID == dwKillerPID)         {             if (pkPVP->IsFight())             {                 pkPVP->SetLastFightTime();                 pkPVP->Win(dwKillerPID); // #ifdef ENABLE_PVP_EFFECT_SYSTEM //ekleeee                 LPCHARACTER pkPVPChar = CHARACTER_MANAGER::instance().FindByPID(dwKillerPID);                 if (pkPVPChar)                     //kazanan oyuncu efekt                     pkPVPChar->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/pvp_victory.mse");                     //olen oyuncu efekt.                     pkChr->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/pvp_olen.mse");                     //olum efekti                     pkChr->SpecificEffectPacket("d:/ymir work/effect/etc/pvp/soul.mse");                   //ekleeee                   // #endif                 found = true;                 break;             }             else if (get_dword_time() - pkPVP->GetLastFightTime() <= 15000)             {                 found = true;                 break;             }         }     }     return found; }




Günün sözü 2

"Evet, bir zerre, bir yıldız kadar harika işler görebilir."
(Allah’ın kudretiyle küçük şeylerin bile büyük işler başarabildiğini ifade eder.)
Metin2 Lobby'de En Basit Yoldan Kill Efekt ve Duel Efekt Oluşturmak

Metin2 özel sunucularında oyuncuların dikkatini çekmek, oyun içi deneyimi zenginleştirmek ve PvP sistemlerini daha keyifli hale getirmek için kill efekt ve duel efekt sistemleri büyük önem taşır. Bu yazıda, C++ tabanlı sunucu sistemlerinde kill efekt ve duel efekt sistemini en kolay yoldan nasıl entegre edebileceğinizi adım adım anlatıyoruz.

Kill Efekt Nedir?
Kill efekt, bir oyuncu başka bir oyuncuyu öldürdüğünde ekranda beliren görsel veya ses efektidir. Bu efektler, oyuncuların PvP deneyimini kişiselleştirerek daha eğlenceli kılar. Kill efekt sistemleri genellikle game core kısmında düzenlenir ve py root dosyalarında aktif hale getirilir.

Duel Efekt Nedir?
Duel efekt, iki oyuncu arasında yapılan özel dövüşlerde devreye giren efekt sistemidir. Bu efektler, duel başlatıldığında ya da kazanıldığında ekrana özel animasyonlar, yazılar ya da renkli efektler çıkarabilir. Bu sistem genellikle uiscript ve Python GUI üzerinden yönetilir.

Kill Efekt Sistemini Kurmak
Sunucu tarafında kill efekt sistemi oluşturmak için öncelikle auth ve game sunucularında bazı değişiklikler yapmanız gerekir. Kill event gerçekleştiğinde, belirlenen efekt paketi çalıştırılır. Bu işlem genellikle C++ kodları ile yapılır ve source edit işlemleriyle entegre edilir.

Adım 1: Kill eventini tanımlamak için char_battle.cpp dosyasında gerekli düzenlemeleri yapın.
Adım 2: Oyuncuya özel efektleri db_core ile eşleştirin.
Adım 3: pack dosyalarına efekt dosyalarını ekleyin.

Duel Efekt Sistemi Nasıl Eklenir?
Duel efekt sistemi, PvP duellerinde daha etkileyici bir atmosfer yaratmak için kullanılır. Bu efektler genellikle Python tarafında UI script olarak tanımlanır ve py_root altında düzenlenir.

Adım 1: uiDuel.py dosyasını oluşturun veya mevcut dosyada değişiklik yapın.
Adım 2: UIScript ile efekt animasyonlarını tanımlayın.
Adım 3: Oyuncu duel'e girdiğinde efektleri tetikleyin.

Metin2lobby.com olarak, bu gibi gelişmiş sistemleri kurmak istiyorsanız, Metin2Dev ve Martysama kaynak kodlarını kullanmanız önerilir. Ayrıca compile işlemlerini doğru şekilde yaparak sistemlerinizi daha kararlı hale getirebilirsiniz.

Sonuç
Kill efekt ve duel efekt sistemleri, Metin2 özel sunucularında oyuncu memnuniyetini artırmak için ideal çözümlerdir. Bu efektleri doğru şekilde kurmak için C++ bilginizi kullanmanız gerekir. Game core, client src ve db sistemleriyle uyumlu çalışarak güçlü PvP sistemleri oluşturabilirsiniz. Daha fazla bilgi ve destek için Metin2Lobby ziyaret edin.


Creating Kill Effect and Duel Effect in the Simplest Way on Metin2 Lobby

In Metin2 private servers, creating eye-catching kill effects and duel effects enhances player experience and makes the PvP system more enjoyable. In this article, we will explain step by step how to implement kill effect and duel effect systems in C++ based server systems in the easiest way possible.

What is Kill Effect?
Kill effect refers to visual or sound effects that appear on screen when a player kills another player. These effects personalize the PvP experience and make it more fun. Kill effect systems are usually adjusted within the game core and activated through py root files.

What is Duel Effect?
Duel effect refers to special effects triggered during duels between two players. These can include animations, texts, or colorful effects when a duel starts or ends. This system is typically managed via uiscript and Python GUI.

How to Set Up Kill Effect System
To set up a kill effect system on the server side, you need to make certain modifications in auth and game servers. When a kill event occurs, a designated effect package is executed. This process is generally done with C++ code and integrated through source edit operations.

Step 1: Define the kill event in the char_battle.cpp file.
Step 2: Match custom effects with db_core.
Step 3: Add effect files into pack folders.

How to Add Duel Effect System?
Duel effect systems create a more impressive atmosphere during PvP duels. These effects are usually defined as UI scripts in Python and edited under py_root.

Step 1: Create or modify the uiDuel.py file.
Step 2: Define animation effects with UIScript.
Step 3: Trigger effects when a player enters a duel.

Metin2lobby.com recommends using Metin2Dev and Martysama source codes if you want to implement such advanced systems. Additionally, performing correct compile operations ensures your systems run smoothly.

Conclusion
Kill effect and duel effect systems are ideal solutions for increasing player satisfaction in Metin2 private servers. You need C++ knowledge to properly implement these effects. By working in harmony with game core, client src, and db systems, you can build powerful PvP systems. For more information and support, visit Metin2Lobby.
 

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

Benzer konular

Geri
Üst Alt