- Katılım
- 4 Ara 2011
- Konular
- 127
- Mesajlar
- 1,498
- Çözüm
- 5
- Online süresi
- 1mo 29d
- Reaksiyon Skoru
- 331
- Altın Konu
- 0
- Başarım Puanı
- 199
- Yaş
- 31
- MmoLira
- 3,205
- DevLira
- -19
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Arkadaşlar Bu aralar herkes bir source kodlaması derdinde bende kendi elimle başladığım sourcede fixlemeler falan yapıyorum. Burda paylaşım yapan arkadaşlara çok teşekkürler ama warningler hakkında fazla bir konu yok ondan ben burda fixlediğim tüm warning uyarılarını sizin ile paylaşıcam konuyu elimden geldiğince güncellicem.
İlk paylaşımım basit bir şey olacak
Uyarı - 1
Uyarı - 2
Uyarı - 3
Uyarı - 4
Uyarı - 5
Uyarı - 6
Uyarı - 7
Uyarı - 8
Uyarı - 9
Uyarı - 10
UYARI - 11
UYARI - 12
Tamamlanmış Sourcelerden görseller
Konu çok uzun olacağı için görüntü kirliliğini kaldırmak amaçlı kodlar spoiler içine alınmıştır.
Lady Azura
İlk paylaşımım basit bir şey olacak
Uyarı - 1
Görsel
Source > db > src > ClientManagerBoot.cpp açılır.
Alttaki kodu aratın.
Kod bloğunun içinde böyle bir kod bulunması gerek
Bu kod bloğunu alttaki ile değiştirin.
Bunu yaptıktan sonra biraz daha aşagı gelin alttaki gibi bir kod var
üstteki kodu alttaki ile değiştirin.
Şimdilik bu kadar. yakında daha çok ekliyecegim.
Source > db > src > ClientManagerBoot.cpp açılır.
Alttaki kodu aratın.
Kod:
bool CClientManager::MirrorItemTableIntoDB()
Kod bloğunun içinde böyle bir kod bulunması gerek
Kod:
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, " "%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
Bu kod bloğunu alttaki ile değiştirin.
Kod:
"%d, %d, %d, \"%s\", \"%s\", %d, %d, %d, %d, " "%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %ld, %d, %ld, "
"%d, %ld, %d, %ld, %d, %ld, "
"%ld, %ld, %ld, %ld, %ld, %ld )",
Bunu yaptıktan sonra biraz daha aşagı gelin alttaki gibi bir kod var
Kod:
"%d, %d, %d, \"%s\", %d, %d, %d, %d, " "%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d, "
"%d, %d, %d, %d, %d, %d )",
üstteki kodu alttaki ile değiştirin.
Kod:
"%d, %d, %d, \"%s\", %d, %d, %d, %d, " "%d, %d, %d, %d, "
"%d, %d, %d, %d, %d, "
"%d, %ld, %d, %ld, "
"%d, %ld, %d, %ld, %d, %ld, "
"%ld, %ld, %ld, %ld, %ld, %ld )",
Şimdilik bu kadar. yakında daha çok ekliyecegim.
Uyarı - 2
Görsel
Source > game > src > dragon_soul_table.cpp
alttaki kodu aratın.
ve alttaki ile değiştirin.
alttaki kodu aratın.
ve alttaki ile değiştirin.
alttaki kodu aratın
alttaki ile değiştirin.
alttakini aratın
değiştirin
alttakini aratın
değiştirin
alttakini aratın
değiştir
alttakini aratın
değiştir
alttakini aratın
değiştir
alttakini aratın
değiştir
alttakini aratın
değiştir
alttakini aratın
degiştir
altakini aratın
degiştir.
Arkadaşlar öncelikle üsteki kodları uzman arkadaşlar test etsin veya bir sorun varsa bildirsin.
peki bunlarda int'ten önce neden unsigned kodu yerleştirdim.
arkadaşlar böyle her gördüğünüz hataya unsigned yerleştirmek doşru değil
unsigned char 0 ~ 255 arası sayıları temsil eder
signed char ise -128 ~ 127 arasındaki sayıları
üsteki kodlar - ye giden bir sayı yok gördüğünüz gibi int++ ya gitmiş bu da aslında oyunda bug oluşturmaya müsait bir açık değerinde olabileceğini düşünüyorum. o yüzden değeri unsigned yaparak değerin - değerler almamasını ayarlamış olduk.
böylece warning sorununu çözmüş olduk bu tür uyarılar aldığınızda
signed and unsigned bu uyarıları üsteki anlatımımdan yola cıkarak düzeltebilirsiniz.
ben kendimce böyle yorumladım bilgili arkadaşlar doğru yapmışmıyım diye kontrol ederlerse sevinirim yanlış bilgi vermek istemem konudan anında silerim yanlışım varsa daha yeniyim hatalar olabilir.
Source > game > src > dragon_soul_table.cpp
alttaki kodu aratın.
Kod:
for (int i = 0; i < m_vecDragonSoulNames.size(); i++)
ve alttaki ile değiştirin.
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulNames.size(); i++)
alttaki kodu aratın.
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
ve alttaki ile değiştirin.
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttaki kodu aratın
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttaki ile değiştirin.
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttakini aratın
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
değiştirin
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttakini aratın
Kod:
for (int k = 0; k < vec_probs.size(); k++)
değiştirin
Kod:
for (unsigned int k = 0; k < vec_probs.size(); k++)
alttakini aratın
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
değiştir
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttakini aratın
Kod:
for (int k = 0; k < vec_probs.size(); k++)
değiştir
Kod:
for (unsigned int k = 0; k < vec_probs.size(); k++)
alttakini aratın
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
değiştir
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttakini aratın
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
değiştir
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
alttakini aratın
Kod:
for (int k = 0; k < vec_chargings.size(); k++)
değiştir
Kod:
for (unsigned int k = 0; k < vec_chargings.size(); k++)
alttakini aratın
Kod:
for (int k = 0; k < vec_probs.size(); k++)
degiştir
Kod:
for (unsigned int k = 0; k < vec_probs.size(); k++)
altakini aratın
Kod:
for (int i = 0; i < m_vecDragonSoulTypes.size(); i++)
degiştir.
Kod:
for (unsigned int i = 0; i < m_vecDragonSoulTypes.size(); i++)
Arkadaşlar öncelikle üsteki kodları uzman arkadaşlar test etsin veya bir sorun varsa bildirsin.
peki bunlarda int'ten önce neden unsigned kodu yerleştirdim.
arkadaşlar böyle her gördüğünüz hataya unsigned yerleştirmek doşru değil
unsigned char 0 ~ 255 arası sayıları temsil eder
signed char ise -128 ~ 127 arasındaki sayıları
üsteki kodlar - ye giden bir sayı yok gördüğünüz gibi int++ ya gitmiş bu da aslında oyunda bug oluşturmaya müsait bir açık değerinde olabileceğini düşünüyorum. o yüzden değeri unsigned yaparak değerin - değerler almamasını ayarlamış olduk.
böylece warning sorununu çözmüş olduk bu tür uyarılar aldığınızda
signed and unsigned bu uyarıları üsteki anlatımımdan yola cıkarak düzeltebilirsiniz.
ben kendimce böyle yorumladım bilgili arkadaşlar doğru yapmışmıyım diye kontrol ederlerse sevinirim yanlış bilgi vermek istemem konudan anında silerim yanlışım varsa daha yeniyim hatalar olabilir.
Uyarı - 3
Merhaba Arkadaşlar bu sefer ki uyarımız warning: no newline at end of file
Kısaca Uyarı Dosya'nın bitişindeki boşluk hatalı diyor diye çevirsem daha mantıklı olur.
çünkü dosyaların genelde sonlarında belli miktarda boşluk bırakılmalıdır eğer fazla veya az bırakırsanız bu sefer bu uyarıyı alırsınız.
evet peki biz hangi uyarıları çözdük göstermeden önce örnek bir resim
şimdi kodlara girelim
-----------------------------------------------------------------------------
evet bu uyarıyı shop_manager.h ' da alıyorsanız.
shop_manager.h'ın en sonunda 1 tane boşluk bırakın.
görsel
-----------------------------------------------------------------------------
vnum_helper.h 'da alıyorsanız. (Not : sadece vnum_helper.h common dosyasındadır gerisi game dosyasında)
endif'ten sonra bir boşluk bırakılacak
-----------------------------------------------------------------------------
Bundan Sonrasını Kısaca yazıyom çok yer kaplıyorlar çünkü
pet_system.h endif'ten sonra 2 boşluk bırakın
char.cpp en sona bir boşluk bırak
belt_inventory_helper.h bir boşluk bırak
pet_system.cpp 1 boşluk
ClientPackageCryptInfo.h 1 boşluk
input_db.cpp 1 boşluk
item.cpp 1 boşluk
log.cpp 1 boşluk
monarch.cpp 1 boşluk
questlua_pet.cpp 1 boşluk
FileMonitor_FreeBSD.cpp 1 boşluk
dragon_soul_table.h 1 boşluk
not : hepsinin sonuna bırakılacak boşluktan kastım satırdır'yani enter
***************************************************************
Ayrı Olarak bir uyarı daha paylaşıyorum bu konu içerisinde.
ox_event.cpp 222:19 warning: null character(s) preserved in literal
arkadaşlar buradaki yazı farklı bir dille yazılmıştır game buildinde ondan hata veriyor.
uyarının sebebi farklı bir dille yazılmış kod blunmakta bunuda game
gibi saçma bir şekilde build ediyor.
normalde o yazı elseif'deki yazıyla aynı alttakilerden hoşunuza gideni kullanın.
222. satırdaki kodu alttakilerden biriyle değiştirin hangisi kafanıza yatarsa.
Kısaca Uyarı Dosya'nın bitişindeki boşluk hatalı diyor diye çevirsem daha mantıklı olur.
çünkü dosyaların genelde sonlarında belli miktarda boşluk bırakılmalıdır eğer fazla veya az bırakırsanız bu sefer bu uyarıyı alırsınız.
evet peki biz hangi uyarıları çözdük göstermeden önce örnek bir resim
şimdi kodlara girelim

