DragonNest/Extern/Nexon/NMClass/NMCOClientObject.cpp
2024-12-19 09:48:26 +08:00

1609 lines
No EOL
34 KiB
C++

#include "NMManager.h"
#include "NMCOClientObject.h"
CNMCOClientObject::CNMCOClientObject()
{
::ZeroMemory( &this->m_cs, sizeof( this->m_cs ) );
::InitializeCriticalSection( &this->m_cs );
}
CNMCOClientObject::~CNMCOClientObject()
{
::DeleteCriticalSection( &this->m_cs );
}
void CNMCOClientObject::ResetMyInfo( void )
{
NMCSLOCK( this->m_cs )
{
CNMRealUserInfo ruiRealUserInfo;
this->m_ruiRealUserInfo = ruiRealUserInfo;
this->m_aGOIs.clear();
}
}
void CNMCOClientObject::ResetGuildOnlineInfo( void )
{
NMCSLOCK( this->m_cs )
{
this->m_aGOIs.clear();
}
}
BOOL CNMCOClientObject::SetLocale
(
NMLOCALEID uLocaleID
)
{
if ( CNMManager::GetInstance().SetLocale( uLocaleID ) )
{
CNMSetLocaleFunc func( uLocaleID );
return CNMManager::GetInstance().CallNMFunc( &func );
}
return FALSE;
}
BOOL CNMCOClientObject::SetLocaleAndRegion
(
IN NMLOCALEID uLocaleID
, IN NMREGIONCODE uRegionCode
)
{
if( CNMManager::GetInstance().SetLocaleAndRegion( uLocaleID, uRegionCode ) )
{
CNMSetLocaleFunc func( uLocaleID, uRegionCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
return FALSE;
}
BOOL CNMCOClientObject::SetConnConfig
(
const CNMConnConfig & ConnConfig
)
{
CNMSetConnConfigFunc func( ConnConfig );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SetCustomServerInfo
(
ServerInfoList const & aServerInfo
)
{
CNMSetServerInfoFunc func( aServerInfo );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SetPatchOption
(
BOOL bPatch
)
{
return CNMManager::GetInstance().SetPatchOption( bPatch );
}
BOOL CNMCOClientObject::SetUseFriendModuleOption
(
BOOL bUseFriendModule
)
{
return CNMManager::GetInstance().SetUseFriendModuleOption( bUseFriendModule );
}
BOOL CNMCOClientObject::Initialize
(
NMGameCode uGameCode
)
{
CNMInitializeFunc func( uGameCode, static_cast<UINT32>( kSupportFlag_FromGameCode ) );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RegisterCallbackMessage
(
HWND hWnd,
UINT32 uMessage
)
{
CNMRegisterCallbackFunc func( hWnd, uMessage );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ResetCallbackMessage
(
HWND hWnd
)
{
CNMResetCallbackFunc func( hWnd );
return CNMManager::GetInstance().CallNMFunc( &func );
}
NMLoginAuthReplyCode CNMCOClientObject::AttachAuth( LPCTSTR pszPassport, INT32 nRegionCode )
{
CNMLoginAuthFunc func( pszPassport, nRegionCode );
CNMManager::GetInstance().CallNMFunc( &func );
return (NMLoginAuthReplyCode) func.nErrorCode;
}
BOOL CNMCOClientObject::DetachAuth()
{
CNMLogoutAuthFunc func;
return CNMManager::GetInstance().CallNMFunc( &func );
}
NMLoginAuthReplyCode CNMCOClientObject::LoginAuth( LPCTSTR pszNexonID, LPCTSTR pszPassword, INT32 nRegionCode, LPCTSTR pszMID, UINT32 uFromSite )
{
CNMLoginAuthFunc func( pszNexonID, pszPassword, nRegionCode, pszMID, uFromSite );
CNMManager::GetInstance().CallNMFunc( &func );
return (NMLoginAuthReplyCode) func.nErrorCode;
}
BOOL CNMCOClientObject::LogoutAuth()
{
CNMLogoutAuthFunc func;
return CNMManager::GetInstance().CallNMFunc( &func );
}
LPCTSTR CNMCOClientObject::GetNexonPassport( LPTSTR szPassportOut )
{
CNMGetNexonPassportFunc func;
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
NMSAFE_STRCOPY( szPassportOut, func.szNexonPassport, NXPASSPORT_SIZE );
return szPassportOut;
}
if ( szPassportOut )
{
szPassportOut[0] = 0;
}
return NULL;
}
NMLoginAuthReplyCode CNMCOClientObject::LoginAuthSecondary( LPCTSTR pszNexonID, LPCTSTR pszPassword )
{
CNMLoginAuthFunc func( pszNexonID, pszPassword, 0 );
func.bSecondary = TRUE;
CNMManager::GetInstance().CallNMFunc( &func );
return (NMLoginAuthReplyCode) func.nErrorCode;
}
BOOL CNMCOClientObject::LogoutAuthSecondary()
{
CNMLogoutAuthFunc func;
func.bSecondary = TRUE;
return CNMManager::GetInstance().CallNMFunc( &func );
}
LPCTSTR CNMCOClientObject::GetNexonPassportSecondary( LPTSTR szPassportOut )
{
CNMGetNexonPassportFunc func;
func.bSecondary = TRUE;
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
NMSAFE_STRCOPY( szPassportOut, func.szNexonPassport, NXPASSPORT_SIZE );
return szPassportOut;
}
if ( szPassportOut )
{
szPassportOut[0] = 0;
}
return NULL;
}
NMLoginAuthReplyCode CNMCOClientObject::LoginAuthMatrix( LPCTSTR pszPassport, LPCTSTR pszMatrixData )
{
CNMLoginAuthMatrixFunc func( pszPassport, pszMatrixData );
CNMManager::GetInstance().CallNMFunc( &func );
return (NMLoginAuthReplyCode) func.nErrorCode;
}
LPCTSTR CNMCOClientObject::GetMatrixInfo( LPTSTR szMatrixInfo )
{
CNMGetMatrixInfoFunc func;
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
NMSAFE_STRCOPY( szMatrixInfo, func.szMatrixInfo, MATRIXDATA_SIZE );
return szMatrixInfo;
}
if ( szMatrixInfo )
{
szMatrixInfo[0] = 0;
}
return NULL;
}
LPCTSTR CNMCOClientObject::GetNxHWID( LPTSTR szNxHWID )
{
CNMGetNxHWIDFunc func;
if ( szNxHWID )
{
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
NMSAFE_STRCOPY( szNxHWID, func.szNxHWID, NXHWID_SIZE );
return szNxHWID;
}
szNxHWID[0] = 0;
}
return szNxHWID;
}
NMGameTokenReplyCode CNMCOClientObject::GetGameToken( LPCTSTR pszSecureData, INT32 & nSecureCode )
{
CNMGetGameTokenFunc func( pszSecureData );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
nSecureCode = func.nSecureCode;
}
return (NMGameTokenReplyCode) func.nReplyCode;
}
BOOL CNMCOClientObject::LoginMessenger
(
UINT32 uSupportFlag
)
{
CNMLoginMessengerFunc func( uSupportFlag );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::LoginMessengerWithPassport
(
LPCTSTR pszNexonID,
LPCTSTR pszPassword,
PBYTE pbyPassportData,
INT32 cbyPassportLength,
UINT32 uSupportFlag,
INT32 nRegionCode
)
{
CNMLoginPassportFunc func( pszNexonID, pszPassword, pbyPassportData, cbyPassportLength, uSupportFlag, nRegionCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::LogoutMessenger
(
void
)
{
CNMLogoutMessengerFunc func;
return CNMManager::GetInstance().CallNMFunc(&func);
}
BOOL CNMCOClientObject::LoginVirtual
(
LPCTSTR szUserId,
UINT32 uVirtualIdCode,
LPCTSTR szPosition
)
{
CNMLoginVirtualFunc func( szUserId, uVirtualIdCode, szPosition );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::LogoutVirtual
(
void
)
{
CNMLogoutVirtualFunc func;
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::GetMyVirtualUserList
(
NMVirtualUserList&
aVirtualUser
, _UInt32_ uGameCode // = kGameCode_NULL
)
{
CNMGetMyVirtualUserListFunc
func( uGameCode );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
aVirtualUser = func.aVirtualUser;
return TRUE;
}
return FALSE;
}
BOOL CNMCOClientObject::ChangeMyPosition
(
LPCTSTR szPosition // POSITION_SIZE
)
{
CNMChangeMyPositionFunc
func( szPosition );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendRefreshMessage
(
NMREFRESHTYPE uRefreshType
)
{
CNMSendRefreshMessageFunc
func( uRefreshType );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeMyLevel
(
UINT32 uLevel,
UINT32 uLevelType /* = 0 */
)
{
CNMChangeMyLevelFunc func( uLevel, uLevelType );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RemoveMyVirtualUser
(
NMVirtualKey & keyVirtual
)
{
CNMRemoveMyVirtualUserFunc func( keyVirtual );
return CNMManager::GetInstance().CallNMFunc( &func );
}
_UInt64_ CNMCOClientObject::GetDllVersion
(
void
)
{
CNMGetVersionFunc
func( CNMGetVersionFunc::kDll );
return ( CNMManager::GetInstance().CallNMFunc( &func ) ? func.uVersion : 0 );
}
_UInt64_ CNMCOClientObject::GetNMCOSrvVersion
(
void
)
{
CNMGetVersionFunc
func( CNMGetVersionFunc::kCore );
return ( CNMManager::GetInstance().CallNMFunc( &func ) ? func.uVersion : 0 );
}
_UInt64_ CNMCOClientObject::GetMyIdCode
(
void
)
{
return this->m_ruiRealUserInfo.uIDCode;
}
_UInt32_ CNMCOClientObject::GetMyOid
(
void
)
{
return GET_OID( this->m_ruiRealUserInfo.uIDCode );
}
LPCTSTR CNMCOClientObject::GetMyLoginId
(
void
)
{
return this->m_ruiRealUserInfo.szLoginID;
}
LPCTSTR CNMCOClientObject::GetMyWord
(
void
)
{
return this->m_ruiRealUserInfo.szWord;
}
NMUSERSTATUS CNMCOClientObject::GetMyStatus
(
void
)
{
return this->m_ruiRealUserInfo.uStatus;
}
_UInt32_ CNMCOClientObject::GetMyLocalIP
(
void
)
{
return this->m_ruiRealUserInfo.uLocalIP;
}
_UInt32_ CNMCOClientObject::GetMyVirtualIP
(
void
)
{
return this->m_ruiRealUserInfo.uVirtualIP;
}
LPCTSTR CNMCOClientObject::GetMyName
(
void
)
{
return this->m_ruiRealUserInfo.szName;
}
LPCTSTR CNMCOClientObject::GetMyNickName
(
void
)
{
return this->m_ruiRealUserInfo.szNickName;
}
_UInt32_ CNMCOClientObject::GetMyMaskInfo
(
void
)
{
return this->m_ruiRealUserInfo.uMaskInfo;
}
NMSEXTYPE CNMCOClientObject::GetMySex
(
void
)
{
return this->m_ruiRealUserInfo.uSex;
}
_UInt32_ CNMCOClientObject::GetMyAge
(
void
)
{
return this->m_ruiRealUserInfo.uAge;
}
_UInt32_ CNMCOClientObject::GetMyAreaCode
(
void
)
{
return this->m_ruiRealUserInfo.uAreaCode;
}
LPCTSTR CNMCOClientObject::GetMyAreaName
(
void
)
{
return this->m_ruiRealUserInfo.szAreaName;
}
_UInt32_ CNMCOClientObject::GetMySchoolCode
(
void
)
{
return this->m_ruiRealUserInfo.uSchoolCode;
}
LPCTSTR CNMCOClientObject::GetMySchoolName
(
void
)
{
return this->m_ruiRealUserInfo.szSchoolName;
}
SYSTEMTIME CNMCOClientObject::GetMyBirthday
(
void
)
{
return this->m_ruiRealUserInfo.stBirthday;
}
CNMRealUserInfo CNMCOClientObject::GetMyInfo
(
void
)
{
CNMGetMyInfoFunc
func;
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
NMCSLOCK( this->m_cs )
{
this->m_ruiRealUserInfo = func.ruiUserInfo;
}
}
return this->m_ruiRealUserInfo;
}
BOOL CNMCOClientObject::ChangeMyStatus
(
NMUSERSTATUS uStatus
)
{
return this->ChangeMyInfo( uStatus, NULL, NULL, 0xFFFFFFFF );
}
BOOL CNMCOClientObject::ChangeMyWord
(
LPCTSTR szWord // TODAYWORD_SIZE
)
{
return this->ChangeMyInfo( kStatus_Unknown, szWord, NULL, 0xFFFFFFFF );
}
BOOL CNMCOClientObject::ChangeMyNickName
(
LPCTSTR szNickName // NICKNAME_SIZE
)
{
return this->ChangeMyInfo( kStatus_Unknown, NULL, szNickName, 0xFFFFFFFF );
}
BOOL CNMCOClientObject::ChangeMyMaskInfo
(
_UInt32_ uMaskInfo
)
{
return this->ChangeMyInfo( kStatus_Unknown, NULL, NULL, uMaskInfo );
}
BOOL CNMCOClientObject::ChangeNickname
(
NMVirtualKey keyCharacter,
LPCTSTR szNickname
)
{
if (szNickname)
{
CNMChangeNicknameFunc func( keyCharacter, szNickname );
return CNMManager::GetInstance().CallNMFunc( &func );
}
return FALSE;
}
BOOL CNMCOClientObject::ChangeMetaData
(
NMVirtualKey keyCharacter,
LPCTSTR szMetaData
)
{
if ( szMetaData )
{
CNMChangeMetaDataFunc func( keyCharacter, szMetaData );
return CNMManager::GetInstance().CallNMFunc( &func );
}
return FALSE;
}
BOOL CNMCOClientObject::ChangeMyInfo
(
NMUSERSTATUS uStatus // = kStatus_Unknown
, LPCTSTR szWord // TODAYWORD_SIZE
, LPCTSTR szNickName // NICKNAME_SIZE
, _UInt32_ uMaskInfo // = 0xFFFFFFFF
)
{
CNMChangeMyInfoFunc
func( uStatus, szWord, szNickName, uMaskInfo, kGameCode_NULL );
return CNMManager::GetInstance().CallNMFunc( &func );
}
NMALLOWTYPE CNMCOClientObject::GetAllowChatType
(
void
)
{
CNMGetConfigFunc func( CNMGetConfigFunc::kFlag_AllowChatType );
return ( CNMManager::GetInstance().CallNMFunc( &func )
? func.uAllowChatType
: kConfigAllowValue_Unknown );
}
NMALLOWTYPE CNMCOClientObject::GetAllowNoteType
(
void
)
{
CNMGetConfigFunc func( CNMGetConfigFunc::kFlag_AllowNoteType );
return ( CNMManager::GetInstance().CallNMFunc( &func )
? func.uAllowNoteType
: kConfigAllowValue_Unknown );
}
NMALLOWTYPE CNMCOClientObject::GetAllowGameInviteType
(
void
)
{
CNMGetConfigFunc func( CNMGetConfigFunc::kFlag_AllowGameInviteType );
return ( CNMManager::GetInstance().CallNMFunc( &func )
? func.uAllowGameInviteType
: kConfigAllowValue_Unknown );
}
NMALLOWTYPE CNMCOClientObject::GetAllowRequestFriendType
(
void
)
{
CNMGetConfigFunc func( CNMGetConfigFunc::kFlag_AllowRequestFriendType );
return ( CNMManager::GetInstance().CallNMFunc( &func )
? func.uAllowRequestFriendType
: kConfigAllowValue_Unknown );
}
BOOL CNMCOClientObject::ChangeAllowChatType
(
NMALLOWTYPE uType
)
{
CNMChangeConfigFunc func( uType, kConfigAllowValue_Unknown, kConfigAllowValue_Unknown, kConfigAllowValue_Unknown, NULL );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeAllowNoteType
(
NMALLOWTYPE uType
)
{
CNMChangeConfigFunc func( kConfigAllowValue_Unknown, uType, kConfigAllowValue_Unknown, kConfigAllowValue_Unknown, NULL );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeAllowGameInviteType
(
NMALLOWTYPE uType
)
{
CNMChangeConfigFunc func( kConfigAllowValue_Unknown, kConfigAllowValue_Unknown, uType, kConfigAllowValue_Unknown, NULL );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeAllowRequestFriendType
(
NMALLOWTYPE uType
)
{
CNMChangeConfigFunc func( kConfigAllowValue_Unknown, kConfigAllowValue_Unknown, kConfigAllowValue_Unknown, uType, NULL );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::GetLocalConfig
(
NMLOCALCONFIGTYPE uConfigType
, LPTSTR szValueOut
)
{
CNMGetLocalConfigFunc func( uConfigType );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
NMSAFE_STRCOPY( szValueOut, func.szValueOut, 1024 );
return TRUE;
}
return FALSE;
}
BOOL CNMCOClientObject::ChangeLocalConfig
(
NMLOCALCONFIGTYPE uConfigType
, LPCTSTR szValue
)
{
CNMChangeLocalConfigFunc
func( uConfigType, szValue );
return ( CNMManager::GetInstance().CallNMFunc( &func ) );
}
BOOL CNMCOClientObject::RequestNewFriend
(
LPCTSTR szRequestId // LOGINID_SIZE
, LPCTSTR szMessage // MSG_SIZE
, BOOL bAddToNxFriend // = FALSE
, NMGameCode uGameCode // = kGameCode_NULL
, NMGameCode uRequesteeGameCode // = kGameCode_NULL
, _UInt32_ uVirtualIdCode // = 0
, _UInt32_ uRequesteeVirtualIdCode // = 0
)
{
UNREFERENCED_PARAMETER(uVirtualIdCode);
UNREFERENCED_PARAMETER(bAddToNxFriend);
CNMRequestNewFriendFunc func;
_tcsncpy( func.rnfData.szRequestID, szRequestId, LOGINID_SIZE );
_tcsncpy( func.rnfData.szMessage, szMessage, MSG_SIZE );
func.rnfData.uRequesteeGameCode = uRequesteeGameCode;
func.rnfData.keyToVirtual.uGameCode = uGameCode;
func.rnfData.keyToVirtual.uVirtualIDCode = uRequesteeVirtualIdCode;
func.rnfData.keyFromVirtual.uGameCode = uGameCode;
func.rnfData.keyFromVirtual.uVirtualIDCode = uVirtualIdCode;
func.rnfData.uInsertCategoryCode = 0;
func.rnfData.bAddToNxFriend = FALSE;
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ConfirmNewFriend
(
_UInt32_ uSerialNo
, NMCONFIRMCODE uConfirmCode
)
{
CNMConfirmNewFriendFunc
func( uSerialNo, uConfirmCode, 0 );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::AddCategory
(
NMVirtualKey keyOwner
, LPCTSTR szCategoryName // CATEGORY_SIZE
, NMCATEGORYPROPERTY uProperty
, NMALLOWTYPE uAllowType
)
{
CNMAddCategoryFunc
func( keyOwner, szCategoryName, uProperty, uAllowType );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::DeleteCategory
(
UINT32 uCategoryCode
, BOOL bSystemCall
)
{
CNMDeleteCategoryFunc
func( uCategoryCode, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeCategoryName
(
UINT32 uCategoryCode
, LPCTSTR szCategoryName // CATEGORY_SIZE
, BOOL bSystemCall
)
{
CNMChangeCategoryNameFunc
func( uCategoryCode, szCategoryName, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeCategoryProperty
(
UINT32 uCategoryCode
, NMCATEGORYPROPERTY uProperty
, BOOL bSystemCall
)
{
CNMChangeCategoryPropertyFunc
func( uCategoryCode, uProperty, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeCategoryAllowType
(
UINT32 uCategoryCode
, NMALLOWTYPE uAllowType
, BOOL bSystemCall
)
{
CNMChangeCategoryAllowTypeFunc
func( uCategoryCode, uAllowType, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::GetFriendList
(
NMCategoryUserList&
aCateFriend
, NMFriendList&
aUnrelated
, BOOL bAll
)
{
NMVirtualKey keyMine = { 0xFFFFFFFF, 0 };
CNMGetFriendListFunc
func( bAll ? keyVirtualAll : keyMine );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
aCateFriend = func.aCateUserList;
aUnrelated = func.aUnrelated;
return TRUE;
}
return FALSE;
}
BOOL CNMCOClientObject::GetFriendListEx
(
NMCategoryUserList&
aCateFriend
, NMFriendList&
aUnrelated
, NMVirtualKey keyVirtual // = keyVirtualAll
)
{
// NMVirtualKey keyMine = { 0xFFFFFFFF, 0 };
CNMGetFriendListFunc
func( keyVirtual );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
aCateFriend = func.aCateUserList;
aUnrelated = func.aUnrelated;
return TRUE;
}
return FALSE;
}
BOOL CNMCOClientObject::GetFriendInfo
(
NMFriendKey keyFriend
, CNMFriendInfo& fiFriendInfo
)
{
CNMGetFriendInfoFunc
func( keyFriend );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
fiFriendInfo = func.fiFriendInfo;
return TRUE;
}
return FALSE;
}
BOOL CNMCOClientObject::BlockFriend
(
NMFriendKey keyFriend
, BOOL bBlock
)
{
CNMBlockFriendFunc
func( keyFriend, bBlock );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::AddFriendToCategory
(
NMFriendKey keyFriend
, UINT32 uCategoryCode
, BOOL bSystemCall
)
{
CNMAddFriendToCategoryFunc
func( keyFriend, uCategoryCode, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::DeleteFriendFromCategory
(
NMFriendKey keyFriend
, UINT32 uCategoryCode
, BOOL bSystemCall
)
{
CNMDeleteFriendFromCategoryFunc
func( keyFriend, uCategoryCode, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::MoveFriendCategory
(
NMFriendKey keyFriend
, UINT32 uFromCategoryCode
, UINT32 uToCategoryCode
, BOOL bSystemCall
)
{
CNMMoveFriendCategoryFunc
func( keyFriend, uFromCategoryCode, uToCategoryCode, bSystemCall );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::ChangeFriendMemo
(
NMFriendKey keyFriend
, LPCTSTR szMemo // MEMO_SIZE
)
{
CNMChangeFriendMemoExFunc
func( keyFriend, szMemo );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::GetRejectedUserList
(
NMRejectedUserList & rejectedUserList
)
{
CNMGetRejectedUserListFunc func;
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
rejectedUserList = func.rejectedUserList;
return TRUE;
}
return FALSE;
}
BOOL CNMCOClientObject::AppendRejectedUser
(
CNMRejectedUser & rejectedUser
)
{
CNMAppendRejectedUserFunc func(rejectedUser);
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RemoveRejectedUser
(
CNMRejectedUser & rejectedUser
)
{
CNMRemoveRejectedUserFunc func(rejectedUser);
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendNoteMsg
(
CNMNoteInfo::NMNOTETYPE uNoteType
, UINT32 uSubType
, BOOL bSaveToPermBox
, LPCTSTR szTargetId // TARGETID_SIZE
, LPCTSTR szMessage // NOTEMSG_SIZE
, LPCTSTR szArgument // NOTEARG_SIZE, = NULL
, LPCTSTR szCustomData // NOTECUSTOM_SIZE, = NULL
, NMGameCode uGameCode // = kGameCode_NULL
, _UInt32_ uVirtualIdCode // = 1
)
{
if ( uGameCode != kGameCode_NULL )
{
NMVirtualKey keyVirtual = { uGameCode, uVirtualIdCode };
CNMSendNoteMsgFunc func( uNoteType, static_cast<CNMNoteInfo::NMNOTESUBTYPE>(uSubType), keyVirtual, szTargetId, szMessage, szArgument, szCustomData, bSaveToPermBox );
return CNMManager::GetInstance().CallNMFunc( &func );
}
CNMSendNoteMsgFunc func( uNoteType, static_cast<CNMNoteInfo::NMNOTESUBTYPE>(uSubType), szTargetId, szMessage, szArgument, szCustomData, bSaveToPermBox );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendNoteExMsg
( CNMNoteInfoEx::NMNOTEEXTYPE
uNoteExType
, LPCTSTR szMessage // NOTEEXMSG_SIZE
)
{
CNMSendNoteExMsgFunc
func( uNoteExType, szMessage );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendReportMsg
(
CNMReportInfo::NMREPORTTYPE
uType
, CNMReportInfo::NMREPORTSUBTYPE
uSubType
, LPCTSTR szTargetNickname // NICKNAME_SIZE
, LPCTSTR szReason // 4000
, LPCTSTR szEvidence // 20000
, _UInt32_ uGameCode // = kGameCode_NULL
, _UInt32_ uAppliedGameCode // = kGameCode_NULL
, LPCTSTR szReporterNickname // NICKNAME_SIZE
)
{
if ( _tcslen( szReporterNickname ) == 0 )
return FALSE;
CNMSendReportMsgFunc
func( uType, uSubType, szTargetNickname, szReason, szEvidence, uGameCode, uAppliedGameCode, szReporterNickname );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendAccuseNote
(
CNMReportInfo::NMREPORTSUBTYPE
uSubType
, LPCTSTR szReason // 4000
, _UInt32_ uNoteSerial
)
{
CNMSendAccuseNoteMsgFunc
func( uSubType, szReason, uNoteSerial );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::LogReportSync
( UINT16 uLogType
)
{
CNMLogReportSyncFunc
func( uLogType );
return CNMManager::GetInstance().CallNMFunc( &func );
}
NMNoteList CNMCOClientObject::GetNoteBox
(
NMNOTEBOXTYPE uBoxType
, _UInt32_ uNoteSerial
)
{
CNMGetNoteBoxFunc
func( uBoxType, uNoteSerial );
BOOL bReturn = CNMManager::GetInstance().CallNMFunc( &func );
(void)bReturn;
return func.aNotes;
}
BOOL CNMCOClientObject::GetNoteBox
(
NMNOTEBOXTYPE uBoxType
, UINT32 uNoteSerial
, NMNoteInfoList & noteInfoList
)
{
CNMGetNoteBox2Func func( uBoxType, uNoteSerial );
BOOL bResult = CNMManager::GetInstance().CallNMFunc( &func );
if (bResult)
{
noteInfoList.assign(func.aNotes.begin(), func.aNotes.end());
}
return bResult;
}
BOOL CNMCOClientObject::SetNoteReadFlag
(
_UInt32_ uNoteSerial
)
{
CNMProcessNoteFunc
func( CNMProcessNoteFunc::kType_SetReadFlag, uNoteSerial );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SaveNoteToPermBox
(
_UInt32_ uNoteSerial
)
{
CNMProcessNoteFunc
func( CNMProcessNoteFunc::kType_SaveToPerm, uNoteSerial );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::DeleteNote
(
_UInt32_ uNoteSerial
)
{
CNMProcessNoteFunc
func( CNMProcessNoteFunc::kType_DeleteNote, uNoteSerial );
return CNMManager::GetInstance().CallNMFunc( &func );
}
CNMGuildListExInfo CNMCOClientObject::GetMyGuildList
(
void
)
{
CNMGetMyGuildListExFunc func;
CNMManager::GetInstance().CallNMFunc( &func );
return func.gliGuildList;
}
BOOL CNMCOClientObject::MonitorGuildOnlineInfoEx( NMGuildKey uGuildKey, BOOL bAttach )
{
CNMMonitorGuildOnlineInfoExFunc func( uGuildKey, bAttach );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::MonitorGuildOnlineInfoEx( NMGuildID const & guildID, UINT32 uVirtualIDCode, BOOL bAttach )
{
CNMMonitorGuildOnlineInfoExFunc func( guildID.GetGuildKey(), bAttach, 0, guildID.nGameCode, uVirtualIDCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::GetGuildOnlineInfoEx( NMGuildKey uGuildKey, CNMGuildOnlineInfoEx& goiInfo )
{
NMCSLOCK( this->m_cs )
{
NMGOIList::iterator iterBegin, iterEnd, iterCur;
iterBegin = this->m_aGOIs.begin();
iterEnd = this->m_aGOIs.end();
for ( iterCur = iterBegin; iterCur != iterEnd; ++iterCur )
{
if ( (*iterCur).uGuildKey == uGuildKey )
{
goiInfo = (*iterCur);
return TRUE;
}
}
}
return FALSE;
}
BOOL CNMCOClientObject::GetGuildOnlineInfoEx( NMGuildID const & guildID, CNMGuildOnlineInfoEx & goi )
{
NMCSLOCK( this->m_cs )
{
NMGOIList::iterator i = std::find_if( this->m_aGOIs.begin(), this->m_aGOIs.end(), IsSameGuildID< NMGOIList::value_type >( guildID ) );
if ( i != this->m_aGOIs.end() )
{
goi = *i;
return TRUE;
}
}
return FALSE;
}
BOOL CNMCOClientObject::SendGuildChatMessage( NMGuildKey uGuildKey, CNMChatMessage cmChatMsg )
{
CNMSendGuildChatMessageFunc func;
func.uGuildKey = uGuildKey;
func.cmChatMsg = cmChatMsg;
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::GetGameList
(
CNMGameListData* pglGameList
)
{
if ( pglGameList != NULL )
{
CNMGetGameListFunc func;
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
*pglGameList = func.glGameList;
return TRUE;
}
}
return FALSE;
}
BOOL CNMCOClientObject::GetUserInfo
(
LPCTSTR szTargetID // LOGINID_SIZE
, NMGameCode uGameCode // = kGameCode_NULL
)
{
CNMGetUserInfoFunc func( szTargetID, uGameCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendCustomNotify
(
UINT32 uType
, LPCTSTR szArgument // MSG_SIZE (256)
, UINT32 uPolicyFlag/* = CNMCustomNotifyData::kCustomNotifyPolicy_Default*/
)
{
CNMCustomNotifyFunc func( uType, szArgument, uPolicyFlag );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::SendCustomNotify
(
CNMCustomNotifyData& cnData
)
{
CNMCustomNotifyFunc func( cnData );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestChatSession
(
NMFriendCode fcFriendCode
)
{
CNMRequestChatSessionFunc
func( fcFriendCode, 0 );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestMultiChatSession
(
NMFriendCodeList& aFriendCodeList
, NMVirtualKey keyVirtuality
)
{
CNMRequestMultiChatSessionFunc
func( keyVirtuality, aFriendCodeList, 0 );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestFileUploadSession
(
NMFriendCode fcFriendCode
, NMFilePathList& aFilePath
)
{
CNMRequestFileUploadSessionFunc
func( fcFriendCode, 0, aFilePath );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestChatSession
(
NMFriendKey keyFriend
)
{
CNMRequestChatSessionExFunc
func( keyFriend, 0 );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestMultiChatSession
(
NMFriendKeyList& aFriendKey
, NMVirtualKey keyVirtuality
)
{
CNMRequestMultiChatSessionExFunc
func( keyVirtuality, aFriendKey, 0 );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestFileUploadSession
(
NMFriendKey keyFriend
, NMFilePathList& aFilePath
)
{
CNMRequestFileUploadSessionExFunc
func( keyFriend, 0, aFilePath );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestChatSessionToGuildMember
(
LPCTSTR szRequestID
, NMVirtualKey keyVirtuality
)
{
CNMRequestSessionToOtherFunc
func( kSessionType_Chat, CNMSessionInfo::kInviteMode_GuildMember, keyVirtuality, szRequestID, kGameCode_NULL );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::RequestFileUploadSessionToGuildMember
(
LPCTSTR szRequestID
, NMFilePathList& aFilePath
, NMVirtualKey keyVirtuality
)
{
CNMRequestSessionToOtherFunc
func( kSessionType_FileUpload, CNMSessionInfo::kInviteMode_GuildMember, keyVirtuality, szRequestID, kGameCode_NULL, aFilePath );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::CreateChatRoomEx
(
_UInt32_ uRoomType
, NMGuildKey uGuildKey
, LPCTSTR szGuildTitle // GUILDNAME_SIZE
, LPCTSTR szRoomTitle // ROOMTITLE_SIZE
, _UInt32_ uLimitLevel
, _UInt32_ uMaxSize
, _UInt32_ uFlag
, LPCTSTR szPassword // ROOMPWD_SIZE
, LPCTSTR szServerAddr // 32
, _UInt16_ uServerPort
, UINT32 uVirtualIdCode // = 1
)
{
CNMCreateChatRoomExFunc
func( uRoomType, uGuildKey, szGuildTitle, szRoomTitle, uLimitLevel,uMaxSize, uFlag, szPassword, szServerAddr, uServerPort, uVirtualIdCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::JoinToChatRoomEx
(
NMGuildKey uGuildKey
, _UInt32_ uRoomSerialNo
, LPCTSTR szPassword // ROOMPWD_SIZE
, LPCTSTR szServerAddr // 32
, _UInt16_ uServerPort
, _UInt32_ uFlag // = 0
, UINT32 uVirtualIdCode // = 1
)
{
CNMJoinToChatRoomExFunc
func( uGuildKey, uRoomSerialNo, szPassword, szServerAddr, uServerPort, uFlag, uVirtualIdCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
UINT32 CNMCOClientObject::GetUnreadNoteCount
(
void
)
{
CNMGetCountFunc func( CNMGetCountFunc::kType_UnreadNote );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
return func.uCount;
}
return 0;
}
BOOL CNMCOClientObject::RequestNews()
{
CNMRequestNewsFunc func;
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::CheckNews
(
NMGameCode uEventGameCode,
NMVirtualKey keyVirtual/* = keyVirtualAll */
)
{
CNMCheckNewsFunc func( uEventGameCode, keyVirtual );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterLogin
(
LPCTSTR szUserId
, UINT32 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterLoginFunc func( szUserId, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterLogout
(
LPCTSTR szUserId
, UINT32 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterLogoutFunc func( szUserId, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterRemove
(
NMVirtualKey & keyVirtual
, LPCTSTR szNickname
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterRemoveFunc func( keyVirtual, szNickname, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterChangeName
(
NMVirtualKey & keyVirtual
, LPCTSTR szNickname
, INT32 nServerCode /* = 1 */
)
{
if (szNickname)
{
CNMCharacterChangeNameFunc func( keyVirtual, szNickname, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
return FALSE;
}
INT32 CNMCOClientObject::CharacterSync
(
LPCTSTR szUserId
, UINT32 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterSyncFunc func( szUserId, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterLogin64
(
LPCTSTR szUserId
, UINT64 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterLogin64Func func( szUserId, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterLogout64
(
LPCTSTR szUserId
, UINT64 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterLogout64Func func( szUserId, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterRemove64
(
LPCTSTR szNickname
, UINT64 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterRemove64Func func( szNickname, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
INT32 CNMCOClientObject::CharacterChangeName64
(
LPCTSTR szNickname
, UINT64 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
if (szNickname)
{
CNMCharacterChangeName64Func func( szNickname, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
return FALSE;
}
INT32 CNMCOClientObject::CharacterSync64
(
LPCTSTR szUserId
, UINT64 uVirtualIdCode /* = 1 */
, INT32 nServerCode /* = 1 */
)
{
CNMCharacterSync64Func func( szUserId, uVirtualIdCode, nServerCode );
return CNMManager::GetInstance().CallNMFunc( &func );
}
BOOL CNMCOClientObject::HasRestrictedWords
(
LPCTSTR szText
)
{
if ( szText )
{
CNMRestrictedWordsFunc func( CNMRestrictedWordsFunc::kOpType_HasRestrictedWords, kGameCode_NULL, szText );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
return func.bHasRestrictedWords;
}
}
return FALSE;
}
BOOL CNMCOClientObject::ReplaceRestrictedWords
(
LPTSTR szText,
UINT uTextSize
)
{
if ( szText )
{
CNMRestrictedWordsFunc func( CNMRestrictedWordsFunc::kOpType_ReplaceRestrictedWords, kGameCode_NULL, szText );
if ( CNMManager::GetInstance().CallNMFunc( &func ) )
{
if ( func.bHasRestrictedWords )
{
::StringCchCopyEx( szText, uTextSize, func.szText, NULL, NULL, STRSAFE_IGNORE_NULLS );
return TRUE;
}
}
}
return FALSE;
}
NMP2PErrorCode CNMCOClientObject::P2PLogin
(
LPCTSTR szNexonPassport
)
{
CNMP2PLoginFunc func( szNexonPassport );
CNMManager::GetInstance().CallNMFunc( &func );
return func.nErrorCode;
}
NMP2PErrorCode CNMCOClientObject::P2PLogout
(
)
{
CNMP2PLogoutFunc func;
CNMManager::GetInstance().CallNMFunc( &func );
return func.nErrorCode;
}
NMP2PErrorCode CNMCOClientObject::P2PSendData
(
UINT32 uP2PSerialKey,
NMP2PKey const & sender,
NMP2PKey const & receiver,
BYTE const * pbyData,
UINT32 cbyDataSize,
UINT32 uTTL
)
{
CNMP2PSendDataFunc func( uP2PSerialKey, CNMP2PMessage( sender, receiver, pbyData, cbyDataSize ), uTTL );
CNMManager::GetInstance().CallNMFunc( &func );
return func.nErrorCode;
}
NMP2PErrorCode CNMCOClientObject::P2PSendData
(
NMP2PKey const & sender,
NMP2PKey const & receiver,
BYTE const * pbyData,
UINT32 cbyDataSize,
UINT32 & uP2PSerialKey, // OUT
UINT32 uTTL
)
{
CNMP2PMultiSendDataFunc func( sender, &receiver, 1, pbyData, cbyDataSize, uTTL );
CNMManager::GetInstance().CallNMFunc( &func );
uP2PSerialKey = func.uP2PSerialKey;
return func.nErrorCode;
}
NMP2PErrorCode CNMCOClientObject::P2PSendData
(
NMP2PKey const & sender,
NMP2PKey const * receivers,
UINT32 receiversSize,
BYTE const * pbyData,
UINT32 cbyDataSize,
UINT32 & uP2PSerialKey, // OUT
UINT32 uTTL
)
{
CNMP2PMultiSendDataFunc func( sender, receivers, receiversSize, pbyData, cbyDataSize, uTTL );
CNMManager::GetInstance().CallNMFunc( &func );
uP2PSerialKey = func.uP2PSerialKey;
return func.nErrorCode;
}
BOOL CNMCOClientObject::OpenGameSummary
(
void
)
{
CNMOpenGameSummaryFunc func;
return CNMManager::GetInstance().CallNMFunc( &func );
}