Ir para conteúdo

Featured Replies

Postado

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!

Resolvido por MaTTch

Ir para solução
  • Respostas 6
  • Visualizações 1.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Vá em iologindata.cpp e lá no final adicione isso:   Agora em iologindata.h procure por: bool getGuidByNameEx(uint32_t& guid, bool& specialVip, std::string& name); E adicione l

Postado

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.

Postado
  • Autor

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

Postado
  • 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)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo