Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Zıplatma hilesi fixi

  • Konuyu başlatan Konuyu başlatan Koray'
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 32
  • Görüntüleme Görüntüleme 7K
5.00 yıldız(lar) 1 Değerlendirme Değerlendirenler

Koray'

Pasha37
Uzman
Katılım
21 Haz 2013
Konular
198
Mesajlar
1,742
Çözüm
8
Online süresi
17d 3h
Reaksiyon Skoru
2,660
Altın Konu
3
Başarım Puanı
278
MmoLira
714
DevLira
103
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Merhaba, Yeni yayılmaya başlayan bir hile için fix paylaşıcam, tam fix denemez aslında ama hatalı kısmını düzenledim tam bir fix için sync paketinin işleyişinin tamamen düzenlenmesi gerekir, olayı özetlemek için birkaç video bırakıyorum.





Düzenlenmiş hali



Uzak mesafe kontrolü fix;

* game/src/input_main.cpp

Arat:
Kod:
        static const float fLimitDistWithSyncOwner = 2500.f + 1000.f;

Değiştir:
Kod:
        static const float fLimitDistWithSyncOwner = 25.f + 10.f;

Tamamen atak dışında sektirme fix; (AKTİF OYUNDA TEST EDİLMEDİ)



* char.h

Arat:
Kod:
    DWORD            GetStopTime() const;

Altına ekle:
Kod:
    void UpdateAttackTimeTo(DWORD dwVID, DWORD dwTime) { m_map_dwAttackTime[dwVID] = dwTime; }
    DWORD GetLastAttackTimeTo(DWORD dwVID) { return m_map_dwAttackTime[dwVID];  }

    void IncreaseSyncAttackSusCount() { m_dwSyncAttackSusCount++; }
    void ResetSyncAttackSusCount() { m_dwSyncAttackSusCount = 0; }
    DWORD GetSyncAttackSusCount() const { return m_dwSyncAttackSusCount; }

    private:
        std::map <DWORD, DWORD> m_map_dwAttackTime;
        DWORD m_dwSyncAttackSusCount{ 0 };

protected:

* input_main.cpp

Arat:
Kod:
                if (packMelee->bType > 0)
                {
                    if (false == ch->CheckSkillHitCount(packMelee->bType, victim->GetVID()))
                    {
                        return;
                    }
                }

Altına ekle:
Kod:
                ch->UpdateAttackTimeTo(packMelee->dwVID, get_dword_time());

---

Arat:
Kod:
    buffer_write_proceed(lpBuf, sizeof(TPacketGCSyncPosition));

Altına ekle:
Kod:
    auto fnGetActorSyncCount = [&c_pcData, &iCount](uint32_t dwVID) {
        uint8_t bySyncCount = 0;

        if (dwVID == 0)
            return bySyncCount;

        for (std::size_t i = 0; i < iCount; i++)
        {
            const auto pElem = reinterpret_cast<const TPacketCGSyncPositionElement*>(c_pcData + sizeof(TPacketCGSyncPosition) + (i * sizeof(TPacketCGSyncPositionElement)));
            if (pElem->dwVID == dwVID)
                bySyncCount += 1;
        }

        return bySyncCount;
    };

---

Arat:
Kod:
        if (!victim->SetSyncOwner(ch))
            continue;

Altına ekle:
Kod:
        if (victim->IsPC())
        {
            const auto bySyncCount = fnGetActorSyncCount(e->dwVID);
            if (bySyncCount > 3)
            {
                sys_err("SyncCount: %d for %s greater than 3, CH(%d,%d) VICTIM(%d,%d) SYNC(%d,%d)",
                    bySyncCount, victim->GetName(), ch->GetX(), ch->GetY(), victim->GetX(), victim->GetY(), e->lX, e->lY
                );
                LogManager::Instance().HackLog("ABNORMAL_SYNC_COUNT", ch);
                if (ch->GetDesc())
                    ch->GetDesc()->DelayedDisconnect(3);
                continue;
            }

            const auto dwLastAttackTime = ch->GetLastAttackTimeTo(victim->GetVID());
            const auto dwCurTime = get_dword_time();
            if (!dwLastAttackTime || dwCurTime - dwLastAttackTime > 5000)
            {
                sys_err("SyncPosition: %s CH(%d,%d) VICTIM(%d,%d) SYNC(%d,%d) LastAttackTime(%u) CurTime(%u)",
                    victim->GetName(), ch->GetX(), ch->GetY(), victim->GetX(), victim->GetY(), e->lX, e->lY, dwLastAttackTime, dwCurTime
                );
                LogManager::Instance().HackLog("SYNC_ATTACK_TIME", ch);
                if (ch->GetDesc())
                    ch->GetDesc()->DelayedDisconnect(3);
            }
            else
            {
                ch->ResetSyncAttackSusCount();
            }
        }
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

Paylaşımınız İçin Teşekkürler
 
Paylaşım İçin Teşeküker İyİ Forumlar.
 
Merhaba, Yeni yayılmaya başlayan bir hile için fix paylaşıcam, tam fix denemez aslında ama hatalı kısmını düzenledim tam bir fix için sync paketinin işleyişinin tamamen düzenlenmesi gerekir, olayı özetlemek için birkaç video bırakıyorum.





Düzenlenmiş hali



Fix;

* game/src/input_main.cpp

Arat:
Kod:
        static const float fLimitDistWithSyncOwner = 2500.f + 1000.f;

Değiştir:
Kod:
        static const float fLimitDistWithSyncOwner = 25.f + 10.f;

Teşekkürler
 
Paylaşım İçin Teşeküker
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst