bikral 1
bikral
ShadowFon 1
ShadowFon
D 1
delimuratt
PrimeAC 1
PrimeAC
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Best Studio 1
Best Studio
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

en basit yoldan kill efekt duel efekt

  • Konuyu başlatan Konuyu başlatan apikomt2
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 6
  • Görüntüleme Görüntüleme 677
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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;
}




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...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst