Çözüldü warning: comparison between signed and unsigned integer expressions hatası

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

efekan87

Üye
Üye
Mesaj
7
Beğeni
1
Puan
50
Ticaret Puanı
0
resimde görünen 3079. satır kodlardaki 71. satır
char.cpp:
void  CHARACTER::PointChange(BYTE type, int amount, bool bAmount, bool bBroadcast)
{
    int val = 0;

    //sys_log(0, "PointChange %d %d | %d -> %d cHP %d mHP %d", type, amount, GetPoint(type), GetPoint(type)+amount, GetHP(), GetMaxHP());

    switch (type)
    {
        case POINT_NONE:
            return;

        case POINT_LEVEL:
            if ((GetLevel() + amount) > gPlayerMaxLevel)
                return;

            SetLevel(GetLevel() + amount);
            val = GetLevel();

            sys_log(0, "LEVELUP: %s %d NEXT EXP %d", GetName(), GetLevel(), GetNextExp());

            PointChange(POINT_NEXT_EXP,    GetNextExp(), false);

            if (amount)
            {
                quest::CQuestManager::instance().LevelUp(GetPlayerID());

                LogManager::instance().LevelLog(this, val, GetRealPoint(POINT_PLAYTIME) + (get_dword_time() - m_dwPlayStartTime) / 60000);

                if (GetGuild())
                {
                    GetGuild()->LevelChange(GetPlayerID(), GetLevel());
                }

                if (GetParty())
                {
                    GetParty()->RequestSetMemberLevel(GetPlayerID(), GetLevel());
                }
            }
            break;

        case POINT_NEXT_EXP:
            val = GetNextExp();
            bAmount = false;    // 무조건 bAmount는 false 여야 한다.
            break;

        case POINT_EXP:
            {
                DWORD exp = GetExp();
                DWORD next_exp = GetNextExp();

                // 청소년보호
                if (LC_IsNewCIBN())
                {
                    if (IsOverTime(OT_NONE))
                    {
                        dev_log(LOG_DEB0, "<EXP_LOG> %s = NONE", GetName());
                    }
                    else if (IsOverTime(OT_3HOUR))
                    {
                        amount = (amount / 2);
                        dev_log(LOG_DEB0, "<EXP_LOG> %s = 3HOUR", GetName());
                    }
                    else if (IsOverTime(OT_5HOUR))
                    {
                        amount = 0;
                        dev_log(LOG_DEB0, "<EXP_LOG> %s = 5HOUR", GetName());
                    }
                }

                // exp가 0 이하로 가지 않도록 한다
                if (amount < 0 && exp < -amount)
                {
                    sys_log(1, "%s AMOUNT < 0 %d, CUR EXP: %d", GetName(), -amount, exp);
                    amount = -exp;

                    SetExp(exp + amount);
                    val = GetExp();
                }

sserverrrEkran Alıntısı.PNG
 
Çözümü:
//ARA :
                if (amount < 0 && exp < -amount)

//DEĞİŞTİR :
                if ((amount < 0) && (exp < (DWORD)(-amount)))
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst