xranzei 1
xranzei
quickxd 1
quickxd
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
Hikaye Ekle

CMapOutdoor::Load - LoadMonsterAreaInfo FİX

  • Konuyu başlatan Konuyu başlatan 90𝘽𝙋𝙈
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 1
  • Görüntüleme Görüntüleme 1K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhaba Dostlar,
Bu hatayı bir çok files'ta almaktayız. çözümlere baktığımızda ise malesef bilen kişilerde bildiklerini pek açıklıyor gibi değildi. o yüzden paylaşma gereksinimi duydum herkes herşeyi bilecek değil zaten. :)

Bu Hata Neden Meydana Geliyor ?

Sistem asıl dosyayı okuyamıyor. Dosya adı MonsterAreaInfo.txt, ancak sistem regen.txt'yi okumaya çalışıyor.
İsterseniz monsterareainfo.txt dosyasını regen.txt ile değiştirebilirsiniz.

İstersenizde

Kod:
Client SRC:

GameLib > MapOutdoorLoda.cpp

Aratılır;
bool CMapOutdoor::LoadMonsterAreaInfo()


//Kod Blogu Komple Değiştirilir.

bool CMapOutdoor::LoadMonsterAreaInfo()
{
    RemoveAllMonsterAreaInfo();

    char c_szFileName[256];
    sprintf(c_szFileName, "%s\\regen.txt", GetMapDataDirectory().c_str());
    
    LPCVOID pModelData;
    CMappedFile File;
    
    if (!CEterPackManager::Instance().Get(File, c_szFileName, &pModelData))
    {
        //TraceError(" CMapOutdoorAccessor::LoadMonsterAreaInfo Load File %s ERROR", c_szFileName);
        return false;
    }
    
    CMemoryTextFileLoader textFileLoader;
    CTokenVector stTokenVector;
    
    textFileLoader.Bind(File.Size(), pModelData);
    
    for (DWORD i = 0; i < textFileLoader.GetLineCount(); ++i)
    {
        if (!textFileLoader.SplitLine(i, &stTokenVector))
            continue;
        
        stl_lowers(stTokenVector[0]);
        
        // Start or End
        if (0 == stTokenVector[0].compare("m") || 0 == stTokenVector[0].compare("g"))
        {
            if (stTokenVector.size() < 11)
            {
                TraceError("CMapOutdoorAccessor::LoadMonsterAreaInfo Get MonsterInfo File Format ERROR! continue....");
                continue;
            }

            CMonsterAreaInfo::EMonsterAreaInfoType eMonsterAreaInfoType;
            if (0 == stTokenVector[0].compare("m"))
            {
                eMonsterAreaInfoType = CMonsterAreaInfo::MONSTERAREAINFOTYPE_MONSTER;
            }
            else if (0 == stTokenVector[0].compare("g"))
            {
                eMonsterAreaInfoType = CMonsterAreaInfo::MONSTERAREAINFOTYPE_GROUP;
            }
            else
            {
                TraceError("CMapOutdoorAccessor::LoadMonsterAreaInfo Get MonsterInfo Data ERROR! continue....");
                continue;
            }
            
            const std::string & c_rstrOriginX    = stTokenVector[1].c_str();
            const std::string & c_rstrOriginY    = stTokenVector[2].c_str();
            const std::string & c_rstrSizeX        = stTokenVector[3].c_str();
            const std::string & c_rstrSizeY        = stTokenVector[4].c_str();
            const std::string & c_rstrZ            = stTokenVector[5].c_str();
            const std::string & c_rstrDir        = stTokenVector[6].c_str();
            const std::string & c_rstrTime        = stTokenVector[7].c_str();
            const std::string & c_rstrPercent    = stTokenVector[8].c_str();
            const std::string & c_rstrCount        = stTokenVector[9].c_str();
            const std::string & c_rstrVID        = stTokenVector[10].c_str();
            
            long lOriginX, lOriginY, lSizeX, lSizeY, lZ, lTime, lPercent;
            CMonsterAreaInfo::EMonsterDir eMonsterDir;
            DWORD dwMonsterCount;
            DWORD dwMonsterVID;
            
            lOriginX        = atol(c_rstrOriginX.c_str());
            lOriginY        = atol(c_rstrOriginY.c_str());
            lSizeX            = atol(c_rstrSizeX.c_str());
            lSizeY            = atol(c_rstrSizeY.c_str());
            lZ                = atol(c_rstrZ.c_str());
            eMonsterDir        = (CMonsterAreaInfo::EMonsterDir) atoi(c_rstrDir.c_str());
            lTime            = atol(c_rstrTime.c_str());
            lPercent        = atol(c_rstrPercent.c_str());
            dwMonsterCount    = (DWORD) atoi(c_rstrCount.c_str());
            dwMonsterVID    = (DWORD) atoi(c_rstrVID.c_str());

//            lOriginX -= m_dwBaseX / 100;
//            lOriginY -= m_dwBaseY / 100;
            
            CMonsterAreaInfo * pMonsterAreaInfo = AddMonsterAreaInfo(lOriginX, lOriginY, lSizeX, lSizeY);
            pMonsterAreaInfo->SetMonsterAreaInfoType(eMonsterAreaInfoType);
            if (CMonsterAreaInfo::MONSTERAREAINFOTYPE_MONSTER == eMonsterAreaInfoType)
                pMonsterAreaInfo->SetMonsterVID(dwMonsterVID);
            else if (CMonsterAreaInfo::MONSTERAREAINFOTYPE_GROUP == eMonsterAreaInfoType)
                pMonsterAreaInfo->SetMonsterGroupID(dwMonsterVID);
            pMonsterAreaInfo->SetMonsterCount(dwMonsterCount);
            pMonsterAreaInfo->SetMonsterDirection(eMonsterDir);
        }
    }
    
    return true;
}

İyi Forumlar Dilerim, Sürç-i lisan ettiysek affola
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst