• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Compiling Compiling error (visual studio 2015)

undead mage

Active Member
Joined
Mar 25, 2012
Messages
364
Solutions
2
Reaction score
47
Location
Amsterdam
So im getting a pugixml error when im trying to compile can somebody please help me out? I made a video of how im compiling and did put it on youtube. It's 03:53 minutes long but it starts at 01:00 xd so it's 02:53 minutes :p

 
I know how to fix it, you are missing the win32 libraries!

Open Start Menu > Visual Studio 2015 (folder) > Developer Command Prompt for Visual Studio 2015 and enter following commands:
1.
Code:
cd %BOOST_ROOT%
2.
Code:
bootstrap.bat
3.
Code:
b2 toolset=msvc-14.0 --build-type=complete --libdir=%BOOST_ROOT%\lib32-msvc-14.0 install
Now wait, this will take some time...

Then try to compile again.
 
Last edited:
I know how to fix it, you are missing the win32 libraries!

Open Start Menu > Visual Studio 2015 (folder) > Developer Command Prompt for Visual Studio 2015 and enter following commands:
1.
Code:
cd %BOOST_ROOT%
2.
Code:
bootstrap.bat
3.
Code:
b2 toolset=msvc-12.0 --build-type=complete --libdir=%BOOST_ROOT%\lib32-msvc-14.0 install
Now wait, this will take some time...

Then try to compile again.

I'll try it out when I get home thx!
 
Did you mean that step 2 takes long? Because it doesn't do anything after step 2 this came:
Code:
Building Boost.Build engine
and now it's like that for about a hour. I tryd enter and some other keys but it doesn't do anything should I let it like this? xd
 
Did you mean that step 2 takes long? Because it doesn't do anything after step 2 this came:
Code:
Building Boost.Build engine
and now it's like that for about a hour. I tryd enter and some other keys but it doesn't do anything should I let it like this? xd
I don't know how long it should take. Probably not an hour.. Step 3 took like 30 minutes for me.
Try to type just type bootstrap instead (not .bat).
 
definitions.h
Code:
#define CLIENT_VERSION_MIN 1090
#define CLIENT_VERSION_MAX 1091
#define CLIENT_VERSION_STR "10.91"

protocollogin.cpp
Code:
void ProtocolLogin::getCharacterList(const std::string& accountName, const std::string& password, uint16_t version)
{
    Account account;
    if (!IOLoginData::loginserverAuthentication(accountName, password, account)) {
        disconnectClient("Account name or password is not correct.", version);
        return;
    }

    auto output = OutputMessagePool::getOutputMessage();
    //Update premium days
    Game::updatePremium(account);

    const std::string& motd = g_config.getString(ConfigManager::MOTD);
    if (!motd.empty()) {
        //Add MOTD
        output->addByte(0x14);

        std::ostringstream ss;
        ss << g_game.getMotdNum() << "\n" << motd;
        output->addString(ss.str());
    }

    //Add session key
    output->addByte(0x28);
    output->addString(accountName + "\n" + password);

    //Add char list
    output->addByte(0x64);

    output->addByte(1); // number of worlds

    output->addByte(0); // world id
    output->addString(g_config.getString(ConfigManager::SERVER_NAME));
    output->addString(g_config.getString(ConfigManager::IP));
    output->add<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT));
    output->addByte(0);

    uint8_t size = std::min<size_t>(std::numeric_limits<uint8_t>::max(), account.characters.size());
    output->addByte(size);
    for (uint8_t i = 0; i < size; i++) {
        output->addByte(0);
        output->addString(account.characters[i]);
    }

    //Add premium days
    if (version >= 1080) {
        if (version >= 1082) {
            output->addByte(0);//Account state
        }
        output->addByte(g_config.getBoolean(ConfigManager::FREE_PREMIUM) || account.premiumDays > 0);
        output->add<uint32_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0 : (OTSYS_TIME() + (account.premiumDays * 86400)));
    }
    else {
        output->add<uint16_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0xFFFF : account.premiumDays);
    }


    send(output);

    disconnect();
}
 
definitions.h
Code:
#define CLIENT_VERSION_MIN 1090
#define CLIENT_VERSION_MAX 1091
#define CLIENT_VERSION_STR "10.91"

protocollogin.cpp
Code:
void ProtocolLogin::getCharacterList(const std::string& accountName, const std::string& password, uint16_t version)
{
    Account account;
    if (!IOLoginData::loginserverAuthentication(accountName, password, account)) {
        disconnectClient("Account name or password is not correct.", version);
        return;
    }

    auto output = OutputMessagePool::getOutputMessage();
    //Update premium days
    Game::updatePremium(account);

    const std::string& motd = g_config.getString(ConfigManager::MOTD);
    if (!motd.empty()) {
        //Add MOTD
        output->addByte(0x14);

        std::ostringstream ss;
        ss << g_game.getMotdNum() << "\n" << motd;
        output->addString(ss.str());
    }

    //Add session key
    output->addByte(0x28);
    output->addString(accountName + "\n" + password);

    //Add char list
    output->addByte(0x64);

    output->addByte(1); // number of worlds

    output->addByte(0); // world id
    output->addString(g_config.getString(ConfigManager::SERVER_NAME));
    output->addString(g_config.getString(ConfigManager::IP));
    output->add<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT));
    output->addByte(0);

    uint8_t size = std::min<size_t>(std::numeric_limits<uint8_t>::max(), account.characters.size());
    output->addByte(size);
    for (uint8_t i = 0; i < size; i++) {
        output->addByte(0);
        output->addString(account.characters[i]);
    }

    //Add premium days
    if (version >= 1080) {
        if (version >= 1082) {
            output->addByte(0);//Account state
        }
        output->addByte(g_config.getBoolean(ConfigManager::FREE_PREMIUM) || account.premiumDays > 0);
        output->add<uint32_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0 : (OTSYS_TIME() + (account.premiumDays * 86400)));
    }
    else {
        output->add<uint16_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0xFFFF : account.premiumDays);
    }


    send(output);

    disconnect();
}

That didn't work it still says Only clients with protocol 10.77 allowed!
 
Back
Top