Size Kod Yok 

Şaka ! Sadece altakileri yapın yeterli.
-----------------------------------------------------------------------------
evet bu uyarıyı shop_manager.h ' da alıyorsanız.
shop_manager.h'ın en sonunda 1 tane boşluk bırakın.
görsel
-----------------------------------------------------------------------------
vnum_helper.h 'da alıyorsanız. (Not : sadece vnum_helper.h common dosyasındadır gerisi game dosyasında)
endif'ten sonra bir boşluk bırakılacak
-----------------------------------------------------------------------------
Bundan Sonrasını Kısaca yazıyom çok yer kaplıyorlar çünkü
pet_system.h endif'ten sonra 2 boşluk bırakın
char.cpp en sona bir boşluk bırak
belt_inventory_helper.h bir boşluk bırak
pet_system.cpp 1 boşluk
ClientPackageCryptInfo.h 1 boşluk
input_db.cpp 1 boşluk
item.cpp 1 boşluk
log.cpp 1 boşluk
monarch.cpp 1 boşluk
questlua_pet.cpp 1 boşluk
FileMonitor_FreeBSD.cpp 1 boşluk
dragon_soul_table.h 1 boşluk
not : hepsinin sonuna bırakılacak boşluktan kastım satırdır'yani enter

***************************************************************
Ayrı Olarak bir uyarı daha paylaşıyorum bu konu içerisinde.
ox_event.cpp 222:19 warning: null character(s) preserved in literal
arkadaşlar buradaki yazı farklı bir dille yazılmıştır game buildinde ondan hata veriyor.
uyarının sebebi farklı bir dille yazılmış kod blunmakta bunuda game
Kod:
..xx ??xx ???
normalde o yazı elseif'deki yazıyla aynı alttakilerden hoşunuza gideni kullanın.
222. satırdaki kodu alttakilerden biriyle değiştirin hangisi kafanıza yatarsa.
Kod:
SendNoticeMap("5ì´Ëââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬¢¤ íâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹âââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ë¦¬ìâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹ ë¶âââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åâââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åâââââââââ¬Å¡¬Å¡¬Å¡¬Åâââââââ¬Å¡¬Å¡¬Åâââââ¬Å¡¬Åâââ¬Åâ¤ìâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ ë°âââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ê¹¥ìÅââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââ¬Å¡¬Å¡¬Å¡¬Åââââââ¬Å¡¬Å¡¬Åââââ¬Å¡¬Åââ¬Å¼ë¡Åââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââ¬Å¡¬Å¡¬Å¡¬Åââââââ¬Å¡¬Å¡¬Åââââ¬Å¡¬Åââ¬Å ì´ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¢ ìâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹Åââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââ¬Å¡¬Å¡¬Å¡¬Åââââââ¬Å¡¬Å¡¬Åââââ¬Å¡¬Åââ¬Åíâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¤ê² ìÅ µëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹Ëââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹¤.", OXEVENT_MAP_INDEX, true);
Kod:
SendNoticeMap(LC_TEXT("5ì´Ëââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬¢¤ íâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹âââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ë¦¬ìâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹ ë¶âââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åâââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åâââââââââ¬Å¡¬Å¡¬Å¡¬Åâââââââ¬Å¡¬Å¡¬Åâââââ¬Å¡¬Åâââ¬Åâ¤ìâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ ë°âââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ê¹¥ìÅââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââ¬Å¡¬Å¡¬Å¡¬Åââââââ¬Å¡¬Å¡¬Åââââ¬Å¡¬Åââ¬Å¼ë¡Åââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââ¬Å¡¬Å¡¬Å¡¬Åââââââ¬Å¡¬Å¡¬Åââââ¬Å¡¬Åââ¬Å ì´ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¢ ìâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹Åââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Åââââââââ¬Å¡¬Å¡¬Å¡¬Åââââââ¬Å¡¬Å¡¬Åââââ¬Å¡¬Åââ¬Åíâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¤ê² ìÅ µëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹Ëââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬ ëâââââââââââââ¬Å¡¬Å¡¬Å¡¬Å¡¬Å¡¬¹¤."), OXEVENT_MAP_INDEX, true);
Uyarı - 4
Arkadaşlar görsel vermicem
genel hata "warning: this decimal constant is unsigned only in ISO C90"
bunu char.cpp'de görüyoruz
peki bu uyarı nedir arkadaşlar char.cpp'de verilen sayı tanımlanmış değerler arasında değil.
genelde çok büyük sayılarda alıyoruz bu hatayı genel çözümü ise sayının sonuna LL eklemektir
Char.cpp Warning : this decimal constant is unsigned only in ISO C90
alttaki kodu arat.
içindeki
üsteki sayıyı alttaki ile değiştir.
bu kadar.
genel hata "warning: this decimal constant is unsigned only in ISO C90"
bunu char.cpp'de görüyoruz
peki bu uyarı nedir arkadaşlar char.cpp'de verilen sayı tanımlanmış değerler arasında değil.
genelde çok büyük sayılarda alıyoruz bu hatayı genel çözümü ise sayının sonuna LL eklemektir
Char.cpp Warning : this decimal constant is unsigned only in ISO C90
alttaki kodu arat.
Kod:
DWORD CHARACTER::GetNextExp() const
içindeki
Kod:
return 2500000000;
üsteki sayıyı alttaki ile değiştir.
Kod:
return 2500000000LL;
bu kadar.

