2024-12-21 10:04:04 +08:00
# include "StdAfx.h"
# include "DNCommondef.h"
# include "DNVillageConnection.h"
# include "DNUser.h"
# include "DNGameConnection.h"
# include "DNLoginConnection.h"
# include "DNDivisionManager.h"
# include "DNExtManager.h"
# include "DNPvp.h"
# include "Log.h"
# include "./boost/format.hpp"
# include "./boost/static_assert.hpp"
# include "./EtStringManager/EtUIXML.h"
# if defined(_KR)
# include "DNNexonAuth.h"
# elif defined (_JP) && defined (WIN64)
# include "DNNHNNetCafe.h"
# elif defined(_TH)
# include "DNAsiaSoftPCCafe.h"
# elif defined(_ID)
# include "DNKreonPcCafe.h"
# endif // _KR
# include "DNFarm.h"
# include "DNGuildWarManager.h"
# if defined(PRE_ADD_CHNC2C)
# include "DNC2C.h"
# endif //#if defined(PRE_ADD_CHNC2C)
extern TMasterConfig g_Config ;
CDNVillageConnection : : CDNVillageConnection ( void ) : CConnection ( ) , m_cVillageID ( 0 )
{
# if defined(_FINAL_BUILD)
Init ( 1024 * 1024 , 1024 * 1024 ) ;
# else // #if defined(_FINAL_BUILD)
Init ( 1024 * 100 , 1024 * 100 ) ;
# endif // #if defined(_FINAL_BUILD)
m_VillageChannelInfo . cVillageID = 0 ;
memset ( m_VillageChannelInfo . szIP , 0 , sizeof ( char [ IPLENMAX ] ) ) ;
m_VillageChannelInfo . nPort = 0 ;
m_bZeroPopulation = false ;
m_nManagedID = 0 ;
m_bConnectComplete = false ;
}
CDNVillageConnection : : ~ CDNVillageConnection ( void )
{
}
int CDNVillageConnection : : MessageProcess ( int iMainCmd , int iSubCmd , char * pData , int iLen )
{
switch ( iMainCmd )
{
case VIMA_REGIST :
{
VIMARegist * pRegist = ( VIMARegist * ) pData ;
if ( m_cVillageID > 0 )
{
_DANGER_POINT ( ) ;
return ERROR_GENERIC_UNKNOWNERROR ;
}
m_nManagedID = pRegist - > nManagedID ;
if ( g_pDivisionManager - > GetVillageServerInfo ( pRegist - > cVillageID , & m_VillageChannelInfo , pRegist - > szIP , pRegist - > nPort ) = = true )
{
SendReqUserList ( ERROR_NONE ) ;
m_cVillageID = pRegist - > cVillageID ;
m_VillageChannelInfo . nManagedID = m_nManagedID ;
g_Log . Log ( LogType : : _FILEDBLOG , g_Config . nWorldSetID , 0 , 0 , 0 , L " [VIMA_REGIST] VillageID:%d \r \n " , m_cVillageID ) ;
return ERROR_NONE ;
}
//<2F> <> <EFBFBD> <EFBFBD> <20> ٷ<EFBFBD> Ȯ<> <C8AE> <EFBFBD> ؾ<EFBFBD> <20> ϴ°Ŷ<C2B0> <C5B6> <EFBFBD> printf<74> <66> <20> <> <EFBFBD> <EFBFBD> <20> Ʈ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .
//printf("VillageID Already Connected Check ServerStruct.xml villageID\n");
//SendReqUserList(ERROR_GENERIC_INVALIDREQUEST);
g_Log . Log ( LogType : : _ERROR , g_Config . nWorldSetID , 0 , 0 , 0 , L " Village Info Not Found [VillageID:%d] [IP:%S] [PORT:%d] \n " , pRegist - > cVillageID , pRegist - > szIP , pRegist - > nPort ) ;
DetachConnection ( L " VillageID Already Connected " ) ;
return ERROR_GENERIC_UNKNOWNERROR ;
}
break ;
case VIMA_ENDOFREGIST :
{
m_bConnectComplete = true ;
# if defined(PRE_FIX_LIVE_CONNECT)
g_pDivisionManager - > AddVillageServerConnection ( this ) ;
# endif //#if defined(PRE_FIX_LIVE_CONNECT)
SendVillageRegistComplete ( ) ;
g_pDivisionManager - > SendVillageInfo ( ) ; //ä<> ε<EFBFBD> <CEB5> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
g_pDivisionManager - > SendWorldUserStateList ( this ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
g_pDivisionManager - > SendFarmInfo ( ) ;
g_pDivisionManager - > CheckPvPLobbyChannel ( this ) ;
g_pDivisionManager - > SendGuildWarInfoToVillage ( this ) ;
g_Log . Log ( LogType : : _FILEDBLOG , g_Config . nWorldSetID , 0 , 0 , 0 , L " [VIMA_ENDOFREGIST] VillageID:%d \r \n " , m_cVillageID ) ;
return ERROR_NONE ;
}
break ;
case VIMA_CHECKUSER :
{
VIMACheckUser * pCheckUser = ( VIMACheckUser * ) pData ;
if ( g_pDivisionManager - > VillageCheckUser ( this , pCheckUser - > nSessionID ) = = false )
return ERROR_GENERIC_UNKNOWNERROR ;
return ERROR_NONE ;
}
break ;
case VIMA_ADDUSERLIST :
{
VIMAAddUserList * pAdd = ( VIMAAddUserList * ) pData ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> User<65> ߰<EFBFBD> <DFB0> <EFBFBD> <EFBFBD> ְ<EFBFBD>
# if defined(PRE_MOD_SELECT_CHAR)
g_pDivisionManager - > AddUser ( pAdd , m_cVillageID , true ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pAdd - > nAccountDBID ) ;
# else // #if defined(PRE_MOD_SELECT_CHAR)
BYTE szMID [ MACHINEIDMAX ] = { 0 , } ;
DWORD dwGRC = 0 ;
# if defined (_KR)
memcpy ( szMID , pAdd - > szMID , sizeof ( szMID ) ) ;
dwGRC = pAdd - > dwGRC ;
# endif
g_pDivisionManager - > AddUser ( m_cVillageID , pAdd - > wChannelID , 0 , 0 , pAdd - > nAccountDBID , pAdd - > nSessionID , pAdd - > biCharacterDBID , pAdd - > wszCharacterName , pAdd - > wszAccountName ,
# if defined(PRE_ADD_DWC)
pAdd - > cAccountLevel ,
# endif
# ifdef PRE_ADD_MULTILANGUAGE
pAdd - > bAdult , pAdd - > szIP , pAdd - > szVirtualIp , 0 , szMID , dwGRC , pAdd - > cPCBangGrade , pAdd - > cSelectedLanguage , true ) ;
# else //#ifdef PRE_ADD_MULTILANGUAGE
pAdd - > bAdult , pAdd - > szIP , pAdd - > szVirtualIp , 0 , szMID , dwGRC , pAdd - > cPCBangGrade , 0 , true ) ;
# endif //#ifdef PRE_ADD_MULTILANGUAGE
// PvP<76> <50> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pAdd - > nAccountDBID ) ;
if ( pUser )
pUser - > SetPvPVillageInfo ( pAdd - > cPvPVillageID , pAdd - > unPvPVillageChannelID ) ;
# endif // #if defined(PRE_MOD_SELECT_CHAR)
# if defined(_KR) && defined(_FINAL_BUILD) // nexon pc bang
if ( pUser )
g_pNexonAuth - > SendLogin ( pUser ) ;
# elif defined (_JP) && defined(_FINAL_BUILD) && defined (WIN64)
char szTempAccountName [ IDLENMAX * 2 ] ;
WideCharToMultiByte ( CP_ACP , 0 , pAdd - > wszAccountName , - 1 , szTempAccountName , IDLENMAX * 2 , NULL , NULL ) ;
bool bTempNetCafe = false ;
char szNHNNetCafeCode [ NHNNETCAFECODEMAX ] ;
char szNHNProductCode [ NHNNETCAFECODEMAX ] ;
if ( g_pNHNNetCafe - > NetCafe_UserLogin ( szTempAccountName , pAdd - > szIP , bTempNetCafe ) )
{
if ( bTempNetCafe )
{
if ( g_pNHNNetCafe - > NetCafe_GetNetCafeCode ( szTempAccountName , szNHNNetCafeCode , sizeof ( szNHNNetCafeCode ) ) = = false )
memset ( szNHNNetCafeCode , 0 , sizeof ( szNHNNetCafeCode ) ) ;
if ( g_pNHNNetCafe - > NetCafe_GetProductCode ( szTempAccountName , szNHNProductCode , sizeof ( szNHNProductCode ) ) = = false )
memset ( szNHNProductCode , 0 , sizeof ( szNHNProductCode ) ) ;
if ( g_pDivisionManager - > SetNHNNetCafeInfo ( pAdd - > nAccountDBID , bTempNetCafe , szNHNNetCafeCode , szNHNProductCode ) = = false )
_DANGER_POINT ( ) ;
}
}
# elif defined(_TH) && defined(_FINAL_BUILD)
if ( pUser )
g_pAsiaSoftPCCafe - > SendCheckIPBonus ( pUser - > GetAccountNameA ( ) , pUser - > GetIp ( ) , 1 , pUser - > GetAccountDBID ( ) ) ;
# elif defined(_ID) && defined(_FINAL_BUILD)
if ( pUser )
{
_strcpy ( pUser - > m_szMacAddress , _countof ( pUser - > m_szMacAddress ) , pAdd - > szMacAddress , ( int ) strlen ( pAdd - > szMacAddress ) ) ;
_strcpy ( pUser - > m_szKey , _countof ( pUser - > m_szKey ) , pAdd - > szKey , ( int ) strlen ( pAdd - > szKey ) ) ;
pUser - > m_dwKreonCN = pAdd - > dwKreonCN ;
g_pKreonPCCafe - > AddProcessCall ( pUser - > GetAccountDBID ( ) ) ;
}
# endif // _KR
return ERROR_NONE ;
}
case VIMA_DELUSER :
{
VIMADelUser * pDelUser = ( VIMADelUser * ) pData ;
g_pDivisionManager - > DelUser ( pDelUser - > nAccountDBID , false , pDelUser - > nSessionID ) ;
return ERROR_NONE ;
}
break ;
// Go~ Game~
case VIMA_REQGAMEID :
{
VIMAReqGameID * pPacket = reinterpret_cast < VIMAReqGameID * > ( pData ) ;
if ( g_pDivisionManager - > RequestGameRoom ( pPacket ) = = false )
{
# if defined( PRE_WORLDCOMBINE_PARTY )
SendSetGameID ( pPacket - > GameTaskType , pPacket - > cReqGameIDType , pPacket - > InstanceID , 0 , 0 , 0 , 0 , 0 , 0 , pPacket - > unVillageChannelID , GetVillageID ( ) , - 1 , pPacket - > PartyData . PartyData . Type ) ;
if ( Party : : bIsWorldCombineParty ( pPacket - > PartyData . PartyData . Type ) = = false )
# else
SendSetGameID ( pPacket - > GameTaskType , pPacket - > cReqGameIDType , pPacket - > InstanceID , 0 , 0 , 0 , 0 , 0 , 0 , pPacket - > unVillageChannelID , GetVillageID ( ) , - 1 ) ;
# endif
_DANGER_POINT ( ) ;
}
return ERROR_NONE ;
}
break ;
case VIMA_LADDER_REQGAMEID :
{
VIMALadderReqGameID * pPacket = reinterpret_cast < VIMALadderReqGameID * > ( pData ) ;
if ( g_pDivisionManager - > RequestGameRoom ( pPacket ) = = false )
{
GAMASetRoomID TempPacket ;
memset ( & TempPacket , 0 , sizeof ( TempPacket ) ) ;
for ( int i = 0 ; i < pPacket - > LadderData . cMemberCount ; + + i )
TempPacket . nRoomMember [ i ] = pPacket - > LadderData . MemberInfoArr [ i ] . uiAccountDBID ;
SendLadderSetGameID ( 0 , 0 , 0 , 0 , 0 , 0 , pPacket - > unVillageChannelID , GetVillageID ( ) , - 1 , & TempPacket ) ;
}
return ERROR_NONE ;
}
case VIMA_LADDER_OBSERVER :
{
VIMALadderObserver * pPacket = reinterpret_cast < VIMALadderObserver * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biCharacterDBID ) ;
if ( pUser = = NULL )
break ;
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pPacket - > iGameServerID ) ;
if ( pGameCon = = NULL )
break ;
pGameCon - > SendLadderObserver ( pPacket - > iGameRoomID , pUser ) ;
return ERROR_NONE ;
}
case VIMA_LADDER_ENTERCHANNEL :
{
# if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
VIMALadderEnterChannel * pPacket = reinterpret_cast < VIMALadderEnterChannel * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( pUser )
{
if ( ! pUser - > bIsPvPLobby ( ) ) // PvP<76> κ<EFBFBD> <CEBA> <EFBFBD> <20> ƴ<EFBFBD> <20> <> <EFBFBD> ¿<EFBFBD> <C2BF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> °Ÿ<C2B0> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ..
pUser - > SetLadderMatchType ( pPacket - > MatchType ) ;
}
# endif
// <20> <> Ŷ <20> <> <EFBFBD> <EFBFBD> ȭ<EFBFBD> <C8AD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> Ŷ<EFBFBD> ̹Ƿ<CCB9> <20> ״<EFBFBD> <D7B4> <EFBFBD> <20> ٽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
AddSendData ( MAVI_LADDERSYSTEM_ENTERCHANNEL , 0 , pData , iLen ) ;
return ERROR_NONE ;
}
case VIMA_LADDER_INVITEUSER :
{
VIMALadderInviteUser * pPacket = ( VIMALadderInviteUser * ) pData ;
CDNUser * pDestUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszCharName ) ;
if ( pDestUser )
{
if ( pDestUser - > bIsPvPLobby ( ) = = false )
{
//<2F> ش<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ǿ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ʴ<EFBFBD> .
pPacket - > nRetCode = ERROR_LADDERSYSTEM_CANT_RECVINVITESTATE ;
AddSendData ( MAVI_LADDERSYSTEM_INVITEUSER , 0 , pData , iLen ) ;
return ERROR_NONE ;
}
}
// <20> <> Ŷ <20> <> <EFBFBD> <EFBFBD> ȭ<EFBFBD> <C8AD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> Ŷ<EFBFBD> ̹Ƿ<CCB9> <20> ״<EFBFBD> <D7B4> <EFBFBD> <20> ٽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
AddSendData ( MAVI_LADDERSYSTEM_INVITEUSER , 0 , pData , iLen ) ;
return ERROR_NONE ;
}
case VIMA_LADDER_INVITECONFIRM :
{
// <20> <> Ŷ <20> <> <EFBFBD> <EFBFBD> ȭ<EFBFBD> <C8AD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> Ŷ<EFBFBD> ̹Ƿ<CCB9> <20> ״<EFBFBD> <D7B4> <EFBFBD> <20> ٽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
AddSendData ( MAVI_LADDERSYSTEM_INVITECONFIRM , 0 , pData , iLen ) ;
return ERROR_NONE ;
}
//Enter Village~
case VIMA_ENTERVILLAGE :
{
VIMAEnterVillage * pPacket = ( VIMAEnterVillage * ) pData ; //üũ<C3BC> ʹ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ó<EFBFBD> <C3B3> <20> Ϸ<EFBFBD> ! <20> ΰ̴ϴ<CCB4> .
if ( g_pDivisionManager - > EnterVillage ( pPacket - > nAccountDBID , m_cVillageID , pPacket - > nChannelID ) = = false )
{
g_pDivisionManager - > SendDetachUser ( pPacket - > nAccountDBID ) ;
g_Log . Log ( LogType : : _ERROR , g_Config . nWorldSetID , pPacket - > nAccountDBID , 0 , 0 , L " EnterVillage CheckFail ADBID[%d] \n " , pPacket - > nAccountDBID ) ;
}
return ERROR_NONE ;
}
break ;
//Reconnect Login
case VIMA_RECONNECTLOGIN :
{
VIMAReconnectLogin * pPacket = ( VIMAReconnectLogin * ) pData ;
g_pDivisionManager - > ReconnectLogin ( pPacket - > nAccountDBID ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > nAccountDBID ) ;
if ( pUser )
{
g_pDivisionManager - > UpdateUserState ( pUser - > GetCharacterName ( ) , pUser - > GetCharacterDBID ( ) , _LOCATION_NONE , _COMMUNITY_NONE ) ;
}
return ERROR_NONE ;
}
case VIMA_PROCESSDELAYED :
{
VIMAProcessDelayed * pPacket = ( VIMAProcessDelayed * ) pData ;
g_Log . Log ( LogType : : _ERROR , g_Config . nWorldSetID , 0 , 0 , 0 , L " Village Process Delayed msec[%d] \n " , pPacket - > nDelayedTick ) ;
return ERROR_NONE ;
}
break ;
case VIMA_VILLAGEUSERREPORT :
{
VIMAUserReport * pPacket = ( VIMAUserReport * ) pData ;
for ( int i = 0 ; i < pPacket - > nCount ; i + + )
{
std : : vector < TChannelInfo > : : iterator ii ;
for ( ii = m_VillageChannelInfo . vOwnedChannelList . begin ( ) ; ii ! = m_VillageChannelInfo . vOwnedChannelList . end ( ) ; ii + + )
if ( ( * ii ) . nChannelID = = pPacket - > Info [ i ] . nChannelID )
( * ii ) . nCurrentUser = pPacket - > Info [ i ] . nChannelUserCount ;
}
return ERROR_NONE ;
}
break ;
// Go~ Village To Village~
case VIMA_VILLAGETOVILLAGE :
{
VIMAVillageToVillage * pPacket = ( VIMAVillageToVillage * ) pData ;
g_pDivisionManager - > MoveVillageToVillage ( this , pPacket ) ;
return ERROR_NONE ;
}
break ;
case VIMA_LOGINSTATE :
{
VIMALoginState * pState = ( VIMALoginState * ) pData ;
if ( ! g_pDivisionManager - > GetLoginConnection ( ) | | g_pDivisionManager - > GetLoginConnection ( ) - > GetDelete ( ) ) {
SendLoginState ( pState - > nSessionID , ERROR_LOGIN_FAIL ) ;
}
else {
CDNUser * pUser = g_pDivisionManager - > GetUserBySessionID ( pState - > nSessionID ) ;
if ( pUser ) {
// DecreaseUserCount(pUser->GetChannelID());
SendLoginState ( pState - > nSessionID , ERROR_NONE ) ;
}
else {
SendLoginState ( pState - > nSessionID , ERROR_LOGIN_FAIL ) ;
}
}
}
break ;
# if defined( PRE_PARTY_DB )
case VIMA_REQPARTYINVITE :
{
VIMAReqPartyInvite * pPacket = reinterpret_cast < VIMAReqPartyInvite * > ( pData ) ;
CDNUser * pInviteUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszInviteCharName ) ;
if ( pInviteUser = = NULL | | pInviteUser - > GetUserState ( ) ! = STATE_VILLAGE )
{
SendResPartyInvite ( ERROR_PARTY_INVITEFAIL_DESTUSER_NOTFOUND , pPacket - > uiReqAccountDBID ) ;
return ERROR_NONE ;
}
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pInviteUser - > GetVillageID ( ) ) ;
if ( pVillageCon = = NULL )
{
SendResPartyInvite ( ERROR_PARTY_INVITEFAIL_DESTUSER_NOTFOUND , pPacket - > uiReqAccountDBID ) ;
return ERROR_NONE ;
}
pVillageCon - > SendReqPartyInvite ( pPacket ) ;
return ERROR_NONE ;
}
case VIMA_RESPARTYINVITE :
{
VIMAResPartyInvite * pPacket = reinterpret_cast < VIMAResPartyInvite * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiReqAccountDBID ) ;
if ( pUser = = NULL | | pUser - > GetUserState ( ) ! = STATE_VILLAGE )
return ERROR_NONE ;
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon = = NULL )
return ERROR_NONE ;
pVillageCon - > SendResPartyInvite ( pPacket - > iRet , pPacket - > uiReqAccountDBID ) ;
return ERROR_NONE ;
}
case VIMA_PARTYINVITEDENIED :
{
VIMAPartyInviteDenied * pPacket = reinterpret_cast < VIMAPartyInviteDenied * > ( pData ) ;
CDNUser * pReqUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszReqCharName ) ;
if ( pReqUser = = NULL | | pReqUser - > GetUserState ( ) ! = STATE_VILLAGE )
return ERROR_NONE ;
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pReqUser - > GetVillageID ( ) ) ;
if ( pVillageCon = = NULL )
return ERROR_NONE ;
pVillageCon - > SendPartyInviteDenied ( pPacket ) ;
return ERROR_NONE ;
}
# if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
case VIMA_REQPARTYASKJOIN :
{
VIMAReqPartyAskJoin * pPacket = reinterpret_cast < VIMAReqPartyAskJoin * > ( pData ) ;
CDNUser * pTargetUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszTargetChracterName ) ;
if ( pTargetUser = = NULL | | ( pTargetUser - > GetUserState ( ) ! = STATE_VILLAGE & & pTargetUser - > GetUserState ( ) ! = STATE_GAME ) )
{
SendResPartyAskJoin ( ERROR_PARTY_ASKJOIN_FAIL , pPacket - > uiReqAccountDBID ) ;
return ERROR_NONE ;
}
if ( pTargetUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pTargetUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendReqPartyAskJoin ( pPacket ) ;
else
SendResPartyAskJoin ( ERROR_PARTY_ASKJOIN_FAIL , pPacket - > uiReqAccountDBID ) ;
}
else if ( pTargetUser - > GetUserState ( ) = = STATE_GAME )
{
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pTargetUser - > GetGameID ( ) ) ;
if ( pGameCon )
pGameCon - > SendReqPartyAskJoin ( pTargetUser - > GetAccountDBID ( ) , pPacket ) ;
else
SendResPartyAskJoin ( ERROR_PARTY_ASKJOIN_FAIL , pPacket - > uiReqAccountDBID ) ;
}
return ERROR_NONE ;
}
case VIMA_RESPARTYASKJOIN :
{
VIMAResPartyAskJoin * pPacket = reinterpret_cast < VIMAResPartyAskJoin * > ( pData ) ;
CDNUser * pUser = NULL ;
if ( pPacket - > uiReqAccountDBID > 0 )
pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiReqAccountDBID ) ;
else if ( pPacket - > wszReqChracterName [ 0 ] ! = ' \0 ' )
pUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszReqChracterName ) ;
if ( pUser & & pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendResPartyAskJoin ( pPacket - > iRet , pUser - > GetAccountDBID ( ) ) ;
}
return ERROR_NONE ;
}
case VIMA_ASKJOINAGREEINFO :
{
VIMAAskJoinAgreeInfo * pPacket = reinterpret_cast < VIMAAskJoinAgreeInfo * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszAskerCharName ) ;
if ( pUser & & pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendAskJoinAgreeInfo ( pUser - > GetAccountDBID ( ) , pPacket - > PartyID , pPacket - > iPassword ) ;
}
return ERROR_NONE ;
}
# endif
# else
case VIMA_REQPARTYID :
{
VIMAReqPartyID * pPacket = ( VIMAReqPartyID * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > nAccountDBID ) ;
if ( pUser = = NULL )
{
_DANGER_POINT ( ) ;
SendResult ( pPacket - > nAccountDBID , MAVI_REQPARTYIDFAIL , ERROR_PARTY_CREATE_FAIL ) ;
return ERROR_NONE ;
}
WCHAR wszName [ PARTYNAMELENMAX ] ;
memset ( wszName , 0 , sizeof ( wszName ) ) ;
_wcscpy ( wszName , PARTYNAMELENMAX , pPacket - > wszBuf , pPacket - > cNameLen ) ;
WCHAR szPass [ PARTYPASSWORDMAX ] ;
memset ( szPass , 0 , sizeof ( szPass ) ) ;
if ( pPacket - > cPassWordLen > 0 )
_wcscpy ( szPass , PARTYPASSWORDMAX , pPacket - > wszBuf + pPacket - > cNameLen , pPacket - > cPassWordLen ) ;
UINT nGetPartyID = g_IDGenerator . GetPartyID ( ) ;
SendAddParty ( pPacket - > nAccountDBID , pUser - > GetSessionID ( ) , nGetPartyID , wszName , szPass , pPacket - > nChannelID , pPacket - > cMemberMax , pPacket - > ItemLootRule , pPacket - > ItemLootRank , pPacket - > cUserLvLimitMin , pPacket - > cUserLvLimitMax , pPacket - > nTargetMapIdx , pPacket - > Difficulty , pPacket - > cPartyJobDice , pPacket - > nCreateAfterInvite , pPacket - > cUseVoice ) ;
return ERROR_NONE ;
}
break ;
# endif // #if defined( PRE_PARTY_DB )
case VIMA_RETINVITEPARTYMEMBER :
{
VIMAInvitePartyMemberResult * pPacket = ( VIMAInvitePartyMemberResult * ) pData ;
if ( g_pDivisionManager - > SendInvitePartyMemberResult ( pPacket - > nGameServerID , pPacket - > wszInviterName , pPacket - > wszInvitedName , pPacket - > nRetCode ) = = false )
{
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ߴ ٰ<DFB4> <20> ˷<EFBFBD> <CBB7> <EFBFBD> <EFBFBD> <EFBFBD> .
CDNUser * pinvitedUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszInvitedName ) ;
if ( pinvitedUser )
SendResult ( pinvitedUser - > GetAccountDBID ( ) , MAVI_INVITEPARTYMEMBER_RETMSG , ERROR_PARTY_INVITEAGREEFAIL ) ;
else
_DANGER_POINT ( ) ;
}
}
break ;
# if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
case VIMA_GETPARTYID :
{
VIMAGetPartyID * pPacket = ( VIMAGetPartyID * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszCharName ) ;
if ( ! pUser ) return ERROR_NONE ;
if ( pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendGetPartyID ( pUser - > GetAccountDBID ( ) , pPacket - > nSenderAccountDBID ) ;
}
else if ( pUser - > GetUserState ( ) = = STATE_GAME )
{
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pUser - > GetGameID ( ) ) ;
if ( pGameCon )
pGameCon - > SendGetPartyID ( pUser - > GetAccountDBID ( ) , pPacket - > nSenderAccountDBID ) ;
}
else
SendGetPartyIDResult ( pPacket - > nSenderAccountDBID , 0 ) ;
return ERROR_NONE ;
}
break ;
case VIMA_GETPARTYID_RESULT :
{
VIMAGetPartyIDResult * pPacket = ( VIMAGetPartyIDResult * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > nSenderAccountDBID ) ;
if ( pUser & & pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
{
pVillageCon - > SendGetPartyIDResult ( pPacket - > nSenderAccountDBID , pPacket - > PartyID ) ;
}
}
return ERROR_NONE ;
}
break ;
# endif
case VIMA_INVAITEGUILDMEMB : // <20> <> <EFBFBD> <EFBFBD> <20> ʴ<EFBFBD>
{
MAInviteGuildMember * pPacket = ( MAInviteGuildMember * ) pData ;
if ( g_pDivisionManager - > SendInviteGuildMember ( reinterpret_cast < MAInviteGuildMember * > ( pPacket ) ) = = false )
{
SendInviteGuildMemberResult ( pPacket - > nAccountDBID , ERROR_PARTY_INVITEFAIL_DESTUSER_SITUATION_NOTALLOWED , false , pPacket - > wszToCharacterName ) ;
}
}
break ;
case VIMA_RETINVITEGUILDMEMBER :
{
g_pDivisionManager - > SendInviteGuildMemberResult ( reinterpret_cast < VIMAInviteGuildMemberResult * > ( pData ) ) ;
}
break ;
case VIMA_GUILDWAREINFO :
{
g_pDivisionManager - > SendGuildWareInfo ( reinterpret_cast < MAGuildWareInfo * > ( pData ) ) ;
}
break ;
case VIMA_RETGUILDWAREINFO :
{
g_pDivisionManager - > SendGuildWareInfoResult ( reinterpret_cast < MAGuildWareInfoResult * > ( pData ) ) ;
}
break ;
case VIMA_GUILDMEMBER_LEVELUP :
{
g_pDivisionManager - > SendGuildMemberLevelUp ( reinterpret_cast < MAGuildMemberLevelUp * > ( pData ) ) ;
}
break ;
case VIMA_REFRESH_GUILDITEM :
{
g_pDivisionManager - > SendRefreshGuildItem ( reinterpret_cast < MARefreshGuildItem * > ( pData ) ) ;
}
break ;
case VIMA_REFRESH_GUILDCOIN :
{
g_pDivisionManager - > SendRefreshGuildCoin ( reinterpret_cast < MARefreshGuildCoin * > ( pData ) ) ;
}
break ;
case VIMA_EXTEND_GUILDWARE :
{
g_pDivisionManager - > SendExtendGuildWareSize ( reinterpret_cast < MAExtendGuildWare * > ( pData ) ) ;
}
break ;
case VIMA_DISMISSGUILD : // <20> <> <EFBFBD> <EFBFBD> <20> <> ü <20> ˸ <EFBFBD>
{
g_pDivisionManager - > SendDismissGuild ( reinterpret_cast < MADismissGuild * > ( pData ) ) ;
}
break ;
case VIMA_ADDGUILDMEMB : // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ߰<EFBFBD> <20> ˸ <EFBFBD>
{
g_pDivisionManager - > SendAddGuildMember ( reinterpret_cast < MAAddGuildMember * > ( pData ) ) ;
}
break ;
case VIMA_DELGUILDMEMB : // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (Ż<> <C5BB> /<2F> ߹<EFBFBD> ) <20> ˸ <EFBFBD>
{
g_pDivisionManager - > SendDelGuildMember ( reinterpret_cast < MADelGuildMember * > ( pData ) ) ;
}
break ;
case VIMA_CHANGEGUILDINFO : // <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ˸ <EFBFBD>
{
g_pDivisionManager - > SendChangeGuildInfo ( reinterpret_cast < MAChangeGuildInfo * > ( pData ) ) ;
}
break ;
case VIMA_CHANGEGUILDMEMBINFO : // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ˸ <EFBFBD>
{
g_pDivisionManager - > SendChangeGuildMemberInfo ( reinterpret_cast < MAChangeGuildMemberInfo * > ( pData ) ) ;
}
break ;
case VIMA_GUILDCHAT : // <20> <> <EFBFBD> <EFBFBD> ä<> <C3A4>
{
g_pDivisionManager - > SendGuildChat ( reinterpret_cast < MAGuildChat * > ( pData ) ) ;
}
break ;
case VIMA_GUILDCHANGENAME :
{
g_pDivisionManager - > SendChangeGuildName ( reinterpret_cast < MAGuildChangeName * > ( pData ) ) ;
}
break ;
case VIMA_GUILDCHANGEMARK :
{
g_pDivisionManager - > SendChangeGuildMark ( reinterpret_cast < MAGuildChangeMark * > ( pData ) ) ;
}
break ;
case VIMA_UPDATEGUILDEXP :
{
g_pDivisionManager - > SendUpdateGuildExp ( reinterpret_cast < MAUpdateGuildExp * > ( pData ) ) ;
}
break ;
case VIMA_ENROLLGUILDWAR :
{
g_pDivisionManager - > SendEnrollGuildWar ( reinterpret_cast < MAEnrollGuildWar * > ( pData ) ) ;
}
break ;
case VIMA_SETGUILDWAR_SCHEDULE :
{
VIMASetGuildWarSchedule * pPacket = ( VIMASetGuildWarSchedule * ) pData ;
if ( pPacket - > nResultCode ! = ERROR_NONE )
{
g_Log . Log ( LogType : : _FILEDBLOG , g_Config . nWorldSetID , 0 , 0 , 0 , L " GetGuildWarSchedule Fail Errcode[%d] \n " , pPacket - > nResultCode ) ;
break ;
}
g_pGuildWarManager - > LoadScheduleInfo ( pPacket ) ;
}
break ;
case VIMA_SETGUILDWAR_FINALSCHEDULE :
{
MASetGuildWarFinalSchedule * pPacket = ( MASetGuildWarFinalSchedule * ) pData ;
g_pGuildWarManager - > LoadFinalScheduleInfo ( pPacket ) ;
}
break ;
case VIMA_SETGUILDWAR_POINT :
{
MASetGuildWarPoint * pPacket = ( MASetGuildWarPoint * ) pData ;
if ( pPacket - > nResultCode ! = ERROR_NONE )
{
g_Log . Log ( LogType : : _FILEDBLOG , g_Config . nWorldSetID , 0 , 0 , 0 , L " GetGuildWarPoint Fail Errcode[%d] \n " , pPacket - > nResultCode ) ;
break ;
}
g_pGuildWarManager - > SetGuildWarPoint ( pPacket - > nBlueTeamPoint , pPacket - > nRedTeamPoint ) ;
g_pDivisionManager - > SendSetGuildWarPoint ( pPacket ) ; // <20> <> ü <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뺸.
}
break ;
case VIMA_ADDGUILDWAR_POINT :
{
MAAddGuildWarPoint * pPacket = ( MAAddGuildWarPoint * ) pData ;
g_pGuildWarManager - > AddGuildWarPoint ( pPacket - > cTeamType , pPacket - > nAddPoint ) ;
g_pDivisionManager - > SendAddGuildWarPoint ( pPacket ) ;
}
break ;
case VIMA_SETGUILDWAR_FINAL :
{
VIMASetGuildWarFinalTeam * pPacket = ( VIMASetGuildWarFinalTeam * ) pData ;
// <20> ̹<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ<EFBFBD> <C7A5> ¥<> <C2A5> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> Ȯ<> <C8AE>
if ( g_pGuildWarManager - > GetGuildTournamentInfo ( ) - > GuildUID . IsSet ( ) )
{
//<2F> ̰<EFBFBD> <20> <> Ż<EFBFBD> <C5BB> <EFBFBD> <EFBFBD> Ʈ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ؼ<EFBFBD> <D8BC> <EFBFBD> .
g_pGuildWarManager - > SetGuildWarOpenningPoint ( pPacket ) ;
}
else // <20> <> <EFBFBD> <EFBFBD> ǥ<EFBFBD> <C7A5> <20> <> ¥<> <C2A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ǥ ¥<> <C2A5> .
{
// <20> <> <EFBFBD> ⼭ Ȥ<> ó<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ȵǾ<C8B5> <20> ִ<EFBFBD> <D6B4> <EFBFBD> Ȯ<> <C8AE> ..
if ( pPacket - > nCount ! = 0 )
{
// <20> <> <EFBFBD> ⼭ <20> <> <EFBFBD> <EFBFBD> ǥ¥<C7A5> <C2A5> .
g_pGuildWarManager - > CalcGuildWarTournament ( pPacket ) ;
// <20> <> <EFBFBD> <EFBFBD> ǥ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϶<EFBFBD> <CFB6> <EFBFBD> <20> ˷<EFBFBD> <CBB7> ְ<EFBFBD>
SendSetGuildWarFinalTeam ( g_pGuildWarManager - > GetGuildTournamentInfo ( ) ) ;
}
else
{
if ( ! g_pGuildWarManager - > GetDBJobSuccess ( ) )
{
// <20> <> <EFBFBD> ⼭ <20> <> <EFBFBD> <EFBFBD> Job<6F> <62> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ش<EFBFBD> ..
SendAddDBJobSystemReserve ( DBJOB_GUILDWAR_STATS ) ;
g_pGuildWarManager - > SetDBJobSend ( true ) ;
// <20> <> <EFBFBD> <EFBFBD> <20> ⺻<EFBFBD> <E2BABB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 1<> <31> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> ..
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Not TrialStats(Get Final Team) and AddJobSystem \n " ) ;
}
else
{
// <20> ̰<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 尡 <20> ϳ <EFBFBD> <CFB3> <EFBFBD> <20> <> <EFBFBD> °<EFBFBD> <C2B0> <EFBFBD> ..<2E> <> <EFBFBD> 踦 <20> ̾Ƶ<CCBE> <20> ȳ<EFBFBD> <C8B3> <EFBFBD> ..<2E> ̷<EFBFBD> <CCB7> <EFBFBD> <20> <EFBFBD> <EEB6BB> <20> ؾ<EFBFBD> ..
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Not TrialStats(Get Final Team) Trial Guild Empty \n " ) ;
}
}
}
}
break ;
case VIMA_SETGUILDWAR_TOURNAMENTINFO :
{
// <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> ȸ
MAGuildWarTournamentInfo * pPacket = ( MAGuildWarTournamentInfo * ) pData ;
if ( g_pGuildWarManager - > SetGuildTournamentInfo ( pPacket - > sGuildWarFinalInfo ) ! = 0 )
{
// <20> <> <EFBFBD> <EFBFBD> ǥ <20> ѷ<EFBFBD> <D1B7> ֱ<EFBFBD>
g_pDivisionManager - > SendSetGuildWarTournamentInfo ( g_pGuildWarManager - > GetGuildTournamentInfo ( ) ) ;
// <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϶<EFBFBD> <CFB6> <EFBFBD> <20> ˸ <EFBFBD> <CBB8> <EFBFBD> ..
g_pDivisionManager - > SendGetGuildWarTrialStats ( ) ;
g_pGuildWarManager - > SetTrialStats ( ) ;
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] SendGetGuildWarTrialStats and SetTrialStats !! \r \n " ) ;
}
// <20> <> <EFBFBD> ʸ<EFBFBD> Ʈ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ȵǾ<C8B5> <C7BE> ų<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
SendGetGuildWarFinalTeam ( ) ;
}
break ;
case VIMA_MATCHLIST_SAVE_RESULT :
{
// <20> <> <EFBFBD> <EFBFBD> ǥ<EFBFBD> <C7A5> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <C7BE> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ʸ<EFBFBD> Ʈ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ѹ<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ´ <EFBFBD> ..<2E> <> <EFBFBD> 帶ũ<E5B8B6> <C5A9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
VIMAMatchListSaveResult * pPacket = ( VIMAMatchListSaveResult * ) pData ;
if ( pPacket - > nResultCode = = ERROR_NONE )
SendGetGuildWarTournamentInfo ( g_pGuildWarManager - > GetScheduleID ( ) ) ;
else
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] MatchList Save Error! \n " ) ;
}
break ;
case VIMA_SETGUILDWAR_PRE_WIN_GUILD :
{
MAGuildWarPreWinGuild * pPacket = ( MAGuildWarPreWinGuild * ) pData ;
g_pGuildWarManager - > SetGuildWarPreWinGuild ( pPacket - > GuildUID ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <C7BE> <EFBFBD> <EFBFBD> <EFBFBD> Ȯ<> <C8AE> <EFBFBD> ϰ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .
g_pGuildWarManager - > SetPreWinScheduleID ( pPacket - > wScheduleID ) ;
SendGetGuildWarPreWindGuildReward ( pPacket - > wScheduleID , pPacket - > GuildUID . nDBID ) ;
# if defined(PRE_FIX_75807)
if ( g_pGuildWarManager - > GetScheduleID ( ) = = GUILDWARSCHEDULE_DEF )
{
// <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ȵǾ<C8B5> <20> ִ°<D6B4> <C2B0> ̱<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ٽ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> û
g_pGuildWarManager - > SetGuildWarSettingStep ( REQ_NONE ) ;
g_pGuildWarManager - > SendGuildWarInfoReq ( ) ;
}
# endif //#if defined(PRE_FIX_75807)
}
break ;
case VIMA_SETGUILDWAR_PRE_WIN_REWARD :
{
MAGuildWarPreWinGuild pPacket ;
memset ( & pPacket , 0 , sizeof ( MAGuildWarPreWinGuild ) ) ;
pPacket . GuildUID = g_pGuildWarManager - > GetPreWinGuild ( ) ;
pPacket . bPreWin = true ;
g_pGuildWarManager - > SetFinalWinGuild ( true ) ;
g_pDivisionManager - > SendSetGuildWarPreWinGuild ( & pPacket ) ; // <20> <> ü <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뺸.
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Set PreWinGuildReward! GuildID:%d \n " , pPacket . GuildUID . nDBID ) ;
}
break ;
case VIMA_SETGUILDWAR_POINT_RUNNING_TOTAL :
{
MASetGuildWarPointRunningTotal * pPacket = ( MASetGuildWarPointRunningTotal * ) pData ;
g_pGuildWarManager - > SetGuildWarPointTrialRanking ( pPacket ) ;
g_pDivisionManager - > SendSetGuildWarTrialRanking ( pPacket ) ; // <20> <> ü <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> 뺸.
}
break ;
case VIMA_GUILDWAR_REFRESH_GUILD_POINT :
{
MAGuildWarRefreshGuildPoint * pPacket = ( MAGuildWarRefreshGuildPoint * ) pData ;
g_pDivisionManager - > SendGuildWarRefreshGuildPoint ( pPacket ) ;
}
break ;
case VIMA_GUILDWAR_SCHEDULE_RELOAD :
{
g_pGuildWarManager - > SetResetSchedule ( true ) ;
}
break ;
case VIMA_SETGUILDWAR_PREWIN_SKILLCOOLTIME :
{
MAGuildWarPreWinSkillCoolTime * pPacket = ( MAGuildWarPreWinSkillCoolTime * ) pData ;
g_pGuildWarManager - > SetPreWinSKillCoolTime ( pPacket - > dwSkillCoolTime ) ;
g_pDivisionManager - > SendSetGuildWarPreWinSkillCoolTime ( pPacket ) ;
}
break ;
case VIMA_ADD_DBJOBSYSTEM_RESERVE :
{
VIMAAddDBJobSystemReserve * pPacket = ( VIMAAddDBJobSystemReserve * ) pData ;
if ( pPacket - > nResultCode = = ERROR_NONE )
{
g_pGuildWarManager - > SetDBJobSeq ( pPacket - > nJobSeq ) ;
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] AddDBJobSystemReserve %d \n " , pPacket - > nJobSeq ) ;
g_pDivisionManager - > SendResetGuildWarBuyedItemCount ( ) ;
}
else
{
// <20> ٽ<EFBFBD> Send<6E> ؾ<EFBFBD> <20> ϳ <EFBFBD> ? <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̳<EFBFBD> ..
if ( g_pGuildWarManager - > GetStepIndex ( ) = = GUILDWAR_STEP_PREPARATION )
{
SendAddDBJobSystemReserve ( DBJOB_GUILDWAR_INIT ) ;
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Retry AddDBJobSystemReserve Init!! \n " ) ;
}
else
{
SendAddDBJobSystemReserve ( DBJOB_GUILDWAR_STATS ) ;
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Retry AddDBJobSystemReserve Stats!! \n " ) ;
}
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] AddDBJobSystemReserve Fail!! \n " ) ;
}
}
break ;
case VIMA_GET_DBJOBSYSTEM_RESERVE :
{
VIMAGetDBJobSystemReserve * pPacket = ( VIMAGetDBJobSystemReserve * ) pData ;
if ( pPacket - > nResultCode = = ERROR_NONE )
{
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] GetDBJobSystemReserve %d \n " , pPacket - > cJobStatus ) ;
//0=<3D> <> <EFBFBD> <EFBFBD> , 1=<3D> Ϸ<EFBFBD> , 2=ó<> <C3B3> <EFBFBD> <EFBFBD> , 3=<3D> <> <EFBFBD> <EFBFBD>
if ( pPacket - > cJobStatus = = JOB_STATUS_COMPLETED ) //<2F> Ϸ<EFBFBD>
{
g_pGuildWarManager - > SetDBJobSuccess ( true ) ;
}
else if ( pPacket - > cJobStatus = = JOB_STATUS_FAIL ) // <20> <> <EFBFBD> <EFBFBD>
{
//<2F> ٽ<EFBFBD> Job Add?
if ( g_pGuildWarManager - > GetStepIndex ( ) = = GUILDWAR_STEP_PREPARATION )
{
SendAddDBJobSystemReserve ( DBJOB_GUILDWAR_INIT ) ;
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Retry AddDBJobSystemReserve Init!! \n " ) ;
}
else
{
SendAddDBJobSystemReserve ( DBJOB_GUILDWAR_STATS ) ;
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] Retry AddDBJobSystemReserve Stats!! \n " ) ;
}
}
}
else
{
// <20> ٽ<EFBFBD> Send<6E> ؾ<EFBFBD> <20> ϳ <EFBFBD> ? <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̳<EFBFBD> ..
g_Log . Log ( LogType : : _GUILDWAR , g_Config . nWorldSetID , 0 , 0 , 0 , L " [GUILDWAR] AddDBJobSystemReserve Fail!! \n " ) ;
}
}
break ;
case VIMA_GUILDRECRUIT_MEBMER :
{
g_pDivisionManager - > SendGuildRecruitMember ( reinterpret_cast < MAGuildRecruitMember * > ( pData ) ) ;
break ;
}
case VIMA_GUILD_ADD_REWARDITEM :
{
g_pDivisionManager - > SendAddGuildRewardItem ( reinterpret_cast < MAGuildRewardItem * > ( pData ) ) ;
}
break ;
case VIMA_GUILD_EXTEND_GUILDSIZE :
{
g_pDivisionManager - > SendExtendGuildSize ( reinterpret_cast < MAExtendGuildSize * > ( pData ) ) ;
}
break ;
case VIMA_CHANGECHARACTERNAME :
{
g_pDivisionManager - > SendChangeCharacterName ( reinterpret_cast < MAChangeCharacterName * > ( pData ) ) ;
}
break ;
case VIMA_FRIENDADD :
{
VIMAFriendAddNotice * pPacket = ( VIMAFriendAddNotice * ) pData ;
g_pDivisionManager - > SendFriendAddNotice ( pPacket - > nAddedAccountDBID , pPacket - > wszAddName ) ;
}
break ;
case VIMA_PRIVATECHAT :
{
VIMAPrivateChat * pChat = ( VIMAPrivateChat * ) pData ;
WCHAR wszChatMsg [ CHATLENMAX ] = { 0 , } ;
_wcscpy ( wszChatMsg , CHATLENMAX , pChat - > wszChatMsg , pChat - > wChatLen ) ;
# ifdef PRE_ADD_DOORS
int nRet = g_pDivisionManager - > PrivateChat ( pChat - > nAccountDBID , pChat - > wszToCharacterName , pChat - > cType , wszChatMsg , pChat - > wChatLen , pChat - > biDestCharacterDBID ) ;
# else //#ifdef PRE_ADD_DOORS
int nRet = g_pDivisionManager - > PrivateChat ( pChat - > nAccountDBID , pChat - > wszToCharacterName , pChat - > cType , wszChatMsg , pChat - > wChatLen ) ;
# endif //#ifdef PRE_ADD_DOORS
if ( nRet ! = ERROR_NONE )
SendPrivateChat ( pChat - > nAccountDBID , pChat - > wszToCharacterName , pChat - > cType , wszChatMsg , pChat - > wChatLen , nRet ) ;
return ERROR_NONE ;
}
break ;
case VIMA_CHAT :
{
VIMAChat * pChat = ( VIMAChat * ) pData ;
WCHAR wszChatMsg [ CHATLENMAX ] = { 0 , } ;
_wcscpy ( wszChatMsg , CHATLENMAX , pChat - > wszChatMsg , pChat - > wChatLen ) ;
switch ( pChat - > cType )
{
// VIMA_CHAT <20> <> Ŷ<EFBFBD> <C5B6> CHATTYPE_GM <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ؼ<EFBFBD> <20> ߰<EFBFBD> ~! by <20> <> <EFBFBD> <EFBFBD>
case CHATTYPE_GM :
{
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pChat - > nAccountDBID ) ;
if ( pUser )
{
if ( pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendChat ( pChat - > cType , pChat - > nAccountDBID , L " " , wszChatMsg , pChat - > wChatLen ) ;
}
}
return ERROR_NONE ;
}
case CHATTYPE_CHANNEL :
{
if ( pChat - > nMapIdx = = - 1 )
{
_DANGER_POINT ( ) ;
return ERROR_NONE ;
}
if ( g_pDivisionManager - > ZoneChat ( pChat - > nAccountDBID , wszChatMsg , pChat - > wChatLen , pChat - > nMapIdx ) ! = ERROR_NONE )
_DANGER_POINT ( ) ;
return ERROR_NONE ;
}
case CHATTYPE_WORLD :
# if defined(PRE_ADD_WORLD_MSG_RED)
case CHATTYPE_WORLD_POPMSG :
# endif // #if defined(PRE_ADD_WORLD_MSG_RED)
{
# if defined(PRE_ADD_WORLD_MSG_RED)
if ( g_pDivisionManager - > WorldChat ( pChat - > nAccountDBID , wszChatMsg , pChat - > wChatLen , pChat - > cType ) ! = ERROR_NONE )
# else // #if defined(PRE_ADD_WORLD_MSG_RED)
if ( g_pDivisionManager - > WorldChat ( pChat - > nAccountDBID , wszChatMsg , pChat - > wChatLen ) ! = ERROR_NONE )
# endif // #if defined(PRE_ADD_WORLD_MSG_RED)
_DANGER_POINT ( ) ;
return ERROR_NONE ;
}
break ;
}
}
break ;
case VIMA_WORLDSYSTEMMSG :
{
VIMAWorldSystemMsg * pMsg = ( VIMAWorldSystemMsg * ) pData ;
g_pDivisionManager - > WorldSystemMsg ( pMsg - > nAccountDBID , pMsg - > cType , pMsg - > nID , pMsg - > nValue , pMsg - > wszToCharacterName ) ;
}
break ;
# if defined( PRE_PRIVATECHAT_CHANNEL )
case VIMA_PRIVATECHANNELCHAT :
{
VIMAPrivateChannelChatMsg * pChat = ( VIMAPrivateChannelChatMsg * ) pData ;
WCHAR wszChatMsg [ CHATLENMAX ] = { 0 , } ;
_wcscpy ( wszChatMsg , CHATLENMAX , pChat - > wszChatMsg , pChat - > wChatLen ) ;
if ( g_pDivisionManager - > PrivateChannelChat ( pChat - > nAccountDBID , wszChatMsg , pChat - > wChatLen , pChat - > nChannelID ) ! = ERROR_NONE )
return ERROR_NONE ;
}
break ;
# endif
// VoiceChannel
case VIMA_REQVOICECHANNELID :
{
VIMAReqVoiceChannelID * pPacket = ( VIMAReqVoiceChannelID * ) pData ;
//<2F> <> <EFBFBD> ̽<EFBFBD> ä<> <C3A4> Ÿ<EFBFBD> Կ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ϳ <EFBFBD> <CDBF> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־<EFBFBD> <D6BE> <EFBFBD> <20> ϴ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ȯ<> <C8AE> <EFBFBD> <EFBFBD> <20> <> <20> <> <20> ִ<EFBFBD>
//<2F> <> <20> <> <EFBFBD> <EFBFBD> ä<> <C3A4> <20> ̰<EFBFBD> <CCB0> <EFBFBD> <20> <> Ƽ <EFBFBD> <C6BC> <20> Ѽ<EFBFBD> <D1BC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> 忡 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> Ǿ<EFBFBD> <C7BE> <EFBFBD>
//<2F> Ǵ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> ̽<EFBFBD> ä<EFBFBD> <C3A4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ʈ<> <C6AE> <EFBFBD> ̽<EFBFBD> <20> ؾ<EFBFBD> <D8BE> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ܼ<EFBFBD> <DCBC> ϰ<EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ǿ<EFBFBD> <C7BE> <EFBFBD> <20> ༮<EFBFBD> <E0BCAE> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> Űܴٴ<DCB4>
UINT nVoiceChannelD [ PvPCommon : : TeamIndex : : Max ] ;
memset ( nVoiceChannelD , 0 , sizeof ( nVoiceChannelD ) ) ;
switch ( pPacket - > cVoiceChannelType )
{
case _VOICECHANNEL_REQTYPE_PARTY :
{
nVoiceChannelD [ 0 ] = g_IDGenerator . GetVoiceChannelID ( ) ;
}
break ;
case _VOICECHANNEL_REQTYPE_PVP :
{
for ( int i = 0 ; i < PvPCommon : : TeamIndex : : Max ; i + + )
nVoiceChannelD [ i ] = g_IDGenerator . GetVoiceChannelID ( ) ;
CDNPvP * pPvP = g_pDivisionManager - > GetPvPRoomByIdx ( static_cast < UINT > ( pPacket - > InstanceID ) ) ;
if ( pPvP )
pPvP - > SetVoiceChannelID ( nVoiceChannelD ) ;
else
_DANGER_POINT ( ) ;
}
break ;
default :
{
_DANGER_POINT ( ) ;
return ERROR_NONE ;
}
}
SendVoiceChannelID ( pPacket - > InstanceID , pPacket - > cVoiceChannelType , pPacket - > nPvPLobbyChannelID , nVoiceChannelD ) ;
return ERROR_NONE ;
}
break ;
// PvP
case VIMA_PVP_MOVELOBBYTOVILLAGE :
{
VIMAPVP_MOVELOBBYTOVILLAGE * pPacket = reinterpret_cast < VIMAPVP_MOVELOBBYTOVILLAGE * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > MovePvPLobbyToVillage ( this , pPacket ) ;
return ERROR_NONE ;
}
case VIMA_PVP_CREATEROOM :
{
VIMAPVP_CREATEROOM * pPacket = reinterpret_cast < VIMAPVP_CREATEROOM * > ( pData ) ;
if ( g_pDivisionManager )
{
# if defined( PRE_ADD_PVP_VILLAGE_ACCESS)
short nRetCode = ERROR_NONE ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiCreateAccountDBID ) ;
if ( pUser )
{
# ifdef PRE_ADD_COLOSSEUM_BEGINNER
if ( pPacket - > sCSPVP_CREATEROOM . cRoomType ! = static_cast < BYTE > ( pUser - > GetPvPChannelType ( ) ) )
{
_DANGER_POINT ( ) ;
pPacket - > sCSPVP_CREATEROOM . cRoomType = static_cast < BYTE > ( pUser - > GetPvPChannelType ( ) ) ;
}
# endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
if ( ! pUser - > bIsPvPLobby ( ) )
{
pPacket - > unVillageChannelID = g_pDivisionManager - > GetPvPLobbyChannelID ( ) ;
pPacket - > uiVillageMapIndex = g_pDivisionManager - > GetPvPLobbyMapIndex ( ) ;
}
if ( GetVillageID ( ) ! = g_pDivisionManager - > GetPvPLobbyVillageID ( ) ) // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ٸ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ġ<EFBFBD> <C4A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ..
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( g_pDivisionManager - > GetPvPLobbyVillageID ( ) ) ;
if ( pVillageCon = = NULL | | pVillageCon - > GetActive ( ) = = false )
nRetCode = ERROR_PVP_CREATEROOM_FAILED ;
else
nRetCode = g_pDivisionManager - > CreatePvPRoom ( pVillageCon , pPacket ) ;
}
else
nRetCode = g_pDivisionManager - > CreatePvPRoom ( this , pPacket ) ;
}
else
nRetCode = g_pDivisionManager - > CreatePvPRoom ( this , pPacket ) ;
# else
short nRetCode = g_pDivisionManager - > CreatePvPRoom ( this , pPacket ) ;
# endif //#if defined( PRE_ADD_PVP_VILLAGE_ACCESS)
if ( nRetCode ! = ERROR_NONE & & pPacket - > nEventID < = 0 )
SendPvPCreateRoom ( nRetCode , NULL , pPacket ) ;
}
else
{
SendPvPCreateRoom ( ERROR_PVP_CREATEROOM_FAILED , NULL , pPacket ) ;
}
break ;
}
case VIMA_PVP_MODIFYROOM :
{
VIMAPVP_MODIFYROOM * pPacket = reinterpret_cast < VIMAPVP_MODIFYROOM * > ( pData ) ;
if ( g_pDivisionManager )
{
short nRetCode = g_pDivisionManager - > ModifyPvPRoom ( this , pPacket ) ;
if ( nRetCode ! = ERROR_NONE )
SendPvPModifyRoom ( nRetCode , NULL , pPacket ) ;
}
else
{
SendPvPModifyRoom ( ERROR_PVP_MODIFYROOM_FAILED , NULL , pPacket ) ;
}
break ;
}
case VIMA_PVP_LEAVEROOM :
{
VIMAPVP_LEAVEROOM * pPacket = reinterpret_cast < VIMAPVP_LEAVEROOM * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > LeavePvPRoom ( pPacket - > uiLeaveAccountDBID , true ) ;
break ;
}
case VIMA_PVP_CHANGECAPTAIN :
{
VIMAPVP_CHANGECAPTAIN * pPacket = reinterpret_cast < VIMAPVP_CHANGECAPTAIN * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > ChangePvPRoomCaptain ( this , pPacket ) ;
break ;
}
case VIMA_PVP_ROOMLIST :
{
VIMAPVP_ROOMLIST * pPacket = reinterpret_cast < VIMAPVP_ROOMLIST * > ( pData ) ;
if ( g_pDivisionManager )
{
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( pUser )
{
# if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
if ( g_pDivisionManager - > GetPvPLobbyVillageID ( ) = = GetVillageID ( ) ) // <20> <> <EFBFBD> <EFBFBD> <20> ݷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ̸<EFBFBD> <20> ׳ <EFBFBD> <20> ٷ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ʈ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> .
{
if ( ! pUser - > bIsPvPLobby ( ) )
pPacket - > unVillageChannelID = g_pDivisionManager - > GetPvPLobbyChannelID ( ) ;
SendPvPRoomList ( pPacket ) ;
}
else
{
// <20> ƴϸ<C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> û~
CDNVillageConnection * pVillageConnection = g_pDivisionManager - > GetVillageConnectionByVillageID ( g_pDivisionManager - > GetPvPLobbyVillageID ( ) ) ;
if ( pVillageConnection = = NULL | | pVillageConnection - > GetActive ( ) = = false )
break ;
pPacket - > unVillageChannelID = g_pDivisionManager - > GetPvPLobbyChannelID ( ) ;
pVillageConnection - > SendPvPRoomListRelay ( GetVillageID ( ) , pPacket ) ;
}
# else
// PvP<76> κ<EFBFBD> <CEBA> <EFBFBD> <20> ְ<EFBFBD> <20> 뿡 JOIN <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
if ( pUser - > bIsPvPLobby ( ) & & pUser - > GetPvPIndex ( ) = = 0 )
SendPvPRoomList ( pPacket ) ;
# endif // #if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
}
}
break ;
}
# if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
case VIMA_PVP_ROOMLIST_RELAY :
{
PVP_ROOMLIST_RELAY * pPacket = reinterpret_cast < PVP_ROOMLIST_RELAY * > ( pData ) ;
CDNVillageConnection * pVillageConnection = g_pDivisionManager - > GetVillageConnectionByVillageID ( pPacket - > cVillageID ) ;
if ( pVillageConnection = = NULL | | pVillageConnection - > GetActive ( ) = = false )
break ;
pVillageConnection - > SendPvPRoomListRelayAck ( pPacket ) ;
}
break ;
# endif
# ifdef PRE_ADD_COLOSSEUM_BEGINNER
case VIMA_PVP_CHANGECHANNEL :
{
if ( g_pDivisionManager )
g_pDivisionManager - > SetPvPChangeChannel ( this , reinterpret_cast < const PVP_CHANGECHANNEL * > ( pData ) ) ;
}
break ;
# endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
case VIMA_PVP_WAITUSERLIST :
{
VIMAPVP_WAITUSERLIST * pPacket = reinterpret_cast < VIMAPVP_WAITUSERLIST * > ( pData ) ;
if ( g_pDivisionManager )
{
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( pUser )
{
// PvP <20> κ<EFBFBD> <CEBA> <EFBFBD> <20> ְ<EFBFBD> <20> 뿡 JOIN <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
if ( pUser - > bIsPvPLobby ( ) & & pUser - > GetPvPIndex ( ) = = 0 )
SendPvPWaitUserList ( pPacket ) ;
}
}
break ;
}
case VIMA_PVP_JOINROOM :
{
VIMAPVP_JOINROOM * pPacket = reinterpret_cast < VIMAPVP_JOINROOM * > ( pData ) ;
if ( g_pDivisionManager )
{
short nRetCode = g_pDivisionManager - > JoinPvPRoom ( this , pPacket ) ;
if ( nRetCode ! = ERROR_NONE )
SendPvPJoinRoom ( nRetCode , pPacket - > uiAccountDBID ) ;
}
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_READY :
{
VIMAPVP_READY * pPacket = reinterpret_cast < VIMAPVP_READY * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > ReadyPvP ( this , pPacket ) ;
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_START :
{
VIMAPVP_START * pPacket = reinterpret_cast < VIMAPVP_START * > ( pData ) ;
if ( g_pDivisionManager )
{
# if defined(_FINAL_BUILD)
short nRetCode = g_pDivisionManager - > StartPvP ( this , pPacket , true ) ;
# else
short nRetCode = g_pDivisionManager - > StartPvP ( this , pPacket ) ;
# endif
if ( nRetCode ! = ERROR_NONE )
{
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( ! pUser )
{
SendPvPStart ( ERROR_PVP_STARTPVP_FAILED , 0 , 0 , pPacket - > uiAccountDBID ) ;
break ;
}
CDNPvP * pPvPRoom = g_pDivisionManager - > GetPvPRoomByIdx ( pUser - > GetPvPIndex ( ) ) ;
BYTE cVillageChannelID = pPvPRoom ? pPvPRoom - > GetVillageChannelID ( ) : 0 ;
UINT uiPvPIndex = pPvPRoom ? pPvPRoom - > GetIndex ( ) : 0 ;
SendPvPStart ( nRetCode , cVillageChannelID , uiPvPIndex , pPacket - > uiAccountDBID ) ;
}
}
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_RANDOMJOINROOM :
{
VIMAPVP_RANDOMJOINROOM * pPacket = reinterpret_cast < VIMAPVP_RANDOMJOINROOM * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > RandomJoinPvPRoom ( this , pPacket ) ;
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_CHANGETEAM :
{
VIMAPVP_CHANGETEAM * pPacket = reinterpret_cast < VIMAPVP_CHANGETEAM * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > ChangePvPTeam ( this , pPacket ) ;
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_BAN :
{
if ( g_pDivisionManager )
g_pDivisionManager - > BanPvPRoom ( this , reinterpret_cast < VIMAPVP_BAN * > ( pData ) ) ;
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_ENTERLOBBY :
{
VIMAPVP_ENTERLOBBY * pPacket = reinterpret_cast < VIMAPVP_ENTERLOBBY * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > EnterLobby ( this , pPacket ) ;
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_FATIGUE_OPTION :
{
VIMAPVP_FATIGUE_OPTION * pPacket = reinterpret_cast < VIMAPVP_FATIGUE_OPTION * > ( pData ) ;
if ( g_pDivisionManager )
g_pDivisionManager - > SetPvPFatigueOption ( pPacket ) ;
else
_DANGER_POINT ( ) ;
break ;
}
case VIMA_PVP_SWAPTMEMBER_INDEX :
{
VIMAPVPSwapMemberIndex * pPacket = ( VIMAPVPSwapMemberIndex * ) pData ;
bool bRet = false ;
USHORT nTeam = PvPCommon : : Team : : A ;
if ( g_pDivisionManager )
bRet = g_pDivisionManager - > SetPvPMemberIndex ( pPacket - > nAccountDBID , pPacket - > cCount , pPacket - > Index , nTeam ) ;
SendPvPMemberIndex ( nTeam , pPacket , bRet ? ERROR_NONE : ERROR_PVP_SWAPTEAM_MEMBERINDEX_FAIL ) ;
break ;
}
case VIMA_PVP_CHANGEMEMBER_GRADE :
{
VIMAPVPChangeMemberGrade * pPacket = ( VIMAPVPChangeMemberGrade * ) pData ;
bool bRet = false ;
USHORT nUserState = PvPCommon : : UserState : : None ;
USHORT nTeam = PvPCommon : : Team : : A ;
if ( g_pDivisionManager )
bRet = g_pDivisionManager - > SetGuildWarMemberGrade ( pPacket - > nAccountDBID , pPacket - > bAsign , pPacket - > nType , pPacket - > nTargetSessionID , nUserState , nTeam ) ;
SendPvPMemberGrade ( pPacket - > nAccountDBID , nTeam , nUserState , pPacket - > nTargetSessionID , bRet ? ERROR_NONE : ERROR_PVP_CHANGEMEMBERGRADE_FAIL ) ;
break ;
}
# if defined(PRE_ADD_PVP_TOURNAMENT)
case VIMA_PVP_SWAP_TOURNAMENT_INDEX :
{
VIMAPVPSwapTournamentIndex * pPacket = reinterpret_cast < VIMAPVPSwapTournamentIndex * > ( pData ) ;
if ( g_pDivisionManager )
{
if ( g_pDivisionManager - > SwapTournamentIndex ( pPacket - > nAccountDBID , pPacket - > cSourceIndex , pPacket - > cDestIndex ) = = true )
SendPvPSwapTournamentIndex ( ERROR_NONE , pPacket - > nAccountDBID , pPacket - > cSourceIndex , pPacket - > cDestIndex ) ;
else
SendPvPSwapTournamentIndex ( ERROR_PVP_SWAP_TOURNAMENT_INDEX_FAIL , pPacket - > nAccountDBID , 0 , 0 ) ;
}
else
_DANGER_POINT ( ) ;
break ;
}
# endif
case VIMA_MASTERSYSTEM_CHECKMASTERAPPLICATION :
{
MasterSystem : : VIMACheckMasterApplication * pPacket = reinterpret_cast < MasterSystem : : VIMACheckMasterApplication * > ( pData ) ;
CDNUser * pMasterUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biMasterCharacterDBID ) ;
CDNUser * pPupilUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biPupilCharacterDBID ) ;
if ( pPupilUser = = NULL )
{
_DANGER_POINT ( ) ;
break ;
}
int iRet = ERROR_MASTERSYSTEM_MASTERUSER_OFFLINE ;
if ( pMasterUser )
{
switch ( pMasterUser - > GetUserState ( ) )
{
case STATE_CHECKVILLAGE :
case STATE_CHECKGAME :
case STATE_VILLAGE :
case STATE_GAME :
{
iRet = ERROR_NONE ;
break ;
}
}
}
SendMasterSystemCheckMasterApplication ( iRet , pPupilUser - > GetAccountDBID ( ) , pPacket - > biMasterCharacterDBID ) ;
break ;
}
case VIMA_MASTERSYSTEM_SYNC_SIMPLEINFO :
{
g_pDivisionManager - > SyncMasterSystemSimpleInfo ( reinterpret_cast < MasterSystem : : VIMASyncSimpleInfo * > ( pData ) ) ;
break ;
}
case VIMA_MASTERSYSTEM_SYNC_JOIN :
{
MasterSystem : : VIMASyncJoin * pPacket = reinterpret_cast < MasterSystem : : VIMASyncJoin * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biCharacterDBID ) ;
if ( pUser )
{
switch ( pUser - > GetUserState ( ) )
{
case STATE_VILLAGE :
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendMasterSystemSyncJoin ( pUser - > GetAccountDBID ( ) , pPacket - > biCharacterDBID , pPacket - > bIsAddPupil ) ;
break ;
}
case STATE_GAME :
{
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pUser - > GetGameID ( ) ) ;
if ( pGameCon )
pGameCon - > SendMasterSystemSyncJoin ( pUser - > GetAccountDBID ( ) , pPacket - > biCharacterDBID , pPacket - > bIsAddPupil ) ;
break ;
}
}
}
break ;
}
case VIMA_MASTERSYSTEM_SYNC_LEAVE :
{
MasterSystem : : VIMASyncLeave * pPacket = reinterpret_cast < MasterSystem : : VIMASyncLeave * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biCharacterDBID ) ;
if ( pUser )
{
switch ( pUser - > GetUserState ( ) )
{
case STATE_VILLAGE :
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendMasterSystemSyncLeave ( pUser - > GetAccountDBID ( ) , pPacket - > biCharacterDBID , pPacket - > bIsDelPupil ) ;
break ;
}
case STATE_GAME :
{
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pUser - > GetGameID ( ) ) ;
if ( pGameCon )
pGameCon - > SendMasterSystemSyncJoin ( pUser - > GetAccountDBID ( ) , pPacket - > biCharacterDBID , pPacket - > bIsDelPupil ) ;
break ;
}
}
}
break ;
}
case VIMA_MASTERSYSTEM_SYNC_GRADUATE :
{
g_pDivisionManager - > SyncMasterSystemGraduate ( reinterpret_cast < MasterSystem : : VIMASyncGraduate * > ( pData ) ) ;
break ;
}
case VIMA_MASTERSYSTEM_SYNC_CONNECT :
{
g_pDivisionManager - > SyncMasterSystemConnect ( reinterpret_cast < MasterSystem : : VIMASyncConnect * > ( pData ) ) ;
break ;
}
case VIMA_MASTERSYSTEM_CHECK_LEAVE :
{
MasterSystem : : VIMACheckLeave * pPacket = reinterpret_cast < MasterSystem : : VIMACheckLeave * > ( pData ) ;
int iRet = ERROR_NONE ;
if ( pPacket - > bIsMaster )
{
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biDestCharacterDBID ) ;
if ( pUser )
{
if ( pUser - > GetUserState ( ) ! = STATE_VILLAGE )
iRet = ERROR_MASTERSYSTEM_LEAVE_DESTUSER_CANTSTATE ;
}
else
{
iRet = ERROR_MASTERSYSTEM_LEAVE_DESTUSER_OFFLINE ;
}
}
SendMasterSystemCheckLeave ( iRet , pPacket - > uiAccountDBID , pPacket - > biDestCharacterDBID , pPacket - > bIsMaster ) ;
break ;
}
case VIMA_MASTERSYSTEM_JOIN_CONFIRM :
{
MasterSystem : : VIMAJoinConfirm * pPacket = reinterpret_cast < MasterSystem : : VIMAJoinConfirm * > ( pData ) ;
int iRet = ERROR_MASTERSYSTEM_CANT_JOINSTATE ;
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biMasterCharacterDBID ) ;
if ( pUser )
{
if ( pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = pUser - > GetCurrentVillageConnection ( ) ;
if ( pVillageCon )
{
pVillageCon - > SendMasterSystemJoinConfirm ( pUser - > GetAccountDBID ( ) , pPacket - > cLevel , pPacket - > cJob , pPacket - > wszPupilCharName ) ;
break ;
}
}
}
SendMasterSystemJoinConfirmResult ( iRet , false , pPacket - > biMasterCharacterDBID , pPacket - > wszPupilCharName ) ;
break ;
}
case VIMA_MASTERSYSTEM_JOIN_CONFIRM_RESULT :
{
MasterSystem : : VIMAJoinConfirmResult * pPacket = reinterpret_cast < MasterSystem : : VIMAJoinConfirmResult * > ( pData ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszPupilCharName ) ;
if ( pUser )
{
if ( pUser - > GetUserState ( ) = = STATE_VILLAGE )
{
CDNVillageConnection * pVillageCon = pUser - > GetCurrentVillageConnection ( ) ;
if ( pVillageCon )
{
pVillageCon - > SendMasterSystemJoinConfirmResult ( pPacket - > iRet , pPacket - > bIsAccept , pPacket - > biMasterCharacterDBID , pPacket - > wszPupilCharName ) ;
}
}
}
break ;
}
case VIMA_MASTERSYSTEM_RECALL_MASTER :
{
MasterSystem : : VIMARecallMaster * pPacket = reinterpret_cast < MasterSystem : : VIMARecallMaster * > ( pData ) ;
int iRet = ERROR_MASTERSYSTEM_MASTERUSER_OFFLINE ;
CDNUser * pMasterUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszMasterCharName ) ;
if ( pMasterUser )
{
if ( pMasterUser - > GetUserState ( ) = = STATE_VILLAGE )
{
bool bCheck = false ;
for ( UINT i = 0 ; i < pPacket - > cCharacterDBIDCount ; + + i )
{
if ( pMasterUser - > GetCharacterDBID ( ) = = pPacket - > CharacterDBIDList [ i ] )
{
bCheck = true ;
break ;
}
}
if ( bCheck = = true )
iRet = ERROR_NONE ;
else
iRet = ERROR_MASTERSYSTEM_RECALL_FAILED ;
}
else
iRet = ERROR_MASTERSYSTEM_RECALL_CANTSTATUS ;
}
SendMasterSystemRecallMaster ( iRet , pPacket - > uiPupilAccountDBID , pPacket - > wszMasterCharName , false ) ;
if ( iRet = = ERROR_NONE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pMasterUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendMasterSystemRecallMaster ( ERROR_NONE , pMasterUser - > GetAccountDBID ( ) , pPacket - > wszPupilCharName , true ) ;
}
break ;
}
case VIMA_MASTERSYSTEM_BREAKINTO :
{
MasterSystem : : VIMABreakInto * pPacket = reinterpret_cast < MasterSystem : : VIMABreakInto * > ( pData ) ;
CDNUser * pMasterUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiMasterAccountDBID ) ;
if ( pMasterUser = = NULL )
break ;
CDNUser * pPupilUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszPupilCharName ) ;
if ( pPupilUser = = NULL )
break ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ˻<EFBFBD>
bool bCheck = false ;
for ( UINT i = 0 ; i < pPacket - > cCharacterDBIDCount ; + + i )
{
if ( pPupilUser - > GetCharacterDBID ( ) = = pPacket - > CharacterDBIDList [ i ] )
{
bCheck = true ;
break ;
}
}
if ( bCheck = = false )
{
_DANGER_POINT ( ) ;
break ;
}
if ( pPacket - > iRet ! = ERROR_NONE )
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pPupilUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
pVillageCon - > SendMasterSystemRecallMaster ( pPacket - > iRet , pPupilUser - > GetAccountDBID ( ) , pMasterUser - > GetCharacterName ( ) , false ) ;
}
else
{
if ( pPupilUser - > GetUserState ( ) = = STATE_VILLAGE )
{
const TChannelInfo * pChannelInfo = g_pDivisionManager - > GetChannelInfo ( pPupilUser - > GetVillageID ( ) , pPupilUser - > GetChannelID ( ) ) ;
if ( pChannelInfo = = NULL )
{
_DANGER_POINT ( ) ;
break ;
}
// PvP <20> κ<EFBFBD> <CEBA> δ<EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD>
if ( pChannelInfo - > nAttribute & GlobalEnum : : CHANNEL_ATT_PVPLOBBY )
break ;
# if defined(PRE_ADD_MULTILANGUAGE)
SendVillageTrace ( pPupilUser , pMasterUser - > GetAccountDBID ( ) , false , pMasterUser - > m_eSelectedLanguage ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
SendVillageTrace ( pPupilUser , pMasterUser - > GetAccountDBID ( ) , false , 0 ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
break ;
}
}
break ;
}
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
case VIMA_SYNC_SYSTEMMAIL :
{
VIMASyncSystemMail * pPacket = reinterpret_cast < VIMASyncSystemMail * > ( pData ) ;
g_pDivisionManager - > SyncSystemMail ( pPacket ) ;
break ;
}
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
case VIMA_NOTICE :
{
VIMANotice * pPacket = ( VIMANotice * ) pData ;
WCHAR wszChatMsg [ CHATLENMAX ] = { 0 , } ;
_wcscpy ( wszChatMsg , CHATLENMAX , pPacket - > szMsg , pPacket - > nLen ) ;
g_pDivisionManager - > Notice ( wszChatMsg , pPacket - > nLen , 0 ) ;
return ERROR_NONE ;
}
break ;
case VIMA_ZONENOTICE :
{
VIMAZoneNotice * pPacket = ( VIMAZoneNotice * ) pData ;
WCHAR wszChatMsg [ CHATLENMAX ] = { 0 , } ;
_wcscpy ( wszChatMsg , CHATLENMAX , pPacket - > szMsg , pPacket - > nLen ) ;
g_pDivisionManager - > NoticeZone ( pPacket - > nMapIndex , wszChatMsg , pPacket - > nLen , 0 ) ;
return ERROR_NONE ;
}
break ;
case VIMA_NOTIFYMAIL :
{
VIMANotifyMail * pMail = ( VIMANotifyMail * ) pData ;
g_pDivisionManager - > SendNotifyMail ( pMail - > nToAccountDBID , pMail - > biToCharacterDBID , pMail - > wTotalMailCount , pMail - > wNotReadMailCount , pMail - > w7DaysLeftMailCount , pMail - > bNewMail ) ;
}
break ;
case VIMA_NOTIFYMARKET :
{
VIMANotifyMarket * pMarket = ( VIMANotifyMarket * ) pData ;
g_pDivisionManager - > SendNotifyMarket ( pMarket - > nSellerAccountDBID , pMarket - > biSellerCharacterDBID , pMarket - > nItemID , pMarket - > wCalculationCount ) ;
}
break ;
case VIMA_NOTIFYGIFT :
{
VIMANotifyGift * pGift = ( VIMANotifyGift * ) pData ;
g_pDivisionManager - > SendNotifyGift ( pGift - > nToAccountDBID , pGift - > biToCharacterDBID , pGift - > bNew , pGift - > nGiftCount ) ;
}
break ;
case VIMA_TRACEBREAKINTO :
{
VIMATraceBreakInto * pPacket = reinterpret_cast < VIMATraceBreakInto * > ( pData ) ;
CDNUser * pTargetUser = NULL ;
switch ( pPacket - > nType )
{
case TRACE_CHARACTERNAME :
{
pTargetUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszParam ) ;
break ;
}
case TRACE_ACCOUNTDBID :
{
pTargetUser = g_pDivisionManager - > GetUserByAccountDBID ( _wtoi ( pPacket - > wszParam ) ) ;
break ;
}
case TRACE_CHRACTERDBID :
{
pTargetUser = g_pDivisionManager - > GetUserByCharacterDBID ( _wtoi64 ( pPacket - > wszParam ) ) ;
break ;
}
}
if ( ! pTargetUser )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> ã<> <C3A3> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 , pPacket - > cCallerSelectedLang ) ) % pPacket - > wszParam ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 ) ) % pPacket - > wszParam ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
if ( pTargetUser - > GetUserState ( ) = = STATE_VILLAGE )
{
const TChannelInfo * pChannelInfo = g_pDivisionManager - > GetChannelInfo ( pTargetUser - > GetVillageID ( ) , pTargetUser - > GetChannelID ( ) ) ;
do
{
if ( ! pChannelInfo )
break ;
if ( pChannelInfo - > nAttribute & GlobalEnum : : CHANNEL_ATT_PVPLOBBY )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> <20> ݷμ<DDB7> <CEBC> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ǿ<EFBFBD> <20> ־ <20> <> <EFBFBD> <EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4419 , pPacket - > cCallerSelectedLang ) ) % pPacket - > wszParam ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4419 ) ) % pPacket - > wszParam ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
# if defined(PRE_ADD_MULTILANGUAGE)
SendVillageTrace ( pTargetUser , pPacket - > uiAccountDBID , true , pPacket - > cCallerSelectedLang ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
SendVillageTrace ( pTargetUser , pPacket - > uiAccountDBID , true , 0 ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
return ERROR_NONE ;
} while ( false ) ;
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͽ<EFBFBD> <CFBF> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4420 , pPacket - > cCallerSelectedLang ) ) % pPacket - > wszParam ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4420 ) ) % pPacket - > wszParam ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
if ( pTargetUser - > GetUserState ( ) ! = STATE_GAME )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> ʾ <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4421 , pPacket - > cCallerSelectedLang ) ) % pPacket - > wszParam ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4421 ) ) % pPacket - > wszParam ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( ! pUser )
return ERROR_GENERIC_INVALIDREQUEST ;
// PvP <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <EFBFBD> <EEBFB5> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EEB0A1> <20> Ѵ <EFBFBD> .
if ( pTargetUser - > GetPvPIndex ( ) > 0 )
{
CDNPvP * pPvP = g_pDivisionManager - > GetPvPRoomByIdx ( pTargetUser - > GetPvPIndex ( ) ) ;
if ( ! pPvP )
return ERROR_GENERIC_INVALIDREQUEST ;
SendPvPRoomInfo ( pUser , pPvP ) ;
pUser - > SetPvPTeam ( PvPCommon : : Team : : Observer ) ;
}
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pTargetUser - > GetGameID ( ) ) ;
if ( pGameCon )
{
pGameCon - > SendBreakintoRoom ( pTargetUser - > m_nRoomID , pUser , BreakInto : : Type : : GMTrace ) ;
}
return ERROR_NONE ;
}
case VIMA_REQRECALL :
{
VIMAReqRecall * pPacket = reinterpret_cast < VIMAReqRecall * > ( pData ) ;
# if defined(PRE_ADD_MULTILANGUAGE)
MultiLanguage : : SupportLanguage : : eSupportLanguage eCode = static_cast < MultiLanguage : : SupportLanguage : : eSupportLanguage > ( pPacket - > cCallerSelectedLang ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
CDNUser * pRecallUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszCharacterName ) ;
if ( ! pRecallUser )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> ã<> <C3A3> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 , eCode ) ) % pPacket - > wszCharacterName ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 ) ) % pPacket - > wszCharacterName ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
eUserState eTargetUserState = pRecallUser - > GetUserState ( ) ;
switch ( pRecallUser - > GetUserState ( ) )
{
case STATE_VILLAGE :
{
if ( pRecallUser - > GetPvPIndex ( ) > 0 )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> PvP <20> 濡 <20> ־ <20> <> ȯ<EFBFBD> <C8AF> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4423 , eCode ) ) % pPacket - > wszCharacterName ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4423 ) ) % pPacket - > wszCharacterName ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pRecallUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
{
pVillageCon - > SendResRecall ( pRecallUser , pPacket ) ;
return ERROR_NONE ;
}
break ;
}
case STATE_GAME :
{
if ( pRecallUser - > GetPvPIndex ( ) > 0 )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> PvP <20> <> <EFBFBD> ӹ濡 <20> ־ <20> <> ȯ<EFBFBD> <C8AF> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4423 , eCode ) ) % pPacket - > wszCharacterName ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4423 ) ) % pPacket - > wszCharacterName ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
const TChannelInfo * pChannelInfo = g_pDivisionManager - > GetChannelInfo ( pPacket - > uiRecallChannelID ) ;
if ( ! pChannelInfo )
break ;
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pRecallUser - > GetGameID ( ) ) ;
if ( pGameCon )
{
pGameCon - > SendResRecall ( pRecallUser , pPacket , pChannelInfo - > nMapIdx ) ;
return ERROR_NONE ;
}
break ;
}
default :
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> <20> <> ȯ<EFBFBD> <C8AF> <20> <> <20> <> <20> <> <EFBFBD> <EFBFBD> State(%d) <20> Դϴ<D4B4> .") % pPacket->wszCharacterName % static_cast<int>(pRecallUser->GetUserState()) );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4417 , eCode ) ) % pPacket - > wszCharacterName % static_cast < int > ( pRecallUser - > GetUserState ( ) ) ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4417 ) ) % pPacket - > wszCharacterName % static_cast < int > ( pRecallUser - > GetUserState ( ) ) ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
}
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <20> <> ȯ<EFBFBD> <C8AF> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ͽ<EFBFBD> <CFBF> <EFBFBD> <EFBFBD> ϴ<EFBFBD> . <20> <> <20> <EFBFBD> <DEBC> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <20> Ǵ<EFBFBD> <20> <> <EFBFBD> 쿡<EFBFBD> <ECBFA1> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڿ<EFBFBD> <DABF> <EFBFBD> <20> <> <EFBFBD> ǹٶ<C7B9> <D9B6> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4425 , eCode ) ) % pPacket - > wszCharacterName ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4425 ) ) % pPacket - > wszCharacterName ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
case VIMA_BANUSER :
{
VIMABanUser * pPacket = ( VIMABanUser * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszCharacterName ) ;
if ( ! pUser )
{
//std::wstring wString = boost::io::str( boost::wformat( L"%s <20> <> <EFBFBD> <EFBFBD> ã<> <C3A3> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> .") % pPacket->wszCharacterName );
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 , pPacket - > cSelectedLang ) ) % pPacket - > wszCharacterName ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 ) ) % pPacket - > wszCharacterName ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > nAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
g_pDivisionManager - > SendDetachUser ( pUser - > GetAccountDBID ( ) ) ;
return ERROR_NONE ;
}
case VIMA_DESTROYPVP :
{
VIMADestroyPvP * pPacket = ( VIMADestroyPvP * ) pData ;
bool bRet = false ;
if ( g_pDivisionManager )
bRet = g_pDivisionManager - > ForceStopPvP ( pPacket - > nPvPIndex , pPacket - > wszGuildName ) ;
if ( bRet = = false )
{
//<2F> ˸ <EFBFBD> ó<EFBFBD> <C3B3>
std : : wstring wString = boost : : io : : str ( boost : : wformat ( L " [%d] PvPRoom<6F> <6D> <20> ı <EFBFBD> <C4B1> ϴµ<CFB4> <20> <> <EFBFBD> <EFBFBD> <20> Ͽ<EFBFBD> <CFBF> <EFBFBD> <EFBFBD> ϴ<EFBFBD> . " ) % pPacket - > nPvPIndex ) ;
SendChat ( CHATTYPE_GM , pPacket - > nAccountDBID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
}
return ERROR_NONE ;
}
case VIMA_UPDATECHANNELSHOWINFO :
{
VIMAUpdateChannelShowInfo * pPacket = reinterpret_cast < VIMAUpdateChannelShowInfo * > ( pData ) ;
TChannelInfo * pChannelInfo = const_cast < TChannelInfo * > ( g_pDivisionManager - > GetChannelInfo ( pPacket - > unChannelID ) ) ;
if ( pChannelInfo )
{
pChannelInfo - > bShow = pPacket - > bShow ;
pChannelInfo - > nServerID = pPacket - > nServerID ;
pChannelInfo - > cThreadID = pPacket - > cThreadID ;
}
g_pDivisionManager - > SendVillageChannelShowInfo ( pPacket - > unChannelID , pPacket - > bShow ) ;
return ERROR_NONE ;
}
case VIMA_PCBANGRESULT :
{
VIMAPCBangResult * pResult = ( VIMAPCBangResult * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pResult - > nAccountDBID ) ;
if ( ! pUser )
{
SendPCBangResult ( pResult - > nAccountDBID , NULL ) ;
return ERROR_NONE ;
}
SendPCBangResult ( pResult - > nAccountDBID , pUser ) ;
}
break ;
case VIMA_FARMLIST :
{
VIMAFarmList * pPacket = ( VIMAFarmList * ) pData ;
//<2F> <> <EFBFBD> ⼭ <20> <> <EFBFBD> 嵥<EFBFBD> <E5B5A5> Ÿ<EFBFBD> <C5B8> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ϰ<EFBFBD> <CFB0> <EFBFBD>
# if defined( _TH ) || defined( _WORK )
g_Log . Log ( LogType : : _FARM , g_Config . nWorldSetID , 0 , 0 , 0 , L " VIMA_FARMLIST Farm Count:%d \r \n " , pPacket - > cCount ) ;
# endif
# ifdef PRE_MOD_OPERATINGFARM
for ( int i = 0 ; i < pPacket - > cCount ; i + + )
g_pDivisionManager - > CreateFarm ( pPacket - > Farms [ i ] , 0 ) ;
# else //#ifdef PRE_MOD_OPERATINGFARM
for ( int i = 0 ; i < pPacket - > cCount ; i + + )
g_pDivisionManager - > CreateFarm ( pPacket - > Farms [ i ] ) ;
# endif //#ifdef PRE_MOD_OPERATINGFARM
}
break ;
case VIMA_SAVE_USERTEMPDATA :
{
VIMASaveUserTempData * pPacket = ( VIMASaveUserTempData * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( pUser )
{
pUser - > SetDungeonClearCount ( pPacket - > nDungeonClearCount ) ;
# if defined(PRE_ADD_REMOTE_QUEST)
pUser - > SetAcceptWaitRemoteQuest ( pPacket - > nAcceptWaitRemoteQuestCount , pPacket - > AcceptWaitRemoteQuestList ) ;
# endif
# if defined(PRE_ADD_GAMEQUIT_REWARD)
pUser - > SetUserGameQuitRewardType ( pPacket - > eUserGameQuitRewardType ) ;
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
}
}
break ;
case VIMA_LOAD_USERTEMPDATA :
{
VIMALoadUserTempData * pPacket = ( VIMALoadUserTempData * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByAccountDBID ( pPacket - > uiAccountDBID ) ;
if ( pUser )
{
# if defined(PRE_ADD_REMOTE_QUEST)
SendUserTempDataResult ( pPacket - > uiAccountDBID , pUser ) ;
# else
# if defined(PRE_ADD_GAMEQUIT_REWARD)
SendUserTempDataResult ( pPacket - > uiAccountDBID , pUser - > GetDungeonClearCount ( ) , pUser - > GetUserGameQuitRewardType ( ) ) ;
# else // #if defined(PRE_ADD_GAMEQUIT_REWARD)
SendUserTempDataResult ( pPacket - > uiAccountDBID , pUser - > GetDungeonClearCount ( ) ) ;
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
# endif //#if defined(PRE_ADD_REMOTE_QUEST)
}
}
break ;
case VIMA_DUPLICATE_LOGIN :
{
VIMADuplicateLogin * pPacket = ( VIMADuplicateLogin * ) pData ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̸<EFBFBD> <20> α <EFBFBD> <CEB1> ο <EFBFBD> ResetAuthȣ <68> <C8A3> <EFBFBD> ϶<EFBFBD> <CFB6> <EFBFBD> <20> ˸ <EFBFBD>
if ( ! pPacket - > bIsDetach )
{
CDNLoginConnection * pLoginConnection = g_pDivisionManager - > GetFirstEnableLoginServer ( ) ;
if ( pLoginConnection )
{
pLoginConnection - > SendDuplicateLogin ( pPacket - > nAccountDBID , pPacket - > nSessionID ) ;
g_Log . Log ( LogType : : _FILEDBLOG , g_Config . nWorldSetID , pPacket - > nAccountDBID , 0 , pPacket - > nSessionID , L " [ADBID:%u] VIMA_DUPLICATE_LOGIN \r \n " , pPacket - > nAccountDBID ) ;
}
}
}
break ;
case VIMA_UPPDATE_WORLDEVENTCOUNTER :
{
MAUpdateWorldEventCounter * pPacket = ( MAUpdateWorldEventCounter * ) pData ;
g_pDivisionManager - > SendUpdateWorldEventCounter ( pPacket ) ;
}
break ;
case VIMA_CHECK_LASTDUNGEONINFO :
{
VIMACheckLastDungeonInfo * pPacket = reinterpret_cast < VIMACheckLastDungeonInfo * > ( pData ) ;
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByManagedID ( pPacket - > iManagedID ) ;
if ( pGameCon )
{
pGameCon - > SendCheckLastDungeonInfo ( g_Config . nWorldSetID , pPacket ) ;
}
else
{
SendCheckLastDungeonInfo ( pPacket - > uiAccountDBID , pPacket - > biCharacterDBID , false , NULL ) ;
}
break ;
}
case VIMA_CONFIRM_LASTDUNGEONINFO :
{
VIMAConfirmLastDungeonInfo * pPacket = reinterpret_cast < VIMAConfirmLastDungeonInfo * > ( pData ) ;
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByManagedID ( pPacket - > iManagedID ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biCharacterDBID ) ;
if ( pUser = = NULL )
break ;
# if defined( PRE_PARTY_DB )
switch ( pPacket - > BreakIntoType )
{
case BreakInto : : Type : : PartyRestore :
{
if ( pPacket - > bIsOK = = false )
{
if ( pGameCon )
pGameCon - > SendDeleteBackupDungeonInfo ( pPacket - > uiAccountDBID , pPacket - > biCharacterDBID , pPacket - > iRoomID ) ;
break ;
}
if ( pGameCon )
{
pGameCon - > SendBreakintoRoom ( pPacket - > iRoomID , pUser , pPacket - > BreakIntoType ) ;
}
else
{
SendConfirmLastDungeonInfo ( ERROR_CANT_EXSIT_BACKUPPARTYINFO , pPacket - > uiAccountDBID , pPacket - > BreakIntoType ) ;
}
break ;
}
case BreakInto : : Type : : PartyJoin :
{
if ( pGameCon )
{
pGameCon - > SendBreakintoRoom ( pPacket - > iRoomID , pUser , pPacket - > BreakIntoType ) ;
}
else
{
SendConfirmLastDungeonInfo ( ERROR_PARTY_JOINFAIL , pPacket - > uiAccountDBID , pPacket - > BreakIntoType ) ;
}
break ;
}
default :
{
_DANGER_POINT ( ) ;
return ERROR_GENERIC_UNKNOWNERROR ;
}
}
# else
if ( pPacket - > bIsOK = = false )
{
if ( pGameCon )
pGameCon - > SendDeleteBackupDungeonInfo ( pPacket - > uiAccountDBID , pPacket - > biCharacterDBID , pPacket - > iRoomID ) ;
break ;
}
if ( pGameCon )
{
pGameCon - > SendBreakintoRoom ( pPacket - > iRoomID , pUser , BreakInto : : Type : : PartyRestore ) ;
}
else
{
SendConfirmLastDungeonInfo ( ERROR_CANT_EXSIT_BACKUPPARTYINFO , pPacket - > uiAccountDBID ) ;
}
# endif // #if defined( PRE_PARTY_DB )
break ;
}
# if defined (PRE_ADD_BESTFRIEND)
case VIMA_SEARCH_BESTFRIEND :
{
MASearchBestFriend * pPacket = ( MASearchBestFriend * ) pData ;
if ( g_pDivisionManager - > SendSearchBestFriend ( reinterpret_cast < MASearchBestFriend * > ( pPacket ) ) = = false )
{
MASearchBestFriend Packet ;
memset ( & Packet , 0x00 , sizeof ( Packet ) ) ;
Packet . nAccountDBID = pPacket - > nAccountDBID ;
_wcscpy ( Packet . wszName , _countof ( Packet . wszName ) , pPacket - > wszName , _countof ( Packet . wszName ) ) ;
Packet . nRet = ERROR_BESTFRIEND_NOTSEARCH ;
SendSearchBestFriend ( & Packet ) ;
}
}
break ;
case VIMA_REGIST_BESTFRIEND :
{
MARegistBestFriend * pPacket = ( MARegistBestFriend * ) pData ;
if ( g_pDivisionManager - > SendRegistBestFriend ( reinterpret_cast < MARegistBestFriend * > ( pPacket ) ) = = false )
{
MARegistBestFriendResult Packet ;
memset ( & Packet , 0x00 , sizeof ( Packet ) ) ;
Packet . nAccountDBID = pPacket - > nAccountDBID ;
Packet . nRet = ERROR_BESTFRIEND_REGISTFAIL_DESTUSER_SITUATION_NOTALLOWED ;
SendRegistBestFriendResult ( & Packet ) ;
}
}
break ;
case VIMA_RETREGIST_BESTFRIEND :
{
g_pDivisionManager - > SendRegistBestFriendResult ( reinterpret_cast < MARegistBestFriendResult * > ( pData ) ) ;
}
break ;
case VIMA_COMPLETE_BESTFRIEND :
{
g_pDivisionManager - > SendCompleteBestFriend ( reinterpret_cast < MACompleteBestFriend * > ( pData ) ) ;
}
break ;
case VIMA_EDIT_BESTFRIENDMEMO :
{
g_pDivisionManager - > SendEditBestFriendMemo ( reinterpret_cast < MAEditBestFriendMemo * > ( pData ) ) ;
}
break ;
case VIMA_CANCEL_BESTFRIEND :
{
g_pDivisionManager - > SendCancelBestFriend ( reinterpret_cast < MACancelBestFriend * > ( pData ) ) ;
}
break ;
case VIMA_CLOSE_BESTFRIEND :
{
g_pDivisionManager - > SendCloseBestFriend ( reinterpret_cast < MACloseBestFriend * > ( pData ) ) ;
}
break ;
case VIMA_LEVELUP_BESTFRIEND :
{
g_pDivisionManager - > SendLevelBestFriend ( reinterpret_cast < MALevelUpBestFriend * > ( pData ) ) ;
}
break ;
# endif // #if defined (PRE_ADD_BESTFRIEND)
# if defined(PRE_ADD_QUICK_PVP)
case VIMA_MAKEQUICKPVP_ROOM :
{
VIMAMakeQuickPvPRoom * pPacket = ( VIMAMakeQuickPvPRoom * ) pData ;
int nRet = g_pDivisionManager - > MakeQuickPvPRoom ( pPacket - > uiMasterAccountDBID , pPacket - > uiSlaveAccountDBID ) ;
SendMakeQuickPvPRoom ( nRet , pPacket - > uiMasterAccountDBID , pPacket - > uiSlaveAccountDBID ) ;
}
break ;
# endif
# if defined( PRE_WORLDCOMBINE_PARTY )
case VIMA_GET_WORLDPARTYMEMBER :
{
int nRet = g_pDivisionManager - > GetWorldPartyMember ( reinterpret_cast < MAGetWorldPartyMember * > ( pData ) ) ;
if ( nRet ! = ERROR_NONE )
{
MAGetWorldPartyMember * pPacket = ( MAGetWorldPartyMember * ) pData ;
GAMASendWorldPartyMember Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . nAccountDBID = pPacket - > nAccountDBID ;
Packet . biCharacterDBID = pPacket - > biCharacterDBID ;
Packet . nRetCode = nRet ;
SendWorldPartyMember ( & Packet ) ;
}
}
break ;
# endif // #if defined( PRE_WORLDCOMBINE_PARTY )
# if defined( PRE_PRIVATECHAT_CHANNEL )
case VIMA_PRIVATECHATCHANNEL_ADD :
{
int nRet = g_pDivisionManager - > AddPrivateChatChannel ( reinterpret_cast < MAAddPrivateChannel * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MEMBERADD :
{
int nRet = g_pDivisionManager - > AddPrivateChatChannelMember ( reinterpret_cast < MAAddPrivateChannelMember * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MEMBERINVITE :
{
int nRet = g_pDivisionManager - > InvitePrivateChatChannelMember ( reinterpret_cast < MAInvitePrivateChannelMember * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MEMBERINVITERESULT :
{
int nRet = g_pDivisionManager - > InviteResultPrivateChatChannelMember ( reinterpret_cast < MAInvitePrivateChannelMemberResult * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MEMBERDEL :
{
int nRet = g_pDivisionManager - > DelPrivateChatChannelMember ( reinterpret_cast < MADelPrivateChannelMember * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MOD :
{
int nRet = g_pDivisionManager - > ModPrivateChatChannel ( reinterpret_cast < MAModPrivateChannel * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MEMBERKICKRESULT :
{
int nRet = g_pDivisionManager - > KickPrivateChatChannelMemberResult ( reinterpret_cast < MAKickPrivateChannelMemberResult * > ( pData ) ) ;
}
break ;
case VIMA_PRIVATECHATCHANNEL_MODMEMBERNAME :
{
int nRet = g_pDivisionManager - > ModPrivateChatChannelMemberName ( reinterpret_cast < MAModPrivateChannelMemberName * > ( pData ) ) ;
}
break ;
# endif
# if defined( PRE_WORLDCOMBINE_PVP )
case VIMA_WORLDPVP_REQGAMEID :
{
VIMACreateWorldPvPRoom * pPacket = reinterpret_cast < VIMACreateWorldPvPRoom * > ( pData ) ;
if ( g_pDivisionManager - > RequestGameRoom ( pPacket , m_cVillageID ) = = false )
{
GAMASetRoomID TempPacket ;
memset ( & TempPacket , 0 , sizeof ( TempPacket ) ) ;
SendSetGameID ( GameTaskType : : PvP , REQINFO_TYPE_PVP , pPacket - > nRoomIndex , 0 , 0 , 0 , 0 , 0 , 0 , 0 , GetVillageID ( ) , - 1 , _NORMAL_PARTY , pPacket - > Data . eWorldReqType ) ;
}
return ERROR_NONE ;
}
break ;
case VIMA_WORLDPVP_BREAKINTO :
{
VIMAWorldPvPRoomBreakInto * pPacket = reinterpret_cast < VIMAWorldPvPRoomBreakInto * > ( pData ) ;
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByManagedID ( pPacket - > nManagedID ) ;
CDNUser * pUser = g_pDivisionManager - > GetUserByCharacterDBID ( pPacket - > biCharacterDBID ) ;
if ( pUser = = NULL )
break ;
switch ( pPacket - > BreakIntoType )
{
case BreakInto : : Type : : WorldPvPRoom :
{
if ( pGameCon )
{
UINT uiUserState = pUser - > GetPvPUserState ( ) | PvPCommon : : UserState : : Syncing ;
pUser - > SetPvPUserState ( uiUserState ) ;
if ( ! pPacket - > bPvPLobby )
pUser - > SetPvPVillageInfo ( ) ;
pUser - > SetPvPIndex ( 0 ) ;
pUser - > SetPvPTeam ( pPacket - > uiTeam ) ;
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( m_cVillageID ) ;
if ( pVillageCon )
pVillageCon - > SendPvPChangeUserState ( g_pDivisionManager - > GetPvPLobbyChannelID ( ) , pPacket - > nRoomIndex , pUser - > GetAccountDBID ( ) , uiUserState ) ;
pGameCon - > SendBreakintoRoom ( pPacket - > nRoomID , pUser , pPacket - > BreakIntoType , pPacket - > uiTeam ) ;
}
else
{
MAWorldPvPRoomJoinResult Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . nRet = ERROR_PVP_JOINROOM_NOTFOUNDROOM ;
Packet . uiAccountDBID = pPacket - > uiAccountDBID ;
SendWorldPvPRoomJoinResult ( & Packet ) ;
}
break ;
}
default :
{
_DANGER_POINT ( ) ;
return ERROR_GENERIC_UNKNOWNERROR ;
}
}
}
break ;
# endif
# if defined(PRE_ADD_MUTE_USERCHATTING)
case VIMA_MUTE_USERFIND :
{
MAMuteUserFind * pPacket = ( MAMuteUserFind * ) pData ;
CDNUser * pUser = g_pDivisionManager - > GetUserByName ( pPacket - > wszMuteUserName ) ;
if ( pUser )
{
MAMuteUserChat RestraintData ;
memset ( & RestraintData , 0 , sizeof ( RestraintData ) ) ;
RestraintData . uiGmAccountID = pPacket - > uiGmAccountID ;
RestraintData . nMuteMinute = pPacket - > nMuteMinute ;
RestraintData . uiMuteUserAccountID = pUser - > GetAccountDBID ( ) ;
switch ( pUser - > GetUserState ( ) )
{
case STATE_VILLAGE :
{
CDNVillageConnection * pVillageCon = g_pDivisionManager - > GetVillageConnectionByVillageID ( pUser - > GetVillageID ( ) ) ;
if ( pVillageCon )
{
pVillageCon - > SendMuteUserChatting ( & RestraintData ) ;
return ERROR_NONE ;
}
}
break ;
case STATE_GAME :
{
CDNGameConnection * pGameCon = g_pDivisionManager - > GetGameConnectionByGameID ( pUser - > GetGameID ( ) ) ;
if ( pGameCon )
{
pGameCon - > SendMuteUserChatting ( & RestraintData ) ;
return ERROR_NONE ;
}
}
break ;
}
}
# if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 , pPacket - > cSelectedLanguage ) ) % pPacket - > wszMuteUserName ) ;
# else //#if defined(PRE_ADD_MULTILANGUAGE)
std : : wstring wString = boost : : io : : str ( boost : : wformat ( GetEtUIXML ( ) . GetUIString ( CEtUIXML : : idCategory1 , 4418 ) ) % pPacket - > wszMuteUserName ) ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
SendChat ( CHATTYPE_GM , pPacket - > uiGmAccountID , L " " , wString . c_str ( ) , static_cast < short > ( wString . size ( ) ) ) ;
return ERROR_NONE ;
}
# endif // #if defined(PRE_ADD_MUTE_USERCHATTING)
# if defined( PRE_ALTEIAWORLD_EXPLORE )
case VIMA_ALTEIAWORLD_SENDTICKET :
{
MAAlteiaWorldSendTicket * pPacket = ( MAAlteiaWorldSendTicket * ) pData ;
int nRet = g_pDivisionManager - > AlteiaSendTicket ( pPacket ) ;
if ( nRet ! = ERROR_NONE )
{
MAAlteiaWorldSendTicketResult Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . nRetCode = nRet ;
Packet . biSendCharacterDBID = pPacket - > biSendCharacterDBID ;
g_pDivisionManager - > AlteiaSendTicketResult ( & Packet ) ;
}
}
break ;
case VIMA_ALTEIAWORLD_SENDTICKET_RESULT :
{
g_pDivisionManager - > AlteiaSendTicketResult ( reinterpret_cast < MAAlteiaWorldSendTicketResult * > ( pData ) ) ;
}
break ;
# endif
# if defined(PRE_ADD_CHNC2C)
case VIMA_C2C_CHAR_COINBALANCE :
{
MAC2CGetCoinBalanceResult * pPacket = ( MAC2CGetCoinBalanceResult * ) pData ;
if ( g_pDnC2C )
g_pDnC2C - > SendGetBalance ( pPacket - > nRetCode , pPacket - > biCoinBalance , pPacket - > szSeqID ) ;
}
break ;
case VIMA_C2C_CHAR_ADDCOIN :
{
MAC2CAddCoinResult * pPacket = ( MAC2CAddCoinResult * ) pData ;
if ( g_pDnC2C )
g_pDnC2C - > SendAddCoin ( pPacket - > nRetCode , pPacket - > szSeqID ) ;
}
break ;
case VIMA_C2C_CHAR_REDUCECOIN :
{
MAC2CReduceCoinResult * pPacket = ( MAC2CReduceCoinResult * ) pData ;
if ( g_pDnC2C )
g_pDnC2C - > SendReduceCoin ( pPacket - > nRetCode , pPacket - > szSeqID ) ;
}
break ;
# endif //#if defined(PRE_ADD_CHNC2C)
# if defined( PRE_DRAGONBUFF )
case VIMA_APPLY_WORLDBUFF :
{
g_pDivisionManager - > SendApplyWorldBuff ( reinterpret_cast < MAApplyWorldBuff * > ( pData ) ) ;
}
break ;
# endif
# if defined(PRE_ADD_DWC)
case VIMA_INVITE_DWCTEAMMEMB :
{
MAInviteDWCTeamMember * pPacket = ( MAInviteDWCTeamMember * ) pData ;
if ( g_pDivisionManager - > SendInviteDWCTeamMember ( pPacket ) = = false )
{
SendInviteDWCTeamMemberAck ( pPacket - > nAccountDBID , ERROR_DWC_NOT_DWC_CHARACTER ) ;
}
}
break ;
case VIMA_INVITE_DWCTEAMMEMB_ACK :
{
g_pDivisionManager - > SendInviteDWCTeamMemberAck ( reinterpret_cast < MAInviteDWCTeamMemberAck * > ( pData ) ) ;
}
break ;
case VIMA_ADD_DWCTEAMMEMB :
{
g_pDivisionManager - > _RecvAddDWCTeamMember ( reinterpret_cast < MAAddDWCTeamMember * > ( pData ) ) ;
}
break ;
case VIMA_DEL_DWCTEAMMEMB :
{
g_pDivisionManager - > _RecvLeaveDWCTeamMember ( reinterpret_cast < MALeaveDWCTeamMember * > ( pData ) ) ;
}
break ;
case VIMA_DISMISS_DWCTEAM :
{
g_pDivisionManager - > _RecvDismissDWCTeam ( reinterpret_cast < MADismissDWCTeam * > ( pData ) ) ;
}
break ;
case VIMA_CHANGE_DWCTEAMMEMB_STATE :
{
g_pDivisionManager - > SendChangeDWCTeamMemberState ( reinterpret_cast < MAChangeDWCTeamMemberState * > ( pData ) ) ;
}
break ;
case VIMA_DWC_TEAMMEMBERLIST :
{
g_pDivisionManager - > SetDWCTeamMemberList ( reinterpret_cast < VIMADWCTeamMemberList * > ( pData ) ) ;
}
break ;
case VIMA_DWC_TEAMCHAT :
{
g_pDivisionManager - > SendDWCTeamChat ( reinterpret_cast < MADWCTeamChat * > ( pData ) ) ;
}
break ;
# endif
# if defined( PRE_PVP_GAMBLEROOM )
case VIMA_GAMBLE_CREATEROOMFLAG :
{
MACreateGambleRoom * pPacket = ( MACreateGambleRoom * ) pData ;
g_pDivisionManager - > SetGambleRoomFlag ( pPacket - > bFlag ) ;
}
break ;
case VIMA_GAMBLE_DELETEROOM :
{
MADelGambleRoom * pPacket = ( MADelGambleRoom * ) pData ;
g_pDivisionManager - > DeletePvPGambleRoom ( ) ;
}
break ;
# endif
}
return ERROR_UNKNOWN_HEADER ;
}
//channel
int CDNVillageConnection : : GetMapIdxbyChannel ( int nChannelID )
{
std : : vector < TChannelInfo > : : iterator ii ;
for ( ii = m_VillageChannelInfo . vOwnedChannelList . begin ( ) ; ii ! = m_VillageChannelInfo . vOwnedChannelList . end ( ) ; ii + + )
if ( ( * ii ) . nChannelID = = nChannelID )
return ( * ii ) . nMapIdx ;
return - 1 ;
}
bool CDNVillageConnection : : HasManagedMapIdx ( int nMapIdx )
{
std : : vector < TChannelInfo > : : iterator ii ;
for ( ii = m_VillageChannelInfo . vOwnedChannelList . begin ( ) ; ii ! = m_VillageChannelInfo . vOwnedChannelList . end ( ) ; ii + + )
if ( ( * ii ) . nMapIdx = = nMapIdx )
return true ;
return false ;
}
# ifdef _WORK
//For _WORK
void CDNVillageConnection : : SendReloadExt ( )
{
AddSendData ( MAVI_RELOADEXT , 0 , NULL , 0 ) ;
}
# endif //#ifdef _WORK
//Village -> Master Connection Flow
void CDNVillageConnection : : SendRegistWorldID ( )
{
MARegist Regist = { 0 , } ;
Regist . cWorldSetID = g_Config . nWorldSetID ;
AddSendData ( MAVI_REGISTWORLDINFO , 0 , ( char * ) & Regist , sizeof ( MARegist ) ) ;
}
void CDNVillageConnection : : SendReqUserList ( short nRetCode )
{
MAReqUserList packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . nRetCode = nRetCode ;
AddSendData ( MAVI_REQUSERLIST , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendVillageRegistComplete ( )
{
AddSendData ( MAVI_REGISTCOMPLETE , 0 , NULL , 0 ) ;
}
//Village ServerInfo Syncro
void CDNVillageConnection : : SendVillageInfo ( std : : vector < TVillageInfo > * vList )
{
std : : vector < TVillageInfo > : : iterator ii ;
for ( ii = vList - > begin ( ) ; ii ! = vList - > end ( ) ; ii + + )
{
MAVIVillageInfo packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . nVillageID = ( * ii ) . cVillageID ;
for ( int j = 0 ; j < ( int ) ( * ii ) . vOwnedChannelList . size ( ) ; j + + )
{
packet . Info [ packet . cCount ] . nChannelID = ( * ii ) . vOwnedChannelList [ j ] . nChannelID ;
packet . Info [ packet . cCount ] . nChannelIdx = ( * ii ) . vOwnedChannelList [ j ] . nChannelIdx ;
packet . Info [ packet . cCount ] . nMapIdx = ( * ii ) . vOwnedChannelList [ j ] . nMapIdx ;
packet . Info [ packet . cCount ] . nCurrentUserCount = ( * ii ) . vOwnedChannelList [ j ] . nCurrentUser ;
packet . Info [ packet . cCount ] . nMaxUserCount = ( * ii ) . vOwnedChannelList [ j ] . nChannelMaxUser ;
packet . Info [ packet . cCount ] . nChannelAttribute = ( * ii ) . vOwnedChannelList [ j ] . nAttribute ;
packet . Info [ packet . cCount ] . nMeritBonusID = ( * ii ) . vOwnedChannelList [ j ] . nMeritBonusID ;
if ( packet . Info [ packet . cCount ] . nMeritBonusID > 0 )
{
const TMeritInfo * pInfo = g_pExtManager - > GetMeritInfo ( packet . Info [ packet . cCount ] . nMeritBonusID ) ;
if ( pInfo )
{
packet . Info [ packet . cCount ] . cMinLevel = pInfo - > nMinLevel ;
packet . Info [ packet . cCount ] . cMaxLevel = pInfo - > nMaxLevel ;
}
else
_DANGER_POINT ( ) ;
}
packet . Info [ packet . cCount ] . cVillageID = ( * ii ) . cVillageID ;
packet . Info [ packet . cCount ] . bVisibility = ( * ii ) . vOwnedChannelList [ j ] . bVisibility ;
_strcpy ( packet . Info [ packet . cCount ] . szIP , _countof ( packet . Info [ packet . cCount ] . szIP ) , ( * ii ) . szIP , ( int ) strlen ( ( * ii ) . szIP ) ) ;
packet . Info [ packet . cCount ] . nPort = ( * ii ) . nPort ;
packet . Info [ packet . cCount ] . nLimitLevel = ( * ii ) . vOwnedChannelList [ j ] . nLimitLevel ;
packet . Info [ packet . cCount ] . bShow = ( * ii ) . vOwnedChannelList [ j ] . bShow ;
packet . Info [ packet . cCount ] . nDependentMapID = ( * ii ) . vOwnedChannelList [ j ] . nDependentMapID ;
# if defined(PRE_ADD_CHANNELNAME)
_wcscpy ( packet . Info [ packet . cCount ] . wszLanguageName , _countof ( packet . Info [ packet . cCount ] . wszLanguageName ) , ( * ii ) . vOwnedChannelList [ j ] . wszLanguageName , ( int ) wcslen ( ( * ii ) . vOwnedChannelList [ j ] . wszLanguageName ) ) ;
# endif //#if defined(PRE_ADD_CHANNELNAME)
packet . cCount + + ;
}
AddSendData ( MAVI_VILLAGEINFO , 0 , ( char * ) & packet , sizeof ( MALOVillageInfo ) - sizeof ( packet . Info ) + ( sizeof ( sChannelInfo ) * packet . cCount ) ) ;
}
}
void CDNVillageConnection : : SendVillageInfoDelete ( int nVillageID )
{
MAVIVillageInfoDelete packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . nVillageID = nVillageID ;
AddSendData ( MAVI_VILLAGEINFODEL , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendLoginState ( UINT nSessionID , short nRet )
{
MAVILoginState State = { 0 , } ;
State . nSessionID = nSessionID ;
State . nRet = nRet ;
AddSendData ( MAVI_LOGINSTATE , 0 , ( char * ) & State , sizeof ( MAVILoginState ) ) ;
}
//User
void CDNVillageConnection : : SendCheckUser ( CDNUser * pUser , UINT nSessionID , int nRet )
{
MAVICheckUser packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
if ( pUser )
{
packet . nSessionID = pUser - > GetSessionID ( ) ;
packet . nAccountDBID = pUser - > GetAccountDBID ( ) ;
_wcscpy ( packet . wszAccountName , IDLENMAX , pUser - > GetAccountName ( ) , ( int ) wcslen ( pUser - > GetAccountName ( ) ) ) ;
packet . biCharacterDBID = pUser - > GetCharacterDBID ( ) ;
# if !defined( PRE_PARTY_DB )
packet . PartyID = pUser - > m_VillageCheckPartyID ;
# endif
packet . nChannelID = pUser - > GetChannelID ( ) ;
pUser - > m_VillageCheckPartyID = 0 ;
packet . cPvPVillageID = pUser - > GetPvPVillageID ( ) ;
packet . unPvPVillageChannelID = pUser - > GetPvPVillageChannelID ( ) ;
packet . bAdult = pUser - > IsAdult ( ) ;
packet . cPCBangGrade = pUser - > GetPCBangGrade ( ) ;
# if defined(PRE_ADD_MULTILANGUAGE)
packet . cSelectedLanguage = pUser - > m_eSelectedLanguage ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
# ifdef PRE_ADD_COMEBACK
packet . bComebackUser = pUser - > m_bComebackUser ;
pUser - > m_bComebackUser = false ;
# endif //#ifdef PRE_ADD_COMEBACK
# if defined(PRE_ADD_GAMEQUIT_REWARD)
packet . bReConnectNewbieReward = pUser - > m_bReConnectNewbieReward ;
pUser - > m_bReConnectNewbieReward = false ;
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
# if defined(_ID)
_strcpy ( packet . szMacAddress , _countof ( packet . szMacAddress ) , pUser - > m_szMacAddress , ( int ) strlen ( pUser - > m_szMacAddress ) ) ;
_strcpy ( packet . szKey , _countof ( packet . szKey ) , pUser - > m_szKey , ( int ) strlen ( pUser - > m_szKey ) ) ;
# endif
}
else
{
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ó<EFBFBD> <C3B3> <EFBFBD> <EFBFBD> <20> <> <20> <> <20> ֵ<EFBFBD> <D6B5> <EFBFBD>
packet . nSessionID = nSessionID ;
}
packet . nRet = nRet ;
int nLen = sizeof ( MAVICheckUser ) ;
AddSendData ( MAVI_CHECKUSER , 0 , ( char * ) & packet , nLen ) ;
}
void CDNVillageConnection : : SendTargetVillageInfo ( UINT nAccountDBID , BYTE cVillageID , int nTargetChannelID , int nTargetMapIdx , BYTE cTargetGateNo , const char * pIP , USHORT nPort , short nRet , bool bPartyInto , INT64 nItemSerial )
{
MAVITargetVillageInfo packet ;
packet . nAccountDBID = nAccountDBID ;
packet . cVillageID = cVillageID ;
packet . nTargetChannelID = nTargetChannelID ;
packet . nTargetMapIdx = nTargetMapIdx ;
packet . cTargetGateNo = cTargetGateNo ;
_strcpy ( packet . szIP , _countof ( packet . szIP ) , pIP , ( int ) strlen ( pIP ) ) ;
packet . nPort = nPort ;
packet . nRet = nRet ;
packet . cPartyInto = bPartyInto = = true ? 1 : 0 ;
packet . nItemSerial = nItemSerial ;
AddSendData ( MAVI_TARGETVILLAGEINFO , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendAddUserState ( const WCHAR * pName , INT64 biChracterDBID , int nLocationState , int nCommunityState , int nChannelID , int nMapIdx )
{
MAUserState packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Type = WorldUserState : : Add ;
packet . biCharacterDBID = biChracterDBID ;
packet . cLocationState = static_cast < BYTE > ( nLocationState = = - 1 ? _LOCATION_LOGIN : nLocationState ) ; //<2F> ʱ<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> α <EFBFBD> <CEB1> ̿<EFBFBD> <CCBF> <EFBFBD>
packet . cCommunityState = _COMMUNITY_NONE ; //<2F> <> <EFBFBD> <EFBFBD> <20> <EFBFBD> <EEB6BB> <20> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
packet . cNameLen = ( BYTE ) wcslen ( pName ) ;
_wcscpy ( packet . wszBuf , NAMELENMAX , pName , ( int ) wcslen ( pName ) ) ;
packet . nChannelID = nChannelID = = - 1 ? 0 : nChannelID ;
packet . nMapIdx = nMapIdx = = - 1 ? 0 : nMapIdx ;
AddSendData ( MAVI_USERSTATE , 0 , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . wszBuf ) + ( packet . cNameLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendDelUserState ( const WCHAR * pName , INT64 biChracterDBID )
{
MAUserState packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Type = WorldUserState : : Delete ;
packet . biCharacterDBID = biChracterDBID ;
packet . cNameLen = ( BYTE ) wcslen ( pName ) ;
_wcscpy ( packet . wszBuf , NAMELENMAX , pName , ( int ) wcslen ( pName ) ) ;
AddSendData ( MAVI_USERSTATE , 0 , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . wszBuf ) + ( packet . cNameLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendUpdateUserState ( const WCHAR * pName , INT64 biCharacterDBID , int nLocationState , int nCommunityState , int nChannelID , int nMapIdx )
{
MAUserState packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Type = WorldUserState : : Modify ;
packet . biCharacterDBID = biCharacterDBID ;
packet . cNameLen = ( BYTE ) wcslen ( pName ) ;
_wcscpy ( packet . wszBuf , NAMELENMAX , pName , ( int ) wcslen ( pName ) ) ;
packet . cLocationState = nLocationState ;
packet . cCommunityState = nCommunityState ;
packet . nChannelID = nChannelID ;
packet . nMapIdx = nMapIdx ;
AddSendData ( MAVI_USERSTATE , 0 , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . wszBuf ) + ( packet . cNameLen * sizeof ( WCHAR ) ) ) ;
}
# if defined( PRE_WORLDCOMBINE_PARTY )
# if defined( PRE_WORLDCOMBINE_PVP )
void CDNVillageConnection : : SendSetGameID ( GameTaskType : : eType GameTaskType , BYTE cReqGameIDType , TINSTANCEID InstanceID , ULONG nIP , USHORT nPort , USHORT nTcpPort , int iServerIdx , USHORT wGameID , int iRoomID , USHORT unVillageChannelID , BYTE cVillageID , int nRet , ePartyType Type , WorldPvPMissionRoom : : Common : : eReqType eWorldReqType )
# else // #if defined( PRE_WORLDCOMBINE_PVP )
void CDNVillageConnection : : SendSetGameID ( GameTaskType : : eType GameTaskType , BYTE cReqGameIDType , TINSTANCEID InstanceID , ULONG nIP , USHORT nPort , USHORT nTcpPort , int iServerIdx , USHORT wGameID , int iRoomID , USHORT unVillageChannelID , BYTE cVillageID , int nRet , ePartyType Type )
# endif //#if defined( PRE_WORLDCOMBINE_PVP )
# else // #if defined( PRE_WORLDCOMBINE_PARTY )
void CDNVillageConnection : : SendSetGameID ( GameTaskType : : eType GameTaskType , BYTE cReqGameIDType , TINSTANCEID InstanceID , ULONG nIP , USHORT nPort , USHORT nTcpPort , int iServerIdx , USHORT wGameID , int iRoomID , USHORT unVillageChannelID , BYTE cVillageID , int nRet )
# endif // #if defined( PRE_WORLDCOMBINE_PARTY )
{
MAVISetGameID TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . GameTaskType = GameTaskType ;
TxPacket . cReqGameIDType = cReqGameIDType ;
TxPacket . InstanceID = InstanceID ;
TxPacket . nIP = nIP ;
TxPacket . nPort = nPort ;
TxPacket . nTcpPort = nTcpPort ;
TxPacket . cServerIdx = iServerIdx ;
TxPacket . wGameID = wGameID ;
TxPacket . iRoomID = iRoomID ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . cVillageID = cVillageID ;
TxPacket . nRet = nRet ;
# if defined( PRE_WORLDCOMBINE_PARTY )
TxPacket . Type = Type ;
# endif
# if defined( PRE_WORLDCOMBINE_PVP )
TxPacket . eWorldReqType = eWorldReqType ;
# endif
AddSendData ( MAVI_SETGAMEID , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendLadderSetGameID ( ULONG nIP , USHORT nPort , USHORT nTcpPort , int iServerIdx , USHORT wGameID , int iRoomID , USHORT unVillageChannelID , BYTE cVillageID , int nRet , GAMASetRoomID * pPacket /*=NULL*/ , int iGameModeTableID /*=-1*/ )
{
MAVILadderSetGameID TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nIP = nIP ;
TxPacket . nPort = nPort ;
TxPacket . nTcpPort = nTcpPort ;
TxPacket . cServerIdx = iServerIdx ;
TxPacket . wGameID = wGameID ;
TxPacket . iRoomID = iRoomID ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . cVillageID = cVillageID ;
TxPacket . nRet = nRet ;
TxPacket . nGameModeTableID = iGameModeTableID ;
if ( TxPacket . nRet = = ERROR_NONE | | TxPacket . nRet = = - 1 )
{
if ( pPacket = = NULL )
{
_ASSERT ( 0 ) ;
_DANGER_POINT ( ) ;
return ;
}
for ( int i = 0 ; i < _countof ( pPacket - > nRoomMember ) ; + + i )
{
if ( pPacket - > nRoomMember [ i ] < = 0 )
continue ;
TxPacket . uiAccountDBIDArr [ TxPacket . cUserCount + + ] = pPacket - > nRoomMember [ i ] ;
}
}
int iSize = sizeof ( TxPacket ) - sizeof ( TxPacket . uiAccountDBIDArr ) + sizeof ( TxPacket . uiAccountDBIDArr [ 0 ] ) * TxPacket . cUserCount ;
AddSendData ( MAVI_LADDERSYSTEM_SETGAMEID , 0 , reinterpret_cast < char * > ( & TxPacket ) , iSize ) ;
}
# if defined( PRE_PARTY_DB )
void CDNVillageConnection : : SendResPartyInvite ( int iRet , UINT uiReqAccountDBID )
{
MAVIResPartyInvite TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . iRet = iRet ;
TxPacket . uiReqAccountDBID = uiReqAccountDBID ;
AddSendData ( MAVI_RESPARTYINVITE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendReqPartyInvite ( const VIMAReqPartyInvite * pPacket )
{
MAVIReqPartyInvite TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket = * pPacket ;
AddSendData ( MAVI_REQPARTYINVITE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPartyInviteDenied ( const VIMAPartyInviteDenied * pPacket )
{
MAVIPartyInviteDenided TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket = * pPacket ;
AddSendData ( MAVI_PARTYINVITEDENIED , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
# if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
void CDNVillageConnection : : SendReqPartyAskJoin ( const VIMAReqPartyAskJoin * pPacket )
{
MAVIReqPartyAskJoin TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket = * pPacket ;
AddSendData ( MAVI_REQPARTYASKJOIN , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendResPartyAskJoin ( int iRet , UINT uiAccountDBID )
{
MAVIResPartyAskJoin TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . iRet = iRet ;
TxPacket . uiReqAccountDBID = uiAccountDBID ;
AddSendData ( MAVI_RESPARTYASKJOIN , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendAskJoinAgreeInfo ( UINT uiAccountDBID , TPARTYID PartyID , int iPassword )
{
MAVIAskJoinAgreeInfo TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAskerAccountDBID = uiAccountDBID ;
TxPacket . PartyID = PartyID ;
TxPacket . iPassword = iPassword ;
AddSendData ( MAVI_ASKJOINAGREEINFO , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
# endif
# else
void CDNVillageConnection : : SendAddParty ( UINT nLeaderAccountDBID , UINT nLeaderSessionID , TPARTYID PartyID , const WCHAR * pwszPartyName , const WCHAR * pwszPassword , int nChannelID , BYTE cPartyMemberMax , TPARTYITEMLOOTRULE ItemLootRule , TITEMRANK ItemRank , BYTE cUserLvLimitMin , BYTE cUserLvLimitMax , int nTargetMapIdx , TDUNGEONDIFFICULTY Difficulty , BYTE cPartyJobDice , UINT nAfterInviteAccountDBID , BYTE cUseVoice )
{
MAVIReqPartyID AddParty ;
memset ( & AddParty , 0 , sizeof ( MAVIReqPartyID ) ) ;
AddParty . nAccountDBID = nLeaderAccountDBID ;
AddParty . nSessionID = nLeaderSessionID ;
AddParty . PartyID = PartyID ;
AddParty . cMemberMax = cPartyMemberMax ;
AddParty . nChannelID = nChannelID ;
AddParty . ItemLootRule = ItemLootRule ;
AddParty . ItemRank = ItemRank ;
AddParty . cUserLvLimitMin = cUserLvLimitMin ;
AddParty . cUserLvLimitMax = cUserLvLimitMax ;
AddParty . nTargetMapIdx = nTargetMapIdx ;
AddParty . Difficulty = Difficulty ;
AddParty . nAfterInviteAccountDBID = nAfterInviteAccountDBID ;
_wcscpy ( AddParty . wszPartyName , PARTYNAMELENMAX , pwszPartyName , ( int ) wcslen ( pwszPartyName ) ) ;
AddParty . cPartyJobDice = cPartyJobDice ;
AddParty . cUseVoice = cUseVoice ;
if ( pwszPassword ! = NULL & & pwszPassword [ 0 ] ! = ' \0 ' )
_wcscpy ( AddParty . wszPartyPass , PARTYPASSWORDMAX , pwszPassword , ( int ) wcslen ( pwszPassword ) ) ;
AddSendData ( MAVI_REQPARTYID , 0 , ( char * ) & AddParty , sizeof ( AddParty ) ) ;
}
# endif // #if defined( PRE_PARTY_DB )
void CDNVillageConnection : : SendPushParty ( UINT nLeaderAccountDBID , TPARTYID PartyID , int nChannelID , int nRandomSeed , TPartyData * pPartyData )
{
if ( pPartyData = = NULL ) return ;
MAVIPushParty packet = { 0 , } ;
packet . nLeaderAccountDBID = nLeaderAccountDBID ;
# if defined( PRE_PARTY_DB )
packet . PartyData = pPartyData - > PartyData ;
packet . PartyData . iLocationID = nChannelID ;
# else
packet . PartyID = PartyID ;
packet . nChannelID = nChannelID ;
packet . cMemberMax = pPartyData - > cMemberMax ;
packet . ItemLootRule = pPartyData - > ItemLootRule ;
packet . ItemLootRank = pPartyData - > ItemLootRank ;
packet . nUserLvLimitMin = pPartyData - > cUserLvLimitMin ;
packet . nUserLvLimitMax = pPartyData - > cUserLvLimitMax ;
packet . nTargetMapIdx = pPartyData - > nTargetMapIdx ;
packet . Difficulty = pPartyData - > Difficulty ;
packet . cUpkeepCount = pPartyData - > cUpkeepCount ;
_wcscpy ( packet . wszPartyName , PARTYNAMELENMAX , pPartyData - > wszPartyName , ( int ) wcslen ( pPartyData - > wszPartyName ) ) ;
# endif // #if defined( PRE_PARTY_DB )
packet . nRandomSeed = nRandomSeed ;
memcpy ( packet . nKickedMemberList , pPartyData - > nKickedMemberDBID , sizeof ( UINT [ PARTYKICKMAX ] ) ) ;
packet . nVoiceChannelID = pPartyData - > nVoiceChannelID ;
# if defined( PRE_PARTY_DB )
# else
packet . cIsPartyJobDice = pPartyData - > cJobDice ;
_wcscpy ( packet . wszPartyPass , PARTYPASSWORDMAX , pPartyData - > wszPartyPass , ( int ) wcslen ( pPartyData - > wszPartyPass ) ) ;
# endif // #if defined( PRE_PARTY_DB )
# if defined( PRE_PARTY_DB )
memcpy ( packet . MemberInfo , pPartyData - > MemberInfo , sizeof ( TMemberInfo ) * pPartyData - > PartyData . iCurMemberCount ) ;
# else
packet . cMemberCount = pPartyData - > cMemberCount ;
memcpy ( packet . MemberInfo , pPartyData - > MemberInfo , sizeof ( TMemberInfo ) * pPartyData - > cMemberCount ) ;
# endif
# if defined( PRE_PARTY_DB )
AddSendData ( MAVI_PUSHPARTY , 0 , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . MemberInfo ) + ( sizeof ( TMemberInfo ) * packet . PartyData . iCurMemberCount ) ) ;
# else
AddSendData ( MAVI_PUSHPARTY , 0 , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . MemberInfo ) + ( sizeof ( TMemberInfo ) * packet . cMemberCount ) ) ;
# endif
}
void CDNVillageConnection : : SendInvitepartyMember ( int nGameServerID , int nVillageMapIdx , UINT nInvitedAccountDBID , const GAMAInvitePartyMember * pInvitePartyMember , const char * pPassClassIds , char cPermitLevel )
{
MAVIInvitePartyMember packet ;
memset ( & packet , 0 , sizeof ( MAVIInvitePartyMember ) ) ;
packet . nGameServerID = nGameServerID ;
packet . nVillageMapIdx = nVillageMapIdx ;
packet . PartyID = pInvitePartyMember - > PartyID ;
packet . nMapIdx = pInvitePartyMember - > nMapIdx ;
packet . cLimitLevelMin = pInvitePartyMember - > cLimitLevelMin ;
# if defined( PRE_PARTY_DB )
# else
packet . cLimitLevelMax = pInvitePartyMember - > cLimitLevelMax ;
# endif // #if defined( PRE_PARTY_DB )
packet . cPartyMemberMax = pInvitePartyMember - > cPartyMemberMax ;
packet . cPartyMemberCount = pInvitePartyMember - > cPartyMemberCount ;
packet . cPartyAvrLevel = pInvitePartyMember - > cPartyAvrLevel ;
STRCPYW ( packet . wszPartyName , PARTYNAMELENMAX , pInvitePartyMember - > wszPartyName ) ;
packet . nInviterAccountDBID = pInvitePartyMember - > nInviterAccountDBID ;
packet . biInviterCharacterDBID = pInvitePartyMember - > biInviterCharacterDBID ;
STRCPYW ( packet . wszInviterName , NAMELENMAX , pInvitePartyMember - > wszInviterName ) ;
packet . nInvitedAccountDBID = nInvitedAccountDBID ;
STRCPYW ( packet . wszInvitedName , NAMELENMAX , pInvitePartyMember - > wszInvitedName ) ;
packet . cPermitLevel = cPermitLevel ;
memcpy ( packet . cPassClassIds , pPassClassIds , sizeof ( char [ PERMITMAPPASSCLASSMAX ] ) ) ;
AddSendData ( MAVI_INVITEPARTYMEMBER , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendResult ( UINT nAccountDBID , BYTE cMainCmd , short nRet )
{
MAVIResult Result = { 0 , } ;
Result . nAccountDBID = nAccountDBID ;
Result . nMainCmd = cMainCmd ;
Result . nRet = nRet ;
AddSendData ( cMainCmd , 0 , ( char * ) & Result , sizeof ( Result ) ) ;
}
# if defined(PRE_MOD_REQ_JOIN_PARTY_ANSWER_MSG_APP)
void CDNVillageConnection : : SendGetPartyID ( UINT nAccountDBID , UINT nSenderAccountDBID )
{
MAVIGetPartyID packet ;
memset ( & packet , 0 , sizeof ( MAVIGetPartyID ) ) ;
packet . nAccountDBID = nAccountDBID ;
packet . nSenderAccountDBID = nSenderAccountDBID ;
AddSendData ( MAVI_GETPARTYID , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendGetPartyIDResult ( UINT nSenderAccountDBID , TPARTYID PartyID )
{
MAVIGetPartyIDResult packet ;
memset ( & packet , 0 , sizeof ( MAVIGetPartyIDResult ) ) ;
packet . nSenderAccountDBID = nSenderAccountDBID ;
packet . PartyID = PartyID ;
AddSendData ( MAVI_GETPARTYID_RESULT , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
# endif
void CDNVillageConnection : : SendInviteGuildMember ( MAInviteGuildMember * pPacket )
{
AddSendData ( MAVI_INVITEGUILDMEMB , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendInviteGuildMemberResult ( UINT nAccountDBID , int nRet , bool bAck , LPCWSTR pwszToCharacterName )
{
MAVIGuildMemberInvitedResult Result = { 0 , } ;
Result . nAccountDBID = nAccountDBID ;
Result . nRet = nRet ;
Result . bAck = bAck ;
STRCPYW ( Result . wszInvitedName , NAMELENMAX , pwszToCharacterName ) ;
AddSendData ( MAVI_INVITEGUILDMEMBER_RETMSG , 0 , ( char * ) & Result , sizeof ( Result ) ) ;
}
void CDNVillageConnection : : SendGuildWareInfo ( MAGuildWareInfo * pPacket )
{
AddSendData ( MAVI_GUILDWAREINFO , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendGuildWareInfoResult ( MAGuildWareInfoResult * pPacket )
{
AddSendData ( MAVI_RETGUILDWAREINFO , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendGuildMemberLevelUp ( MAGuildMemberLevelUp * pPacket )
{
AddSendData ( MAVI_GUILDMEMBER_LEVELUP , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendRefreshGuildItem ( MARefreshGuildItem * pPacket )
{
AddSendData ( MAVI_REFRESH_GUILDITEM , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendRefreshGuildCoin ( MARefreshGuildCoin * pPacket )
{
AddSendData ( MAVI_REFRESH_GUILDCOIN , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendExtendGuildWareSize ( MAExtendGuildWare * pPacket )
{
AddSendData ( MAVI_EXTEND_GUILDWARE , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendDismissGuild ( MADismissGuild * pPacket )
{
AddSendData ( MAVI_DISMISSGUILD , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendAddGuildMember ( MAAddGuildMember * pPacket )
{
AddSendData ( MAVI_ADDGUILDMEMB , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendDelGuildMember ( MADelGuildMember * pPacket )
{
AddSendData ( MAVI_DELGUILDMEMB , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendChangeGuildInfo ( MAChangeGuildInfo * pPacket )
{
AddSendData ( MAVI_CHANGEGUILDINFO , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendChangeGuildMemberInfo ( MAChangeGuildMemberInfo * pPacket )
{
AddSendData ( MAVI_CHANGEGUILDMEMBINFO , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendGuildChat ( MAGuildChat * pPacket )
{
AddSendData ( MAVI_GUILDCHAT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
# ifdef PRE_ADD_DOORS_GUILDCHAT_DISCONNECT
void CDNVillageConnection : : SendDoorsGuildChat ( MADoorsGuildChat * pPacket )
{
AddSendData ( MAVI_GUILDCHAT_MOBILE , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MADoorsGuildChat ) - sizeof ( pPacket - > wszChatMsg ) + ( sizeof ( WCHAR ) * pPacket - > nLen ) ) ;
}
# endif //#ifdef PRE_ADD_DOORS_GUILDCHAT_DISCONNECT
void CDNVillageConnection : : SendChangeGuildName ( MAGuildChangeName * pPacket )
{
AddSendData ( MAVI_GUILDCHANGE_NAME , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAGuildChangeName ) ) ;
}
void CDNVillageConnection : : SendChangeGuildMark ( MAGuildChangeMark * pPacket )
{
AddSendData ( MAVI_GUILDCHANGEMARK , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAGuildChangeMark ) ) ;
}
void CDNVillageConnection : : SendUpdateGuildExp ( MAUpdateGuildExp * pPacket )
{
AddSendData ( MAVI_UPDATEGUILDEXP , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAUpdateGuildExp ) ) ;
}
void CDNVillageConnection : : SendEnrollGuildWar ( MAEnrollGuildWar * pPacket )
{
AddSendData ( MAVI_ENROLL_GUILDWAR , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAEnrollGuildWar ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarSchedule ( )
{
AddSendData ( MAVI_GETGUILDWAR_SCHEDULE , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendChangeGuildWarStep ( MAChangeGuildWarStep * pPacket )
{
AddSendData ( MAVI_CHANGE_GUILDWAR_STEP , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAChangeGuildWarStep ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarFinalSchedule ( short wScheduleID )
{
MAGetGuildWarFinalSchedule GetGuildWarFinalSchedule ;
GetGuildWarFinalSchedule . wScheduleID = wScheduleID ;
AddSendData ( MAVI_GETGUILDWAR_FINALSCHEDULE , 0 , reinterpret_cast < char * > ( & GetGuildWarFinalSchedule ) , sizeof ( MAGetGuildWarFinalSchedule ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarPoint ( )
{
AddSendData ( MAVI_GETGUILDWAR_POINT , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendAddGuildWarPoint ( MAAddGuildWarPoint * pPacket )
{
AddSendData ( MAVI_ADDGUILDWAR_POINT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAAddGuildWarPoint ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarPoint ( MASetGuildWarPoint * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_POINT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MASetGuildWarPoint ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarFinalTeam ( )
{
AddSendData ( MAVI_GETGUILDWAR_FINAL_TEAM , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendGetGuildWarTournamentInfo ( short wScheduleID )
{
MAGetGuildWarTournamentInfo GetGuildWarTournamentInfo ;
GetGuildWarTournamentInfo . wScheduleID = wScheduleID ;
AddSendData ( MAVI_GETGUILDWAR_TOURNAMENTINFO , 0 , reinterpret_cast < char * > ( & GetGuildWarTournamentInfo ) , sizeof ( MAGetGuildWarTournamentInfo ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarPreWinGuild ( )
{
AddSendData ( MAVI_GETGUILDWAR_PREWIN_GUILD , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendGetGuildWarTrialStats ( )
{
AddSendData ( MAVI_GETGUILDWAR_TRIAL_STATS , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendSetGuildwarFinalProcess ( char cGuildFinalPart , __time64_t tBeginTime )
{
MASetGuildWarFinalProcess SetGuildWarFinalProcess ;
memset ( & SetGuildWarFinalProcess , 0 , sizeof ( MASetGuildWarFinalProcess ) ) ;
SetGuildWarFinalProcess . cGuildFinalPart = cGuildFinalPart ;
SetGuildWarFinalProcess . tBeginTime = tBeginTime ;
AddSendData ( MAVI_SETGUILDWAR_FINALPROCESS , 0 , reinterpret_cast < char * > ( & SetGuildWarFinalProcess ) , sizeof ( MASetGuildWarFinalProcess ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarFinalTeam ( SGuildTournamentInfo * pGuildTournamentInfo )
{
MAVISetGuildWarFinalTeam SetGuildWarFinalTeam ;
memset ( & SetGuildWarFinalTeam , 0 , sizeof ( MAVISetGuildWarFinalTeam ) ) ;
for ( int i = 0 ; i < GUILDWAR_FINALS_TEAM_MAX ; + + i )
{
SetGuildWarFinalTeam . GuildDBID [ i ] = pGuildTournamentInfo [ i ] . GuildUID . nDBID ;
}
AddSendData ( MAVI_SETGUILDWAR_FINAL_TEAM , 0 , reinterpret_cast < char * > ( & SetGuildWarFinalTeam ) , sizeof ( MAVISetGuildWarFinalTeam ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarTournamentInfo ( SGuildTournamentInfo * pGuildTournamentInfo )
{
MAGuildWarTournamentInfo SetGuildWarTournamentInfo ;
memset ( & SetGuildWarTournamentInfo , 0 , sizeof ( MAGuildWarTournamentInfo ) ) ;
memcpy ( & SetGuildWarTournamentInfo , pGuildTournamentInfo , sizeof ( SetGuildWarTournamentInfo ) ) ;
AddSendData ( MAVI_SETGUILDWAR_TOURNAMENTINFO , 0 , reinterpret_cast < char * > ( & SetGuildWarTournamentInfo ) , sizeof ( MAGuildWarTournamentInfo ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarSecretMission ( MASetGuildWarSecretMission * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_SECRETMISSION , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MASetGuildWarSecretMission ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarFinalResult ( MAVISetGuildWarFinalResult * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_FINAL_RESULT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAVISetGuildWarFinalResult ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarFinalResultDB ( short wScheduleID , char cMatchSequence , UINT GuildDBID , char cMatchTypeCode , bool bWin )
{
MAVISetGuildWarFinalDB SetGuildWarFinalDB ;
memset ( & SetGuildWarFinalDB , 0 , sizeof ( SetGuildWarFinalDB ) ) ;
SetGuildWarFinalDB . wScheduleID = wScheduleID ;
SetGuildWarFinalDB . cMatchSequence = cMatchSequence ;
SetGuildWarFinalDB . GuildDBID = GuildDBID ;
SetGuildWarFinalDB . cMatchTypeCode = cMatchTypeCode ;
SetGuildWarFinalDB . bWin = bWin ;
AddSendData ( MAVI_SETGUILDWAR_FINAL_RESULT_DB , 0 , reinterpret_cast < char * > ( & SetGuildWarFinalDB ) , sizeof ( MAVISetGuildWarFinalDB ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarPreWinGuild ( MAGuildWarPreWinGuild * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_PREWIN_GUILD , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAGuildWarPreWinGuild ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarPreWinSkillCoolTime ( MAGuildWarPreWinSkillCoolTime * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_PREWIN_SKILLCOOLTIME , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAGuildWarPreWinSkillCoolTime ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarSchedule ( MASetGuildWarEventTime * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_EVENT_TIME , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MASetGuildWarEventTime ) ) ;
}
void CDNVillageConnection : : SendSetGuildWarTournamentWin ( MASetGuildWarTournamentWin * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_TOURNAMENTWIN , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MASetGuildWarTournamentWin ) ) ;
}
void CDNVillageConnection : : SendAddDBJobSystemReserve ( char cJobType )
{
MAVIAddDBJobSystemReserve Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . cJobType = cJobType ;
AddSendData ( MAVI_ADD_DBJOBSYSTEM_RESERVE , 0 , reinterpret_cast < char * > ( & Packet ) , sizeof ( MAVIAddDBJobSystemReserve ) ) ;
}
void CDNVillageConnection : : SendGetDBJobSystemReserve ( int nJobSeq )
{
MAVIGetDBJobSystemReserve Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . nJobSeq = nJobSeq ;
AddSendData ( MAVI_GET_DBJOBSYSTEM_RESERVE , 0 , reinterpret_cast < char * > ( & Packet ) , sizeof ( MAVIGetDBJobSystemReserve ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarPointRunning ( )
{
AddSendData ( MAVI_GETGUILDWAR_POINT_RUNNING , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendSetGuildWarPointRunning ( MASetGuildWarPointRunningTotal * pPacket )
{
AddSendData ( MAVI_SETGUILDWAR_POINT_RUNNING , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MASetGuildWarPointRunningTotal ) ) ;
}
void CDNVillageConnection : : SendGetGuildWarPreWindGuildReward ( short wSchedulID , UINT nGuildDBID )
{
MAVIGetGuildWarPrewinReward Packet ;
memset ( & Packet , 0 , sizeof ( Packet ) ) ;
Packet . wScheduleID = wSchedulID ;
Packet . nGuildDBID = nGuildDBID ;
AddSendData ( MAVI_GETGUILDWAR_PREWIN_REWARD , 0 , reinterpret_cast < char * > ( & Packet ) , sizeof ( MAVIGetGuildWarPrewinReward ) ) ;
}
void CDNVillageConnection : : SendGuildWarRefreshGuildPoint ( MAGuildWarRefreshGuildPoint * pPacket )
{
AddSendData ( MAVI_GUILDWAR_REFRESH_GUILD_POINT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAGuildWarRefreshGuildPoint ) ) ;
}
void CDNVillageConnection : : SendResetGuildWarBuyedItemCount ( )
{
AddSendData ( MAVI_GUILDWAR_RESET_BUYED_ITEM_COUNT , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendGuildRecruitMember ( MAGuildRecruitMember * pPacket )
{
AddSendData ( MAVI_GUILDRECRUIT_MEMBER , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendAddGuildRewardItem ( MAGuildRewardItem * pPacket )
{
AddSendData ( MAVI_GUILD_ADD_REWARDITEM , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendExtendGuildSize ( MAExtendGuildSize * pPacket )
{
AddSendData ( MAVI_GUILD_EXTEND_GUILDSIZE , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( * pPacket ) ) ;
}
void CDNVillageConnection : : SendUpdateGuildWare ( int nGuildID )
{
MAUpdateGuildWare packet ;
memset ( & packet , 0 , sizeof ( MAUpdateGuildWare ) ) ;
packet . GUildID . Set ( g_Config . nWorldSetID , nGuildID ) ;
AddSendData ( MAVI_UPDATEGUILDWARE , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( MAUpdateGuildWare ) ) ;
}
void CDNVillageConnection : : SendChangeCharacterName ( MAChangeCharacterName * pPacket )
{
AddSendData ( MAVI_CHANGE_CHARACTERNAME , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( MAChangeCharacterName ) ) ;
}
void CDNVillageConnection : : SendFriendAddNotice ( UINT nAddedAccountDBID , const WCHAR * pName )
{
MAVIFriendAddNotice packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . nAddedAccountDBID = nAddedAccountDBID ;
_wcscpy ( packet . wszAddName , NAMELENMAX , pName , ( int ) wcslen ( pName ) ) ;
AddSendData ( MAVI_FRIENDADDNOTICE , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendPrivateChat ( UINT nToAccountDBID , const WCHAR * pwszFromCharacterName , char cType , const WCHAR * pwszChatMsg , short wChatLen , int nRet )
{
MAPrivateChat Private ;
memset ( & Private , 0 , sizeof ( MAPrivateChat ) ) ;
Private . nAccountDBID = nToAccountDBID ;
Private . cType = cType ;
_wcscpy ( Private . wszFromCharacterName , NAMELENMAX , pwszFromCharacterName , ( int ) wcslen ( pwszFromCharacterName ) ) ;
Private . nRet = nRet ;
if ( nRet < 0 ) { // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ̴<EFBFBD>
AddSendData ( MAVI_PRIVATECHAT , 0 , ( char * ) & Private , sizeof ( MAPrivateChat ) - sizeof ( Private . wszChatMsg ) ) ;
}
else {
Private . wChatLen = wChatLen ;
_wcscpy ( Private . wszChatMsg , CHATLENMAX , pwszChatMsg , ( int ) wcslen ( pwszChatMsg ) ) ;
AddSendData ( MAVI_PRIVATECHAT , 0 , ( char * ) & Private , sizeof ( MAPrivateChat ) - sizeof ( Private . wszChatMsg ) + ( wChatLen * 2 ) ) ;
}
}
void CDNVillageConnection : : SendChat ( char cType , UINT nToAccountDBID , const WCHAR * pwszFromCharacterName , const WCHAR * pwszChatMsg , short wChatLen )
{
MAChat Chat ;
memset ( & Chat , 0 , sizeof ( MAChat ) ) ;
Chat . nAccountDBID = nToAccountDBID ;
Chat . cType = cType ;
Chat . wChatLen = wChatLen ;
_wcscpy ( Chat . wszFromCharacterName , NAMELENMAX , pwszFromCharacterName , ( int ) wcslen ( pwszFromCharacterName ) ) ;
_wcscpy ( Chat . wszChatMsg , CHATLENMAX , pwszChatMsg , ( int ) wcslen ( pwszChatMsg ) ) ;
AddSendData ( MAVI_CHAT , 0 , ( char * ) & Chat , sizeof ( Chat ) - sizeof ( Chat . wszChatMsg ) + ( wChatLen * 2 ) ) ;
}
void CDNVillageConnection : : SendZoneChat ( int nMapIdx , const WCHAR * pwszFromCharacterName , const WCHAR * pwszChatMsg , short wChatLen )
{
MAZoneChat packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . nMapIdx = nMapIdx ;
_wcscpy ( packet . wszFromCharacterName , NAMELENMAX , pwszFromCharacterName , ( int ) wcslen ( pwszFromCharacterName ) ) ;
packet . wChatLen = wChatLen ;
_wcscpy ( packet . wszChatMsg , CHATLENMAX , pwszChatMsg , ( int ) wcslen ( pwszChatMsg ) ) ;
AddSendData ( MAVI_ZONECHAT , 0 , ( char * ) & packet , sizeof ( packet ) - sizeof ( packet . wszChatMsg ) + ( wChatLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendWorldSystemMsg ( const WCHAR * pwszFromCharacterName , char cType , int nID , int nValue , WCHAR * pwszToCharacterName )
{
MAWorldSystemMsg Msg ;
memset ( & Msg , 0 , sizeof ( MAWorldSystemMsg ) ) ;
_wcscpy ( Msg . wszFromCharacterName , NAMELENMAX , pwszFromCharacterName , ( int ) wcslen ( pwszFromCharacterName ) ) ;
Msg . cType = cType ;
Msg . nID = nID ;
Msg . nValue = nValue ;
if ( pwszToCharacterName ) _wcscpy ( Msg . wszToCharacterName , _countof ( Msg . wszToCharacterName ) , pwszToCharacterName , ( int ) wcslen ( pwszToCharacterName ) ) ;
AddSendData ( MAVI_WORLDSYSTEMMSG , 0 , ( char * ) & Msg , sizeof ( MAWorldSystemMsg ) ) ;
}
# if defined( PRE_PRIVATECHAT_CHANNEL )
void CDNVillageConnection : : SendPrivateChannelChat ( const WCHAR * pwszFromCharacterName , const WCHAR * pwszChatMsg , short wChatLen , INT64 nChannelID )
{
MAPrivateChannelChat Chat ;
memset ( & Chat , 0 , sizeof ( MAPrivateChannelChat ) ) ;
Chat . cWorldSetID = g_Config . nWorldSetID ;
Chat . wChatLen = wChatLen ;
Chat . nChannelID = nChannelID ;
if ( pwszFromCharacterName )
_wcscpy ( Chat . wszFromCharacterName , NAMELENMAX , pwszFromCharacterName , ( int ) wcslen ( pwszFromCharacterName ) ) ;
if ( pwszChatMsg )
_wcscpy ( Chat . wszChatMsg , CHATLENMAX , pwszChatMsg , ( int ) wcslen ( pwszChatMsg ) ) ;
AddSendData ( MAVI_PRIVATECHNNELCHAT , 0 , ( char * ) & Chat , sizeof ( Chat ) - sizeof ( Chat . wszChatMsg ) + ( wChatLen * 2 ) ) ;
}
# endif
void CDNVillageConnection : : SendPvPCreateRoom ( const short nRetCode , const CDNPvP * pPvPRoom , const VIMAPVP_CREATEROOM * pPacket )
{
int nSize = 0 ;
MAVIPVP_CREATEROOM TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRetCode = nRetCode ;
TxPacket . uiCreateAccountDBID = pPacket - > uiCreateAccountDBID ;
if ( nRetCode = = ERROR_NONE )
{
if ( pPvPRoom = = NULL )
{
_DANGER_POINT ( ) ;
return ;
}
TxPacket . uiPvPIndex = pPvPRoom - > GetIndex ( ) ;
TxPacket . nEventID = pPvPRoom - > GetEventRoomIndex ( ) ;
if ( TxPacket . nEventID > 0 )
memcpy ( & TxPacket . EventData , const_cast < CDNPvP * > ( pPvPRoom ) - > GetEventDataPtr ( ) , sizeof ( TEvent ) ) ;
TxPacket . unVillageChannelID = pPacket - > unVillageChannelID ;
TxPacket . cGameMode = pPacket - > cGameMode ;
# if defined( PRE_PVP_GAMBLEROOM )
TxPacket . cGambleType = pPacket - > cGambleType ;
TxPacket . nPrice = pPacket - > nPrice ;
# endif
if ( PvPCommon : : GameMode : : PvP_GuildWar = = TxPacket . cGameMode & & pPvPRoom - > GetIsGuildWarSystem ( ) )
{
for ( int i = 0 ; i < PvPCommon : : TeamIndex : : Max ; i + + )
TxPacket . nGuildWarDBID [ i ] = pPvPRoom - > GetGuildDBIDbyIdx ( i ) ;
}
memcpy ( & TxPacket . sCSPVP_CREATEROOM , & pPacket - > sCSPVP_CREATEROOM , sizeof ( CSPVP_CREATEROOM ) - sizeof ( pPacket - > sCSPVP_CREATEROOM . wszBuf ) + sizeof ( WCHAR ) * ( pPacket - > sCSPVP_CREATEROOM . cRoomNameLen + pPacket - > sCSPVP_CREATEROOM . cRoomPWLen ) ) ;
# ifdef PRE_MOD_PVPOBSERVER
TxPacket . sCSPVP_CREATEROOM . bExtendObserver = pPvPRoom - > bIsExtendObserver ( ) ;
# endif //#ifdef PRE_MOD_PVPOBSERVER
nSize = sizeof ( MAVIPVP_CREATEROOM ) - sizeof ( pPacket - > sCSPVP_CREATEROOM . wszBuf ) + sizeof ( WCHAR ) * ( pPacket - > sCSPVP_CREATEROOM . cRoomNameLen + pPacket - > sCSPVP_CREATEROOM . cRoomPWLen ) ;
}
else
{
nSize = sizeof ( short ) + sizeof ( UINT ) ;
}
AddSendData ( MAVI_PVP_CREATEROOM , 0 , reinterpret_cast < char * > ( & TxPacket ) , nSize ) ;
}
void CDNVillageConnection : : SendPvPModifyRoom ( const short nRetCode , const CDNPvP * pPvPRoom , const VIMAPVP_MODIFYROOM * pPacket )
{
int nSize = 0 ;
MAVIPVP_MODIFYROOM TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRetCode = nRetCode ;
TxPacket . uiAccountDBID = pPacket - > uiAccountDBID ;
if ( nRetCode = = ERROR_NONE )
{
if ( pPvPRoom = = NULL )
{
_DANGER_POINT ( ) ;
return ;
}
TxPacket . uiPvPIndex = pPvPRoom - > GetIndex ( ) ;
TxPacket . unVillageChannelID = pPvPRoom - > GetVillageChannelID ( ) ;
TxPacket . cGameMode = pPacket - > cGameMode ;
memcpy ( & TxPacket . sCSPVP_MODIFYROOM , & pPacket - > sCSPVP_MODIFYROOM , sizeof ( CSPVP_MODIFYROOM ) - sizeof ( pPacket - > sCSPVP_MODIFYROOM . sCSPVP_CREATEROOM . wszBuf ) + sizeof ( WCHAR ) * ( pPacket - > sCSPVP_MODIFYROOM . sCSPVP_CREATEROOM . cRoomNameLen + pPacket - > sCSPVP_MODIFYROOM . sCSPVP_CREATEROOM . cRoomPWLen ) ) ;
nSize = sizeof ( MAVIPVP_CREATEROOM ) - sizeof ( pPacket - > sCSPVP_MODIFYROOM . sCSPVP_CREATEROOM . wszBuf ) + sizeof ( WCHAR ) * ( pPacket - > sCSPVP_MODIFYROOM . sCSPVP_CREATEROOM . cRoomNameLen + pPacket - > sCSPVP_MODIFYROOM . sCSPVP_CREATEROOM . cRoomPWLen ) ;
}
else
{
nSize = sizeof ( short ) + sizeof ( UINT ) ;
}
AddSendData ( MAVI_PVP_MODIFYROOM , 0 , reinterpret_cast < char * > ( & TxPacket ) , nSize ) ;
}
void CDNVillageConnection : : SendPvPDestroyRoom ( const USHORT unVillageChannelID , const UINT uiPvPIndex )
{
MAVIPVP_DESTROYROOM TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
AddSendData ( MAVI_PVP_DESTROYROOM , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPLeaveRoom ( const short nRetCode , const USHORT unVillageChannelID , const UINT uiPvPIndex , const UINT uiLeaveAccountDBID , PvPCommon : : LeaveType : : eLeaveType Type )
{
MAVIPVP_LEAVEROOM TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRetCode = nRetCode ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
TxPacket . uiLeaveAccountDBID = uiLeaveAccountDBID ;
TxPacket . eType = Type ;
AddSendData ( MAVI_PVP_LEAVEROOM , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPRoomList ( const VIMAPVP_ROOMLIST * pPacket )
{
MAVIPVP_ROOMLIST TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = pPacket - > uiAccountDBID ;
TxPacket . unVillageChannelID = pPacket - > unVillageChannelID ;
memcpy ( & TxPacket . sCSPVP_ROOMLIST , & pPacket - > sCSPVP_ROOMLIST , sizeof ( CSPVP_ROOMLIST ) ) ;
AddSendData ( MAVI_PVP_ROOMLIST , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPWaitUserList ( const VIMAPVP_WAITUSERLIST * pPacket )
{
MAVIPVP_WAITUSERLIST TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = pPacket - > uiAccountDBID ;
TxPacket . unVillageChannelID = pPacket - > unVillageChannelID ;
memcpy ( & TxPacket . sCSPVP_WAITUSERLIST , & pPacket - > sCSPVP_WAITUSERLIST , sizeof ( CSPVP_WAITUSERLIST ) ) ;
AddSendData ( MAVI_PVP_WAITUSERLIST , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPJoinRoom ( const short nRetCode , const UINT uiAccountDBID , const USHORT unVillageChannelID /*=0*/ , const UINT uiPvPIndex /*=0*/ , const USHORT unPvPTeam /*=PvPCommon::Team::Max*/ , const UINT uiUserState /*=PvPCommon::UserState::None*/ , char cIndex /*= -1*/ )
{
MAVIPVP_JOINROOM TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRetCode = nRetCode ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
TxPacket . unPvPTeam = unPvPTeam ;
TxPacket . uiUserState = uiUserState ;
TxPacket . cIndex = cIndex ;
AddSendData ( MAVI_PVP_JOINROOM , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPRoomState ( const USHORT unVillageChannelID , const UINT uiPvPIndex , const UINT uiRoomState )
{
MAVIPVP_ROOMSTATE TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
TxPacket . uiRoomState = uiRoomState ;
AddSendData ( MAVI_PVP_ROOMSTATE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPChangeTeam ( const short nRetCode , const USHORT unVillageChannelID , const UINT uiPvPIndex , const VIMAPVP_CHANGETEAM * pPacket , char cTeamSlotIndex /* = -1*/ )
{
MAVIPVP_CHANGETEAM TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRetCode = nRetCode ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
memcpy ( & TxPacket . sVIMAPVP_CHANGETEAM , pPacket , sizeof ( VIMAPVP_CHANGETEAM ) ) ;
TxPacket . cTeamSlotIndex = cTeamSlotIndex ;
AddSendData ( MAVI_PVP_CHANGETEAM , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPChangeUserState ( const USHORT unVillageChannelID , const UINT uiPvPIndex , const UINT uiAccountDBID , const UINT uiUserState )
{
MAVIPVP_CHANGEUSERSTATE TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . uiUserState = uiUserState ;
AddSendData ( MAVI_PVP_CHANGEUSERSTATE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPStart ( const short nRetCode , const USHORT unVillageChannelID , const UINT uiPvPIndex , const UINT uiAccountDBID )
{
MAVIPVP_START TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRetCode = nRetCode ;
TxPacket . unVillageChannelID = unVillageChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
TxPacket . uiAccountDBID = uiAccountDBID ;
AddSendData ( MAVI_PVP_START , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPStartMsg ( const USHORT unVilalgeChannelID , const UINT uiPvPIndex , const BYTE cSec )
{
MAVIPVP_STARTMSG TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . unVillageChannelID = unVilalgeChannelID ;
TxPacket . uiPvPIndex = uiPvPIndex ;
TxPacket . cSec = cSec ;
AddSendData ( MAVI_PVP_STARTMSG , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPRoomInfo ( CDNUser * pUser , CDNPvP * pPvP )
{
MAVIPVP_ROOMINFO TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = pUser - > GetAccountDBID ( ) ;
TxPacket . uiIndex = pPvP - > GetIndex ( ) ;
TxPacket . uiWinCondition = pPvP - > GetGameModeWinCondition ( ) ;
TxPacket . uiGameModeTableID = pPvP - > GetGameModeTableID ( ) ;
TxPacket . uiPlayTimeSec = pPvP - > GetGameModePlayTimeSec ( ) ;
TxPacket . cMaxUser = static_cast < BYTE > ( pPvP - > GetMaxUser ( ) ) ;
TxPacket . bIsGuildWar = pPvP - > GetIsGuildWarSystem ( ) ;
# if defined( PRE_PVP_GAMBLEROOM )
TxPacket . cGambleType = pPvP - > GetGambleRoomType ( ) ;
TxPacket . nGamblePrice = pPvP - > GetGambleRoomPrice ( ) ;
# endif
AddSendData ( MAVI_PVP_ROOMINFO , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendPvPMemberGrade ( UINT nAccountDBID , USHORT nTeam , UINT uiUserState , UINT nChangedSessionID , int nRetCode )
{
MAVIPvPMemberGrade packet ;
memset ( & packet , 0 , sizeof ( MAVIPvPMemberGrade ) ) ;
packet . nAccountDBID = nAccountDBID ;
packet . nTeam = nTeam ;
packet . uiUserState = uiUserState ;
packet . nChangedSessionID = nChangedSessionID ;
packet . nRetCode = nRetCode ;
AddSendData ( MAVI_PVP_MEMBERGRADE , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendPvPMemberIndex ( USHORT nTeam , const VIMAPVPSwapMemberIndex * pIndex , int nRetCode )
{
MAVIPvPMemberIndex packet ;
memset ( & packet , 0 , sizeof ( MAVIPvPMemberIndex ) ) ;
packet . nAccountDBID = pIndex - > nAccountDBID ;
packet . nRetCode = nRetCode ;
packet . nTeam = nTeam ;
packet . cCount = pIndex - > cCount ;
memcpy ( packet . Index , pIndex - > Index , sizeof ( packet . Index ) ) ;
AddSendData ( MAVI_PVP_MEMBERINDEX , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( packet ) - sizeof ( packet . Index ) + ( sizeof ( TSwapMemberIndex ) * packet . cCount ) ) ;
}
# if defined(PRE_ADD_PVP_VILLAGE_ACCESS)
void CDNVillageConnection : : SendPvPRoomListRelay ( const BYTE cVillageID , const VIMAPVP_ROOMLIST * pPacket )
{
MAVIPVP_ROOMLIST_RELAY packet ;
memset ( & packet , 0 , sizeof ( MAVIPVP_ROOMLIST_RELAY ) ) ;
packet . cVillageID = cVillageID ;
packet . uiAccountDBID = pPacket - > uiAccountDBID ;
memcpy ( & packet . sRoomList , pPacket , sizeof ( packet . sRoomList ) ) ;
AddSendData ( MAVI_PVP_ROOMLIST_RELAY , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendPvPRoomListRelayAck ( PVP_ROOMLIST_RELAY * pPacket )
{
AddSendData ( MAVI_PVP_ROOMLIST_RELAY_ACK , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( PVP_ROOMLIST_RELAY ) - sizeof ( pPacket - > sSCPVP_ROOMLIST ) + pPacket - > nSize ) ;
}
# endif
# ifdef PRE_ADD_COLOSSEUM_BEGINNER
void CDNVillageConnection : : SendPvPChangeChannelResult ( UINT nAccountDBID , BYTE cType , int nRetCode )
{
MAVIPVP_CHANGECHANNEL packet ;
memset ( & packet , 0 , sizeof ( MAVIPVP_CHANGECHANNEL ) ) ;
packet . nAccountDBID = nAccountDBID ;
packet . cType = cType ;
packet . nRetCode = nRetCode ;
AddSendData ( MAVI_PVP_CHANGECHANNEL , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( packet ) ) ;
}
# endif //#ifdef PRE_ADD_COLOSSEUM_BEGINNER
# if defined(PRE_ADD_PVP_TOURNAMENT)
void CDNVillageConnection : : SendPvPSwapTournamentIndex ( const short nRetCode , const UINT nAccounDBID , const char cSourceIndex , const char cDestIndex )
{
MAVIPVPSwapTournamentIndex packet ;
memset ( & packet , 0 , sizeof ( MAVIPVPSwapTournamentIndex ) ) ;
packet . nRetCode = nRetCode ;
packet . nAccountDBID = nAccounDBID ;
packet . cSourceIndex = cSourceIndex ;
packet . cDestIndex = cDestIndex ;
AddSendData ( MAVI_PVP_SWAP_TOURNAMENT_INDEX , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendPvPShuffleTournamentIndex ( CDNPvP * pPvPRoom )
{
MAVIPVPShuffleTournamentIndex packet ;
memset ( & packet , 0 , sizeof ( MAVIPVPShuffleTournamentIndex ) ) ;
packet . uiPvPIndex = pPvPRoom - > GetIndex ( ) ;
packet . unVillageChannelID = pPvPRoom - > GetVillageChannelID ( ) ;
packet . nCount = pPvPRoom - > GetMaxUser ( ) ;
memcpy ( packet . uiAccountDBID , pPvPRoom - > GetPvPTournamentIndexAll ( ) , sizeof ( UINT ) * packet . nCount ) ;
int nLen = sizeof ( MAVIPVPShuffleTournamentIndex ) - sizeof ( packet . uiAccountDBID ) + ( sizeof ( UINT ) * packet . nCount ) ;
AddSendData ( MAVI_PVP_SHUFFLE_TOURNAMENT_INDEX , 0 , reinterpret_cast < char * > ( & packet ) , nLen ) ;
}
# endif
void CDNVillageConnection : : SendLadderSystemDelUser ( CDNUser * pUser )
{
LadderSystem : : MAVIDelUser TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
_wcscpy ( TxPacket . wszCharName , NAMELENMAX , pUser - > GetCharacterName ( ) , ( int ) wcslen ( pUser - > GetCharacterName ( ) ) ) ;
TxPacket . biCharDBID = pUser - > GetCharacterDBID ( ) ;
AddSendData ( MAVI_LADDERSYSTEM_DELUSER , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendLadderSystemRoomSync ( GAMAPVP_LADDERROOMSYNC * pPacket )
{
LadderSystem : : MAVIRoomSync TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . biRoomIndexArr [ 0 ] = pPacket - > biRoomIndexArr [ 0 ] ;
TxPacket . biRoomIndexArr [ 1 ] = pPacket - > biRoomIndexArr [ 1 ] ;
TxPacket . State = pPacket - > State ;
AddSendData ( MAVI_LADDERSYSTEM_ROOMSYNC , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
// MasterSystem
void CDNVillageConnection : : SendMasterSystemCheckMasterApplication ( short nRet , UINT uiPupilAccountDBID , INT64 biMasterCharacterDBID )
{
MasterSystem : : MAVICheckMasterApplication TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . nRet = nRet ;
TxPacket . uiPupilAccountDBID = uiPupilAccountDBID ;
TxPacket . biMasterCharacterDBID = biMasterCharacterDBID ;
AddSendData ( MAVI_MASTERSYSTEM_CHECK_MASTERAPPLICATION , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemSyncSimpleInfo ( UINT uiAccountDBID , INT64 biCharacterDBID , MasterSystem : : EventType : : eCode EventCode )
{
MasterSystem : : MAVISyncSimpleInfo TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . biCharacterDBID = biCharacterDBID ;
TxPacket . EventCode = EventCode ;
AddSendData ( MAVI_MASTERSYSTEM_SYNC_SIMPLEINFO , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemSyncJoin ( UINT uiAccountDBID , INT64 biCharacterDBID , bool bIsAddPupil )
{
MasterSystem : : MAVISyncJoin TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . biCharacterDBID = biCharacterDBID ;
TxPacket . bIsAddPupil = bIsAddPupil ;
AddSendData ( MAVI_MASTERSYSTEM_SYNC_JOIN , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemSyncLeave ( UINT uiAccountDBID , INT64 biCharacterDBID , bool bIsDelPupil )
{
MasterSystem : : MAVISyncLeave TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . biCharacterDBID = biCharacterDBID ;
TxPacket . bIsDelPupil = bIsDelPupil ;
AddSendData ( MAVI_MASTERSYSTEM_SYNC_LEAVE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemSyncGraduate ( UINT uiAccountDBID , MasterSystem : : VIMASyncGraduate * pPacket )
{
MasterSystem : : MAVISyncGraduate TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
_wcscpy ( TxPacket . wszCharName , NAMELENMAX , pPacket - > wszCharName , ( int ) wcslen ( pPacket - > wszCharName ) ) ;
AddSendData ( MAVI_MASTERSYSTEM_SYNC_GRADUATE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemSyncConnect ( UINT uiAccountDBID , bool bIsConnect , WCHAR * pwszCharName )
{
MasterSystem : : MAVISyncConnect TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . bIsConnect = bIsConnect ;
_wcscpy ( TxPacket . wszCharName , NAMELENMAX , pwszCharName , ( int ) wcslen ( pwszCharName ) ) ;
AddSendData ( MAVI_MASTERSYSTEM_SYNC_CONNECT , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemCheckLeave ( int iRet , UINT uiAccountDBID , INT64 biDestCharacterDBID , bool bIsMaster )
{
MasterSystem : : MAVICheckLeave TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . iRet = iRet ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . biDestCharacterDBID = biDestCharacterDBID ;
TxPacket . bIsMaster = bIsMaster ;
AddSendData ( MAVI_MASTERSYSTEM_CHECK_LEAVE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemRecallMaster ( int iRet , UINT uiAccountDBID , WCHAR * pwszCharName , bool bIsConfirm )
{
MasterSystem : : MAVIRecallMaster TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . iRet = iRet ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . bIsConfirm = bIsConfirm ;
_wcscpy ( TxPacket . wszCharName , NAMELENMAX , pwszCharName , ( int ) wcslen ( pwszCharName ) ) ;
AddSendData ( MAVI_MASTERSYSTEM_RECALL_MASTER , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemJoinConfirm ( const UINT uiMasterAccountDBID , const BYTE cLevel , const BYTE cJob , WCHAR * pwszPupilCharName )
{
MasterSystem : : MAVIJoinConfirm TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiMasterAccountDBID = uiMasterAccountDBID ;
TxPacket . cLevel = cLevel ;
TxPacket . cJob = cJob ;
_wcscpy ( TxPacket . wszPupilCharName , _countof ( TxPacket . wszPupilCharName ) , pwszPupilCharName , ( int ) wcslen ( pwszPupilCharName ) ) ;
AddSendData ( MAVI_MASTERSYSTEM_JOIN_CONFIRM , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendMasterSystemJoinConfirmResult ( const int iRet , const bool bIsAccept , const INT64 biMasterCharacterDBID , WCHAR * pwszPupilCharName )
{
MasterSystem : : MAVIJoinResult TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . biMasterCharacterDBID = biMasterCharacterDBID ;
TxPacket . iRet = iRet ;
TxPacket . bIsAccept = bIsAccept ;
_wcscpy ( TxPacket . wszPupilCharName , _countof ( TxPacket . wszPupilCharName ) , pwszPupilCharName , ( int ) wcslen ( pwszPupilCharName ) ) ;
AddSendData ( MAVI_MASTERSYSTEM_JOIN_CONFIRM_RESULT , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
# if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
void CDNVillageConnection : : SendSyncSystemMail ( UINT uiAccountDBID , VIMASyncSystemMail * pMail )
{
MAVISyncSystemMail TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . nMailDBID = pMail - > nMailDBID ;
TxPacket . iTotalMailCount = pMail - > iTotalMailCount ;
TxPacket . iNotReadMailCount = pMail - > iNotReadMailCount ;
TxPacket . i7DaysLeftMailCount = pMail - > i7DaysLeftMailCount ;
AddSendData ( MAVI_SYNC_SYSTEMMAIL , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
# endif // #if defined( PRE_ADD_NPC_REPUTATION_SYSTEM )
// ġƮ<C4A1> <C6AE> <EFBFBD> <EFBFBD>
void CDNVillageConnection : : SendResRecall ( CDNUser * pRecallUser , const VIMAReqRecall * pPacket )
{
MAVIResRecall TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = pPacket - > uiAccountDBID ;
TxPacket . uiRecallAccountDBID = pRecallUser - > GetAccountDBID ( ) ;
TxPacket . uiRecallChannelID = pPacket - > uiRecallChannelID ;
# if defined(PRE_ADD_MULTILANGUAGE)
TxPacket . cRecallerSelectedLang = pPacket - > cCallerSelectedLang ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
AddSendData ( MAVI_RESRECALL , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendVillageTrace ( CDNUser * pTargetUser , UINT uiAccountDBID , bool bIsGMCall , char cSelectedLang )
{
MAVIVillageTrace TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . uiTargetAccountDBID = pTargetUser - > GetAccountDBID ( ) ;
TxPacket . iTargetVillageID = pTargetUser - > GetVillageID ( ) ;
TxPacket . iTargetChannelID = pTargetUser - > GetChannelID ( ) ;
TxPacket . bIsGMCall = bIsGMCall ;
# if defined(PRE_ADD_MULTILANGUAGE)
TxPacket . cSelectedLang = cSelectedLang ;
# endif //#if defined(PRE_ADD_MULTILANGUAGE)
AddSendData ( MAVI_VILLAGETRACE , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendUserRestraint ( UINT nAccountDBID )
{
MARestraint packet ;
memset ( & packet , 0 , sizeof ( MARestraint ) ) ;
packet . nAccountDBID = nAccountDBID ;
AddSendData ( MAVI_RESTRAINT , 0 , reinterpret_cast < char * > ( & packet ) , sizeof ( packet ) ) ;
}
//VoiceChat
void CDNVillageConnection : : SendVoiceChannelID ( TINSTANCEID InstanceID , int nVoiceChannelType , int nPvPLobbyChannelID , UINT * nVoiceChannelID )
{
MAVIVoiceChannelID packet ;
memset ( & packet , 0 , sizeof ( MAVIVoiceChannelID ) ) ;
packet . InstanceID = InstanceID ;
packet . cType = ( BYTE ) nVoiceChannelType ;
packet . nPvPLobbyChannelID = nPvPLobbyChannelID ;
for ( int i = 0 ; i < PvPCommon : : TeamIndex : : Max ; i + + )
{
if ( nVoiceChannelID [ i ] < = 0 ) continue ;
packet . nVoiceChannelD [ i ] = nVoiceChannelID [ i ] ;
}
AddSendData ( MAVI_VOICECHANNELID , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendFarmSync ( UINT uiAccountDBID , INT64 biCharacterDBID , Farm : : ServerSyncType : : eType Type )
{
MAVIFarmSync TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . biCharacterDBID = biCharacterDBID ;
TxPacket . Type = Type ;
AddSendData ( MAVI_FARM_SYNC , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
void CDNVillageConnection : : SendNotice ( const WCHAR * pMsg , const int nLen , int nSec )
{
MANotice packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Info . nNoticeType = _NOTICETYPE_WORLD ;
packet . Info . nSlideShowSec = nSec ;
_wcscpy ( packet . wszNoticeMsg , CHATLENMAX , pMsg , ( int ) wcslen ( pMsg ) ) ;
packet . nLen = nLen ;
AddSendData ( MAVI_NOTICE , 0 , ( char * ) & packet , sizeof ( MANotice ) - sizeof ( packet . wszNoticeMsg ) + ( packet . nLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendNoticeZone ( int nMapIndex , const WCHAR * pMsg , const int nLen , int nSec )
{
MANotice packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Info . nNoticeType = _NOTICETYPE_ZONE ;
packet . Info . nMapIdx = nMapIndex ;
packet . Info . nSlideShowSec = nSec ;
_wcscpy ( packet . wszNoticeMsg , CHATLENMAX , pMsg , ( int ) wcslen ( pMsg ) ) ;
packet . nLen = nLen ;
AddSendData ( MAVI_NOTICE , 0 , ( char * ) & packet , sizeof ( MANotice ) - sizeof ( packet . wszNoticeMsg ) + ( packet . nLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendNoticeChannel ( int nChannelID , const WCHAR * pMsg , int nLen , int nSec )
{
MANotice packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Info . nNoticeType = _NOTICETYPE_CHANNEL ;
packet . Info . nChannelID = nChannelID ;
packet . Info . nSlideShowSec = nSec ;
_wcscpy ( packet . wszNoticeMsg , CHATLENMAX , pMsg , ( int ) wcslen ( pMsg ) ) ;
packet . nLen = nLen ;
AddSendData ( MAVI_NOTICE , 0 , ( char * ) & packet , sizeof ( MANotice ) - sizeof ( packet . wszNoticeMsg ) + ( packet . nLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendNoticeServer ( int nMID , const WCHAR * pMsg , int nLen , int nSec )
{
MANotice packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . Info . nNoticeType = _NOTICETYPE_EACHSERVER ;
packet . Info . nManagedID = nMID ;
packet . Info . nSlideShowSec = nSec ;
_wcscpy ( packet . wszNoticeMsg , _countof ( packet . wszNoticeMsg ) , pMsg , ( int ) wcslen ( pMsg ) ) ;
packet . nLen = nLen ;
AddSendData ( MAVI_NOTICE , 0 , ( char * ) & packet , sizeof ( MANotice ) - sizeof ( packet . wszNoticeMsg ) + ( packet . nLen * sizeof ( WCHAR ) ) ) ;
}
void CDNVillageConnection : : SendNoticeCancel ( )
{
AddSendData ( MAVI_CANCELNOTICE , 0 , NULL , 0 ) ;
}
void CDNVillageConnection : : SendDetachUser ( UINT nAccountDBID , bool bIsDuplicate , UINT nSessionID )
{
MADetachUser Detach ;
memset ( & Detach , 0 , sizeof ( MADetachUser ) ) ;
Detach . nAccountDBID = nAccountDBID ;
Detach . bIsDuplicate = bIsDuplicate ;
Detach . nSessionID = nSessionID ;
AddSendData ( MAVI_DETACHUSER , 0 , ( char * ) & Detach , sizeof ( MADetachUser ) ) ;
}
# if defined(_CH)
void CDNVillageConnection : : SendFCMState ( UINT nAccountDBID , int nOnline , bool bSend )
{
MAFCMState State = { 0 , } ;
State . nAccountDBID = nAccountDBID ;
State . nOnlineMin = nOnline ;
State . bSend = bSend ;
AddSendData ( MAVI_FCMSTATE , 0 , ( char * ) & State , sizeof ( MAFCMState ) ) ;
g_Log . Log ( LogType : : _NORMAL , L " [ADBID:%u] MAVI_FCMSTATE Online:%d \r \n " , nAccountDBID , nOnline ) ;
}
# endif // _CH
void CDNVillageConnection : : SendNotifyMail ( UINT nToAccountDBID , INT64 biToCharacterDBID , short wTotalMailCount , short wNotReadMailCount , short w7DaysLeftCount , bool bNewMail )
{
MANotifyMail Mail = { 0 , } ;
Mail . nToAccountDBID = nToAccountDBID ;
Mail . biToCharacterDBID = biToCharacterDBID ;
Mail . wTotalMailCount = wTotalMailCount ;
Mail . wNotReadMailCount = wNotReadMailCount ;
Mail . w7DaysLeftCount = w7DaysLeftCount ;
Mail . bNewMail = bNewMail ;
AddSendData ( MAVI_NOTIFYMAIL , 0 , ( char * ) & Mail , sizeof ( MANotifyMail ) ) ;
}
void CDNVillageConnection : : SendNotifyMarket ( UINT nSellerAccountDBID , INT64 biSellerCharacterDBID , int nItemID , short wCalculationCount )
{
MANotifyMarket Market = { 0 , } ;
Market . nSellerAccountDBID = nSellerAccountDBID ;
Market . biSellerCharacterDBID = biSellerCharacterDBID ;
Market . nItemID = nItemID ;
Market . wCalculationCount = wCalculationCount ;
AddSendData ( MAVI_NOTIFYMARKET , 0 , ( char * ) & Market , sizeof ( MANotifyMarket ) ) ;
}
void CDNVillageConnection : : SendNotifyGift ( UINT nToAccountDBID , INT64 biToCharacterDBID , bool bNew , int nGiftCount )
{
MANotifyGift Gift = { 0 , } ;
Gift . nToAccountDBID = nToAccountDBID ;
Gift . biToCharacterDBID = biToCharacterDBID ;
Gift . bNew = bNew ;
Gift . nGiftCount = nGiftCount ;
AddSendData ( MAVI_NOTIFYGIFT , 0 , ( char * ) & Gift , sizeof ( MANotifyGift ) ) ;
}
void CDNVillageConnection : : SendPCBangResult ( UINT nAccountDBID , CDNUser * pUser )
{
MAPCBangResult Result ;
memset ( & Result , 0 , sizeof ( MAPCBangResult ) ) ;
Result . nAccountDBID = nAccountDBID ;
if ( pUser ) {
# if defined(_KR)
Result . cResult = pUser - > m_cPCBangResult ;
Result . cAuthorizeType = pUser - > m_cPCBangAuthorizeType ;
Result . cOption = pUser - > m_cPCBangOption ;
Result . nArgument = pUser - > m_nPCBangArgument ;
Result . bShutdowned = pUser - > m_bShutdowned ;
Result . cPolicyError = pUser - > m_cPolicyError ;
Result . nShutdownTime = pUser - > m_nShutdownTime ;
# else // #if defined(_KR)
# if defined(_ID)
Result . bBlockPcCafe = pUser - > m_bBlockPcCafe ;
# endif // #if defined(_ID)
Result . cPCBangGrade = pUser - > GetPCBangGrade ( ) ;
# if defined(_KRAZ)
Result . ShutdownData = pUser - > m_ShutdownData ;
# endif // #if defined(_KRAZ)
# endif // #if defined(_KR)
}
AddSendData ( MAVI_PCBANGRESULT , 0 , ( char * ) & Result , sizeof ( MAPCBangResult ) ) ;
}
# if defined(PRE_ADD_REMOTE_QUEST)
void CDNVillageConnection : : SendUserTempDataResult ( UINT uiAccountDBID , CDNUser * pUser )
{
if ( ! pUser ) return ;
MAVIUserTempDataResult packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . uiAccountDBID = uiAccountDBID ;
packet . nDungeonClearCount = pUser - > GetDungeonClearCount ( ) ;
# if defined(PRE_ADD_REMOTE_QUEST)
pUser - > GetAcceptWaitRemoteQuest ( & packet . nAcceptWaitRemoteQuestCount , packet . AcceptWaitRemoteQuestList ) ;
# endif
# if defined(PRE_ADD_GAMEQUIT_REWARD)
packet . eUserGameQuitRewardType = pUser - > GetUserGameQuitRewardType ( ) ;
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
AddSendData ( MAVI_USERTEMPDATA_RESULT , 0 , ( char * ) & packet , sizeof ( MAVIUserTempDataResult ) - sizeof ( packet . AcceptWaitRemoteQuestList ) + sizeof ( int ) * packet . nAcceptWaitRemoteQuestCount ) ;
}
# else //#if defined(PRE_ADD_REMOTE_QUEST)
# if defined(PRE_ADD_GAMEQUIT_REWARD)
void CDNVillageConnection : : SendUserTempDataResult ( UINT uiAccountDBID , int nDungeonClearCount , GameQuitReward : : RewardType : : eType eUserGameQuitRewardType )
# else // #if defined(PRE_ADD_GAMEQUIT_REWARD)
void CDNVillageConnection : : SendUserTempDataResult ( UINT uiAccountDBID , int nDungeonClearCount )
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
{
MAVIUserTempDataResult packet ;
memset ( & packet , 0 , sizeof ( packet ) ) ;
packet . uiAccountDBID = uiAccountDBID ;
packet . nDungeonClearCount = nDungeonClearCount ;
# if defined(PRE_ADD_GAMEQUIT_REWARD)
packet . eUserGameQuitRewardType = cUserGameQuitRewardType ;
# endif // #if defined(PRE_ADD_GAMEQUIT_REWARD)
AddSendData ( MAVI_USERTEMPDATA_RESULT , 0 , ( char * ) & packet , sizeof ( MAGAUserTempDataResult ) ) ;
}
# endif //#if defined(PRE_ADD_REMOTE_QUEST)
void CDNVillageConnection : : SendCheckLastDungeonInfo ( UINT uiAccountDBID , INT64 biCharacterDBID , bool bIsCheck , const WCHAR * pwszPartyName )
{
MAVICheckLastDungeonInfo TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . uiAccountDBID = uiAccountDBID ;
TxPacket . biCharacterDBID = biCharacterDBID ;
TxPacket . bIsCheck = bIsCheck ;
if ( pwszPartyName )
_wcscpy ( TxPacket . wszPartyName , _countof ( TxPacket . wszPartyName ) , pwszPartyName , static_cast < int > ( wcslen ( pwszPartyName ) ) ) ;
AddSendData ( MAVI_CHECK_LASTDUNGEONINFO , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
# if defined( PRE_PARTY_DB )
void CDNVillageConnection : : SendConfirmLastDungeonInfo ( int iRet , UINT uiAccountDBID , BreakInto : : Type : : eCode BreakIntoType )
# else
void CDNVillageConnection : : SendConfirmLastDungeonInfo ( int iRet , UINT uiAccountDBID )
# endif // #if defined( PRE_PARTY_DB )
{
MAVIConfirmLastDungeonInfo TxPacket ;
memset ( & TxPacket , 0 , sizeof ( TxPacket ) ) ;
TxPacket . iRet = iRet ;
TxPacket . uiAccountDBID = uiAccountDBID ;
# if defined( PRE_PARTY_DB )
TxPacket . BreakIntoType = BreakIntoType ;
# endif // #if defined( PRE_PARTY_DB )
AddSendData ( MAVI_CONFIRM_LASTDUNGEONINFO , 0 , reinterpret_cast < char * > ( & TxPacket ) , sizeof ( TxPacket ) ) ;
}
# if defined(PRE_ADD_QUICK_PVP)
void CDNVillageConnection : : SendMakeQuickPvPRoom ( int nRet , UINT nMasterAccountDBID , UINT nSlaveAccountDBID )
{
MAVIMakeQuickPvPRoom Packet ;
memset ( & Packet , 0 , sizeof ( MAVIMakeQuickPvPRoom ) ) ;
Packet . nRet = nRet ;
Packet . uiMasterAccountDBID = nMasterAccountDBID ;
Packet . uiSlaveAccountDBID = nSlaveAccountDBID ;
AddSendData ( MAVI_MAKEQUICKPVP_ROOM , 0 , reinterpret_cast < char * > ( & Packet ) , sizeof ( Packet ) ) ;
}
# endif
# if defined (PRE_ADD_BESTFRIEND)
void CDNVillageConnection : : SendSearchBestFriend ( MASearchBestFriend * pPacket )
{
AddSendData ( MAVI_SEARCH_BESTFRIEND , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendRegistBestFriend ( MARegistBestFriend * pPacket )
{
AddSendData ( MAVI_REGIST_BESTFRIEND , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendRegistBestFriendResult ( MARegistBestFriendResult * pPacket )
{
AddSendData ( MAVI_REGIST_BESTFRIEND_RETMSG , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendCompleteBestFriend ( MACompleteBestFriend * pPacket )
{
AddSendData ( MAVI_COMPLETE_BESTFRIEND , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendEditBestFriendMemo ( MAEditBestFriendMemo * pPacket )
{
AddSendData ( MAVI_EDIT_BESTFRIENDMEMO , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendCancelBestFriend ( MACancelBestFriend * pPacket )
{
AddSendData ( MAVI_CANCEL_BESTFRIEND , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendCloseBestFriend ( MACloseBestFriend * pPacket )
{
AddSendData ( MAVI_CLOSE_BESTFRIEND , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendLevelBestFriend ( MALevelUpBestFriend * pPacket )
{
AddSendData ( MAVI_LEVELUP_BESTFRIEND , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined( PRE_WORLDCOMBINE_PARTY )
void CDNVillageConnection : : SendDelWorldParty ( MADelWorldParty * pPacket )
{
AddSendData ( MAVI_DELWORLDPARTY , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendWorldPartyMember ( GAMASendWorldPartyMember * pPacket )
{
AddSendData ( MAVI_WORLDPARTYMEMBER , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined( PRE_PRIVATECHAT_CHANNEL )
void CDNVillageConnection : : SendPrivateChatChannelAdd ( MAAddPrivateChannel * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_ADD , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelMemberAdd ( MAAddPrivateChannelMember * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MEMBERADD , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelMemberInvite ( MAInvitePrivateChannelMember * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MEMBERINVITE , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelMemberInviteResult ( MAInvitePrivateChannelMemberResult * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MEMBERINVITERESULT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelMemberDel ( MADelPrivateChannelMember * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MEMBERDEL , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelMemberKickResult ( MAKickPrivateChannelMemberResult * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MEMBERKICKRESULT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelMod ( MAModPrivateChannel * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MOD , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendPrivateChatChannelModMemberName ( MAModPrivateChannelMemberName * pPacket )
{
AddSendData ( MAVI_PRIVATECHATCHANNEL_MODMEMBERNAME , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined( PRE_WORLDCOMBINE_PVP )
void CDNVillageConnection : : SendDelWorldPvPRoom ( MADelWorldPvPRoom * pPacket )
{
AddSendData ( MAVI_DEL_WORLDPVPROOM , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendWorldPvPRoomJoinResult ( MAWorldPvPRoomJoinResult * pPacket )
{
AddSendData ( MAVI_WORLDPVPROOM_JOINRESULT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendWorldPvPRoomGMCreateResult ( MAWorldPvPRoomGMCreateResult * pPacket )
{
AddSendData ( MAVI_WORLDPVPROOM_GMCRETERESULT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined(PRE_ADD_MUTE_USERCHATTING)
void CDNVillageConnection : : SendMuteUserChatting ( MAMuteUserChat * pPacket )
{
AddSendData ( MAVI_MUTE_USERCHAT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif // #if defined(PRE_ADD_MUTE_USERCHATTING)
# if defined( PRE_ALTEIAWORLD_EXPLORE )
void CDNVillageConnection : : SendAlteiaWorldSendTicket ( MAAlteiaWorldSendTicket * pPacket )
{
AddSendData ( MAVI_ALTEIAWORLD_SENDTICKET , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendAlteiaWorldSendTicketResult ( MAAlteiaWorldSendTicketResult * pPacket )
{
AddSendData ( MAVI_ALTEIAWORLD_SENDTICKET_RESULT , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined(PRE_ADD_CHNC2C)
void CDNVillageConnection : : SendC2CGetCoinBalance ( INT64 biCharacterDBID , const char * szSeqID )
{
MAC2CGetCoinBalance packet = { 0 , } ;
packet . biCharacterDBID = biCharacterDBID ;
memcpy ( packet . szSeqID , szSeqID , sizeof ( packet . szSeqID ) ) ;
AddSendData ( MAVI_C2C_CHAR_COINBALANCE , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendC2CAddCoin ( UINT uiAccountDBID , INT64 biCharacterDBID , INT64 biAddCoin , const char * szSeqID , const char * szBookID )
{
MAC2CAddCoin packet = { 0 , } ;
packet . uiAccountDBID = uiAccountDBID ;
packet . biCharacterDBID = biCharacterDBID ;
packet . biAddCoin = biAddCoin ;
memcpy ( packet . szBookID , szBookID , sizeof ( packet . szBookID ) ) ;
memcpy ( packet . szSeqID , szSeqID , sizeof ( packet . szSeqID ) ) ;
AddSendData ( MAVI_C2C_CHAR_ADDCOIN , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendC2CReduceCoin ( UINT uiAccountDBID , INT64 biCharacterDBID , INT64 biReduceCoin , const char * szSeqID , const char * szBookID )
{
MAC2CReduceCoin packet = { 0 , } ;
packet . uiAccountDBID = uiAccountDBID ;
packet . biCharacterDBID = biCharacterDBID ;
packet . biReduceCoin = biReduceCoin ;
memcpy ( packet . szBookID , szBookID , sizeof ( packet . szBookID ) ) ;
memcpy ( packet . szSeqID , szSeqID , sizeof ( packet . szSeqID ) ) ;
AddSendData ( MAVI_C2C_CHAR_REDUCECOIN , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
# endif //#if defined(PRE_ADD_CHNC2C)
# if defined( PRE_DRAGONBUFF )
void CDNVillageConnection : : SendApplyWorldBuff ( MAApplyWorldBuff * pPacket )
{
AddSendData ( MAVI_APPLYWORLDBUFF , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined(PRE_ADD_DWC)
void CDNVillageConnection : : SendInviteDWCTeamMember ( MAInviteDWCTeamMember * pPacket )
{
AddSendData ( MAVI_INVITE_DWCTEAMMEMB , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendInviteDWCTeamMemberAck ( MAInviteDWCTeamMemberAck * pPacket )
{
AddSendData ( MAVI_INVITE_DWCTEAMMEMB_ACK , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendInviteDWCTeamMemberAck ( UINT nAccountDBID , int nRet )
{
MAInviteDWCTeamMemberAck packet = { 0 , } ;
packet . nInviterDBID = nAccountDBID ;
packet . nRetCode = nRet ;
AddSendData ( MAVI_INVITE_DWCTEAMMEMB_ACK , 0 , ( char * ) & packet , sizeof ( packet ) ) ;
}
void CDNVillageConnection : : SendAddDWCTeamMember ( MAAddDWCTeamMember * pPacket )
{
AddSendData ( MAVI_ADD_DWCTEAMMEMBER , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendLeaveDWCTeamMember ( MALeaveDWCTeamMember * pPacket )
{
AddSendData ( MAVI_DEL_DWCTEAMMEMB , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendDismissDWCTeam ( MADismissDWCTeam * pPacket )
{
AddSendData ( MAVI_DISMISS_DWCTEAM , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendChangeDWCTeamMemberState ( MAChangeDWCTeamMemberState * pPacket )
{
AddSendData ( MAVI_CHANGE_DWCTEAMMEMB_STATE , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
void CDNVillageConnection : : SendUpdateDWCScore ( MADWCUpdateScore * pPacket )
{
AddSendData ( MAVI_DWC_UPDATE_SCORE , 0 , reinterpret_cast < char * > ( pPacket ) , sizeof ( ( * pPacket ) ) ) ;
}
# endif
# if defined( PRE_PVP_GAMBLEROOM )
void CDNVillageConnection : : SendGambleRoomCreate ( int nTotalGambleRoomCount )
{
MACreateGambleRoom Packet = { 0 , } ;
Packet . nTotalGambleRoomCount = nTotalGambleRoomCount ;
AddSendData ( MAVI_GAMBLEROOM_CREATE , 0 , ( char * ) & Packet , sizeof ( Packet ) ) ;
}
# endif