Yardım ITEM_STACKABLE Sorunu ?

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Dianz

MT Üye
MT Üye
Mesaj
262
Çözümler
3
Beğeni
101
Puan
484
Ticaret Puanı
0
Game SRC Verilen Hatta
SORUN.png


Sorun Yeri

srn.png
 
bool CHARACTER::OpenChest (LPITEM item, BYTE openCount) kımındaki BYTE Yazan yeri kendinize göre düzenleyin BYTE 1000 Sayısında kadar kullanamadığı için warning veriyor
 
byte 0'dan 255'e kadar desteklediği için bu şekilde kullanamazsın @Dianz integer veri tipine çevirip birde öyle dene. Son olarak bir de şu şekilde kullansan daha iyimi olacak gibi


kodu şu şekilde düzenledim sanki daha iyi oldu gibi

C++:
    int openCount[1] = {1000};
    for (int i : openCount) {
        if (i == 1000)
            continue;
        else if (i > 1000) && (i != 1000)
            break;
    }
 
byte 0'dan 255'e kadar desteklediği için bu şekilde kullanamazsın @Dianz integer veri tipine çevirip birde öyle dene. Son olarak bir de şu şekilde kullansan daha iyimi olacak gibi


kodu şu şekilde düzenledim sanki daha iyi oldu gibi

C++:
    int openCount[1] = {1000};
    for (int i : openCount) {
        if (i == 1000)
            continue;
        else if (i > 1000) && (i != 1000)
            break;
    }
Bu kodu neden böyle düzenleme gereği duydunuz ? openCount fonksiyona argüman olarak geliyor, sabit 1000'li açmıyor ki. Ayrıca 1 tane veri için neden array + loop kullandınız onu da anlamadım.
 
Bu kodu neden böyle düzenleme gereği duydunuz ? openCount fonksiyona argüman olarak geliyor, sabit 1000'li açmıyor ki. Ayrıca 1 tane veri için neden array + loop kullandınız onu da anlamadım.
Bu kodda yapmak istediğim şeyi anlatayım integer değişkene atadım openCount'u ardından for döngüsü açıp i'ye atadım. Eğer açılacak olan sandık miktarı değeri 1000'e eşitse sorunsuz çalışacak eğer değilse 1000'den büyükse veya 1000'e eşit değilse döngü kırılacak yanlışlarım olabilir düzeltirseniz sevinirim bende herkes gibi geliştiriciliğe açık birisiyim :) fikirlerinizi önemsiyorum.

Dipnot 1: BYTE olan bütün yerlerin değişmesi lazım söylememiş olabilirim veri tipi oyüzden hata alacaktır.
 
Bu kodda yapmak istediğim şeyi anlatayım integer değişkene atadım openCount'u ardından for döngüsü açıp i'ye atadım. Eğer açılacak olan sandık miktarı değeri 1000'e eşitse sorunsuz çalışacak eğer değilse 1000'den büyükse veya 1000'e eşit değilse döngü kırılacak yanlışlarım olabilir düzeltirseniz sevinirim bende herkes gibi geliştiriciliğe açık birisiyim :) fikirlerinizi önemsiyorum.

Dipnot 1: BYTE olan bütün yerlerin değişmesi lazım söylememiş olabilirim veri tipi oyüzden hata alacaktır.
Anladım, ben de kodunuz ile ilgili mantıksal hatayı söyleyim. Konudaki problem itemcount veri tiplerinin eşit olmamasından kaynaklı, çözüm ise gelen openCount argümanının veri tipinin, itemcount veri tipi ile aynı olması. Eğer siz şöyle yapsaydınız;
C++:
int iOpenCount = openCount;
Yorumunuzda dediğiniz gibi int değişkene atasaydınız da problem oluşacaktı çünkü problem zaten BYTE openCount'ta. O yüzden openCount'u itemcount veri tipi ile aynı yapmak sorunu çözecektir.

Ayrıca, bu fonksiyonu baz almadan konuşuyorum. Tek bir veri ile kontrol yapacağınız (ör: int openCount = 1000) zaman bir array ve loop kullanmanıza gerek yok direk kontrol ile geçebilirsiniz.
 
Anladım, ben de kodunuz ile ilgili mantıksal hatayı söyleyim. Konudaki problem itemcount veri tiplerinin eşit olmamasından kaynaklı, çözüm ise gelen openCount argümanının veri tipinin, itemcount veri tipi ile aynı olması. Eğer siz şöyle yapsaydınız;
C++:
int iOpenCount = openCount;
Yorumunuzda dediğiniz gibi int değişkene atasaydınız da problem oluşacaktı çünkü problem zaten BYTE openCount'ta. O yüzden openCount'u itemcount veri tipi ile aynı yapmak sorunu çözecektir.

Ayrıca, bu fonksiyonu baz almadan konuşuyorum. Tek bir veri ile kontrol yapacağınız (ör: int openCount = 1000) zaman bir array ve loop kullanmanıza gerek yok direk kontrol ile geçebilirsiniz.
Bilgilendirmeniz için çok teşekkür ederim :)
 
Anladım, ben de kodunuz ile ilgili mantıksal hatayı söyleyim. Konudaki problem itemcount veri tiplerinin eşit olmamasından kaynaklı, çözüm ise gelen openCount argümanının veri tipinin, itemcount veri tipi ile aynı olması. Eğer siz şöyle yapsaydınız;
C++:
int iOpenCount = openCount;
Yorumunuzda dediğiniz gibi int değişkene atasaydınız da problem oluşacaktı çünkü problem zaten BYTE openCount'ta. O yüzden openCount'u itemcount veri tipi ile aynı yapmak sorunu çözecektir.

Ayrıca, bu fonksiyonu baz almadan konuşuyorum. Tek bir veri ile kontrol yapacağınız (ör: int openCount = 1000) zaman bir array ve loop kullanmanıza gerek yok direk kontrol ile geçebilirsiniz.
bu şekilde kullansam çalışıcakmıdır acaba ?
 
Geri
Üst