Ir para conteúdo

Level and vocation instead of world name on character login


Helflin

Posts Recomendados

Bom consegui o que queria, kkkkk... transformei em tutorial....

 

Essas modificações fará com que fique assim:
post-138652-0-57607700-1377214283.png

 

Vá em: "iologindata.h" e procure por isto:

uint32_t getAccountIdByName(const std::string& name) const;

Na linha de baixo, cole isto:

std::string getCheckPlayerLevel(const std::string& name) const;

Vá em: "iologindata.cpp" e no fim do arquivo, na ultima linha, cole o que esta logo abaixo:

 std::string IOLoginData::getCheckPlayerLevel(const std::string& name) const
{
Database* db = Database::getInstance();
DBQuery query;
query << "SELECT `level`, `vocation`, `promotion` FROM `players` WHERE `name` " << db->getStringComparer() << db->escapeString(name) << ";";
DBResult* result;
if(!(result = db->storeQuery(query.str())))
return false;

const uint32_t pLevel = result->getDataInt("level");
const uint32_t pVoc = result->getDataInt("vocation");
const uint32_t prom = result->getDataInt("promotion");
std::string voc;

if (prom == 0)
{
switch (pVoc)
{
case 0: voc = "Rookie";
break;
case 1: voc = "S";
break;
case 2: voc = "D";
break;
case 3: voc = "P";
break;
case 4: voc = "K";
break;
default: voc = "Uknown";
}


}
else if (prom == 1)
{
switch (pVoc)
{
case 0: voc = "Rookie";
break;
case 1: voc = "MS";
break;
case 2: voc = "ED";
break;
case 3: voc = "RP";
break;
case 4: voc = "EK";
break;
default: voc = "Uknown";
}
}

else if (prom == 2)
{
switch (pVoc)
{
case 0: voc = "Rookie";
break;
case 1: voc = "VIP MS";
break;
case 2: voc = "VIP ED";
break;
case 3: voc = "VIP RP";
break;
case 4: voc = "VIP EK";
break;
default: voc = "Uknown";
}
}

std::stringstream ret;
ret << "Level: "<< pLevel << " Voc: " << voc;
result->free();
return ret.str();

}

Vá em "protocollogin.cpp" e procure isto:

output->putString(g_config.getString(ConfigManager::SERVE R_NAME));

Troque por isto, ou então adicione // antes do inicio da linha:

//output->putString(g_config.getString(ConfigManager::SERVE R_NAME));

Mais a baixo, onde estiver este código, selecione:

            #ifndef __LOGIN_SERVER__
            output->putString((*it));
            if(g_config.getBool(ConfigManager::ON_OR_OFF_CHARLIST))
            {
                if(g_game.getPlayerByName((*it)))
                    output->putString("Online");
                else
                    output->putString("Offline");
            }
            else
                output->putString(g_config.getString(ConfigManager::SERVER_NAME));

            output->put<uint32_t>(serverIp);
            output->put<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT));
            #else

E altere por esse a baixo:

            #ifndef __LOGIN_SERVER__
            output->putString((*it));
            if(g_config.getBool(ConfigManager::ON_OR_OFF_CHARLIST))
            {
                if(g_game.getPlayerByName((*it)))
                    output->putString("Online");
                else
                    output->putString("Offline");
            }
                        else
            {
                std::stringstream str;
                Player *player = g_game.getPlayerByName((*it));
                bool v = false;
                if(!player)
                {
                    v = true;
                    player = g_game.getPlayerByNameEx((*it));
                }

                str << player->getVocation()->getName();
                str << ", ";
                str << player->getLevel();
                output->putString(str.str());
                if(v)
                    delete player;
            }

            output->put<uint32_t>(serverIp);
            output->put<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT));
            #else

Lembrando que para funcionar precisa estar assim no seu config.lua.

displayOnOrOffAtCharlist = false

Créditos:

EvulMastah(otland) >> Corrigiu o erro que dava.

Jetro(otland) >> Postou os códigos.

Eu, por trazer ao XTibia, rs.

Editado por Helflin
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...