• 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!

[9.46] The Forgotten Server v0.3.7-preview (Crying Damson)

This is what I would call preview, something that before you can view.... disappears.

Okay, so there's a huge issue with LuaJIT in the release that we haven't addressed yet, but the source code was also tagged along with the release so just checkout the code and compile it with Lua.

in console:
"unable to load config"

Rename config.lua.dist to config.lua.
 
Has support to war system? I added in my 0.3.6 but I remember that I have lost a lot of time to do it, and I really dont have time to do again
 
what the difference of Forgotten 0.3.6 to 2.1 if they both are Forgotten, and they both are for Tibia 9.46?
 
Okay, so there's a huge issue with LuaJIT in the release that we haven't addressed yet, but the source code was also tagged along with the release so just checkout the code and compile it with Lua.

How to compile it with Lua instead of LuaJIT? I don't know what I should edit
 
Yes ill test it, but... if i want to modify the map, how can i do it?...
 
@lokolokio
For modify the map you need a RME - Remere's Map Editor.

@all
Help! Players can only go up to the choice of Character, login does not happen. But is only in this version 9.46-0.3.7. In localhost open all good, list and login. In others versions 8.70 opening normal , but in this no. Test ports http://mundinho.sytes.net:8090/?subtopic=checkport .My problem is only in new versions.

ACC:1 | SENHA:1
IP: mundinho.sytes.net Porta: 7171
IP: mundinho.servergame.com Porta: 7171
9.52
 
no, no is port, i have one otserv opened but 8.70

all 0.3.7 versions dont open here, i have windows 7, my 8.70 is 0.4.0 and he open

@Crying Damson or other good developer.

HERE ---> [9.46] The Forgotten Server V0.3.7-Preview (Crying Damson) - XTibia - A sua comunidade de Tibia e OTserv - Página 2
Other man have the same error login-global on 0.3.7
0.3.7 NO ERRORS CONSOLE, BUT HAVE BIG BUG ON LOGIN GLOBAL,. WORLD PLAYERS ACCES ONLY LIST CHARACTERS BUT LOGIN FAIL.
windows 7 error? Please fix the error please.

IPAddress m_ip;
std::clog << "> Global IP address: ";
for(StringVec::iterator it = ip.begin(); it != ip.end(); ++it)
{
uint32_t resolvedIp = inet_addr(it->c_str());
if(resolvedIp == INADDR_NONE)
{
struct hostent* host = gethostbyname(it->c_str());
if(!host)
{
std::clog << "..." << std::endl;
startupErrorMessage("Cannot resolve " + (*it) + "!");
}

resolvedIp = *(uint32_t*)host->h_addr;
}

m_ip = boost::asio::ip::address_v4(swap_uint32(resolvedIp));
ipList.push_back(m_ip);
std::clog << m_ip.to_string() << std::endl;
}

ipList.push_back(boost::asio::ip::address_v4(INADDR_LOOPBACK));
if(!g_config.getBool(ConfigManager::BIND_ONLY_GLOBAL_ADDRESS))
{
char hostName[128];
if(!gethostname(hostName, 128))
{
if(hostent* host = gethostbyname(hostName))
{
std::stringstream s;
for(uint8_t** addr = (uint8_t**)host->h_addr_list; addr[0]; addr++)
{
uint32_t resolved = swap_uint32(*(uint32_t*)(*addr));
if(m_ip.to_v4().to_ulong() == resolved)
continue;

ipList.push_back(boost::asio::ip::address_v4(resolved));
s << (int32_t)(addr[0][0]) << "." << (int32_t)(addr[0][1]) << "."
<< (int32_t)(addr[0][2]) << "." << (int32_t)(addr[0][3]) << "\t";
}

if(s.str().size())
std::clog << "> Local IP address(es): " << s.str() << std::endl;
}
}

if(m_ip.to_v4().to_ulong() != LOCALHOST)
ipList.push_back(boost::asio::ip::address_v4(LOCALHOST));
}
else if(ipList.size() < 2)
startupErrorMessage("Unable to bind any IP address! You may want to disable \"bindOnlyGlobalAddress\" setting in config.lua");

services->add<ProtocolStatus>(g_config.getNumber(ConfigManager::STATUS_PORT), ipList);
services->add<ProtocolManager>(g_config.getNumber(ConfigManager::MANAGER_PORT), ipList);
#ifdef __OTADMIN__
services->add<ProtocolAdmin>(g_config.getNumber(ConfigManager::ADMIN_PORT), ipList);
#endif

//services->add<ProtocolHTTP>(8080, ipList);
if(
#ifdef __LOGIN_SERVER__
true
#else
!g_config.getBool(ConfigManager::LOGIN_ONLY_LOGINSERVER)
#endif
&nbsp;)
{
services->add<ProtocolLogin>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
services->add<ProtocolOldLogin>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
}

services->add<ProtocolGame>(g_config.getNumber(ConfigManager::GAME_PORT), ipList);
services->add<ProtocolOldGame>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
std::clog << "> Bound ports: ";

std::list<uint16_t> ports = services->getPorts();
for(std::list<uint16_t>::iterator it = ports.begin(); it != ports.end(); ++it)
std::clog << (*it) << "\t";

std::clog << std::endl << ">> Everything smells good, server is starting up..." << std::endl;
g_game.start(services);
g_game.setGameState(g_config.getBool(ConfigManager::START_CLOSED) ? GAMESTATE_CLOSED : GAMESTATE_NORMAL);
g_loaderSignal.notify_all();
}

PLEASE SEACH THE BUG ON REMOTE LOGIN GLOBAL


THIS NO WORK
otserv.ccp 0.3.7

Code:
ipList.push_back(boost::asio::ip::address_v4(INADDR_LOOPBACK));
    if(!g_config.getBool(ConfigManager::BIND_ONLY_GLOBAL_ADDRESS))
    {
        char hostName[128];
        if(!gethostname(hostName, 128))
        {
            if(hostent* host = gethostbyname(hostName))
            {
                std::stringstream s;
                for(uint8_t** addr = (uint8_t**)host->h_addr_list; addr[0]; addr++)
                {
                    uint32_t resolved = swap_uint32(*(uint32_t*)(*addr));
                    if(m_ip.to_v4().to_ulong() == resolved)
                        continue;

                    ipList.push_back(boost::asio::ip::address_v4(resolved));
                    s << (int32_t)(addr[0][0]) << "." << (int32_t)(addr[0][1]) << "."
                        << (int32_t)(addr[0][2]) << "." << (int32_t)(addr[0][3]) << "\t";
                }

                if(s.str().size())
                    std::clog << "> Local IP address(es): " << s.str() << std::endl;
            }
        }

        if(m_ip.to_v4().to_ulong() != LOCALHOST)
            ipList.push_back(boost::asio::ip::address_v4(LOCALHOST));
    }
    else if(ipList.size() < 2)
        startupErrorMessage("Unable to bind any IP address! You may want to disable \"bindOnlyGlobalAddress\" setting in config.lua");

    services->add<ProtocolStatus>(g_config.getNumber(ConfigManager::STATUS_PORT), ipList);
    services->add<ProtocolManager>(g_config.getNumber(ConfigManager::MANAGER_PORT), ipList);
    #ifdef __OTADMIN__
    services->add<ProtocolAdmin>(g_config.getNumber(ConfigManager::ADMIN_PORT), ipList);
    #endif

    //services->add<ProtocolHTTP>(8080, ipList);
    if(
#ifdef __LOGIN_SERVER__
    true
#else
    !g_config.getBool(ConfigManager::LOGIN_ONLY_LOGINSERVER)
#endif
    )
    {
        services->add<ProtocolLogin>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
        services->add<ProtocolOldLogin>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
    }

    services->add<ProtocolOldGame>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
    IntegerVec games = vectorAtoi(explodeString(g_config.getString(ConfigManager::GAME_PORT), ","));
    for(IntegerVec::const_iterator it = games.begin(); it != games.end(); ++it)
        services->add<ProtocolGame>(*it, ipList);

    std::clog << "> Bound ports: ";
    std::list<uint16_t> ports = services->getPorts();
    for(std::list<uint16_t>::iterator it = ports.begin(); it != ports.end(); ++it)
        std::clog << (*it) << "\t";

    std::clog << std::endl << ">> Everything smells good, server is starting up..." << std::endl;
    g_game.start(services);
    g_game.setGameState(g_config.getBool(ConfigManager::START_CLOSED) ? GAMESTATE_CLOSED : GAMESTATE_NORMAL);
    g_loaderSignal.notify_all();
}



