img:

em iologindata.h
procure:
uint32_t getAccountIdByName(const std::string& name) const;
e substituia por:
std::string getCheckPlayerLevel(const std::string& name) const;
iologindata.cpp
para tfs 0.3.6
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->getStringComparison() << 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";
}
}
std::stringstream ret;
ret << "Level: "<< pLevel << " Voc: " << voc;
result->free();
return ret.str();
}
para tfs 0.4:
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";
}
}
std::stringstream ret;
ret << "Level: "<< pLevel << " Voc: " << voc;
result->free();
return ret.str();
}
agora em protocollogin.cpp
procure:
output->putString(g_config.getString(ConfigManager::SERVE R_NAME));
e em baixo adicione:
output->putString(IOLoginData::getInstance()->getCheckPlayerLevel((*it)));
testado em 0.3.6 e 0.4 tfs.
créditos:
jetros









