Çözüldü Tek Affect ile birden fazla özellik verme

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

TheAdmin33

Geliştirme günlüğü olmayan adam
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
867
Çözümler
51
Beğeni
1.730
Puan
1.149
Ticaret Puanı
0
şu şekil bir matris oluşturdum ;
matris:
static const int CostumeBonusData[][3][2] = {

    //bonus set 0
    {
        //bonus type, bonus value

        //Bonus 0
        {54, 200},
        //Bonus  1
        {54, 200},
        //Bonus 2
        {54, 200}
    },

    //bonus set 1
    {
        //bonus type, bonus value

        //Bonus 0
        {54, 200},
        //Bonus 1
        {54, 200},
        //Bonus 2
        {54, 200}
    },

    //bonus set 2
    {
        //bonus type, bonus value

        //Bonus 0
        {54, 200},
        //Bonus 1
        {54, 200},
        //Bonus 2
        {54, 200}
    },
};

AddAffect fonksiyonunu kullanarak karaktere 3 tane özelliği aynı anda vermek istiyorum nasıl yaparım?

örn: istediğim koşullar sağlandığında matris içinde ki "bonus set 1" de ki 3 özelliği versin istiyorum bunu nasıl yaparım nasıl bir for döngüsü kurmam gerekiyor?(kafam durdu yardımcı olursanız sevinirim 🥲 )
 
Çözüm
c++:
    if(!ch->FindAffect(AffectType))
    {
        if (bonus_id < sizeof(CostumeBonusData) / sizeof(CostumeBonusData[0]))
        {
            for (auto i = 0; i < sizeof(CostumeBonusData[0]) / sizeof(CostumeBonusData[0][0]); i++)
            {
                ch->AddAffect(AffectType, aApplyInfo[CostumeBonusData[bonus_id][i][0]].bPointType, CostumeBonusData[bonus_id][i][1], AFF_COSTUME_SET, INFINITE_AFFECT_DURATION, 0, false);
            }
        }
        else
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Geçersiz set dizini.");
        }

        ch->ChatPacket(CHAT_TYPE_INFO, "Kostüm Set Bonus Aktif");
        return;
    }
tamamdır biraz kafa dinledikten sonra hallettim, konu kapatılabilir.
 
c++:
    if(!ch->FindAffect(AffectType))
    {
        if (bonus_id < sizeof(CostumeBonusData) / sizeof(CostumeBonusData[0]))
        {
            for (auto i = 0; i < sizeof(CostumeBonusData[0]) / sizeof(CostumeBonusData[0][0]); i++)
            {
                ch->AddAffect(AffectType, aApplyInfo[CostumeBonusData[bonus_id][i][0]].bPointType, CostumeBonusData[bonus_id][i][1], AFF_COSTUME_SET, INFINITE_AFFECT_DURATION, 0, false);
            }
        }
        else
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Geçersiz set dizini.");
        }

        ch->ChatPacket(CHAT_TYPE_INFO, "Kostüm Set Bonus Aktif");
        return;
    }
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst