Çözüldü "Game Source Warning" günlükleri v1

  • Konuyu açan Konuyu açan aykutleee
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 565
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ı.

aykutleee

Üye
Üye
Mesaj
106
Çözümler
5
Beğeni
22
Puan
454
Ticaret Puanı
0
Merhabalar :) Uzun süredir files geliştriyorum. Eklediğim bazı sistemlerde ve düzenlemelerimde aşağıdaki warningler ortaya çıktı; (C+11)

#################
Warning1 -)
#################

Adsız1.png


C++:
Genişlet Daralt Kopyala
ACMD(do_daily_reward_reload){
    if (!ch)
        return;

    ch->ChatPacket(CHAT_TYPE_COMMAND, "ManagerGiftSystem DeleteRewards|");
    char* time = "";                 /*2401. satır*/
    char* rewards = "";              /*2402. satır*/
    char* items;
    char* counts;
    SQLMsg * pkMsg(DBManager::instance().DirectQuery("SELECT UNIX_TIMESTAMP(time),reward from player.gunluk_oduller_alanlar where pid = %u",ch->GetPlayerID()));
    SQLResult * pRes = pkMsg->Get();

#################
Warning2 -)
#################

Adsız2.png


cmd_general.cpp:
Genişlet Daralt Kopyala
ACMD(do_daily_reward_get_reward){
    if (!ch)
        return;

    char* items;
    char* counts;           /*2471. satır*/
    DWORD item;
    DWORD count;            /*2473. satır*/
    bool reward = false;
    char* rewards;
    // and (NOW() - interval 30 minute > time)
    SQLMsg * pkMsg(DBManager::instance().DirectQuery("SELECT reward from player.gunluk_oduller_alanlar where (NOW() > time) and pid = %u", ch->GetPlayerID()));
    SQLResult * pRes = pkMsg->Get();
    if (pRes->uiNumRows > 0){
        MYSQL_ROW row;
        while ((row = mysql_fetch_row(pRes->pSQLResult)) != NULL){
            rewards = row[0];
        }
        reward = true;
    }
    
    if (reward){
        SQLMsg * pkMsg2(DBManager::instance().DirectQuery("SELECT items, count from player.gunluk_oduller where reward = '%s' ORDER BY RAND() limit 1",rewards));
        SQLResult * pRes2 = pkMsg2->Get();
        if (pRes2->uiNumRows > 0){
            MYSQL_ROW row;
            while ((row = mysql_fetch_row(pRes2->pSQLResult)) != NULL){
                items = row[0];
                counts = row[1];
            }
        }
        str_to_number(item, items);
        str_to_number(count, counts);
        ch->AutoGiveItem(item, count);    /*2499. satır*/
        // ch->ChatPacket(CHAT_TYPE_INFO, "recompensa: %s",items);
        DBManager::Instance().DirectQuery("UPDATE gunluk_oduller_alanlar SET reward = CASE WHEN reward = 0 THEN '1' WHEN reward = 1 THEN '2' WHEN reward = 2 THEN '3' WHEN reward = 3 THEN '4' WHEN reward = 4 THEN '5' WHEN reward = 5 THEN '6' WHEN reward = 6 THEN '0' END, total_rewards = total_rewards +1, time = (NOW() + interval 1 day) WHERE pid = %u", ch->GetPlayerID());
    }
    else{
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Usted aun no puede obtener la recompensa"));
    }
}

#################
Warning3 -)
#################


Adsız3.png


input_p2p.cpp:
Genişlet Daralt Kopyala
void CInputP2P::NesneMarket(const char * c_pData)
{
    TPacketGGNesne * p = (TPacketGGNesne *) c_pData;  /*353.satır*/
    CItemShopManager::instance().LoadItemShopTable();
}

input_p2p.cpp:
Genişlet Daralt Kopyala
void CInputP2P::OfflineShopBuy(LPDESC d, const char* c_pData)
{
    TPacketGGOfflineShopBuy* p = (TPacketGGOfflineShopBuy*)c_pData;  /*516. satır*/
}

input_main.cpp:
Genişlet Daralt Kopyala
void CInputMain::ItemCombinationCancel(LPCHARACTER ch, const char* c_pData)
{
    const TPacketCGItemCombinationCancel* p = reinterpret_cast<const TPacketCGItemCombinationCancel*>(c_pData);  /*4101. satır*/

    ch->SetItemCombNpc(NULL);
}

#################
Warning4 -)
#################

Adsız4.png


input.cpp:
Genişlet Daralt Kopyala
#ifdef __DISABLE_SEND_SEQUENCE__
        int originalPacketSize = iPacketLen;    /*103. satır*/
        BYTE preAnalyzeSeq = *(BYTE*)(c_pData + iPacketLen - sizeof(BYTE)); /*104. satır*/
#endif

Şimdiden teşekkürler
 
Merhaba,

1.warning:
char türü değişkenlerde genellikle "(çift tırnak) yerine ''(iki tane tek tırnak) kullanılır. Bu yüzden gösterdiği satırdaki " işaretini '' olarak değiştirmeyi dene. Eğer tekrar hata veya warning verirse ortaya bir boşluk koy ' ' şeklinde.

2.warning:
Bunları;
C++:
Genişlet Daralt Kopyala
    char* items;
    char* counts;           /*2471. satır*/
    DWORD item;
    DWORD count;            /*2473. satır*/
    bool reward = false;
    char* rewards;

Şu şekilde değiştir:
C++:
Genişlet Daralt Kopyala
    char* items = '';
    char* counts = '';           /*2471. satır*/
    DWORD item = 0;
    DWORD count = 0;            /*2473. satır*/
    bool reward = false;
    char* rewards = '';
(Eğer hata veya warning verirse 1.warning için söylediklerimi uygula)

3.warning:
Bunu çözmek için dosyanın tamamına bakmamız gerek. Gösterilen blokta p değişkeni tanımlanmış ama hiç kullanılmamış. Ancak başka bloklardan bu fonksiyon çağrılıyor olabilir.

4.warning:
Bunun için de dosyanın tamamına bakmak gerek.
 
Merhaba,

1.warning:
char türü değişkenlerde genellikle "(çift tırnak) yerine ''(iki tane tek tırnak) kullanılır. Bu yüzden gösterdiği satırdaki " işaretini '' olarak değiştirmeyi dene. Eğer tekrar hata veya warning verirse ortaya bir boşluk koy ' ' şeklinde.

2.warning:
Bunları;
C++:
Genişlet Daralt Kopyala
    char* items;
    char* counts;           /*2471. satır*/
    DWORD item;
    DWORD count;            /*2473. satır*/
    bool reward = false;
    char* rewards;

Şu şekilde değiştir:
C++:
Genişlet Daralt Kopyala
    char* items = '';
    char* counts = '';           /*2471. satır*/
    DWORD item = 0;
    DWORD count = 0;            /*2473. satır*/
    bool reward = false;
    char* rewards = '';
(Eğer hata veya warning verirse 1.warning için söylediklerimi uygula)

3.warning:
Bunu çözmek için dosyanın tamamına bakmamız gerek. Gösterilen blokta p değişkeni tanımlanmış ama hiç kullanılmamış. Ancak başka bloklardan bu fonksiyon çağrılıyor olabilir.

4.warning:
Bunun için de dosyanın tamamına bakmak gerek.
Teşekkür ederim uygulayıp sonucu yazacam (y)
 
Merhaba,

1.warning:
char türü değişkenlerde genellikle "(çift tırnak) yerine ''(iki tane tek tırnak) kullanılır. Bu yüzden gösterdiği satırdaki " işaretini '' olarak değiştirmeyi dene. Eğer tekrar hata veya warning verirse ortaya bir boşluk koy ' ' şeklinde.

2.warning:
Bunları;
C++:
Genişlet Daralt Kopyala
    char* items;
    char* counts;           /*2471. satır*/
    DWORD item;
    DWORD count;            /*2473. satır*/
    bool reward = false;
    char* rewards;

Şu şekilde değiştir:
C++:
Genişlet Daralt Kopyala
    char* items = '';
    char* counts = '';           /*2471. satır*/
    DWORD item = 0;
    DWORD count = 0;            /*2473. satır*/
    bool reward = false;
    char* rewards = '';
(Eğer hata veya warning verirse 1.warning için söylediklerimi uygula)

3.warning:
Bunu çözmek için dosyanın tamamına bakmamız gerek. Gösterilen blokta p değişkeni tanımlanmış ama hiç kullanılmamış. Ancak başka bloklardan bu fonksiyon çağrılıyor olabilir.

4.warning:
Bunun için de dosyanın tamamına bakmak gerek.
Adsız.png

dediğiniz gib iki şekilde de yaptım ancak hata verdi
1_
char* time = ' ';
char* rewards = ' ';

2_
char* time = ' ';
char* rewards = ' ';
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst