#include "stdafx.h" #include "./res/resource.h" #include "AdminToolClient.h" #include "Dispatch.h" #include "WindowMgr.h" #include "UserInfoDoc.h" #include "CharacterDoc.h" #include "CharSheetView.h" #include "ItemManageDlg.h" #include "PacketManager.h" #include "GuildSearchDlg.h" #include "GuildMainDlg.h" #include "GuildRestoreDlg.h" #include "FortInfoDlg.h" #include "ShopCampPage.h" #include "MiningCampDlg.h" #include "CastleSearchDlg.h" #include "CastleCreatureDlg.h" #include "ItemQuantityControlDlg.h" #include "UserBillingLogDlg.h" #include "QuickMenuDlgBar.h" #include "GAdminManagementDlg.h" #include "InitDialogBar.h" #include "GlobalFunctions.h" #include "UserCharTreeView.h" #include "InterestedUserDlg.h" #include "ConnectionInfoDlg.h" #include "DuplicatedItemDlg.h" #include "ItemDistributeDlg.h" #include "UnifiedCharInfoDlg.h" #include "UnifiedGuildInfoDlg.h" #include "DetailCharInfo.h" #include "AdminStoreDlgBar.h" #include "GMLogMsgDlg.h" #include "CharInfoTime.h" #include #include #include #include #include #include #include #include #include #include #define RADIAN 57.2957 bool CClientDispatch::DispatchPacket(PktBase* lpPktBase) { using namespace PktAdminMgr; unsigned char cCmd = lpPktBase->GetCmd(); switch(cCmd) { case PktCMD::PktResultAck: return PktResultAck (lpPktBase); case PktCMD::PktNewAdminAck: return PktAdminListAck (lpPktBase); // ÇüŰ¡ PktAdminListAck¿Í °°´Ù À̳ðÀº ½Ì±Û case PktCMD::PktAdminListAck: return PktAdminListAck (lpPktBase); // À̳ðÀº ¸ÖƼ? case PktCMD::PktLoginInfoAck: return PktLoginInfoAck (lpPktBase); case PktCMD::PktDelAdminAck: return PktDelAdminAck (lpPktBase); case PktCMD::PktUpdateLevelAck: return PktUpdateLevelAck (lpPktBase); case PktCMD::PktUpdateIPAck: return PktUpdateIPAck (lpPktBase); case PktCMD::PktLogListAck: return PktLogListAck (lpPktBase); case PktCMD::PktDetailLogAck: return PktDetailLogAck (lpPktBase); case PktCMD::PktGetExitLogAck: return PktGetExitLogAck (lpPktBase); case PktCMD::PktBeforeAfterAck: return PktBeforeAfterAck (lpPktBase); case PktCMD::PktAgentServerIndex: return PktAgentServerIndexAck (lpPktBase); case PktCMD::PktSearchAck: return PktSearchAck (lpPktBase); case PktCMD::PktSearchResultAck: return PktSearchResultAck (lpPktBase); case PktCMD::PktGetCharacterAck: return PktGetCharacterAck (lpPktBase); case PktCMD::PktCloseCharacterAck: return PktCloseCharacterAck (lpPktBase); case PktCMD::PktCreateItemAck: return PktCreateItemAck (lpPktBase); case PktCMD::PktUpdateItemAck: return PktUpdateItemAck (lpPktBase); case PktCMD::PktDepositSync: return PktSyncDeposit (lpPktBase); case PktCMD::PktRemoveItemAck: return PktRemoveItemAck (lpPktBase); case PktCMD::PktItemResetAck: return PktItemResetAck (lpPktBase); case PktCMD::PktInvenGold: return PktInvenGold (lpPktBase); case PktCMD::PktSkillEditAck: return PktSkillEditAck (lpPktBase); case PktCMD::PktSearchBlockAck: return PktSearchBlockAck (lpPktBase); case PktCMD::PktSetZoneListAck: return PktSetZoneList (lpPktBase); case PktCMD::PktChangeNameAck: return PktChangeNameAck (lpPktBase); case PktCMD::PktDelCharListAck: return PktDelCharListAck (lpPktBase); case PktCMD::PktCharRestoreAck: return PktCharRestoreAck (lpPktBase); case PktCMD::PktAdminStoreInsertAck: return PktAdminStoreInsertAck (lpPktBase); case PktCMD::PktAdminStoreDeleteAck: return PktAdminStoreDeleteAck (lpPktBase); case PktCMD::PktGetAdminStoreItem: return PktGetAdminStoreItemAck (lpPktBase); case PktCMD::PktGuildSearchAck: return PktGuildSearchAck (lpPktBase); case PktCMD::PktRequestGuildMemberListAck: return PktRequestGuildMemberListAck (lpPktBase); case PktCMD::PktGuildRestoreDataListAck: return PktGuildRestoreDataListAck (lpPktBase); case PktCMD::PktFortSearchAck: return PktFortSearchAck (lpPktBase); case PktCMD::PktMiningCampAck: return PktMiningCampAck (lpPktBase); case PktCMD::PktShopCampAck: return PktShopCampAck (lpPktBase); case PktCMD::PktCastleSearchAck: return PktCastleSearchAck (lpPktBase); case PktCMD::PktCastleCreatureAck: return PktCastleCreatureAck (lpPktBase); case PktCMD::PktItemQtyControl: return PktItemQtyControlAck (lpPktBase); case PktCMD::PktUserBillingLogAck: return PktUserBillingLogAck (lpPktBase); case PktCMD::PktGameAdminAck: return PktGameAdminAck (lpPktBase); case PktCMD::PktRefreshConnectedList: return PktConnectAllServerzAck (lpPktBase); case PktCMD::PktInterestedUser: return PktInterestedUserList (lpPktBase); case PktCMD::PktConnectionChk: return PktConnectionChk (lpPktBase); case PktCMD::PktConnectedUserList: return PktConnectedUserList (lpPktBase); case PktCMD::PktDuplicatedItem: return PktDuplicatedItem (lpPktBase); case PktCMD::PktItemDistributeAck: return PktItemDistributeAck (lpPktBase); case PktCMD::PktGuildRight: return PktGuildRight (lpPktBase); case PktCMD::PktUnifiedCharInfo: return PktUnifiedCharInfo (lpPktBase); case PktCMD::PktUnifiedGuildInfo: return PktUnifiedGuildInfo (lpPktBase); case PktCMD::PktDetailCharInfo: return PktDetailCharInfo (lpPktBase); case PktCMD::PktCancelExecuteQuest: return PktCancelExecuteQuest (lpPktBase); case PktCMD::PktDeleteHistoryQuest: return PktDeleteHistoryQuest (lpPktBase); case PktCMD::PktUserNation: return PktUserNation (lpPktBase); case PktCMD::PktShiftToUID: return PktShiftToUID (lpPktBase); case PktCMD::PktStoreTabEdit: return PktStoreTabEdit (lpPktBase); case PktCMD::PktGMLogMsg: return PktGMLogMsg (lpPktBase); case PktCMD::PktGuildMemberEdit: return PktGuildMemberEdit (lpPktBase); case PktCMD::PktGetCharInfoTimeAck: return PktResultCharInfoTime (lpPktBase); } return true; } // ÀÛ¾÷ °á°ú ACK bool CClientDispatch::PktResultAck(PktBase* lpPktBase) { PktAdminMgr::PktResultAck* lpPktResultAck = static_cast(lpPktBase); switch(lpPktResultAck->m_Result) { case PktAdminMgr::PktResult::Result_Null: AfxMessageBox(GetLocalString("MSG_0005"), MB_OK | MB_ICONINFORMATION); break; case PktAdminMgr::PktResult::Err_Unknown: Report(GetLocalString("MSG_0006"), FAILED); break; case PktAdminMgr::PktResult::Err_Database: Report(GetLocalString("MSG_0007"), FAILED); break; case PktAdminMgr::PktResult::Err_Account: Report(GetLocalString("MSG_0008"), FAILED); break; case PktAdminMgr::PktResult::Err_Passwd: Report(GetLocalString("MSG_0009"), FAILED); break; case PktAdminMgr::PktResult::Err_ConnectIP: Report(GetLocalString("MSG_0010"), FAILED); break; case PktAdminMgr::PktResult::Err_OverlapID: Report(GetLocalString("MSG_0011"), FAILED); break; case PktAdminMgr::PktResult::Err_NewAdmin: Report(GetLocalString("MSG_0012"), FAILED); break; case PktAdminMgr::PktResult::Err_DelAdmin: Report(GetLocalString("MSG_0013"), FAILED); break; case PktAdminMgr::PktResult::Err_UpdateLevel: Report(GetLocalString("MSG_0014"), FAILED); break; case PktAdminMgr::PktResult::Err_UpdateIP: Report(GetLocalString("MSG_0015"), FAILED); break; case PktAdminMgr::PktResult::Err_UpdatePasswd: Report(GetLocalString("MSG_0016"), FAILED); break; case PktAdminMgr::PktResult::Err_Authority: Report(GetLocalString("MSG_0017"), FAILED); break; case PktAdminMgr::PktResult::Err_UnkonwnPacket: Report(GetLocalString("MSG_0018"), FAILED); break; case PktAdminMgr::PktResult::Err_ModifyCharacter: Report(GetLocalString("MSG_0019"), FAILED); ResultErrModifyCharacter(lpPktBase); break; case PktAdminMgr::PktResult::Err_NotFountDBComponent: Report(GetLocalString("MSG_0020"), FAILED); break; case PktAdminMgr::PktResult::Err_CloseCharacter: Report(GetLocalString("MSG_0021"), FAILED); break; case PktAdminMgr::PktResult::Err_ChangeStatus: Report(GetLocalString("MSG_0022"), FAILED); break; case PktAdminMgr::PktResult::Err_PacketDispatch: Report(GetLocalString("MSG_0023"), FAILED); break; case PktAdminMgr::PktResult::Err_CreateItem1: Report(GetLocalString("MSG_0024"), FAILED); break; case PktAdminMgr::PktResult::Err_CreateItem2: Report(GetLocalString("MSG_0025"), FAILED); break; case PktAdminMgr::PktResult::Err_CreateItem3: Report(GetLocalString("MSG_0026"), FAILED); break; case PktAdminMgr::PktResult::UNKNOWN_ERROR: Report(GetLocalString("MSG_0027"), FAILED); break; case PktAdminMgr::PktResult::INVALID_REQUEST: Report(GetLocalString("MSG_0028"), FAILED); break; case PktAdminMgr::PktResult::GET_UIDCID_QUERY_FAILED: Report(GetLocalString("MSG_0029"), FAILED); break; case PktAdminMgr::PktResult::INVALID_UID_CID_DATA: Report(GetLocalString("MSG_0030"), FAILED); break; case PktAdminMgr::PktResult::GET_STORE_QUERY_FAILED: Report(GetLocalString("MSG_0031"), FAILED); break; case PktAdminMgr::PktResult::GET_CHAR_DATA_QUERY_FAILED: Report(GetLocalString("MSG_0032"), FAILED); break; case PktAdminMgr::PktResult::INVALID_UID_CID_ERROR: Report(GetLocalString("MSG_0033"), FAILED); break; case PktAdminMgr::PktResult::LOGIN_ANOTHER_GAMESERVER: Report(GetLocalString("MSG_0034"), FAILED); break; case PktAdminMgr::PktResult::SESSION_OPEN_FAILED: Report(GetLocalString("MSG_0035"), FAILED); break; case PktAdminMgr::PktResult::ALREADY_LOGIN_USER_SESSION_OPEN: Report(GetLocalString("MSG_0036"), FAILED); break; case PktAdminMgr::PktResult::ANOTHER_CHAR_LOAD_FAILED: Report(GetLocalString("MSG_0037"), CAUTION); break; case PktAdminMgr::PktResult::SETTING_DATA_FAILED: Report(GetLocalString("MSG_0038"), FAILED); break; case PktAdminMgr::PktResult::SESSION_START_FAILED: Report(GetLocalString("MSG_0039"), FAILED); break; case PktAdminMgr::PktResult::Err_Invalid_ItemID: Report(GetLocalString("MSG_0040"), FAILED); break; case PktAdminMgr::PktResult::Err_Invalid_Item: Report(GetLocalString("MSG_0041"), FAILED); break; case PktAdminMgr::PktResult::Err_Invalid_Character: Report(GetLocalString("MSG_0042"), FAILED); break; case PktAdminMgr::PktResult::Err_RemoveItem: Report(GetLocalString("MSG_0043"), FAILED); break; case PktAdminMgr::PktResult::Err_NotUseDeposit: Report(GetLocalString("MSG_0044"), FAILED); break; case PktAdminMgr::PktResult::Err_NotFoundAgentDispatch: Report(GetLocalString("MSG_0045"), FAILED); break; case PktAdminMgr::PktResult::Err_StateisSave: Report(GetLocalString("MSG_0046"), FAILED); ResultErrModifyCharacter(lpPktBase); break; case PktAdminMgr::PktResult::Err_SetInventoryGold: Report(GetLocalString("MSG_0047"), FAILED); break; case PktAdminMgr::PktResult::Err_SkipCharacterSave: Report(GetLocalString("MSG_0048"), FAILED); break; case PktAdminMgr::PktResult::Err_SkillEdit: Report(GetLocalString("MSG_0049"), FAILED); break; case PktAdminMgr::PktResult::Err_DepositPasswd: Report(GetLocalString("MSG_0050"), FAILED); break; case PktAdminMgr::PktResult::Err_NotUseName: Report(GetLocalString("MSG_0051"), FAILED); break; case PktAdminMgr::PktResult::Err_NotChangeName: Report(GetLocalString("MSG_0052"), FAILED); break; case PktAdminMgr::PktResult::Err_NotCharacterInfo: Report(GetLocalString("MSG_0053"), FAILED); break; case PktAdminMgr::PktResult::Err_NotUserInfoSlot: Report(GetLocalString("MSG_0054"), FAILED); break; case PktAdminMgr::PktResult::Err_AdminStore: Report(GetLocalString("MSG_0055"), FAILED); break; case PktAdminMgr::PktResult::Err_AdminStoreDelete: Report(GetLocalString("MSG_0056"), FAILED); break; case PktAdminMgr::PktResult::Err_GameAdminManage: Report(GetLocalString("MSG_0057"), FAILED); break; case PktAdminMgr::PktResult::Err_InterestedUserManage: Report(GetLocalString("MSG_0144"), FAILED); break; case PktAdminMgr::PktResult::Err_NOT_ENOUGH_STAT: Report(GetLocalString("MSG_0145"), FAILED); break; case PktAdminMgr::PktResult::Err_NOT_ENOUGH_SKILLSLOT: Report(GetLocalString("MSG_0146"), FAILED); break; case PktAdminMgr::PktResult::Err_FAILED_TO_GET_SKILLPROTOTYPE: Report(GetLocalString("MSG_0147"), FAILED); break; case PktAdminMgr::PktResult::Err_OVERED_MAX_LOCKCOUNT: Report(GetLocalString("MSG_0148"), FAILED); break; case PktAdminMgr::PktResult::Err_OVERED_MAX_SKILL_LEVEL: Report(GetLocalString("MSG_0149"), FAILED); break; case PktAdminMgr::PktResult::Err_NOT_CURRENT_CLASS: Report(GetLocalString("MSG_0150"), FAILED); break; case PktAdminMgr::PktResult::Success_Login: Report(GetLocalString("MSG_0058"), SUCCESS); SucessLogin(); break; case PktAdminMgr::PktResult::Success_ConnectIP: Report(GetLocalString("MSG_0059"), SUCCESS); break; case PktAdminMgr::PktResult::Success_NewAdmin: Report(GetLocalString("MSG_0060"), SUCCESS); break; case PktAdminMgr::PktResult::Success_SearchCompleted: Report(GetLocalString("MSG_0061"), SUCCESS); break; case PktAdminMgr::PktResult::Success_ModifyCharacter: Report(GetLocalString("MSG_0062"), SUCCESS); break; case PktAdminMgr::PktResult::Success_ChangeStatus: Report(GetLocalString("MSG_0063"), SUCCESS); break; case PktAdminMgr::PktResult::Success_ChangePos: Report(GetLocalString("MSG_0064"), SUCCESS); break; case PktAdminMgr::PktResult::Success_DepositPasswd: Report(GetLocalString("MSG_0065"), SUCCESS); break; case PktAdminMgr::PktResult::Success_UseName: Report(GetLocalString("MSG_0066"), SUCCESS); break; case PktAdminMgr::PktResult::Success_CharacterRestore: Report(GetLocalString("MSG_0067"), SUCCESS); break; case PktAdminMgr::PktResult::Success_AdminStore: Report(GetLocalString("MSG_0068"), SUCCESS); break; case PktAdminMgr::PktResult::Success_UpdateAdminStore: Report(GetLocalString("MSG_0069"), SUCCESS); break; case PktAdminMgr::PktResult::Success_SaveCharacter: Report(GetLocalString("MSG_0070"), SUCCESS); break; case PktAdminMgr::PktResult::Success_ChkDuplicatedItem: Report(GetLocalString("MSG_0151"), SUCCESS); break; case PktAdminMgr::PktResult::Success_SUCCESS: Report(GetLocalString("MSG_0152"), SUCCESS); break; case PktAdminMgr::PktResult::Success_DeleteQuest: Report(GetLocalString("MSG_0180"), SUCCESS); break; case PktAdminMgr::PktResult::Err_DeleteQuest: Report(GetLocalString("MSG_0181"), FAILED); break; case PktAdminMgr::PktResult::Success_StoreTabEdit: Report(GetLocalString("ADDED_STRIMG_037"), SUCCESS); break; case PktAdminMgr::PktResult::Success_AddBlockUser: Report(GetLocalString("ADDED_STRING_054"), SUCCESS); break; case PktAdminMgr::PktResult::Success_DelBlockUser: Report(GetLocalString("ADDED_STRING_056"), SUCCESS); break; case PktAdminMgr::PktResult::Err_AddBlockUser: Report(GetLocalString("ADDED_STRING_055"), FAILED); break; case PktAdminMgr::PktResult::Err_DelBlockUser: Report(GetLocalString("ADDED_STRING_057"), FAILED); break; case PktAdminMgr::PktResult::Success_NameChangeCount: Report(GetLocalString("ADDED_STRING_081"), SUCCESS); break; default: Report(GetLocalString("MSG_0071"), CAUTION); break; } return true; } // ·Î±×ÀÎ ¼º°ø bool CClientDispatch::SucessLogin() { CDialog* lpDlg = static_cast(GET_WINDOW(IDD_ADMIN_LOGIN)); if(NULL != lpDlg) { lpDlg->EndDialog(IDOK); } else { AfxMessageBox(GetLocalString("MSG_0004")); } return true; } // ·Î±×ÀÎ Ack bool CClientDispatch::PktLoginInfoAck(PktBase* lpPktBase) { PktAdminMgr::PktLoginInfoAck* lpPktLoginInfo = static_cast(lpPktBase); CAdminToolClientApp* pApp = static_cast(AfxGetApp()); pApp->m_MyInfo.m_UID = lpPktLoginInfo->m_UID; pApp->m_MyInfo.m_Level = lpPktLoginInfo->m_Level; g_bIsLogin = true; // ÀÎÁõÀ» Åë°úÇßÀ½À» üũ! _tcsncpy(pApp->m_MyInfo.m_szAccount, CONV_CLISTR(lpPktLoginInfo->m_szAccount), PktAdminMgr::MAX_ACCOUNT); _tcsncpy(pApp->m_MyInfo.m_szPassword, CONV_CLISTR(lpPktLoginInfo->m_szPassword), PktAdminMgr::MAX_PASSWORD); _tcsncpy(pApp->m_MyInfo.m_szIP, CONV_CLISTR(lpPktLoginInfo->m_szIP), PktAdminMgr::MAX_IP); _tcsncpy(pApp->m_MyInfo.m_RegDate, CONV_CLISTR(lpPktLoginInfo->m_RegDate), PktAdminMgr::MAX_DATE); _tcsncpy(pApp->m_MyInfo.m_szName, CONV_CLISTR(lpPktLoginInfo->m_szName), PktAdminMgr::MAX_NAME); CPacketMgr::GetInstance()->SendRefrechConnectedServerList(); // Á¢¼ÓµÈ Áß°è¼­¹ö ¸®½ºÆ® ¿äû return true; } // Áß°è¼­¹ö Á¤º¸ ¾ò±â bool CClientDispatch::PktAgentServerIndexAck(PktBase* lpPktBase) { PktAdminMgr::PktAgentServerIndex* lpPktAgentServerIndex = static_cast(lpPktBase); // ±¸Á¶Ã¼ ServerInfo(Name, Index)¸¦ ¿ä¼Ò·Î °¡Áø ¸®½ºÆ® ¼ÂÆÃ CString szServerName = CONV_CLISTR(lpPktAgentServerIndex->m_szServerName); CCharacterDoc::GetInstance().PushServerGroup(szServerName, lpPktAgentServerIndex->m_ServerGroup); return true; } // °ü¸®ÀÚ ¾ÆÀÌÅÛâ°í ¸®½ºÆ® bool CClientDispatch::PktSetZoneList(PktBase* lpPktBase) { PktAdminMgr::PktSetZoneList* lpPktSetZoneAck = static_cast(lpPktBase); CCharacterDoc& CharDocument = CCharacterDoc::GetInstance(); CharDocument.GetZoneList().Serialize_In(lpPktSetZoneAck->m_ZoneBuffer); return true; } // °ü¸®ÀÚ Ã¢°í¿¡ ¾ÆÀÌÅÛ»ðÀÔ Ack bool CClientDispatch::PktAdminStoreInsertAck(PktBase* lpPktBase) { PktAdminMgr::PktAdminStoreInsertAck* lpPktAdminStore = static_cast< PktAdminMgr::PktAdminStoreInsertAck* >( lpPktBase ); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_STATUS_DLGBAR)); CListCtrl* lpList = static_cast(lpDialog->GetDlgItem(IDC_ADMINSTORELIST)); if(NULL != lpList) { int ItemCount = lpList->GetItemCount(); TCHAR szUID[10]; CString strServerName; _sntprintf(szUID, sizeof(szUID), _T("%d"), lpPktAdminStore->m_dwStoreUID); CCharacterDoc::GetInstance().GetServerName((unsigned long)lpPktAdminStore->m_cServerIdx, strServerName); lpList->InsertItem(ItemCount, szUID); lpList->SetItemText(ItemCount, 1, strServerName); lpList->SetItemText(ItemCount, 2, CONV_CLISTR(lpPktAdminStore->m_szOwnerName)); lpList->SetItemText(ItemCount, 3, CONV_CLISTR(lpPktAdminStore->m_szItemName)); } return true; } // »ó¼¼·Î±× Á¤º¸ ACK bool CClientDispatch::PktBeforeAfterAck( PktBase* lpPktBase ) { PktAdminMgr::PktBeforeAfterAck* lpPktBeforeAfter = static_cast< PktAdminMgr::PktBeforeAfterAck* >( lpPktBase ); CDialog* LogDlg = static_cast< CDialog* >( GET_WINDOW( IDD_TADMINUSELOGDLG ) ); LogDlg->SetDlgItemText(IDC_TADMINDETAILUSELOGBEFOREEDIT, CONV_CLISTR(lpPktBeforeAfter->m_szBefore)); LogDlg->SetDlgItemText(IDC_TADMINDETAILUSELOGAFTEREDIT, CONV_CLISTR(lpPktBeforeAfter->m_szAfter)); return true; } // »ó¼¼·Î±× ¸®½ºÆ® Ack bool CClientDispatch::PktDetailLogAck( PktBase* lpPktBase ) { PktAdminMgr::PktDetailLogAck* lpPktDetailLog = static_cast(lpPktBase); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_TADMINUSELOGDLG)); if(NULL == lpDialog) return true; CListCtrl* lpListCtrl = static_cast(lpDialog->GetDlgItem(IDC_TADMINDETAILUSELOGLIST)); if(NULL == lpListCtrl) return true; int ItemCount = lpListCtrl->GetItemCount(); TCHAR LogID[65], LogType[10]; _itot(lpPktDetailLog->m_UpdateType, LogType, 10); _itot(lpPktDetailLog->m_DetailLogID, LogID, 10); lpListCtrl->InsertItem(ItemCount, LogID); lpListCtrl->SetItemText(ItemCount, 1, CONV_CLISTR(lpPktDetailLog->m_UpdateDate)); lpListCtrl->SetItemText(ItemCount, 2, LogType); return true; } // Áö¿öÁø ij¸¯Å͸®½ºÆ® ¸ñ·Ï bool CClientDispatch::PktDelCharListAck( PktBase* lpPktBase ) { PktAdminMgr::PktDelCharListAck* lpPktAck = static_cast(lpPktBase); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_CHARRESTOREDLG)); if(NULL != lpDialog) { CListCtrl* lpList = static_cast(lpDialog->GetDlgItem(IDC_CR_DELHISTORYLIST)); if(NULL != lpList) { CString strForFormat; strForFormat.Format(_T("%d"), lpPktAck->m_dwUID); lpList->InsertItem(0, strForFormat); strForFormat.Format(_T("%d"), lpPktAck->m_dwCID); lpList->SetItemText(0, 1, strForFormat); strForFormat.Format(_T("%d"), lpPktAck->m_cNewServerGroupID); lpList->SetItemText(0, 2, strForFormat); strForFormat.Format(_T("%d"), lpPktAck->m_cOldServerGroupID); lpList->SetItemText(0, 3, strForFormat); lpList->SetItemText(0, 4, CONV_CLISTR(lpPktAck->m_szCharName)); strForFormat.Format(_T("%d"), lpPktAck->m_nLevel); lpList->SetItemText(0, 5, strForFormat); strForFormat.Format(_T("%u"), lpPktAck->m_dwGold); lpList->SetItemText(0, 6, strForFormat); lpList->SetItemText(0, 7, CONV_CLISTR(lpPktAck->m_szInsertTime)); lpList->SetItemText(0, 8, CONV_CLISTR(lpPktAck->m_szDeleteTime)); } } return true; } // »ç¿ë»çÀ¯ Ack bool CClientDispatch::PktGetExitLogAck(PktBase* lpPktBase) { PktAdminMgr::PktGetExitLogAck* lpPktExitLog = static_cast(lpPktBase); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_TADMINUSELOGDLG)); if(NULL != lpDialog) { lpDialog->SetDlgItemText(IDC_TADMINUSELOGREASON, CONV_CLISTR(lpPktExitLog->m_szExitLog)); } return true; } // ·Î±× ¸®½ºÆ® Ack bool CClientDispatch::PktLogListAck(PktBase* lpPktBase) { PktAdminMgr::PktLogListAck* lpLogListAck = static_cast< PktAdminMgr::PktLogListAck* >( lpPktBase ); CDialog* CAdminLogDlg = static_cast(GET_WINDOW(IDD_TADMINUSELOGDLG)); if(NULL == CAdminLogDlg) return true; CListCtrl* LogList = static_cast(CAdminLogDlg->GetDlgItem(IDC_TADMINUSELOGLIST)); int ItemCount = LogList->GetItemCount(); TCHAR LogID[65]; _itot(lpLogListAck->m_LogID, LogID, 10); LogList->InsertItem(ItemCount, LogID); LogList->SetItemText(ItemCount, 1, CONV_CLISTR(lpLogListAck->m_Login)); if(_tcslen(CONV_CLISTR(lpLogListAck->m_Logout))) { LogList->SetItemText(ItemCount, 2, CONV_CLISTR(lpLogListAck->m_Logout)); } else { LogList->SetItemText(ItemCount, 2, _T("Connected...")); } LogList->SetItemText(ItemCount, 3, CONV_CLISTR(lpLogListAck->m_UseIP)); return true; } // °ü¸®ÀÚ ·¹º§ º¯°æ ACK bool CClientDispatch::PktUpdateLevelAck( PktBase* lpPktBase ) { PktAdminMgr::PktUpdateLevel* lpPktUpdateLevelAck = static_cast< PktAdminMgr::PktUpdateLevel* >( lpPktBase ); CDialog* ManagementDlg = static_cast< CDialog* >( GET_WINDOW( IDD_TADMINMANAGEMENTDLG ) ); if( ManagementDlg != NULL ) { LVFINDINFO Info; int Index; CListCtrl* RegAdminz = static_cast< CListCtrl* >( ManagementDlg->GetDlgItem(IDC_TADMINLIST)); Info.flags = LVFI_PARTIAL | LVFI_STRING; Info.psz = CONV_CLISTR(lpPktUpdateLevelAck->m_szAccount); Index = RegAdminz->FindItem(&Info); if(Index != -1) { RegAdminz->SetItemText(Index, 2, GetAdminLVName(lpPktUpdateLevelAck->m_szLevel)); } } return true; } // °ü¸®ÀÚ Á¢¼Ó IPº¯°æ ACK bool CClientDispatch::PktUpdateIPAck( PktBase* lpPktBase ) { PktAdminMgr::PktUpdateIP* lpIPAck = static_cast< PktAdminMgr::PktUpdateIP* >( lpPktBase ); CDialog* ManagementDlg = static_cast< CDialog* >( GET_WINDOW( IDD_TADMINMANAGEMENTDLG ) ); if( ManagementDlg != NULL ) { LVFINDINFO Info; int Index; CListCtrl* RegAdminz = static_cast< CListCtrl* >( ManagementDlg->GetDlgItem( IDC_TADMINLIST ) ); Info.flags = LVFI_PARTIAL | LVFI_STRING; Info.psz = CONV_CLISTR(lpIPAck->m_szAccount); Index = RegAdminz->FindItem( &Info ); if( Index != -1 ) { RegAdminz->SetItemText( Index, 3, CONV_CLISTR(lpIPAck->m_szIP) ); } } return true; } // °ü¸®ÀÚ °èÁ¤ »èÁ¦ ACK bool CClientDispatch::PktDelAdminAck(PktBase* lpPktBase) { PktAdminMgr::PktDelAdmin* lpPktDelAdmin = static_cast(lpPktBase); CDialog* ManagementDlg = static_cast(GET_WINDOW(IDD_TADMINMANAGEMENTDLG)); if (ManagementDlg != NULL) { LVFINDINFO Info; int Index; CListCtrl* RegAdminz = static_cast(ManagementDlg->GetDlgItem(IDC_TADMINLIST)); Info.flags = LVFI_PARTIAL | LVFI_STRING; Info.psz = CONV_CLISTR(lpPktDelAdmin->m_szAccount); Index = RegAdminz->FindItem(&Info); if (Index != -1) RegAdminz->DeleteItem(Index); } return true; } // ij¸¯ÅÍ Á¤º¸ °¡Á®¿À±â ¿À·ù ACK void CClientDispatch::ResultErrModifyCharacter(PktBase* lpPktBase) { PktAdminMgr::PktResultAck* lpResult = static_cast(lpPktBase); unsigned long* dwRequest = reinterpret_cast(lpResult + 1); CCharacterDoc::CharDocInfo* CharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(*dwRequest); if (NULL != CharDocument) { CharDocument->m_cCharacterState = CCharacterDoc::CharDocInfo::FINISH; CharDocument->ReleaseCharacter(); CharDocument->m_ModifyDocument->SetTitle(_T("UNLOADED")); CharInfoParseFinish(CharDocument); // MDI ÀÚ½ÄÀ©µµ¿ìµé ¾ÆÀÌÄÜ º¯°æ... ³ªÁß¿¡ Ãß°¡ÇÏÀÚ.. /*POSITION POS = CharDocument->m_ModifyDocument->GetFirstViewPosition(); CView* lpView = CharDocument->m_ModifyDocument->GetNextView(POS); if (NULL != lpView) { CFrameWnd* lpFrame = lpView->GetParentFrame(); lpFrame->SetIcon(AfxGetApp()->LoadIcon(IDI_BLOCK), true); }*/ } } // ij¸¯ÅÍ º¹±¸ ACK bool CClientDispatch::PktCharRestoreAck(PktBase* lpPktBase) { PktAdminMgr::PktCharRestoreAck* lpPktAck = static_cast(lpPktBase); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_CHARRESTOREDLG)); if (NULL == lpDialog) { return true; } CListCtrl* lpList = static_cast(lpDialog->GetDlgItem(IDC_CR_DELHISTORYLIST)); TCHAR szUID[64], szCID[64], szNewServerGroupID[64], szOldServerGroupID[64]; _sntprintf(szUID, sizeof(szUID), _T("%d"), lpPktAck->m_dwUID); _sntprintf(szCID, sizeof(szCID), _T("%d"), lpPktAck->m_dwCID); _sntprintf(szNewServerGroupID, sizeof(szNewServerGroupID), _T("%d"), lpPktAck->m_cNewServerGroupID); _sntprintf(szOldServerGroupID, sizeof(szOldServerGroupID), _T("%d"), lpPktAck->m_cOldServerGroupID); for(int cnt = 0; cnt < lpList->GetItemCount(); cnt ++) // ¹«½Ä°Ë»ö { CString strUID = lpList->GetItemText(cnt, 0); CString strCID = lpList->GetItemText(cnt, 1); CString strNewServerGroupID = lpList->GetItemText(cnt, 2); CString strOldServerGroupID = lpList->GetItemText(cnt, 3); if((!_tcsicmp(strUID, szUID)) && (!_tcsicmp(strCID, szCID)) && (!_tcsicmp(strNewServerGroupID, szNewServerGroupID)) && (!_tcsicmp(strNewServerGroupID, szNewServerGroupID))) { lpList->DeleteItem(cnt); break; } } return true; } // °¢Á¾ ¾ÆÀÌÅÛ ÄÁÅ×ÀÌ³Ê ÃʱâÈ­ ACK bool CClientDispatch::PktItemResetAck(PktBase* lpPktBase) { PktAdminMgr::PktItemResetAck* lpPktItemResetAck = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktItemResetAck->m_dwRequest); if (NULL != lpCharDocument) { CModifyCharacter* lpCharacter = lpCharDocument->m_ModifyCharacter; if (NULL != lpCharacter) { switch(lpPktItemResetAck->m_cTakePos) { case TakeType::TS_DEPOSIT: { Item::CDepositContainer& Deposit = lpCharacter->GetDeposit(); for(int iMaxTab = 0; iMaxTab < Deposit.GetMaxTabNum(); ++iMaxTab) { Deposit.GetTab(iMaxTab)->ClearItems(); } } break; case TakeType::TS_INVEN: lpCharacter->GetInventory().ClearItems(); break; case TakeType::TS_EQUIP: lpCharacter->GetEquipments().ClearItems(); break; case TakeType::TS_TEMPINVEN: lpCharacter->GetTempInven().ClearItems(); break; case TakeType::TS_EXTRA: lpCharacter->GetExtra().ClearItems(); break; } CharInfoParseFinish(lpCharDocument); } } return true; } // µî·ÏµÇ¾îÀÖ´Â ¿î¿µÅø °èÁ¤ ¸®½ºÆ® Ack bool CClientDispatch::PktAdminListAck(PktBase* lpPktBase) { PktAdminMgr::PktAdminListAck* lpPktAdminListAck = static_cast(lpPktBase); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_TADMINMANAGEMENTDLG)); if (NULL != lpDialog) { CListCtrl* ctrlAdminList = static_cast(lpDialog->GetDlgItem(IDC_TADMINLIST)); ctrlAdminList->InsertItem(0, CONV_CLISTR(lpPktAdminListAck->m_szAccount), GetAdminLVIconIndex(lpPktAdminListAck->m_szLevel)); ctrlAdminList->SetItemText(0, 1, CONV_CLISTR(lpPktAdminListAck->m_szName)); ctrlAdminList->SetItemText(0, 2, GetAdminLVName(lpPktAdminListAck->m_szLevel)); ctrlAdminList->SetItemText(0, 3, CONV_CLISTR(lpPktAdminListAck->m_szIP)); ctrlAdminList->SetItemText(0, 4, CONV_CLISTR(lpPktAdminListAck->m_szDate)); } return true; } // ºí·ÏµÈ °èÁ¤ ¸®½ºÆ® ACK bool CClientDispatch::PktSearchBlockAck(PktBase* lpPktBase) { PktAdminMgr::PktSearchBlockAck* lpBlockedListAck = static_cast(lpPktBase); CDialog* lpBlockManageDlg = static_cast(GET_WINDOW(IDD_BLOCKEDLISTDLG)); if (NULL != lpBlockManageDlg) { CListCtrl* lpListCtrl = static_cast(lpBlockManageDlg->GetDlgItem(IDC_BLOCKEDLIST)); int nInsertRow = lpListCtrl->GetItemCount(); CString strFormat; strFormat.Format(_T("%d"), lpBlockedListAck->m_nidx); lpListCtrl->InsertItem(0, strFormat); CCharacterDoc::GetInstance().GetServerName((unsigned long)lpBlockedListAck->m_cServerGroup, strFormat); lpListCtrl->SetItemText(0, 1, strFormat); strFormat.Format(_T("%u"), lpBlockedListAck->m_dwUID); lpListCtrl->SetItemText(0, 2, strFormat); lpListCtrl->SetItemText(0, 3, lpBlockedListAck->m_szClientID); lpListCtrl->SetItemText(0, 4, lpBlockedListAck->m_szCharacterName); strFormat.Format(_T("%d"), lpBlockedListAck->m_cBlockTarget); lpListCtrl->SetItemText(0, 5, strFormat); strFormat.Format(_T("%d"), lpBlockedListAck->m_cBlockTerm); lpListCtrl->SetItemText(0, 6, strFormat); lpListCtrl->SetItemText(0, 7, lpBlockedListAck->m_szBlockStartTime); lpListCtrl->SetItemText(0, 8, lpBlockedListAck->m_szBlockFinishTime); lpListCtrl->SetItemText(0, 9, lpBlockedListAck->m_szAdminName); lpListCtrl->SetItemText(0, 10, lpBlockedListAck->m_szDescription); } return true; } // °Ë»ö °á°ú Ack bool CClientDispatch::PktSearchResultAck(PktBase* lpPktBase) { PktAdminMgr::PktSearchResultAck* lpPktResult = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocInfo = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktResult->m_dwRequestKey); if(NULL != lpCharDocInfo) { if(lpPktResult->m_Result == PktAdminMgr::PktSearchResultAck::Success) { CUserInfoDoc* Doc = static_cast (theApp.NewUserDocument()); Doc->SetUserInfo(lpCharDocInfo); } else if(lpPktResult->m_Result == PktAdminMgr::PktSearchResultAck::NoData) { if (CCharacterDoc::GetInstance().DeleteCharDocInfo(lpPktResult->m_dwRequestKey)) { Report(GetLocalString("MSG_0072"), GENERAL); } } } return true; } // Àκ¥Å丮 ¼ÒÁö±Ý º¯°æ Ack bool CClientDispatch::PktInvenGold(PktBase* lpPktBase) { PktAdminMgr::PktInvenGold* lpPktInvenGold = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktInvenGold->m_dwRequest); if(NULL != lpCharDocument) { CModifyCharacter* lpCharacter = lpCharDocument->m_ModifyCharacter; if(NULL != lpCharacter) { lpCharacter->SetGold(lpPktInvenGold->m_dwGold); CharInfoParseFinish(lpCharDocument); } } return true; } // ij¸¯ÅÍ °Ë»ö ack bool CClientDispatch::PktSearchAck(PktBase* lpPktBase) { PktAdminMgr::PktSearchAck* lpPktSearchAck = static_cast(lpPktBase); char* In_CharPos = reinterpret_cast(lpPktSearchAck + 1); CCharacterDoc::CharDocInfo* lpCharDoc = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktSearchAck->m_dwRequestKey); if(NULL != lpCharDoc) { CCharacterDoc::In_ServerCharacter lpServChar; ZeroMemory(&lpServChar, sizeof(CCharacterDoc::In_ServerCharacter)); lpServChar.dwCharCount = lpPktSearchAck->m_CharCount; lpServChar.dwServerGroup = lpPktSearchAck->m_dwServerGroup; lpCharDoc->m_cOldServerGroup = lpPktSearchAck->m_cOldServerGroup; for(int CharCount = 0; CharCount < lpPktSearchAck->m_CharCount; CharCount++) { int nPos = sizeof(CCharacterDoc::In_CharacterIndex) * CharCount; CCharacterDoc::In_CharacterIndex* lpChar = reinterpret_cast(In_CharPos + nPos); CopyMemory(lpServChar.CharIdx + CharCount, lpChar, sizeof(CCharacterDoc::In_CharacterIndex)); } lpCharDoc->m_listTreeInfo.push_back(lpServChar); } else { // ·Î±×â¿¡ ¶Ù¿öÁÖ´øÁö ¾Ïư »ç¿ëÀÚ°¡ ¾Ë¼öÀÖµµ·Ï ÇÏÀÚ. } return true; } // ij¸¯ÅÍ Á¤º¸¿äû ACK bool CClientDispatch::PktGetCharacterAck(PktBase* lpPktBase) { PktAdminMgr::PktGetCharacterAck* lpPktGetCharacterAck = static_cast(lpPktBase); unsigned long dwUID = lpPktGetCharacterAck->m_dwUID; unsigned long dwCID = lpPktGetCharacterAck->m_dwCID; unsigned long dwRequestKey = lpPktGetCharacterAck->m_dwRequestKey; CCharacterDoc::CharDocInfo* CharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(dwRequestKey); char* In_DataBuffer = reinterpret_cast(lpPktGetCharacterAck + 1); unsigned short uExtraPktLen = lpPktGetCharacterAck->GetLen() - sizeof(PktAdminMgr::PktGetCharacterAck); bool bResult = true; CModifyCharacter* lpModifyChar = CharDocument->m_ModifyCharacter; CString strWindowTitle; if(NULL == CharDocument) { Report(GetLocalString("MSG_0073"), FAILED); return true; } switch(lpPktGetCharacterAck->m_cType) { case PktAdminMgr::PktGetCharacterAck::Type::CHAR_BASIC_DATA: { lpModifyChar = CharDocument->Createcharacter(); bResult = Parser.PARSE_CHAR_BASIC_DATA(lpModifyChar, In_DataBuffer); } break; case PktAdminMgr::PktGetCharacterAck::Type::CHAR_EXTRA_DATA: { bResult = Parser.PARSE_CHAR_EXTRA_DATA(lpModifyChar, In_DataBuffer); } break; case PktAdminMgr::PktGetCharacterAck::Type::CHAR_FRIEND_DATA: { bResult = Parser.PARSE_CHAR_FRIEND_DATA(lpModifyChar, In_DataBuffer, uExtraPktLen); } break; case PktAdminMgr::PktGetCharacterAck::Type::CHAR_BAN_DATA: { bResult = Parser.PARSE_CHAR_BAN_DATA(lpModifyChar, In_DataBuffer, uExtraPktLen); } break; case PktAdminMgr::PktGetCharacterAck::Type::STORE_12_DATA: { bResult = Parser.PARSE_STORE_12_DATA(lpModifyChar, In_DataBuffer); } break; case PktAdminMgr::PktGetCharacterAck::Type::STORE_34_DATA: { bResult = Parser.PARSE_STORE_34_DATA(lpModifyChar, In_DataBuffer); } break; case PktAdminMgr::PktGetCharacterAck::Type::FINISH_GET_DATA: { lpModifyChar->SetUID(lpPktGetCharacterAck->m_dwUID); lpModifyChar->SetCID(lpPktGetCharacterAck->m_dwCID); lpModifyChar->SetServerGroup(lpPktGetCharacterAck->m_dwServerGroup); lpModifyChar->SetOldServerGroup(lpPktGetCharacterAck->m_cOldServerGroupID); strWindowTitle.Format(GetLocalString("FORMAT_001"), lpModifyChar->GetUID(), lpModifyChar->GetCID(), lpModifyChar->GetName()); CharDocument->m_ModifyDocument->SetTitle(strWindowTitle); CharDocument->m_cCharacterState = CCharacterDoc::CharDocInfo::FINISH; CharInfoParseFinish(CharDocument); // °èÁ¤ ±¹°¡±îÁö ¾òÀº ´ÙÀ½¿¡ CharInfoParseFinish! CPacketMgr::GetInstance()->SendPktUserNation( lpModifyChar->GetClientKey(), lpModifyChar->GetServerGroup(), lpModifyChar->GetUID(), lpModifyChar->GetCID()); } break; } if(!bResult) { TCHAR szReport[1024]; _sntprintf(szReport, sizeof(szReport), GetLocalString("ADDED_STRING_053"), lpPktGetCharacterAck->m_cType); CharDocument->ReleaseCharacter(); CharDocument->m_cCharacterState = CCharacterDoc::CharDocInfo::EMPTY; Report(szReport, FAILED); } return true; } // ij¸¯ÅÍ Ã¢°í µ¿±âÈ­ ACK bool CClientDispatch::PktSyncDeposit( PktBase* lpPktBase ) { PktAdminMgr::PktSyncDeposit* lpPktSyncDeposit = static_cast< PktAdminMgr::PktSyncDeposit* >( lpPktBase ); char* lpDepositBuffer = reinterpret_cast< char* >( lpPktSyncDeposit + 1 ); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance( ).GetCharDocInfo( lpPktSyncDeposit->m_dwRequestID ); CModifyCharacter* lpCharacter = lpCharDocument->m_ModifyCharacter; if(NULL != lpCharacter) { Item::CDepositContainer& SyncContainer = lpCharacter->GetDeposit(); unsigned long dwCID = lpCharacter->GetCID(); switch(lpPktSyncDeposit->m_cType) { case PktAdminMgr::PktSyncDeposit::Tab12: SyncContainer.GetTab(0)->ClearItems(); SyncContainer.GetTab(1)->ClearItems(); Parser.PARSE_STORE_12_DATA(lpCharacter, lpDepositBuffer); break; case PktAdminMgr::PktSyncDeposit::Tab34: SyncContainer.GetTab(2)->ClearItems(); SyncContainer.GetTab(3)->ClearItems(); Parser.PARSE_STORE_34_DATA(lpCharacter, lpDepositBuffer); break; } CharInfoParseFinish(lpCharDocument); } else { Report(GetLocalString("MSG_0075"), FAILED); } return true; } // ij¸¯ÅÍ Á¤º¸ ÆÄ½Ì ¿Ï·á bool CClientDispatch::CharInfoParseFinish(CCharacterDoc::CharDocInfo *lpCharDocInfo) { CView* pView; POSITION pos = lpCharDocInfo->m_ModifyDocument->GetFirstViewPosition(); while (pos != NULL) { pView = lpCharDocInfo->m_ModifyDocument->GetNextView(pos); if((pView->IsKindOf(RUNTIME_CLASS(CCharSheetView)))) break; } CCharSheetView* pSheetView = static_cast(pView); if (NULL != pSheetView && NULL != lpCharDocInfo->m_ModifyCharacter) { lpCharDocInfo->m_ModifyCharacter->CalculateStatusData(true); pSheetView->SetCharSheetInfo(lpCharDocInfo->m_dwDocKey, lpCharDocInfo->m_ModifyCharacter); lpCharDocInfo->m_bLoaded = true; } else { lpCharDocInfo->m_bLoaded = false; } return true; } // ij¸¯ÅÍ ¼¼¼Ç ´Ý±â ACK bool CClientDispatch::PktCloseCharacterAck(PktBase* lpPktBase) { PktAdminMgr::PktCloseCharacterAck* lpPktCloseCharacterAck = static_cast(lpPktBase); Report(GetLocalString("MSG_0076"), SUCCESS); return true; } // ¾ÆÀÌÅÛ »ý¼º ACK bool CClientDispatch::PktCreateItemAck(PktBase* lpPktBase) { PktAdminMgr::PktCreateItemAck* lpPktCreateItem = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* CharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktCreateItem->m_dwRequestKey); if( NULL != CharDocument ) { CModifyCharacter* lpModifyCharacter = CharDocument->m_ModifyCharacter; unsigned long dwUID = lpPktCreateItem->m_dwUID; unsigned long dwCID = lpPktCreateItem->m_dwCID; if(NULL != lpModifyCharacter) { if((dwUID == lpModifyCharacter->GetUID()) && (dwCID == lpModifyCharacter->GetCID())) { Item::CItem* lpItem = Item::CItemFactory::GetInstance().CreateItem(lpPktCreateItem->m_PrototypeID); if(NULL != lpItem) { lpItem->SetNumOrDurability(lpPktCreateItem->m_CreateItemInfo.m_cNumOrDurability); Item::CEquipment* lpEquipment = Item::CEquipment::DowncastToEquipment(lpItem); if( NULL != lpEquipment ) { static_cast(lpEquipment)->AdjustData(lpPktCreateItem->m_CreateItemInfo); } static_cast< CModifyItem* >( lpItem )->SetUID( lpPktCreateItem->m_ItemID ); unsigned char cTakePos = lpPktCreateItem->m_CreateItemInfo.m_cTakePos; unsigned char cXPos = lpPktCreateItem->m_CreateItemInfo.m_cXPos; unsigned char cYPos = lpPktCreateItem->m_CreateItemInfo.m_cYPos; unsigned char cZPos = lpPktCreateItem->m_CreateItemInfo.m_cZPos; Item::ItemPos ItemPos = ItemData::MakeItemPos( cTakePos, cXPos, cYPos, cZPos ); lpModifyCharacter->GetInventory().SetAdminTool(); if (false == lpModifyCharacter->SetItem(ItemPos, lpItem)) { MessageBox(NULL, _T("Error MountItem"), _T("Err"), MB_OK); } CharInfoParseFinish(CharDocument); } } } } return true; } // ¾ÆÀÌÅÛ Á¤º¸º¯°æ ACK bool CClientDispatch::PktUpdateItemAck(PktBase* lpPktBase) { PktAdminMgr::PktUpdateItemAck* lpUpdateAck = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpUpdateAck->m_dwRequestKey); if(NULL != lpCharDocument) { CModifyCharacter* lpCharacter = lpCharDocument->m_ModifyCharacter; if(NULL != lpCharacter) { unsigned char cTakePos = lpUpdateAck->m_UpdataItemInfo.m_cTakePos; unsigned char cXPos = lpUpdateAck->m_UpdataItemInfo.m_cXPos; unsigned char cYPos = lpUpdateAck->m_UpdataItemInfo.m_cYPos; unsigned char cZPos = lpUpdateAck->m_UpdataItemInfo.m_cZPos; Item::ItemPos ItemPos = ItemData::MakeItemPos(cTakePos, cXPos, cYPos, cZPos); Item::CItem* lpItem = lpCharacter->GetItem(ItemPos); if(NULL != lpItem) { lpItem->SetNumOrDurability(lpUpdateAck->m_UpdataItemInfo.m_cNumOrDurability); Item::CEquipment* lpEquipment = Item::CEquipment::DowncastToEquipment(lpItem); if(NULL != lpEquipment) { static_cast(lpEquipment)->AdjustData(lpUpdateAck->m_UpdataItemInfo); } } CharInfoParseFinish(lpCharDocument); } } return true; } // ¾ÆÀÌÅÛ »èÁ¦ ACK bool CClientDispatch::PktRemoveItemAck(PktBase* lpPktBase) { PktAdminMgr::PktRemoveItemAck* lpRemoveItem = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpRemoveItem->m_dwRequestKey); if(NULL != lpCharDocument) { CModifyCharacter* lpCharacter = lpCharDocument->m_ModifyCharacter; if(NULL != lpCharacter) { unsigned char cTaskPos = lpRemoveItem->m_cTakePos; unsigned char cXPos = lpRemoveItem->m_cXPos; unsigned char cYPos = lpRemoveItem->m_cYPos; unsigned char cZPos = lpRemoveItem->m_cZPos; unsigned __int64 ItemUID = lpRemoveItem->m_ItemUID; unsigned short PrototypeID = lpRemoveItem->m_ItemPrototypeID; Item::ItemPos ItemPos = ItemData::MakeItemPos(cTaskPos, cXPos, cYPos, cZPos); Item::CItem* lpItem = lpCharacter->GetItem(ItemPos); if(NULL != lpItem) { if((lpItem->GetUID() == ItemUID) && (lpItem->GetPrototypeID() == PrototypeID)) { lpCharacter->GetInventory().SetAdminTool(); if (true == lpCharacter->RemoveItem(ItemPos)) { DELETE_ITEM(lpItem); CharInfoParseFinish(lpCharDocument); } else { Report(GetLocalString("MSG_0077"), FAILED); } } else { Report(GetLocalString("MSG_0078"), FAILED); } } else { Report(GetLocalString("MSG_0079"), FAILED); } } } return true; } // ½ºÅ³ º¯°æ ACK bool CClientDispatch::PktSkillEditAck(PktBase* lpPktBase) { PktAdminMgr::PktSkillEdit* lpPktSkillEditAck = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktSkillEditAck->m_dwRequest); if(NULL != lpCharDocument) { CModifyCharacter* lpCharacter = lpCharDocument->m_ModifyCharacter; if(NULL != lpCharacter) { unsigned char cResult = PktAdminMgr::PktSkillEdit::FAILED; unsigned short wSkillID = lpPktSkillEditAck->m_wSkillID; char cLevel = lpPktSkillEditAck->m_SkillLevel; char cLockCount = lpPktSkillEditAck->m_SkillLockCount; switch(lpPktSkillEditAck->m_cType) { case PktAdminMgr::PktSkillEdit::Create: cResult = lpCharacter->AppendSkill(wSkillID, cLevel, cLockCount); break; case PktAdminMgr::PktSkillEdit::Edit: cResult = lpCharacter->AppendSkill(wSkillID, cLevel, cLockCount); break; case PktAdminMgr::PktSkillEdit::Delete: cResult = lpCharacter->DeleteSkill(wSkillID, cLevel, cLockCount); break; } if(cResult = PktAdminMgr::PktSkillEdit::SUCCESS) { CharInfoParseFinish(lpCharDocument); } else { Report(GetLocalString("MSG_0080"), FAILED); } } } return true; } bool CClientDispatch::PktCancelExecuteQuest(PktBase* lpPktBase) { PktAdminMgr::PktCancelExecuteQuest* lpPktCancelExecuteQuest = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDoc = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktCancelExecuteQuest->m_dwRequestKey); if (NULL != lpCharDoc) { CModifyCharacter* lpCharacter = lpCharDoc->m_ModifyCharacter; if (true == lpCharacter->CancelQuest(lpPktCancelExecuteQuest->m_wQuestID, true)) { CharInfoParseFinish(lpCharDoc); } else { Report(GetLocalString("MSG_0185"), FAILED); } } return true; } bool CClientDispatch::PktDeleteHistoryQuest(PktBase* lpPktBase) { PktAdminMgr::PktDeleteHistoryQuest* lpPktDeleteHistoryQuest = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDoc = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktDeleteHistoryQuest->m_dwRequestKey); if (NULL != lpCharDoc) { CModifyCharacter* lpCharacter = lpCharDoc->m_ModifyCharacter; if (true == lpCharacter->DeleteHistoryQuest(lpPktDeleteHistoryQuest->m_wQuestID)) { CharInfoParseFinish(lpCharDoc); } else { Report(GetLocalString("MSG_0185"), FAILED); } } return true; } bool CClientDispatch::PktUserNation(PktBase* lpPktBase) { PktAdminMgr::PktUserNation* lpPktUserNation = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDoc = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktUserNation->m_dwRequestKey); if (NULL != lpCharDoc) { lpCharDoc->m_ModifyCharacter->SetUserNation(lpPktUserNation->m_cNation); CharInfoParseFinish(lpCharDoc); Report(GetLocalString("MSG_0074"), SUCCESS); } return true; } // ij¸¯ÅÍ À̸§º¯°æ ACK bool CClientDispatch::PktChangeNameAck(PktBase* lpPktBase) { PktAdminMgr::PktChangeName* lpPktChangeName = static_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDocument = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktChangeName->m_dwRequest); if(NULL != lpCharDocument) { CCharacterDoc::In_CharacterIndex* lpCharIdx = lpCharDocument->GetSrvChar(lpPktChangeName->m_dwServerGroup, lpPktChangeName->m_dwCID); if(NULL != lpCharIdx) { CUserCharTreeView* lpTreeView; POSITION Pos = lpCharDocument->m_ModifyDocument->GetFirstViewPosition(); lpTreeView = static_cast(lpCharDocument->m_ModifyDocument->GetNextView(Pos)); CTreeCtrl* lpTree = static_cast(lpTreeView->GetDlgItem(IDC_CHARTREE)); HTREEITEM hItem = lpTree->GetSelectedItem(); if(NULL != hItem) { TCHAR szCharNode[255]; _sntprintf(szCharNode, sizeof(szCharNode), _T("%d %s"), lpPktChangeName->m_dwCID, GetLocalString("MSG_0171")); lpTree->SetItemText(hItem, szCharNode); } } } CDialog* lpDialog = static_cast(GET_WINDOW(IDD_MODIFYCHARNAMEDLG)); if(NULL != lpDialog) { lpDialog->EndDialog(true); } CString strKey; switch(lpPktChangeName->m_dwUID) // ¿ø·¡ UIDÀε¥ ±×³É ¿¡·¯ ŸÀÔ ¹Þ´Â°É·Î »ç¿ë; { case PktCharNameChange::ERR_ALREADY_USE_NAME: strKey = _T("MSG_0172"); break; case PktCharNameChange::ERR_CANNOT_FIND_CHARACTER: strKey = _T("MSG_0173"); break; case PktCharNameChange::ERR_CANNOT_USE_NAME: strKey = _T("MSG_0174"); break; case PktCharNameChange::ERR_INVALID_NAME: strKey = _T("MSG_0175"); break; case PktCharNameChange::ERR_NAMECHANGE_ITEM: strKey = _T("MSG_0176"); break; case PktCharNameChange::ERR_SERVER: strKey = _T("MSG_0177"); break; default: strKey = _T("MSG_0178"); break; } Report(GetLocalString(strKey), FAILED); return true; } // °ü¸®ÀÚ Ã¢°í¾ÆÀÌÅÛ »èÁ¦ ACK bool CClientDispatch::PktAdminStoreDeleteAck(PktBase* lpPktBase) { PktAdminMgr::PktAdminStoreDelete* lpPktAck = static_cast(lpPktBase); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_STATUS_DLGBAR)); CListCtrl* lpList = static_cast(lpDialog->GetDlgItem(IDC_ADMINSTORELIST)); if(NULL != lpList) { int ItemCount = lpList->GetItemCount(); TCHAR szStoreUID[100]; _sntprintf(szStoreUID, sizeof(szStoreUID), _T("%d"), lpPktAck->m_dwStoreUID); for(int cnt = 0;cnt < ItemCount; cnt++) { CString strStoreUID = lpList->GetItemText(cnt, 0); if(!_tcsicmp(strStoreUID, szStoreUID)) { lpList->DeleteItem(cnt); break; } } } return true; } // °ü¸®ÀÚâ°í ¾ÆÀÌÅÛÁ¤º¸ °¡Á®¿À±â ACK bool CClientDispatch::PktGetAdminStoreItemAck(PktBase* lpPktBase) { PktAdminMgr::PktGetAdminStoreItemAck* lpPktAck = static_cast(lpPktBase); switch(lpPktAck->m_cType) { case PktAdminMgr::PktGetAdminStoreItem::EDIT: { AdminStoreItemModify(lpPktAck); } break; case PktAdminMgr::PktGetAdminStoreItem::CREATE: { AdminStoreGrabMode(lpPktAck); } break; default: Report(GetLocalString("MSG_0083"), FAILED); break; } return true; } // ¿î¿µÃ¢°íÀÇ ¾ÆÀÌÅÛÀ» Áý±â void CClientDispatch::AdminStoreGrabMode(PktAdminMgr::PktGetAdminStoreItemAck* lpPktAck) { CItemManageDlg dlg(CItemManageDlg::CREATE_ADMINSTORE); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_STATUS_DLGBAR)); CListCtrl* lpList = static_cast(lpDialog->GetDlgItem(IDC_ADMINSTORELIST)); if(NULL != lpList) { int ItemSelect = lpList->GetNextItem(-1, LVIS_SELECTED); if(-1 != ItemSelect) { dlg.m_strNewItemName = lpList->GetItemText(ItemSelect, 3); } else { Report(GetLocalString("MSG_0084"), FAILED); return; } } g_stMyItemInfo.m_stItemInfo.AdminStore_In(lpPktAck->m_binItemInfo); g_stMyItemInfo.m_nModeIndex = MyItemInfo::NONE; g_stMyItemInfo.m_dwStoreUID = lpPktAck->m_dwStoreUID; dlg.DoModal(); } // °ü¸®ÀÚ ¾ÆÀÌÅÛâ°í Á¤º¸ ¼öÁ¤ void CClientDispatch::AdminStoreItemModify(PktAdminMgr::PktGetAdminStoreItemAck* lpPktAck) { CItemManageDlg dlg(CItemManageDlg::EDIT_ADMINSTORE); CDialog* lpDialog = static_cast(GET_WINDOW(IDD_STATUS_DLGBAR)); CListCtrl* lpList = static_cast(lpDialog->GetDlgItem(IDC_ADMINSTORELIST)); if(NULL != lpList) { int ItemSelect = lpList->GetNextItem(-1, LVIS_SELECTED); if(-1 < ItemSelect) { dlg.m_strNewItemName = lpList->GetItemText(ItemSelect, 3); } else { Report(GetLocalString("MSG_0084"), FAILED); return; } } g_stMyItemInfo.m_stItemInfo.AdminStore_In(lpPktAck->m_binItemInfo); g_stMyItemInfo.m_nModeIndex = MyItemInfo::EDIT_ADMINSTORE; g_stMyItemInfo.m_dwStoreUID = lpPktAck->m_dwStoreUID; dlg.DoModal(); } bool CClientDispatch::PktGuildSearchAck(PktBase* lpPktBase) { PktAdminMgr::PktGuildSearchAck* lpGuildSearchAck = reinterpret_cast(lpPktBase); CGuildSearchDlg* lpDialog = static_cast(GET_WINDOW(IDD_GUILDSEARCH_DLG)); if(NULL != lpDialog) { CString strForFormating; strForFormating.Format(_T("%u"), lpGuildSearchAck->m_dwGID); lpDialog->m_ctrlGuildSearchList.InsertItem(0, strForFormating); strForFormating.Format(_T("%d"), lpGuildSearchAck->m_nOldServerID); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 1, strForFormating); CCharacterDoc::GetInstance().GetServerName(lpGuildSearchAck->m_dwServerGroup, strForFormating); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 2, strForFormating); strForFormating.Format(_T("%s"), GetNationString((int)lpGuildSearchAck->m_dwNation)); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 3, strForFormating); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 4, CONV_CLISTR(lpGuildSearchAck->m_szName)); strForFormating.Format(_T("%u"), lpGuildSearchAck->m_dwFame); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 5, strForFormating); strForFormating.Format(_T("%u"), lpGuildSearchAck->m_dwLevel); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 6, strForFormating); strForFormating.Format(_T("%u"), lpGuildSearchAck->m_dwMemberNum); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 7, strForFormating); strForFormating.Format(_T("%u"), lpGuildSearchAck->m_dwGold); lpDialog->m_ctrlGuildSearchList.SetItemText(0, 8, strForFormating); lpDialog->m_dwSearchCount = lpDialog->m_ctrlGuildSearchList.GetItemCount(); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktRequestGuildMemberListAck(PktBase* lpPktBase) { PktAdminMgr::PktRequestGuildMemberListAck* lpGuildMemberList = reinterpret_cast(lpPktBase); CGuildMainDlg* lpDialog = static_cast(GET_WINDOW(IDD_GUILDMAINDLG)); if(NULL != lpDialog) { CString strForFormating; strForFormating.Format(_T("%u"), lpGuildMemberList->m_dwCID); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.InsertItem(0, strForFormating); strForFormating.Format(_T("%d"), lpGuildMemberList->m_nPosition); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%d"), lpGuildMemberList->m_nPositionInGuild); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 2, strForFormating); strForFormating.Format(_T("%s"), lpGuildMemberList->m_szCharName); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 3, strForFormating); strForFormating.Format(_T("%d"), lpGuildMemberList->m_nLevel); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 4, strForFormating); strForFormating.Format(_T("%u"), lpGuildMemberList->m_dwFame); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 5, strForFormating); strForFormating.Format(_T("%u"), lpGuildMemberList->m_dwGold); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 6, strForFormating); strForFormating.Format(_T("%s"), GetClassString(lpGuildMemberList->m_nClass)); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 7, strForFormating); strForFormating.Format(_T("%s"), lpGuildMemberList->m_szLeaveGuildTime); lpDialog->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(0, 8, strForFormating); } return true; } bool CClientDispatch::PktGuildRestoreDataListAck(PktBase* lpPktBase) { PktAdminMgr::PktGuildRestoreDataListAck* lpPktGuildRestoreDataListAck = reinterpret_cast(lpPktBase); CGuildRestoreDlg* lpDialog = static_cast(GET_WINDOW(IDD_GUILDRESTOREDLG)); if(NULL != lpDialog) { CString strForFormating; CCharacterDoc::GetInstance().GetServerName(lpPktGuildRestoreDataListAck->m_dwServerGroup, strForFormating); lpDialog->m_ctrlRestoreGuildList.InsertItem(0, strForFormating); strForFormating.Format(_T("%u"), lpPktGuildRestoreDataListAck->m_dwGID); lpDialog->m_ctrlRestoreGuildList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%s"), lpPktGuildRestoreDataListAck->m_szGuildName); lpDialog->m_ctrlRestoreGuildList.SetItemText(0, 2, strForFormating); strForFormating.Format(_T("%u"), lpPktGuildRestoreDataListAck->m_dwGold); lpDialog->m_ctrlRestoreGuildList.SetItemText(0, 3, strForFormating); strForFormating.Format(_T("%s"), lpPktGuildRestoreDataListAck->m_szDeleteDate); lpDialog->m_ctrlRestoreGuildList.SetItemText(0, 4, strForFormating); lpDialog->m_dwSearchCount = lpDialog->m_ctrlRestoreGuildList.GetItemCount(); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktFortSearchAck(PktBase* lpPktBase) { PktAdminMgr::PktFortSearchAck* lpFortSearchAck = reinterpret_cast(lpPktBase); CFortInfoDlg* lpDialog = static_cast(GET_WINDOW(IDD_FORTINFODLG)); if(NULL != lpDialog) { CString strForFormating; CCharacterDoc::GetInstance().GetServerName(lpFortSearchAck->m_dwServerGroup, strForFormating); lpDialog->m_ctrlSearchedList.InsertItem(0, strForFormating); strForFormating.Format(_T("%u"), lpFortSearchAck->m_dwCampID); lpDialog->m_ctrlSearchedList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%u"), lpFortSearchAck->m_dwGuildID); lpDialog->m_ctrlSearchedList.SetItemText(0, 2, strForFormating); lpDialog->m_ctrlSearchedList.SetItemText(0, 3, CONV_CLISTR(lpFortSearchAck->m_szGuildName)); strForFormating.Format(_T("%u"), lpFortSearchAck->m_dwHP); lpDialog->m_ctrlSearchedList.SetItemText(0, 4, strForFormating); strForFormating.Format(_T("%s"), GetZoneString(lpFortSearchAck->m_cZone)); lpDialog->m_ctrlSearchedList.SetItemText(0, 5, strForFormating); strForFormating.Format(_T("%d"), lpFortSearchAck->m_cChannel); lpDialog->m_ctrlSearchedList.SetItemText(0, 6, strForFormating); strForFormating = GetSiegeObjectTypeString((int)lpFortSearchAck->m_usObjectType); lpDialog->m_ctrlSearchedList.SetItemText(0, 7, strForFormating); strForFormating = GetStateString((int)lpFortSearchAck->m_cState); lpDialog->m_ctrlSearchedList.SetItemText(0, 8, strForFormating); strForFormating = GetSubStateString((int)lpFortSearchAck->m_usObjectType, (int)lpFortSearchAck->m_cSubState); lpDialog->m_ctrlSearchedList.SetItemText(0, 9, strForFormating); strForFormating.Format(_T("%d"), lpFortSearchAck->m_cUpgradeStep); lpDialog->m_ctrlSearchedList.SetItemText(0, 10, strForFormating); lpDialog->m_ctrlSearchedList.SetItemText(0, 11, CONV_CLISTR(lpFortSearchAck->m_szRemainTime)); lpDialog->m_ctrlSearchedList.SetItemText(0, 12, CONV_CLISTR(lpFortSearchAck->m_szLastUseTime)); strForFormating.Format(_T("%s"), GetGuildTitleString(lpFortSearchAck->m_cRight)); lpDialog->m_ctrlSearchedList.SetItemText(0, 13, strForFormating); strForFormating.Format(_T("%f"), lpFortSearchAck->m_fPosX); lpDialog->m_ctrlSearchedList.SetItemText(0, 14, strForFormating); strForFormating.Format(_T("%f"), lpFortSearchAck->m_fPosY); lpDialog->m_ctrlSearchedList.SetItemText(0, 15, strForFormating); strForFormating.Format(_T("%f"), lpFortSearchAck->m_fPosZ); lpDialog->m_ctrlSearchedList.SetItemText(0, 16, strForFormating); strForFormating.Format(_T("%d"), lpFortSearchAck->m_cMaterial); lpDialog->m_ctrlSearchedList.SetItemText(0, 17, strForFormating); strForFormating.Format(_T("%d"), lpFortSearchAck->m_cSiegeCount); lpDialog->m_ctrlSearchedList.SetItemText(0, 18, strForFormating); lpDialog->m_dwSearchCount = lpDialog->m_ctrlSearchedList.GetItemCount(); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktMiningCampAck(PktBase* lpPktBase) { PktAdminMgr::PktMiningCampAck* lpMiningCampAck = reinterpret_cast(lpPktBase); CString strForFormating; CMiningCampDlg* lpDialog = static_cast(GET_WINDOW(IDD_MININGCAMPDLG)); if(NULL != lpDialog) { CString strForFormating; strForFormating.Format(_T("%u"), lpMiningCampAck->m_dwCampID); lpDialog->m_ctrlMiningCampList.InsertItem(0, strForFormating); const Item::ItemInfo* ItemInfo = Item::CItemMgr::GetInstance().GetItemInfo(lpMiningCampAck->m_sMineralID); strForFormating.Format(_T("%s"), CONV_CLISTR(ItemInfo->m_SpriteData.m_szName)); lpDialog->m_ctrlMiningCampList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%u"), lpMiningCampAck->m_sAmount); lpDialog->m_ctrlMiningCampList.SetItemText(0, 2, strForFormating); strForFormating.Format(_T("%d"), lpMiningCampAck->m_cFlag); lpDialog->m_ctrlMiningCampList.SetItemText(0, 3, strForFormating); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktShopCampAck(PktBase* lpPktBase) { PktAdminMgr::PktShopCampAck* lpShopCampAck = reinterpret_cast(lpPktBase); CString strForFormating; CShopCampPage* lpDialog = static_cast(GET_WINDOW(IDD_SHOPCAMPPAGE)); if(NULL != lpDialog) { lpDialog->SetShopCampItem(lpShopCampAck); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktCastleSearchAck(PktBase* lpPktBase) { PktAdminMgr::PktCastleSearchAck* lpCastleSearchAck = reinterpret_cast(lpPktBase); CCastleSearchDlg* lpDialog = static_cast(GET_WINDOW(IDD_CASTLESEARCHDLG)); if(NULL != lpDialog) { CString strForFormating; CCharacterDoc::GetInstance().GetServerName(lpCastleSearchAck->m_dwServerGroup, strForFormating); lpDialog->m_ctrlSearchedList.InsertItem(0, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_dwCastleID); lpDialog->m_ctrlSearchedList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%s"), GetNationString(lpCastleSearchAck->m_cNation)); lpDialog->m_ctrlSearchedList.SetItemText(0, 2, strForFormating); strForFormating.Format(_T("%d : %s"), lpCastleSearchAck->m_cZone, GetZoneString(lpCastleSearchAck->m_cZone)); lpDialog->m_ctrlSearchedList.SetItemText(0, 3, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_cChannel); lpDialog->m_ctrlSearchedList.SetItemText(0, 4, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_cName); lpDialog->m_ctrlSearchedList.SetItemText(0, 5, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_cSiegeCount); lpDialog->m_ctrlSearchedList.SetItemText(0, 6, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_cInvincibleCount); lpDialog->m_ctrlSearchedList.SetItemText(0, 7, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_wTotalSiegeCount); lpDialog->m_ctrlSearchedList.SetItemText(0, 8, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_dwTotalTaxMoney); lpDialog->m_ctrlSearchedList.SetItemText(0, 9, strForFormating); strForFormating.Format(_T("%s"), GetGuildTitleString(lpCastleSearchAck->m_cRight)); lpDialog->m_ctrlSearchedList.SetItemText(0, 10, strForFormating); strForFormating.Format(_T("%f"), lpCastleSearchAck->m_fPosInX); lpDialog->m_ctrlSearchedList.SetItemText(0, 11, strForFormating); strForFormating.Format(_T("%f"), lpCastleSearchAck->m_fPosInY); lpDialog->m_ctrlSearchedList.SetItemText(0, 12, strForFormating); strForFormating.Format(_T("%f"), lpCastleSearchAck->m_fPosInZ); lpDialog->m_ctrlSearchedList.SetItemText(0, 13, strForFormating); strForFormating.Format(_T("%f"), lpCastleSearchAck->m_fPosOutX); lpDialog->m_ctrlSearchedList.SetItemText(0, 14, strForFormating); strForFormating.Format(_T("%f"), lpCastleSearchAck->m_fPosOutY); lpDialog->m_ctrlSearchedList.SetItemText(0, 15, strForFormating); strForFormating.Format(_T("%f"), lpCastleSearchAck->m_fPosOutZ); lpDialog->m_ctrlSearchedList.SetItemText(0, 16, strForFormating); strForFormating.Format(_T("%s"), GetJewelString(lpCastleSearchAck->m_wItemID)); lpDialog->m_ctrlSearchedList.SetItemText(0, 17, strForFormating); strForFormating.Format(_T("%u"), lpCastleSearchAck->m_cItemNum); lpDialog->m_ctrlSearchedList.SetItemText(0, 18, strForFormating); lpDialog->m_dwSearchCount = lpDialog->m_ctrlSearchedList.GetItemCount(); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktCastleCreatureAck(PktBase* lpPktBase) { PktAdminMgr::PktCastleCreatureAck* lpCastleCreatureAck = reinterpret_cast(lpPktBase); CCastleCreatureDlg* lpDialog = static_cast(GET_WINDOW(IDD_CASTLECREATUREDLG)); if(NULL != lpDialog) { CString strForFormating; strForFormating.Format(_T("%u"), lpCastleCreatureAck->m_dwCastleID); lpDialog->m_ctrlCastleCreatureList.InsertItem(0, strForFormating); strForFormating.Format(_T("%u"), lpCastleCreatureAck->m_dwCastleID); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%u"), lpCastleCreatureAck->m_dwOwnerID); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 2, strForFormating); strForFormating.Format(_T("%u"), lpCastleCreatureAck->m_dwHP); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 3, strForFormating); strForFormating.Format(_T("%s"), GetSiegeObjectTypeString((int) lpCastleCreatureAck->m_wObjectType)); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 4, strForFormating); strForFormating.Format(_T("%d"), (int) ( lpCastleCreatureAck->m_fDirection * RADIAN)); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 5, strForFormating); strForFormating.Format(_T("%s"), GetStateString((int) lpCastleCreatureAck->m_cState)); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 6, strForFormating); strForFormating.Format(_T("%s"), GetSubStateString((int) lpCastleCreatureAck->m_wObjectType , (int) lpCastleCreatureAck->m_cSubState)); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 7, strForFormating); strForFormating.Format(_T("%u"), lpCastleCreatureAck->m_cUpgradeStep); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 8, strForFormating); strForFormating.Format(_T("%u"), lpCastleCreatureAck->m_cUpgradeType); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 9, strForFormating); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 10, CONV_CLISTR(lpCastleCreatureAck->m_szRemainTime)); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 11, CONV_CLISTR(lpCastleCreatureAck->m_szLastUseTime)); strForFormating.Format(_T("%f"), lpCastleCreatureAck->m_fPosX); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 12, strForFormating); strForFormating.Format(_T("%f"), lpCastleCreatureAck->m_fPosY); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 13, strForFormating); strForFormating.Format(_T("%f"), lpCastleCreatureAck->m_fPosZ); lpDialog->m_ctrlCastleCreatureList.SetItemText(0, 14, strForFormating); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktItemQtyControlAck(PktBase* lpPktBase) { PktAdminMgr::PktItemQtyControl* lpPktItemQtyControl = reinterpret_cast(lpPktBase); CItemQuantityControlDlg* lpDialog = static_cast(GET_WINDOW(IDD_ITEMQUANTITYCONTROLDLG)); if(NULL != lpDialog) { unsigned long dwServerGroup = 0; CString strGroupName; CString strForFormat; lpDialog->m_ctrlServerGroupCb.GetLBText(lpDialog->m_ctrlServerGroupCb.GetCurSel(), strGroupName); CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup); // ÇöÀç ¿­·ÁÀÖ´Â ±×·ìÀÇ »óÅ °»½Å if(dwServerGroup == (unsigned long)lpPktItemQtyControl->m_cServerGroup) { const Item::ItemInfo* ItemInfo = Item::CItemMgr::GetInstance().GetItemInfo((unsigned short)lpPktItemQtyControl->m_dwItemTypeID); if(lpPktItemQtyControl->m_cType == PktAdminMgr::PktItemQtyControl::ADD) { strForFormat.Format(_T("%u"), lpPktItemQtyControl->m_dwItemTypeID); if(-1 != SearchListCtrlCol(lpDialog->m_ctrlDropItemList, strForFormat, 0)) // ¾ÆÀÌÅÛ ¼öÁ¤ Ack { lpDialog->m_strMessage.Format(_T("%s"), GetLocalString("MSG_0085")); if(lpPktItemQtyControl->GetError() == 0) { int nIndex = lpDialog->m_ctrlDropItemList.GetNextItem(-1, LVIS_SELECTED); PktAdminMgr::PktItemQtyControl* lpItemData = reinterpret_cast (lpDialog->m_ctrlDropItemList.GetItemData(nIndex)); *lpItemData = *lpPktItemQtyControl; lpDialog->m_strMessage.AppendFormat(_T(" %s"), GetLocalString("MSG_0086")); } else lpDialog->m_strMessage.AppendFormat(_T(" %s"), GetLocalString("MSG_0087")); } else // ¾ÆÀÌÅÛ Ãß°¡ Ack { lpDialog->m_strMessage.Format(_T("%s"), GetLocalString("MSG_0088")); if(lpPktItemQtyControl->GetError() == 0) { int nIndex = lpDialog->m_ctrlDropItemList.GetItemCount(); strForFormat.Format(_T("%u"), lpPktItemQtyControl->m_dwItemTypeID); lpDialog->m_ctrlDropItemList.InsertItem(nIndex, strForFormat); lpDialog->m_ctrlDropItemList.SetItemText(nIndex, 1, CONV_CLISTR(ItemInfo->m_SpriteData.m_szName)); PktAdminMgr::PktItemQtyControl* lpItemData = new PktAdminMgr::PktItemQtyControl; *lpItemData = *lpPktItemQtyControl; lpDialog->m_ctrlDropItemList.SetItemData( nIndex, reinterpret_cast(lpItemData)); lpDialog->m_strMessage.AppendFormat(_T(" %s"), GetLocalString("MSG_0086")); } else lpDialog->m_strMessage.AppendFormat(_T(" %s"), GetLocalString("MSG_0087")); } lpDialog->m_strCurrentDropItemCount.Format(_T("%d"), lpDialog->m_ctrlDropItemList.GetItemCount()); } else if(lpPktItemQtyControl->m_cType == PktAdminMgr::PktItemQtyControl::DEL) { lpDialog->m_strMessage.Format(_T("%s"), GetLocalString("MSG_0089")); if(lpPktItemQtyControl->GetError() == 0) { int nIndex = lpDialog->m_ctrlDropItemList.GetNextItem(-1, LVIS_SELECTED); PktAdminMgr::PktItemQtyControl* lpItemData = reinterpret_cast (lpDialog->m_ctrlDropItemList.GetItemData(nIndex)); delete lpItemData; lpDialog->m_ctrlDropItemList.DeleteItem(nIndex); lpDialog->m_strMessage.AppendFormat(_T(" %s"), GetLocalString("MSG_0086")); } else lpDialog->m_strMessage.AppendFormat(_T(" %s"), GetLocalString("MSG_0087")); lpDialog->m_strCurrentDropItemCount.Format(_T("%d"), lpDialog->m_ctrlDropItemList.GetItemCount()); } else if(lpPktItemQtyControl->m_cType == PktAdminMgr::PktItemQtyControl::STATUS_ACK) { if(0 != lpDialog->m_ctrlDropItemList.GetItemCount()) { strForFormat.Format(_T("%u"), lpPktItemQtyControl->m_dwItemTypeID); int nSearchIndex = SearchListCtrlCol(lpDialog->m_ctrlDropItemList, strForFormat, 0); if(-1 != nSearchIndex) { PktAdminMgr::PktItemQtyControl* lpItemData = reinterpret_cast (lpDialog->m_ctrlDropItemList.GetItemData(nSearchIndex)); *lpItemData = *lpPktItemQtyControl; } else { int nIndex = lpDialog->m_ctrlDropItemList.GetItemCount(); CString strForFormat; strForFormat.Format(_T("%u"), lpPktItemQtyControl->m_dwItemTypeID); lpDialog->m_ctrlDropItemList.InsertItem(nIndex, strForFormat); lpDialog->m_ctrlDropItemList.SetItemText(nIndex, 1, CONV_CLISTR(ItemInfo->m_SpriteData.m_szName)); PktAdminMgr::PktItemQtyControl* lpItemData = new PktAdminMgr::PktItemQtyControl; *lpItemData = *lpPktItemQtyControl; lpDialog->m_ctrlDropItemList.SetItemData( nIndex, reinterpret_cast(lpItemData)); } } else { int nIndex = lpDialog->m_ctrlDropItemList.GetItemCount(); CString strForFormat; strForFormat.Format(_T("%u"), lpPktItemQtyControl->m_dwItemTypeID); lpDialog->m_ctrlDropItemList.InsertItem(nIndex, strForFormat); lpDialog->m_ctrlDropItemList.SetItemText(nIndex, 1, CONV_CLISTR(ItemInfo->m_SpriteData.m_szName)); PktAdminMgr::PktItemQtyControl* lpItemData = new PktAdminMgr::PktItemQtyControl; *lpItemData = *lpPktItemQtyControl; lpDialog->m_ctrlDropItemList.SetItemData( nIndex, reinterpret_cast(lpItemData)); } lpDialog->m_strCurrentDropItemCount.Format(_T("%d"), lpDialog->m_ctrlDropItemList.GetItemCount()); } else if(lpPktItemQtyControl->m_cType == PktAdminMgr::PktItemQtyControl::STATUS_ACK_END) { lpDialog->m_strCurrentDropItemCount.Format(_T("%d"), lpDialog->m_ctrlDropItemList.GetItemCount()); lpDialog->m_strMessage.Format(_T("%s"), GetLocalString("MSG_0090")); } else lpDialog->m_strMessage.Format(_T("%s"), GetLocalString("MSG_0091")); lpDialog->UpdateData(false); } } return true; } bool CClientDispatch::PktUserBillingLogAck(PktBase* lpPktBase) { PktAdminMgr::PktUserBillingLogAck* lpPktUserBillingLogAck = reinterpret_cast(lpPktBase); CUserBillingLogDlg* lpDialog = static_cast(GET_WINDOW(IDD_USERBILLINGLOGDLG)); if(NULL != lpDialog) { CString strForFormating; strForFormating.Format(_T("%s"), lpPktUserBillingLogAck->m_szClientID); lpDialog->m_ctrlUserBillingLogList.InsertItem(0, strForFormating); strForFormating.Format(_T("%u"), lpPktUserBillingLogAck->m_dwUID); lpDialog->m_ctrlUserBillingLogList.SetItemText(0, 1, strForFormating); strForFormating.Format(_T("%s"), lpPktUserBillingLogAck->m_szIP); lpDialog->m_ctrlUserBillingLogList.SetItemText(0, 2, strForFormating); CCharacterDoc::GetInstance().GetServerName(lpPktUserBillingLogAck->m_sServerIndex, strForFormating); lpDialog->m_ctrlUserBillingLogList.SetItemText(0, 3, strForFormating); strForFormating.Format(_T("%s"), lpPktUserBillingLogAck->m_szFirstLoginTime); lpDialog->m_ctrlUserBillingLogList.SetItemText(0, 4, strForFormating); strForFormating.Format(_T("%s"), lpPktUserBillingLogAck->m_szLogoutTime); lpDialog->m_ctrlUserBillingLogList.SetItemText(0, 5, strForFormating); lpDialog->m_dwSearchCount = lpDialog->m_ctrlUserBillingLogList.GetItemCount(); lpDialog->UpdateData(false); } return true; } bool CClientDispatch::PktGameAdminAck(PktBase* lpPktBase) { PktAdminMgr::PktGameAdmin* lpPktGameAdmin = reinterpret_cast(lpPktBase); CGAdminManagementDlg* lpDialog = static_cast(GET_WINDOW(IDD_GADMINMANAGEMENTDLG)); if(NULL != lpDialog) { if(lpPktGameAdmin->m_cPktType == PktAdminMgr::PktGameAdmin::ACK) { CString strForFormat; int nInsertIndex = lpDialog->m_ctrlGAdminList.GetItemCount(); strForFormat.Format(_T("%u"), lpPktGameAdmin->m_dwUID); lpDialog->m_ctrlGAdminList.InsertItem(nInsertIndex, strForFormat); strForFormat.Format(_T("%u"), lpPktGameAdmin->m_nAdminLV); lpDialog->m_ctrlGAdminList.SetItemText(nInsertIndex, 1, strForFormat); strForFormat.Format(_T("%s"), lpPktGameAdmin->m_szStartIP); lpDialog->m_ctrlGAdminList.SetItemText(nInsertIndex, 2, strForFormat); strForFormat.Format(_T("%s"), lpPktGameAdmin->m_szEndIP); lpDialog->m_ctrlGAdminList.SetItemText(nInsertIndex, 3, strForFormat); } else if(lpPktGameAdmin->m_cPktType == PktAdminMgr::PktGameAdmin::REFRESH) { lpDialog->ReFreshGameAdminList(); } } return true; } bool CClientDispatch::PktConnectAllServerzAck(PktBase* lpPktBase) { PktAdminMgr::PktConnectAllServerz* lpPktConnectAllServerz = reinterpret_cast(lpPktBase); CQuickMenuDlgBar* lpDlgBar = static_cast(GET_WINDOW(IDD_QUICKMENUDLGBAR)); if(NULL != lpDlgBar) { lpDlgBar->m_ctrlConnectedServerList.ResetContent(); lpDlgBar->m_ctrlCharSearchCombo2.ResetContent(); CString strServerGroupName; for(int nIndex = 0; nIndex < PktAdminMgr::PktConnectAllServerz::SERVERZ_NUM; ++nIndex) { // ¹è¿­¿¡ µé¾îÀÖ´Â °ªÀº Á¢¼ÓµÇ¾î ÀÖ´Â ¼­¹ö À妽º + 1 (ÁÖÀÇ!) if(0 != lpPktConnectAllServerz->m_nConnectedServerIndex[nIndex]) { CCharacterDoc::GetInstance().GetServerName( lpPktConnectAllServerz->m_nConnectedServerIndex[nIndex] - 1, strServerGroupName); // Áß°è¼­¹ö ¸®½ºÆ® °»½Å lpDlgBar->m_ctrlConnectedServerList.InsertString(0, strServerGroupName); // °Ë»ö ÄÞº¸ °»½Å lpDlgBar->m_ctrlCharSearchCombo2.InsertString(0, strServerGroupName); } } } return true; } bool CClientDispatch::PktInterestedUserList(PktBase* lpPktBase) { PktAdminMgr::PktInterestedUser* lpPktInterestedUser = reinterpret_cast(lpPktBase); CInterestedUserDlg* lpDlg = static_cast(GET_WINDOW(IDD_INTERESTEDUSERDLG)); if (NULL != lpDlg) { CString strForFormat; int nInsertIndex = lpDlg->m_ctrlInterestUserList.GetItemCount(); strForFormat.Format(_T("%s"), lpPktInterestedUser->m_szAccount); lpDlg->m_ctrlInterestUserList.InsertItem(nInsertIndex, strForFormat); strForFormat.Format(_T("%s"), lpPktInterestedUser->m_szReason); lpDlg->m_ctrlInterestUserList.SetItemText(nInsertIndex, 1, strForFormat); } return true; } bool CClientDispatch::PktConnectionChk(PktBase* lpPktBase) { CConnectionInfoDlg dlg(reinterpret_cast(lpPktBase)); dlg.DoModal(); return true; } bool CClientDispatch::PktConnectedUserList(PktBase* lpPktBase) { CQuickMenuDlgBar* lpDlgBar = static_cast(GET_WINDOW(IDD_QUICKMENUDLGBAR)); if (NULL != lpDlgBar) { lpDlgBar->InterestedUserListSet(lpPktBase); } return true; } bool CClientDispatch::PktDuplicatedItem(PktBase* lpPktBase) { CDuplicatedItemDlg* lpDlg = static_cast(GET_WINDOW(IDD_DUPLICATEDITEMDLG)); PktAdminMgr::PktDuplicatedItem* lpData = reinterpret_cast(lpPktBase); if(NULL != lpDlg) { CString strForFormat; CCharacterDoc::GetInstance().GetServerName(lpData->m_dwServerGroup, strForFormat); lpDlg->SetDlgItemText(IDC_DUPLICATEDITEM_SELGROUP_EDIT, strForFormat); int nInsertIndex = lpDlg->m_ctrlDItemList.GetItemCount(); strForFormat.Format(_T("%s"), lpData->m_szInsertTime); lpDlg->m_ctrlDItemList.InsertItem(nInsertIndex, strForFormat); strForFormat.Format(_T("%s"), lpData->m_szUpdateTime); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 1, strForFormat); strForFormat.Format(_T("%u"), lpData->m_dwUID); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 2, strForFormat); strForFormat.Format(_T("%u"), lpData->m_dwCID); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 3, strForFormat); strForFormat.Format(_T("%s"), lpData->m_szCharName); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 4, strForFormat); strForFormat.Format(_T("0x%016I64X"), lpData->m_dwItemUID); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 5, strForFormat); strForFormat.Format(_T("%d"), lpData->m_nQty); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 6, strForFormat); strForFormat.Format(_T("%s"), (lpData->m_bChk == true) ? _T("DO") : _T("DO NOT")); lpDlg->m_ctrlDItemList.SetItemText(nInsertIndex, 7, strForFormat); } return true; } bool CClientDispatch::PktItemDistributeAck(PktBase* lpPktBase) { CItemDistributeDlg* lpDlg = static_cast(GET_WINDOW(IDD_ITEMDISTRIBUTEDLG)); if(NULL != lpDlg) { lpDlg->ReportResult(reinterpret_cast(lpPktBase)); } return true; } bool CClientDispatch::PktGuildRight(PktBase* lpPktBase) { PktAdminMgr::PktGuildRight* lpPktGuildRight = reinterpret_cast(lpPktBase); CGuildMainDlg* lpDlg = static_cast(GET_WINDOW(IDD_GUILDMAINDLG)); if(NULL != lpDlg) { for(int nRightIndex = 0; nRightIndex < GuildRight::MAX_USING_RIGHT; ++nRightIndex) { CString strForFormat; strForFormat.Format(_T("%s"), GetGuildRightString(nRightIndex)); lpDlg->m_ctrlGuildRightList.InsertItem(nRightIndex, strForFormat); strForFormat.Format(_T("%s"), GetGuildTitleString(lpPktGuildRight->m_aryRight[nRightIndex])); lpDlg->m_ctrlGuildRightList.SetItemText(nRightIndex, 1, strForFormat); } } return true; } bool CClientDispatch::PktUnifiedCharInfo(PktBase* lpPktBase) { PktAdminMgr::PktUnifiedCharInfo* lpPktUnifiedCharInfo = reinterpret_cast(lpPktBase); CUnifiedCharInfoDlg* lpDialog = static_cast(GET_WINDOW(IDD_UNIFIEDCHARINFODLG)); if (NULL == lpDialog) { ERRLOG1(g_Log, "ÅëÇÕ Ä³¸¯ÅÍ Á¤º¸ â ¾ò±â ½ÇÆÐ. ¸®¼Ò½ºID-%d", IDD_UNIFIEDCHARINFODLG); return true; } CString strForFormat; int nInsertIndex = lpDialog->m_ctrlUnifiedCharList.GetItemCount(); strForFormat.Format(_T("%u"), lpPktUnifiedCharInfo->m_dwUID); lpDialog->m_ctrlUnifiedCharList.InsertItem(nInsertIndex, strForFormat); strForFormat.Format(_T("%d"), lpPktUnifiedCharInfo->m_nOldServerGroup); lpDialog->m_ctrlUnifiedCharList.SetItemText(nInsertIndex, 1, strForFormat); strForFormat.Format(_T("%u"), lpPktUnifiedCharInfo->m_dwBeforeCID); lpDialog->m_ctrlUnifiedCharList.SetItemText(nInsertIndex, 2, strForFormat); strForFormat.Format(_T("%u"), lpPktUnifiedCharInfo->m_dwNewCID); lpDialog->m_ctrlUnifiedCharList.SetItemText(nInsertIndex, 3, strForFormat); strForFormat.Format(_T("%s"), lpPktUnifiedCharInfo->m_szBeforeCharName); lpDialog->m_ctrlUnifiedCharList.SetItemText(nInsertIndex, 4, strForFormat); return true; } bool CClientDispatch::PktUnifiedGuildInfo(PktBase* lpPktBase) { PktAdminMgr::PktUnifiedGuildInfo* lpPktUnifiedGuildInfo = reinterpret_cast(lpPktBase); CUnifiedGuildInfoDlg* lpDialog = static_cast(GET_WINDOW(IDD_UNIFIEDGUILDINFODLG)); if (NULL == lpDialog) { ERRLOG1(g_Log, "ÅëÇÕ ±æµå Á¤º¸ â ¾ò±â ½ÇÆÐ. ¸®¼Ò½ºID-%d", IDD_UNIFIEDGUILDINFODLG); return true; } CString strForFormat; int nInsertIndex = lpDialog->m_ctrlUnifiedGuildList.GetItemCount(); strForFormat.Format(_T("%u"), lpPktUnifiedGuildInfo->m_dwBeforeGID); lpDialog->m_ctrlUnifiedGuildList.InsertItem(nInsertIndex, strForFormat); strForFormat.Format(_T("%d"), lpPktUnifiedGuildInfo->m_nOldServerGroupID); lpDialog->m_ctrlUnifiedGuildList.SetItemText(nInsertIndex, 1, strForFormat); strForFormat.Format(_T("%u"), lpPktUnifiedGuildInfo->m_dwNewGID); lpDialog->m_ctrlUnifiedGuildList.SetItemText(nInsertIndex, 2, strForFormat); strForFormat.Format(_T("%s"), lpPktUnifiedGuildInfo->m_szBeforeGName); lpDialog->m_ctrlUnifiedGuildList.SetItemText(nInsertIndex, 3, strForFormat); strForFormat.Format(_T("%s"), lpPktUnifiedGuildInfo->m_szNewGName); lpDialog->m_ctrlUnifiedGuildList.SetItemText(nInsertIndex, 4, strForFormat); return true; } bool CClientDispatch::PktDetailCharInfo(PktBase* lpPktBase) { PktAdminMgr::PktDetailCharInfo* lpPktDetailCharInfo = reinterpret_cast(lpPktBase); CDetailCharInfo* lpDlg = static_cast(GET_WINDOW(IDD_DETAILCHARINFO)); if (NULL == lpDlg) { ERRLOG1(g_Log, "ÅëÇÕ Ä³¸¯ÅÍ »ó¼¼ Á¤º¸ â ¾ò±â ½ÇÆÐ. ¸®¼Ò½ºID-%d", IDD_DETAILCHARINFO); return true; } CString strForFormat; strForFormat.Format(_T("%s"), lpPktDetailCharInfo->m_szCharName); lpDlg->m_ctrlDetailCharInfoList.SetItemText(0, 1, strForFormat); strForFormat.Format(_T("%s"), GetClassString((int)lpPktDetailCharInfo->m_sClass)); lpDlg->m_ctrlDetailCharInfoList.SetItemText(1, 1, strForFormat); strForFormat.Format(_T("%u"), lpPktDetailCharInfo->m_dwFame); lpDlg->m_ctrlDetailCharInfoList.SetItemText(2, 1, strForFormat); strForFormat.Format(_T("%u"), lpPktDetailCharInfo->m_dwMileage); lpDlg->m_ctrlDetailCharInfoList.SetItemText(3, 1, strForFormat); strForFormat.Format(_T("%d"), (unsigned int)lpPktDetailCharInfo->m_cLevel); lpDlg->m_ctrlDetailCharInfoList.SetItemText(4, 1, strForFormat); strForFormat.Format(_T("%u"), lpPktDetailCharInfo->m_dwGold); lpDlg->m_ctrlDetailCharInfoList.SetItemText(5, 1, strForFormat); strForFormat.Format(_T("%I64u"), lpPktDetailCharInfo->m_i64Exp); lpDlg->m_ctrlDetailCharInfoList.SetItemText(6, 1, strForFormat); return true; } bool CClientDispatch::PktShiftToUID(PktBase* lpPktBase) { PktAdminMgr::PktShiftToUID* lpPktShiftToUID = reinterpret_cast(lpPktBase); CQuickMenuDlgBar* lpDlgBar = static_cast(GET_WINDOW(IDD_QUICKMENUDLGBAR)); if(NULL != lpDlgBar) { if (PktAdminMgr::PktShiftToUID::ACCOUNT_TO_UID == lpPktShiftToUID->m_cPktType) { lpDlgBar->SetDlgItemInt(IDC_Q_UID_EDIT, lpPktShiftToUID->m_dwUID, FALSE); } else if (PktAdminMgr::PktShiftToUID::UID_TO_ACCOUNT == lpPktShiftToUID->m_cPktType) { lpDlgBar->SetDlgItemText(IDC_Q_ACCOUNT_EDIT, lpPktShiftToUID->m_szAccount); } } return true; } bool CClientDispatch::PktStoreTabEdit(PktBase* lpPktBase) { PktAdminMgr::PktStoreTabEdit* lpPktStoreTabEdit = reinterpret_cast(lpPktBase); CCharacterDoc::CharDocInfo* lpCharDoc = CCharacterDoc::GetInstance().GetCharDocInfo(lpPktStoreTabEdit->m_dwRequestKey); if (NULL != lpCharDoc) { // Ack¹ÞÀ»¶§´Â m_dwServerGroup¿¡´Ù ¼ÂÆÃÇß´ø ÅÇ Ç÷¡±×¸¦ ¹Þ¾Æ¿È. lpCharDoc->m_ModifyCharacter->GetDeposit().SetTabFlag(lpPktStoreTabEdit->m_dwServerGroup); CharInfoParseFinish(lpCharDoc); } return true; } bool CClientDispatch::PktAmountOfGold(PktBase* lpPktBase) { PktAdminMgr::PktAmountOfGold* lpPktAmountOfGold = reinterpret_cast(lpPktBase); CAdminStoreDlgBar* lpDlg = static_cast(GET_WINDOW(IDD_BOTTOM_DLGBAR)); lpDlg->SetGoldEditBox(lpPktAmountOfGold->m_i64Gold); return true; } bool CClientDispatch::PktGMLogMsg(PktBase* lpPktBase) { PktAdminMgr::PktGMLogMsg* lpPktGMLogMsg = reinterpret_cast(lpPktBase); if (PktAdminMgr::PktGMLogMsg::LOG_CONFIRM == lpPktGMLogMsg->m_cPktType) { CString strMsg; if (0 == lpPktGMLogMsg->m_dwCID) { strMsg.Format("%s (UID: %u)", GetLocalString("ADDED_STRING_043"), lpPktGMLogMsg->m_dwUID); Report(strMsg, NOTIFY); } else { strMsg.Format("%s (CID: %u)", GetLocalString("ADDED_STRING_044"), lpPktGMLogMsg->m_dwCID); Report(strMsg, NOTIFY); } } else { CGMLogMsgDlg* lpDlg = static_cast(GET_WINDOW(IDD_GMLOGMSGDLG)); if (NULL == lpDlg) { ERRLOG0(g_Log, "GM ·Î±× â ¾ò±â ½ÇÆÐ. ID - IDD_GMLOGMSGDLG"); return true; } switch(lpPktGMLogMsg->m_cPktType) { case PktAdminMgr::PktGMLogMsg::LOG_SELECT: { lpDlg->InsertGMLogMsgList(lpPktGMLogMsg); } break; case PktAdminMgr::PktGMLogMsg::LOG_REFRESH: { lpDlg->SetDlgItemText(IDC_GMLOG_ADDLOG_EDIT, ""); lpDlg->m_ctrlGMLogMsgList.DeleteAllItems(); CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_SELECT, lpPktGMLogMsg->m_dwServerGroup, lpPktGMLogMsg->m_dwUID, lpPktGMLogMsg->m_dwCID); } break; default: break; } } return true; } bool CClientDispatch::PktGuildMemberEdit(PktBase* lpPktBase) { PktAdminMgr::PktGuildMemberEdit* lpPktGuildMemberEdit = reinterpret_cast(lpPktBase); CGuildMainDlg* lpDlg = static_cast(GET_WINDOW(IDD_GUILDMAINDLG)); if (NULL != lpDlg) { switch(lpPktGuildMemberEdit->GetError()) { case PktBase::NO_SERVER_ERR: { CString strCID; strCID.Format("%u", lpPktGuildMemberEdit->m_dwCID); int nIndex = SearchListCtrlCol(lpDlg->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList, strCID, 0); if (PktGuildPosition::TYPE_POSITION == lpPktGuildMemberEdit->m_cType) { CString strPosition; strPosition.Format("%d", lpPktGuildMemberEdit->m_cPosition); lpDlg->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.SetItemText(nIndex, 1, strPosition); Report(GetLocalString("ADDED_STRING_095"), SUCCESS); } else if(PktGuildPosition::TYPE_MEMBERDELETE == lpPktGuildMemberEdit->m_cType) { lpDlg->m_pGuildInfoSheet->m_wndMemberPage.m_ctrlMemberList.DeleteItem(nIndex); Report(GetLocalString("ADDED_STRING_094"), SUCCESS); } } break; case PktGuildPosition::FAIL_CONNECT_CHAR: Report(GetLocalString("ADDED_STRING_087"), FAILED); break; case PktGuildPosition::FAIL_DB_UPDATE: Report(GetLocalString("ADDED_STRING_088"), FAILED); break; case PktGuildPosition::FAIL_GUILD: Report(GetLocalString("ADDED_STRING_089"), FAILED); break; case PktGuildPosition::FAIL_MEMBER_DELETE: Report(GetLocalString("ADDED_STRING_090"), FAILED); break; } } return true; } CString CClientDispatch::GetBlockString(unsigned int nIndex) { switch(nIndex) { case 1: return _T("Account Block"); case 2: return _T("Character Block"); case 3: return _T("Character Detain"); case 4: return _T("Ban Chating"); case 5: return _T("Info Modify"); } return _T("UNKNOWN"); } CString CClientDispatch::GetGuildTitleString(unsigned int nIndex) { switch(nIndex) { case Guild::NONE: return _T("NONE"); case Guild::MASTER: return GetLocalString("GUILD_TITLE_01"); case Guild::MIDDLE_ADMIN: return GetLocalString("GUILD_TITLE_02"); case Guild::COMMON: return GetLocalString("GUILD_TITLE_03"); case Guild::LEAVE_WAIT: return GetLocalString("GUILD_TITLE_04"); case Guild::JOIN_WAIT: return GetLocalString("GUILD_TITLE_05"); } return _T("UNKNOWN"); } CString CClientDispatch::GetGuildRightString(unsigned int nIndex) { switch(nIndex) { case GuildRight::PUT_STOREHOUSE: return GetLocalString("GUILD_RIGHT_01"); case GuildRight::GET_STOREHOUSE: return GetLocalString("GUILD_RIGHT_02"); case GuildRight::USE_SAFE: return GetLocalString("GUILD_RIGHT_03"); case GuildRight::INVITE_MEMBER: return GetLocalString("GUILD_RIGHT_04"); case GuildRight::PERMIT_JOIN: return GetLocalString("GUILD_RIGHT_05"); case GuildRight::CHANGE_PASSWORD: return GetLocalString("GUILD_RIGHT_06"); //case GuildRight::SETUP_RELATION: return GetLocalString("GUILD_RIGHT_07"); case GuildRight::REGULATE_TEX: return GetLocalString("GUILD_RIGHT_08"); case GuildRight::KICK_MEMBER: return GetLocalString("GUILD_RIGHT_09"); case GuildRight::BOARD_ADMIN: return GetLocalString("GUILD_RIGHT_10"); case GuildRight::SETUP_MARK_N_LEVEL: return GetLocalString("GUILD_RIGHT_11"); case GuildRight::SETUP_MIDDLE: return GetLocalString("GUILD_RIGHT_12"); case GuildRight::DIVIDE_GOLD: return GetLocalString("GUILD_RIGHT_13"); case GuildRight::SETUP_POLICY: return GetLocalString("GUILD_RIGHT_14"); } return _T("UNKNOWN"); } bool CClientDispatch::PktResultCharInfoTime(PktBase* lpPktAck) { typedef PktAdminMgr::PktCharInfoTimeResultAck PktCharInfoTimeResultAck; PktCharInfoTimeResultAck* lpPktResultAck = reinterpret_cast(lpPktAck); CCharInfoTime* lpDlg = static_cast(GET_WINDOW(IDD_CHARINFOTIMEDLG)); if (NULL != lpDlg) { switch(lpPktResultAck->GetError()) { case PktBase::NO_SERVER_ERR: lpDlg->m_szCreateTime.Format("%s", lpPktResultAck->m_CreateTime); lpDlg->m_szUpdateTime.Format("%s", lpPktResultAck->m_UpdateTime); lpDlg->UpdateData(FALSE); Report(GetLocalString("ADDED_STRING_107"), SUCCESS); break; case PktBase::SERVER_ERROR: Report(GetLocalString("ADDED_STRING_109"), CAUTION); break; } } return true; }