berkmenoo 1
berkmenoo
mavzermete 1
mavzermete
Mt2Hizmet 1
Mt2Hizmet
xranzei 1
xranzei
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

Silah evriminde evrim hasarını strye çevirmek

  • Konuyu başlatan Konuyu başlatan bList
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 6
  • Görüntüleme Görüntüleme 703

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Mevcut evrim sistemimde evrim hasarı sadece metin ve canavarlara işliyor sanırım. Bunun yerine her evrim seviyesinde silah saldırı değerini belirli miktarda arttırmak istiyorum.

battle.cpp ' de :

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;
}

Mevcut evrim hasarlarını bu şekilde vermekte.
 
Çözüm
Tabi şöyle açıklayayım
pkVictim->IsPC
Demek savunan yani pkVictim
Bir playerse IsPC()
Demektir
iAtk ise hatırladığım kasarıyla saldırı değerinin 4le çarpılıp 100e bölünüp silaha + olarak eklenmesi durumudur

Çok teşekkür ederim hocam. Örneğin zehir kılıcının normalde saldırı değeri 237-277
Ben buna 1. levelde +10 saldırı değeri eklemek istiyorum.
O zaman 1. levelde :
iAtk += (iAtk * 4) / 100;
olan kodu :
iAtk += 10;
şeklinde değiştirsem doğru bir şekilde eklemiş oluyor muyum ?
Çünkü kod bloğu
C:
if (pkVictim->IsNpc)
Kısmına eklenmiş bunu
C:
if (pkVictim->IsPC() || pkVictim->IsNPC())
Nin içine alarak yazarsan sorunun düzelicektir
 
Yani şunu yapman gerek
Arat
C:
if (pkVictim->IsNPC())
Üstüne ekle
C:
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;
}
        }
 
Yani şunu yapman gerek
Arat
C:
if (pkVictim->IsNPC())
Üstüne ekle
C:
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;
}
        }

Hocam c++'da metin2 kütüphanesine çok hakim değilim. pkVictim->IsPC ekleyerek ne yapmış oluyoruz tam olarak if sorgusunda ?
Ayrıca böyle yapmam durumunda örneğin;

iAtk += (iAtk * 4) / 100;

bu kod ile %4 verilen evrim hasarı puanı +4 str mi olmuş oluyor yoksa karakterlerede %4 hasar artmış mı oluyor ?
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst