TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
onur akbaş 1
onur akbaş
IronTalonX 1
IronTalonX
D 1
delimuratt
berzahx 1
berzahx
Hikaye Ekle

Cevaplandı Damage çarpanı hakkında

  • Konuyu başlatan Konuyu başlatan mamiyt78
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 719

mamiyt78

Muhammet
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Fahri Üye
TM Üye
Katılım
15 May 2021
Konular
141
Mesajlar
760
Çözüm
3
Online süresi
23d 16h
Reaksiyon Skoru
705
Altın Konu
10
TM Yaşı
5 Yıl 1 Ay
Başarım Puanı
181
MmoLira
487
DevLira
6
Ticaret - 0%
0   0   0

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!

Merhabalar,
Berkayın paylaşmış olduğu konu da genel damageyi çarpmakta.


Benim istediğim şey aslında bu lakin ben genel olarak damageyi çarpmasını değil de örnek veriyorum metin, canavar, berserker,str gibi efsunları ayrı ayrı çarptırmak istiyorum.

Büyük ihtimal buna eklenecek lakin kod bilgim olmadığı için nasıl ayar yapılacağını bilemedim.

#ifdef __DAMAGE_CARPANI__
if (pkAttacker->IsPC() && !pkVictim->IsPC())
iAtk *= DAMAGE_CARPANI;
#endif

bir örnek ile yardımcı olabilecek var mı acaba?
 
Çözüm
Ticaret - 0%
0   0   0
Kod:
--> battle.cpp içinde arat

if (pkVictim->IsNPC())

blok içine
ekle

#ifdef CARPAN_METIN
int iStoneBonus = pkAttacker->GetPoint(POINT_ATTBONUS_STONE);
if (pkVictim->IsStone())
iAtk += METIN_CARPANI * iStoneBonus ;
#endif


Örnek blok arası yerleştirme ;

    if (pkVictim->IsNPC())
    {
        if (pkVictim->IsRaceFlag(RACE_FLAG_ANIMAL))
            iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_ANIMAL)) / 100;
        else if (pkVictim->IsRaceFlag(RACE_FLAG_UNDEAD))
            iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_UNDEAD)) / 100;
        else if (pkVictim->IsRaceFlag(RACE_FLAG_DEVIL))
            iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_DEVIL)) / 100;
        else if...
Gece yazdığım için ufak bi eksik matematik işlemi yapmışım yukarıdaki onaylanan cevapta tekrar değişiklik yaptım

diğer bir tür için örnek


int iBossBonus = pkAttacker->GetPoint(POINT_ATTBONUS_BOSS) // yerel sabit

if (pkVictim->IsBoss()) // tür belirteci
iAtk += BOSS_CARPANI * iBossBonus ; // matematik işlemleri
 

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

Geri
Üst