Tibia Rules, fez um code de server save que de acordo com eles , e testes feitos por mim, o code é muito estável.
Irei mostrar passo a passo como colocá-lo!
Procure em game.cpp por:
Player* player = dynamic_cast<Player*>(creature);if(player){Tile *tile = getTile(player->pos.x, player->pos.y, player->pos.z);if(tile == NULL){std::cout << "CheckPlayer NULL tile: " << player->getName() << std::endl;return;}
Abaixo coloque :
//Player Auto save by Tibia Rules if(player->saveTime < g_config.getGlobalNumber("saveTime", 5)*60*1000)//check the save time and subtract thinkTicks player->saveTime += thinkTicks; if(player->saveTime >= g_config.getGlobalNumber("saveTime", 5)*60*1000){//Check if its time to save! player->sendTextMessage(MSG_BLUE_TEXT,"You character was just auto-saved!" ); IOPlayer::instance()->savePlayer(player); player->saveTime = 0;//reset the save time } //End Player Auto save
player.cpp
Procure por:
food = 0;
Abaixo coloque:
saveTime = 0;
Coloque em:
player.h
in public:
int saveTime;
Adicione no config.lua:
Code:
--Auto Save time for each player.... 1 = 1minsaveTime = 1
OBS: Lembrando que todos os créditos vão para tibia rules!
Problema descoberto:
Como o server aproveita uma função de check do ot, cada jogador fica com 1 tempo de save. Com isso (não vou explicar como para nao prejudicar o andamento de alguns servidores) o player se tiver um pouco de sorte e pensar um pouco consegue duplicar items.
Usem o script por conta própria, irei postar um save server melhor e seguro.