Ir para conteúdo
  • Cadastre-se

(Resolvido)Level e Vocação na Tela de Login


Ir para solução Resolvido por MaTTch,

Posts Recomendados

Como titulo já diz tudo!

 

Quero que apareça o Level e Vocação do char na tela de login. Creio que seja na "soucers" só necessito do código!

 

Ajude ME!

Link para o post
Compartilhar em outros sites

Vá em iologindata.cpp e lá no final adicione isso:

std::string IOLoginData::getPlayerLevelAndVocation(const std::string& name) const
{
	Database* db = Database::getInstance();
	DBQuery query;
	query << "SELECT `level`, `vocation` FROM `players` WHERE `name` " << db->getStringComparer() << db->escapeString(name) << ";";
	DBResult* result;
	if(!(result = db->storeQuery(query.str())))
		return false;
	
	const uint32_t playerLevel = result->getDataInt("level");
	const uint32_t playerVocation = result->getDataInt("vocation");
	
	std::stringstream ret;
	ret << "Lvl: " << playerLevel;
	
	Vocation* voc = Vocations::getInstance()->getVocation(playerVocation);
	
	if(!voc | playerVocation == 0)
		return ret.str();

	ret << ", " << voc->getName().c_str();
	
	result->free();
	return ret.str();
}

 

Agora em iologindata.h procure por:

bool getGuidByNameEx(uint32_t& guid, bool& specialVip, std::string& name);

E adicione logo abaixo:

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

Em protocollogin.cpp procure por:

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));

E substitua por:

if(g_config.getBool(ConfigManager::ON_OR_OFF_CHARLIST))
{
	if(g_game.getPlayerByName((*it)))
		output->putString("Online");
	else
		output->putString("Offline");
}
else
{
	if((*it) != "Account Manager")
	{
		output->putString(IOLoginData::getInstance()->getPlayerLevelAndVocation((*it)));
	}
	else
		output->putString(g_config.getString(ConfigManager::SERVER_NAME));
}

Compile e pronto.

 

Lembrando que em config.lua a opção displayOnOrOffAtCharlist precisa estar false.

Link para o post
Compartilhar em outros sites

´Funcionou só que tem um erro. Nao Mostra as vocation Royal Paladin,Master Sorcerer,Elite Knight,Elder druid.  tem como por siglas nas vocation tipo: K, P, S, D -  EK, RP, MS, ED??

Editado por williamcgv (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

´Funcionou só que tem um erro. Nao Mostra as vocation Royal Paladin,Master Sorcerer,Elite Knight,Elder druid.  tem como por siglas nas vocation tipo: K, P, S, D -  EK, RP, MS, ED??

 

std::string IOLoginData::getPlayerLevelAndVocation(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 playerLevel = result->getDataInt("level");
	const uint32_t playerVocation = result->getDataInt("vocation");
	const uint32_t playerPromotion = result->getDataInt("promotion");
	
	std::stringstream ret;
	std::string voc;
	
	if(playerPromotion == 0) 
	{
		switch(playerVocation)
		{
			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(playerPromotion == 1) 
	{
		switch(playerVocation)
		{
			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";
		} 
	}
		
	ret << "Lvl: " << playerLevel << ", " << voc;
	
	result->free();
	return ret.str();
} 

Editado por MaTTch (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo