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...
Katılım
23 Ara 2009
Konular
75
Mesajlar
310
Online süresi
29d 6h
Reaksiyon Skoru
36
Altın Konu
0
TM Yaşı
16 Yıl 5 Ay 17 Gün
Başarım Puanı
141
MmoLira
630
DevLira
9
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 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
 
Bahsettiğiniz hatanın çözümü anlattığınız şey ile alakasız olduğu gibi yaptığınız işlem de sadece hatayı gizliyor.
Kapatıldı.
 
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)