2024-12-21 10:04:04 +08:00
# include "StdAfx.h"
# include "DNSecondarySkillTask.h"
# include "DNConnection.h"
# include "DNSQLConnectionManager.h"
# include "DNSQLMembership.h"
# include "DNSQLWorld.h"
# include "Log.h"
CDNSecondarySkillTask : : CDNSecondarySkillTask ( CDNConnection * pConnection )
: CDNMessageTask ( pConnection )
{
}
CDNSecondarySkillTask : : ~ CDNSecondarySkillTask ( void )
{
}
# if defined( PRE_ADD_SECONDARY_SKILL )
void CDNSecondarySkillTask : : OnRecvMessage ( int nThreadID , int nMainCmd , int nSubCmd , char * pData )
{
CDNSQLWorld * pWorldDB = NULL ;
switch ( nSubCmd )
{
case QUERY_ADD_SECONDARYSKILL :
{
TQAddSecondarySkill * pPacket = reinterpret_cast < TQAddSecondarySkill * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QueryAddSecondarySkill ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
case QUERY_DELETE_SECONDARYSKILL :
{
TQDelSecondarySkill * pPacket = reinterpret_cast < TQDelSecondarySkill * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QueryDelSecondarySkill ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
case QUERY_GETLIST_SECONDARYSKILL :
{
TQGetListSecondarySkill * pPacket = reinterpret_cast < TQGetListSecondarySkill * > ( pData ) ;
TAGetListSecondarySkill Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . nRetCode = ERROR_DB ;
Packet . nAccountDBID = pPacket - > nAccountDBID ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
Packet . nRetCode = pWorldDB - > QueryGetListSecondarySkill ( pPacket , & Packet ) ;
else
g_Log . Log ( LogType : : _ERROR , pPacket - > cWorldSetID , pPacket - > nAccountDBID , pPacket - > biCharacterDBID , 0 , L " [ADBID:%d] [QueryGetListSecondarySkill:%d] WorldDB not found \r \n " , pPacket - > nAccountDBID , pPacket - > cWorldSetID ) ;
int iSize = sizeof ( Packet ) - sizeof ( Packet . SkillList ) + ( Packet . cCount * sizeof ( Packet . SkillList [ 0 ] ) ) ;
m_pConnection - > AddSendData ( nMainCmd , nSubCmd , reinterpret_cast < char * > ( & Packet ) , iSize ) ;
if ( Packet . nRetCode = = ERROR_NONE )
{
TQGetListManufactureSkillRecipe RecipeQ ;
RecipeQ . cThreadID = pPacket - > cThreadID ;
RecipeQ . cWorldSetID = pPacket - > cWorldSetID ;
RecipeQ . nAccountDBID = pPacket - > nAccountDBID ;
RecipeQ . biCharacterDBID = pPacket - > biCharacterDBID ;
TAGetListManufactureSkillRecipe RecipeA ;
memset ( & RecipeA , 0 , sizeof ( RecipeA ) ) ;
RecipeA . nRetCode = ERROR_DB ;
RecipeA . nAccountDBID = RecipeQ . nAccountDBID ;
if ( pWorldDB )
RecipeA . nRetCode = pWorldDB - > QueryGetListManufactureSkillRecipe ( & RecipeQ , & RecipeA ) ;
int iSize = sizeof ( RecipeA ) - sizeof ( RecipeA . RecipeList ) + ( RecipeA . cCount * sizeof ( RecipeA . RecipeList [ 0 ] ) ) ;
m_pConnection - > AddSendData ( nMainCmd , QUERY_GETLIST_SECONDARYSKILL_RECIPE , reinterpret_cast < char * > ( & RecipeA ) , iSize ) ;
}
break ;
}
case QUERY_MOD_SECONDARYSKILL_EXP :
{
TQModSecondarySkillExp * pPacket = reinterpret_cast < TQModSecondarySkillExp * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QueryModSecondarySkillExp ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
case QUERY_ADD_SECONDARYSKILL_RECIPE :
{
TQSetManufactureSkillRecipe * pPacket = reinterpret_cast < TQSetManufactureSkillRecipe * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QuerySetManufactureSkillRecipe ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
case QUERY_DELETE_SECONDARYSKILL_RECIPE :
{
TQDelManufactureSkillRecipe * pPacket = reinterpret_cast < TQDelManufactureSkillRecipe * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QueryDelManufactureSkillRecipe ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
case QUERY_EXTRACT_SECONDARYSKILL_RECIPE :
{
TQExtractManufactureSkillRecipe * pPacket = reinterpret_cast < TQExtractManufactureSkillRecipe * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QueryExtractManufactureSkillRecipe ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
case QUERY_MOD_SECONDARYSKILL_RECIPE_EXP :
{
TQModManufactureSkillRecipe * pPacket = reinterpret_cast < TQModManufactureSkillRecipe * > ( pData ) ;
int iRet = ERROR_DB ;
pWorldDB = g_SQLConnectionManager . FindWorldDB ( nThreadID , pPacket - > cWorldSetID ) ;
if ( pWorldDB )
iRet = pWorldDB - > QueryModManufactureSkillRecipe ( pPacket ) ;
if ( iRet ! = ERROR_NONE )
m_pConnection - > QueryResultError ( pPacket - > nAccountDBID , iRet , nMainCmd , nSubCmd ) ;
break ;
}
}
}
# endif // #if defined( PRE_ADD_SECONDARY_SKILL )