[C++] Silah evrim sistemi Fixi

Reached

Geliştirici
Geliştirici
Emekli Üye
Editör
Mesaj
812
Çözümler
28
Beğeni
749
Puan
839
Ticaret Puanı
0
Bir müşterimin sorunuydu, kendisinin onayı var paylaşmam için. Evrim sisteminde verilen +saldırı değeri sadece moblara işliyordu, onun fixidir güle güle kullanın.

Kod yapısının mantığı ise şudur;

pkVictim-> Savunan

kod bloğu if (pkVictim->IsNPC()) Kısmına eklendiği için yani savunan bir mobsa, kısmına eklendiği için normal playerlere damage işlemez fakat o kod bloğunu şu şekilde düzenlersek; if (pkVictim->IsNPC() || pkVictim->IsPC())

Peki burda ne yaptık ? Burada yaptığımız şey gerekli kodu işlemesini istediğimiz char type'ın içine ekledik yani savunan mobsa veya ( || ) Bir oyuncuysa şeklinde, iyi kullanımlar.


C:
Genişlet Daralt Kopyala
//Battle.cpp arat

if (pkVictim->IsNPC)

// Üstüne ekle

if (pkVictim->IsNPC() || pkVictim->IsPC())
{
       
        LPITEM pkWeapon = pkAttacker->GetWear(WEAR_WEAPON);
        if (pkWeapon && IS_SET(pkWeapon->GetFlag(), ITEM_FLAG_RARE_ABILITY))
    {
                     if (pkWeapon->GetRareLevel() == 1)
                          iAtk += (iAtk * 4) / 100;
                     else if (pkWeapon->GetRareLevel() == 2)
                          iAtk += (iAtk * 8) / 100;
                     else if (pkWeapon->GetRareLevel() == 3)
                          iAtk += (iAtk * 12) / 100;
                     else if (pkWeapon->GetRareLevel() == 4)
                          iAtk += (iAtk * 16) / 100;
                     else if (pkWeapon->GetRareLevel() == 5)
                          iAtk += (iAtk * 20) / 100;
                     else if (pkWeapon->GetRareLevel() == 6)
                          iAtk += (iAtk * 24) / 100;
                     else if (pkWeapon->GetRareLevel() == 7)
                          iAtk += (iAtk * 30) / 100;
   }
}
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst