anti cheat geliştirme günlüğü yapay zeka çalışması

  • Konuyu açan Konuyu açan martysama
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 255

martysama

Üye
Üye
Mesaj
247
Beğeni
118
Puan
466
Ticaret Puanı
0
actorinstance.cpp

.hyede şunları
bool m_bAtkSpdLocked();
bool m_bMovSpdLocked();
ekleyin
oldu mu bilmiyorum deniyimleyemedim



Kod:
Genişlet Daralt Kopyala
// Max speed values (sınırlamalar)

const float MAX_ATTACK_SPEED = 2.0f; // Örnek max attack speed

const float MAX_MOVE_SPEED = 2.0f;  // Örnek max move speed



// Yeni eklenen bayraklar

bool m_bAtkSpdLocked = false; // Attack speed'in kilitli olup olmadığını kontrol eder

bool m_bMovSpdLocked = false; // Move speed'in kilitli olup olmadığını kontrol eder



// Güncellenmiş SetAttackSpeed

void CActorInstance::SetAttackSpeed(float fAtkSpd)

{

    // Eğer hız zaten kilitlenmişse, fonksiyonu sonlandır

    if (m_bAtkSpdLocked)

        return;



    // Hızı max değere kısıtla

    if (fAtkSpd > MAX_ATTACK_SPEED)

    {

        fAtkSpd = MAX_ATTACK_SPEED;

    }



    // Hız değiştirildiğinde, kilitleme bayrağını aktif et

    m_fAtkSpd = fAtkSpd;

    m_bAtkSpdLocked = true;  // Kilitleme işlemi

}



// Güncellenmiş SetMoveSpeed

void CActorInstance::SetMoveSpeed(float fMovSpd)

{

    // Eğer hız zaten kilitlenmişse, fonksiyonu sonlandır

    if (m_bMovSpdLocked)

        return;



    // Eğer yeni hız mevcut hızla aynıysa, değişiklik yapılmasın

    if (m_fMovSpd == fMovSpd)

        return;



    // Hızı max değere kısıtla

    if (fMovSpd > MAX_MOVE_SPEED)

    {

        fMovSpd = MAX_MOVE_SPEED;

    }



    // Hız değiştirildiğinde, kilitleme bayrağını aktif et

    m_fMovSpd = fMovSpd;

    m_bMovSpdLocked = true;  // Kilitleme işlemi



    // Hareket halindeyse, hareket animasyonlarını tekrar başlat

    if (__IsMoveMotion())

    {

        Stop();

        Move();

    }

}
 
bide şu var alternatif
Kod:
Genişlet Daralt Kopyala
void CActorInstance::SetAttackSpeed(float fAtkSpd)
{
    // Saldırı hızını sınırla (örneğin 0.1 ile 3 arasında)
    if (fAtkSpd < 0.1f)
        fAtkSpd = 0.1f;
    else if (fAtkSpd > 3.0f)
        fAtkSpd = 3.0f;

    // Değişiklik olup olmadığını kontrol et
    if (m_fAtkSpd == fAtkSpd)
        return;

    m_fAtkSpd = fAtkSpd;
    // Animasyon hızını güncelle
    UpdateAnimationSpeed();
}

void CActorInstance::SetMoveSpeed(float fMovSpd)
{
    // Hareket hızını sınırla (örneğin 1 ile 10 arasında)
    if (fMovSpd < 1.0f)
        fMovSpd = 1.0f;
    else if (fMovSpd > 10.0f)
        fMovSpd = 10.0f;

    // Değişiklik olup olmadığını kontrol et
    if (m_fMovSpd == fMovSpd)
        return;

    m_fMovSpd = fMovSpd;

    if (__IsMoveMotion())
    {
        Stop();
        Move();
    }
    
    // Animasyon hızını güncelle
    UpdateAnimationSpeed();
}

void CActorInstance::UpdateAnimationSpeed()
{
    // Animasyon hızını sınırla (örneğin 0.1 ile 2 arasında)
    float animationSpeed = m_fAtkSpd;  // Burada saldırı hızını animasyon hızıyla ilişkilendiriyoruz
    if (animationSpeed < 0.1f)
        animationSpeed = 0.1f;
    else if (animationSpeed > 2.0f)
        animationSpeed = 2.0f;

    // Animasyon hızını uygula
    SetAnimationSpeed(animationSpeed);
}
 
client'a eklediğin her şeyin içinden geçerler nacizane bir öneri
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst