- Katılım
- 11 May 2023
- Konular
- 270
- Mesajlar
- 1,141
- Çözüm
- 2
- Online süresi
- 1mo 25d
- Reaksiyon Skoru
- 744
- Altın Konu
- 1
- Başarım Puanı
- 199
- MmoLira
- 1,170
- DevLira
- 381
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.
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.)
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.)
Ekli dosyalar
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
ekledim sayım modumPaylaşım için teşekkürler.
Lütfen 24 saat içerisinde görsel ekleyiniz
- Katılım
- 2 Ara 2024
- Konular
- 186
- Mesajlar
- 1,980
- Çözüm
- 8
- Online süresi
- 5mo 13d
- Reaksiyon Skoru
- 1,493
- Altın Konu
- 1
- Başarım Puanı
- 206
- MmoLira
- 12,354
- DevLira
- 36
Paylaşım için teşekkürler.
Lütfen 24 saat içerisinde görsel ekleyiniz
Lütfen 24 saat içerisinde görsel ekleyiniz
- Katılım
- 11 May 2023
- Konular
- 270
- Mesajlar
- 1,141
- Çözüm
- 2
- Online süresi
- 1mo 25d
- Reaksiyon Skoru
- 744
- Altın Konu
- 1
- Başarım Puanı
- 199
- MmoLira
- 1,170
- DevLira
- 381
ekledim sayım modumPaylaşım için teşekkürler.
Lütfen 24 saat içerisinde görsel ekleyiniz
- Katılım
- 16 Tem 2019
- Konular
- 715
- Mesajlar
- 3,551
- Çözüm
- 47
- Online süresi
- 6mo 20d
- Reaksiyon Skoru
- 2,109
- Altın Konu
- 34
- Başarım Puanı
- 309
- MmoLira
- 19,556
- DevLira
- 122
Paylaşım için teşekkürler
- Katılım
- 2 Şub 2013
- Konular
- 2
- Mesajlar
- 161
- Online süresi
- 18h 58m
- Reaksiyon Skoru
- 38
- Altın Konu
- 0
- TM Yaşı
- 13 Yıl 4 Ay 5 Gün
- Başarım Puanı
- 109
- MmoLira
- 819
- DevLira
- 0
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.)
Paylaşım için teşekkürler.
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 58
- Görüntüleme
- 7K
- Cevaplar
- 65
- Görüntüleme
- 12K
- Cevaplar
- 25
- Görüntüleme
- 9K






