Otomatik Saldırı İçin Küçük Bir Düzeltme

  • Konuyu açan Konuyu açan otuzbiroglu
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 0
  • Gösterim Gösterim 342

otuzbiroglu

Üye
Üye
Mesaj
14
Beğeni
17
Puan
405
Ticaret Puanı
0
Merhaba,

Oyunda safe zone içerisinde bulunan moblara otomatik saldırı komutu verildiğinde, karakterin saldırı menzili ile mob arasında karakteri w, a, s, d tuşları ile yönlendirebilecek kadar mesafe var ise, bahsi geçen tuşların herhangi birine basılı tutarak mob etrafında dönüldüğünde karakterin yürüme animasyonu duruyor.

Sorun,

j56mwi2.gif


Çözüm için, aşağıdaki kod bloğu,

C++:
Genişlet Daralt Kopyala
    if (pkInstMain->IsWalking())
        return;

Aşağıdaki ilgili kısma eklenmelidir.

UserInterface/PythonPlayer.cpp:
Genişlet Daralt Kopyala
void CPythonPlayer::__Update_AutoAttack()
{
    if (0 == m_dwAutoAttackTargetVID)
        return;

    CInstanceBase * pkInstMain = NEW_GetMainActorPtr();
    if (!pkInstMain)
        return;

    // Kod bloğunun ekleneceği kısım.

    if (__IsUsingChargeSkill())
        return;

    CInstanceBase* pkInstVictim=NEW_FindActorPtr(m_dwAutoAttackTargetVID);
    if (!pkInstVictim)
    {
        __ClearAutoAttackTargetActorID();
    }
    else
    {
        if (pkInstVictim->IsDead())
        {
            __ClearAutoAttackTargetActorID();
        }
        else if (pkInstMain->IsMountingHorse() && !pkInstMain->CanAttackHorseLevel())
        {
            __ClearAutoAttackTargetActorID();
        }
        else if (pkInstMain->IsAttackableInstance(*pkInstVictim))
        {
            if (pkInstMain->IsSleep())
            {
                //TraceError("SKIP_AUTO_ATTACK_IN_SLEEPING");
            }
            else
            {
                __ReserveClickActor(m_dwAutoAttackTargetVID);
            }
        }
    }
}

Safe zone içerisine mobların girmemesini sağlamak ya da w, a, s, d tuşları ile karakter yönlendirildiğinde otomatik saldırı fonksiyonunu iptal etmek bir çözüm olabilir fakat oyunun varsayılan tercihlerinin dışına çıkmak istemeyen kişiler için küçük bir hata düzeltmesi olarak paylaşmak istedim. Daha önce açılmış bir konu var ise bu konu silinebilir.
 
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