- Katılım
- 2 Ara 2024
- Konular
- 186
- Mesajlar
- 1,981
- Çözüm
- 8
- Online süresi
- 5mo 13d
- Reaksiyon Skoru
- 1,495
- Altın Konu
- 1
- Başarım Puanı
- 206
- MmoLira
- 12,405
- DevLira
- 36
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
bu konu ve bu konunun 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; }
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
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.)
24 saat içerisinde kırık görseli yenileyiniz
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...


