Yardım İNDEX SORUNU

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

EKGAME

Üye
Üye
Mesaj
17
Çözümler
1
Beğeni
2
Puan
50
Herkese merhaba servere yeni bir item eklerken pack adını index'e eklememiz gerekiyor ama elimdeki İndex'e pack adını ekleyemiyor bilindik indexlerden farklı bu konu hakkında bilgisi olan varmıdır acaba ?
17460_9683a0ea216cd7a7433e2ec674a1d0ee.png
 
Pack içeriğinde bi sıkıntı olabilir belki. Yeni eklemeye çalıştığı itemi mevcut packların içine atıp deneyebilir
 
Pack içeriğinde bi sıkıntı olabilir belki. Yeni eklemeye çalıştığı itemi mevcut packların içine atıp deneyebilir
Savaşçı erkek için zırh ekleyeceğim diyelim PC icerisine gr2 dosyasını atıyorum ama gr2 textureyi farklı bir konumdan çekiyor bu durumda gr2 texture changer kullanıyorum e buda haliyle yoruyor PC icerisine gr2nin texture çektiği konumu oluşturup öyle denemedim olmadı son çare texture changer yaptım
 
İsterseniz userinterface/userinterface.cpp girip PackInitialize aratın başka bir files ile karşılaştırın orda bi problem olabilir

Edit : eklediginiz zırhın gr2sini açın çektigi yol orada mevcut ymir work/xxx/xxx diye devam eder

ymir work olan bir packin içindne dogru klasörleri açarak devam etmeyi deneyebilirsin
 
attıgım konuya gir orda yapılışı mevcut tersini uygulayacaksın degistirilen kodu başka bir filesten alabilirsin

Martysama srcsine ait kodu seninle paylaşıyım

Kod:
bool PackInitialize(const char * c_pszFolder)
{
    NANOBEGIN
    if (_access(c_pszFolder, 0) != 0)
        return true;

    std::string stFolder(c_pszFolder);
    stFolder += "/";

    std::string stFileName(stFolder);
    stFileName += "Index";

    CMappedFile file;
    LPCVOID pvData;

    if (!file.Create(stFileName.c_str(), &pvData, 0, 0))
    {
        LogBoxf("FATAL ERROR! File not exist: %s", stFileName.c_str());
        TraceError("FATAL ERROR! File not exist: %s", stFileName.c_str());
        return true;
    }

    CMemoryTextFileLoader TextLoader;
    TextLoader.Bind(file.Size(), pvData);

    bool bPackFirst = TRUE;

    const std::string& strPackType = TextLoader.GetLineString(0);

    if (strPackType.compare("FILE") && strPackType.compare("PACK"))
    {
        TraceError("Pack/Index has invalid syntax. First line must be 'PACK' or 'FILE'");
        return false;
    }

#ifdef NDEBUG // @warme601 _DISTRIBUTE -> NDEBUG
    Tracef("Note: PackFirst mode enabled. [pack]\n");

    //if (0 == strPackType.compare("FILE"))
    //{
    //    bPackFirst = FALSE;
    //    Tracef("¾Ë¸²: ÆÄÀÏ ¸ğµåÀÔ´Ï´Ù.\n");
    //}
    //else
    //{
    //    Tracef("¾Ë¸²: ÆÑ ¸ğµåÀÔ´Ï´Ù.\n");
    //}
#else
    bPackFirst = FALSE;
    Tracef("Note: PackFirst mode not enabled. [file]\n");
#endif

    CTextFileLoader::SetCacheMode();
#if defined(USE_RELATIVE_PATH)
    CEterPackManager::Instance().SetRelativePathMode();
#endif
    CEterPackManager::Instance().SetCacheMode();
    CEterPackManager::Instance().SetSearchMode(bPackFirst);

    CSoundData::SetPackMode(); // Miles ÆÄÀÏ ÄݹéÀ» ¼ÂÆÃ

    std::string strPackName, strTexCachePackName;
    for (DWORD i = 1; i < TextLoader.GetLineCount() - 1; i += 2)
    {
        const std::string & c_rstFolder = TextLoader.GetLineString(i);
        const std::string & c_rstName = TextLoader.GetLineString(i + 1);

        strPackName = stFolder + c_rstName;
        strTexCachePackName = strPackName + "_texcache";

        CEterPackManager::Instance().RegisterPack(strPackName.c_str(), c_rstFolder.c_str());
        CEterPackManager::Instance().RegisterPack(strTexCachePackName.c_str(), c_rstFolder.c_str());
    }

    CEterPackManager::Instance().RegisterRootPack((stFolder + std::string("root")).c_str());
    NANOEND
    return true;
}
 
Geri
Üst