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

  • Konuyu açan Konuyu açan TheAdmin33
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 3
  • Gösterim Gösterim 222
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

Ah, bu şarkıların gözü kör olsun
Geliştirici
Yardımsever Üye
Usta Üye
Editör
Mesaj
1.044
Çözümler
59
Beğeni
2.647
Puan
1.849
Ticaret Puanı
0
şu şekil bir matris oluşturdum ;
matris:
Genişlet Daralt Kopyala
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++:
Genişlet Daralt Kopyala
    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++:
Genişlet Daralt Kopyala
    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ı.
Üst