Ir para conteúdo

[DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB


Taiger

Posts Recomendados

6 minutos atrás, dalvorsn disse:

Crash ou shutdown?

 

o executavel simplemente fecha sozinho do msm jeito qndo vc fecha entao acho q for shutdown

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, Josegvb disse:

 

o executavel simplemente fecha sozinho do msm jeito qndo vc fecha entao acho q for shutdown

Da um find in files na source por shutdown

* GAME_STATE_SHUTDOWN

* setGameState

 

Ai tu busca ve um a um nos resultados da busca, um deles deve ser o causador

Link para o comentário
Compartilhar em outros sites

Agora, dalvorsn disse:

Da um find in files na source por shutdown

* GAME_STATE_SHUTDOWN

* setGameState

 

Ai tu busca ve um a um nos resultados da busca, um deles deve ser o causador

Spoiler

linha 6051   

 

 if(g_config.getBool(ConfigManager::SHUTDOWN_AT_GLOBALSAVE))

    {

        //shutdown server

        Dispatcher::getInstance().addTask(createTask(boost::bind(&Game::setGameState, this, GAME_STATE_SHUTDOWN)));

        return;

    }

 

linha 165

{

    if(gameState == GAME_STATE_SHUTDOWN)

        return; //this cannot be stopped

    if(gameState != newState)

    {

        gameState = newState;

        switch(newState)

        {

            case GAME_STATE_INIT:

            {

                Spawns::getInstance()->startup();

                Raids::getInstance()->loadFromXml();

                Raids::getInstance()->startup();

                Quests::getInstance()->loadFromXml();

                loadGameState();

                g_globalEvents->startup();

                IOBan::getInstance()->clearTemporials();

                if(g_config.getBool(ConfigManager::REMOVE_PREMIUM_ON_INIT))

                    IOLoginData::getInstance()->updatePremiumDays();

                break;

            }

            case GAME_STATE_SHUTDOWN:

            {

                g_globalEvents->execute(GLOBAL_EVENT_SHUTDOWN);

                AutoList<Player>::iterator it = Player::autoList.begin();

                while(it != Player::autoList.end()) //kick all players that are still online

                {

                    it->second->kickPlayer(true, true);

                    it = Player::autoList.begin();

                }

                Houses::getInstance()->payHouses();

                saveGameState(false);

                Dispatcher::getInstance().addTask(createTask(boost::bind(&Game::shutdown, this)));

                Scheduler::getInstance().stop();

                Dispatcher::getInstance().stop();

                break;

            }

            case GAME_STATE_CLOSED:

            {

                AutoList<Player>::iterator it = Player::autoList.begin();

                while(it != Player::autoList.end()) //kick all players who not allowed to stay

                {

                    if(!it->second->hasFlag(PlayerFlag_CanAlwaysLogin))

                    {

                        it->second->kickPlayer(true, true);

                        it = Player::autoList.begin();

                    }

                    else

                        ++it;

                }

                saveGameState(false);

                break;

            }

            case GAME_STATE_NORMAL:

            case GAME_STATE_MAINTAIN:

            case GAME_STATE_STARTUP:

            case GAME_STATE_CLOSING:

            default:

                break;

        }

    }

}

 

linha 6024

 

void Game::prepareGlobalSave()

{

    if(!globalSaveMessage[0])

    {

        setGameState(GAME_STATE_CLOSING);

        globalSaveMessage[0] = true;

        broadcastMessage("Server is going down for a global save within 5 minutes. Please logout.", MSG_STATUS_WARNING);

        Scheduler::getInstance().addEvent(createSchedulerTask(120000, boost::bind(&Game::prepareGlobalSave, this)));

    }

    else if(!globalSaveMessage[1])

    {

        globalSaveMessage[1] = true;

        broadcastMessage("Server is going down for a global save within 3 minutes. Please logout.", MSG_STATUS_WARNING);

        Scheduler::getInstance().addEvent(createSchedulerTask(120000, boost::bind(&Game::prepareGlobalSave, this)));

    }

    else if(!globalSaveMessage[2])

    {

        globalSaveMessage[2] = true;

        broadcastMessage("Server is going down for a global save in one minute, please logout!", MSG_STATUS_WARNING);

        Scheduler::getInstance().addEvent(createSchedulerTask(60000, boost::bind(&Game::prepareGlobalSave, this)));

    }

    else

        globalSave();

}

linha 6050

 

void Game::globalSave()

{

    if(g_config.getBool(ConfigManager::SHUTDOWN_AT_GLOBALSAVE))

    {

        //shutdown server

        Dispatcher::getInstance().addTask(createTask(boost::bind(&Game::setGameState, this, GAME_STATE_SHUTDOWN)));

        return;

    }

 

 

só achei esses no game.cpp

Link para o comentário
Compartilhar em outros sites

globalSaveEnabled = false
globalSaveHour = 8
shutdownAtGlobalSave = true
cleanMapAtGlobalSave = false

 

de qualquer jeito, o servidor ja tem ficado online por 90h+ sem cair, mas as veces fecha da nada

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, dalvorsn disse:

shutdownAtGlobalSave = true  

 

>>

 

shutdownAtGlobalSave = false

 

bom irei colocar assim pra ver oq acontece ^^ mas como eu disse o servidor ja passou 90h+ online sem fechar entao talves nao seja isso

aproveito sua atençao pra lhe pedir uma ajudinha com esse script q eu fiz fusão de 2 scripts q postaram la e ta funfando porem fica bugado

 

tb aproveito pra ver se alguem tiver como olhar 1 erro q acontece mt com os pokes q tem cd em area tipo Thrash, Petal Dance e alguns outros q quando batem de longe dao HS no seu pokemon '-' 

Link para o comentário
Compartilhar em outros sites

35 minutos atrás, JairKevick disse:

Como que adiciona um novo HELD? Ex: Y-REGENERATION, ja adicionei em helditems.lua nas action e nada aconteceu ;-;

 

Apenas adicionar elas no actions e em outros arquivos derivados não vai funcionar 100% você tem que criar a função regeneration.

Link para o comentário
Compartilhar em outros sites

39 minutos atrás, JairKevick disse:

Como que adiciona um novo HELD? Ex: Y-REGENERATION, ja adicionei em helditems.lua nas action e nada aconteceu ;-;

Adicionou o itemid tbm no actions.xml?

Link para o comentário
Compartilhar em outros sites

me falaram que a base tem 1 coisa nas sources q faz o servidor fechar se o sistema operativo for window

achei isso alguem tem como confirmar pra min se é normal ou n?

 

Spoiler

bool ProtocolGame::parseFirstPacket(NetworkMessage& msg)
{
    if(
#if defined(WINDOWS) && !defined(__CONSOLE__)
        !GUI::getInstance()->m_connections ||
#endif
        g_game.getGameState() == GAME_STATE_SHUTDOWN)
    {
        getConnection()->close();
        return false;
    }

    OperatingSystem_t operatingSystem = (OperatingSystem_t)msg.GetU16();
    uint16_t version = msg.GetU16();
    if(!RSA_decrypt(msg))
    {
        getConnection()->close();
        return false;
    }

    uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};
    enableXTEAEncryption();
    setXTEAKey(key);
    

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...