Öneri ClearAffects hk.

Konu sahibi önerilerinizi bekliyor. Konuya yorum yazabilirsiniz.

Forgiven

burakhangunduz
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
568
Çözümler
42
Beğeni
580
Puan
939
Ticaret Puanı
0
Merhabalar moba ölünce buffların gitmemesi için @Reached'e ait eklentiyi kurdum.
Lakin moba öldükten sonra yukardaki affectler görünüm olarak siliniyor ama buff hala üzerinizde kalıyordu.
(Anlamayanlar için ölünce affectlerin silinmiş gibi gözükmesini istemiyorum)

Kod takibi yaparak client kısmında bu kısmı bularak
C++:
void CInstanceBase::Die()

İçerisinde bu kodu pasif hala getirdim.
C++:
    __ClearAffects();

Bu işlemin yararı oldu peki ne gibi zarar oluşturabilir ya da alternatif bi düzeltme önerebilir misiniz?
 
Çözüm
İstediğim şaman buffları üstünde varken ölürsen yukardaki affectlerde şaman skilleri kaybolmaması.
Kod bloğunu yorum satırı haline getirince sorun çözüldü.
Bi kaç şeyde kontrol ettim herhangi bir sıkıntı çıkarmıyor şu an.
Şu an için gözle görülen bir sorun olmasa da ilerleyen zamanlarda sorun oluşturabilir bence.
Komple pasifleştirmek yerine __ClearAffects() fonksiyonun kendisine gidip şöyle bir düzenleme yapılabilir:

C++:
void CInstanceBase::__ClearAffects()
{
    if (IsStone())
    {
        __StoneSmoke_Destroy();
    }
    else
    {
        for (int iAffect=0; iAffect<AFFECT_NUM; ++iAffect)
        {
            if (iAffect == 3 && iAffect == 5)
                continue; // 3 ve 5 numaralı affectleri atla
            __DetachEffect(m_adwCRCAffectEffect[iAffect]);
            m_adwCRCAffectEffect[iAffect]=0;
        }

        __ClearAffectFlagContainer();
    }

    m_GraphicThingInstance.__OnClearAffects();
}

Emin değilim ama şu şekilde de bir deneme yapılabilir:

C++:
if(rkInstVictim.IsPC() && rkInstVictim.IsKiller()) // sadece oyuncular tarafından öldürüldüğünde temizle
{
    for (int iAffect=0; iAffect<AFFECT_NUM; ++iAffect)
    {
         __DetachEffect(m_adwCRCAffectEffect[iAffect]);
         m_adwCRCAffectEffect[iAffect]=0;
    }
}

Sahip olunan kodlara göre daha farklı çözümler de üretilebilir ama ilk aklıma bu geldi.
 
Bende pack tarafında yaptıydım bir düzenleme kötü efekt listesi falan oluşturdum diğer türlü zehirleme efektinin iconunu falan siliyordu aynısını client srcden yapacaktım zamanım olmadı
 
bence ölünce efektlerin görünmemesi daha iyi zaten kalkınca efektler geri geliyor onun yerine sol üstteki efekt etkilerinin kaybolmasını önlemek gerekiyor . Ama gözüksün istiyorsan kodu şöyle düzenleyebilirsin;

InstanceBaseEffect.cpp:
void CInstanceBase::__ClearAffects()
{
    if (IsStone())
    {
        __StoneSmoke_Destroy();
    }
    else
    {
        for (int iAffect=0; iAffect<AFFECT_NUM; ++iAffect)
        {

            switch (iAffect)
            {
                case AFFECT_GEOMGYEONG
                case AFFECT_JEONGWI:
                case AFFECT_GYEONGGONG:
                case AFFECT_GWIGEOM:
                case AFFECT_JUMAGAP:
                case AFFECT_HOSIN:
                case AFFECT_KWAESOK:
                case AFFECT_JEUNGRYEOK:
                case AFFECT_GICHEON:
                {
                    continue;
                }
            }

            __DetachEffect(m_adwCRCAffectEffect[iAffect]);
            m_adwCRCAffectEffect[iAffect]=0;
        }

        __ClearAffectFlagContainer();
    }

    m_GraphicThingInstance.__OnClearAffects();
}


efektlerin listeside InstanceBase.h ın içinde hangi efekt hangi sikilin öğrenmek içinde locale_game.txt den bakabilirsin.
 
istersen fonksiyona bool değişken atayıp die fonksiyonunda true döndürürsün sadece orda çalışır
 
istersen fonksiyona bool değişken atayıp die fonksiyonunda true döndürürsün sadece orda çalışır
Dün denedim bunu çalışmıyor hocam zaten benim o yorum satırı haline getirdiğim kod bi bug yaratmıyor sadece şaman bufflarını moba öldüğünde silmiyor o kadar istediğim de bu zaten diğer türlü skillerde veya affect için problem yaratmıyor gözlemlediğim kadarıyla.
 
sol üstteki efekt resimlerinin kaybolmamasını yapabildinmi ?
 
İstediğim şaman buffları üstünde varken ölürsen yukardaki affectlerde şaman skilleri kaybolmaması.
Kod bloğunu yorum satırı haline getirince sorun çözüldü.
Bi kaç şeyde kontrol ettim herhangi bir sıkıntı çıkarmıyor şu an.
 
Çözüm
Geri
Üst