Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Source Warning Fixleri Azura

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!

CsvReader.cpp

CsvReader.cpp

upload please ?

Turkmmo Flood Engelleme

CsvReader.cpp İNDİR :

Virüs Total :

Turkmmo Flood Engelleme

@lordsas: Katkılarıyla Teşekkürler

la bu çözüm değil ki kendinin kini atmışın :D
ama sanırsam hatası
#define LogToFile(a,b,c) (void)(0);
bunla ilgili olabilir.
 
CsvReader.cpp

upload please ?

Turkmmo Flood Engelleme



la bu çözüm değil ki kendinin kini atmışın :D
ama sanırsam hatası
#define LogToFile(a,b,c) (void)(0);
bunla ilgili olabilir.

Benım cpp ye Baksın Sorunu Gorucek Zaten Cozucek :)
 
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

Görsel

dXvWEL.png


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

0yR7rZ.jpg


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

qEAvnB.jpg


şimdi kodlara girelim :D

Size Kod Yok :D
Ş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

1Np6kY.jpg


-----------------------------------------------------------------------------

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 ???
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.

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.

Kod:
DWORD CHARACTER::GetNextExp() const

içindeki

Kod:
return 2500000000;

üsteki sayıyı alttaki ile değiştir.

Kod:
return 2500000000LL;

bu kadar. :D

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


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.
:D
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. :D

Uyarı - 6

Uyarı

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
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ı
Kod:
bool bIsMountingHorse = pOldInstance->IsMountingHorse();
değiştir
Kod:
bool bIsMountingHorse = pOldInstance->IsMountingHorse() !=0;
2.uyarı
Kod:
bool bIsMountingHorse = pMainInstance->IsMountingHorse();
değiştir
Kod:
bool bIsMountingHorse = pMainInstance->IsMountingHorse() !=0;

uyarı gitmiştir.

Uyarı - 7

Yeni Konumuz 4101

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;
kodu aratın ve alttaki gibi yapın
Kod:
static int iSourceSlotIndex;
2.
Kod:
int iSlotPos;
kodunu aratın ve başına static ekleyin.alttaki gibi olacak
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


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 :D


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.

Tamamlanmış Sourcelerden görseller

DB Source

nEDOya.jpg

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


Game Warning Çözümleri Tam Olarak Ne Zaman Gelıyor ?
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst