Neler yeni
XenForo Bannerlar
Modern AdBlock Uyarısı

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Kod d:/ymir work kaynaklı okuma sorununu düzeltme

Fatih Bulut

Süper Üye
Katılım
6 Kas 2021
Mesajlar
4,066
Tepkime puanı
5,491
Puanları
113
Yaş
32
Konum
Türkiye
Dc
fatihbulut
Eğer bilgisayarda D harfi atanmış bir DVD/CD-ROM varsa oyun, dosyaları önce d:/ymir work klasöründen yüklemeye çalışır.
  • Oyun yavaş açılır
  • Yükleme süreleri ciddi şekilde uzar
  • Büyük FPS düşüşleri yaşanır
  • Hatta bazı oyuncular için oyun oynanamaz hale gelir
Bu çözümü uyguladıktan sonra:
  1. Oyun artık d:/ymir dosyalarını yüklemez
  2. Client daha hızlı açılır ve dosyaları daha hızlı yükler
  3. FPS düşüşleri azalır
İnternette bu konu ile ilgili farklı düzenlemeler görebilirsiniz ben bu şekilde bir düzenleme yaptım siz diğerlerini de kullanabilirsiniz.

EterPackManager.cpp:
Kod:
// INCLUDELARIN ALTINA EKLE

inline bool IsRelativePath(const char* path)
{
    if (!path || !path[0])
        return false;

    if (path[1] == ':')
        return false;

    return true;
}


// ARA

bool CEterPackManager::Get(CMappedFile & rMappedFile, const char * c_szFileName, LPCVOID * pData)

// BUTUN FONKSIYONU DEGISTIR

bool CEterPackManager::Get(CMappedFile & rMappedFile, const char * c_szFileName, LPCVOID * pData)
{
    if (!c_szFileName || c_szFileName[0] == '\0')
        return false;

    if (m_iSearchMode == SEARCH_PACK_FIRST)
    {
        if (GetFromPack(rMappedFile, c_szFileName, pData))
            return true;

        if (IsRelativePath(c_szFileName) && GetFromFile(rMappedFile, c_szFileName, pData))
            return true;
    }
    else if (m_iSearchMode == SEARCH_FILE_FIRST)
    {
        if (IsRelativePath(c_szFileName) && GetFromFile(rMappedFile, c_szFileName, pData))
            return true;

        return GetFromPack(rMappedFile, c_szFileName, pData);
    }

    return false;
}

// ARA

bool CEterPackManager::isExist(const char * c_szFileName)

// BUTUN FONKSIYONU DEGISTIR

bool CEterPackManager::isExist(const char * c_szFileName)
{
    if (!c_szFileName || c_szFileName[0] == '\0')
        return false;

    if (m_iSearchMode == SEARCH_PACK_FIRST)
    {
        if (isExistInPack(c_szFileName))
            return true;

        if (c_szFileName[1] != ':')
            return _access(c_szFileName, 0) == 0;
    }
    else if (m_iSearchMode == SEARCH_FILE_FIRST)
    {
        if (c_szFileName[1] != ':')
        {
            if (_access(c_szFileName, 0) == 0)
                return true;
        }

        return isExistInPack(c_szFileName);
    }

    return false;
}
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Tema düzenleyici

Tema özelletirmeleri

Grafik arka planlar

Granit arka planlar