Ir para conteúdo

[7.9]server Save


lithium

Posts Recomendados

em configmanager.cpp

 

m_confInteger[OTSERV_DB_ENABLED] = getGlobalNumber(L, "otserv_db_enabled", 0);

 

e adcione abaixo

m_confInteger[SERVER_SAVE] = getGlobalNumber(L, "autosave", 60);

 

e em configmager.h

 

procure por

 

OTSERV_DB_ENABLED,

 

e adcione abaixo

 

SERVER_SAVE,

 

no final de game.cpp adcione

void Game::saveServer()
{
std::cout << ":: Saving the server... ";

       for(AutoList<Player>::listiterator it = Player::listPlayer.list.begin(); it != Player::listPlayer.list.end(); ++it){
 (it->second)->loginPosition = (it->second)->getPosition();
 IOPlayer::instance()->savePlayer(it->second);
}

       if(map->saveMap(""))
 std::cout << "[done]" << std::endl;
       else
 std::cout << "[failure]" << std::endl;
}

void Game::autoServerSave()
{
saveServer();
addEvent(makeTask(g_config.getNumber(ConfigManager::SERVER_SAVE)*60000, std::mem_fun(&Game::autoServerSave)));
}

 

em game.h procure por

//Lock variable for Game class

 

Sobre ele adcione

 

void saveServer();
void autoServerSave();

 

em comands.cpp procure por

 

{"/gethouse",&Commands::getHouse},

 

abaixo dele adcione

 

{"/save",&Commands::saveServer},

 

e no final de comands.cpp coloque

 

bool Commands::saveServer(Creature* creature, const std::string& cmd, const std::string& param)
{
Player* player = creature->getPlayer();
g_game.saveServer();

if(player)
 player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "Global save complete.");
}

 

em commands.h procure

 

bool getHouse(Creature* creature, const std::string& cmd, const std::string& param);

 

abaixo disso adcione

 

bool saveServer(Creature* creature, const std::string& cmd, const std::string& param);

 

em otserv.cpp procure por

if(g_config.getString(ConfigManager::MD5_PASS) == "yes"){

 

e adcione acima

if(g_config.getNumber(ConfigManager::SERVER_SAVE) > 0)

g_game.addEvent(makeTask(g_config.getNumber(ConfigManager::SERVER_SAVE) * 60000, std::mem_fun(&Game::autoServerSave)));

else

std::cout << ":: Server save disabled!" << std::endl;

 

E no Config.lua coloque

 

.

------Server Save 7.9 By Lithium--------

-- interval between server saves
autosave = 10

 

em commands.xml

 

adcione

 

<command cmd="/save" access="1" />

 

Créditos 90% Lithium

10% TLM

 

Eu gostaria de homenagiar o meu Professor de c++ - ^^Ablankzin^^ sem ele eu nunca teria aprendindo c++ =]

 

 

Esse code funciona na SVN de 17/12 em diante.

 

Comentários Por Favor=]

Link para o comentário
Compartilhar em outros sites

  • 7 months later...
×
×
  • Criar Novo...