Ir para conteúdo

[7.92]!online [tabela]


Posts Recomendados

Fiz uma pequena modificação e achei interessante compartilhar com vocês membros do Xtibia. ;D!

É o comando normal do !online, mas invês de ser MSG_STATUS_CONSOLE_BLUE eu coloquei sendTextWindow

 

Vamos lá.

 

Em game.cpp no final add:

void Game::sendWindow(const std::string& text)
{				
   	for(AutoList<Creature>::listiterator it = listCreature.list.begin(); it != listCreature.list.end(); ++it){
	Player* player = dynamic_cast<Player*>((*it).second);
	if (player){
	player->sendTextWindow(4990, text);
	}
}
}

 

Em game.h abaix de:

void changeLight(const Creature* creature);

 

Adicione:

void sendWindow(const std::string& text);

 

Agora em commands.cpp troque todo o comando:

bool Commands::whoIsOnline(Creature* creature, const std::string &cmd, const std::string &param)

 

Por esse:

bool Commands::whoIsOnline(Creature* creature, const std::string &cmd, const std::string &param)
{
if(Player* player = creature->getPlayer()){
	AutoList<Player>::listiterator iter = Player::listPlayer.list.begin();
	std::string info = "Players online: " + (*iter).second->getName();
	++iter;

	while(iter != Player::listPlayer.list.end()){
		if((*iter).second->getAccessLevel() < ACCESS_PROTECT){
			info += ", ";
			info += (*iter).second->getName();
		}

		++iter;
	}

	player->sendTextWindow(1949, info.c_str());
}

return true;
}

 

Agora dê Rebuild All. Ctrl+f11

 

E você verá os players online asim:



imagemrq5.jpg

 

Qualquer dúvida, ou dicas. Poste aqui.

 

Abraços!

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

  • 3 weeks later...

Pra fica mais organizado nao pode por assim oh

 

bool Commands::whoIsOnline(Creature* creature, const std::string &cmd, const std::string &param)
{
if(Player* player = creature->getPlayer()){
	AutoList<Player>::listiterator iter = Player::listPlayer.list.begin();
	std::string info = "Players online: \n-" + (*iter).second->getName();
	++iter;

	while(iter != Player::listPlayer.list.end()){
		if((*iter).second->getAccessLevel() < ACCESS_PROTECT){
			info += "\n- ";
			info += (*iter).second->getName();
		}

		++iter;
	}

	player->sendTextWindow(1949, info.c_str());
}

return true;
}

Link para o comentário
Compartilhar em outros sites

  • 8 years later...
×
×
  • Criar Novo...