Öneri ClearAffects hk.

  • Konuyu açan Konuyu açan Forgiven
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 7
  • Gösterim Gösterim 514
Konu sahibi önerilerinizi bekliyor. Konuya yorum yazabilirsiniz.

Forgiven

Discord; burakhangunduz
Premium Üye
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
700
Çözümler
56
Beğeni
749
Puan
949
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++:
Genişlet Daralt Kopyala
void CInstanceBase::Die()

İçerisinde bu kodu pasif hala getirdim.
C++:
Genişlet Daralt Kopyala
    __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++:
Genişlet Daralt Kopyala
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++:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
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