THIS WORK
otserv.ccp 0.4.0

Code:
ipList.push_back(boost::asio::ip::address_v4(INADDR_LOOPBACK));
    if(!g_config.getBool(ConfigManager::BIND_ONLY_GLOBAL_ADDRESS))
    {
        char hostName[128];
        if(!gethostname(hostName, 128))
        {
            if(hostent* host = gethostbyname(hostName))
            {
                std::stringstream s;
                for(uint8_t** addr = (uint8_t**)host->h_addr_list; addr[0]; addr++)
                {
                    uint32_t resolved = swap_uint32(*(uint32_t*)(*addr));
                    if(m_ip.to_v4().to_ulong() == resolved)
                        continue;

                    ipList.push_back(boost::asio::ip::address_v4(resolved));
                    serverIps.push_front(std::make_pair(*(uint32_t*)(*addr), 0x0000FFFF));

                    s << (int32_t)(addr[0][0]) << "." << (int32_t)(addr[0][1]) << "."
                        << (int32_t)(addr[0][2]) << "." << (int32_t)(addr[0][3]) << "\t";
                }

                if(s.str().size())
                    std::clog << "> Local IP address(es): " << s.str() << std::endl;
            }
        }

        serverIps.push_front(std::make_pair(LOCALHOST, 0xFFFFFFFF));
        if(m_ip.to_v4().to_ulong() != LOCALHOST)
            ipList.push_back(boost::asio::ip::address_v4(LOCALHOST));
    }
    else if(ipList.size() < 2)
        startupErrorMessage("Unable to bind any IP address! You may want to disable \"bindOnlyGlobalAddress\" setting in config.lua");

    services->add<ProtocolStatus>(g_config.getNumber(ConfigManager::STATUS_PORT), ipList);
    services->add<ProtocolManager>(g_config.getNumber(ConfigManager::MANAGER_PORT), ipList);
    #ifdef __OTADMIN__
    services->add<ProtocolAdmin>(g_config.getNumber(ConfigManager::ADMIN_PORT), ipList);
    #endif

    //services->add<ProtocolHTTP>(8080, ipList);
    if(
#ifdef __LOGIN_SERVER__
    true
#else
    !g_config.getBool(ConfigManager::LOGIN_ONLY_LOGINSERVER)
#endif
    )
    {
        services->add<ProtocolLogin>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
        services->add<ProtocolOldLogin>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
    }

    services->add<ProtocolGame>(g_config.getNumber(ConfigManager::GAME_PORT), ipList);
    services->add<ProtocolOldGame>(g_config.getNumber(ConfigManager::LOGIN_PORT), ipList);
    std::clog << "> Bound ports: ";

    std::list<uint16_t> ports = services->getPorts();
    for(std::list<uint16_t>::iterator it = ports.begin(); it != ports.end(); ++it)
        std::clog << (*it) << "\t";

    std::clog << std::endl << ">> Everything smells good, server is starting up..." << std::endl;
    g_game.start(services);
    g_game.setGameState(g_config.getBool(ConfigManager::START_CLOSED) ? GAMESTATE_CLOSED : GAMESTATE_NORMAL);
    g_loaderSignal.notify_all();
}


---------------------------------------------------------------------------------------------------
All problem is, only normal login if localhost only on 0.3.7
If remote, login fail 10060. But have access only the characters chose list.
In 0.4.0 local and remote login is ok, 0.3.7 fail remote login.
The problem is on 0.3.7. But is on otserv.ccp 0.3.7 ?
 
Last edited by a moderator:
No have LuaJit problem, you need only re-compile and this no have more LuaJit problem,. But have one problem, this only enter localhost, have a bug on login global, i need help..
 
You need re-compile and bug /m orc and others end. This is a LuaJit problem, you need only re-compile and this no have more problem,. But have one problem, this only enter localhost, have a bug on remote login, i need help..
 
Back
Top