Yardım Metinlere Hasar Görünmüyor

  • Konuyu açan Konuyu açan cosion
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 494
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

cosion

Üye
Üye
Mesaj
128
Çözümler
12
Beğeni
23
Puan
469
Ticaret Puanı
0
Selam arkadaşlar diğer forumda bulunan Metin Geç Patlama Fixini ekledim.


Kod:
Genişlet Daralt Kopyala
if(GetHP() <= dam)
{
    Dead(pAttacker);
}

char_battle.cpp içeriside Damage() fonksiyonunun en başına böyle bir kontrol ekliyor, bu şekilde sorun çözülmüş gibi görünüyor ama bu seferde eğer hasarım mobun canından fazla ise hasarımı göremiyorum. Sizce bu yöntem mi yanlış ? Önerilerinizi bekliyorum iyi forumlar
 
Çözüm
Bunu yapınca tek atsam dahi hasar görünüyor artık, ama şöyle bir şey fark ettim, örneğin metinin canı 200 Milyon ve benim hasarım 51Milyon.
Metine 3 kere vurunca metinin canı 47 milyon kalıyor ve metin direkt kırılıyor. Yani hasar metinin canından yüksek olunca metin canı 0 olmasa dahi metin kırılıyor
if bloğuna bu kontrolü ekledim çözüldü.

Kod:
Genişlet Daralt Kopyala
if(GetHP() <= dam && (GetHP() == 0 || GetHP() < 0))
    {
         Dead(pAttacker);
    }
O fixi en başa degilde sona ekleyip dene ,
şunun üstüne;
char_battle.cpp:
Genişlet Daralt Kopyala
    if (GetHP() <= 0)
    {
        Stun();

        if (pAttacker && !pAttacker->IsNPC())
            m_dwKillerPID = pAttacker->GetPlayerID();
        else
            m_dwKillerPID = 0;
    }
 
O fixi en başa degilde sona ekleyip dene ,
şunun üstüne;
char_battle.cpp:
Genişlet Daralt Kopyala
    if (GetHP() <= 0)
    {
        Stun();

        if (pAttacker && !pAttacker->IsNPC())
            m_dwKillerPID = pAttacker->GetPlayerID();
        else
            m_dwKillerPID = 0;
    }
Bunu yapınca tek atsam dahi hasar görünüyor artık, ama şöyle bir şey fark ettim, örneğin metinin canı 200 Milyon ve benim hasarım 51Milyon.
Metine 3 kere vurunca metinin canı 47 milyon kalıyor ve metin direkt kırılıyor. Yani hasar metinin canından yüksek olunca metin canı 0 olmasa dahi metin kırılıyor
 
Bunu yapınca tek atsam dahi hasar görünüyor artık, ama şöyle bir şey fark ettim, örneğin metinin canı 200 Milyon ve benim hasarım 51Milyon.
Metine 3 kere vurunca metinin canı 47 milyon kalıyor ve metin direkt kırılıyor. Yani hasar metinin canından yüksek olunca metin canı 0 olmasa dahi metin kırılıyor
evet dediğin gibi oluyordur.

aşağıdaki kodun ustüne koyup tekrar denermisin.

C++:
Genişlet Daralt Kopyala
    if (!cannot_dead)
    {
        PointChange(POINT_HP, -dam, false);
    }
 
o olmazsa fixi kaldırıp şunu dene;
C++:
Genişlet Daralt Kopyala
//arat;

    if (GetHP() <= 0)
    {
        Stun();

        if (pAttacker && !pAttacker->IsNPC())
            m_dwKillerPID = pAttacker->GetPlayerID();
        else
            m_dwKillerPID = 0;
    }

//değiştir;

    if (GetHP() <= 0)
    {
        Dead(pAttacker);

        if (pAttacker && !pAttacker->IsNPC())
            m_dwKillerPID = pAttacker->GetPlayerID();
        else
            m_dwKillerPID = 0;
    }
 
Bunu yapınca tek atsam dahi hasar görünüyor artık, ama şöyle bir şey fark ettim, örneğin metinin canı 200 Milyon ve benim hasarım 51Milyon.
Metine 3 kere vurunca metinin canı 47 milyon kalıyor ve metin direkt kırılıyor. Yani hasar metinin canından yüksek olunca metin canı 0 olmasa dahi metin kırılıyor
if bloğuna bu kontrolü ekledim çözüldü.

Kod:
Genişlet Daralt Kopyala
if(GetHP() <= dam && (GetHP() == 0 || GetHP() < 0))
    {
         Dead(pAttacker);
    }
 
Çözüm
o olmazsa fixi kaldırıp şunu dene;
C++:
Genişlet Daralt Kopyala
//arat;

    if (GetHP() <= 0)
    {
        Stun();

        if (pAttacker && !pAttacker->IsNPC())
            m_dwKillerPID = pAttacker->GetPlayerID();
        else
            m_dwKillerPID = 0;
    }

//değiştir;

    if (GetHP() <= 0)
    {
        Dead(pAttacker);

        if (pAttacker && !pAttacker->IsNPC())
            m_dwKillerPID = pAttacker->GetPlayerID();
        else
            m_dwKillerPID = 0;
    }
geç kırılma olayı tamamiyle Stun(); ile alakalı zaten, buda çözecektir. Teşekkür ederim
 
Üst