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

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

cosion

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


Kod:
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:
if(GetHP() <= dam && (GetHP() == 0 || GetHP() < 0))
    {
         Dead(pAttacker);
    }
O fixi en başa degilde sona ekleyip dene ,
şunun üstüne;
char_battle.cpp:
    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:
    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++:
    if (!cannot_dead)
    {
        PointChange(POINT_HP, -dam, false);
    }
 
o olmazsa fixi kaldırıp şunu dene;
C++:
//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:
if(GetHP() <= dam && (GetHP() == 0 || GetHP() < 0))
    {
         Dead(pAttacker);
    }
 
Çözüm
o olmazsa fixi kaldırıp şunu dene;
C++:
//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
 
Geri
Üst