Oi gente... Tava sem nada pra faze e resolvi cria um code.. É assim.. De tantos em tantos minutos, o server da um cleanmap (comando /clean )
otserv.cpp
Emcima disso:
// Call to WSA Startup on Windows Systems...
Coloque isso:
// ZorZin clean mapif (g_config.getGlobalNumber("cleanmap") > 0){ g_game.addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000-60000, std::mem_fun(&Game::msgAntesdeCleanup))); g_game.addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000, std::mem_fun(&Game::cleanMap2)));}elsestd::cout << ":: Clean Map Disabled!" << std::endl;// ZorZin clean map
Game.cpp
acima de:
void Game::creatureBroadcastMessage(Creature *creature, const std::string &text)
coloque:
void Game::msgAntesdeCleanup(){for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it){std::string name;name = (*it).second->getName();extern Game g_game;Creature* creature = g_game.getCreatureByName(name);(*it).second->onCreatureSay(creature, SPEAK_BROADCAST, "O mapa será limpo daqui a exatamente 1 minuto. Por favor, retire os equipamentos do chão ou de cima da caixa do dp e deixe com seu char.");}}
agora procure por:
long Game::cleanMap(){OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::cleanMap()");return map->clean();}
abaixo adicione:
long Game::cleanMap2(){ addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000-60000, std::mem_fun(&Game::msgAntesdeCleanup))); addEvent(makeTask(g_config.getGlobalNumber("cleanmap")*60000, std::mem_fun(&Game::cleanMap2)));return map->clean();}
Game.h
procure por:
long cleanMap();
adicione logo abaixo:
long cleanMap2();
agora procure por:
void creatureBroadcastMessage(Creature *creature, const std::string &text);
acima adicione:
void msgAntesdeCleanup();
Agora vá no config.lua e coloque:
--Auto Clean Map -- de quanto em quanto tempo ira dar clean (em minutos) 60 = 1 horacleanmap = 60
Se der algum erro, pode ser porque no seu ot num tem o CleanMap(comando /clean)
Espero que esse code ajude vocês...
É bem simples mas com items no chão, dá muito lag..
Ai você num precisa ficar entrando no ot e dar /clean
Com o code da clean sozinho
Crédits: Zorzin & Frerety
Zorzin