Fethi Polat 1
Fethi Polat
TuZaKK 1
TuZaKK
xranzei 1
xranzei
Agresifizm 1
Agresifizm
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
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 721

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

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

https://forum.turkmmo.com/konu/3812298-damage-carpani/
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
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...
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 (pkVictim->IsRaceFlag(RACE_FLAG_HUMAN))
            iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_HUMAN)) / 100;
        else if (pkVictim->IsRaceFlag(RACE_FLAG_ORC))
            iAtk += (iAtk * pkAttacker->GetPoint(POINT_ATTBONUS_ORC)) / 100;
            .
            .
            .
#ifdef CARPAN_METIN
int iStoneBonus = pkAttacker->GetPoint(POINT_ATTBONUS_STONE);
if (pkVictim->IsStone())
iAtk += METIN_CARPANI * iStoneBonus ;
#endif
}

Türlerini aynı mantık ile yapabilirsiniz
 
Son düzenleme:
Çözüm
#ifdef CARPAN_BOSS int iStoneBonus = pkAttacker->GetPoint(POINT_ATTBONUS_STONE); if (pkVictim->IsStone()) iAtk *= BOSS_CARPANI; #endif
#ifdef CARPAN_BOSS
int iStoneBonus = pkAttacker->GetPoint(POINT_ATTBONUS_STONE);
if (pkVictim->IsStone())
iAtk *= BOSS_CARPANI;
#endif

Diğer türlere de uyarlamak için vermiş olduğunuz örnekteki kod satırlarının ne anlama geldiğini kısaca açıklamanız mümkün mü. Birde int dam olan damage limitlerini long long dam yaptıktan sonra bunu mu yapmamız gerekiyor sınırsız hasarları görebilmek için
 
#ifdef CARPAN_BOSS
int iStoneBonus = pkAttacker->GetPoint(POINT_ATTBONUS_STONE);
if (pkVictim->IsStone())
iAtk *= BOSS_CARPANI;
#endif

Diğer türlere de uyarlamak için vermiş olduğunuz örnekteki kod satırlarının ne anlama geldiğini kısaca açıklamanız mümkün mü. Birde int dam olan damage limitlerini long long dam yaptıktan sonra bunu mu yapmamız gerekiyor sınırsız hasarları görebilmek için
Oyunun dmg sınırını kaldırmak için source dosyalarında bir çok ayar yapmanız gerekiyor verilen kod da ki yerleri long long yapsanız bile tamamen sınırı kaldırmadığınız için bir anlamı olmayacaktır.

Çok fazla tecrübem yok lakin incelediğime göre bu hasar sınırını kaldırmak aşırı sıkıntı olay bir çok dosyayı elden geçirmek gerekiyor.
 

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

Benzer konular

Cevaplar
1
Görüntüleme
439
  • 5.00 yıldız(lar) 3 Değerlendirme
4 5 6
Cevaplar
27
Görüntüleme
6K
Geri
Üst