Boss Deprem Efekti Sistemi

lmaohw

Premium Üye
Premium Üye
MT Üye
Mesaj
417
Çözümler
23
Beğeni
209
Puan
744
Ticaret Puanı
0
Başlıktaki gibidir başka forumlardada mevcuttur bizim forumda göremediğimden paylaşıyorum. Bir filestan sökmüştüm sizinlede paylaşmak istedim. Eğer daha önce paylaşıldıysa kapatılabilir.

Client/Eterlib/GrpBase.cpp:
Genişlet Daralt Kopyala
//bul

void CGraphicBase::SetScreenEffectWaving(float fDuringTime, int iPower)
{
    ms_dwWavingEndTime = CTimer::Instance().GetCurrentMillisecond() + long(fDuringTime * 1000.0f);
    ms_iWavingPower = iPower;
}

// altına ekle

#ifdef ENABLE_EARTHQUAKE_SYSTEM
void CGraphicBase::SetScreenEffectWavingEnd()
{
    ms_dwWavingEndTime = 0;
    ms_iWavingPower = 0;
}
#endif

Client/EterLib/GrpBase.h:
Genişlet Daralt Kopyala
//Bul

        // Special Routine
        void        GetSphereMatrix(D3DXMATRIX * pMatrix, float fValue = 0.1f);

        ////////////////////////////////////////////////////////////////////////
        void        InitScreenEffect();
        void        SetScreenEffectWaving(float fDuringTime, int iPower);

// Altına ekle

#ifdef ENABLE_EARTHQUAKE_SYSTEM
        void        SetScreenEffectWavingEnd();
#endif


Client/GameLib/ActorInstanceMotion.cpp:
Genişlet Daralt Kopyala
//Bul


DWORD CActorInstance::__SetMotion(const SSetMotionData& c_rkSetMotData, DWORD dwRandMotKey)
{
    DWORD dwMotKey = dwRandMotKey;

    if (dwMotKey == 0)
        dwMotKey = GetRandomMotionKey(c_rkSetMotData.dwMotKey);

    UINT uNextMot = GET_MOTION_INDEX(c_rkSetMotData.dwMotKey);

    if (IsDead())
    {
        if (uNextMot!=CRaceMotionData::NAME_DAMAGE_FLYING && uNextMot!=CRaceMotionData::NAME_DAMAGE_FLYING_BACK && uNextMot!=CRaceMotionData::NAME_DEAD && uNextMot!=CRaceMotionData::NAME_DEAD_BACK)
            return 0;
    }
    if (IsUsingSkill())
    {
        __OnStop();
    }


// Altına ekle NOT : BURADA İSTEDİĞİNİZ BOSS VNUMLARINI YAZIN
    
#ifdef ENABLE_EARTHQUAKE_SYSTEM
    if (GetRace() == 18040)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 800);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18041)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 400);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18042)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18043)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18044)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18045)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18046)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18047)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18048)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18049)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18050)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18051)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18052)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18053)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18054)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18055)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18056)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18057)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18058)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18059)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18060)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18061)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18062)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18063)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18064)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18065)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18066)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18067)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18068)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
    else if (GetRace() == 18069)
    {
        if (uNextMot == CRaceMotionData::NAME_RUN)
        {
            SetScreenEffectWaving(50.00f, 100);
        }
        else
        {
            SetScreenEffectWavingEnd();
        }
    }
#endif

Client/UserInterface/Locale_inc.h:
Genişlet Daralt Kopyala
// UYGUN YERE EKLE

#define ENABLE_EARTHQUAKE_SYSTEM                                                    // Boss Titretme Dalgası
 
Birşeye değineceğim şu vnum ekleme kısmı kod bloğunu çok uzatıyo unordered map kullanılabilir.

örnek:

#ifdef ENABLE_EARTHQUAKE_SYSTEM
#include <unordered_map>
void ApplyScreenEffect()
{
static const std::unordered_map<int, int> raceWaveDurations = {
{18040, 800},
{18041, 400}
};
if (uNextMot == CRaceMotionData::NAME_RUN)
{
auto it = raceWaveDurations.find(GetRace());
if (it != raceWaveDurations.end())
{
SetScreenEffectWaving(50.00f, it->second);
}
else if (GetRace() >= 18042 && GetRace() <= 18069)
{
SetScreenEffectWaving(50.00f, 100);
}
}
else
{
SetScreenEffectWavingEnd();
}
}
#endif
 
Birşeye değineceğim şu vnum ekleme kısmı kod bloğunu çok uzatıyo unordered map kullanılabilir.

örnek:

#ifdef ENABLE_EARTHQUAKE_SYSTEM
#include <unordered_map>
void ApplyScreenEffect()
{
static const std::unordered_map<int, int> raceWaveDurations = {
{18040, 800},
{18041, 400}
};
if (uNextMot == CRaceMotionData::NAME_RUN)
{
auto it = raceWaveDurations.find(GetRace());
if (it != raceWaveDurations.end())
{
SetScreenEffectWaving(50.00f, it->second);
}
else if (GetRace() >= 18042 && GetRace() <= 18069)
{
SetScreenEffectWaving(50.00f, 100);
}
}
else
{
SetScreenEffectWavingEnd();
}
}
#endif
Teşekkürler mantıklı bahsettiğiniz uygulanabilir.
 
Son düzenleme:
Geri
Üst