CommonDefines.h veya service.h içerisine ekle
#define FLUSH_AT_SHUTDOWN
cmd_general.cpp içerisinde
struct SendDisconnectFunc
//Arat
struct SendDisconnectFunc
{
void operator () (LPDESC d)
{
if (d->GetCharacter())
{
#ifdef FLUSH_AT_SHUTDOWN
d->GetCharacter()->SaveReal();
DWORD pid = d->GetCharacter()->GetPlayerID();
db_clientdesc->DBPacketHeader(HEADER_GD_FLUSH_CACHE, 0, sizeof(DWORD));
db_clientdesc->Packet(&pid, sizeof(DWORD));
#endif
if (d->GetCharacter()->GetGMLevel() == GM_PLAYER)
d->GetCharacter()->ChatPacket(CHAT_TYPE_COMMAND, "quit Shutdown(SendDisconnectFunc)");
}
}
};
//Fonksiyonu bu şekilde değiştiriniz.
cmd_gm.cpp içerisinde
ACMD(do_flush)
{
//Aratınız
ACMD(do_flush)
{
char arg1[256];
one_argument(argument, arg1, sizeof(arg1));
#ifdef FLUSH_AT_SHUTDOWN
DWORD pid = 0;
if(0 == arg1[0])
pid = ch->GetPlayerID();
else
pid = (DWORD)strtoul(arg1, NULL, 10);
if (pid != 0)
{
ch->SaveReal();
db_clientdesc->DBPacketHeader(HEADER_GD_FLUSH_CACHE, 0, sizeof(DWORD));
db_clientdesc->Packet(&pid, sizeof(DWORD));
}
#else
if (0 == arg1[0])
{
ch->ChatPacket(CHAT_TYPE_INFO, "usage : /flush player_id");
return;
}
DWORD pid = (DWORD)strtoul(arg1, NULL, 10);
db_clientdesc->DBPacketHeader(HEADER_GD_FLUSH_CACHE, 0, sizeof(DWORD));
db_clientdesc->Packet(&pid, sizeof(DWORD));
#endif
}
//Fonksiyonu bu şekilde değiştiriniz.