// AdminToolClient.cpp : ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ Å¬·¡½º µ¿ÀÛÀ» Á¤ÀÇÇÕ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "MainFrm.h" #include "UserInfoDoc.h" #include "UserInfoFrm.h" #include "AdminToolClientDoc.h" #include "AdminToolClientView.h" #include "AdminLoginDlg.h" #include "TAdminManagementDlg.h" #include "CharRestoreDlg.h" #include "BlockManagementDlg.h" #include "GAdminManagementDlg.h" #include "GlobalFunctions.h" #include "Dispatch.h" #include "PacketManager.h" #include #include #include #include #include #include #include GGAUTHS_API void NpLog(int mode, char* msg) { } GGAUTHS_API void GGAuthUpdateCallback(PGG_UPREPORT report) { } #ifdef _DEBUG #define new DEBUG_NEW #endif bool g_bItemGrab = false; bool g_bIsLogin = false; MyItemInfo g_stMyItemInfo; // CAdminToolClientApp BEGIN_MESSAGE_MAP(CAdminToolClientApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_TADMINMANAGEMENT, OnTadminmanagementdlg) ON_COMMAND(ID_CHARRESTORE, OnCharrestore) ON_COMMAND(ID_BLOCKLIST, OnBlocklist) ON_COMMAND(ID_GADMINMANAGEMENT, OnGadminmanagement) END_MESSAGE_MAP() // CAdminToolClientApp »ý¼º CAdminToolClientApp::CAdminToolClientApp() : m_lpSession( NULL ) { // TODO: ¿©±â¿¡ »ý¼º Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // InitInstance¿¡ ¸ðµç Áß¿äÇÑ ÃʱâÈ­ ÀÛ¾÷À» ¹èÄ¡ÇÕ´Ï´Ù. } // À¯ÀÏÇÑ CAdminToolClientApp °³Ã¼ÀÔ´Ï´Ù. CAdminToolClientApp theApp; // CAdminToolClientApp ÃʱâÈ­ bool CAdminToolClientApp::ConnectServer() { CString tempAdminServerIP = GetSetupString(_T("CONNECT"), _T("ADMIN_SERVER_IP")); TCHAR AdminServerIP[50]; _tcsncpy(AdminServerIP, tempAdminServerIP, sizeof(AdminServerIP)); m_lpSession = new CSingleSession; if(!m_lpSession->Initialize(new CClientDispatch)) { AfxMessageBox(GetLocalString("MSG_0134")); return false; } if(!m_lpSession->Connect(CONV_NETSTRING(AdminServerIP), CServerSetup::P2AdminToolServerClientListen)) { AfxMessageBox(GetLocalString("MSG_0135")); return false; } CPacketMgr::GetInstance()->SetSession(m_lpSession); return true; } bool CAdminToolClientApp::IsConnected() { if(NULL != m_lpSession) { return m_lpSession->GetConnected(); } return FALSE; } bool CAdminToolClientApp::OnLoadResourceDLL() { TCHAR szCurrentPath[MAX_PATH]; GetCurrentDirectory(MAX_PATH ,szCurrentPath); CString strResFileFullPath; strResFileFullPath = szCurrentPath; strResFileFullPath += _T("\\Resource\\AdminToolRes.dll"); HINSTANCE hInstance = AfxGetResourceHandle(); if(NULL != hInstance) { FreeLibrary(hInstance); } hInstance = LoadLibrary(strResFileFullPath); if(NULL == hInstance) { CString strErrMessage; strErrMessage.Format(_T("%s\n"), GetLocalString("MSG_0170")); if(ERROR_MOD_NOT_FOUND == GetLastError()) { strErrMessage.AppendFormat(_T("%s\n%s"), strResFileFullPath, strErrMessage); } else { strErrMessage.AppendFormat(_T(" (ERROR CODE: 0X%X)"), GetLastError()); } AfxMessageBox(strErrMessage, MB_OK | MB_ICONSTOP); return false; } AfxSetResourceHandle(hInstance); return true; } BOOL CAdminToolClientApp::InitInstance() { // ÀÀ¿ë ÇÁ·Î±×·¥ ¸Å´ÏÆä½ºÆ®°¡ ComCtl32.dll ¹öÀü 6 ÀÌ»óÀ» »ç¿ëÇÏ¿© ºñÁÖ¾ó ½ºÅ¸ÀÏÀ» // »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÏ´Â °æ¿ì, Windows XP »ó¿¡¼­ ¹Ýµå½Ã InitCommonControls()°¡ ÇÊ¿äÇÕ´Ï´Ù. // InitCommonControls()¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é âÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù. InitCommonControls(); CWinApp::InitInstance(); // Áß°è¼­¹ö ŸÀÔ ·Îµå m_nAgentType = GetPrivateProfileInt(_T("GENERAL"), _T("AGENT_TYPE"), 0, _T("./AdminToolClientSetup.ini")); // ±¹°¡ ŸÀÔ ·Îµå GetPrivateProfileString(_T("GENERAL"), _T("NATION"), NULL, m_szNationType, 256, _T("./AdminToolClientSetup.ini")); if (NULL == m_szNationType) { AfxMessageBox(GetLocalString("ADDED_STRING_035")); return FALSE; } // OLE ¶óÀ̺귯¸®¸¦ ÃʱâÈ­ÇÕ´Ï´Ù. if(!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } if(!AfxSocketInit()) { AfxMessageBox("AfxSocketInit() Falied"); } AfxEnableControlContainer(); // Ç¥ÁØ ÃʱâÈ­ // ÀÌµé ±â´ÉÀ» »ç¿ëÇÏÁö ¾Ê°í ÃÖÁ¾ ½ÇÇà ÆÄÀÏÀÇ Å©±â¸¦ ÁÙÀÌ·Á¸é // ¾Æ·¡¿¡¼­ ÇÊ¿ä ¾ø´Â ƯÁ¤ ÃʱâÈ­ ·çƾÀ» Á¦°ÅÇØ¾ß ÇÕ´Ï´Ù. // ÇØ´ç ¼³Á¤ÀÌ ÀúÀåµÈ ·¹Áö½ºÆ®¸® ۸¦ º¯°æÇϽʽÿÀ. // TODO: ÀÌ ¹®ÀÚ¿­À» ȸ»ç ¶Ç´Â Á¶Á÷ÀÇ À̸§°ú °°Àº // ÀûÀýÇÑ ³»¿ëÀ¸·Î ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù. SetRegistryKey(_T("RylAdminToolRegKey")); LoadStdProfileSettings(4); // MRU¸¦ Æ÷ÇÔÇÏ¿© Ç¥ÁØ INI ÆÄÀÏ ¿É¼ÇÀ» ·ÎµåÇÕ´Ï´Ù. // ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¹®¼­ ÅÛÇø´À» µî·ÏÇÕ´Ï´Ù. ¹®¼­ ÅÛÇø´Àº // ¹®¼­, ÇÁ·¹ÀÓ Ã¢ ¹× ºä »çÀÌÀÇ ¿¬°á ¿ªÇÒÀ» ÇÕ´Ï´Ù. // CHILD ÇÁ·¹ÀÓ Ã¢ »ý¼º (À¯ÀúÁ¤º¸ â°ú ¿î¿µÃ¢°í â »ý¼º) CMultiDocTemplate* pDocTemplate; // À¯Àú Á¤º¸ â »ý¼º pDocTemplate = new CMultiDocTemplate(IDR_UserinfoTYPE, RUNTIME_CLASS(CUserInfoDoc), // À¯Àú Á¤º¸ ´ÙÅ¥¸ÕÆ® RUNTIME_CLASS(CUserInfoFrame), // À¯Àú Á¤º¸ ÇÁ·¹ÀÓ RUNTIME_CLASS(CAdminToolClientView)); // À¯Àú Á¤º¸ ºä if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); //pDocTemplate->m_NewMenuShared.LoadToolBar(IDR_MAINFRAME); // ÁÖ MDI ÇÁ·¹ÀÓ Ã¢À» ¸¸µì´Ï´Ù. CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; // Á¢¹Ì»ç°¡ ÀÖÀ» °æ¿ì¿¡¸¸ DragAcceptFiles¸¦ È£ÃâÇÕ´Ï´Ù. // MDI ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­´Â m_pMainWnd¸¦ ¼³Á¤ÇÑ ÈÄ ¹Ù·Î ÀÌ·¯ÇÑ È£ÃâÀÌ ¹ß»ýÇØ¾ß ÇÕ´Ï´Ù. // Ç¥ÁØ ¼Ð ¸í·É, DDE, ÆÄÀÏ ¿­±â¿¡ ´ëÇÑ ¸í·ÉÁÙÀ» ±¸¹® ºÐ¼®ÇÕ´Ï´Ù. CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // ¸í·ÉÁÙ¿¡ ÁöÁ¤µÈ ¸í·ÉÀ» µð½ºÆÐÄ¡ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ /RegServer, /Register, /Unregserver ¶Ç´Â /Unregister·Î ½ÃÀÛµÈ °æ¿ì FALSE¸¦ ¹ÝȯÇÕ´Ï´Ù. if (!ProcessShellCommand(cmdInfo)) return FALSE; // ÁÖ Ã¢ÀÌ ÃʱâÈ­µÇ¾úÀ¸¹Ç·Î À̸¦ Ç¥½ÃÇÏ°í ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù. // ¸Þ´º ¼öÁ¤ CMenu *lpMainMenu, *lpSubMenu, *lpTempMenu; lpMainMenu = pMainFrame->GetMenu(); if(NULL == lpMainMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpMainMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_013")); lpMainMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_014")); lpMainMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_015")); lpSubMenu = lpMainMenu->GetSubMenu(0); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpSubMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 32868, GetLocalString("MENU_001")); lpSubMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32903, GetLocalString("MENU_002")); lpSubMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, 32997, GetLocalString("ADDED_STRING_110")); lpSubMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, 32956, GetLocalString("MENU_004")); lpSubMenu->ModifyMenu(4, MF_STRING | MF_BYPOSITION, 32962, GetLocalString("MENU_005")); lpSubMenu->ModifyMenu(6, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_070")); lpSubMenu->ModifyMenu(7, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_071")); lpSubMenu->ModifyMenu(8, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_222")); lpSubMenu->ModifyMenu(10, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_006")); lpSubMenu->ModifyMenu(12, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_072")); lpSubMenu->ModifyMenu(14, MF_STRING | MF_BYPOSITION, 57665, GetLocalString("MENU_009")); lpTempMenu = lpSubMenu->GetSubMenu(6); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_CREATEITEM, GetLocalString("ADDED_STRING_073")); lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_CANCELGRABITEM, GetLocalString("ADDED_STRING_074")); lpTempMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_DUPLICATEDITEM, GetLocalString("ADDED_STRING_075")); lpTempMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, 32953, GetLocalString("MENU_003")); lpTempMenu = lpSubMenu->GetSubMenu(7); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GUILDMANAGE, GetLocalString("ADDED_STRING_076")); lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32988, GetLocalString("ADDED_STRING_077")); lpTempMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, 33002, GetLocalString("ADDED_STRING_115")); lpTempMenu = lpSubMenu->GetSubMenu(8); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 33004, GetLocalString("ADDED_STRING_223")); lpTempMenu = lpSubMenu->GetSubMenu(10); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 32907, GetLocalString("MENU_007")); lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32906, GetLocalString("MENU_008")); lpTempMenu = lpSubMenu->GetSubMenu(12); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 32985, GetLocalString("ADDED_STRING_078")); lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32986, GetLocalString("ADDED_STRING_079")); lpSubMenu = lpMainMenu->GetSubMenu(1); if(NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return FALSE; } lpSubMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 59393, GetLocalString("MENU_010")); lpSubMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, 32871, GetLocalString("MENU_011")); lpSubMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, 32901, GetLocalString("MENU_012")); lpSubMenu = lpMainMenu->GetSubMenu(2); if (NULL == lpSubMenu) { ERRLOG0(g_Log, "Menu init failed"); return -1; } lpSubMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 57664, GetLocalString("ADDED_STRING_042")); pMainFrame->ShowWindow(m_nCmdShow); pMainFrame->UpdateWindow(); this->CloseAllDocuments(FALSE); // ÇÁ·Î±×·¥ ½ÃÀÛÇÒ¶§ ´ÙÅ¥¸ÕÆ®°¡ ¾øµµ·Ï Ŭ·ÎÁî if(!Item::CItemMgr::GetInstance().LoadItemProtoType("./Script/Game/ItemScript.txt")) { AfxMessageBox(GetLocalString("MSG_0136")); return false; } if(!CSkillMgr::GetInstance().LoadSkillsFromFile()) { AfxMessageBox(GetLocalString("MSG_0137")); return false; } if(!CSkillID::GetInstance().ReadSkillScript()) { AfxMessageBox(GetLocalString("MSG_0138")); return false; } if (FALSE == g_QuestList.Load("./Script/Game/Quest.mcf")) { AfxMessageBox(GetLocalString("MSG_0182")); return false; } if (false == CQuestMgr::GetInstance().LoadQuestInfo()) { AfxMessageBox(GetLocalString("ADDED_STRING_084")); return false; } // ·Î±×ÀΠâ CAdminLoginDlg LoginDlg; Report(GetLocalString("MSG_0139"), GENERAL); if(false == ConnectServer()) { Report(GetLocalString("MSG_0140"), FAILED); return false; } Report(GetLocalString("MSG_0141"), SUCCESS); if(IDOK != LoginDlg.DoModal()) { return false; } return TRUE; } // ÀÀ¿ë ÇÁ·Î±×·¥ Á¤º¸¿¡ »ç¿ëµÇ´Â CAboutDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. class CAboutDlg : public CDialog { public: CAboutDlg(); // ´ëÈ­ »óÀÚ µ¥ÀÌÅÍ enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Áö¿ø // ±¸Çö protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // ´ëÈ­ »óÀÚ¸¦ ½ÇÇàÇϱâ À§ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ ¸í·ÉÀÔ´Ï´Ù. void CAdminToolClientApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } // CAdminToolClientApp ¸Þ½ÃÁö 󸮱â // Åø ¿î¿µÀÚ °ü¸® ´ÙÀ̾ó·Î±× void CAdminToolClientApp::OnTadminmanagementdlg() { CTAdminManagementDlg Dlg; Dlg.DoModal(); } // ij¸¯ÅÍ º¹±¸ ´ÙÀ̾ó·Î±× void CAdminToolClientApp::OnCharrestore() { CCharRestoreDlg Dlg; Dlg.DoModal(); } // Á¦ÀçÀÚ °ü¸® ´ÙÀ̾ó·Î±× void CAdminToolClientApp::OnBlocklist() { CBlockManagementDlg Dlg; Dlg.DoModal(); } // °ÔÀÓ ¿î¿µÀÚ °ü¸® ´ÙÀ̾ó·Î±× void CAdminToolClientApp::OnGadminmanagement() { CGAdminManagementDlg Dlg; Dlg.DoModal(); } CDocument* CAdminToolClientApp::NewUserDocument() { POSITION pos = GetFirstDocTemplatePosition(); CDocTemplate *pTemplate = GetNextDocTemplate(pos); return pTemplate->OpenDocumentFile(NULL); } int CAdminToolClientApp::ExitInstance() { if(0 != m_lpSession) { delete m_lpSession; m_lpSession = 0; } CCharacterDoc::GetInstance().Destroy(); return CWinApp::ExitInstance(); }