CAffectFlagContainer::IsSet(uPos=64>64 Syserr Fix

MEKA

Discord: mekaprojects
Süper Moderatör
Premium Üye
Grafiker
Geliştirici
Yardımsever Üye
Editör
Mesaj
2.779
Çözümler
287
Beğeni
2.023
Puan
1.850
Ticaret Puanı
2
Bu hata AFFECT_NUM 64 değeri aşıldığında karşılaşabileceğiniz bir hata NUM değerini arttırsanızda bu hata kalkmaz çünkü diğer dosyalarda 64 olarak ayarlanmış şekilde duruyor bunu nasıl düzenleyebilirsiniz bu konuda onu gösteriyorum

Syserri veren kod bloğu şu şekilde
AffectFlagContainer.cpp;
AffectFlagContainer.cpp:
bool CAffectFlagContainer::IsSet(UINT uPos) const
{
    if (uPos/8>=BYTE_SIZE)
    {
        TraceError("CAffectFlagContainer::IsSet(uPos=%d>%d", uPos, BYTE_SIZE*8);
        return false;
    }

    const BYTE& c_rElement=m_aElement[uPos/8];

    BYTE bMask=BYTE(1<<(uPos&7));
    if (c_rElement&bMask)
        return true;

    return false;
}

Burada uPos değeri var olan AFFECT_NUM'dan büyük ise veya eşit ise bu hatayı verdirtecek bir kod mevcut BYTE_SIZE değeri şuanda 8'e eşit

CAffectFlagContainer:
        enum
        {
            BIT_SIZE = 64,
            BYTE_SIZE = BIT_SIZE/8+(1*((BIT_SIZE&7) ? 1 : 0)),
        };

Burada BYTE_SIZE değerini yükseltecek herhangi bir değişiklik yapmanız gerekiyor isterseniz BIT_SIZE değerini yükseltin. İsterseniz oradaki matematik işlemini değiştirin

Yapmanız gereken sadece
Instancebase.h içindeki AFFECT_NUM = xx, değerini +1 geçecek şekilde ayarlamak
AFFECT_NUM = 99 ise BYTE_SIZE = BIT_SIZE/8+(1*(4*23), Şeklinde yapabilirsiniz size kalmış birşey matematik kısmını istediğiniz gibi değiştirebilirsiniz.
 
Bu zaten client syserr fixi game.core vermesiyle alakalı birşey değil.
 
Geri
Üst