2024-12-21 10:04:04 +08:00
# include "StdAfx.h"
# include "DNEtcTask.h"
# include "DNConnection.h"
# include "DNSQLConnectionManager.h"
# include "DNSQLMembership.h"
# include "DNSQLWorld.h"
# include "TimeSet.h"
# include "Log.h"
# if defined( PRE_FIX_67546 )
# include "DNIocpManager.h"
# endif
extern TDBConfig g_Config ;
CDNEtcTask : : CDNEtcTask ( CDNConnection * pConnection )
: CDNMessageTask ( pConnection )
{
}
CDNEtcTask : : ~ CDNEtcTask ( void )
{
}
void CDNEtcTask : : OnRecvMessage ( int nThreadID , int nMainCmd , int nSubCmd , char * pData )
{
CDNSQLMembership * pMembershipDB = NULL ;
CDNSQLWorld * pWorldDB = NULL ;
int nRet = ERROR_DB ;
switch ( nSubCmd )
{
case QUERY_UPDATEQUERYQUEUE :
{
// <20> <> <EFBFBD> <EFBFBD> !!! - <20> <> <EFBFBD> <EFBFBD> DB <20> ۾<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <EFBFBD> <DEBC> 带 <20> <> <EFBFBD> <EFBFBD> ȣ <EFBFBD> <C8A3> <20> Ͽ<EFBFBD> <20> ̷<EFBFBD> <CCB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ȣ <EFBFBD> <C8A3> <20> <> <20> <> <20> <> Ŷ (MAINCMD_ETC / QUERY_UPDATEQUERYQUEUE) <20> <> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ԵǾ <20> ʵ<EFBFBD> !!!
TDBQueryQueue * pEtc = reinterpret_cast < TDBQueryQueue * > ( pData ) ;
DN_ASSERT ( NULL ! = pEtc , " Invalid! " ) ;
DN_ASSERT ( pEtc - > CheckIntegrity ( ) , " Invalid! " ) ;
if ( DBQUERYAUTOCHKSUM ! = pEtc - > m_nCheckSum ) { // 20091022 <20> <> Ŷ ó<> <C3B3> <20> <> <20> <> <EFBFBD> Ἲ üũ<C3BC> <C5A9> <20> <> <EFBFBD> <EFBFBD> <20> ӽ<EFBFBD> <20> ߰<EFBFBD> ??? (b4nfter)
DN_BREAK ;
}
for ( int nCurPtr = 0 ; pEtc - > m_nSize > nCurPtr ; ) {
TDBQueryData * pDBQueryData = pEtc - > At ( nCurPtr ) ;
DN_ASSERT ( NULL ! = pDBQueryData , " Check! " ) ;
if ( MAINCMD_ETC = = pDBQueryData - > cMainCmd & & QUERY_UPDATEQUERYQUEUE = = pDBQueryData - > cSubCmd ) {
DN_ASSERT ( 0 , " Invalid! " ) ; // <20> ش<EFBFBD> <20> <> <EFBFBD> θ<EFBFBD> <CEB8> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> DB <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ۾<EFBFBD> <20> <> <EFBFBD> Ͽ<EFBFBD> <20> ̹Ƿ<CCB9> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϳ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ?
}
m_pConnection - > DBMessageProcess ( reinterpret_cast < char * > ( pDBQueryData ) , nThreadID ) ; // P.S.> <20> <> <20> κ<EFBFBD> <CEBA> <EFBFBD> <20> Լ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ȣ <EFBFBD> <C8A3> ó<> <C3B3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> TDBQueryData <20> <> DNTPacket <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ǿ<EFBFBD> <C7BE> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ʿ<EFBFBD> <20> <> <20> ̿Ͱ<CCBF> <CDB0> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ǵ<EFBFBD> <C7B5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ġ<EFBFBD> <C4A1> <20> ʵ<EFBFBD> <CAB5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> !!!)
nCurPtr + = ( sizeof ( DNTPacketHeader ) + pDBQueryData - > iLen ) ;
}
}
break ;
case QUERY_EVENTLIST :
{
TQEventList * pEtc = ( TQEventList * ) pData ;
TAEventList Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . cWorldSetID = pEtc - > cWorldSetID ;
Etc . nRetCode = ERROR_DB ;
# if defined(PRE_ADD_WORLD_EVENT)
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
{
Etc . nRetCode = pMembershipDB - > QueryEventList ( pEtc , & Etc ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_EVENTLIST:%d] pMembershipDB Error \r \n " , pEtc - > cWorldSetID ) ;
# else //#if defined(PRE_ADD_WORLD_EVENT)
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
{
Etc . nRetCode = pWorldDB - > QueryEventList ( pEtc , & Etc ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_EVENTLIST:%d] pWorldDB Error \r \n " , pEtc - > cWorldSetID ) ;
# endif // #if defined(PRE_ADD_WORLD_EVENT)
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , ( char * ) & Etc , sizeof ( Etc ) - sizeof ( Etc . EventList ) + ( Etc . cCount * sizeof ( TEventInfo ) ) ) ;
}
break ;
# ifdef PRE_MOD_RESTRICT_IDENTITY_IP
case QUERY_GET_SIMPLECONFIG :
{
TQSimpleConfig * pPacket = ( TQSimpleConfig * ) pData ;
TASimpleConfig packet ;
memset ( & packet , 0 , sizeof ( TASimpleConfig ) ) ;
packet . nRetCode = ERROR_DB ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
{
pMembershipDB - > QueryGetSimpleConfigValue ( & packet ) ;
}
else
g_Log . Log ( LogType : : _RESTRICTIP , pPacket - > cWorldSetID , pPacket - > nAccountDBID , 0 , 0 , L " [QUERY_GET_SIMPLECONFIG] pMembershipDB Error \r \n " ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . Configs ) + ( packet . cCount * sizeof ( SimpleConfig : : ConfigData ) ) ) ;
}
break ;
# endif //#ifdef PRE_MOD_RESTRICT_IDENTITY_IP
# ifdef PRE_ADD_SEETMAINTENANCEFLAG
case QUERY_MAINTENANCEFLAG :
{
TQMaintenanceInfo * pPacket = reinterpret_cast < TQMaintenanceInfo * > ( pData ) ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
{
pMembershipDB - > QuerySetMaintenanceFlag ( pPacket - > nFlag ) ;
}
}
break ;
# endif //#ifdef PRE_ADD_SEETMAINTENANCEFLAG
case QUERY_GET_DBSID :
{
TAGetDBSID packet ;
memset ( & packet , 0 , sizeof ( TAGetDBSID ) ) ;
packet . nServerID = g_Config . nManagedID ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , ( char * ) & packet , sizeof ( packet ) ) ;
}
break ;
case QUERY_GETGAMEOPTION :
{
TQGetGameOption * pOption = ( TQGetGameOption * ) pData ;
TAGetGameOption packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . nAccountDBID = pOption - > nAccountDBID ;
packet . biCharacterDBID = pOption - > biCharacterDBID ;
packet . nRetCode = ERROR_DB ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB ) {
packet . nRetCode = pMembershipDB - > QueryGetGameOption ( pOption - > nAccountDBID , packet . Option ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pOption - > cWorldSetID , pOption - > nAccountDBID , pOption - > biCharacterDBID , 0 , L " [QUERY_GETGAMEOPTION:%d] pMembershipDB Error \r \n " , pOption - > cWorldSetID ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , ( char * ) & packet , sizeof ( packet ) ) ;
}
break ;
case QUERY_SETGAMEOPTION :
{
TQSetGameOption * pOption = ( TQSetGameOption * ) pData ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB ) {
pMembershipDB - > QueryModGameOption ( pOption - > nAccountDBID , pOption - > Option ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pOption - > cWorldSetID , pOption - > nAccountDBID , pOption - > biCharacterDBID , 0 , L " [QUERY_GETGAMEOPTION:%d] pMembershipDB Error \r \n " , pOption - > cWorldSetID ) ;
}
break ;
case QUERY_RESTRAINT :
{
TQRestraint * pRestraint = ( TQRestraint * ) pData ;
TARestraint packet ;
memset ( & packet , 0 , sizeof ( TARestraint ) ) ;
packet . nAccountDBID = pRestraint - > nAccountDBID ;
packet . nRetCode = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pRestraint - > cWorldSetID ) ;
if ( pWorldDB ) {
}
else
g_Log . Log ( LogType : : _ERROR , pRestraint - > cWorldSetID , pRestraint - > nAccountDBID , 0 , 0 , L " [QUERY_RESTRAINT:%d] pWorldDB Error \r \n " , pRestraint - > cWorldSetID ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . restraint ) + ( packet . cCount * sizeof ( TRestraint ) ) ) ;
}
break ;
case QUERY_SETRESTRAINT :
{
TQSetRestraint * pAddRestraint = ( TQSetRestraint * ) pData ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
{
TIMESTAMP_STRUCT _tStartTime , _tEndTime ;
// <20> <> <EFBFBD> ۽ð<DBBD>
CTimeSet TimeSet ;
memcpy ( & _tStartTime , & TimeSet . GetDbTimeStamp ( ) , sizeof ( TIMESTAMP_STRUCT ) ) ;
// <20> <> <EFBFBD> ð<EFBFBD>
TimeSet . AddSecond ( ONEDAYSEC * 30 ) ;
memcpy ( & _tEndTime , & TimeSet . GetDbTimeStamp ( ) , sizeof ( TIMESTAMP_STRUCT ) ) ;
# ifdef PRE_ADD_ABUSE_ACCOUNT_RESTRAINT
int nRetCode = pMembershipDB - > QueryAddRestraint ( ( DBDNWorldDef : : RestraintTargetCode : : eCode ) pAddRestraint - > cTargetCode , pAddRestraint - > nAccountDBID , \
pAddRestraint - > biCharacterDBID , pAddRestraint - > nDolisReasonCode , ( DBDNWorldDef : : RestraintTypeCode : : eCode ) pAddRestraint - > cRestraintCode , pAddRestraint - > wszRestraintreasonForDolis , pAddRestraint - > wszRestraintreason , _tStartTime , _tEndTime ) ;
# else //#ifdef PRE_ADD_ABUSE_ACCOUNT_RESTRAINT
//ReasonID 110<31> <30> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <20> <> ȣ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ȳ<> ÿ<EFBFBD> <C3BF> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ٶ<EFBFBD> .
int nRetCode = pMembershipDB - > QueryAddRestraint ( ( DBDNWorldDef : : RestraintTargetCode : : eCode ) pAddRestraint - > cTargetCode , pAddRestraint - > nAccountDBID , \
pAddRestraint - > biCharacterDBID , 110 , ( DBDNWorldDef : : RestraintTypeCode : : eCode ) pAddRestraint - > cRestraintCode , pAddRestraint - > wszRestraintreasonForDolis , pAddRestraint - > wszRestraintreason , _tStartTime , _tEndTime ) ;
# endif //#ifdef PRE_ADD_ABUSE_ACCOUNT_RESTRAINT
if ( nRetCode ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pAddRestraint - > cWorldSetID , pAddRestraint - > nAccountDBID , 0 , 0 , L " [QUERY_SETRESTRAINT:%d] Error[Code:%d] \r \n " , pAddRestraint - > cWorldSetID , nRetCode ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pAddRestraint - > cWorldSetID , pAddRestraint - > nAccountDBID , 0 , 0 , L " [QUERY_SETRESTRAINT:%d] pMembershipDB Error \r \n " , pAddRestraint - > cWorldSetID ) ;
}
break ;
case QUERY_GET_KEYSETTING_OPTION :
{
TQGetKeySettingOption * pEtc = reinterpret_cast < TQGetKeySettingOption * > ( pData ) ;
TAGetKeySettingOption Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
Etc . nRetCode = pMembershipDB - > QueryGetKeySettingOption ( pEtc - > nAccountDBID , & Etc . sKeySetting ) ;
if ( Etc . nRetCode ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_GET_KEYSETTING_OPTION:%d] (Ret:%d) \r \n " , pEtc - > cWorldSetID , Etc . nRetCode ) ;
break ;
}
case QUERY_MOD_KEYSETTING_OPTION :
{
TQModKeySettingOption * pEtc = reinterpret_cast < TQModKeySettingOption * > ( pData ) ;
TAModKeySettingOption Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
Etc . nRetCode = pMembershipDB - > QueryModKeySettingOption ( pEtc , & Etc ) ;
if ( Etc . nRetCode ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_MOD_KEYSETTING_OPTION:%d] (Ret:%d) \r \n " , pEtc - > cWorldSetID , Etc . nRetCode ) ;
break ;
}
case QUERY_GET_PADSETTING_OPTION :
{
TQGetPadSettingOption * pEtc = reinterpret_cast < TQGetPadSettingOption * > ( pData ) ;
TAGetPadSettingOption Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
Etc . nRetCode = pMembershipDB - > QueryGetPadSettingOption ( pEtc - > nAccountDBID , & Etc . sPadSetting ) ;
if ( Etc . nRetCode ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_GET_PADSETTING_OPTION:%d] (Ret:%d) \r \n " , pEtc - > cWorldSetID , Etc . nRetCode ) ;
break ;
}
case QUERY_MOD_PADSETTING_OPTION :
{
TQModPadSettingOption * pEtc = reinterpret_cast < TQModPadSettingOption * > ( pData ) ;
TAModPadSettingOption Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
Etc . nRetCode = pMembershipDB - > QueryModPadSettingOption ( pEtc , & Etc ) ;
if ( Etc . nRetCode ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_MOD_PADSETTING_OPTION:%d] (Ret:%d) \r \n " , pEtc - > cWorldSetID , Etc . nRetCode ) ;
break ;
}
case QUERY_SET_PROFILE :
{
TQSetProfile * pEtc = ( TQSetProfile * ) pData ;
TASetProfile Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ״<EFBFBD> <D7B4> <EFBFBD> <20> <> ȯ - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ij<> <C4B3> <EFBFBD> <EFBFBD> <20> <DEB8> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ѵ <EFBFBD> .
Etc . sProfile . cGender = pEtc - > sProfile . cGender ;
_wcscpy ( Etc . sProfile . wszGreeting , _countof ( Etc . sProfile . wszGreeting ) , pEtc - > sProfile . wszGreeting , ( int ) wcslen ( pEtc - > sProfile . wszGreeting ) ) ;
Etc . sProfile . bOpenPublic = pEtc - > sProfile . bOpenPublic ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
Etc . nRetCode = pWorldDB - > QuerySetProfile ( pEtc - > biCharacterDBID , pEtc - > sProfile ) ;
if ( Etc . nRetCode ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , 0 , L " [CDBID:%lld] [QUERY_SET_PROFILE:%d] (Ret:%d) \r \n " , pEtc - > biCharacterDBID , pEtc - > cWorldSetID , Etc . nRetCode ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
}
break ;
case QUERY_GET_PROFILE :
{
TQGetProfile * pEtc = ( TQGetProfile * ) pData ;
TAGetProfile Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB ) {
nRet = pWorldDB - > QueryGetProfile ( pEtc - > biCharacterDBID , Etc . sProfile ) ;
Etc . nRetCode = nRet ;
if ( nRet = = 103212 ) nRet = ERROR_NONE ; // 103212<31> <32> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DB<44> <42> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ƴϴ<C6B4> . - <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> α <CEB1> <20> <> <EFBFBD> <EFBFBD> <20> ʱ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ~
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , 0 , L " [CDBID:%lld] [QUERY_GET_PROFILE:%d] (Ret:%d) \r \n " , pEtc - > biCharacterDBID , pEtc - > cWorldSetID , nRet ) ;
}
}
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
}
break ;
case QUERY_ADD_ABUSELOG :
{
TQAddAbuseLog * pEtc = ( TQAddAbuseLog * ) pData ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB ) {
nRet = pWorldDB - > QueryAddAbuseLog ( pEtc ) ;
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , 0 , L " [CDBID:%lld] [QUERY_ADD_ABUSELOG:%d] (Ret:%d) \r \n " , pEtc - > biCharacterDBID , pEtc - > cWorldSetID , nRet ) ;
}
}
}
break ;
case QUERY_ADD_ABUSEMONITOR :
{
TQAddAbuseMonitor * pEtc = reinterpret_cast < TQAddAbuseMonitor * > ( pData ) ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
pWorldDB - > QueryAddAbuseMonitor ( pEtc ) ;
break ;
}
case QUERY_DEL_ABUSEMONITOR :
{
TQDelAbuseMonitor * pEtc = reinterpret_cast < TQDelAbuseMonitor * > ( pData ) ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
pWorldDB - > QueryDelAbuseMonitor ( pEtc ) ;
break ;
}
case QUERY_GET_ABUSEMONITOR :
{
TQGetAbuseMonitor * pEtc = reinterpret_cast < TQGetAbuseMonitor * > ( pData ) ;
TAGetAbuseMonitor Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
Etc . nRetCode = pWorldDB - > QueryGetAbuseMonitor ( pEtc , & Etc ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
break ;
}
case QUERY_GET_WHOLE_ABUSEMONITOR :
{
TQGetWholeAbuseMonitor * pPacket = ( TQGetWholeAbuseMonitor * ) pData ;
TAGetWholeAbuseMonitor packet ;
memset ( & packet , 0 , sizeof ( TAGetWholeAbuseMonitor ) ) ;
packet . nAccountDBID = pPacket - > nAccountDBID ;
packet . nRetCode = ERROR_DB ;
# if defined(PRE_ADD_MULTILANGUAGE)
packet . cSelectedLang = pPacket - > cSelectedLang ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
packet . nRetCode = pWorldDB - > QueryGetWholeAbuseMonitor ( pPacket , & packet ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & packet ) , sizeof ( TAGetWholeAbuseMonitor ) - sizeof ( packet . Abuse ) + ( sizeof ( TAbuseMonitor ) * packet . cCount ) ) ;
break ;
}
case QUERY_VALIDATE_SECONDAUTH :
{
TQValidateSecondAuth * pEtc = reinterpret_cast < TQValidateSecondAuth * > ( pData ) ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
TAValidateSecondAuth Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
Etc . nAuthCheckType = pEtc - > nAuthCheckType ;
Etc . nRetCode = ERROR_DB ;
if ( pMembershipDB )
Etc . nRetCode = pMembershipDB - > QueryValidataSecondAuthPassphrase ( pEtc - > nAccountDBID , pEtc - > wszPW , Etc . cFailCount ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
break ;
}
case QUERY_LOGOUT :
{
TQLogout * pUpdate = ( TQLogout * ) pData ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB ) {
# if defined (_KR)
nRet = pMembershipDB - > QueryLogout ( pUpdate - > nAccountDBID , pUpdate - > nSessionID , pUpdate - > szMachineID ) ;
# else
nRet = pMembershipDB - > QueryLogout ( pUpdate - > nAccountDBID , pUpdate - > nSessionID ) ;
# endif
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , pUpdate - > cWorldSetID , pUpdate - > nAccountDBID , 0 , pUpdate - > nSessionID , L " [ADBID:%u] [QUERY_LOGOUT:%d] (Ret:%d) \r \n " , pUpdate - > nAccountDBID , pUpdate - > cWorldSetID , nRet ) ;
m_pConnection - > QueryResultError ( pUpdate - > nAccountDBID , nRet , nMainCmd , nSubCmd ) ; // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
}
}
else
g_Log . Log ( LogType : : _ERROR , pUpdate - > cWorldSetID , pUpdate - > nAccountDBID , 0 , pUpdate - > nSessionID , L " [ADBID:%u] [QUERY_LOGOUT:%d] pMembershipDB not found \r \n " , pUpdate - > nAccountDBID , pUpdate - > cWorldSetID ) ;
}
break ;
case QUERY_LOGINCHARACTER :
{
TQLoginCharacter * pEtc = reinterpret_cast < TQLoginCharacter * > ( pData ) ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
{
pWorldDB - > QueryLoginCharacter ( pEtc ) ;
}
else
{
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , pEtc - > uiSessionID , L " [QUERY_LOGINCHARACTER:%d] pWorldDB Error \r \n " , pEtc - > cWorldSetID ) ;
}
break ;
}
case QUERY_LOGOUTCHARACTER :
{
TQLogoutCharacter * pEtc = reinterpret_cast < TQLogoutCharacter * > ( pData ) ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
{
pWorldDB - > QueryLogoutCharacter ( pEtc ) ;
}
else
{
if ( pEtc - > cWorldSetID > 0 )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , pEtc - > uiSessionID , L " [QUERY_LOGOUTCHARACTER:%d] pWorldDB Error \r \n " , pEtc - > cWorldSetID ) ;
}
break ;
}
case QUERY_UPDATECONNECTINGTIME :
{
TQSaveConnectDurationTime * pEtc = ( TQSaveConnectDurationTime * ) pData ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
pWorldDB - > QuerySaveConnectDurationTime ( pEtc ) ;
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , 0 , L " [QUERY_UPDATECONNECTINGTIME:%d] pWorldDB Error \r \n " , pEtc - > cWorldSetID ) ;
}
break ;
case QUERY_MODLASTCONNECTDATE :
{
TQHeader * pEtc = ( TQHeader * ) pData ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB ) {
nRet = pMembershipDB - > QueryModLastConnectDate ( pEtc - > nAccountDBID ) ;
if ( nRet ! = ERROR_NONE ) {
g_Log . Log ( LogType : : _ERROR , 0 , pEtc - > nAccountDBID , 0 , 0 , L " [ADBID:%u] [QUERY_MODLASTCONNECTDATE:%d] (Ret:%d) \r \n " , pEtc - > nAccountDBID , pEtc - > cWorldSetID , nRet ) ;
m_pConnection - > QueryResultError ( pEtc - > nAccountDBID , nRet , nMainCmd , nSubCmd ) ; // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
}
}
else
g_Log . Log ( LogType : : _ERROR , 0 , pEtc - > nAccountDBID , 0 , 0 , L " [ADBID:%u] [QUERY_MODLASTCONNECTDATE:%d] pMembershipDB not found \r \n " , pEtc - > nAccountDBID , pEtc - > cWorldSetID ) ;
}
break ;
# if defined( PRE_FIX_67546 )
case QUERY_ADD_CHANNELCOUNT :
{
TQAddThreadCount * pEtc = ( TQAddThreadCount * ) pData ;
if ( g_pIocpManager )
{
TAAddThreadCount Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
g_pIocpManager - > AddConnectionCount ( pEtc - > cChoiceThreadID ) ;
int nCount [ THREADMAX ] ;
g_pIocpManager - > GetConnectionCount ( nCount ) ;
memcpy ( Etc . nConnectionCount , nCount , sizeof ( Etc . nConnectionCount ) ) ;
int nConnectionCount = g_pIocpManager - > GetVillageGameConnectionCount ( ) ;
for ( int i = 0 ; i < nConnectionCount ; i + + )
{
CDNConnection * pCon = g_pIocpManager - > GetVillageGameConnection ( i ) ;
if ( pCon & & pCon - > GetActive ( ) )
{
pCon - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
}
}
}
}
break ;
# endif
# if defined( PRE_ADD_GAMEQUIT_REWARD )
case QUERY_MOD_NEWBIE_REWARDFLAG :
{
TQModNewbieRewardFlag * pEtc = ( TQModNewbieRewardFlag * ) pData ;
TAHeader Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
{
Etc . nRetCode = pMembershipDB - > QueryModNewbieRewardFlag ( pEtc - > nAccountDBID , pEtc - > bRewardFlag ) ;
}
else
g_Log . Log ( LogType : : _GAMEQUITREWARD , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [ADBID:%u] [QUERY_MOD_NEWBIE_REWARDFLAG:%d] pMembershipDB not found \r \n " , pEtc - > nAccountDBID , pEtc - > bRewardFlag ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
}
break ;
# endif // #if defined( PRE_ADD_GAMEQUIT_REWARD )
# if defined(PRE_ADD_CP_RANK)
case QUERY_ADD_STAGE_CLEAR_BEST :
{
TQAddStageClearBest * pEtc = ( TQAddStageClearBest * ) pData ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
nRet = pWorldDB - > QueryAddStageClearBest ( pEtc ) ;
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , pEtc - > biCharacterDBID , 0 , L " [QUERY_ADD_STAGE_CLEAR_BEST:%d] pWorldDB Error \r \n " , pEtc - > cWorldSetID ) ;
if ( nRet ! = ERROR_NONE )
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [QUERY_ADD_STAGE_CLEAR_BEST] Error[Code:%d] \r \n " , nRet ) ;
}
break ;
case QUERY_GET_STAGE_CLEAR_BEST :
{
TQGetStageClearBest * pEtc = ( TQGetStageClearBest * ) pData ;
TAGetStageClearBest Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
{
Etc . nRetCode = pWorldDB - > QueryGetStageClearBest ( pEtc , & Etc ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [ADBID:%u] [QUERY_GET_STAGE_CLEAR_BEST] pWorldDB not found \r \n " , pEtc - > nAccountDBID ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
}
break ;
case QUERY_GET_STAGE_PERSONAL_BEST :
{
TQGetStageClearPersonalBest * pEtc = ( TQGetStageClearPersonalBest * ) pData ;
TAGetStageClearPersonalBest Etc ;
memset ( & Etc , 0 , sizeof ( Etc ) ) ;
Etc . nRetCode = ERROR_DB ;
Etc . nAccountDBID = pEtc - > nAccountDBID ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
{
Etc . nRetCode = pWorldDB - > QueryGetStageClearPersonalBest ( pEtc , & Etc ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [ADBID:%u] [QUERY_GET_STAGE_PERSONAL_BEST] pWorldDB not found \r \n " , pEtc - > nAccountDBID ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Etc ) , sizeof ( Etc ) ) ;
}
break ;
case QUERY_INIT_STAGE_BEST :
{
TQInitStageCP * pEtc = ( TQInitStageCP * ) pData ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pEtc - > cWorldSetID ) ;
if ( pWorldDB )
{
pWorldDB - > QueryInitStageClearBest ( pEtc - > cInitType ) ;
}
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , pEtc - > nAccountDBID , 0 , 0 , L " [ADBID:%u] [QUERY_INIT_STAGE_BEST] pWorldDB not found \r \n " , pEtc - > nAccountDBID ) ;
}
break ;
# endif //#if defined(PRE_ADD_CP_RANK)
case QUERY_MODCHARACTERSLOTCOUNT :
{
TQModCharacterSlotCount * pEtc = ( TQModCharacterSlotCount * ) pData ;
pMembershipDB = g_SQLConnectionManager . FindMembershipDB ( nThreadID ) ;
if ( pMembershipDB )
{
char cMaxCount = 0 ;
nRet = pMembershipDB - > QueryModCharacterSlotCount ( pEtc - > biCharacterDBID , 1 , cMaxCount ) ; // 34: ij<> <C4B3> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
}
else
g_Log . Log ( LogType : : _ERROR , pEtc - > cWorldSetID , 0 , 0 , 0 , L " [QUERY_MODCHARACTERSLOTCOUNT:%d] pMembershipDB Error \r \n " , pEtc - > cWorldSetID ) ;
}
break ;
}
}