ShadowFon 1
ShadowFon
bikral 1
bikral
-TuRKuaZ- 1
-TuRKuaZ-
SLyFeLLowTR 1
SLyFeLLowTR
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
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 1 Gün
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...
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
sorunuz yanıtlandı ise en iyi yanıtı işaretlemeyi unutmayınız.
 
#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)

Geri
Üst