Uyarı - 5
C4995 - C4996 çözümler client'de denenmiştir.
arkadaşlar uyarı c4995 warning: deprecated
aslında çözüm çok basit.
peki öncelikle altta gördügümüz fonksiyonlarda genelde bu hatayı alıyoruz peki niçin
çok basit boyutsal bakımdan tanımlandırılmamışlar buda uyarıya sebep oluyor boyutsal bakımı bende anlamadım
ama araştırmalarıma bakılırsa bu kodlarda değerler tanımlandırılması gerekiyor.
peki bunları tek tek tanımlandırcaz mı hayır.
Security Features in the CRT sistemini eklicez.
üsteki kodları kontrol edip gönderilecek kodu veya yazıyı ona göre boyutlandırtırıyor.
peki security features in the crt yi nasıl eklicez derseniz işte oda çok kolay.
kısaca _s kodu otomatik biçimlendiricektir ve bizim #define STR_LENGTH 20 gibi bazı kodları eklememize gerek kalmıcak
evet sorusu olan varsa sormasın bu çözüm kesin çözümdür. bulana kadar çok uğraştım hele ki kesin çözüm olduguna emin olana kadar.

arkadaşlar uyarıları tek tek yazmıcam siz c4995 hatası aldınız mı _s fonksiyonu ekleyip düzeltin lütfen.
çünkü çok fazla böyle sorun var.
size genel çözümünü sundum.
Önemli Hata almamanız için okuyun.
çok önemli bir not daha belirtmek isterim
c4995 hatasını gördünüz kodda _sprintf yazıyor ama kod blogundaki
sprintf bakın _sprintf ise _s eklersiniz ama farklı bir kod yazıyor sprintf
sakın sonuna direk _s eklemeyin yoksa error alırsınız fonksiyonda
_sprintf_s
olarak tamamlayın. ha bazı uyarılarda _s koymayın çünkü error'a dönüştürür warning'i örnek PythonChatModule.cpp(434)
len += _snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
len += veya cn += gibi bir şeyler varsa fonksiyonda korkun çünkü o fonksiyonda _s eklerseniz büyük bir ihtimal hata alırsınız.
hatta _ koymak bile hataya sebep olabilir o yüzden deneyin error alırsanız zaten eski haline getirirsiniz.
ama kesin hata alcaksınız çünkü genelde o fonksiyonlara bir şey tanımlanmış oluyor ve
function does not take 2 arguments gibi 2 argument kullanamazsınız gibi hatalar alırsınız.
c4996 _ çözüm
arkadaşlar c4996 çok güzel bir uyarıdır
sprintf
strcat
strcpy
üsteki fonksiyonlara _ başına eklenerek çözülür.
_sprintf
_strcat
_strcpy
bu çözüm ile c4996 uyarısından kurtulduk fakat bitmedi çünkü build ederken fonksiyonda c4995 alabilirsiniz
o zamanda
_sprintf_s
_strcat_s
_strcpy_s
bu şekilde yapmanız gerekmektedir.
teşekkürler.
not : fopen gibi farklı fonksiyonlarda _ veya _s eklemeyin çünkü hata alırsınız.
dikkat bazı fonksiyonlarda hata alma ihtimaliniz var
_ ve _s her zaman çözmüyor daha kötü yapabiliyor.
o yüzden herşey kesin çözcek diye bir şey yok çünkü bazıları tanımlanmış oluyor kodlar cakışabiliyor.
konu üzerindeki araştırmalarım devam etmekte örnek vermicem çünkü çok farklı onlarca örnek var kendiniz deneyip test edip sorunlarınızı çözün.çünkü fonksiyonlara baglı olarak farklı hatalar veya cevaplar cıkabiliyor.
bu c4995 ile c4996 sorunları başımı uyuşturdu biraz kafa dinlicem.
bende insanım.
hadi bol şanslar.
arkadaşlar uyarı c4995 warning: deprecated
aslında çözüm çok basit.
peki öncelikle altta gördügümüz fonksiyonlarda genelde bu hatayı alıyoruz peki niçin
Kod:
vsprintfsprintf
strcat
strcpy
çok basit boyutsal bakımdan tanımlandırılmamışlar buda uyarıya sebep oluyor boyutsal bakımı bende anlamadım
ama araştırmalarıma bakılırsa bu kodlarda değerler tanımlandırılması gerekiyor.
peki bunları tek tek tanımlandırcaz mı hayır.
Security Features in the CRT sistemini eklicez.
üsteki kodları kontrol edip gönderilecek kodu veya yazıyı ona göre boyutlandırtırıyor.
peki security features in the crt yi nasıl eklicez derseniz işte oda çok kolay.
Kod:
vsprintf_s
sprintf_s
strcat_s
strcpy_s
kısaca _s kodu otomatik biçimlendiricektir ve bizim #define STR_LENGTH 20 gibi bazı kodları eklememize gerek kalmıcak
evet sorusu olan varsa sormasın bu çözüm kesin çözümdür. bulana kadar çok uğraştım hele ki kesin çözüm olduguna emin olana kadar.

arkadaşlar uyarıları tek tek yazmıcam siz c4995 hatası aldınız mı _s fonksiyonu ekleyip düzeltin lütfen.
çünkü çok fazla böyle sorun var.
size genel çözümünü sundum.
Önemli Hata almamanız için okuyun.
çok önemli bir not daha belirtmek isterim
c4995 hatasını gördünüz kodda _sprintf yazıyor ama kod blogundaki
sprintf bakın _sprintf ise _s eklersiniz ama farklı bir kod yazıyor sprintf
sakın sonuna direk _s eklemeyin yoksa error alırsınız fonksiyonda
_sprintf_s
olarak tamamlayın. ha bazı uyarılarda _s koymayın çünkü error'a dönüştürür warning'i örnek PythonChatModule.cpp(434)
len += _snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
len += veya cn += gibi bir şeyler varsa fonksiyonda korkun çünkü o fonksiyonda _s eklerseniz büyük bir ihtimal hata alırsınız.
hatta _ koymak bile hataya sebep olabilir o yüzden deneyin error alırsanız zaten eski haline getirirsiniz.
ama kesin hata alcaksınız çünkü genelde o fonksiyonlara bir şey tanımlanmış oluyor ve
function does not take 2 arguments gibi 2 argument kullanamazsınız gibi hatalar alırsınız.
c4996 _ çözüm
arkadaşlar c4996 çok güzel bir uyarıdır
sprintf
strcat
strcpy
üsteki fonksiyonlara _ başına eklenerek çözülür.
_sprintf
_strcat
_strcpy
bu çözüm ile c4996 uyarısından kurtulduk fakat bitmedi çünkü build ederken fonksiyonda c4995 alabilirsiniz
o zamanda
_sprintf_s
_strcat_s
_strcpy_s
bu şekilde yapmanız gerekmektedir.
teşekkürler.
not : fopen gibi farklı fonksiyonlarda _ veya _s eklemeyin çünkü hata alırsınız.
dikkat bazı fonksiyonlarda hata alma ihtimaliniz var
_ ve _s her zaman çözmüyor daha kötü yapabiliyor.
o yüzden herşey kesin çözcek diye bir şey yok çünkü bazıları tanımlanmış oluyor kodlar cakışabiliyor.
konu üzerindeki araştırmalarım devam etmekte örnek vermicem çünkü çok farklı onlarca örnek var kendiniz deneyip test edip sorunlarınızı çözün.çünkü fonksiyonlara baglı olarak farklı hatalar veya cevaplar cıkabiliyor.
bu c4995 ile c4996 sorunları başımı uyuşturdu biraz kafa dinlicem.
bende insanım.
hadi bol şanslar.

Uyarı - 6
Uyarı
client > UserInterface > NetworkActorManager.cpp
arkadaşlar internette bazıları bool kodunu int çevirin falan demiş ama ben farklı bir çözüm ile yaptım.
1.uyarı
değiştir
2.uyarı
değiştir
uyarı gitmiştir.
Kod:
Warning 1 warning C4800: 'BOOL' : forcing value to bool 'true' or 'false' (performance warning) C:\Users\Desktop\Source Client\source\UserInterface\NetworkActorManager.cpp 370 1 UserInterface
Warning 2 warning C4800: 'BOOL' : forcing value to bool 'true' or 'false' (performance warning) C:\Usersn\Desktop\Source Client\source\UserInterface\NetworkActorManager.cpp 420 1 UserInterface
arkadaşlar internette bazıları bool kodunu int çevirin falan demiş ama ben farklı bir çözüm ile yaptım.
1.uyarı
Kod:
bool bIsMountingHorse = pOldInstance->IsMountingHorse();
Kod:
bool bIsMountingHorse = pOldInstance->IsMountingHorse() !=0;
Kod:
bool bIsMountingHorse = pMainInstance->IsMountingHorse();
Kod:
bool bIsMountingHorse = pMainInstance->IsMountingHorse() !=0;
uyarı gitmiştir.
Uyarı - 7
Yeni Konumuz 4101
hatamız bu çözümü basit arkadaşlar.
çözüm
1.
kodu aratın ve alttaki gibi yapın
2.
kodunu aratın ve başına static ekleyin.alttaki gibi olacak
kolay gelsin.
hatamız bu çözümü basit arkadaşlar.
Kod:
Warning 3 warning C4101: 'iSourceSlotIndex' : unreferenced local variable C:\Users\Desktop\Source Client\source\UserInterface\PythonPlayerModule.cpp 763 1 UserInterface
Warning 4 warning C4101: 'iSlotPos' : unreferenced local variable C:\Users\Desktop\Source Client\source\UserInterface\PythonPlayerModule.cpp 978 1 UserInterface
çözüm
1.
Kod:
int iSourceSlotIndex;
Kod:
static int iSourceSlotIndex;
Kod:
int iSlotPos;
Kod:
static int iSlotPos;
kolay gelsin.
Uyarı - 8
DB Source Fix
(DB Source Completely Warnings Fix)
1.) warning : no newline at end of files
Cache.cpp
ProtoReader.h
ItemAwardManager.cpp
AuctionManager.cpp
bunların en sonunda 1 tane boşluk bırakın.
2.)
ProtoReader.cpp fix
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
arat
değiştir
3. warning: returns address of local variable
ClientManagerPlayer.cpp
arat
değiştir
4. warning: Statement has no effect
ClientManagerBoot.cpp
arat
değiştir.
5. warning: Unused Veriable
ClientManagerBoot.cpp
arat
değiştir
6. warning:
protoreader.cpp
ara
değiştir
protoreader.h
ara
değiştir
Evet uzun bir aranın sonundan tekrar güzel bir şekilde size elimdekileri paylaşmaya calıştım.
İşinize yaradıysa ne mutlu bana.
4 saatlik çalışmamdan bu kadar şimdi diğer işlerime geçicem metin2'ye bu kadar yeterli
arkadaşlar test_data yı falan pek önemsemeyin gereksiz komutlar onlar ondan dolayı warningli kısımlara // ekledim.
1. sebebi test_data işlemsizdi
2. sebeb testValue boş elemandı.
yani gereksiz verilerdi.
6.warning ise çok uğraştırdı sinir krizi geçiricektim sonra bir baktım aynı değerleri protoreader.h dada tanımlandırmış ondan error veriyormuş biraz güldüm ama sorunuda çözdük.
Tekrar güzel bir paylaşım yapana kadar hoşt çakal.
(DB Source Completely Warnings Fix)
1.) warning : no newline at end of files
Cache.cpp
ProtoReader.h
ItemAwardManager.cpp
AuctionManager.cpp
bunların en sonunda 1 tane boşluk bırakın.
2.)
ProtoReader.cpp fix
arat
Kod:
while ((cutAt = strOrigin.find_first_of(strTok)) != strOrigin.npos)
değiştir
Kod:
while (unsigned(cutAt = strOrigin.find_first_of(strTok)) != strOrigin.npos)
arat
Kod:
for (int j=0;j<sizeof(arType)/sizeof(arType[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arType)/sizeof(arType[0]);j++)
arat
Kod:
for(int i =0;i<sizeof(arAntiFlag)/sizeof(arAntiFlag[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arAntiFlag)/sizeof(arAntiFlag[0]);i++)
arat
Kod:
for(int i =0;i<sizeof(arFlag)/sizeof(arFlag[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arFlag)/sizeof(arFlag[0]);i++)
arat
Kod:
for(int i =0;i<sizeof(arWearrFlag)/sizeof(arWearrFlag[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arWearrFlag)/sizeof(arWearrFlag[0]);i++)
arat
Kod:
for(int i =0;i<sizeof(arImmune)/sizeof(arImmune[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arImmune)/sizeof(arImmune[0]);i++)
arat
Kod:
for (int j=0;j<sizeof(arLimitType)/sizeof(arLimitType[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arLimitType)/sizeof(arLimitType[0]);j++)
arat
Kod:
for (int j=0;j<sizeof(arApplyType)/sizeof(arApplyType[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arApplyType)/sizeof(arApplyType[0]);j++)
arat
Kod:
for (int j=0;j<sizeof(arRank)/sizeof(arRank[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arRank)/sizeof(arRank[0]);j++)
arat
Kod:
for (int j=0;j<sizeof(arType)/sizeof(arType[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arType)/sizeof(arType[0]);j++)
arat
Kod:
for (int j=0;j<sizeof(arBattleType)/sizeof(arBattleType[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arBattleType)/sizeof(arBattleType[0]);j++)
arat
Kod:
for (int j=0;j<sizeof(arSize)/sizeof(arSize[0]);j++)
değiştir
Kod:
for (unsigned int j=0;j<sizeof(arSize)/sizeof(arSize[0]);j++)
arat
Kod:
for(int i =0;i<sizeof(arAIFlag)/sizeof(arAIFlag[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arAIFlag)/sizeof(arAIFlag[0]);i++)
arat
Kod:
for(int i =0;i<sizeof(arRaceFlag)/sizeof(arRaceFlag[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arRaceFlag)/sizeof(arRaceFlag[0]);i++)
arat
Kod:
for(int i =0;i<sizeof(arImmuneFlag)/sizeof(arImmuneFlag[0]);i++)
değiştir
Kod:
for(unsigned int i =0;i<sizeof(arImmuneFlag)/sizeof(arImmuneFlag[0]);i++)
arat
Kod:
for (int i=0; i<sizeof(dataArray)/sizeof(dataArray[0]);i++)
değiştir
Kod:
for (unsigned int i=0; i<sizeof(dataArray)/sizeof(dataArray[0]);i++)
arat
Kod:
for (int j = 0; j < i; ++j)
değiştir
Kod:
for (unsigned int j = 0; j < i; ++j)
arat
Kod:
int pos = s.find("~");
değiştir
Kod:
unsigned int pos = s.find("~");
3. warning: returns address of local variable
ClientManagerPlayer.cpp
arat
Kod:
char command[20] = "";
değiştir
Kod:
static char command[20] = "";
4. warning: Statement has no effect
ClientManagerBoot.cpp
arat
Kod:
test_data;
değiştir.
Kod:
//test_data;
5. warning: Unused Veriable
ClientManagerBoot.cpp
arat
Kod:
int testValue = m_vec_itemTable.size();
değiştir
Kod:
//int testValue = m_vec_itemTable.size();
6. warning:
protoreader.cpp
ara
Kod:
int get_Item_SubType_Value(int type_value, string inputString)
değiştir
Kod:
int get_Item_SubType_Value(unsigned int type_value, string inputString)
protoreader.h
ara
Kod:
int get_Item_SubType_Value(int type_value, std::string inputString);
değiştir
Kod:
int get_Item_SubType_Value(unsigned int type_value, std::string inputString);
Evet uzun bir aranın sonundan tekrar güzel bir şekilde size elimdekileri paylaşmaya calıştım.
İşinize yaradıysa ne mutlu bana.
4 saatlik çalışmamdan bu kadar şimdi diğer işlerime geçicem metin2'ye bu kadar yeterli

arkadaşlar test_data yı falan pek önemsemeyin gereksiz komutlar onlar ondan dolayı warningli kısımlara // ekledim.
1. sebebi test_data işlemsizdi
2. sebeb testValue boş elemandı.
yani gereksiz verilerdi.
6.warning ise çok uğraştırdı sinir krizi geçiricektim sonra bir baktım aynı değerleri protoreader.h dada tanımlandırmış ondan error veriyormuş biraz güldüm ama sorunuda çözdük.
Tekrar güzel bir paylaşım yapana kadar hoşt çakal.
Uyarı - 9
1.fix Warning Format
char_item.cpp
#ifdef NEW_PET_SYSTEM
ara
değiştir
ara
değiştir
ara
değiştir
ara
değiştir
ara
değiştir
ara
değiştir
ara
değiştir
inputmain.cpp
ara
değiştir
questlua_petnew.cpp
ara
değiştir
new_petsystem.cpp
ara
değiştir
dragonsoul.cpp
ara
değiştir
locale_service.cpp
ara
değiştir.
2.fix Warning: comparison between signed or unsigned
belt_inventory_helper.h
ara
değiştir
new_petsystem.cpp'de warning veriyor fakat
new_petsystem.h'da çözüyoruz.
ara
değiştir
group_text_parse_tree.h
ara
değiştir
ara
değiştir
group_text_parse_tree_cpp
ara
değiştir
ara
değiştir
shop_manager.cpp
ara
değiştir
ara
değiştir
acce.cpp
ara
değiştir
shopex.cpp
ara
değiştir.
dragonsoul.cpp
ara
değiştir.
ara
değiştir
ara
değiştir
ara
değiştir.
item_manager.cpp
ara
değiştir
item.cpp
ara
değiştir
ara
değiştir
ara
değiştir.
char_item.cpp
ara
değiştir
ara
değiştir
ara
değiştir
char_skill.cpp
ara
değiştir
ara
değiştir
cube.cpp
ara
değiştir
ara
değiştir
desc_client.cpp
ara
değiştir
shop.cpp
ara
değiştir
3. Warning : no newline at end of file
Alttakilerin Sonlarında Birer tane boş satır bırakın.
New_PetSystem.cpp
questlua_petnew.cpp
char_dragonsoul.cpp
char_item.cpp
#ifdef NEW_PET_SYSTEM
ara
Kod:
snprintf(szQuery1, sizeof(szQuery1), "SELECT duration FROM new_petsystem WHERE id = %lu LIMIT 1", item2->GetID());
Kod:
snprintf(szQuery1, sizeof(szQuery1), "SELECT duration FROM new_petsystem WHERE id = %d LIMIT 1", item2->GetID());
Kod:
sprintf(buf, "No change by item{VN:%d VAL%d:%d}", item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "No change by item{VN:%d VAL%d:%ld}", item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "Increase %ds by item{VN:%d VAL%d:%d}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "Increase %ds by item{VN:%d VAL%d:%ld}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "No change by item{VN:%d VAL%d:%d}", item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "No change by item{VN:%d VAL%d:%ld}", item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "No change by item{VN:%d SOC%d:%d}", item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "No change by item{VN:%d SOC%d:%ld}", item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "Inc %ds by item{VN:%d VAL%d:%d}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "Inc %ds by item{VN:%d VAL%d:%ld}", ret, item->GetVnum(), ITEM_VALUE_CHARGING_AMOUNT_IDX, item->GetValue(ITEM_VALUE_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "Inc %ds by item{VN:%d SOC%d:%d}", ret, item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX));
Kod:
sprintf(buf, "Inc %ds by item{VN:%d SOC%d:%ld}", ret, item->GetVnum(), ITEM_SOCKET_CHARGING_AMOUNT_IDX, item->GetSocket(ITEM_SOCKET_CHARGING_AMOUNT_IDX));
inputmain.cpp
ara
Kod:
snprintf(szQuery1, sizeof(szQuery1), "INSERT INTO new_petsystem VALUES(%lu,'%s', 1, 0, 0, 0, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", item->GetID(), p->petname, number(1, 23), number(1, 23), number(1, 23), tmpskill[0], 0, tmpskill[1], 0, tmpskill[2], 0, tmpdur, tmpdur);
Kod:
snprintf(szQuery1, sizeof(szQuery1), "INSERT INTO new_petsystem VALUES(%d,'%s', 1, 0, 0, 0, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", item->GetID(), p->petname, number(1, 23), number(1, 23), number(1, 23), tmpskill[0], 0, tmpskill[1], 0, tmpskill[2], 0, tmpdur, tmpdur);
questlua_petnew.cpp
ara
Kod:
snprintf(szQuery1, sizeof(szQuery1), "SELECT duration,tduration FROM new_petsystem WHERE id = %lu ", id);
Kod:
snprintf(szQuery1, sizeof(szQuery1), "SELECT duration,tduration FROM new_petsystem WHERE id = %d ", id);
new_petsystem.cpp
ara
Kod:
snprintf(szQuery1, sizeof(szQuery1), "SELECT name,level,exp,expi,bonus0,bonus1,bonus2,skill0,skill0lv,skill1,skill1lv,skill2,skill2lv,duration,tduration,evolution FROM new_petsystem WHERE id = %lu ", pSummonItem->GetID());
Kod:
snprintf(szQuery1, sizeof(szQuery1), "SELECT name,level,exp,expi,bonus0,bonus1,bonus2,skill0,skill0lv,skill1,skill1lv,skill2,skill2lv,duration,tduration,evolution FROM new_petsystem WHERE id = %d ", pSummonItem->GetID());
dragonsoul.cpp
ara
Kod:
sprintf(buf, "dice(%d) prob(%d)", fDice, fProb);
Kod:
sprintf(buf, "dice(%d) prob(%d)", (int)fDice, (int)fProb);
locale_service.cpp
ara
Kod:
printf("<ERROR> PLAYER_PER_ACCOUNT = %lld\n", PLAYER_PER_ACCOUNT);
Kod:
printf("<ERROR> PLAYER_PER_ACCOUNT = %d\n", PLAYER_PER_ACCOUNT);
belt_inventory_helper.h
ara
Kod:
static TGradeUnit GetBeltGradeByRefineLevel(int level)
Kod:
static TGradeUnit GetBeltGradeByRefineLevel(unsigned int level)
new_petsystem.cpp'de warning veriyor fakat
new_petsystem.h'da çözüyoruz.
ara
Kod:
int GetNextExpFromMob() { return m_dwExpFromMob; }
int GetNextExpFromItem() { return m_dwExpFromItem; }
Kod:
unsigned int GetNextExpFromMob() { return m_dwExpFromMob; }
unsigned int GetNextExpFromItem() { return m_dwExpFromItem; }
group_text_parse_tree.h
ara
Kod:
bool CGroupNode::CGroupNodeRow::GetValue(int idx, OUT T& value) const
bool CGroupNode::CGroupNodeRow::GetValue(unsigned int idx, OUT T& value) const
Kod:
bool GetValue(int idx, OUT T& value) const;
bool GetValue(unsigned int idx, OUT T& value) const;
Kod:
int idx = m_pOwnerGroupNode->GetColumnIndexFromName(stColKey);
Kod:
unsigned int idx = m_pOwnerGroupNode->GetColumnIndexFromName(stColKey);
group_text_parse_tree_cpp
ara
Kod:
bool CGroupNode::GetRow(int idx, OUT const CGroupNode::CGroupNodeRow ** ppRow) const
bool CGroupNode::GetRow(unsigned int idx, OUT const CGroupNode::CGroupNodeRow ** ppRow) const
Kod:
bool GetRow(int idx, OUT const CGroupNodeRow ** ppRow) const;
bool GetRow(unsigned int idx, OUT const CGroupNodeRow ** ppRow) const;
Kod:
for (int i = 1; i < stTokenVector.size(); i++)
Kod:
for (unsigned int i = 1; i < stTokenVector.size(); i++)
shop_manager.cpp
ara
Kod:
for (int i = 0; i < shopItems.size(); i++)
Kod:
for (unsigned int i = 0; i < shopItems.size(); i++)
Kod:
if((unsigned)dwPrice > item->GetGold())
Kod:
if((unsigned)dwPrice > item->GetGold())
acce.cpp
ara
Kod:
for (int i = 0; i < s_acce_proto.size(); ++i)
Kod:
for (unsigned int i = 0; i < s_acce_proto.size(); ++i)
shopex.cpp
ara
Kod:
int count = ch->CountSpecifyTypeItem(ITEM_SECONDARY_COIN);
Kod:
unsigned int count = ch->CountSpecifyTypeItem(ITEM_SECONDARY_COIN);
dragonsoul.cpp
ara
Kod:
for (int i = 0; i < vec_addtional_applys.size(); i++)
Kod:
for (unsigned int i = 0; i < vec_addtional_applys.size(); i++)
Kod:
for (int j = 0; j < vec_addtional_applys.size(); j++)
Kod:
for (unsigned int j = 0; j < vec_addtional_applys.size(); j++)
Kod:
for (int idx = 0; idx < vec_probs.size(); idx++)
Kod:
for (unsigned int idx = 0; idx < vec_probs.size(); idx++)
Kod:
for (int i = 0; i < vec_probs.size(); i++)
Kod:
for (unsigned int i = 0; i < vec_probs.size(); i++)
item_manager.cpp
ara
Kod:
for (int i = 0; i < m_vec_item_vnum_range_info.size(); i++)
Kod:
for (unsigned int i = 0; i < m_vec_item_vnum_range_info.size(); i++)
item.cpp
ara
Kod:
int remain_sec = GetSocket(ITEM_SOCKET_REMAIN_SEC);
Kod:
unsigned int remain_sec = GetSocket(ITEM_SOCKET_REMAIN_SEC);
Kod:
int remain_sec = GetSocket(ITEM_SOCKET_REMAIN_SEC);
int given_time = fPercent * duration / 100;
Kod:
unsigned int remain_sec = GetSocket(ITEM_SOCKET_REMAIN_SEC);
unsigned int given_time = fPercent * duration / 100;
Kod:
for (int i = 0; i < sizeof(infos) / sizeof(infos[0]); i++)
Kod:
for (unsigned int i = 0; i < sizeof(infos) / sizeof(infos[0]); i++)
char_item.cpp
ara
Kod:
if (item->GetSocket(0) >= _countof(aApplyInfo))
Kod:
if ((unsigned)item->GetSocket(0) >= _countof(aApplyInfo))
Kod:
for (int i = 0; i < sizeof(g_aBuffOnAttrPoints)/sizeof(g_aBuffOnAttrPoints[0]); i++)
Kod:
for (unsigned int i = 0; i < sizeof(g_aBuffOnAttrPoints)/sizeof(g_aBuffOnAttrPoints[0]); i++)
Kod:
for (int i = 0; i < sizeof(g_aBuffOnAttrPoints)/sizeof(g_aBuffOnAttrPoints[0]); i++)
Kod:
for (unsigned int i = 0; i < sizeof(g_aBuffOnAttrPoints)/sizeof(g_aBuffOnAttrPoints[0]); i++)
char_skill.cpp
ara
Kod:
int iArrayIndexSkill[] = {94, 95, 96, 109, 110, 111};
Kod:
unsigned int iArrayIndexSkill[] = {94, 95, 96, 109, 110, 111};
Kod:
for (int iBuffSkill = 0; iBuffSkill < _countof(iArrayIndexSkill); iBuffSkill++)
Kod:
for (unsigned int iBuffSkill = 0; iBuffSkill < _countof(iArrayIndexSkill); iBuffSkill++)
cube.cpp
ara
Kod:
if (ch->GetGold() < cube_proto->gold)
Kod:
if ((unsigned)ch->GetGold() < cube_proto->gold)
Kod:
for (int i = 0; i < s_cube_proto.size(); ++i)
Kod:
for (unsigned int i = 0; i < s_cube_proto.size(); ++i)
desc_client.cpp
ara
Kod:
if (fForce || m_tLastChannelStatusUpdateTime+CHANNELSTATUS_UPDATE_PERIOD < t) {
Kod:
if (fForce || (unsigned)m_tLastChannelStatusUpdateTime+CHANNELSTATUS_UPDATE_PERIOD < t) {
shop.cpp
ara
Kod:
if (m_itemVector[i].itemid == itemID)
Kod:
if ((unsigned)m_itemVector[i].itemid == itemID)
3. Warning : no newline at end of file
Alttakilerin Sonlarında Birer tane boş satır bırakın.
New_PetSystem.cpp
questlua_petnew.cpp
char_dragonsoul.cpp
Uyarı - 10
Warning: array subscript has type char
char_item.cpp
ara
bul
değiştir.
item.cpp
bul
değiştir
warning: comparison is always false due to limited range of data type
Char_item.cpp
uyarı alınan fonksiyon
aratın
alttaki koddan 2 tane vardır 2 sinide aratın
burdaki ile değiştirin.
warning: control reaches end of non-void function
char_dragonsoul.cpp
arat
fonksiyon sonundaki bunu
değiştir
char_item.cpp
arat
fonksiyonun sonuna gel
değiştir.
desc_p2p.cpp
arat
fonksiyonu sonundaki
değiştir
warning will be initialized after
item.h
arat
değiştir
ClientPackageCryptInfo.h
arat
değiştir
group_text_parse_tree.h
arat
değiştir
Kolay Gelsin!
:cay:
char_item.cpp
ara
Kod:
bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell)
Kod:
long duration = (0 != item->GetSocket(0)) ? item->GetSocket(0) : item->GetProto()->aLimits[item->GetProto()->cLimitRealTimeFirstUseIndex].lValue;
Kod:
long duration = (0 != item->GetSocket(0)) ? item->GetSocket(0) : item->GetProto()->aLimits[static_cast<unsigned char>(item->GetProto()->cLimitRealTimeFirstUseIndex)].lValue;
item.cpp
bul
Kod:
return GetProto()->aLimits[GetProto()->cLimitTimerBasedOnWearIndex].lValue;
Kod:
return GetProto()->aLimits[static_cast<unsigned char>(GetProto()->cLimitTimerBasedOnWearIndex)].lValue;
warning: comparison is always false due to limited range of data type
Char_item.cpp
uyarı alınan fonksiyon
Kod:
if (p >= DRAGON_SOUL_INVENTORY_MAX_NUM)
Kod:
void CHARACTER::ClearItem()
Kod:
BYTE p = wCell + (DRAGON_SOUL_BOX_COLUMN_NUM * j);
Kod:
int p = wCell + (DRAGON_SOUL_BOX_COLUMN_NUM * j);
warning: control reaches end of non-void function
char_dragonsoul.cpp
arat
Kod:
bool CHARACTER::DragonSoul_ActivateDeck(int deck_idx)
Kod:
}
Kod:
return true;
}
char_item.cpp
arat
Kod:
case DRAGON_SOUL_INVENTORY:
Kod:
}
Kod:
return false;
}
desc_p2p.cpp
arat
Kod:
bool DESC_P2P::Setup(LPFDWATCH fdw, socket_t fd, const char * host, WORD wPort)
Kod:
}
Kod:
return true;
}
warning will be initialized after
item.h
arat
Kod:
LPEVENT m_pkDestroyEvent;
LPEVENT m_pkExpireEvent;
LPEVENT m_pkUniqueExpireEvent;
LPEVENT m_pkTimerBasedOnWearExpireEvent;
LPEVENT m_pkRealTimeExpireEvent;
LPEVENT m_pkAccessorySocketExpireEvent;
LPEVENT m_pkOwnershipEvent;
Kod:
LPEVENT m_pkDestroyEvent;
LPEVENT m_pkUniqueExpireEvent;
LPEVENT m_pkTimerBasedOnWearExpireEvent;
LPEVENT m_pkRealTimeExpireEvent;
LPEVENT m_pkExpireEvent;
LPEVENT m_pkAccessorySocketExpireEvent;
LPEVENT m_pkOwnershipEvent;
ClientPackageCryptInfo.h
arat
Kod:
int m_nCryptKeyPackageCnt;
std::vector<BYTE> m_vecPackageCryptKeys;
BYTE* m_pSerializedCryptKeyStream;
Kod:
std::vector<BYTE> m_vecPackageCryptKeys;
BYTE* m_pSerializedCryptKeyStream;
int m_nCryptKeyPackageCnt;
group_text_parse_tree.h
arat
Kod:
CGroupNode * m_pRootGroupNode;
std::string m_strFileName;
DWORD m_dwcurLineIndex;
Kod:
std::string m_strFileName;
DWORD m_dwcurLineIndex;
CGroupNode * m_pRootGroupNode;
Kolay Gelsin!
:cay:
UYARI - 11
signed or unsigned
char.cpp
arat
değiştir
unused variable pPC /efsun nesnesi süresi fixlerken oluşan bir hata ben eski haline getirdim efsun nesnesinde süre hala yok.
char_item.cpp
bul
değiştir
unused variable dwCurtime / hareket ederken item değiştirmeyi fixlerken oluşuyor bence orjinal hali daha iyidir haraket ederken item değişmesin millet.
char_item.cpp
bul
değiştir
unused variable sum,prob_sum,dwVnum,count,rider,bDoMoveAlone,len_global,last,line,strArg1,itemType,itemSubType,bWereMine,vnum,q,pPC,petVID,npcVNUM,old_value,new_value
New_PetSystem.cpp
arat
altına ekle
arat
altına ekle
acce.cpp
arat
altına ekle
DragonSoul.cpp
arat
altına ekle
arat
altına ekle
arat
üstüne eklendi
arat
üstüne ekle
buff_on_attributes.cpp
arat
altına ekle
cube.cpp
arat
altına ekle
PetSystem.cpp
arat
altına ekle
char_state.cpp
bul
altına ekle
petsystem.cpp
bul
altına ekle
input_main.cpp
bul
altına ekle
input_auth.cpp
aratın
altına eklenir.
config.cpp
aratılır
bulunur
altına eklenir
cmd_general.cpp
arat
bulunur
altına eklenir
char_item.cpp
aratın
altına eklenir.
item.cpp
arat
altına ekle
item.cpp
arat
altına ekle
questlua_npc.cpp
arat 4 tane uyarı var uyarı aldıklarınıza uygulayın.
altına yapıştır
questnpc.cpp
arat
altına ekle
"cell","n","x","y","returnBool" may be used uninitialized in this function
cmd_gm.cpp
arat
altında bul
değiştir.
arat
altında bul
değiştir.
arat
altında bul
değiştir
questlua.cpp
arat
altında bul
değiştir
NULL used in aritmetic
questlua_petnew.cpp
arat
altında bul
değiştir
arat
altında bul
değiştir
arat
altında bul
değiştir
arat
altında bul
değiştir
cmd_gm.cpp
arat
değiştir
config.cpp
aratın 3 tane var 3 içinde uygulayın
değiştirin
utils.cpp
ara
değiştir
ara
değiştir
ara
değiştir
:cay:
char.cpp
arat
Kod:
if (amount < 0 && exp < -amount)
Kod:
if (amount < 0 && (signed)exp < -amount)
unused variable pPC /efsun nesnesi süresi fixlerken oluşan bir hata ben eski haline getirdim efsun nesnesinde süre hala yok.
char_item.cpp
bul
Kod:
if (pPC)
/*{
DWORD dwNowMin = get_global_time() / 60;
DWORD dwLastChangeItemAttrMin = pPC->GetFlag(msc_szLastChangeItemAttrFlag);
if (dwLastChangeItemAttrMin + dwChangeItemAttrCycle > dwNowMin)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? %d? ???? ?? ??? ? ????.(%d ? ??)"),
dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowMin - dwLastChangeItemAttrMin));
return false;
}
pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowMin);
}*/
Kod:
if (pPC)
{
DWORD dwNowMin = get_global_time() / 60;
DWORD dwLastChangeItemAttrMin = pPC->GetFlag(msc_szLastChangeItemAttrFlag);
if (dwLastChangeItemAttrMin + dwChangeItemAttrCycle > dwNowMin)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? %d? ???? ?? ??? ? ????.(%d ? ??)"),
dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowMin - dwLastChangeItemAttrMin));
return false;
}
pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowMin);
}
unused variable dwCurtime / hareket ederken item değiştirmeyi fixlerken oluşuyor bence orjinal hali daha iyidir haraket ederken item değişmesin millet.
char_item.cpp
bul
Kod:
/*if (iWearCell != WEAR_ARROW
&& (dwCurTime - GetLastAttackTime() <= 1500 || dwCurTime - m_dwLastSkillTime <= 1500))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ?? ?? ??? ? ????."));
return false;
}*/
Kod:
if (iWearCell != WEAR_ARROW
&& (dwCurTime - GetLastAttackTime() <= 1500 || dwCurTime - m_dwLastSkillTime <= 1500))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ?? ?? ??? ? ????."));
return false;
}
unused variable sum,prob_sum,dwVnum,count,rider,bDoMoveAlone,len_global,last,line,strArg1,itemType,itemSubType,bWereMine,vnum,q,pPC,petVID,npcVNUM,old_value,new_value
New_PetSystem.cpp
arat
Kod:
bool bDoMoveAlone = true;
Kod:
(void)bDoMoveAlone;
arat
Kod:
DWORD petVID = petActor->Summon(petName, pSummonItem, bSpawnFar);
Kod:
(void)petVID;
acce.cpp
arat
Kod:
int count = 0;
Kod:
(void)count;
DragonSoul.cpp
arat
Kod:
DWORD dwVnum = pItem->GetVnum();
Kod:
(void)dwVnum;
arat
Kod:
float prob_sum;
Kod:
(void)prob_sum;
arat
Kod:
if (-1 == idx)
Kod:
(void)sum;
arat
Kod:
if (-1 == (result_step = Gamble(vec_probs)))
Kod:
(void)sum;
buff_on_attributes.cpp
arat
Kod:
int old_value = sum_of_attr_value * m_bBuffValue / 100;
int new_value = sum_of_attr_value * bNewValue / 100;
Kod:
(void)old_value;
(void)new_value;
cube.cpp
arat
Kod:
const DWORD& npcVNUM = iter->first;
Kod:
(void)npcVNUM;
PetSystem.cpp
arat
Kod:
DWORD petVID = petActor->Summon(petName, pSummonItem, bSpawnFar);
Kod:
(void)petVID;
char_state.cpp
bul
Kod:
LPCHARACTER rider = GetRider();
Kod:
(void)rider;
petsystem.cpp
bul
Kod:
bool bDoMoveAlone = true;
Kod:
(void)bDoMoveAlone;
input_main.cpp
bul
Kod:
int len_global
Kod:
(void)len_global;
input_auth.cpp
aratın
Kod:
char *last = 0;
Kod:
(void)last;
config.cpp
aratılır
Kod:
TOKEN("WEB_AUTH")
Kod:
const char * line = two_arguments(value_string, openid_host, sizeof(openid_host), openid_uri, sizeof(openid_uri));
Kod:
(void)line;
cmd_general.cpp
arat
Kod:
ACMD(do_CubePetAdd)
Kod:
const std::string& strArg1 = std::string(arg1);
Kod:
(void)strArg1;
char_item.cpp
aratın
Kod:
BYTE itemType = item->GetType();
BYTE itemSubType = item->GetSubType();
Kod:
(void)itemType;
(void)itemSubType;
item.cpp
arat
Kod:
bool bWereMine = this->GetLastOwnerPID() == ch->GetPlayerID();
Kod:
(void)bWereMine;
item.cpp
arat
Kod:
const DWORD vnum = item->GetVnum();
Kod:
(void)vnum;
questlua_npc.cpp
arat 4 tane uyarı var uyarı aldıklarınıza uygulayın.
Kod:
CQuestManager& q = CQuestManager::instance();
Kod:
(void)q;
questnpc.cpp
arat
Kod:
PC * pPC = CQuestManager::instance().GetPC(pc.GetID());
Kod:
(void)pPC;
"cell","n","x","y","returnBool" may be used uninitialized in this function
cmd_gm.cpp
arat
Kod:
ACMD (do_use_item)
Kod:
int cell;
Kod:
int cell = 0;
arat
Kod:
int nPoint = nCurPoint + nChangeAmount;
Kod:
int n;
Kod:
int n = 0;
arat
Kod:
ACMD(do_mob_ld)
Kod:
long x, y;
Kod:
long x = 0, y = 0;
questlua.cpp
arat
Kod:
bool FPartyCheckFlagLt::operator() (LPCHARACTER ch)
Kod:
bool returnBool;
Kod:
bool returnBool = false;
NULL used in aritmetic
questlua_petnew.cpp
arat
Kod:
bool petActor = petSystem->IncreasePetSkill(skill);
Kod:
if (NULL == petActor)
Kod:
if ('\0' == petActor)
arat
Kod:
bool petActor = petSystem->IncreasePetEvolution();
Kod:
if (NULL == petActor)
Kod:
if ('\0' == petActor)
arat
Kod:
int pet_level = petSystem->GetLevel();
Kod:
if (NULL == pet_level)
Kod:
if ('\0' == pet_level)
arat
Kod:
int pet_evo = petSystem->GetEvolution();
Kod:
if (NULL == pet_evo)
Kod:
if ('\0' == pet_evo)
cmd_gm.cpp
arat
Kod:
if (*szName == NULL || *szChangeAmount == '\0')
Kod:
if (*szName == '\0' || *szChangeAmount == '\0')
config.cpp
aratın 3 tane var 3 içinde uygulayın
Kod:
if (NULL != line[0])
Kod:
if ('\0' != line[0])
utils.cpp
ara
Kod:
if (NULL == w[1])
Kod:
if ('\0' == w[1])
Kod:
if (NULL == *s)
Kod:
if ('\0' == *s)
Kod:
if (NULL == *w)
Kod:
if ('\0' == *w)
:cay:
UYARI - 12
Hata - 1
13>D:\Azura\Azura\Mainline_Re\extern\include\Python-2.7/token.h(62): warning C4005: 'AT' : macro redefinition
13> D:\Azura\Azura\Mainline_Re\extern\include\mss.h(1044) : see previous definition of 'AT'
Arkadaşlar bu hata 2 tane dosyadan gelen #define AT kodu mevcut.
bana en doğrusu mss.h geldiğinden.
extern/include/Phyton-2.7/token.h
dosyasını açıyoruz.
aratıp
#define AT 50
değiştiriyoruz.
/*#define AT 50 */
Hata - 2
assignment operator could not be generated
arat (örnek verildi.)
CombinedNameValuePairs(const NameValuePairs &pairs1, const NameValuePairs &pairs2)
: m_pairs1(pairs1), m_pairs2(pairs2) {}
altına ekle
CombinedNameValuePairs & operator=( const CombinedNameValuePairs & ) { return *this; }
arkadaşlar eklediğiniz kod içinde "CombinedNameValuePairs" kısımlarını değiştirerek uyarı aldığınız yerlerde kullanabilirsiniz.
Hata - 3
arat (örnek)
if (sizeof(T) != 1 && size > ELEMS_MAX)
değiştir
bool azurat1 = sizeof(T) != 1 && size > ELEMS_MAX;
if (azurat1)
arkadaşlar "if(kod)" if içerisinde ki kod kısmını alın "bool istediğiniz_kelime = kod;" olacak şekilde if'in üstüne ekleyiniz. "if(kod)" kısmınıda "if(istediğiniz kelime)" şeklinde düzenleyin uyarı düzelecektir.
13>D:\Azura\Azura\Mainline_Re\extern\include\Python-2.7/token.h(62): warning C4005: 'AT' : macro redefinition
13> D:\Azura\Azura\Mainline_Re\extern\include\mss.h(1044) : see previous definition of 'AT'
Arkadaşlar bu hata 2 tane dosyadan gelen #define AT kodu mevcut.
bana en doğrusu mss.h geldiğinden.
extern/include/Phyton-2.7/token.h
dosyasını açıyoruz.
aratıp
#define AT 50
değiştiriyoruz.
/*#define AT 50 */
Hata - 2
assignment operator could not be generated
arat (örnek verildi.)
CombinedNameValuePairs(const NameValuePairs &pairs1, const NameValuePairs &pairs2)
: m_pairs1(pairs1), m_pairs2(pairs2) {}
altına ekle
CombinedNameValuePairs & operator=( const CombinedNameValuePairs & ) { return *this; }
arkadaşlar eklediğiniz kod içinde "CombinedNameValuePairs" kısımlarını değiştirerek uyarı aldığınız yerlerde kullanabilirsiniz.
Hata - 3
arat (örnek)
if (sizeof(T) != 1 && size > ELEMS_MAX)
değiştir
bool azurat1 = sizeof(T) != 1 && size > ELEMS_MAX;
if (azurat1)
arkadaşlar "if(kod)" if içerisinde ki kod kısmını alın "bool istediğiniz_kelime = kod;" olacak şekilde if'in üstüne ekleyiniz. "if(kod)" kısmınıda "if(istediğiniz kelime)" şeklinde düzenleyin uyarı düzelecektir.
Tamamlanmış Sourcelerden görseller
DB Source
Konu çok uzun olacağı için görüntü kirliliğini kaldırmak amaçlı kodlar spoiler içine alınmıştır.
Lady Azura
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
Azura Warning Çözümleri Güncelleme
Uyarı - 10 Güncellemesi !
Güncelleme İçeriği:
Warning: array subscript has type char
Warning: comparison is always false due to limited range of data type
Warning: control reaches end of non-void function
Warning: will be initialized afterİyi Çalışmalar arkadaşlar
:cay:
- Katılım
- 17 Eyl 2014
- Konular
- 266
- Mesajlar
- 4,662
- Çözüm
- 2
- Online süresi
- 1d 22h
- Reaksiyon Skoru
- 1,761
- Altın Konu
- 0
- TM Yaşı
- 11 Yıl 8 Ay 22 Gün
- Başarım Puanı
- 307
- MmoLira
- 2,262
- DevLira
- -122
Teşşekürler
- Katılım
- 15 Mar 2016
- Konular
- 108
- Mesajlar
- 2,912
- Çözüm
- 9
- Online süresi
- 6mo 8d
- Reaksiyon Skoru
- 643
- Altın Konu
- 0
- TM Yaşı
- 10 Yıl 2 Ay 22 Gün
- Başarım Puanı
- 244
- Yaş
- 26
- MmoLira
- 9,541
- DevLira
- 21
Tesekkurler
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 186
- Görüntüleme
- 22K
- Cevaplar
- 21
- Görüntüleme
- 5K
- Cevaplar
- 116
- Görüntüleme
- 45K
- Cevaplar
- 60
- Görüntüleme
- 5K
- Kilitli
- Cevaplar
- 359
- Görüntüleme
- 30K


