📄 crackmgr.cpp
字号:
// CrackMgr.cpp: implementation of the CCrackMgr class.
//
//////////////////////////////////////////////////////////////////////
#include "../stdafx.h"
#include "CrackMgr.h"
#include "LogManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
const int DEFAULT_CHECK_ACCEL_TIME = 35000;//馆靛矫 CHECK_ACCEL_RECOMMAND_TIME焊促 5檬 捞惑 目具 茄促 窜困绰 ms
const int CHECK_ACCEL_RECOMMAND_TIME = 30000;//30 檬
const int CHECK_ACCEL_PING_TIME = 1800;
CCrackMgr CrackMgr;
CCrackMgr::CCrackMgr()
{
}
CCrackMgr::~CCrackMgr()
{
}
void CCrackMgr::AutoCheckAccelator(CHARLIST *ch)
{
const int cn = ch->GetServerID();
const DWORD dwRealTime = timeGetTime();
const int iMyState = connections[cn].state;
if(iMyState==CONNECT_JOIN || iMyState==CONNECT_JOIN_START)//霸烙 吝老 版快父 眉农 茄促
{
if( dwRealTime >= ch->dwCheckAccelTime)//矫埃 眉农
{
if( ch->dwSendedAccelTime )//酒鳖 焊陈绰单 货肺 焊尘锭 鳖瘤 览翠捞 绝栏搁
{
return;
}
t_packet packet;
ch->dwCheckAccelTime = dwRealTime + DEFAULT_CHECK_ACCEL_TIME;
ch->dwSendedAccelTime = dwRealTime;
packet.h.header.type = CMD_CHECK_ACCEL;
packet.h.header.size = sizeof(t_server_check_accel);
packet.u.server_check_accel.dwCheckAccelNowtime = ch->dwSendedAccelTime;//焊郴绰 矫埃.
::QueuePacket(connections, cn, &packet, 1);
}
}
else//霸烙吝捞 酒聪搁
{
ch->dwSendedAccelTime = 0;//焊辰扒 公瓤拳 矫挪促
}
return;
}
void CCrackMgr::ComformAccelator( const int cn, const t_packet *packet )
{
CHARLIST *ch = ::CheckServerId(cn);
if(!ch) {return;}
char msg[300] = {0,};
const DWORD dwRealtime = timeGetTime();
const DWORD dwRecvSendedServerTime = packet->u.server_check_accel.dwCheckAccelNowtime;
const DWORD dwSendedAccelTime = ch->dwSendedAccelTime;
const int iMyState = connections[cn].state;
//宝满篮 康开篮 (瘤陛 90檬傈- 俏鸥烙)何磐 (瘤陛鳖瘤) 捞促
if(iMyState==CONNECT_JOIN || iMyState==CONNECT_JOIN_START)//霸烙 吝老 版快父 眉农 茄促
{
if (( dwRealtime-dwRecvSendedServerTime < CHECK_ACCEL_RECOMMAND_TIME)//-CHECK_ACCEL_PING_TIME )//CHECK_ACCEL_RECOMMAND_TIME 捞傈 焊促 累促//CHECK_ACCEL_PING_TIME 俏乐促绊 模促
||( dwSendedAccelTime != dwRecvSendedServerTime))//酒鳖 焊辰 蔼苞 促弗 蔼捞 甸绢柯促
{
sprintf( msg,"Accel Time Error 90 Never.. \nSended = %d , Recved = %d , Value = %d",dwSendedAccelTime, dwRecvSendedServerTime, dwRealtime-dwRecvSendedServerTime);
if(g_accelator_user_closeconnection )
{
SendHackingUser( cn, HACKING_ACCELATOR_, msg );
closeconnection( connections, cn, -208 );
}
}
ch->dwSendedAccelTime = 0;//罐疽栏聪鳖 焊陈带 矫埃阑 努府绢 秦霖促// 困摹 函版 炼缴. 瘤快瘤档 富绊. 林籍 贸府 窍瘤 富巴
}
else
{
ch->dwSendedAccelTime = 0;
}
}
void CCrackMgr::SendHackingUser( const int cn, const int type, const char *cause )
{
t_packet p;
CHARLIST * ch = ::CheckServerId(cn);
if(!ch){return;}
if(ch->SprType == SPRITETYPE_NPC ) {return;}
p.h.header.type = CMD_HACKING_USER;
p.h.header.size = sizeof( t_hacking_user );
t_hacking_user *tp = &p.u.hacking_user;
tp->type = type;// short type;
::memcpy( tp->id, connections[cn].id ,20);// char id[ 20];
::memcpy( tp->name, connections[cn].name ,20);// char name[20];
::memcpy( tp->ip, connections[cn].ip_address,20 );// char ip[20];
::memcpy( tp->cause, cause ,100);// char cause[100];
QueuePacket( connections, DB_DEMON, &p, 1 );
}
void CCrackMgr::RecvAccelType(int cn, t_packet *p)
{ //< CSD-030808
CHARLIST* pTarget = ::CheckServerId(cn);
if (pTarget == NULL)
{
return;
}
t_packet t;
t.h.header.type = CMD_SEND_ACCEL_TYPE;
t.h.header.size = 0;
QueuePacket(connections,cn,&t,1);
g_pLogManager->SaveAccelType(pTarget, p->u.Accel_Type.strMsg);
} //> CSD-030808
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -