arkadaşlar merhaba cube item fix atıyorum ama böyle bir hata alıyorum girinti hatası diye uğraştım ama olmadı bilgisi olan varmıdır
YAZILAN KOD : #ifdef CUBE
#ifdef long long required = (long long)materialInfo.material
.count * count_item;
if (required > 0x7FFFFFFF)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Invalid material count (overflow detected).");
return;
}
if (ch->CountSpecifyItem(materialInfo.material.vnum) < required)
#else
#else if (ch->CountSpecifyItem(materialInfo.material.vnum) < (materialInfo.material.count * count_item))
#endif
ver#endifu hata ekte
cuberenewal.cpp:
Dosyayı indir cuberenewal
dosya.co
Bu hata “girinti” gibi görünse de asıl sebep çoğunlukla
preprocessor (ifdef/else/endif) bloklarının yanlış kurulması. Şu an gönderdiğin parçada #else iki kere var
#else de #else if diye bir
#elsenım var; C/C++ preprocessor’da
#else if diye bir şey yok, onun adı
#elif.
Bir de en başta şu var: #ifdef long long
Bu da ya
#ifdef#ifdef sadece “macro” kontr
#ifdefr. long long bir tip, macro değil. O satır yüzünden derleyicinin kafası tamamen karışıyor, devamı da saçmalıyor.
Senin yapmak istediğin şey belli:
CUBE açıkken “material.count * count_item” çarpımı taşarsa yakala, taşmıyorsa item kontrolünü long long ile yap. CUBE kapalıysa eski kontrol kalsın.
Bunu düzgün ve derlenecek şekilde şöyle toparla (en temiz hali):
#ifdef CUBE
long long required = (long long)materialInfo.mate
#ifdefount * (long long)count_item;
if (required <= 0 || required > 0x7FFFFFFFLL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Invalid material count (overflow detected).");
return;
}
if (ch->CountSpecifyItem(materialInfo.material.vnum) < required)
#else
if (ch->CountSpecifyItem(materialInfo.material.vnum) <
#elserialInfo.material.count * count_item))
#endif
{
// buraya senin eksik item durumunda yaptığı
#endifm neyse onu koy
// return; / continue; vs.
}
Burada kritik noktalar:
- #ifdef long long tamamen kalktı. Çünkü yanlış.
- #else if yerine tek bir if yapısı kullanıldı; zaten senin amacın CUBE açık/kapalı diye iki farklı if koşulu.
- required için 0x7FFFFFFFLL yazdım, long long sabiti olduğu belli olsun diye.
- Blok düzeni net: #ifdef → CUBE’li if, #else → CUBE’siz if, #endif → ortak süslü parantez.
Eğer hâl
#ifdefinti hatası” diyors
#elsenelde şu iki şeyden
#endif
- Bu kodun üst tarafında daha önce açılmış bir { kapanmamıştır.
- #ifdef/#endif sayısı dosyada uyuşmuyordur. Bir yerde #ifdef açılıp #endif unutulmuştur.
#ifdef#endif