Ir para conteúdo

[7.92] Auto Clean Map!


Posts Recomendados

COMENTS PLEASE!

 

Bom esse code é para quem já tem o code /clean em commands.cpp :)

No caso eu usei a versão do Evolutions 0.7.7 pra criar ele, e lá tem tudo certinho. Intão irei passar pra vocês o code.

 

Em configmanager.cpp adicione:

#ifdef __AUTOCLEAN_JACK__
m_confInteger[AUTO_CLEAN] = getGlobalNumber(L, "autoclean", 30)*60*1000;
#endif

 

Em configmanager.h adicione:

#ifdef __AUTOCLEAN_JACK__
	AUTO_CLEAN,
	#endif

 

No final de game adicione:

#ifdef __AUTOCLEAN_JACK__
long Game::cleanMap()
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::cleanMap()");
return map->clean();
}

long Game::autocleanMap()
{	
	OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::autocleanMap()");
	std::cout << ":: auto clean... ";
	timer();
	long count = cleanMap();
	double sec = timer();

	std::stringstream msg;
	msg << "Next map clean you be in " << g_config.getNumber(ConfigManager::AUTO_CLEAN) << " minutes." << std::ends;
	for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it){
			if(dynamic_cast<Player*>(it->second))
					(*it).second->sendTextMessage(MSG_STATUS_WARNING, msg.str().c_str());
	}

	std::cout << "ok (" << timer() << "s)" << std::endl;
	addEvent(makeTask(g_config.getNumber(ConfigManager::AUTO_CLEAN), std::mem_fun(&Game::beforeClean)));
}

long Game::beforeClean()
{
	for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it) {
			it->second->sendTextMessage(MSG_STATUS_WARNING, "1 minute to clean. Get your things from floor now!");
	}

	addEvent(makeTask(60000, std::mem_fun(&Game::autocleanMap)));
}
#endif

 

Em games.h abaixo de:

void changeLight(const Creature* creature);

 

Adicione:

#ifdef __AUTOCLEAN_JACK__
long autocleanMap();
long beforeClean();
long cleanMap();
#endif

 

Em otserv.cpp abaixo de:

// Call to WSA Startup on Windows Systems...

 

Adicione:

#ifdef __AUTOCLEAN_JACK__   
if(g_config.getNumber(ConfigManager::AUTO_CLEAN) > 0)
	g_game.addEvent(makeTask(g_config.getNumber(ConfigManager::AUTO_CLEAN), std::mem_fun(&Game::autocleanMap)));
else
	std::cout << ":: Auto clean disabled!" << std::endl;
#endif //__AUTOCLEAN_JACK__

 

Em paramenters adicione:

 -D__AUTOCLEAN_JACK__

 

Agora no config.lua adicione

--Auto clean(0 - off, 1 - um minuto, 60 - uma hora!)
autoclean = 5

 

Crédits: 80% Jackson Zani, 20% Bido

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

  • 1 month later...

Bom, galerinha

 

O paramenters ele fica no

 

Project(projeto)>Project Options>Paramenters

 

Ou se não só use alt+p que abre direto no paramenters ;}

 

Abraços.

 

PS: Pega em todas as versões.

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
eu não tenho o clean... tm omo posta pra nós n? ;D

 

Hmm, este code não funciona na nova SVN

Porque agora estão usando outro tipo de class QTreeNode, dai tenho que aprimorar hehehe

Tem um code do novo /clean no otfans. feito pelo Xidaozu e pelo Jiddo, mas lembrando que esse code não pegará com o novo /clean, a não ser que tu pode esse code na versão 0.7.8 do xidaozu, lá ainda está com svn velha, (class velha). mas já já tem a nova versão 0.7.9 :D

 

Abraços

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

Pow cara Mto rox, compilei td certinho rodou bem + tem um probleminha...

Quando vc da /clean some ateh items q vc pois no mapeditor o0, no meu serv existem muitos npcs que mostram o q vende apenas pelo item q fika na mesinha atras...dai fika um pouco complicado..quando eu do /clean some! Impossivel arrumar esse "bug" no seu code???

---------------------Quando voce fizer o code e editar ae, ou postar um novo tópico manda uma mp p/ mim ok?-------------------

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

Pow cara Mto rox, compilei td certinho rodou bem + tem um probleminha...

Quando vc da /clean some ateh items q vc pois no mapeditor o0, no meu serv existem muitos npcs que mostram o q vende apenas pelo item q fika na mesinha atras...dai fika um pouco complicado..quando eu do /clean some! Impossivel arrumar esse "bug" no seu code???

 

Bom, primeiramente isso não é bug hehehe, é porque eu não botei um if(container) ou seja, daqui alguns dias irei fazer um novo com a nova CLASS, esse code ai é muito velho hehehe, e já arrumarei esse problema.

 

Abraços!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...