Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
75
Server/ToolProject/Arrangement2/Arrangement2.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
// Arrangement2.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Arrangement2.h"
|
||||
#include "Arrangement2Dlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CArrangement2App
|
||||
|
||||
BEGIN_MESSAGE_MAP(CArrangement2App, CWinApp)
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CArrangement2App <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CArrangement2App::CArrangement2App()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
// InitInstance<63><65> <20><><EFBFBD><EFBFBD> <20>߿<EFBFBD><DFBF><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CArrangement2App <20><>ü<EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
CArrangement2App theApp;
|
||||
|
||||
|
||||
// CArrangement2App <20>ʱ<EFBFBD>ȭ
|
||||
|
||||
BOOL CArrangement2App::InitInstance()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>Ŵ<EFBFBD><C5B4>佺Ʈ<E4BDBA><C6AE> ComCtl32.dll <20><><EFBFBD><EFBFBD> 6 <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>־<EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>, Windows XP <20><EFBFBD> <20>ݵ<EFBFBD><DDB5><EFBFBD> InitCommonControls()<29><> <20>ʿ<EFBFBD><CABF>մϴ<D5B4>.
|
||||
// InitCommonControls()<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
InitCommonControls();
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
GdiplusStartupInput gdiplusStartupInput;
|
||||
GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
|
||||
CArrangement2Dlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
// <20>ڵ带 <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD>Ҹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
// <20>ڵ带 <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> FALSE<53><45> <20><>ȯ<EFBFBD>մϴ<D5B4>.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int CArrangement2App::ExitInstance()
|
||||
{
|
||||
GdiplusShutdown(m_gdiplusToken);
|
||||
|
||||
return CWinApp::ExitInstance();
|
||||
}
|
||||
33
Server/ToolProject/Arrangement2/Arrangement2.h
Normal file
@@ -0,0 +1,33 @@
|
||||
// Arrangement2.h : PROJECT_NAME <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // <20><> <20><>ȣ
|
||||
|
||||
|
||||
// CArrangement2App:
|
||||
// <20><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> Arrangement2.cpp<70><70> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
//
|
||||
|
||||
class CArrangement2App : public CWinApp
|
||||
{
|
||||
public:
|
||||
CArrangement2App();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
ULONG_PTR m_gdiplusToken;
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
virtual int ExitInstance();
|
||||
};
|
||||
|
||||
extern CArrangement2App theApp;
|
||||
306
Server/ToolProject/Arrangement2/Arrangement2.rc
Normal file
@@ -0,0 +1,306 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#include ""res\\Arrangement2.rc2"" // Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>\r\n"
|
||||
"#include ""afxres.rc"" // ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\Arrangement2.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Arrangement2 <20><><EFBFBD><EFBFBD>"
|
||||
FONT 9, "<22><><EFBFBD><EFBFBD>", 0, 0, 0x1
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
|
||||
LTEXT "Arrangement Tool - Ver 1.2",IDC_STATIC,40,10,119,8,
|
||||
SS_NOPREFIX
|
||||
LTEXT "Copyright (c) 2002",IDC_STATIC,40,25,119,8
|
||||
DEFPUSHBUTTON "Ȯ<><C8AE>",IDOK,178,7,50,16,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_ARRANGEMENT2_DIALOG DIALOGEX 0, 0, 807, 667
|
||||
STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE |
|
||||
WS_CAPTION | WS_VSCROLL | WS_HSCROLL | WS_SYSMENU | WS_THICKFRAME
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "Arrangement2"
|
||||
FONT 9, "<22><><EFBFBD><EFBFBD>", 400, 0, 0x81
|
||||
BEGIN
|
||||
GROUPBOX "<22><>ġ",IDC_STATIC5,665,281,94,33
|
||||
LTEXT "X : ",IDC_STATICX,673,297,13,11
|
||||
LTEXT "Z : ",IDC_STATICZ,713,297,14,11
|
||||
EDITTEXT IDC_POSITIONX,685,296,22,12,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
EDITTEXT IDC_POSITIONZ,725,295,22,12,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
LTEXT "KID :",IDC_STATICKID,661,109,21,12
|
||||
PUSHBUTTON "<22><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD>(&C)",IDC_CREATESCRIPT,665,7,114,18
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD>",IDC_STATIC4,654,266,135,134
|
||||
LTEXT "<22><>ü <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> : ",IDC_STATICMONTNUM,665,325,52,11
|
||||
EDITTEXT IDC_NUMINWORLD,717,321,39,14,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
COMBOBOX IDC_KIDCOMBO,681,106,104,88,CBS_DROPDOWN |
|
||||
CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
EDITTEXT IDC_NUMOFKID,689,168,94,14,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
CONTROL "KID(&1)",IDC_VISUALKID,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,669,356,35,10
|
||||
GROUPBOX "ǥ<>ñ<EFBFBD><C3B1><EFBFBD>",IDC_STATIC6,661,342,95,46
|
||||
LTEXT "<22≯<EFBFBD> : ",IDC_STATICNAME,661,127,22,8
|
||||
LTEXT "<22><><EFBFBD><EFBFBD> : ",IDC_STATICLEVEL,661,143,22,8
|
||||
LTEXT "Ŭ<><C5AC><EFBFBD><EFBFBD> : ",IDC_STATICCLASS,657,157,28,8
|
||||
LTEXT "<22><>ü<EFBFBD><C3BC> : ",IDC_STATICOBJNUM,661,172,28,8
|
||||
EDITTEXT IDC_CLASS,689,153,94,14,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
EDITTEXT IDC_LEVEL,689,139,94,14,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
EDITTEXT IDC_NAME,689,125,94,14,ES_CENTER | ES_AUTOHSCROLL |
|
||||
ES_READONLY
|
||||
GROUPBOX "<22>۾<EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_STATIC1,654,35,135,43
|
||||
CONTROL "<22><>ġ(&A)",IDC_ARRANGEMENT,"Button",BS_AUTORADIOBUTTON |
|
||||
BS_PUSHLIKE | WS_GROUP,665,50,30,19
|
||||
CONTROL "<22><><EFBFBD><EFBFBD>(&D)",IDC_ERASE,"Button",BS_AUTORADIOBUTTON |
|
||||
BS_PUSHLIKE,697,50,30,19
|
||||
CONTROL "<22><EFBFBD>(&G)",IDC_GROUP,"Button",BS_AUTORADIOBUTTON |
|
||||
BS_PUSHLIKE,729,50,30,19
|
||||
GROUPBOX "<22><EFBFBD>",IDC_STATIC3,654,223,135,34
|
||||
CONTROL "PID(&2)",IDC_VISUALPID,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,669,371,36,10
|
||||
LTEXT "PID : ",IDC_STATICPID,661,243,19,8
|
||||
COMBOBOX IDC_PIDCOMBO,681,239,54,88,CBS_DROPDOWN |
|
||||
CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> :",IDC_STATICRESPAWN,661,195,42,8
|
||||
EDITTEXT IDC_RESPAWNEDIT,705,192,48,14,ES_RIGHT | ES_AUTOHSCROLL |
|
||||
ES_NUMBER
|
||||
CONTROL "LEVEL(&3)",IDC_VISUALLEVEL,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,709,356,41,9
|
||||
EDITTEXT IDC_PARTYMEM_NUM,737,238,45,14,ES_CENTER |
|
||||
ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER
|
||||
GROUPBOX "<22><>ġ",IDC_STATIC2,653,89,136,124
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "041203b5"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "(c) Youxiland"
|
||||
VALUE "FileDescription", "Arrangement Tool"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "Arrangement2.exe"
|
||||
VALUE "LegalCopyright", "(c) Youxiland. All rights reserved."
|
||||
VALUE "OriginalFilename", "Arrangement2.exe"
|
||||
VALUE "ProductName", "Arrangement Tool"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x412, 949
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
|
||||
IDD_ARRANGEMENT2_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 6
|
||||
RIGHTMARGIN, 792
|
||||
VERTGUIDE, 63
|
||||
VERTGUIDE, 112
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 645
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// RT_MANIFEST
|
||||
//
|
||||
|
||||
IDR_MANIFEST RT_MANIFEST "res\\Arrangement2.manifest"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
//
|
||||
|
||||
IDR_MENU1 MENU
|
||||
BEGIN
|
||||
POPUP "<22><> <20>ε<EFBFBD>(&F)"
|
||||
BEGIN
|
||||
POPUP "<22><>(&Z)"
|
||||
BEGIN
|
||||
MENUITEM "<22><>1 (<28><EFBFBD><D7B7><EFBFBD> <20>ڽ<EFBFBD>Ʈ)", ID__ZONE1
|
||||
MENUITEM "<22><>2 (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)", ID__ZONE2
|
||||
MENUITEM "<22><>3 (<28><>Ʋ <20><EFBFBD><D7B6><EFBFBD><EFBFBD><EFBFBD>)", ID__ZONE3
|
||||
MENUITEM "<22><>4 (<28><><EFBFBD>̳<EFBFBD> <20><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>)", ID__ZONE4
|
||||
MENUITEM "<22><>5 (<28><><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)", ID__ZONE5
|
||||
MENUITEM "<22><>8 (ī<><C4AB><EFBFBD><EFBFBD>)", ID__ZONE8
|
||||
MENUITEM "<22><>9(<28>ű<EFBFBD><C5B1><EFBFBD>)", ID__ZONE9
|
||||
MENUITEM "<22><>12 (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)", ID__ZONE12
|
||||
MENUITEM "<22><>16 (<28><>ũ ī<><C4AB><EFBFBD><EFBFBD>)", ID__ZONE16
|
||||
MENUITEM "<22><>100 (<28>Ʒ<EFBFBD><C6B7><EFBFBD>)", ID__ZONE100
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>(&X)", ID_APP_EXIT
|
||||
END
|
||||
POPUP "<22><><EFBFBD><EFBFBD>(&V)"
|
||||
BEGIN
|
||||
POPUP "<22><>(&Z)"
|
||||
BEGIN
|
||||
MENUITEM "50% (<28><EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> -_-)", ID__50
|
||||
MENUITEM "100%", ID__100
|
||||
MENUITEM "200%", ID__200
|
||||
MENUITEM "400%", ID__400
|
||||
MENUITEM "800%", ID__800
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Accelerator
|
||||
//
|
||||
|
||||
IDR_ACCELERATOR1 ACCELERATORS
|
||||
BEGIN
|
||||
VK_F1, IDC_ERASE, VIRTKEY, CONTROL, NOINVERT
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "Arrangement2 <20><><EFBFBD><EFBFBD>(&A)..."
|
||||
END
|
||||
|
||||
#endif // <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#include "res\Arrangement2.rc2" // Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>
|
||||
#include "afxres.rc" // ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
223
Server/ToolProject/Arrangement2/Arrangement2.vcproj
Normal file
@@ -0,0 +1,223 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="Arrangement2"
|
||||
ProjectGUID="{8DB7D818-437F-47B5-8DAF-DF284B32A737}"
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../RylServerProject/BaseLibrary;"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="gdiplus.lib ijl15.lib"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OmitFramePointers="TRUE"
|
||||
AdditionalIncludeDirectories="../../RylServerProject/BaseLibrary;"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
StringPooling="TRUE"
|
||||
MinimalRebuild="FALSE"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="gdiplus.lib ijl15.lib"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
|
||||
<File
|
||||
RelativePath="Arrangement2.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Arrangement2Dlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="DelimitedFile.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc">
|
||||
<File
|
||||
RelativePath="Arrangement2.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Arrangement2Dlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="DelimitedFile.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="ijl.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="MemUtils.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;manifest">
|
||||
<File
|
||||
RelativePath="res\Arrangement2.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="res\Arrangement2.manifest">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Arrangement2.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="res\Arrangement2.rc2">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Misc"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath="ijl15.dll">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="ijl15.lib">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="MonsterProtoType.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Zone01.jpg">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="Arrangement2.rc"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
1685
Server/ToolProject/Arrangement2/Arrangement2Dlg.cpp
Normal file
311
Server/ToolProject/Arrangement2/Arrangement2Dlg.h
Normal file
@@ -0,0 +1,311 @@
|
||||
// Arrangement2Dlg.h : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "afxwin.h"
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// CArrangement2Dlg <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
class CArrangement2Dlg : public CDialog
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
CArrangement2Dlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
enum { IDD = IDD_ARRANGEMENT2_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// <20><EFBFBD><DEBD><EFBFBD> <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
afx_msg void OnZoom(UINT nID);
|
||||
afx_msg void OnUpdateZoom(CCmdUI *pCmdUI);
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
||||
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
||||
afx_msg void OnBnClickedCreatescript();
|
||||
afx_msg void OnBnClickedVisualkid();
|
||||
afx_msg void OnCbnSelchangeKidcombo();
|
||||
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
|
||||
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
|
||||
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
|
||||
afx_msg void OnZone(UINT nID);
|
||||
afx_msg void OnUpdateZone(CCmdUI* pCmdUI);
|
||||
afx_msg void OnBnClickedVisualpid();
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
afx_msg void OnAppExit();
|
||||
afx_msg void OnCbnSelchangePidcombo();
|
||||
|
||||
protected:
|
||||
virtual BOOL DestroyWindow();
|
||||
|
||||
public:
|
||||
int m_nPositionX;
|
||||
int m_nPositionY;
|
||||
int m_nPositionZ;
|
||||
|
||||
int m_nProcess;
|
||||
|
||||
int m_nPID;
|
||||
BOOL m_bVisualKID;
|
||||
BOOL m_bVisualPID;
|
||||
BOOL m_bVisualLevel;
|
||||
|
||||
CString m_strName;
|
||||
CString m_strLevel;
|
||||
CString m_strClass;
|
||||
int m_nNumOfKID;
|
||||
|
||||
int m_nNumOfWorld;
|
||||
CComboBox m_ctrKIDCombo;
|
||||
|
||||
BOOL m_bErase;
|
||||
|
||||
short m_wRespawnArea;
|
||||
CComboBox m_ctrPIDCombo;
|
||||
|
||||
int m_nPartyMemNum;
|
||||
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
private:
|
||||
|
||||
enum _Const
|
||||
{
|
||||
MAP_PAGE_X = 1100,
|
||||
MAP_PAGE_Z = 900,
|
||||
|
||||
SECTOR_SIZE = 315,
|
||||
|
||||
MAX_NUM = 0xffff,
|
||||
ID_LENGTH = 8,
|
||||
|
||||
MONSTER_BIT = 0x80000000,
|
||||
MONSTER_PARTY_BIT = 0x80000000,
|
||||
|
||||
MAX_STRING_LENGTH = 32,
|
||||
|
||||
MAX_PARTY_MEMBER_NUM = 10
|
||||
};
|
||||
|
||||
enum Process
|
||||
{
|
||||
ARRANGEMENT = 0,
|
||||
ERASE,
|
||||
PARTY
|
||||
};
|
||||
|
||||
enum MovingPattern
|
||||
{
|
||||
PATTERN_AREA = 0,
|
||||
PATTERN_FIX,
|
||||
PATTERN_ROUTE,
|
||||
PATTERN_NONAREA
|
||||
};
|
||||
|
||||
enum RespawnArea
|
||||
{
|
||||
DEFAULT_DISTANCE = 32
|
||||
};
|
||||
|
||||
enum SpeacialKindID
|
||||
{
|
||||
// <20><>ȯ<EFBFBD><C8AF>
|
||||
SUMMON_KINDLING = 3500,
|
||||
SUMMON_FLAMEWALKER = 3506,
|
||||
SUMMON_BURNINGSHIELD = 3513,
|
||||
SUMMON_FIREWING = 3520,
|
||||
SUMMON_DEATHBURN = 3527,
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
STATUE_NEUTRALITY = 4001,
|
||||
STATUE_HUMAN_LOADING = 4002,
|
||||
STATUE_HUMAN_COMPLETE = 4003,
|
||||
STATUE_AKHAN_LOADING = 4004,
|
||||
STATUE_AKHAN_COMPLETE = 4005,
|
||||
|
||||
// BattleGround Server <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
BG_STATUE_NEUTRALITY = 4006,
|
||||
BG_STATUE_HUMAN_LOADING = 4007,
|
||||
BG_STATUE_HUMAN_COMPLETE = 4008,
|
||||
BG_STATUE_AKHAN_LOADING = 4009,
|
||||
BG_STATUE_AKHAN_COMPLETE = 4010,
|
||||
|
||||
// <20><>ũ ī<><C4AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
POWER_STATUE_NEUTRALITY = 4011, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
POWER_STATUE_HUMAN_LOADING = 4012,
|
||||
POWER_STATUE_HUMAN_COMPLETE = 4013,
|
||||
POWER_STATUE_AKHAN_LOADING = 4014,
|
||||
POWER_STATUE_AKHAN_COMPLETE = 4015,
|
||||
|
||||
INT_STATUE_NEUTRALITY = 4016, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
INT_STATUE_HUMAN_LOADING = 4017,
|
||||
INT_STATUE_HUMAN_COMPLETE = 4018,
|
||||
INT_STATUE_AKHAN_LOADING = 4019,
|
||||
INT_STATUE_AKHAN_COMPLETE = 4020,
|
||||
|
||||
EXP_STATUE_NEUTRALITY = 4021, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
EXP_STATUE_HUMAN_LOADING = 4022,
|
||||
EXP_STATUE_HUMAN_COMPLETE = 4023,
|
||||
EXP_STATUE_AKHAN_LOADING = 4024,
|
||||
EXP_STATUE_AKHAN_COMPLETE = 4025,
|
||||
|
||||
WEALTH_STATUE_NEUTRALITY = 4026, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
WEALTH_STATUE_HUMAN_LOADING = 4027,
|
||||
WEALTH_STATUE_HUMAN_COMPLETE = 4028,
|
||||
WEALTH_STATUE_AKHAN_LOADING = 4029,
|
||||
WEALTH_STATUE_AKHAN_COMPLETE = 4030,
|
||||
|
||||
LIFE_EXTRACT_NEUTRALITY = 4031, // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LIFE_EXTRACT_HUMAN_LOADING = 4032,
|
||||
LIFE_EXTRACT_HUMAN_COMPLETE = 4033,
|
||||
LIFE_EXTRACT_AKHAN_LOADING = 4034,
|
||||
LIFE_EXTRACT_AKHAN_COMPLETE = 4035,
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> KID (CreatureStructure.h <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ǵǾ<C7B5> <20><><EFBFBD><EFBFBD>)
|
||||
MIN_STATUE_KID = 4001,
|
||||
MAX_STATUE_KID = 4035
|
||||
};
|
||||
|
||||
struct Monster
|
||||
{
|
||||
unsigned long m_dwCID;
|
||||
|
||||
int m_nKID;
|
||||
int m_nPID;
|
||||
int m_nLevel;
|
||||
|
||||
BOOL m_bScout;
|
||||
int m_nMovingPattern;
|
||||
short m_wRespawnArea;
|
||||
|
||||
int m_nPosX;
|
||||
int m_nPosY;
|
||||
int m_nPosZ;
|
||||
|
||||
Monster()
|
||||
: m_dwCID(0), m_nKID(0), m_nPID(0), m_bScout(FALSE), m_nMovingPattern(0),
|
||||
m_nPosX(0), m_nPosY(0), m_nPosZ(0), m_wRespawnArea(DEFAULT_DISTANCE), m_nLevel(0)
|
||||
{ }
|
||||
};
|
||||
|
||||
typedef struct _MonsterInfo
|
||||
{
|
||||
int m_nKID;
|
||||
|
||||
char m_strName[MAX_STRING_LENGTH];
|
||||
char m_strLevel[MAX_STRING_LENGTH];
|
||||
char m_strClass[MAX_STRING_LENGTH];
|
||||
|
||||
} MonsterInfo, *LPMonsterInfo;
|
||||
|
||||
|
||||
int m_nMapStartX;
|
||||
int m_nMapStartZ;
|
||||
|
||||
UINT_PTR m_nTimer;
|
||||
bool m_bBlink;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
struct sStatueKey
|
||||
{
|
||||
sStatueKey(unsigned short wPosX, unsigned short wPosZ)
|
||||
{
|
||||
m_dwValue = static_cast<unsigned long>( (wPosX << 16) | wPosZ ) ;
|
||||
}
|
||||
|
||||
operator unsigned long() const
|
||||
{
|
||||
return m_dwValue ;
|
||||
}
|
||||
|
||||
unsigned long m_dwValue ;
|
||||
} ;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
||||
typedef vector<Monster *> MonsterList;
|
||||
typedef std::map<int, MonsterInfo> MonsterInfoList;
|
||||
typedef std::map<unsigned long, unsigned long> StatueIDMap; // <sStatueKey::m_dwValue, StatueCID>
|
||||
|
||||
|
||||
MonsterList m_lstMonster;
|
||||
MonsterInfoList m_lstMonsterInfo;
|
||||
StatueIDMap m_mapStatueID;
|
||||
|
||||
// <20><><EFBFBD>̹<EFBFBD><CCB9><EFBFBD> ũ<><C5A9>
|
||||
|
||||
unsigned long m_dwPageX;
|
||||
unsigned long m_dwPageZ;
|
||||
|
||||
// <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20><><EFBFBD>ſ<EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9> <20><> <20><><EFBFBD><EFBFBD>
|
||||
int m_nPrevX;
|
||||
int m_nPrevY;
|
||||
int m_nNextX;
|
||||
int m_nNextY;
|
||||
int m_nGapX;
|
||||
int m_nGapY;
|
||||
|
||||
// <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20><>ġ
|
||||
RECT m_rectWindow;
|
||||
|
||||
// <20>̹<EFBFBD> <20><EFBFBD><D7B7><EFBFBD> <20>༮<EFBFBD><E0BCAE> <20>̵<EFBFBD><CCB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool m_bDragObject;
|
||||
int m_DragObjectIndex;
|
||||
|
||||
CPoint DragScreenStartPoint;
|
||||
bool m_bDragScreen;
|
||||
|
||||
// <20><>
|
||||
UINT m_nSelectedZoom;
|
||||
float m_fMagnification;
|
||||
|
||||
// <20><><EFBFBD>õ<EFBFBD>(<28>ε<EFBFBD><CEB5><EFBFBD> <20><>)
|
||||
UINT m_nLoadedZone;
|
||||
|
||||
// <20>̹<EFBFBD><CCB9><EFBFBD>
|
||||
BYTE* m_imageData;
|
||||
SIZE m_imageDims;
|
||||
int m_imageChannels;
|
||||
BITMAPINFO m_bmi;
|
||||
BYTE* m_bmp;
|
||||
|
||||
void CalculateNumOfKID(int nKID);
|
||||
void CalculateNumOfPID();
|
||||
void ClearBitmap();
|
||||
void ClearData();
|
||||
BOOL OpenJPGFile(LPCTSTR lpszPathName);
|
||||
void RGBA_FPX_to_BGRA(BYTE* data,int width,int height);
|
||||
void InitialUpdate();
|
||||
|
||||
void LoadScript(void);
|
||||
|
||||
void DrawOutLineText(Graphics& graphics, Font& font, PointF pointF, wchar_t* strText);
|
||||
|
||||
BOOL IsStatue(unsigned short wKID) CONST;
|
||||
template <class T>
|
||||
void SetObjectPos(T* pObject);
|
||||
public:
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
};
|
||||
327
Server/ToolProject/Arrangement2/DelimitedFile.cpp
Normal file
@@ -0,0 +1,327 @@
|
||||
#ifdef _BASE_LIBRARY_
|
||||
#include "../stdafx.h"
|
||||
#endif
|
||||
|
||||
#include "DelimitedFile.h"
|
||||
|
||||
// TODO: CDelimitedFile::Write <20>迭 <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CDelimitedFile::CDelimitedFile(const char* pszDelimiter)
|
||||
: m_fpFile( NULL ), m_dwColumn( 0 ), m_dwColumnCount( 0 )
|
||||
{
|
||||
strncpy(m_szDelimiter, pszDelimiter, MAX_DELIMITER_NUM);
|
||||
}
|
||||
|
||||
CDelimitedFile::~CDelimitedFile()
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::Open( LPCSTR szFilename, int nHeadLine, UINT nOpenFlags )
|
||||
{
|
||||
m_fpFile = ::fopen( szFilename, (nOpenFlags & modeCreate) ? "wt" : "rt" );
|
||||
if (NULL == m_fpFile)
|
||||
{
|
||||
#ifdef _BASE_LIBRARY_
|
||||
g_Log.ErrLog(__FUNCTION__, __FILE__, __LINE__, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s<><73> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.", szFilename);
|
||||
#endif
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (nHeadLine > -1) {
|
||||
for (int i=0; i<nHeadLine; ++i) {
|
||||
ReadLine();
|
||||
}
|
||||
|
||||
CHAR szColumnName[256];
|
||||
for( m_dwColumnCount = 0; ReadString( szColumnName, 255 ); m_dwColumnCount++ ) {
|
||||
// TODO: szColumnName<6D><65> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>߰<EFBFBD>
|
||||
m_ColumnNames.push_back(szColumnName);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CDelimitedFile::Close( void )
|
||||
{
|
||||
if( m_fpFile ) {
|
||||
::fclose( m_fpFile );
|
||||
m_fpFile = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadLine( void )
|
||||
{
|
||||
while( ::fgets( m_szLine, MAX_LINE_LENGTH, m_fpFile ) ) {
|
||||
if( (m_szLine[0]) && (m_szLine[0] != ';') ) {
|
||||
m_dwColumn = 0;
|
||||
memcpy(m_szBackupLine, m_szLine, MAX_LINE_LENGTH);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( double &dNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
dNumber = atof( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( float &fNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
fNumber = (float) atof( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( unsigned long &fNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
fNumber = (unsigned long) atol( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( int &iNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
iNumber = atoi( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( unsigned short &iNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
iNumber = (unsigned short)atoi( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( short &iNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
iNumber = (short)atoi( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( unsigned char &iNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
iNumber = (unsigned char)atoi( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( char &iNumber )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
iNumber = (char)atoi( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( __int64 &i64Number )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
i64Number = _atoi64( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData( DWORD64 &i64Number )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
i64Number = (DWORD)_atoi64( pszData );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadString( char *szString, DWORD dwSize )
|
||||
{
|
||||
CHAR *pszData = ::strtok( (m_dwColumn++) ? NULL : m_szLine, m_szDelimiter );
|
||||
|
||||
if( !pszData || !(*pszData) )
|
||||
return FALSE;
|
||||
strncpy( szString, pszData, dwSize );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, double &dNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( dNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, float &fNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( fNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, unsigned long &fNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( fNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, int &iNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( iNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, unsigned short &iNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( iNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, short &iNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( iNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, unsigned char &iNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( iNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, char &iNumber )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( iNumber );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, __int64 &i64Number )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( i64Number );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadData(const char *szField, DWORD64 &i64Number )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadData( i64Number );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::ReadString(const char *szField, char *szString, DWORD dwSize )
|
||||
{
|
||||
int nSearch;
|
||||
|
||||
if( ((nSearch = FindColumn( szField )) == -1) )
|
||||
return FALSE;
|
||||
GotoColumn( nSearch );
|
||||
return ReadString( szString, dwSize );
|
||||
}
|
||||
|
||||
BOOL CDelimitedFile::GotoColumn( int nColumn )
|
||||
{
|
||||
CHAR* pszPos = 0;
|
||||
|
||||
if(nColumn < 0 || (DWORD)nColumn > m_dwColumnCount)
|
||||
return FALSE;
|
||||
|
||||
if( (m_dwColumn == (DWORD) nColumn) )
|
||||
return TRUE;
|
||||
|
||||
if( nColumn == 0 ) {
|
||||
m_dwColumn = 0;
|
||||
strtok(m_szLine, m_szDelimiter);
|
||||
}
|
||||
else {
|
||||
for(;m_dwColumn < m_dwColumnCount && nColumn != m_dwColumn; ++m_dwColumn )
|
||||
pszPos = strtok(0, m_szDelimiter);
|
||||
|
||||
if(m_dwColumn == m_dwColumnCount) {
|
||||
memcpy(m_szLine, m_szBackupLine, MAX_LINE_LENGTH);
|
||||
pszPos = strtok(m_szLine, m_szDelimiter);
|
||||
for(m_dwColumn = 1; m_dwColumn < (DWORD)nColumn && nColumn != m_dwColumn; ++m_dwColumn )
|
||||
pszPos = strtok(NULL, m_szDelimiter );
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int CDelimitedFile::FindColumn(const char *szField )
|
||||
{
|
||||
// list<73><74><EFBFBD><EFBFBD> ã<><C3A3>
|
||||
const std::basic_string<char>::size_type npos = -1;
|
||||
|
||||
for(std::basic_string<char>::size_type nCount = 0; nCount < m_ColumnNames.size(); ++nCount) {
|
||||
if(npos != m_ColumnNames[nCount].find(szField)) {
|
||||
return (int)nCount;
|
||||
}
|
||||
}
|
||||
|
||||
return npos;
|
||||
}
|
||||
82
Server/ToolProject/Arrangement2/DelimitedFile.h
Normal file
@@ -0,0 +1,82 @@
|
||||
#pragma once
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
class CDelimitedFile
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
// MAX Delimiter num is 32;
|
||||
CDelimitedFile(const char* pszDelimiter = "\t");
|
||||
~CDelimitedFile();
|
||||
|
||||
enum {
|
||||
MAX_LINE_LENGTH = 8192,
|
||||
MAX_DELIMITER_NUM = 32
|
||||
};
|
||||
|
||||
enum OpenFlags {
|
||||
modeRead = (int) 0x00000,
|
||||
modeCreate = (int) 0x01000
|
||||
};
|
||||
|
||||
private:
|
||||
|
||||
FILE *m_fpFile;
|
||||
DWORD m_dwColumn;
|
||||
DWORD m_dwColumnCount;
|
||||
CHAR m_szLine[MAX_LINE_LENGTH];
|
||||
CHAR m_szBackupLine[MAX_LINE_LENGTH];
|
||||
|
||||
char m_szDelimiter[MAX_DELIMITER_NUM];
|
||||
|
||||
std::vector<std::string> m_ColumnNames;
|
||||
|
||||
private:
|
||||
int FindColumn(const char *szField );
|
||||
BOOL GotoColumn( int nColumn );
|
||||
|
||||
public:
|
||||
BOOL Open(LPCSTR szFilename, int nHeadLine = -1, UINT nOpenFlags = modeRead );
|
||||
BOOL ReadLine();
|
||||
|
||||
BOOL ReadData(double &dNumber);
|
||||
BOOL ReadData(float &fNumber);
|
||||
|
||||
BOOL ReadData(unsigned long &fNumber);
|
||||
|
||||
BOOL ReadData(int &iNumber);
|
||||
BOOL ReadData(unsigned short &iNumber);
|
||||
BOOL ReadData(short &iNumber);
|
||||
BOOL ReadData(unsigned char &iNumber);
|
||||
BOOL ReadData(char &iNumber);
|
||||
|
||||
BOOL ReadData(__int64 &i64Number);
|
||||
BOOL ReadData(DWORD64 &i64Number);
|
||||
|
||||
BOOL ReadString(char *szString, DWORD dwSize);
|
||||
|
||||
|
||||
BOOL ReadData(const char *szField, double &dNumber);
|
||||
BOOL ReadData(const char *szField, float &fNumber);
|
||||
|
||||
BOOL ReadData(const char *szField, unsigned long &fNumber);
|
||||
|
||||
BOOL ReadData(const char *szField, int &iNumber);
|
||||
BOOL ReadData(const char *szField, unsigned short &iNumber);
|
||||
BOOL ReadData(const char *szField, short &iNumber);
|
||||
BOOL ReadData(const char *szField, unsigned char &iNumber);
|
||||
BOOL ReadData(const char *szField, char &iNumber);
|
||||
|
||||
BOOL ReadData(const char *szField, __int64 &i64Number);
|
||||
BOOL ReadData(const char *szField, DWORD64 &i64Number);
|
||||
|
||||
BOOL ReadString(const char *szField, char *szString, DWORD dwSize);
|
||||
|
||||
void Close() ;
|
||||
};
|
||||
92
Server/ToolProject/Arrangement2/MemUtils.h
Normal file
@@ -0,0 +1,92 @@
|
||||
#ifndef _MEMUTILS_H_
|
||||
#define _MEMUTILS_H_
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
|
||||
#define SAFE_FREE(p) { if (p) { free(p); (p) = NULL; } }
|
||||
#define SAFE_DELETE(p) { if (p) { delete (p); (p) = NULL; } }
|
||||
#define SAFE_DELETE_ARRAY(p) { if (p) { delete[] (p); (p) = NULL; } }
|
||||
#define SAFE_RELEASE(p) { if (p) { (p)->Release(); (p) = NULL; } }
|
||||
#define SAFE_CLOSESOCK(p) { if (INVALID_SOCKET != (p)) { closesocket(p); (p) = INVALID_SOCKET; } }
|
||||
#define SAFE_CLOSEHANDLE(p) { if (INVALID_HANDLE_VALUE != (p)) { CloseHandle(p); (p) = INVALID_HANDLE_VALUE; } }
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC>ڿ<EFBFBD>, <20>˰<EFBFBD><CBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
namespace MemUtils
|
||||
{
|
||||
// <20><>ü <20><><EFBFBD><EFBFBD>
|
||||
template<typename Object>
|
||||
struct fnCreate {
|
||||
Object* operator() () {
|
||||
return new Object;
|
||||
}
|
||||
};
|
||||
|
||||
// <20><>ü <20><><EFBFBD><EFBFBD>
|
||||
struct fnDelete {
|
||||
template<typename Object>
|
||||
void operator() (Object* pObject) {
|
||||
delete pObject;
|
||||
}
|
||||
};
|
||||
|
||||
// Map<61><70> Pair<69><72> <20>ִ<EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD>
|
||||
struct fnDelete2nd {
|
||||
template<typename Pair>
|
||||
void operator() (Pair& pair) {
|
||||
delete pair.second;
|
||||
}
|
||||
};
|
||||
|
||||
// <20>迭 <20><><EFBFBD><EFBFBD>
|
||||
struct fnDeleteArray {
|
||||
template<typename Object>
|
||||
void operator() (Object* pObject) {
|
||||
delete [] pObject;
|
||||
}
|
||||
};
|
||||
|
||||
// Release <20><>.
|
||||
struct fnRelease {
|
||||
template<typename Object>
|
||||
void operator() (Object* pObject) {
|
||||
pObject->Release();
|
||||
}
|
||||
};
|
||||
|
||||
// Map<61><70> Pair<69><72> <20>ִ<EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD>.
|
||||
struct fnRelease2nd {
|
||||
template<typename Pair>
|
||||
void operator() (Pair& pair) {
|
||||
pair.second->Release();
|
||||
}
|
||||
};
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true<75≯<EFBFBD> <20><><EFBFBD>縦 <20>ϴ<EFBFBD> iterator.
|
||||
template<typename InputIterator, typename OutputIterator, typename Predicate>
|
||||
inline OutputIterator copy_if(InputIterator begin, InputIterator end, OutputIterator destBegin, Predicate Pred) {
|
||||
while(begin != end) {
|
||||
if(Pred(*begin)) *destBegin++ = *begin;
|
||||
++begin;
|
||||
}
|
||||
|
||||
return destBegin;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>̳ʸ<CCB3> <20><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> delete<74><65> <20><><EFBFBD><EFBFBD>. DestructType <20><> fnDelete<74><65> fnRelease<73><65> <20>ϳ<EFBFBD>
|
||||
template<typename ContainerType, typename DesturctType, typename LockType>
|
||||
inline void ClearContainer(ContainerType& Container, DesturctType fnDestructor, LockType& Lock) {
|
||||
LockType::Syncronize sync(Lock);
|
||||
std::for_each(Container.begin(), Container.end(), fnDestructor);
|
||||
Container.clear();
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>̳ʸ<CCB3> <20><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> delete<74><65> <20><><EFBFBD><EFBFBD>. DestructType <20><> fnDelete<74><65> fnRelease<73><65> <20>ϳ<EFBFBD>
|
||||
template<typename ContainerType, typename DestructType>
|
||||
inline void ClearContainer(ContainerType& Container, DestructType fnDestructor) {
|
||||
std::for_each(Container.begin(), Container.end(), fnDestructor);
|
||||
Container.clear();
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
290
Server/ToolProject/Arrangement2/MonsterProtoType.txt
Normal file
@@ -0,0 +1,290 @@
|
||||
1 <09><> <20><><EFBFBD><EFBFBD> MON_Seaman.GCMDS 2 Defender 24 44 24 216 35 1 30 -30 40 -40 660 0.191804878 15 1 17 22 2 3 0 0 0.7 4 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 200 340 5 8.5 1 0 X O X O 15000 2352 0 0 0 1000 80 80 80 140 159 2 20
|
||||
2 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Seaman.GCMDS 2 Defender 24 48.4 24 230.4 35 1 36 -36 48 -48 148 0.18154083 17 2 21 26 6 5 2 0 0.7 4 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 245 9000 6.125 10.775 1.2 0 X X X O 15000 2353 0 0 0 1000 80 80 80 140 158 2 20
|
||||
3 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Seaman_warrior.GCMDS 2 Warrior 24 48.4 24 230.4 35 1 36 -36 48 -48 148 0.18154083 23 3 25 30 9 6 3 0 0.8 4 0 2 1 0 0 0 0 0 0 0 0 0 0 1 1 306 521 7.65 13.025 1.2 1 X X X O 15000 2354 0 0 0 1000 80 80 80 140 157 2 20
|
||||
4 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Daramji.GCMDS 2 Defender 12 37.8 12 100.8 40 1 12 -16 56 -44 144 0.186532492 15 1 17 22 2 3 0 0 0.8 4 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 186 340 4.65 8.5 0.8 0 X X X O 15000 2355 0 0 0 1000 80 80 80 140 159 2 20
|
||||
5 <09><EFBFBD><D7B7>ø<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Bronji.GCMDS 2 Defender 24 75.6 24 201.6 40 1 12 -16 56 -44 144 0.186532492 17 2 21 26 6 5 2 0 0.8 4 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 245 431 6.125 10.775 0.8 0 X X X O 15000 2356 0 0 0 1000 80 80 80 140 158 2 20
|
||||
6 <09><> MON_Bat.GCMDS 2 Warrior 15 52 15 135 24 1 30 -30 0 -80 180 0.149502979 23 3 25 30 9 6 3 0 0.5 4 0 2 1 0 0 0 0 0 0 0 0 0 0 1 1 306 521 7.65 13.025 1 1 X X X O 15000 2357 0 0 0 1000 80 80 80 140 157 2 20
|
||||
7 <09><><EFBFBD><EFBFBD> <20><EFBFBD> MON_Bulte.GCMDS 2 Defender 16 72 16 72 35 1 20 -20 25 -25 125 0.214525312 34 4 25 32 11 8 4 0 0.8 4 0 3 1 0 0 0 0 0 0 0 0 0 0 1 1 374 614 9.35 15.35 1 1 X X X O 15000 2358 0 0 0 1000 80 80 80 140 156 2 20
|
||||
8 Ʈ<><C6AE><EFBFBD>̹<EFBFBD> <20><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> MON_Lizardman.GCMDS 2 Warrior 30 99.75 30 261 60 1 49.5 -40.5 148.5 -72 172 0.156407418 49 5 28 35 13 8 5 0 1.6 4 0 3 2 0 0 0 0 0 0 0 0 0 0 1 1 414 655 10.35 16.375 0.9 1 X X X O 15000 2359 0 0 0 1000 80 80 80 140 155 2 20
|
||||
9 <09><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD> MON_Spider.GCMDS 2 Warrior 32 95.2 32 100.8 30 1 56 -56 52.5 -63 163 0.164975731 49 5 28 35 13 8 5 0 0.8 4 0 3 2 0 0 0 0 0 0 0 0 0 0 1 1 414 655 10.35 16.375 0.7 1 X X X O 15000 2360 0 0 0 1000 80 80 80 140 155 2 20
|
||||
10 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ MON_Seaman_warrior.GCMDS 2 Warrior 24 52.8 24 244.8 35 1 42 -42 56 -56 156 0.172314908 69 6 31 38 14 10 6 0 1 4 0 4 2 0 0 0 0 0 0 0 0 0 0 1 1 486 746 12.15 18.65 1.4 2 X X X O 15000 2361 0 0 0 1000 80 80 80 140 154 2 20
|
||||
11 <09><EFBFBD> MON_Bulte.GCMDS 2 Defender 16 108 16 96 35 1 40 -40 50 -50 150 0.179143389 95 7 34 41 17 11 8 0 1 4 0 5 2 0 0 0 0 0 0 0 0 0 0 1 1 568 840 14.2 21 2 2 X X X O 15000 2362 0 0 0 1000 80 80 80 140 153 2 20
|
||||
12 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Daramji.GCMDS 2 Defender 12 42 12 108 40 1 15 -20 70 -55 155 0.173416769 69 6 31 38 14 10 6 0 1 4 0 4 2 0 0 0 0 0 0 0 0 0 0 1 1 490 746 12.25 18.65 1 2 X X X O 15000 2363 0 0 0 1000 80 80 80 140 154 2 20
|
||||
13 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŀ<EFBFBD>̼<EFBFBD> MON_Goblin.GCMDS 2 Warrior 32 112 24 216 30 1 35 -35 15 -40 140 0.191804878 128 8 36 45 18 13 9 0 1 4 0 5 3 0 0 0 0 0 0 0 0 0 0 1 1 650 932 16.25 23.3 1 2 X X X O 15000 2364 0 0 0 1000 80 80 80 140 152 2 20
|
||||
14 <09><><EFBFBD><EFBFBD> MON_Chulpawn.GCMDS 2 Defender 32 112 32 112 40 1 50 -50 25 -150 250 0.107813954 168 9 37 46 19 13 9 0 1.3 4 0 6 3 0 0 0 0 0 0 0 0 0 0 1 1 709 973 17.725 24.325 1 3 X X X O 15000 2365 0 0 0 1000 80 80 80 140 151 2 20
|
||||
15 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD> MON_Spider.GCMDS 2 Warrior 32 112 32 112 30 1 80 -80 75 -90 190 0.141682403 168 9 37 46 19 13 9 0 1.1 4 0 6 3 0 0 0 0 0 0 0 0 0 0 1 1 709 973 17.725 24.325 1 3 X X X O 15000 2366 0 0 0 1000 80 80 80 140 151 2 20
|
||||
16 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Goblin.GCMDS 2 Warrior 32 112 24 216 30 1 35 -35 15 -40 190 0.141682403 263 10 49 58 25 14 13 0 1.2 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 793 1070 19.825 26.75 1 3 X X X O 15000 2367 0 0 0 1000 80 80 80 140 150 2 20
|
||||
17 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Goblin_warrior.GCMDS 2 Defender 32 112 24 216 50 1 35 -35 15 -40 190 0.141682403 319 11 48 57 25 17 14 0 1.9 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 917 1162 22.925 29.05 1 3 X X X O 20000 2368 0 0 0 1000 80 80 80 140 149 2 20
|
||||
18 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_ZombieDog.GCMDS 2 Warrior 40 120 40 120 40 1 30 -30 15 -145 295 0.091412092 319 11 52 61 27 16 15 0 1.6 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 887 1162 22.175 29.05 1 3 X X X O 20000 2369 0 0 0 1000 80 80 80 140 149 2 20
|
||||
19 <09><><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD> MON_Spider.GCMDS 2 Warrior 32 123.2 32 119.4666667 30 1 96 -96 90 -108 258 0.104481861 382 12 55 66 30 17 17 0 1.2 4 0 8 5 0 0 0 0 0 0 0 0 0 0 1 1 994 1254 24.85 31.35 1.2 4 X O X O 20000 2370 0 0 0 1000 80 80 80 140 148 2 20
|
||||
20 <09><><EFBFBD><EFBFBD> MON_Zombie.GCMDS 2 Defender 60 160 60 160 60 1 25 -25 20 -35 185 0.145487999 382 12 48 59 26 19 15 0 2.3 4 0 8 5 0 0 0 0 0 0 0 0 0 0 1 1 1035 1254 25.875 31.35 1 4 X O X O 20000 2371 0 0 0 1000 80 80 80 140 148 2 20
|
||||
21 <09><><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Skeleton.GCMDS 2 Warrior 29 85.85 30 243 36 1 24.5 -35 17.5 -45.5 196 0.137369775 456 13 57 68 30 18 17 0 1.5 4 0 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1062 1302 26.55 32.55 0.7 4 X X X O 20000 2372 0 0 0 1000 80 80 80 140 147 2 20
|
||||
22 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Wolf_attacker.GCMDS 2 Warrior 32 100.8 24 201.6 40 1 16 -16 36 -112 262 0.102891755 456 13 57 68 30 18 17 0 1.6 4 0 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1062 1302 26.55 32.55 0.8 4 X X X O 20000 2373 0 0 0 1000 80 80 80 140 147 2 20
|
||||
23 <09><> <20><EFBFBD> MON_Bulte.GCMDS 2 Defender 16 126 16 108 35 1 50 -50 62.5 -62.5 213 0.126460099 456 13 50 61 27 19 16 0 1.3 4 0 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1108 1302 27.7 32.55 2.5 4 X X X O 20000 2374 0 0 0 1000 80 80 80 140 147 2 20
|
||||
24 <09><><EFBFBD><EFBFBD> MON_Pawnpawn.GCMDS 2 Defender 24 84 24 216 35 1 75 -60 10 -60 210 0.128257941 540 14 53 64 29 21 17 0 1.3 4 0 9 6 0 0 0 0 0 0 0 0 0 0 1 1 1231 1395 30.775 34.875 1 4 X O X O 20000 2375 0 0 0 1000 80 80 80 140 146 2 20
|
||||
25 <09><><EFBFBD>帶<EFBFBD><E5B8B6>ũ MON_Skullbat.GCMDS 2 Warrior 33 126.5 33 316.8 42 1 102 -162 108 -42 192 0.140215172 540 14 62 73 33 19 19 0 1.7 4 0 9 6 0 0 0 0 0 0 0 0 0 0 1 1 1170 1395 29.25 34.875 1.2 4 X O X O 20000 2376 0 0 0 1000 80 80 80 140 146 2 20
|
||||
26 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Chulpawn.GCMDS 2 Defender 32 117.6 32 115.7333333 40 1 55 -55 27.5 -165 315 0.085621174 540 14 53 64 29 21 17 0 1.5 4 0 9 6 0 0 0 0 0 0 0 0 0 0 1 1 1231 1395 30.775 34.875 1.1 4 X O X O 20000 2377 0 0 0 1000 80 80 80 140 146 2 20
|
||||
27 Ÿ<><C5B8>ƼŬ MON_Titug.GCMDS 2 Defender 32 100.8 32 268.8 30 1 76 -76 64 -80 230 0.117152517 634 15 57 68 32 22 20 0 1.1 5 0 10 6 0 0 0 0 0 0 0 0 0 0 1 1 1349 1487 33.725 37.175 0.8 5 X X X O 20000 2378 0 0 0 1000 80 80 80 140 145 2 20
|
||||
28 <09><><EFBFBD>̾<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Bronji.GCMDS 2 Defender 24 84 24 216 40 1 15 -20 70 -55 205 0.1313704 739 16 59 72 33 24 21 0 1.5 5 0 11 6 0 0 0 0 0 0 0 0 0 0 1 1 1496 1588 37.4 39.7 1 5 X O X O 20000 2379 0 0 0 1000 80 80 80 140 144 2 20
|
||||
29 <09><><EFBFBD><EFBFBD> <20>Ͽ<EFBFBD><CFBF><EFBFBD> MON_ZombieDog.GCMDS 2 Warrior 40 138 40 132 40 1 39 -39 19.5 -188.5 339 0.079571295 739 16 68 81 37 22 23 0 1.6 5 0 11 6 0 0 0 0 0 0 0 0 0 0 1 1 1412 1588 35.3 39.7 1.3 5 X O X O 20000 2380 0 0 0 1000 80 80 80 140 144 2 20
|
||||
30 <09><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD> <20><> MON_Zombie.GCMDS 2 Defender 60 160 60 160 60 1 25 -25 20 -35 185 0.145487999 739 16 59 72 33 24 21 0 2.3 5 0 11 6 0 0 0 0 0 0 0 0 0 0 1 1 1496 1588 37.4 39.7 1 5 X O X O 20000 2381 0 0 0 1000 80 80 80 140 144 2 20
|
||||
31 Ÿ<><C5B8>ƽ MON_Titug.GCMDS 2 Defender 32 112 32 288 30 1 95 -95 80 -100 250 0.107813954 855 17 61 74 34 25 23 0 1.1 5 0 11 7 0 0 0 0 0 0 0 0 0 0 1 1 1588 1631 39.7 40.775 1 5 X X X O 20000 2382 0 0 0 1000 80 80 80 140 143 2 20
|
||||
32 <09><><EFBFBD>̷<EFBFBD><CCB7><EFBFBD> MON_Skeleton.GCMDS 2 Warrior 29 101 30 270 36 1 35 -50 25 -65 215 0.125289215 984 18 74 87 41 24 25 0 1.5 5 0 12 7 0 0 0 0 0 0 0 0 0 0 1 1 1625 1724 40.625 43.1 1 6 X O X O 20000 2383 0 0 0 1000 80 80 80 140 142 2 20
|
||||
33 <09><><EFBFBD><EFBFBD> <20><> MON_Wolf.GCMDS 2 Defender 32 100.8 24 201.6 40 1 16 -16 36 -116 266 0.101349251 984 18 64 77 36 26 24 0 1.5 5 0 12 7 0 0 0 0 0 0 0 0 0 0 1 1 1736 1724 43.4 43.1 0.8 6 X O X O 20000 2384 0 0 0 1000 80 80 80 140 142 2 20
|
||||
34 <09><><EFBFBD>Ǻ<EFBFBD><C7BA><EFBFBD> MON_Amphibian.GCMDS 2 Warrior 42 139.65 42 365.4 42 1 40.5 -49.5 180 -54 204 0.13201106 984 18 74 87 41 24 25 0 1.7 5 0 12 7 0 0 0 0 0 0 0 0 0 0 1 1 1625 1724 40.625 43.1 0.9 6 X O X O 20000 2385 0 0 0 1000 80 80 80 140 142 2 20
|
||||
35 <09><><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_Zombie.GCMDS 2 Defender 60 192 60 181.3333333 60 1 35 -35 28 -49 199 0.135310175 1125 19 68 81 39 28 26 0 2.3 5 0 13 7 0 0 0 0 0 0 0 0 0 0 1 1 1877 1826 46.925 45.65 1.4 6 X X X O 20000 2386 0 0 0 1000 80 80 80 140 141 2 20
|
||||
36 <09>Ⱓƽ <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD> MON_Spider.GCMDS 2 Warrior 32 134.4 32 126.9333333 30 1 112 -112 105 -126 276 0.097687745 1125 19 77 90 43 25 27 0 1.2 5 0 13 7 0 0 0 0 0 0 0 0 0 0 1 1 1758 1826 43.95 45.65 1.4 6 X X X O 20000 2387 0 0 0 1000 80 80 80 140 141 2 20
|
||||
37 <09><><EFBFBD>̾<EFBFBD>Ʈ <20><EFBFBD> MON_Bulte.GCMDS 2 Defender 16 144 16 120 35 1 60 -60 75 -75 225 0.119744979 1125 19 68 81 39 28 26 0 1.3 5 0 13 7 0 0 0 0 0 0 0 0 0 0 1 1 1877 1826 46.925 45.65 3 6 X X X O 20000 2388 0 0 0 1000 80 80 80 140 141 2 20
|
||||
38 <09><><EFBFBD>̷<EFBFBD>Ż <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Skeleton_warrior.GCMDS 2 Defender 40 140 24 216 40 1 50 -65 60 -65 215 0.125289215 1280 20 68 83 40 30 27 0 1.5 5 0 13 8 0 0 0 0 0 0 0 0 0 0 1 1 2056 1920 51.4 48 1 6 X O X O 20000 2389 0 0 0 1000 80 80 80 140 140 2 20
|
||||
39 <09>ҿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Beholder.GCMDS 2 Defender 32 95.2 24 194.4 40 1 66.5 -84 80.5 -84 234 0.115157837 1449 21 70 85 40 30 27 0 1.5 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2169 1963 54.225 49.075 0.7 7 X X X O 20000 2390 0 0 0 1000 80 80 80 140 139 2 20
|
||||
40 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ŀ MON_Wolf_attacker.GCMDS 2 Warrior 32 112 24 216 40 1 20 -20 45 -140 290 0.092984162 1280 20 79 94 45 27 28 0 1.6 5 0 13 8 0 0 0 0 0 0 0 0 0 0 1 1 1912 1920 47.8 48 1 6 X O X O 20000 2391 0 0 0 1000 80 80 80 140 140 2 20
|
||||
41 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Wolf.GCMDS 2 Defender 32 112 24 216 40 1 20 -20 45 -145 295 0.091412092 1449 21 70 85 40 30 27 0 1.5 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2169 1963 54.225 49.075 1 7 X X X O 20000 2392 0 0 0 1000 80 80 80 140 139 2 20
|
||||
42 <09><><EFBFBD>Ǻ<EFBFBD><C7BA><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Amphibian.GCMDS 2 Warrior 42 154.35 42 390.6 42 1 49.5 -60.5 220 -66 216 0.124711848 1280 20 79 94 45 27 28 0 1.7 5 0 13 8 0 0 0 0 0 0 0 0 0 0 1 1 1912 1920 47.8 48 1.1 6 X O X O 20000 2393 0 0 0 1000 80 80 80 140 140 2 20
|
||||
43 <09><><EFBFBD>Ǻ<EFBFBD><C7BA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Amphibian_sorcerer.GCMDS 2 Warrior 42 147 42 378 40 120 45 -55 200 -60 210 0.128257941 1449 21 81 96 46 27 29 0 1.6 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2015 1963 50.375 49.075 1 7 X X X O 20000 2394 0 0 0 1000 80 80 80 140 139 2 20
|
||||
44 ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Carrion.GCMDS 2 Defender 24 75.6 24 201.6 32 1 36 -36 84 -204 354 0.076205556 1449 21 70 85 40 30 27 0 1.2 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2169 1963 54.225 49.075 0.8 7 X X X O 20000 2395 0 0 0 1000 80 80 80 140 139 2 20
|
||||
45 <09>ؼ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_Skeleton_warrior.GCMDS 2 Defender 40 140 24 216 40 1 50 -65 60 -65 215 0.125289215 1632 22 73 88 43 32 29 0 1.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2346 2068 58.65 51.7 1 7 X O X O 20000 2396 0 0 0 1000 80 80 80 140 138 2 20
|
||||
46 <09>ؼ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_Skeleton_warrior.GCMDS 2 Defender 40 140 24 216 40 1 50 -65 60 -65 215 0.125289215 1830 23 77 92 45 33 30 0 1.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2511 2162 62.775 54.05 1 7 X X X O 20000 2397 0 0 0 1000 80 80 80 140 137 2 20
|
||||
47 <09><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><>Ŀ<EFBFBD>̼<EFBFBD> MON_Lizardman.GCMDS 2 Warrior 30 99.75 30 261 60 1 49.5 -40.5 148.5 -72 222 0.121356149 1449 21 81 96 46 27 29 0 2.5 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2015 1963 50.375 49.075 0.9 7 X X X O 20000 2398 0 0 0 1000 80 80 80 140 139 2 20
|
||||
48 <09><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Lizardman.GCMDS 2 Warrior 30 110.25 30 279 60 1 60.5 -49.5 181.5 -88 238 0.113229817 1632 22 87 102 49 28 31 0 2.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2164 2068 54.1 51.7 1.1 7 X O X O 20000 2399 0 0 0 1000 80 80 80 140 138 2 20
|
||||
49 <09><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Lizardman_warrior.GCMDS 2 Defender 32 117.6 24 223.2 45 1 99 -99 132 -88 238 0.113229817 1830 23 77 92 45 33 30 0 1.7 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2511 2162 62.775 54.05 1.1 7 X X X O 20000 2400 0 0 0 1000 80 80 80 140 137 2 20
|
||||
50 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> mon_scorpion.GCMDS 2 Defender 32 84 32 240 35 1 75 -75 65 -90 240 0.112289772 1449 21 70 85 40 30 27 0 1.3 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2169 1963 54.225 49.075 0.5 7 X X X O 20000 2401 0 0 0 1000 80 80 80 140 139 2 20
|
||||
51 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Eloyee.GCMDS 2 Warrior 30 105 30 270 61 1 70 -70 20 -70 220 0.122454513 1632 22 87 102 49 28 31 0 2.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2164 2068 54.1 51.7 1 7 X O X O 20000 2402 0 0 0 1000 80 80 80 140 138 2 20
|
||||
52 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Eloyee.GCMDS 2 Warrior 30 115.5 30 288 61 1 84 -84 24 -84 234 0.115157837 1830 23 90 105 51 30 33 0 2.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2318 2162 57.95 54.05 1.2 7 X X X O 20000 2403 0 0 0 1000 80 80 80 140 137 2 20
|
||||
53 <09><>Ʋ<EFBFBD><C6B2> MON_Labstar.GCMDS 2 Defender 32 100.8 24 201.6 32 1 96 -52 32 -128 278 0.09698692 1449 21 70 85 40 30 27 0 1.2 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2169 1963 54.225 49.075 0.8 7 X X X O 20000 2404 0 0 0 1000 80 80 80 140 139 2 20
|
||||
54 <09><><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Daramji.GCMDS 2 Defender 12 48.3 12 118.8 40 1 19.5 -26 91 -71.5 222 0.121356149 1632 22 73 88 43 32 29 0 1.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2346 2068 58.65 51.7 1.3 7 X O X O 20000 2405 0 0 0 1000 80 80 80 140 138 2 20
|
||||
55 <09>巹<EFBFBD><E5B7B9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Bronji.GCMDS 2 Defender 24 96.6 24 237.6 40 1 19.5 -26 91 -71.5 222 0.121356149 1830 23 77 92 45 33 30 0 1.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2511 2162 62.775 54.05 1.3 7 X X X O 20000 2406 0 0 0 1000 80 80 80 140 137 2 20
|
||||
56 <09>ں<EFBFBD><DABA><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Field.GCMDS 2 Defender 32 112 24 216 40 1 60 -75 110 -90 240 0.112289772 2044 24 79 96 47 35 32 0 1.5 5 0 16 10 0 0 0 0 0 0 0 0 0 0 1 1 2723 2256 68.075 56.4 1 8 X O X O 20000 2407 0 0 0 1000 80 80 80 140 136 2 20
|
||||
57 <09>ں<EFBFBD><DABA><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Field.GCMDS 2 Defender 32 123.2 24 230.4 40 1 72 -90 132 -108 258 0.104481861 2274 25 81 98 47 35 32 0 1.5 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2860 2312 71.5 57.8 1.2 8 X X X O 20000 2408 0 0 0 1000 80 80 80 140 135 2 20
|
||||
58 ų<><C5B3><EFBFBD><EFBFBD>Ʋ MON_Labstar.GCMDS 2 Defender 32 112 24 216 32 1 120 -65 40 -160 310 0.08699909 2044 24 79 96 47 35 32 0 1.2 5 0 16 10 0 0 0 0 0 0 0 0 0 0 1 1 2723 2256 68.075 56.4 1 8 X O X O 20000 2409 0 0 0 1000 80 80 80 140 136 2 20
|
||||
59 ų<><C5B3><EFBFBD><EFBFBD>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> MON_Labstar.GCMDS 2 Defender 32 117.6 24 223.2 32 1 132 -71.5 44 -176 326 0.082738074 2274 25 81 98 47 35 32 0 1.2 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2860 2312 71.5 57.8 1.1 8 X X X O 20000 2410 0 0 0 1000 80 80 80 140 135 2 20
|
||||
60 <09><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20>ξ<EFBFBD> <20><><EFBFBD><EFBFBD> MON_Lizardman_warrior.GCMDS 2 Defender 32 112 24 216 45 1 90 -90 120 -80 230 0.117152517 2044 24 79 96 47 35 32 0 1.7 5 0 16 10 0 0 0 0 0 0 0 0 0 0 1 1 2723 2256 68.075 56.4 1 8 X O X O 20000 2411 0 0 0 1000 80 80 80 140 136 2 20
|
||||
61 <09><>ũ <20><>ī<EFBFBD><C4AB>Ʈ MON_Orc.GCMDS 2 Warrior 32 106.4 24 208.8 40 1 40.5 -45 18 -36 186 0.144710663 2044 24 92 109 53 31 35 0 1.6 5 0 16 10 0 0 0 0 0 0 0 0 0 0 1 1 2498 2256 62.45 56.4 0.9 8 X O X O 20000 2412 0 0 0 1000 80 80 80 140 136 2 20
|
||||
62 <09><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_NightWolf_attacker.GCMDS 2 Warrior 32 112 24 216 40 1 25 -25 35 -150 300 0.089892233 2274 25 95 112 54 32 35 0 1.6 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2621 2312 65.525 57.8 1 8 X X X O 20000 2413 0 0 0 1000 80 80 80 140 135 2 20
|
||||
63 <09><>Ƽ<EFBFBD><C6BC> MON_Skeleton.GCMDS 2 Warrior 29 116.15 30 297 36 1 45.5 -65 32.5 -84.5 235 0.114669715 2274 25 95 112 54 32 35 0 1.5 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2621 2312 65.525 57.8 1.3 8 X X X O 20000 2414 0 0 0 1000 80 80 80 140 135 2 20
|
||||
64 ij<><C4B3><EFBFBD><EFBFBD> ũ<>ѷ<EFBFBD> MON_Carrion.GCMDS 2 Defender 24 84 24 216 32 1 45 -45 105 -255 405 0.066622823 2520 26 84 101 50 37 35 0 1.2 5 0 17 11 0 0 0 0 0 0 0 0 0 0 1 1 3067 2407 76.675 60.175 1 8 X O X O 20000 2415 0 0 0 1000 80 80 80 140 134 2 20
|
||||
65 <09>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Beholder.GCMDS 2 Defender 32 112 24 216 40 1 95 -120 115 -120 270 0.099852246 2784 27 88 105 52 38 36 0 1.5 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 3259 2501 81.475 62.525 1 9 X X X O 20000 2416 0 0 0 1000 80 80 80 140 133 2 20
|
||||
66 <09>ں<EFBFBD><DABA><EFBFBD> <20>Ӽųʸ<C5B3> MON_Field.GCMDS 2 Defender 32 117.6 24 223.2 40 1 66 -82.5 121 -99 249 0.108245443 2520 26 84 101 50 37 35 0 1.5 5 0 17 11 0 0 0 0 0 0 0 0 0 0 1 1 3067 2407 76.675 60.175 1.1 8 X O X O 20000 2417 0 0 0 1000 80 80 80 140 134 2 20
|
||||
67 ų<><C5B3><EFBFBD><EFBFBD>Ʋ <20>ε<EFBFBD> MON_Labstar.GCMDS 2 Defender 32 128.8 24 237.6 32 1 156 -84.5 52 -208 358 0.075355537 2784 27 88 105 52 38 36 0 1.2 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 3259 2501 81.475 62.525 1.3 9 X X X O 20000 2418 0 0 0 1000 80 80 80 140 133 2 20
|
||||
68 <09>̹<EFBFBD> mon_mimic.GCMDS 2 Defender 12 42 12 108 35 1 25 -25 15 -10 160 0.168043444 2784 27 88 105 52 38 36 0 1.3 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 3259 2501 81.475 62.525 1 9 X X X O 20000 2419 0 0 0 1000 80 80 80 140 133 2 20
|
||||
69 Ʈ<><C6AE><EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD> MON_SsangNom.GCMDS 2 Defender 32 100.8 24 201.6 40 1 84 -120 52 -128 278 0.09698692 2274 25 81 98 47 35 32 0 1.5 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2860 2312 71.5 57.8 0.8 8 X X X O 20000 2420 0 0 0 1000 80 80 80 140 135 2 20
|
||||
70 Ʈ<><C6AE><EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD> MON_Tribal_warrior.GCMDS 2 Warrior 32 112 24 216 42 1 80 -130 55 -130 280 0.096296065 2520 26 98 115 57 33 37 0 1.7 5 0 17 11 0 0 0 0 0 0 0 0 0 0 1 1 2793 2407 69.825 60.175 1 8 X O X O 20000 2421 0 0 0 1000 80 80 80 140 134 2 20
|
||||
71 Ʈ<><C6AE><EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD> MON_SsangNom.GCMDS 2 Defender 32 112 24 216 40 1 105 -150 65 -160 310 0.08699909 2784 27 88 105 52 38 36 0 1.5 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 3259 2501 81.475 62.525 1 9 X X X O 20000 2422 0 0 0 1000 80 80 80 140 133 2 20
|
||||
72 <09><>ũ <20><><EFBFBD><EFBFBD> MON_Orc_defender.GCMDS 2 Defender 32 112 24 216 40 1 60 -50 25 -130 280 0.096296065 2784 27 88 105 52 38 36 0 1.5 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 3259 2501 81.475 62.525 1 9 X X X O 20000 2423 0 0 0 1000 80 80 80 140 133 2 20
|
||||
73 <09><>ŷ <20><><EFBFBD><EFBFBD> MON_Skeleton.GCMDS 2 Warrior 29 106.05 30 279 36 1 38.5 -55 27.5 -71.5 222 0.121356149 3065 28 104 123 61 36 40 0 1.5 5 0 19 11 0 0 0 0 0 0 0 0 0 0 1 1 3178 2610 79.45 65.25 1.1 9 X O X O 20000 2424 0 0 0 1000 80 80 80 140 132 2 20
|
||||
74 <09>ؼ<EFBFBD>Ʈ <20>ξ<EFBFBD> <20><><EFBFBD><EFBFBD> MON_Skeleton_warrior.GCMDS 2 Defender 40 147 24 223.2 40 1 55 -71.5 66 -71.5 222 0.121356149 3365 29 90 109 54 41 38 0 1.5 5 0 19 12 0 0 0 0 0 0 0 0 0 0 1 1 3669 2655 91.725 66.375 1.1 9 X X X O 20000 2425 0 0 0 1000 80 80 80 140 131 2 20
|
||||
75 <09>ں<EFBFBD><DABA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Field.GCMDS 2 Defender 32 128.8 24 237.6 40 1 78 -97.5 143 -117 267 0.100970814 3065 28 88 107 53 40 37 0 1.5 5 0 19 11 0 0 0 0 0 0 0 0 0 0 1 1 3508 2610 87.7 65.25 1.3 9 X O X O 20000 2426 0 0 0 1000 80 80 80 140 132 2 20
|
||||
76 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Gorgon_Female.GCMDS 2 Warrior 33 103.5 15 126 30 1 68 -68 88 -184 334 0.080760198 3365 29 106 125 61 36 40 0 1.2 5 0 19 12 0 0 0 0 0 0 0 0 0 0 1 1 3323 2655 83.075 66.375 0.8 9 X X X O 20000 2427 0 0 0 1000 80 80 80 140 131 2 20
|
||||
77 Ʈ<><C6AE><EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Tribal_warrior.GCMDS 2 Warrior 32 112 24 216 42 1 80 -130 55 -130 280 0.096296065 3065 28 104 123 61 36 40 0 1.7 5 0 19 11 0 0 0 0 0 0 0 0 0 0 1 1 3178 2610 79.45 65.25 1 9 X O X O 20000 2428 0 0 0 1000 80 80 80 140 132 2 20
|
||||
78 Ʈ<><C6AE><EFBFBD>̹<EFBFBD> è<>ǿ<EFBFBD> MON_SsangNom.GCMDS 2 Defender 32 112 24 216 40 1 105 -150 65 -160 310 0.08699909 3365 29 90 109 54 41 38 0 1.5 5 0 19 12 0 0 0 0 0 0 0 0 0 0 1 1 3669 2655 91.725 66.375 1 9 X X X O 20000 2429 0 0 0 1000 80 80 80 140 131 2 20
|
||||
79 <09><>ũ <20><><EFBFBD><EFBFBD> MON_Orc.GCMDS 2 Warrior 32 117.6 24 223.2 40 1 49.5 -55 22 -44 194 0.138777932 3065 28 104 123 61 36 40 0 1.6 5 0 19 11 0 0 0 0 0 0 0 0 0 0 1 1 3178 2610 79.45 65.25 1.1 9 X O X O 20000 2430 0 0 0 1000 80 80 80 140 132 2 20
|
||||
80 <09><>ũ <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_Orc_defender.GCMDS 2 Defender 32 117.6 24 223.2 40 1 66 -55 27.5 -143 293 0.092034505 3365 29 90 109 54 41 38 0 1.5 5 0 19 12 0 0 0 0 0 0 0 0 0 0 1 1 3669 2655 91.725 66.375 1.1 9 X X X O 20000 2431 0 0 0 1000 80 80 80 140 131 2 20
|
||||
81 <09><><EFBFBD><EFBFBD> MON_Golem.GCMDS 2 Defender 30 99.75 30 261 30 1 85.5 -85.5 0 -148.5 299 0.090192153 3685 30 93 112 56 42 40 0 1.1 6 0 20 12 0 0 0 0 0 0 0 0 0 0 1 1 3910 2750 97.75 68.75 0.9 10 X O X O 20000 2432 0 0 0 1000 80 80 80 140 130 2 20
|
||||
82 <09><><EFBFBD><EFBFBD> mon_sloter.GCMDS 2 Defender 32 100.8 24 201.6 35 1 56 -56 20 -100 250 0.107813954 4024 31 97 116 59 44 42 0 1.3 6 0 21 12 0 0 0 0 0 0 0 0 0 0 1 1 4131 2860 103.275 71.5 0.8 10 X O X O 20000 2433 0 0 0 1000 80 80 80 140 129 2 20
|
||||
83 Ʈ<><C6AE> <20>Ӽųʸ<C5B3> MON_Troll.GCMDS 2 Defender 40 126 40 336 40 1 60 -52 40 -60 210 0.128257941 3685 30 93 112 56 42 40 0 1.5 6 0 20 12 0 0 0 0 0 0 0 0 0 0 1 1 3910 2750 97.75 68.75 0.8 10 X O X O 20000 2434 0 0 0 1000 80 80 80 140 130 2 20
|
||||
84 <09><>ũ <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_Orc.GCMDS 2 Warrior 32 123.2 24 230.4 40 1 54 -60 24 -48 198 0.135989831 4024 31 115 134 67 39 45 0 1.6 6 0 21 12 0 0 0 0 0 0 0 0 0 0 1 1 3720 2860 93 71.5 1.2 10 X O X O 20000 2435 0 0 0 1000 80 80 80 140 129 2 20
|
||||
85 Ʈ<><C6AE><EFBFBD>ε<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_NightWolf.GCMDS 2 Defender 32 112 24 216 40 1 25 -25 35 -150 300 0.089892233 4382 32 99 120 60 46 43 0 1.5 6 0 21 13 0 0 0 0 0 0 0 0 0 0 1 1 4419 2956 110.475 73.9 1 10 X O X O 20000 2436 0 0 0 1000 80 80 80 140 128 2 20
|
||||
86 <09><>ũ <20><>ġ<EFBFBD><C4A1> MON_Orc_defender.GCMDS 2 Defender 32 123.2 24 230.4 40 1 72 -60 30 -156 306 0.088133734 4698 33 101 122 61 46 44 0 1.5 6 0 22 13 0 0 0 0 0 0 0 0 0 0 1 1 4607 3001 115.175 75.025 1.2 11 X X X O 20000 2437 0 0 0 1000 80 80 80 140 127 2 20
|
||||
87 <09>ؼ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> MON_Skeleton.GCMDS 2 Warrior 29 111.1 30 288 36 1 42 -60 30 -78 228 0.118175941 4024 31 115 134 67 39 45 0 1.5 6 0 21 12 0 0 0 0 0 0 0 0 0 0 1 1 3720 2860 93 71.5 1.2 10 X O X O 20000 2438 0 0 0 1000 80 80 80 140 129 2 20
|
||||
88 <09>ؼ<EFBFBD>Ʈ <20><><EFBFBD>ʷ<EFBFBD> MON_Skeleton_warrior.GCMDS 2 Defender 40 154 24 230.4 40 1 60 -78 72 -78 228 0.118175941 4382 32 99 120 60 46 43 0 1.5 6 0 21 13 0 0 0 0 0 0 0 0 0 0 1 1 4419 2956 110.475 73.9 1.2 10 X O X O 20000 2439 0 0 0 1000 80 80 80 140 128 2 20
|
||||
89 <09><><EFBFBD><EFBFBD> <20>ݷ<EFBFBD> MON_Beholder.GCMDS 2 Defender 32 112 24 216 40 1 95 -120 115 -120 270 0.099852246 4698 33 101 122 61 46 44 0 1.5 6 0 22 13 0 0 0 0 0 0 0 0 0 0 1 1 4607 3001 115.175 75.025 1 11 X X X O 20000 2440 0 0 0 1000 80 80 80 140 127 2 20
|
||||
90 Ʈ<><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Troll.GCMDS 2 Defender 40 140 40 360 40 1 75 -65 50 -75 225 0.119744979 4935 34 104 125 63 48 46 0 1.5 6 0 23 14 0 0 0 0 0 0 0 0 0 0 1 1 4884 3114 122.1 77.85 1 11 X O X O 20000 2441 0 0 0 1000 80 80 80 140 126 2 20
|
||||
91 Ʈ<><C6AE> <20><><EFBFBD><EFBFBD> MON_Troll_warrior.GCMDS 2 Warrior 40 140 40 360 40 1 100 -80 65 -85 235 0.114669715 5177 35 126 147 74 44 51 0 1.6 6 0 23 14 0 0 0 0 0 0 0 0 0 0 1 1 4575 3210 114.375 80.25 1 11 X O X O 20000 2442 0 0 0 1000 80 80 80 140 125 2 20
|
||||
92 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Golem.GCMDS 2 Defender 30 110.25 30 279 30 1 104.5 -104.5 0 -181.5 332 0.081245757 4935 34 104 125 63 48 46 0 1.1 6 0 23 14 0 0 0 0 0 0 0 0 0 0 1 1 4884 3114 122.1 77.85 1.1 11 X O X O 20000 2443 0 0 0 1000 80 80 80 140 126 2 20
|
||||
93 <09><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD>Ʈ MON_Golem.GCMDS 2 Defender 30 126 30 306 30 1 133 -133 0 -231 381 0.070813488 5177 35 108 129 66 49 48 0 1.1 6 0 23 14 0 0 0 0 0 0 0 0 0 0 1 1 5135 3210 128.375 80.25 1.4 11 X O X O 20000 2444 0 0 0 1000 80 80 80 140 125 2 20
|
||||
94 <09><><EFBFBD>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ŀ MON_Wolf_attacker.GCMDS 2 Warrior 32 140 24 252 40 1 30 -30 67.5 -210 360 0.074937594 5425 36 128 151 76 45 52 0 1.6 6 0 24 15 0 0 0 0 0 0 0 0 0 0 1 1 4845 3306 121.125 82.65 1.5 12 X X X O 20000 2445 0 0 0 1000 80 80 80 140 124 2 20
|
||||
95 <09><><EFBFBD>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Wolf.GCMDS 2 Defender 32 140 24 252 40 1 30 -30 67.5 -217.5 368 0.073311137 5679 37 110 133 67 51 49 0 1.5 6 0 25 15 0 0 0 0 0 0 0 0 0 0 1 1 5682 3370 142.05 84.25 1.5 12 X O X O 20000 2446 0 0 0 1000 80 80 80 140 123 2 20
|
||||
96 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_sloter.GCMDS 2 Defender 32 106.4 24 208.8 35 1 63 -63 22.5 -112.5 263 0.102501751 5679 37 110 133 67 51 49 0 1.3 6 0 25 15 0 0 0 0 0 0 0 0 0 0 1 1 5682 3370 142.05 84.25 0.9 12 X O X O 20000 2447 0 0 0 1000 80 80 80 140 123 2 20
|
||||
97 <09><><EFBFBD>̾<EFBFBD>Ʈ Ʈ<><C6AE> MON_Troll.GCMDS 2 Defender 40 161 40 396 40 1 97.5 -84.5 65 -97.5 248 0.108680394 5938 38 113 136 70 53 51 0 1.5 6 0 25 16 0 0 0 0 0 0 0 0 0 0 1 1 5996 3467 149.9 86.675 1.3 12 X O X O 20000 2448 0 0 0 1000 80 80 80 140 122 2 20
|
||||
98 <09><><EFBFBD>̾<EFBFBD>Ʈ Ʈ<><C6AE> ġ<><C4A1> MON_Troll_warrior.GCMDS 2 Warrior 40 161 40 396 40 1 130 -104 84.5 -110.5 261 0.103284734 6203 39 139 162 82 48 56 0 1.6 6 0 26 16 0 0 0 0 0 0 0 0 0 0 1 1 5540 3563 138.5 89.075 1.3 13 X X X O 20000 2449 0 0 0 1000 80 80 80 140 121 2 20
|
||||
99 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> MON_Gorgon.GCMDS 2 Defender 33 115 15 135 30 1 85 -85 110 -230 380 0.070999561 6203 39 117 140 72 54 52 0 1.1 6 0 26 16 0 0 0 0 0 0 0 0 0 0 1 1 6279 3563 156.975 89.075 1 13 X X X O 20000 2450 0 0 0 1000 80 80 80 140 121 2 20
|
||||
100 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD><C7B8><EFBFBD> MON_Gorgon_Female.GCMDS 2 Warrior 33 126.5 15 144 30 1 102 -102 132 -276 426 0.063342603 6474 40 142 167 85 50 58 0 1.2 6 0 27 16 0 0 0 0 0 0 0 0 0 0 1 1 5845 3680 146.125 92 1.2 13 X O X O 20000 2451 0 0 0 1000 80 80 80 140 120 2 20
|
||||
101 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MON_Gorgon.GCMDS 2 Defender 33 126.5 15 144 30 1 102 -102 132 -276 426 0.063342603 6750 41 121 146 74 57 54 0 1.1 6 0 27 17 0 0 0 0 0 0 0 0 0 0 1 1 6903 3727 172.575 93.175 1.2 13 X O X O 30000 2452 0 0 0 1000 80 80 80 140 119 2 20
|
||||
102 <09><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD> MON_Skeleton.GCMDS 2 Warrior 29 116.15 30 297 36 1 45.5 -65 32.5 -84.5 235 0.114669715 6203 39 139 162 82 48 56 0 1.5 6 0 26 16 0 0 0 0 0 0 0 0 0 0 1 1 5540 3563 138.5 89.075 1.3 13 X X X O 20000 2453 0 0 0 1000 80 80 80 140 121 2 20
|
||||
103 <09><><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC> MON_Skeleton_warrior.GCMDS 2 Defender 40 161 24 237.6 40 1 65 -84.5 78 -84.5 235 0.114669715 6474 40 119 144 74 56 54 0 1.5 6 0 27 16 0 0 0 0 0 0 0 0 0 0 1 1 6656 3680 166.4 92 1.3 13 X O X O 20000 2454 0 0 0 1000 80 80 80 140 120 2 20
|
||||
104 <09><>ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Yang.GCMDS 2 Defender 56 215.9 56 228.6 50 1 189 -112 122.5 -105 255 0.105707017 6750 41 121 146 74 57 54 0 1.9 6 0 27 17 0 0 0 0 0 0 0 0 0 0 1 1 6903 3727 172.575 93.175 0.7 13 X O X O 30000 2455 0 0 0 1000 80 80 80 140 119 2 20
|
||||
105 <09><><EFBFBD><EFBFBD> <20><> MON_Bat.GCMDS 2 Warrior 15 46.8 15 126 24 1 24 -24 0 -64 164 0.163977801 15 1 17 22 2 3 0 0 0.5 4 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 186 340 4.65 8.5 0.8 0 X X X O 15000 2456 0 0 0 1000 80 80 80 140 159 2 20
|
||||
106 <09><><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2> mon_rockturtle.GCMDS 2 Defender 40 112 24 187.2 40 1 78 -78 54 -42 142 0.189132143 17 2 21 26 6 5 2 0 0.8 4 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 245 431 6.125 10.775 0.6 0 X X X O 15000 2457 0 0 0 1000 80 80 80 140 158 2 20
|
||||
107 <09><> <20><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> mon_scorpion.GCMDS 2 Defender 32 89.6 32 249.6 35 1 90 -90 78 -108 208 0.129485101 34 4 25 32 11 8 4 0 0.8 4 0 3 1 0 0 0 0 0 0 0 0 0 0 1 1 374 614 9.35 15.35 0.6 1 X X X O 15000 2458 0 0 0 1000 80 80 80 140 156 2 20
|
||||
108 <09><><EFBFBD><EFBFBD> <20><> MON_Skullbat.GCMDS 2 Warrior 33 115 33 297 42 1 85 -135 90 -35 135 0.198827298 49 5 28 35 13 8 5 0 1.1 4 0 3 2 0 0 0 0 0 0 0 0 0 0 1 1 414 655 10.35 16.375 1 1 X X X O 15000 2459 0 0 0 1000 80 80 80 140 155 2 20
|
||||
109 <09><><EFBFBD>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD>ũ mon_fungus.GCMDS 2 Warrior 30 105 30 270 30 1 40 -50 30 -30 130 0.206380105 69 6 31 38 14 10 6 0 0.9 4 0 4 2 0 0 0 0 0 0 0 0 0 0 1 1 486 746 12.15 18.65 1 2 X X X O 15000 2460 0 0 0 1000 80 80 80 140 154 2 20
|
||||
110 ƼŬ<C6BC><C5AC> MON_Titug.GCMDS 2 Defender 32 89.6 32 249.6 30 1 57 -57 48 -60 160 0.168043444 95 7 34 41 17 11 8 0 0.8 4 0 5 2 0 0 0 0 0 0 0 0 0 0 1 1 568 840 14.2 21 0.6 2 X X X O 15000 2461 0 0 0 1000 80 80 80 140 153 2 20
|
||||
111 <09><> <20><>Ʋ mon_rockturtle.GCMDS 2 Defender 40 126 24 201.6 40 1 104 -104 72 -56 156 0.172314908 128 8 34 43 18 13 9 0 1.2 4 0 5 3 0 0 0 0 0 0 0 0 0 0 1 1 655 932 16.375 23.3 0.8 2 X X X O 15000 2462 0 0 0 1000 80 80 80 140 152 2 20
|
||||
112 <09><>Ʈ<EFBFBD><C6AE><EFBFBD>̵鸵 mon_unmon.GCMDS 2 Warrior 20 70 20 180 24 1 25 -25 40 -40 140 0.191804878 168 9 37 46 19 13 9 0 0.9 4 0 6 3 0 0 0 0 0 0 0 0 0 0 1 1 709 973 17.725 24.325 1 3 X X X O 15000 2463 0 0 0 1000 80 80 80 140 151 2 20
|
||||
113 <09><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD>̴<EFBFBD> mon_unmon.GCMDS 2 Warrior 20 105 20 240 24 1 50 -50 80 -80 230 0.117152517 263 10 49 58 25 14 13 0 1 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 793 1070 19.825 26.75 2 3 X X X O 15000 2464 0 0 0 1000 80 80 80 140 150 2 20
|
||||
114 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_curumin.GCMDS 2 Warrior 32 106.4 24 208.8 30 1 54 -45 67.5 -81 231 0.116647409 319 11 52 61 27 16 15 0 1.2 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 887 1162 22.175 29.05 0.9 3 X X X O 20000 2465 0 0 0 1000 80 80 80 140 149 2 20
|
||||
115 <09><>Ű<EFBFBD><C5B0> mon_rockturtle.GCMDS 2 Defender 40 140 24 216 40 1 130 -130 90 -70 220 0.122454513 319 11 48 57 25 17 14 0 1.5 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 917 1162 22.925 29.05 1 3 X X X O 20000 2466 0 0 0 1000 80 80 80 140 149 2 20
|
||||
116 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD> mon_venom.GCMDS 2 Defender 32 112 24 216 40 1 40 -40 170 -80 230 0.117152517 382 12 48 59 26 19 15 0 1.5 4 0 8 5 0 0 0 0 0 0 0 0 0 0 1 1 1035 1254 25.875 31.35 1 4 X O X O 20000 2467 0 0 0 1000 80 80 80 140 148 2 20
|
||||
117 <09><><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD><D9BF> mon_unmon.GCMDS 2 Warrior 20 122.5 20 270 24 1 62.5 -62.5 100 -100 250 0.107813954 456 13 57 68 30 18 17 0 1 4 0 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1062 1302 26.55 32.55 2.5 4 X X X O 20000 2468 0 0 0 1000 80 80 80 140 147 2 20
|
||||
118 <09><> <20><>Ŭ<EFBFBD><C5AC> mon_un.GCMDS 2 Defender 32 100.8 16 134.4 30 1 48 -48 72 -56 156 0.172314908 168 9 37 46 19 13 9 0 1 4 0 6 3 0 0 0 0 0 0 0 0 0 0 1 1 709 973 17.725 24.325 0.8 3 X X X O 15000 2469 0 0 0 1000 80 80 80 140 151 2 20
|
||||
119 <09><> <20><>Ŭ mon_un.GCMDS 2 Defender 32 112 16 144 30 1 60 -60 90 -70 220 0.122454513 263 10 44 53 23 16 13 0 1.1 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 820 1070 20.5 26.75 1 3 X X X O 15000 2470 0 0 0 1000 80 80 80 140 150 2 20
|
||||
120 <09><><EFBFBD><EFBFBD> <20><>Ŭ<EFBFBD><C5AC> mon_un.GCMDS 2 Defender 32 100.8 16 134.4 30 1 48 -48 72 -56 156 0.172314908 168 9 37 46 19 13 9 0 1 4 0 6 3 0 0 0 0 0 0 0 0 0 0 1 1 709 973 17.725 24.325 0.8 3 X X X O 15000 2471 0 0 0 1000 80 80 80 140 151 2 20
|
||||
121 <09><><EFBFBD><EFBFBD> <20><>Ŭ mon_un.GCMDS 2 Defender 32 112 16 144 30 1 60 -60 90 -70 220 0.122454513 263 10 44 53 23 16 13 0 1.1 4 0 7 4 0 0 0 0 0 0 0 0 0 0 1 1 820 1070 20.5 26.75 1 3 X X X O 15000 2472 0 0 0 1000 80 80 80 140 150 2 20
|
||||
122 <09><>ī<EFBFBD><C4AB>Ʈ mon_rockturtle.GCMDS 2 Defender 40 147 24 223.2 40 1 143 -143 99 -77 227 0.118694375 456 13 50 61 27 19 16 0 1.5 4 0 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1108 1302 27.7 32.55 1.1 4 X X X O 20000 2473 0 0 0 1000 80 80 80 140 147 2 20
|
||||
123 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_fungus.GCMDS 2 Warrior 30 120.75 30 297 30 1 52 -65 39 -39 189 0.14242756 456 13 57 68 30 18 17 0 1.2 4 0 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1062 1302 26.55 32.55 1.3 4 X X X O 20000 2474 0 0 0 1000 80 80 80 140 147 2 20
|
||||
124 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ر۷<D8B1> mon_curumin.GCMDS 2 Warrior 32 112 24 216 30 1 60 -50 75 -90 240 0.112289772 540 14 62 73 33 19 19 0 1.2 4 0 9 6 0 0 0 0 0 0 0 0 0 0 1 1 1170 1395 29.25 34.875 1 4 X O X O 20000 2475 0 0 0 1000 80 80 80 140 146 2 20
|
||||
125 <09><><EFBFBD><EFBFBD> <20><>ī<EFBFBD><C4AB>Ʈ mon_querf.GCMDS 2 Defender 32 106.4 24 208.8 35 1 81 -99 31.5 -81 231 0.116647409 634 15 57 68 32 22 20 0 1.3 5 0 10 6 0 0 0 0 0 0 0 0 0 0 1 1 1349 1487 33.725 37.175 0.9 5 X X X O 20000 2476 0 0 0 1000 80 80 80 140 145 2 20
|
||||
126 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_specter.GCMDS 2 Warrior 24 84 24 216 40 1 90 -90 100 -130 280 0.096296065 739 16 68 81 37 22 23 0 1.6 5 0 11 6 0 0 0 0 0 0 0 0 0 0 1 1 1412 1588 35.3 39.7 1 5 X O X O 20000 2477 0 0 0 1000 80 80 80 140 144 2 20
|
||||
127 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_querf.GCMDS 2 Defender 32 112 24 216 35 1 90 -110 35 -90 240 0.112289772 739 16 59 72 33 24 21 0 1.3 5 0 11 6 0 0 0 0 0 0 0 0 0 0 1 1 1496 1588 37.4 39.7 1 5 X O X O 20000 2478 0 0 0 1000 80 80 80 140 144 2 20
|
||||
128 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_agu.gcmds 2 Warrior 32 112 24 216 30 1 85 -85 75 -40 190 0.141682403 855 17 70 83 39 22 24 0 1.2 5 0 11 7 0 0 0 0 0 0 0 0 0 0 1 1 1497 1631 37.425 40.775 1 5 X X X O 20000 2479 0 0 0 1000 80 80 80 140 143 2 20
|
||||
129 <09><><EFBFBD><EFBFBD> ġ<><C4A1> mon_querf.GCMDS 2 Defender 32 117.6 24 223.2 35 1 99 -121 38.5 -99 249 0.108245443 855 17 61 74 34 25 23 0 1.3 5 0 11 7 0 0 0 0 0 0 0 0 0 0 1 1 1588 1631 39.7 40.775 1.1 5 X X X O 20000 2480 0 0 0 1000 80 80 80 140 143 2 20
|
||||
130 <09>ޱ۷<DEB1> mon_agu.gcmds 2 Warrior 32 168 24 288 30 1 170 -170 150 -80 230 0.117152517 1125 19 77 90 43 25 27 0 1.2 5 0 13 7 0 0 0 0 0 0 0 0 0 0 1 1 1758 1826 43.95 45.65 2 6 X X X O 20000 2481 0 0 0 1000 80 80 80 140 141 2 20
|
||||
131 <09><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD><EFBFBD>츣<EFBFBD><ECB8A3> mon_ostrisaur.GCMDS 2 Defender 32 112 24 216 30 1 35 -35 140 -80 230 0.117152517 984 18 64 77 36 26 24 0 1.1 5 0 12 7 0 0 0 0 0 0 0 0 0 0 1 1 1736 1724 43.4 43.1 1 6 X O X O 20000 2482 0 0 0 1000 80 80 80 140 142 2 20
|
||||
132 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĭ mon_a_zombie.gcmds 2 Defender 48 168 48 432 40 1 50 -45 50 -25 175 0.153745049 1280 20 68 83 40 30 27 0 1.5 5 0 13 8 0 0 0 0 0 0 0 0 0 0 1 1 2056 1920 51.4 48 1 6 X O X O 20000 2483 0 0 0 1000 80 80 80 140 140 2 20
|
||||
133 <09><><EFBFBD>ǽ<EFBFBD> mon_spis.gcmds 2 Defender 15 52 15 135 30 1 140 -140 180 -100 250 0.107813954 1280 20 68 83 40 30 27 0 1.1 5 0 13 8 0 0 0 0 0 0 0 0 0 0 1 1 2056 1920 51.4 48 1 6 X O X O 20000 2484 0 0 0 1000 80 80 80 140 140 2 20
|
||||
134 <09><><EFBFBD><EFBFBD> <20><> mon_venom.GCMDS 2 Defender 32 112 24 216 40 1 40 -40 170 -80 230 0.117152517 1449 21 70 85 40 30 27 0 1.5 5 0 14 8 0 0 0 0 0 0 0 0 0 0 1 1 2169 1963 54.225 49.075 1 7 X X X O 20000 2485 0 0 0 1000 80 80 80 140 139 2 20
|
||||
135 <09><><EFBFBD><EFBFBD> <20>巡<EFBFBD><E5B7A1><EFBFBD>ö<EFBFBD><C3B6><EFBFBD> MON_Pawnpawn.GCMDS 2 Defender 24 84 24 216 35 1 75 -60 10 -60 210 0.128257941 1632 22 73 88 43 32 29 0 1.3 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2346 2068 58.65 51.7 1 7 X O X O 20000 2486 0 0 0 1000 80 80 80 140 138 2 20
|
||||
136 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_a_zombie.gcmds 2 Defender 48 184.8 48 460.8 40 1 60 -54 60 -30 180 0.149502979 1632 22 73 88 43 32 29 0 1.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2346 2068 58.65 51.7 1.2 7 X O X O 20000 2487 0 0 0 1000 80 80 80 140 138 2 20
|
||||
137 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_specter.GCMDS 2 Warrior 24 84 24 216 40 1 90 -90 100 -130 280 0.096296065 1830 23 90 105 51 30 33 0 1.6 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2318 2162 57.95 54.05 1 7 X X X O 20000 2488 0 0 0 1000 80 80 80 140 137 2 20
|
||||
138 <09><><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD>Ž<EFBFBD> mon_fungus.GCMDS 2 Warrior 30 131.25 30 315 30 1 60 -75 45 -45 195 0.138070273 1632 22 87 102 49 28 31 0 1.2 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2164 2068 54.1 51.7 1.5 7 X O X O 20000 2489 0 0 0 1000 80 80 80 140 138 2 20
|
||||
139 <09>۷κ<DBB7> mon_globus.GCMDS 2 Defender 40 105 20 150 32 1 70 -60 175 -110 260 0.103680721 1830 23 77 92 45 33 30 0 1.2 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2511 2162 62.775 54.05 0.5 7 X X X O 20000 2490 0 0 0 1000 80 80 80 140 137 2 20
|
||||
140 <09>ڸ<EFBFBD><DAB8>ɹ<EFBFBD><C9B9><EFBFBD> <20><>Ŀ<EFBFBD>̼<EFBFBD> mon_korkebine.GCMDS 2 Defender 32 112 24 216 40 1 55 -75 20 -100 250 0.107813954 2274 25 81 98 47 35 32 0 1.5 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2860 2312 71.5 57.8 1 8 X X X O 20000 2491 0 0 0 1000 80 80 80 140 135 2 20
|
||||
141 <09><><EFBFBD>̰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD> mon_spis.gcmds 2 Defender 15 57.2 15 144 30 1 168 -168 216 -120 270 0.099852246 2044 24 79 96 47 35 32 0 1.1 5 0 16 10 0 0 0 0 0 0 0 0 0 0 1 1 2723 2256 68.075 56.4 1.2 8 X O X O 20000 2492 0 0 0 1000 80 80 80 140 136 2 20
|
||||
142 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_wolfgirl.GCMDS 2 Warrior 32 112 12 156 24 1 60 -80 80 -70 220 0.122454513 2044 24 92 109 53 31 35 0 1 5 0 16 10 0 0 0 0 0 0 0 0 0 0 1 1 2498 2256 62.45 56.4 1 8 X O X O 20000 2493 0 0 0 1000 80 80 80 140 136 2 20
|
||||
143 <09><>Ű<EFBFBD>齺 mon_ceratops.GCMDS 2 Defender 40 105 32 240 40 1 57.5 -57.5 160 -135 285 0.094611177 2274 25 81 98 47 35 32 0 1.5 5 0 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2860 2312 71.5 57.8 0.5 8 X X X O 20000 2494 0 0 0 1000 80 80 80 140 135 2 20
|
||||
144 <09><><EFBFBD><EFBFBD> mon_venom.GCMDS 2 Defender 32 123.2 24 230.4 40 1 48 -48 204 -96 246 0.109560848 1830 23 77 92 45 33 30 0 1.5 5 0 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2511 2162 62.775 54.05 1.2 7 X X X O 20000 2495 0 0 0 1000 80 80 80 140 137 2 20
|
||||
145 <09>ڸ<EFBFBD><DAB8>ɹ<EFBFBD><C9B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_korkebine.GCMDS 2 Defender 32 117.6 24 223.2 40 1 60.5 -82.5 22 -110 260 0.103680721 2520 26 84 101 50 37 35 0 1.5 5 0 17 11 0 0 0 0 0 0 0 0 0 0 1 1 3067 2407 76.675 60.175 1.1 8 X O X O 20000 2496 0 0 0 1000 80 80 80 140 134 2 20
|
||||
146 <09><><EFBFBD>θ<EFBFBD><CEB8>ڵ<EFBFBD> mon_iguanodon.GCMDS 2 Defender 32 95.2 24 194.4 35 1 59.5 -105 189 -126 276 0.097687745 2520 26 84 101 50 37 35 0 1.3 5 0 17 11 0 0 0 0 0 0 0 0 0 0 1 1 3067 2407 76.675 60.175 0.7 8 X O X O 20000 2497 0 0 0 1000 80 80 80 140 134 2 20
|
||||
147 <09>ڹ<EFBFBD> <20><>Ŭ mon_un.GCMDS 2 Defender 32 140 16 168 30 1 90 -90 135 -105 255 0.105707017 2784 27 88 105 52 38 36 0 1.1 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 3259 2501 81.475 62.525 1.5 9 X X X O 20000 2498 0 0 0 1000 80 80 80 140 133 2 20
|
||||
148 <09><>ƽ <20>ں<EFBFBD><DABA><EFBFBD> MON_Field.GCMDS 2 Defender 32 117.6 24 223.2 40 1 66 -82.5 121 -99 249 0.108245443 2520 26 84 101 50 37 35 0 1.5 5 0 17 11 0 0 0 0 0 0 0 0 0 0 1 1 3067 2407 76.675 60.175 1.1 8 X O X O 20000 2499 0 0 0 1000 80 80 80 140 134 2 20
|
||||
149 <09><><EFBFBD>̰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_wolfgirl.GCMDS 2 Warrior 32 128.8 12 171.6 24 1 78 -104 104 -91 241 0.111825567 2784 27 101 118 58 34 38 0 1 5 0 18 11 0 0 0 0 0 0 0 0 0 0 1 1 2970 2501 74.25 62.525 1.3 9 X X X O 20000 2500 0 0 0 1000 80 80 80 140 133 2 20
|
||||
150 <09><> <20>ɶ<EFBFBD><C9B6>齺 mon_ceratops.GCMDS 2 Defender 40 126 32 268.8 40 1 92 -92 256 -216 366 0.073711102 3065 28 88 107 53 40 37 0 1.5 5 0 19 11 0 0 0 0 0 0 0 0 0 0 1 1 3508 2610 87.7 65.25 0.8 9 X O X O 20000 2501 0 0 0 1000 80 80 80 140 132 2 20
|
||||
151 <09>̱<EFBFBD><CCB1>Ƴ<EFBFBD><C6B3><EFBFBD> mon_iguanodon.GCMDS 2 Defender 32 112 24 216 35 1 85 -150 270 -180 330 0.081737184 3365 29 90 109 54 41 38 0 1.3 5 0 19 12 0 0 0 0 0 0 0 0 0 0 1 1 3669 2655 91.725 66.375 1 9 X X X O 20000 2502 0 0 0 1000 80 80 80 140 131 2 20
|
||||
152 <09>ɶ<EFBFBD><C9B6>齺 mon_ceratops.GCMDS 2 Defender 40 140 32 288 40 1 115 -115 320 -270 420 0.064246399 3685 30 93 112 56 42 40 0 1.5 6 0 20 12 0 0 0 0 0 0 0 0 0 0 1 1 3910 2750 97.75 68.75 1 10 X O X O 20000 2503 0 0 0 1000 80 80 80 140 130 2 20
|
||||
153 <09><>ü<EFBFBD><C3BC> mon_head.GCMDS 2 Defender 30 105 30 270 35 1 60 60 45 -55 205 0.1313704 4024 31 97 116 59 44 42 0 1.3 6 0 21 12 0 0 0 0 0 0 0 0 0 0 1 1 4131 2860 103.275 71.5 1 10 X O X O 20000 2504 0 0 0 1000 80 80 80 140 129 2 20
|
||||
154 <09><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_Nightwolf.GCMDS 2 Defender 32 140 24 252 40 1 37.5 -37.5 52.5 -225 375 0.07194478 3685 30 93 112 56 42 40 0 1.5 6 0 20 12 0 0 0 0 0 0 0 0 0 0 1 1 3910 2750 97.75 68.75 1.5 10 X O X O 20000 2505 0 0 0 1000 80 80 80 140 130 2 20
|
||||
155 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_wolfgirl.GCMDS 2 Warrior 32 134.4 12 176.8 24 1 84 -112 112 -98 248 0.108680394 4024 31 115 134 67 39 45 0 1 6 0 21 12 0 0 0 0 0 0 0 0 0 0 1 1 3720 2860 93 71.5 1.4 10 X O X O 20000 2506 0 0 0 1000 80 80 80 140 129 2 20
|
||||
156 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> mon_scorpion.GCMDS 2 Defender 32 112 32 288 35 1 150 -150 130 -180 330 0.081737184 4698 33 101 122 61 46 44 0 1.3 6 0 22 13 0 0 0 0 0 0 0 0 0 0 1 1 4607 3001 115.175 75.025 1 11 X X X O 20000 2507 0 0 0 1000 80 80 80 140 127 2 20
|
||||
157 <09><><EFBFBD><EFBFBD> mon_gorep.gcmds 2 Defender 32 171.2 20 276 40 1 91 -88.9 59.5 -142.8 293 0.092034505 4935 34 104 125 63 48 46 0 1.5 6 0 23 14 0 0 0 0 0 0 0 0 0 0 1 1 4884 3114 122.1 77.85 0.07 11 X O X O 20000 2508 0 0 0 1000 80 80 80 140 126 2 20
|
||||
158 <09>ҷ<EFBFBD>Ʈ mon_bullent.GCMDS 2 Defender 32 112 16 144 35 1 95 -95 250 -140 290 0.092984162 5177 35 108 129 66 49 48 0 1.3 6 0 23 14 0 0 0 0 0 0 0 0 0 0 1 1 5135 3210 128.375 80.25 1 11 X O X O 20000 2509 0 0 0 1000 80 80 80 140 125 2 20
|
||||
159 <09>θ<EFBFBD>Ʈ mon_gorep.gcmds 2 Defender 32 174.4 20 278.6666667 40 1 117 -114.3 76.5 -183.6 334 0.080760198 5679 37 110 133 67 51 49 0 1.5 6 0 25 15 0 0 0 0 0 0 0 0 0 0 1 1 5682 3370 142.05 84.25 0.09 12 X O X O 20000 2510 0 0 0 1000 80 80 80 140 123 2 20
|
||||
160 <09><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> mon_scorpion.GCMDS 2 Defender 32 134.4 32 326.4 35 1 210 -210 182 -252 402 0.067119347 5425 36 108 131 67 51 49 0 1.3 6 0 24 15 0 0 0 0 0 0 0 0 0 0 1 1 5465 3306 136.625 82.65 1.4 12 X X X O 20000 2511 0 0 0 1000 80 80 80 140 124 2 20
|
||||
161 <09><><EFBFBD><EFBFBD> mon_dante.gcmds 2 Defender 32 112 24 216 40 1 160 -180 195 -210 360 0.074937594 5938 38 113 136 70 53 51 0 1.5 6 0 25 16 0 0 0 0 0 0 0 0 0 0 1 1 5996 3467 149.9 86.675 1 12 X O X O 20000 2512 0 0 0 1000 80 80 80 140 122 2 20
|
||||
162 <09>콺 mon_bullent.GCMDS 2 Defender 32 112 16 144 35 1 95 -95 250 -140 290 0.092984162 6203 39 117 140 72 54 52 0 1.3 6 0 26 16 0 0 0 0 0 0 0 0 0 0 1 1 6279 3563 156.975 89.075 1 13 X X X O 20000 2513 0 0 0 1000 80 80 80 140 121 2 20
|
||||
163 <09>ؼ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> MON_Golem.GCMDS 2 Defender 30 131.25 30 315 30 1 142.5 -142.5 0 -247.5 398 0.067793 6474 40 119 144 74 56 54 0 1.1 6 0 27 16 0 0 0 0 0 0 0 0 0 0 1 1 6656 3680 166.4 92 1.5 13 X O X O 20000 2514 0 0 0 1000 80 80 80 140 120 2 20
|
||||
164 Ÿ<><C5B8>Ÿ<EFBFBD><C5B8> mon_titano.GCMDS 2 BG 80 560 80 560 1 1 270 -270 730 -410 560 0.048197692 1294 40 119 144 74 76 54 0 0 6 0 66 56 0 0 0 0 0 0 0 0 0 0 1 1 13312 3680 332.8 92 1 13 X O X O 20000 2515 0 0 0 1000 80 80 80 140 120 2 20
|
||||
165 Ʈ<><C6AE> Ʈ<><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Troll.GCMDS 2 Defender 40 175 40 420 40 1 112.5 -97.5 75 -112.5 263 0.102501751 4382 32 99 120 60 46 43 0 1.5 6 0 21 13 0 0 0 0 0 0 0 0 0 0 1 1 4419 2956 110.475 73.9 1.5 10 X O X O 20000 2516 0 0 0 1000 80 80 80 140 128 2 20
|
||||
166 <09><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> <20><>ġ<EFBFBD><C4A1> MON_LizardmanLeader.GCMDS 2 Boss 32 173.6 24 295.2 40 1 115.5 -220.5 241.5 -252 804 0.067152961 79130 45 130 157 81 84 57 0 3.8 7 0 74 62 0 0 0 0 0 0 0 0 0 0 1 1 14610 4087 365.25 102.175 2.1 15 X X X O 1800000 2517 0 0 0 0 80 80 80 140 115 2 20
|
||||
167 <09><><EFBFBD>̷<EFBFBD>Ż <20>ε<EFBFBD> MON_AncientGuard_warrior.GCMDS 2 Boss 35 183 24 288 50 1 210 -140 130 -200 700 0.077125861 190710 74 204 245 131 138 94 0 4.8 8 0 121 103 0 0 0 0 0 0 0 0 0 0 1 1 31260 6935 781.5 173.375 2 24 X O X O 1800000 2518 0 0 0 0 80 80 80 140 86 2 20
|
||||
168 <09>Թ<EFBFBD><D4B9><EFBFBD> mon_nymbus.gcmds 2 Boss 40 175 40 420 40 1 232.5 -232.5 187.5 -255 810 0.066655696 79130 45 130 157 81 84 57 0 3.8 7 0 74 62 0 0 0 0 0 0 0 0 0 0 1 1 14610 4087 365.25 102.175 1.5 15 X X X O 1800000 2519 0 0 0 0 80 80 80 140 115 2 20
|
||||
169 <09><><EFBFBD><EFBFBD>ư MON_Omurten.GCMDS 2 Boss 56 317.5 56 296.3333333 55 1 202.5 -217.5 420 -345 990 0.054539445 190710 74 204 245 131 138 94 0 5.2 8 0 121 103 0 0 0 0 0 0 0 0 0 0 1 1 31260 6935 781.5 173.375 1.5 24 X O X O 1800000 2520 0 0 0 0 80 80 80 140 86 2 20
|
||||
170 <09><><EFBFBD>̳<EFBFBD> <20><><EFBFBD><EFBFBD> MON_Wolf_attacker.GCMDS 2 Warrior 32 128.8 24 237.6 40 1 26 -26 58.5 -182 332 0.081245757 6203 39 139 162 82 48 56 0 1.6 6 0 26 16 0 0 0 0 0 0 0 0 0 0 1 1 5540 3563 138.5 89.075 1.3 13 X X X O 20000 2521 0 0 0 1000 80 80 80 140 121 2 20
|
||||
171 <09><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>ũ mon_tren.GCMDS 2 Defender 56 147 56 420 40 1 150 -125 175 -95 245 0.110006437 6474 40 119 144 74 56 54 0 1.5 6 0 27 16 0 0 0 0 0 0 0 0 0 0 1 1 6656 3680 166.4 92 0.5 13 X O X O 20000 2522 0 0 0 1000 80 80 80 140 120 2 20
|
||||
172 <09><><EFBFBD>̳<EFBFBD> Ÿ<>̰<EFBFBD> mon_tizer.GCMDS 2 Warrior 36 119.7 24 208.8 24 1 72 -72 117 -198 348 0.077517127 6750 41 144 169 85 50 58 0 1 6 0 27 17 0 0 0 0 0 0 0 0 0 0 1 1 6062 3727 151.55 93.175 0.9 13 X O X O 30000 2523 0 0 0 1000 80 80 80 140 119 2 20
|
||||
173 <09><>ũ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Dark_warrior.GCMDS 2 Warrior 32 112 24 216 30 1 60 -80 55 -115 265 0.101730532 7032 42 147 172 88 52 60 0 1.2 6 0 28 17 0 0 0 0 0 0 0 0 0 0 1 1 6339 3824 158.475 95.6 1 14 X X X O 30000 2524 0 0 0 1000 80 80 80 140 118 2 20
|
||||
174 <09><>ũ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Dark_defender.GCMDS 2 Defender 32 112 24 216 40 1 70 -80 70 -145 295 0.091412092 7320 43 128 153 79 60 58 0 1.5 6 0 29 17 0 0 0 0 0 0 0 0 0 0 1 1 7575 3942 189.375 98.55 1 14 X O X O 30000 2525 0 0 0 1000 80 80 80 140 117 2 20
|
||||
175 <09><><EFBFBD>̹<EFBFBD><CCB9><EFBFBD><EFBFBD><EFBFBD> Ÿ<>̰<EFBFBD> mon_tizer.GCMDS 2 Warrior 36 132.3 24 223.2 24 1 88 -88 143 -242 392 0.068829203 7614 44 153 180 92 55 63 0 1 6 0 29 18 0 0 0 0 0 0 0 0 0 0 1 1 6964 4040 174.1 101 1.1 14 X O X O 30000 2526 0 0 0 1000 80 80 80 140 116 2 20
|
||||
176 Ʈ<><C6AE> mon_tren.GCMDS 2 Defender 56 196 56 504 40 1 300 -250 350 -190 340 0.079337698 7913 45 130 157 81 62 61 0 1.5 7 0 30 18 0 0 0 0 0 0 0 0 0 0 1 1 8279 4087 206.975 102.175 1 15 X X X O 30000 2527 0 0 0 1000 80 80 80 140 115 2 20
|
||||
177 Ÿ<>̰Ŷ<CCB0><C5B6>̴<EFBFBD> mon_tirider.GCMDS 2 Defender 36 126 20 180 24 1 50 -50 65 -220 370 0.072915486 8218 46 133 160 83 64 62 0 0.9 7 0 31 19 0 0 0 0 0 0 0 0 0 0 1 1 8675 4208 216.875 105.2 1 15 X O X O 30000 2528 0 0 0 1000 80 80 80 140 114 2 20
|
||||
178 <09><>ĭ <20><>Ŀ<EFBFBD>̼<EFBFBD> mon_pulkhan.GCMDS 2 Warrior 32 100.8 24 201.6 32 1 60 -60 36 -68 218 0.123572896 8529 47 164 191 98 58 69 0 1.3 7 0 31 19 0 0 0 0 0 0 0 0 0 0 1 1 7830 4306 195.75 107.65 0.8 15 X O X O 30000 2529 0 0 0 1000 80 80 80 140 113 2 20
|
||||
179 <09><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD> mon_tirider.GCMDS 2 Defender 36 132.3 20 186 24 1 55 -55 71.5 -242 392 0.068829203 8845 48 139 168 87 67 65 0 0.9 7 0 32 20 0 0 0 0 0 0 0 0 0 0 1 1 9504 4404 237.6 110.1 1.1 16 X X X O 30000 2530 0 0 0 1000 80 80 80 140 112 2 20
|
||||
180 <09><>ĭ <20><>ī<EFBFBD><C4AB>Ʈ mon_pulkhan.GCMDS 2 Warrior 32 106.4 24 208.8 32 1 67.5 -67.5 40.5 -76.5 227 0.118694375 9167 49 168 197 101 60 71 0 1.3 7 0 33 20 0 0 0 0 0 0 0 0 0 0 1 1 8481 4476 212.025 111.9 0.9 16 X O X O 30000 2531 0 0 0 1000 80 80 80 140 111 2 20
|
||||
181 <09><>ĭ <20><><EFBFBD><EFBFBD> mon_pulkhan02.GCMDS 2 Defender 32 112 24 216 32 1 75 -75 45 -85 235 0.114669715 9495 50 144 173 90 69 67 0 1.2 7 0 33 21 0 0 0 0 0 0 0 0 0 0 1 1 10260 4575 256.5 114.375 1 16 X O X O 30000 2532 0 0 0 1000 80 80 80 140 110 2 20
|
||||
182 <09>ҿ︮<D2BF><EFB8AE> <20>Ӽųʸ<C5B3> mon_tirider.GCMDS 2 Defender 36 132.3 20 186 24 1 55 -55 71.5 -242 392 0.068829203 9828 51 148 177 93 70 69 0 0.9 7 0 34 21 0 0 0 0 0 0 0 0 0 0 1 1 10651 4673 266.275 116.825 1.1 17 X O X O 30000 2533 0 0 0 1000 80 80 80 140 109 2 20
|
||||
183 <09><>ĭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_pulkhan.GCMDS 2 Warrior 32 112 24 216 32 1 75 -75 45 -85 235 0.114669715 10167 52 177 208 107 64 75 0 1.3 7 0 35 21 0 0 0 0 0 0 0 0 0 0 1 1 9585 4798 239.625 119.95 1 17 X O X O 30000 2534 0 0 0 1000 80 80 80 140 108 2 20
|
||||
184 <09><>ĭ <20><><EFBFBD><EFBFBD>Ʈ mon_pulkhan02.GCMDS 2 Defender 32 112 24 216 32 1 75 -75 45 -85 235 0.114669715 10512 53 150 181 94 73 71 0 1.2 7 0 35 22 0 0 0 0 0 0 0 0 0 0 1 1 11530 4847 288.25 121.175 1 17 X O X O 30000 2535 0 0 0 1000 80 80 80 140 107 2 20
|
||||
185 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>и<EFBFBD><D0B8><EFBFBD> mon_gavial.GCMDS 2 Defender 32 100.8 24 201.6 40 1 80 -80 144 -104 254 0.106121802 10863 54 153 184 97 74 73 0 1.5 7 0 36 22 0 0 0 0 0 0 0 0 0 0 1 1 12019 4946 300.475 123.65 0.8 18 X O X O 30000 2536 0 0 0 1000 80 80 80 140 106 2 20
|
||||
186 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_shogen_master_red.GCMDS 2 Defender 32 112 20 180 32 1 110 -110 85 -75 225 0.119744979 11219 55 157 188 99 76 74 0 1.2 7 0 37 22 0 0 0 0 0 0 0 0 0 0 1 1 12451 5072 311.275 126.8 1 18 X O X O 30000 2537 0 0 0 1000 80 80 80 140 105 2 20
|
||||
187 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_gavial.GCMDS 2 Defender 32 106.4 24 208.8 40 1 90 -90 162 -117 267 0.100970814 11581 56 159 192 101 78 76 0 1.5 7 0 37 23 0 0 0 0 0 0 0 0 0 0 1 1 13035 5172 325.875 129.3 0.9 18 X O X O 30000 2538 0 0 0 1000 80 80 80 140 104 2 20
|
||||
188 <09><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_shogen_master_black.GCMDS 2 Warrior 32 112 20 180 40 1 95 -50 50 -170 320 0.084286179 11949 57 193 226 116 69 81 0 1.6 7 0 38 23 0 0 0 0 0 0 0 0 0 0 1 1 11434 5221 285.85 130.525 1 19 X O X O 30000 2539 0 0 0 1000 80 80 80 140 103 2 20
|
||||
189 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_gavial.GCMDS 2 Defender 32 112 24 216 40 1 100 -100 180 -130 280 0.096296065 12322 58 164 197 104 80 78 0 1.5 7 0 39 24 0 0 0 0 0 0 0 0 0 0 1 1 13963 5350 349.075 133.75 1 19 X O X O 30000 2540 0 0 0 1000 80 80 80 140 102 2 20
|
||||
190 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_vicrocodile.GCMDS 2 Defender 32 106.4 24 208.8 40 1 148.5 -148.5 180 -180 330 0.081737184 12701 59 168 201 106 81 79 0 1.5 7 0 39 24 0 0 0 0 0 0 0 0 0 0 1 1 14436 5450 360.9 136.25 0.9 19 X O X O 30000 2541 0 0 0 1000 80 80 80 140 101 2 20
|
||||
191 <09><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD> mon_shogen_master_red.GCMDS 2 Defender 32 112 20 180 32 1 110 -110 85 -75 225 0.119744979 13086 60 168 203 107 83 82 0 1.2 8 0 40 25 0 0 0 0 0 0 0 0 0 0 1 1 15080 5550 377 138.75 1 20 X O X O 30000 2542 0 0 0 1000 80 80 80 140 100 2 20
|
||||
192 <09><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD> mon_shogen_master_black.GCMDS 2 Warrior 32 112 20 180 40 1 95 -50 50 -170 320 0.084286179 13476 61 204 239 124 74 88 0 1.6 8 0 41 25 0 0 0 0 0 0 0 0 0 0 1 1 13127 5630 328.175 140.75 1 20 X O X O 30000 2543 0 0 0 1000 80 80 80 140 99 2 20
|
||||
193 <09><><EFBFBD><EFBFBD> mon_slephi.GCMDS 2 Warrior 40 140 40 360 32 1 95 -95 200 -120 270 0.099852246 13872 62 210 245 127 75 90 0 1.3 8 0 41 26 0 0 0 0 0 0 0 0 0 0 1 1 13570 5731 339.25 143.275 1 20 X O X O 30000 2544 0 0 0 1000 80 80 80 140 98 2 20
|
||||
194 <09><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD> mon_rhinoman.GCMDS 2 Defender 36 126 24 216 32 1 110 -110 95 -180 330 0.081737184 14274 63 177 212 113 86 86 0 1.2 8 0 42 26 0 0 0 0 0 0 0 0 0 0 1 1 16617 5831 415.425 145.775 1 21 X O X O 30000 2545 0 0 0 1000 80 80 80 140 97 2 20
|
||||
195 <09><> <20><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD> mon_rhinoman.GCMDS 2 Defender 36 126 24 216 32 1 110 -110 95 -180 330 0.081737184 14682 64 179 216 114 88 87 0 1.2 8 0 43 26 0 0 0 0 0 0 0 0 0 0 1 1 17322 5964 433.05 149.1 1 21 X O X O 30000 2546 0 0 0 1000 80 80 80 140 96 2 20
|
||||
196 <09><><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> mon_vicrocodile.GCMDS 2 Defender 32 117.6 24 223.2 40 1 181.5 -181.5 220 -220 370 0.072915486 15095 65 181 218 115 89 88 0 1.5 8 0 43 27 0 0 0 0 0 0 0 0 0 0 1 1 17794 6015 444.85 150.375 1.1 21 X O X O 30000 2547 0 0 0 1000 80 80 80 140 95 2 20
|
||||
197 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> mon_scorpion.GCMDS 2 Defender 32 128.8 32 316.8 35 1 195 -195 169 -234 384 0.070261069 6203 39 117 140 72 54 52 0 1.3 6 0 26 16 0 0 0 0 0 0 0 0 0 0 1 1 6279 3563 156.975 89.075 1.3 13 X X X O 20000 2548 0 0 0 1000 80 80 80 140 121 2 20
|
||||
198 <09><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>ũ mon_trenber.GCMDS 2 Defender 56 147 56 420 40 1 150 -125 175 -95 245 0.110006437 6474 40 119 144 74 56 54 0 1.5 6 0 27 16 0 0 0 0 0 0 0 0 0 0 1 1 6656 3680 166.4 92 0.5 13 X O X O 20000 2549 0 0 0 1000 80 80 80 140 120 2 20
|
||||
199 <09>ι<EFBFBD> <20><><EFBFBD>Ž<EFBFBD> mon_fungus01.GCMDS 2 Defender 32 112 32 288 32 1 90 -90 90 -90 240 0.112289772 6750 41 121 146 74 57 54 0 1.2 6 0 27 17 0 0 0 0 0 0 0 0 0 0 1 1 6903 3727 172.575 93.175 1 13 X O X O 30000 2550 0 0 0 1000 80 80 80 140 119 2 20
|
||||
200 <09><><EFBFBD><EFBFBD> <20><><EFBFBD>Ž<EFBFBD> mon_fungus02.GCMDS 2 Warrior 32 112 32 288 32 1 90 -90 90 -90 240 0.112289772 7614 44 153 180 92 55 63 0 1.3 6 0 29 18 0 0 0 0 0 0 0 0 0 0 1 1 6964 4040 174.1 101 1 14 X O X O 30000 2551 0 0 0 1000 80 80 80 140 116 2 20
|
||||
201 Ʈ<><C6AE><EFBFBD><EFBFBD> mon_trenber.GCMDS 2 Defender 56 166.6 56 453.6 40 1 210 -175 245 -133 283 0.095278016 7913 45 130 157 81 62 61 0 1.5 7 0 30 18 0 0 0 0 0 0 0 0 0 0 1 1 8279 4087 206.975 102.175 0.7 15 X X X O 30000 2552 0 0 0 1000 80 80 80 140 115 2 20
|
||||
202 <09><><EFBFBD>̰<EFBFBD> <20>ι<EFBFBD> <20><><EFBFBD>Ž<EFBFBD> mon_fungus01.GCMDS 2 Defender 32 134.4 32 326.4 32 1 126 -126 126 -126 276 0.097687745 8218 46 133 160 83 64 62 0 1.2 7 0 31 19 0 0 0 0 0 0 0 0 0 0 1 1 8675 4208 216.875 105.2 1.4 15 X O X O 30000 2553 0 0 0 1000 80 80 80 140 114 2 20
|
||||
203 <09><><EFBFBD>̰<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ž<EFBFBD> mon_fungus02.GCMDS 2 Warrior 32 134.4 32 326.4 32 1 126 -126 126 -126 276 0.097687745 8529 47 164 191 98 58 69 0 1.3 7 0 31 19 0 0 0 0 0 0 0 0 0 0 1 1 7830 4306 195.75 107.65 1.4 15 X O X O 30000 2554 0 0 0 1000 80 80 80 140 113 2 20
|
||||
204 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_prebic.GCMDS 2 Defender 32 106.4 32 278.4 32 1 144 -144 64.8 -117 267 0.100970814 8845 48 139 168 87 67 65 0 1.2 7 0 32 20 0 0 0 0 0 0 0 0 0 0 1 1 9504 4404 237.6 110.1 0.9 16 X X X O 30000 2555 0 0 0 1000 80 80 80 140 112 2 20
|
||||
205 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_prebic02.GCMDS 2 Warrior 32 106.4 32 278.4 32 1 144 -144 63 -117 267 0.100970814 9167 49 168 197 101 60 71 0 1.3 7 0 33 20 0 0 0 0 0 0 0 0 0 0 1 1 8481 4476 212.025 111.9 0.9 16 X O X O 30000 2556 0 0 0 1000 80 80 80 140 111 2 20
|
||||
206 <09>踯 <20>Ӽųʸ<C5B3> mon_barick.GCMDS 2 Defender 32 112 24 216 32 1 55 -50 60 -90 240 0.112289772 9495 50 144 173 90 69 67 0 1.2 7 0 33 21 0 0 0 0 0 0 0 0 0 0 1 1 10260 4575 256.5 114.375 1 16 X O X O 30000 2557 0 0 0 1000 80 80 80 140 110 2 20
|
||||
207 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_prebic.GCMDS 2 Defender 32 117.6 32 297.6 32 1 176 -176 79.2 -143 293 0.092034505 9828 51 148 177 93 70 69 0 1.2 7 0 34 21 0 0 0 0 0 0 0 0 0 0 1 1 10651 4673 266.275 116.825 1.1 17 X O X O 30000 2558 0 0 0 1000 80 80 80 140 109 2 20
|
||||
208 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ mon_prebic02.GCMDS 2 Warrior 32 117.6 32 297.6 32 1 176 -176 77 -143 293 0.092034505 10167 52 177 208 107 64 75 0 1.3 7 0 35 21 0 0 0 0 0 0 0 0 0 0 1 1 9585 4798 239.625 119.95 1.1 17 X O X O 30000 2559 0 0 0 1000 80 80 80 140 108 2 20
|
||||
209 <09>踯 <20><><EFBFBD><EFBFBD> mon_barick.GCMDS 2 Defender 32 112 24 216 32 1 55 -50 60 -90 240 0.112289772 10512 53 150 181 94 73 71 0 1.2 7 0 35 22 0 0 0 0 0 0 0 0 0 0 1 1 11530 4847 288.25 121.175 1 17 X O X O 30000 2560 0 0 0 1000 80 80 80 140 107 2 20
|
||||
210 <09><>Ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_makin.GCMDS 2 Warrior 32 112 24 216 32 1 90 -90 50 -90 240 0.112289772 10863 54 185 216 112 66 78 0 1.3 7 0 36 22 0 0 0 0 0 0 0 0 0 0 1 1 10259 4946 256.475 123.65 1 18 X O X O 30000 2561 0 0 0 1000 80 80 80 140 106 2 20
|
||||
211 <09><>Ų <20><><EFBFBD><EFBFBD> mon_makin02.GCMDS 2 Defender 32 112 24 216 32 1 90 -90 50 -90 240 0.112289772 11219 55 157 188 99 76 74 0 1.2 7 0 37 22 0 0 0 0 0 0 0 0 0 0 1 1 12451 5072 311.275 126.8 1 18 X O X O 30000 2562 0 0 0 1000 80 80 80 140 105 2 20
|
||||
212 <09><><EFBFBD><EFBFBD>Ʈ <20>踯 <20>Ӽųʸ<C5B3> mon_barick.GCMDS 2 Defender 32 117.6 24 223.2 32 1 60.5 -55 66 -99 249 0.108245443 11581 56 159 192 101 78 76 0 1.2 7 0 37 23 0 0 0 0 0 0 0 0 0 0 1 1 13035 5172 325.875 129.3 1.1 18 X O X O 30000 2563 0 0 0 1000 80 80 80 140 104 2 20
|
||||
213 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>볪Ʈ mon_nonut.GCMDS 2 Defender 32 112 24 216 32 1 85 -85 60 -100 250 0.107813954 11949 57 161 194 101 78 76 0 1.2 7 0 38 23 0 0 0 0 0 0 0 0 0 0 1 1 13424 5221 335.6 130.525 1 19 X O X O 30000 2564 0 0 0 1000 80 80 80 140 103 2 20
|
||||
214 <09><><EFBFBD><EFBFBD> <20><>Ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_makin.GCMDS 2 Warrior 32 112 24 216 32 1 90 -90 50 -90 240 0.112289772 12322 58 196 229 119 70 83 0 1.3 7 0 39 24 0 0 0 0 0 0 0 0 0 0 1 1 11841 5350 296.025 133.75 1 19 X O X O 30000 2565 0 0 0 1000 80 80 80 140 102 2 20
|
||||
215 <09><><EFBFBD><EFBFBD> <20><>Ų <20><><EFBFBD><EFBFBD> mon_makin02.GCMDS 2 Defender 32 112 24 216 32 1 90 -90 50 -90 240 0.112289772 12701 59 168 201 106 81 79 0 1.2 7 0 39 24 0 0 0 0 0 0 0 0 0 0 1 1 14436 5450 360.9 136.25 1 19 X O X O 30000 2566 0 0 0 1000 80 80 80 140 101 2 20
|
||||
216 <09>볪Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_nonut.GCMDS 2 Defender 32 112 24 216 32 1 85 -85 60 -100 250 0.107813954 13086 60 168 203 107 83 82 0 1.2 8 0 40 25 0 0 0 0 0 0 0 0 0 0 1 1 15080 5550 377 138.75 1 20 X O X O 30000 2567 0 0 0 1000 80 80 80 140 100 2 20
|
||||
217 <09><><EFBFBD>ε鸮<CEB5><E9B8AE> mon_clinzer.GCMDS 2 Defender 32 106.4 24 208.8 40 1 49.5 -49.5 90 -90 240 0.112289772 13476 61 170 205 108 83 83 0 1.5 8 0 41 25 0 0 0 0 0 0 0 0 0 0 1 1 15509 5630 387.725 140.75 0.9 20 X O X O 30000 2568 0 0 0 1000 80 80 80 140 99 2 20
|
||||
218 <09><><EFBFBD><EFBFBD> <20>볪Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_nonut.GCMDS 2 Defender 32 123.2 24 230.4 32 1 102 -102 72 -120 270 0.099852246 13872 62 173 208 110 85 84 0 1.2 8 0 41 26 0 0 0 0 0 0 0 0 0 0 1 1 16099 5731 402.475 143.275 1.2 20 X O X O 30000 2569 0 0 0 1000 80 80 80 140 98 2 20
|
||||
219 Ŭ<><C5AC><EFBFBD><EFBFBD> mon_clinzer.GCMDS 2 Defender 32 112 24 216 40 1 55 -55 100 -100 250 0.107813954 14274 63 177 212 113 86 86 0 1.5 8 0 42 26 0 0 0 0 0 0 0 0 0 0 1 1 16617 5831 415.425 145.775 1 21 X O X O 30000 2570 0 0 0 1000 80 80 80 140 97 2 20
|
||||
220 Ÿ<><C5B8><EFBFBD><EFBFBD> mon_tower.GCMDS 2 Defender 32 112 24 216 34 1 130 -130 90 -100 250 0.107813954 14682 64 179 216 114 88 87 0 1.3 8 0 43 26 0 0 0 0 0 0 0 0 0 0 1 1 17322 5964 433.05 149.1 1 21 X O X O 30000 2571 0 0 0 1000 80 80 80 140 96 2 20
|
||||
221 <09><>ƽ <20><><EFBFBD><EFBFBD> mon_rich.GCMDS 2 Warrior 30 105 30 270 40 1 320 -160 310 -160 310 0.08699909 15095 65 218 255 133 78 94 0 1.6 8 0 43 27 0 0 0 0 0 0 0 0 0 0 1 1 14973 6015 374.325 150.375 1 21 X O X O 30000 2572 0 0 0 1000 80 80 80 140 95 2 20
|
||||
222 ũ<><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_cramos.GCMDS 2 Defender 32 112 32 320 40 1 120 -120 75 -155 305 0.088422029 15095 65 181 218 115 89 88 0 1.5 8 0 43 27 0 0 0 0 0 0 0 0 0 0 1 1 17794 6015 444.85 150.375 1 21 X O X O 30000 2572 0 0 0 1000 80 80 80 140 95 2 20
|
||||
223 <09><> <20><>Ʈ<EFBFBD><C6AE> mon_gnoll_king.GCMDS 2 Defender 40 140 24 240 36 1 85 -85 130 -85 235 0.114669715 15514 66 184 221 117 90 89 0 1.3 8 0 44 27 0 0 0 0 0 0 0 0 0 0 1 1 18438 6116 460.95 152.9 1 22 X O X O 30000 2572 0 0 0 1000 80 80 80 140 94 2 20
|
||||
224 <09>巹<EFBFBD><E5B7B9> <20><><EFBFBD><EFBFBD> MON_NightWolf.GCMDS 2 Defender 32 151.2 24 266.4 40 1 42.5 -42.5 59.5 -255 405 0.066622823 15939 67 188 225 120 92 91 0 1.5 8 0 45 27 0 0 0 0 0 0 0 0 0 0 1 1 19001 6250 475.025 156.25 1.7 22 X O X O 30000 2572 0 0 0 1000 80 80 80 140 93 2 20
|
||||
225 <09><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_gnoll_warrior.GCMDS 2 Defender 32 112 24 240 36 1 70 -70 120 -75 225 0.119744979 16369 68 188 227 121 94 93 0 1.3 8 0 45 28 0 0 0 0 0 0 0 0 0 0 1 1 19771 6352 494.275 158.8 1 22 X O X O 30000 2572 0 0 0 1000 80 80 80 140 92 2 20
|
||||
226 <09><><EFBFBD>̰<EFBFBD> ũ<><C5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_cramos.GCMDS 2 Defender 32 117.6 32 330.6666667 40 1 132 -132 82.5 -170.5 321 0.084024155 16805 69 190 229 121 94 93 0 1.5 8 0 46 28 0 0 0 0 0 0 0 0 0 0 1 1 20287 6403 507.175 160.075 1.1 23 X O X O 30000 2572 0 0 0 1000 80 80 80 140 91 2 20
|
||||
227 <09><> <20><><EFBFBD><EFBFBD> mon_gnoll_king.GCMDS 2 Defender 40 147 24 248 36 1 93.5 -93.5 143 -93.5 244 0.110455658 17247 70 193 232 124 96 95 0 1.3 8 0 47 29 0 0 0 0 0 0 0 0 0 0 1 1 20988 6540 524.7 163.5 1.1 23 X O X O 30000 2572 0 0 0 1000 80 80 80 140 90 2 20
|
||||
228 <09><>Ŀ <20><><EFBFBD>̴<EFBFBD> mon_york.GCMDS 2 Defender 32 112 24 240 36 1 80 -80 240 -210 360 0.074937594 17694 71 197 236 126 97 96 0 1.3 8 0 47 29 0 0 0 0 0 0 0 0 0 0 1 1 21599 6642 539.975 166.05 1 23 X O X O 30000 2572 0 0 0 1000 80 80 80 140 89 2 20
|
||||
229 <09><> <20><><EFBFBD><EFBFBD>Ʈ mon_gnoll_tanker.GCMDS 2 Defender 32 117.6 24 248 36 1 77 -77 132 -82.5 233 0.115650124 18147 72 199 240 128 99 98 0 1.3 8 0 48 30 0 0 0 0 0 0 0 0 0 0 1 1 22435 6744 560.875 168.6 1.1 24 X O X O 30000 2572 0 0 0 1000 80 80 80 140 88 2 20
|
||||
230 <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ؼ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MON_Golem.GCMDS 2 Defender 30 131.25 30 315 30 1 142.5 -142.5 0 -247.5 398 0.067793 18606 73 201 242 128 99 98 0 1.1 8 0 49 30 0 0 0 0 0 0 0 0 0 0 1 1 22997 6832 574.925 170.8 1.5 24 X O X O 30000 2572 0 0 0 1000 80 80 80 140 87 2 20
|
||||
231 <09>ι<EFBFBD> <20><>Ŭ<EFBFBD><C5AC> mon_backlyn.GCMDS 2 Defender 32 112 24 240 36 1 100 -100 110 -110 260 0.103680721 19071 74 204 245 131 101 100 0 1.3 8 0 49 31 0 0 0 0 0 0 0 0 0 0 1 1 23757 6935 593.925 173.375 1 24 X O X O 30000 2572 0 0 0 1000 80 80 80 140 86 2 20
|
||||
232 <09><><EFBFBD><EFBFBD>ư <20><><EFBFBD><EFBFBD>Ʈ mon_knight.GCMDS 2 Defender 32 112 24 240 36 1 70 -70 120 -75 225 0.119744979 19541 75 208 249 133 102 102 0 1.3 9 0 50 31 0 0 0 0 0 0 0 0 0 0 1 1 24418 7037 610.45 175.925 1 25 X O X O 30000 2572 0 0 0 1000 80 80 80 140 85 2 20
|
||||
233 <09><>Ŭ<EFBFBD><C5AC> <20><><EFBFBD><EFBFBD> mon_backlyn.GCMDS 2 Defender 32 117.6 24 248 36 1 110 -110 121 -121 271 0.099484869 20017 76 208 251 134 104 103 0 1.3 9 0 51 31 0 0 0 0 0 0 0 0 0 0 1 1 25325 7178 633.125 179.45 1.1 25 X O X O 30000 2572 0 0 0 1000 80 80 80 140 84 2 20
|
||||
234 <09>̳<EFBFBD>Ÿ<EFBFBD><C5B8>Ʈ mon_bulls.GCMDS 2 Defender 36 113.4 28 261.3333333 32 1 136 -136 112 -176 326 0.082738074 20499 77 210 253 135 105 105 0 1.2 9 0 51 32 0 0 0 0 0 0 0 0 0 0 1 1 25935 7231 648.375 180.775 0.8 25 X O X O 30000 2572 0 0 0 1000 80 80 80 140 83 2 20
|
||||
235 <09>̳<EFBFBD>Ÿ<EFBFBD><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC> mon_minatami.GCMDS 2 Defender 32 112 20 200 28 1 65 -65 80 -120 270 0.099852246 20986 78 213 256 137 106 106 0 1 9 0 52 32 0 0 0 0 0 0 0 0 0 0 1 1 26756 7334 668.9 183.35 1 26 X O X O 30000 2572 0 0 0 1000 80 80 80 140 82 2 20
|
||||
236 <09>̳<EFBFBD>Ÿ<EFBFBD><C5B8> <20><>ũ mon_minatami.GCMDS 2 Defender 32 112 20 200 28 1 65 -65 80 -120 270 0.099852246 21479 79 217 260 140 108 108 0 1 9 0 53 32 0 0 0 0 0 0 0 0 0 0 1 1 27468 7476 686.7 186.9 1 26 X O X O 30000 2572 0 0 0 1000 80 80 80 140 81 2 20
|
||||
237 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> mon_elepan_troll.GCMDS 2 Defender 32 112 24 240 36 1 100 -170 50 -110 260 0.103680721 21978 80 219 264 141 110 109 0 1.3 9 0 53 33 0 0 0 0 0 0 0 0 0 0 1 1 28448 7580 711.2 189.5 1 26 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
238 <09><> mon_queen.GCMDS 2 Defender 30 105 30 300 30 1 225 -225 350 -180 330 0.081737184 22482 81 221 266 142 110 110 0 1.1 9 0 54 33 0 0 0 0 0 0 0 0 0 0 1 1 29107 7633 727.675 190.825 1 27 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
239 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_dullahan.GCMDS 2 Defender 32 112 24 240 40 1 95 -95 100 -100 250 0.107813954 22992 82 224 269 144 112 111 0 1.5 9 0 55 34 0 0 0 0 0 0 0 0 0 0 1 1 29992 7778 749.8 194.45 1 27 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
240 <09>ֵ<EFBFBD> <20><><EFBFBD>ε<EFBFBD> mon_york.GCMDS 2 Defender 32 117.6 24 248 36 1 88 -88 264 -231 381 0.070813488 23508 83 228 273 147 113 113 0 1.3 9 0 55 34 0 0 0 0 0 0 0 0 0 0 1 1 30758 7882 768.95 197.05 1.1 27 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
241 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> mon_queen02.GCMDS 2 Defender 30 105 30 300 30 1 225 -225 350 -180 330 0.081737184 24030 84 228 275 148 115 114 0 1.1 9 0 56 35 0 0 0 0 0 0 0 0 0 0 1 1 31813 7986 795.325 199.65 1 28 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
242 <09>ŵ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ mon_knight.GCMDS 2 Defender 32 117.6 24 248 36 1 77 -77 132 -82.5 233 0.115650124 24557 85 230 277 148 115 114 0 1.3 9 0 57 35 0 0 0 0 0 0 0 0 0 0 1 1 32525 8082 813.125 202.05 1.1 28 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
243 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_elepan_troll.GCMDS 2 Defender 32 117.6 24 248 36 1 110 -187 55 -121 271 0.099484869 25090 86 233 280 151 117 117 0 1.3 9 0 57 36 0 0 0 0 0 0 0 0 0 0 1 1 33475 8187 836.875 204.675 1.1 28 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
244 ų<><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_queen.GCMDS 2 Defender 30 110.25 30 310 30 1 247.5 -247.5 385 -198 348 0.077517127 25629 87 237 284 153 118 118 0 1.1 9 0 58 36 0 0 0 0 0 0 0 0 0 0 1 1 34296 8291 857.4 207.275 1.1 29 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
245 <09><><EFBFBD>鸮<EFBFBD><E9B8AE> <20>Ƹ<EFBFBD> mon_dullahan02.GCMDS 2 Defender 32 117.6 24 248 40 1 104.5 -104.5 110 -110 260 0.103680721 26173 88 239 288 155 120 120 0 1.5 9 0 59 36 0 0 0 0 0 0 0 0 0 0 1 1 35430 8440 885.75 211 1.1 29 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
246 <09><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> mon_queen02.GCMDS 2 Defender 30 110.25 30 310 30 1 247.5 -247.5 385 -198 348 0.077517127 26723 89 241 290 155 121 120 0 1.1 9 0 59 37 0 0 0 0 0 0 0 0 0 0 1 1 36195 8495 904.875 212.375 1.1 29 X O X O 30000 2572 0 0 0 1000 80 80 80 140 80 2 20
|
||||
247 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_seaman_mage.GCMDS 2 Defender 24 44 24 216 35 120 30 -30 40 -40 140 0.191804878 49 5 28 35 13 8 6 0 0.8 5 0 7 2 0 0 0 0 0 0 0 0 0 0 1 1 396 3000 9.9 17.375 1 7 X X X O 15000 2572 0 0 0 1000 80 80 80 140 132 2 20
|
||||
248 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_seaman_mage.GCMDS 2 Warriro 24 44 24 216 35 120 30 -30 40 -40 140 0.191804878 49 5 28 35 13 8 6 0 0.8 5 0 7 2 0 0 0 0 0 0 0 0 0 0 1 1 396 3000 9.9 17.375 1 7 X X X O 15000 2572 0 0 0 1000 80 80 80 140 132 2 20
|
||||
249 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>Ʈ mon_seaman_mage.GCMDS 2 Acolyte 24 44 24 216 35 120 30 -30 40 -40 140 0.191804878 49 5 28 35 13 8 6 0 0.8 5 0 7 2 0 0 0 0 0 0 0 0 0 0 1 1 396 3000 9.9 17.375 1 7 X X X O 15000 2572 0 0 0 1000 80 80 80 140 132 2 20
|
||||
250 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mon_seaman_mage.GCMDS 2 Mage 24 44 24 216 35 120 30 -30 40 -40 140 0.191804878 49 5 28 35 13 8 6 0 0.8 5 0 7 2 0 0 0 0 0 0 0 0 0 0 1 1 396 3000 9.9 17.375 1 7 X X X O 15000 2572 0 0 0 1000 80 80 80 140 132 2 20
|
||||
251 <09><><EFBFBD>ຸ<EFBFBD><E0BAB8> mon_seaman_mage.GCMDS 2 Boss 24 44 24 216 35 120 30 -30 40 -40 140 0.191804878 49 5 28 35 13 8 6 0 0.8 5 0 7 2 0 0 0 0 0 0 0 0 0 0 1 1 396 3000 9.9 17.375 1 7 X X X O 15000 2572 0 0 0 1000 80 80 80 140 132 2 20
|
||||
1000 Ų<>鸵 summon_kindling.GCMDS 1 Summon 36 116.55 36 342 36 1 68 -68 25.5 -25.5 126 0.212845582 0 4 25 32 11 8 4 0 0.8 4 0 3 1 0 0 0 0 0 0 0 0 0 0 1 1 374 614 9.35 15.35 0.85 1 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1001 Ų<>鸵 summon_kindling.GCMDS 1 Summon 36 119.7 36 348 36 1 72 -72 27 -27 127 0.211191779 0 7 34 41 17 11 8 0 1 4 0 5 2 0 0 0 0 0 0 0 0 0 0 1 1 568 840 14.2 21 0.9 2 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1002 Ų<>鸵 summon_kindling.GCMDS 1 Summon 36 122.85 36 354 36 1 76 -76 28.5 -28.5 179 0.150332625 0 10 44 53 23 16 13 1 1.3 4 1 7 4 0 0 0 0 0 0 0 0 0 0 1 1 820 1070 20.5 26.75 0.95 3 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1003 Ų<>鸵 summon_kindling.GCMDS 1 Summon 36 126 36 360 36 1 80 -80 30 -30 180 0.149502979 0 13 50 61 27 19 16 2 1.3 4 2 9 5 0 0 0 0 0 0 0 0 0 0 1 1 1108 1302 27.7 32.55 1 4 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1004 Ų<>鸵 summon_kindling.GCMDS 1 Summon 36 129.15 36 366 36 1 84 -84 31.5 -31.5 182 0.14787077 0 16 59 72 33 24 21 3 1.3 5 3 11 6 0 0 0 0 0 0 0 0 0 0 1 1 1496 1588 37.4 39.7 1.05 5 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1005 Ų<>鸵 summon_kindling.GCMDS 1 Summon 36 132.3 36 372 36 1 88 -88 33 -33 183 0.147067916 0 19 68 81 39 28 26 4 1.3 5 4 13 7 0 0 0 0 0 0 0 0 0 0 1 1 1877 1826 46.925 45.65 1.1 6 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1006 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 100.8 32 298.6666667 36 1 80 -80 80 -80 230 0.117152517 0 19 68 81 39 28 26 5 1.3 5 5 13 7 0 0 0 0 0 0 0 0 0 0 1 1 1877 1826 46.925 45.65 0.8 6 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1007 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 103.6 32 304 36 1 85 -85 85 -85 235 0.114669715 0 22 73 88 43 32 29 6 1.3 5 6 15 9 0 0 0 0 0 0 0 0 0 0 1 1 2346 2068 58.65 51.7 0.85 7 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1008 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 106.4 32 309.3333333 36 1 90 -90 90 -90 240 0.112289772 0 25 81 98 47 35 32 7 1.3 5 7 17 10 0 0 0 0 0 0 0 0 0 0 1 1 2860 2312 71.5 57.8 0.9 8 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1009 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 109.2 32 314.6666667 36 1 95 -95 95 -95 245 0.110006437 0 28 88 107 53 40 37 8 1.3 5 8 19 11 0 0 0 0 0 0 0 0 0 0 1 1 3508 2610 87.7 65.25 0.95 9 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1010 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 112 32 320 36 1 100 -100 100 -100 250 0.107813954 0 31 97 116 59 44 42 9 1.3 6 9 21 12 0 0 0 0 0 0 0 0 0 0 1 1 4131 2860 103.275 71.5 1 10 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1011 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 114.8 32 325.3333333 36 1 105 -105 105 -105 255 0.105707017 0 34 104 125 63 48 46 10 1.3 6 10 23 14 0 0 0 0 0 0 0 0 0 0 1 1 4884 3114 122.1 77.85 1.05 11 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1012 <09>÷<EFBFBD><C3B7>ӿ<EFBFBD>Ŀ summon_flamewalker.GCMDS 1 Summon 32 117.6 32 330.6666667 36 1 110 -110 110 -110 260 0.103680721 0 37 110 133 67 51 49 11 1.3 6 11 25 15 0 0 0 0 0 0 0 0 0 0 1 1 5682 3370 142.05 84.25 1.1 12 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1013 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 100.8 32 298.6666667 36 1 112 -112 120 -120 270 0.099852246 0 37 110 133 67 51 49 12 1.3 6 12 25 15 0 0 0 0 0 0 0 0 0 0 1 1 5682 3370 142.05 84.25 0.8 12 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1014 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 103.6 32 304 36 1 119 -119 127.5 -127.5 278 0.09698692 0 40 119 144 74 56 54 13 1.3 6 13 27 16 0 0 0 0 0 0 0 0 0 0 1 1 6656 3680 166.4 92 0.85 13 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1015 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 106.4 32 309.3333333 36 1 126 -126 135 -135 285 0.094611177 0 43 128 153 79 60 58 14 1.3 6 14 29 17 0 0 0 0 0 0 0 0 0 0 1 1 7575 3942 189.375 98.55 0.9 14 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1016 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 109.2 32 314.6666667 36 1 133 -133 142.5 -142.5 293 0.092034505 0 46 133 160 83 64 62 15 1.3 7 15 31 19 0 0 0 0 0 0 0 0 0 0 1 1 8675 4208 216.875 105.2 0.95 15 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1017 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 112 32 320 36 1 140 -140 150 -150 300 0.089892233 0 49 141 170 88 67 66 16 1.3 7 16 33 20 0 0 0 0 0 0 0 0 0 0 1 1 9818 4476 245.45 111.9 1 16 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1018 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 114.8 32 325.3333333 36 1 147 -147 157.5 -157.5 308 0.087562741 0 52 148 179 94 72 71 17 1.3 7 17 35 21 0 0 0 0 0 0 0 0 0 0 1 1 11179 4798 279.475 119.95 1.05 17 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1019 <09><><EFBFBD><EFBFBD><D7BD><EFBFBD> summon_burningshield.GCMDS 1 Summon 32 117.6 32 330.6666667 36 1 154 -154 165 -165 315 0.085621174 0 55 157 188 99 76 74 18 1.3 7 18 37 22 0 0 0 0 0 0 0 0 0 0 1 1 12451 5072 311.275 126.8 1.1 18 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1020 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 113.4 36 336 40 1 240 -240 240 -160 310 0.08699909 0 55 157 188 99 76 74 19 1.5 7 19 37 22 0 0 0 0 0 0 0 0 0 0 1 1 12451 5072 311.275 126.8 0.8 18 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1021 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 116.55 36 342 40 1 255 -255 255 -170 320 0.084286179 0 58 164 197 104 80 78 20 1.5 7 20 39 24 0 0 0 0 0 0 0 0 0 0 1 1 13963 5350 349.075 133.75 0.85 19 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1022 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 119.7 36 348 40 1 270 -270 270 -180 330 0.081737184 0 61 170 205 108 83 83 21 1.5 8 21 41 25 0 0 0 0 0 0 0 0 0 0 1 1 15509 5630 387.725 140.75 0.9 20 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1023 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 122.85 36 354 40 1 285 -285 285 -190 340 0.079337698 0 64 179 216 114 88 87 22 1.5 8 22 43 26 0 0 0 0 0 0 0 0 0 0 1 1 17322 5964 433.05 149.1 0.95 21 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1024 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 126 36 360 40 1 300 -300 300 -200 350 0.077074953 0 67 188 225 120 92 91 23 1.5 8 23 45 27 0 0 0 0 0 0 0 0 0 0 1 1 19001 6250 475.025 156.25 1 22 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1025 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 129.15 36 366 40 1 315 -315 315 -210 360 0.074937594 0 70 193 232 124 96 95 24 1.5 8 24 47 29 0 0 0 0 0 0 0 0 0 0 1 1 20988 6540 524.7 163.5 1.05 23 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1026 <09><><EFBFBD>̾<EFBFBD><CCBE><EFBFBD> summon_firewing.GCMDS 1 Summon 36 132.3 36 372 40 1 330 -330 330 -220 370 0.072915486 0 73 201 242 128 99 98 25 1.5 8 25 49 30 0 0 0 0 0 0 0 0 0 0 1 1 22997 6832 574.925 170.8 1.1 24 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1027 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 113.4 36 336 40 1 240 -240 240 -160 310 0.08699909 0 73 201 242 128 99 98 26 1.5 8 26 49 30 0 0 0 0 0 0 0 0 0 0 1 1 22997 6832 574.925 170.8 0.8 24 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1028 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 116.55 36 342 40 1 255 -255 255 -170 320 0.084286179 0 76 208 251 134 104 103 27 1.5 9 27 51 31 0 0 0 0 0 0 0 0 0 0 1 1 25325 7178 633.125 179.45 0.85 25 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1029 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 119.7 36 348 40 1 270 -270 270 -180 330 0.081737184 0 79 217 260 140 108 108 28 1.5 9 28 53 32 0 0 0 0 0 0 0 0 0 0 1 1 27468 7476 686.7 186.9 0.9 26 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1030 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 122.85 36 354 40 1 285 -285 285 -190 340 0.079337698 0 82 224 269 144 112 111 29 1.5 9 29 55 34 0 0 0 0 0 0 0 0 0 0 1 1 29992 7778 749.8 194.45 0.95 27 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1031 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 126 36 360 40 1 300 -300 300 -200 350 0.077074953 0 85 230 277 148 115 114 30 1.5 9 30 57 35 0 0 0 0 0 0 0 0 0 0 1 1 32525 8082 813.125 202.05 1 28 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1032 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 129.15 36 366 40 1 315 -315 315 -210 360 0.074937594 0 88 239 288 155 120 120 31 1.5 9 31 59 36 0 0 0 0 0 0 0 0 0 0 1 1 35430 8440 885.75 211 1.05 29 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1033 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> summon_firewing.GCMDS 1 Summon 36 132.3 36 372 40 1 330 -330 330 -220 370 0.072915486 0 91 248 297 160 124 124 32 1.5 10 32 61 37 0 0 0 0 0 0 0 0 0 0 1 1 38093 8750 952.325 218.75 1.1 30 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1034 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28>߸<EFBFBD>) stone_n.GCMDS 2 Structure 0 0 0 0 1 1 125 -125 125 -125 275 0.098041964 0 89 241 290 155 121 120 32 0 9 32 59 37 0 0 0 0 0 0 0 0 0 0 1 1 36195 8495 904.875 212.375 5 29 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1035 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28>ΰ<EFBFBD>)<29><>ȯ<EFBFBD><C8AF> stone_h_re.GCMDS 0 Structure 0 0 0 0 1 1 125 -125 125 -125 275 0.098041964 0 89 241 290 155 121 120 32 0 9 32 59 37 0 0 0 0 0 0 0 0 0 0 1 1 36195 8495 904.875 212.375 5 29 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1036 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28>ΰ<EFBFBD>) stone_h.GCMDS 0 Structure 0 0 0 0 1 1 125 -125 125 -125 275 0.098041964 0 89 241 290 155 121 120 32 0 9 32 59 37 0 0 0 0 0 0 0 0 0 0 1 1 36195 8495 904.875 212.375 5 29 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1037 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><>ĭ)<29><>ȯ<EFBFBD><C8AF> stone_a_re.GCMDS 1 Structure 0 0 0 0 1 1 125 -125 125 -125 275 0.098041964 0 89 241 290 155 121 120 32 0 9 32 59 37 0 0 0 0 0 0 0 0 0 0 1 1 36195 8495 904.875 212.375 5 29 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1038 <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><>ĭ) stone_a.GCMDS 1 Structure 0 0 0 0 1 1 125 -125 125 -125 275 0.098041964 0 89 241 290 155 121 120 32 0 9 32 59 37 0 0 0 0 0 0 0 0 0 0 1 1 36195 8495 904.875 212.375 5 29 X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
91
Server/ToolProject/Arrangement2/Resource.h
Normal file
@@ -0,0 +1,91 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by Arrangement2.rc
|
||||
//
|
||||
#define IDR_MANIFEST 1
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_ARRANGEMENT2_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDR_MENU1 129
|
||||
#define ID_130 130
|
||||
#define ID__50 131
|
||||
#define ID__100 132
|
||||
#define ID__200 133
|
||||
#define ID__400 134
|
||||
#define ID__800 135
|
||||
#define IDR_ACCELERATOR1 136
|
||||
#define IDC_POSITIONX 1002
|
||||
#define IDC_POSITIONZ 1004
|
||||
#define IDC_SCOUT 1006
|
||||
#define IDC_AREA 1007
|
||||
#define IDC_FIX 1008
|
||||
#define IDC_ROUTE 1009
|
||||
#define IDC_NONAREA 1010
|
||||
#define IDC_CREATESCRIPT 1011
|
||||
#define IDC_NUMINWORLD 1012
|
||||
#define IDC_KIDCOMBO 1013
|
||||
#define IDC_VISUALKID 1014
|
||||
#define IDC_ERASE 1015
|
||||
#define IDC_NUMOFKID 1016
|
||||
#define IDC_NUMOFKID2 1017
|
||||
#define IDC_CLASS 1017
|
||||
#define IDC_LEVEL 1018
|
||||
#define IDC_NAME 1019
|
||||
#define IDC_ARRANGEMENT 1020
|
||||
#define IDC_GROUP 1022
|
||||
#define IDC_VISUALPID 1023
|
||||
#define IDC_COMBO1 1024
|
||||
#define IDC_PIDCOMBO 1024
|
||||
#define IDC_EDIT2 1026
|
||||
#define IDC_RESPAWNEDIT 1026
|
||||
#define IDC_CHECK1 1027
|
||||
#define IDC_VISUALLEVEL 1027
|
||||
#define IDC_EDIT1 1028
|
||||
#define IDC_PARTYMEM_NUM 1028
|
||||
#define IDC_CHECK2 1029
|
||||
#define IDC_CHK_STATUE 1029
|
||||
#define IDC_STATIC4 1033
|
||||
#define IDC_STATIC1 1034
|
||||
#define IDC_STATIC2 1035
|
||||
#define IDC_STATIC3 1036
|
||||
#define IDC_STATICKID 1037
|
||||
#define IDC_STATICNAME 1038
|
||||
#define IDC_STATICLEVEL 1039
|
||||
#define IDC_STATICCLASS 1040
|
||||
#define IDC_STATICOBJNUM 1041
|
||||
#define IDC_STATICRESPAWN 1042
|
||||
#define IDC_STATICPID 1043
|
||||
#define IDC_STATIC5 1044
|
||||
#define IDC_STATIC6 1045
|
||||
#define IDC_STATICX 1046
|
||||
#define IDC_STATICZ 1047
|
||||
#define IDC_STATICMONTNUM 1048
|
||||
#define ID_32774 32774
|
||||
#define ID_Menu 32775
|
||||
#define ID__32779 32779
|
||||
#define ID__32780 32780
|
||||
#define ID__32781 32781
|
||||
#define ID__32782 32782
|
||||
#define ID__ZONE1 32789
|
||||
#define ID__ZONE2 32790
|
||||
#define ID__ZONE3 32791
|
||||
#define ID__ZONE4 32792
|
||||
#define ID__ZONE5 32793
|
||||
#define ID__ZONE8 32794
|
||||
#define ID__ZONE9 32795
|
||||
#define ID__ZONE12 32796
|
||||
#define ID__ZONE100 32797
|
||||
#define ID__ZONE16 32799
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 137
|
||||
#define _APS_NEXT_COMMAND_VALUE 32801
|
||||
#define _APS_NEXT_CONTROL_VALUE 1049
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
BIN
Server/ToolProject/Arrangement2/Zone01.jpg
Normal file
|
After Width: | Height: | Size: 5.5 MiB |
1513
Server/ToolProject/Arrangement2/ijl.h
Normal file
BIN
Server/ToolProject/Arrangement2/ijl15.dll
Normal file
BIN
Server/ToolProject/Arrangement2/ijl15.lib
Normal file
BIN
Server/ToolProject/Arrangement2/res/Arrangement2.ico
Normal file
|
After Width: | Height: | Size: 21 KiB |
22
Server/ToolProject/Arrangement2/res/Arrangement2.manifest
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
version="1.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
name="Microsoft.Windows.Arrangement2"
|
||||
type="win32"
|
||||
/>
|
||||
<description>여기에 응용 프로그램 설명을 추가합니다.</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
||||
13
Server/ToolProject/Arrangement2/res/Arrangement2.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// Arrangement2.RC2 - resources Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error this file is not editable by Microsoft Visual C++
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>....
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
7
Server/ToolProject/Arrangement2/stdafx.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
// Arrangement2.pch<63><68> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.
|
||||
// stdafx.obj<62><6A> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
45
Server/ToolProject/Arrangement2/stdafx.h
Normal file
@@ -0,0 +1,45 @@
|
||||
// stdafx.h : <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
||||
// ǥ<><C7A5> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // Windows <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ܽ<EFBFBD>ŵ<EFBFBD>ϴ<EFBFBD>.
|
||||
#endif
|
||||
|
||||
// <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>켱<EFBFBD>ϴ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
// <20>ٸ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSDN<44><4E> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
#ifndef WINVER // Windows 95 <20><> Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define WINVER 0x0400 // Windows 98<39><38> Windows 2000 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_WINNT 0x0400 // Windows 98<39><38> Windows 2000 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINDOWS // Windows 98 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_WINDOWS 0x0410 // Windows Me <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_IE // IE 4.0 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_IE 0x0400 // IE 5.0 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // <20>Ϻ<EFBFBD> CString <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
// MFC<46><43> <20><><EFBFBD><EFBFBD> <20>κа<CEBA> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⸦ <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC <20>ٽ<EFBFBD> <20><> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#include <afxext.h> // MFC <20>ͽ<EFBFBD><CDBD>ټ<EFBFBD>
|
||||
#include <afxdisp.h> // MFC <20>ڵ<EFBFBD>ȭ Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
|
||||
#include <afxdtctl.h> // Internet Explorer 4 <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD>
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // Windows <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD>
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
|
||||
#include <gdiplus.h>
|
||||
using namespace Gdiplus;
|
||||
88
Server/ToolProject/AuthDBManager/AuthDBManager.cpp
Normal file
@@ -0,0 +1,88 @@
|
||||
// AuthDBManager.cpp : Defines the class behaviors for the application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthDBManager.h"
|
||||
#include "AuthDBManagerDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthDBManagerApp, CWinApp)
|
||||
//{{AFX_MSG_MAP(CAuthDBManagerApp)
|
||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code!
|
||||
//}}AFX_MSG
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerApp construction
|
||||
|
||||
CAuthDBManagerApp::CAuthDBManagerApp()
|
||||
{
|
||||
// TODO: add construction code here,
|
||||
// Place all significant initialization in InitInstance
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// The one and only CAuthDBManagerApp object
|
||||
|
||||
CAuthDBManagerApp theApp;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerApp initialization
|
||||
|
||||
BOOL CAuthDBManagerApp::InitInstance()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> DLL
|
||||
GET_PLUGIN_INFO hGet_PlugIn_Info;
|
||||
|
||||
if((m_Language = LoadLibrary("language.dll")) != NULL)
|
||||
{
|
||||
AfxSetResourceHandle(m_Language);
|
||||
|
||||
hGet_PlugIn_Info = (GET_PLUGIN_INFO)GetProcAddress(m_Language, "Get_PlugIn_Info");
|
||||
if(hGet_PlugIn_Info != NULL)
|
||||
{
|
||||
m_PlugInInfo = hGet_PlugIn_Info();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Language = m_hInstance;
|
||||
|
||||
ZeroMemory(&m_PlugInInfo, sizeof(PLUGININFO));
|
||||
}
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// Standard initialization
|
||||
// If you are not using these features and wish to reduce the size
|
||||
// of your final executable, you should remove from the following
|
||||
// the specific initialization routines you do not need.
|
||||
|
||||
CAuthDBManagerDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
int nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
// dismissed with OK
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
// dismissed with Cancel
|
||||
}
|
||||
|
||||
// Since the dialog has been closed, return FALSE so that we exit the
|
||||
// application, rather than start the application's message pump.
|
||||
return FALSE;
|
||||
}
|
||||
56
Server/ToolProject/AuthDBManager/AuthDBManager.h
Normal file
@@ -0,0 +1,56 @@
|
||||
// AuthDBManager.h : main header file for the AuthDBManager application
|
||||
//
|
||||
|
||||
#if !defined(AFX_AuthDBManager_H__EA33128C_6CFB_48FD_9E36_85366557E0D2__INCLUDED_)
|
||||
#define AFX_AuthDBManager_H__EA33128C_6CFB_48FD_9E36_85366557E0D2__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // main symbols
|
||||
|
||||
#include "plugin.h"
|
||||
|
||||
#include <RylServerLibrary/DB/DBComponent.h>
|
||||
#include "AuthDef.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerApp:
|
||||
// See AuthDBManager.cpp for the implementation of this class
|
||||
//
|
||||
|
||||
class CAuthDBManagerApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CAuthDBManagerApp();
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAuthDBManagerApp)
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
PLUGININFO m_PlugInInfo;
|
||||
HINSTANCE m_Language;
|
||||
|
||||
//{{AFX_MSG(CAuthDBManagerApp)
|
||||
// NOTE - the ClassWizard will add and remove member functions here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code !
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_AuthDBManager_H__EA33128C_6CFB_48FD_9E36_85366557E0D2__INCLUDED_)
|
||||
432
Server/ToolProject/AuthDBManager/AuthDBManager.rc
Normal file
@@ -0,0 +1,432 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Korean resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"#ifdef _WIN32\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#endif //_WIN32\r\n"
|
||||
"#include ""res\\AuthDBManager.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
|
||||
"#include ""l.kor\\afxres.rc"" // Standard components\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 121, 166
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "<22><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD>"
|
||||
FONT 10, "<22><><EFBFBD><EFBFBD>"
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,13,22,20,20,0,WS_EX_STATICEDGE
|
||||
LTEXT "<22><><EFBFBD><EFBFBD> DB <20>Ŵ<EFBFBD><C5B4><EFBFBD> <20><><EFBFBD><EFBFBD> 1.0",IDC_STATIC,35,29,77,8,
|
||||
SS_NOPREFIX
|
||||
DEFPUSHBUTTON "Ȯ<><C8AE>",IDOK,35,132,50,14,BS_FLAT | WS_GROUP
|
||||
GROUPBOX "",IDC_STATIC,5,4,110,154
|
||||
CTEXT "<22>÷<EFBFBD><C3B7><EFBFBD> <20><>",IDC_STATIC,13,50,36,12,SS_NOPREFIX |
|
||||
SS_CENTERIMAGE | SS_SUNKEN
|
||||
LISTBOX ID_PLUGIN_LIST,13,63,94,30,LBS_SORT |
|
||||
LBS_NOINTEGRALHEIGHT | NOT WS_BORDER | WS_VSCROLL |
|
||||
WS_TABSTOP,WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ",IDC_STATIC,13,94,36,12,SS_NOPREFIX |
|
||||
SS_CENTERIMAGE | SS_SUNKEN
|
||||
CTEXT "",ID_LASTUPDATE,49,94,58,12,SS_NOPREFIX |
|
||||
SS_CENTERIMAGE | SS_SUNKEN
|
||||
CTEXT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",IDC_STATIC,13,107,36,12,SS_NOPREFIX |
|
||||
SS_CENTERIMAGE | SS_SUNKEN
|
||||
CTEXT "",ID_CREATER,49,107,58,12,SS_NOPREFIX | SS_CENTERIMAGE |
|
||||
SS_SUNKEN
|
||||
END
|
||||
|
||||
IDD_AuthDBManager_DIALOG DIALOGEX 0, 0, 418, 398
|
||||
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "<22><><EFBFBD><EFBFBD> DB <20>Ŵ<EFBFBD><C5B4><EFBFBD>"
|
||||
MENU IDR_MENU
|
||||
FONT 10, "<22><><EFBFBD><EFBFBD>"
|
||||
BEGIN
|
||||
CONTROL "List1",ID_USER_LIST,"SysListView32",LVS_REPORT |
|
||||
LVS_EDITLABELS | WS_TABSTOP,7,21,403,218,
|
||||
WS_EX_STATICEDGE
|
||||
LTEXT "",ID_ERROR_LOG,7,350,243,35,0,WS_EX_STATICEDGE
|
||||
GROUPBOX "",IDC_STATIC,0,0,418,397,BS_FLAT
|
||||
CTEXT "",ID_SELECTED_ROW,54,6,28,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "",ID_SELECTED_COUNT,82,6,29,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD>̵<EFBFBD>",IDC_STATIC,13,258,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD> <20>߰<EFBFBD>",IDC_STATIC,7,245,243,97,BS_FLAT
|
||||
CTEXT "<22>н<EFBFBD>",IDC_STATIC,13,270,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22≯<EFBFBD>",IDC_STATIC,13,283,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_ID,43,258,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_PASSWORD,43,270,50,12,ES_PASSWORD | ES_AUTOHSCROLL |
|
||||
NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
EDITTEXT ID_NAME,43,283,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><>",IDC_STATIC,13,296,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
COMBOBOX ID_SEX,43,296,50,54,CBS_DROPDOWN | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
CTEXT "<22><><EFBFBD><EFBFBD>",IDC_STATIC,13,309,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_BIRTH,43,309,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22>ֹε<D6B9><CEB5><EFBFBD>",IDC_STATIC,13,322,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_IDNUMBER,43,322,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ",IDC_STATIC,103,270,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_ZIPCODE,133,270,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22>ּ<EFBFBD>",IDC_STATIC,103,283,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_ADDRESS,133,283,109,12,ES_AUTOHSCROLL | ES_OEMCONVERT |
|
||||
ES_WANTRETURN | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
CTEXT "<22>ڵ<EFBFBD><DAB5><EFBFBD>",IDC_STATIC,103,296,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_MOBILE,133,296,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><>ȭ<EFBFBD><C8AD>ȣ",IDC_STATIC,103,309,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_PHONE,133,309,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD>",IDC_STATIC,103,258,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_JOB,133,258,50,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD>",IDC_STATIC,103,322,30,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_EMAIL,133,322,109,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD> <20><> / <20><><EFBFBD><EFBFBD>",IDC_STATIC,7,6,47,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "ID / <20><><EFBFBD>̵<EFBFBD>",IDC_STATIC,196,6,41,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "",ID_SELECTED_UID,237,6,29,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "",ID_SELECTED_ID,266,6,68,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><> <20><>",IDC_STATIC,345,6,27,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "",ID_TOTAL_ROW,372,6,38,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "*",ID_CONNECTION_LED,161,7,10,9,SS_CENTERIMAGE
|
||||
CTEXT "*",ID_QEURY_LED,173,7,10,9,SS_CENTERIMAGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD>",IDC_STATIC,120,6,37,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CONTROL 133,IDC_STATIC,"Static",SS_BITMAP,272,269,127,86
|
||||
DEFPUSHBUTTON "@.@",IDC_DEFAULT,327,319,26,14,BS_FLAT | NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_CONNECT DIALOGEX 0, 0, 143, 169
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "DB <20><><EFBFBD><EFBFBD>"
|
||||
FONT 10, "<22><><EFBFBD><EFBFBD>ü"
|
||||
BEGIN
|
||||
COMBOBOX ID_SELECT_TYPE,74,7,58,70,CBS_DROPDOWN | CBS_SORT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
CTEXT "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_STATIC,9,7,65,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
GROUPBOX "ODBC",IDC_STATIC,8,29,124,32,BS_FLAT
|
||||
CTEXT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҽ<EFBFBD>",IDC_STATIC,15,40,51,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_DATASOURCE_NAME,66,40,58,13,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
GROUPBOX "OLE DB",IDC_STATIC,8,66,124,73,BS_FLAT
|
||||
CTEXT "<22><><EFBFBD><EFBFBD>",IDC_STATIC,15,78,51,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_SERVER_NAME,66,78,58,13,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA>̽<EFBFBD>",IDC_STATIC,15,91,51,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_DATABASE_NAME,66,91,58,13,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
CTEXT "<22>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>",IDC_STATIC,15,117,51,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_AUTHUSER_NAME,66,104,58,13,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD>",IDC_STATIC,15,104,51,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT ID_AUTHUSER_PASS,66,117,58,13,ES_PASSWORD |
|
||||
ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
PUSHBUTTON "Ȯ<><C8AE>",IDOK,45,145,50,14,BS_FLAT
|
||||
END
|
||||
|
||||
IDD_SEARCH DIALOGEX 0, 0, 138, 146
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "<22>˻<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
FONT 10, "<22><><EFBFBD><EFBFBD>ü", 0, 0, 0x1
|
||||
BEGIN
|
||||
PUSHBUTTON "Ȯ<><C8AE>",IDOK,37,115,50,14,BS_FLAT
|
||||
GROUPBOX "<22>˻<EFBFBD>",IDC_STATIC,6,7,123,46,BS_FLAT
|
||||
EDITTEXT ID_SEARCH_TEXT,54,32,66,12,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
CTEXT "<22>˻<EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_STATIC,15,32,39,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
COMBOBOX ID_SELECT_SEARCH,54,19,67,95,CBS_DROPDOWN | CBS_SORT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
CTEXT "<22>˻<EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_STATIC,15,19,39,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD>",IDC_STATIC,6,58,123,46,BS_FLAT
|
||||
COMBOBOX ID_SELECT_ALIGN,54,69,67,95,CBS_DROPDOWN | CBS_SORT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
CTEXT "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_STATIC,15,69,39,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_STATIC,15,82,39,13,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
COMBOBOX ID_SELECT_ALIGNTYPE,54,82,67,95,CBS_DROPDOWN | CBS_SORT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
END
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "041204B0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileDescription", "AuthDBManager MFC <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1>\0"
|
||||
VALUE "FileVersion", "1, 0, 0, 1\0"
|
||||
VALUE "InternalName", "AuthDBManager\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2002\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "AuthDBManager.EXE\0"
|
||||
VALUE "ProductName", "AuthDBManager <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1>\0"
|
||||
VALUE "ProductVersion", "1, 0, 0, 1\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x412, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 114
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 159
|
||||
END
|
||||
|
||||
IDD_AuthDBManager_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 411
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 391
|
||||
END
|
||||
|
||||
IDD_CONNECT, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 136
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 162
|
||||
END
|
||||
|
||||
IDD_SEARCH, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 131
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 139
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON DISCARDABLE "icon.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
//
|
||||
|
||||
IDR_MENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "<22><><EFBFBD><EFBFBD>"
|
||||
BEGIN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>", ID_CONNECT
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>", ID_DISCONNECT
|
||||
END
|
||||
POPUP "<22><><EFBFBD><EFBFBD>"
|
||||
BEGIN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD> <20>߰<EFBFBD>", ID_ADD_USER
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", ID_DELETE_USER
|
||||
END
|
||||
POPUP "<22><>"
|
||||
BEGIN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ", ID_REFESH
|
||||
MENUITEM "<22>˻<EFBFBD> <20><><EFBFBD><EFBFBD>", ID_SEARCH
|
||||
END
|
||||
POPUP "<22><><EFBFBD><EFBFBD>"
|
||||
BEGIN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>", ID_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Bitmap
|
||||
//
|
||||
|
||||
IDB_LEDS BITMAP DISCARDABLE "Led\\leds.bmp"
|
||||
IDB_LOGO BITMAP DISCARDABLE "res\\Logo.bmp"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_F1 "ID"
|
||||
IDS_F2 "<22><><EFBFBD>̵<EFBFBD>"
|
||||
IDS_F3 "<22>н<EFBFBD>"
|
||||
IDS_F4 "<22≯<EFBFBD>"
|
||||
IDS_F5 "<22><>"
|
||||
IDS_F6 "<22><><EFBFBD><EFBFBD>"
|
||||
IDS_F7 "<22>ֹι<D6B9>ȣ"
|
||||
IDS_F8 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ"
|
||||
IDS_F9 "<22>ּ<EFBFBD>"
|
||||
IDS_F10 "<22><EFBFBD><DEB4><EFBFBD>"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_F11 "<22><>ȭ"
|
||||
IDS_F12 "<22><><EFBFBD><EFBFBD>"
|
||||
IDS_F13 "<22><><EFBFBD><EFBFBD>"
|
||||
IDS_F14 "<22><><EFBFBD>Գ<EFBFBD>¥"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_S1 "<22><>"
|
||||
IDS_S2 "<22><>"
|
||||
IDS_A1 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
IDS_A2 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
END
|
||||
|
||||
#endif // Korean resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
#include "res\AuthDBManager.rc2" // non-Microsoft Visual C++ edited resources
|
||||
#include "l.kor\afxres.rc" // Standard components
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
254
Server/ToolProject/AuthDBManager/AuthDBManager.vcproj
Normal file
@@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="AuthDBManager"
|
||||
ProjectGUID="{8832403E-C3A9-419C-832D-0BF8968EA53B}"
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib oledb.lib msdasc.lib"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="TRUE"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/AuthDBManager.tlb"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1042"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib oledb.lib msdasc.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
SubSystem="2"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/AuthDBManager.tlb"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1042"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||
<File
|
||||
RelativePath=".\AuthDBManager.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthDBManager.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthDBManagerDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ConnectDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\SearchDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\StdAfx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\UserList.cpp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl">
|
||||
<File
|
||||
RelativePath=".\AuthDBManager.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthDBManagerDlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="AuthDef.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ConnectDlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\plugin.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\SearchDlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\StdAfx.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\UserList.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||
<File
|
||||
RelativePath=".\res\AuthDBManager.rc2">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\icon.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Led\leds.bmp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\Logo.bmp">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Led"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\Led\Led.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Led\Led.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="ListViewControl"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\ListViewControl\InPlaceEdit.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ListViewControl\InPlaceEdit.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ListViewControl\InPlaceList.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ListViewControl\InPlaceList.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ListViewControl\ListViewControl.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ListViewControl\ListViewControl.h">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="AuthDBManager.rc"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
640
Server/ToolProject/AuthDBManager/AuthDBManagerDlg.cpp
Normal file
@@ -0,0 +1,640 @@
|
||||
// AuthDBManagerDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthDBManager.h"
|
||||
#include "AuthDBManagerDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAboutDlg dialog used for App About
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CAboutDlg)
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
CListBox m_PlugList;
|
||||
CString m_LastUpdate;
|
||||
CString m_Creater;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAboutDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
//{{AFX_MSG(CAboutDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSelchangePluginList();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CAboutDlg)
|
||||
m_LastUpdate = _T("");
|
||||
m_Creater = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CAboutDlg)
|
||||
DDX_Control(pDX, ID_PLUGIN_LIST, m_PlugList);
|
||||
DDX_Text(pDX, ID_LASTUPDATE, m_LastUpdate);
|
||||
DDX_Text(pDX, ID_CREATER, m_Creater);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
BOOL CAboutDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
CString PlugInfoS;
|
||||
|
||||
if(pAppWnd->m_PlugInInfo.PlugInfo)
|
||||
{
|
||||
PlugInfoS.Format("%s %s", pAppWnd->m_PlugInInfo.PlugInName, pAppWnd->m_PlugInInfo.PlugInVer);
|
||||
|
||||
m_PlugList.AddString(PlugInfoS);
|
||||
}
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CAboutDlg::OnSelchangePluginList()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
|
||||
int Sel;
|
||||
|
||||
Sel = m_PlugList.GetCurSel();
|
||||
if(Sel == 0)
|
||||
{
|
||||
m_Creater = pAppWnd->m_PlugInInfo.PlugInCreator.CreaterName;
|
||||
m_LastUpdate = pAppWnd->m_PlugInInfo.PlugInLastUpdate;
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CAboutDlg)
|
||||
ON_LBN_SELCHANGE(ID_PLUGIN_LIST, OnSelchangePluginList)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerDlg dialog
|
||||
|
||||
CAuthDBManagerDlg::CAuthDBManagerDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CAuthDBManagerDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CAuthDBManagerDlg)
|
||||
m_ErrorLog = _T("");
|
||||
m_SelectedCount = _T("");
|
||||
m_SelectedRow = _T("");
|
||||
m_SelectedUID = _T("");
|
||||
m_SelectedID = _T("");
|
||||
m_TotalRow = _T("");
|
||||
m_Address = _T("");
|
||||
m_Birth = _T("");
|
||||
m_Email = _T("");
|
||||
m_ID = _T("");
|
||||
m_IDNumber = _T("");
|
||||
m_Job = _T("");
|
||||
m_Mobile = _T("");
|
||||
m_Name = _T("");
|
||||
m_Password = _T("");
|
||||
m_Phone = _T("");
|
||||
m_ZipCode = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CAuthDBManagerDlg)
|
||||
DDX_Control(pDX, ID_SEX, m_Sex);
|
||||
DDX_Control(pDX, ID_CHAR_LIST, m_UserList);
|
||||
DDX_Control(pDX, ID_QEURY_LED, m_QueryLed);
|
||||
DDX_Control(pDX, ID_CONNECTION_LED, m_ConnectionLed);
|
||||
DDX_Text(pDX, ID_ERROR_LOG, m_ErrorLog);
|
||||
DDX_Text(pDX, ID_SELECTED_COUNT, m_SelectedCount);
|
||||
DDX_Text(pDX, ID_SELECTED_ROW, m_SelectedRow);
|
||||
DDX_Text(pDX, ID_SELECTED_UID, m_SelectedUID);
|
||||
DDX_Text(pDX, ID_SELECTED_ID, m_SelectedID);
|
||||
DDX_Text(pDX, ID_TOTAL_ROW, m_TotalRow);
|
||||
DDX_Text(pDX, ID_ADDRESS, m_Address);
|
||||
DDX_Text(pDX, ID_BIRTH, m_Birth);
|
||||
DDX_Text(pDX, ID_EMAIL, m_Email);
|
||||
DDX_Text(pDX, ID_ID, m_ID);
|
||||
DDX_Text(pDX, ID_IDNUMBER, m_IDNumber);
|
||||
DDX_Text(pDX, ID_JOB, m_Job);
|
||||
DDX_Text(pDX, ID_MOBILE, m_Mobile);
|
||||
DDX_Text(pDX, ID_NAME, m_Name);
|
||||
DDX_Text(pDX, ID_PASSWORD, m_Password);
|
||||
DDX_Text(pDX, ID_PHONE, m_Phone);
|
||||
DDX_Text(pDX, ID_ZIPCODE, m_ZipCode);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthDBManagerDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CAuthDBManagerDlg)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_NOTIFY(LVN_ENDLABELEDIT, ID_USER_LIST, OnEndlabeleditUserList)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_COMMAND(ID_ABOUT, OnAbout)
|
||||
ON_COMMAND(ID_CONNECT, OnConnect)
|
||||
ON_COMMAND(ID_DISCONNECT, OnDisconnect)
|
||||
ON_NOTIFY(NM_CLICK, ID_USER_LIST, OnClickUserList)
|
||||
ON_COMMAND(ID_ADD_USER, OnAddUser)
|
||||
ON_COMMAND(ID_DELETE_USER, OnDeleteUser)
|
||||
ON_COMMAND(ID_INIT_LOGINTIME, OnInitLogintime)
|
||||
ON_COMMAND(ID_REFESH, OnRefesh)
|
||||
ON_COMMAND(ID_SEARCH, OnSearch)
|
||||
ON_NOTIFY(LVN_KEYDOWN, ID_USER_LIST, OnKeydownUserList)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerDlg message handlers
|
||||
|
||||
BOOL CAuthDBManagerDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
char SelectName[256];
|
||||
int Counter;
|
||||
|
||||
// Add "About..." menu item to system menu.
|
||||
|
||||
// IDM_ABOUTBOX must be in the system command range.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the icon for this dialog. The framework does this automatically
|
||||
// when the application's main window is not a dialog
|
||||
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
m_UserList.SetColumn();
|
||||
|
||||
for(Counter = 0; Counter < 2; Counter++)
|
||||
{
|
||||
LoadString(pAppWnd->m_Language, IDS_S1 + Counter, SelectName, 256);
|
||||
m_Sex.InsertString(Counter, SelectName);
|
||||
}
|
||||
m_Sex.SetCurSel(0);
|
||||
|
||||
m_ConnectionLed.SetLed(CLed::LED_COLOR_GREEN, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
|
||||
m_Align = 0;
|
||||
m_AlignType = 0;
|
||||
m_SearchType = 0;
|
||||
ZeroMemory(m_Search, sizeof(char) * 256);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// If you add a minimize button to your dialog, you will need the code below
|
||||
// to draw the icon. For MFC applications using the document/view model,
|
||||
// this is automatically done for you by the framework.
|
||||
|
||||
void CAuthDBManagerDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
|
||||
|
||||
// Center icon in client rectangle
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// Draw the icon
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// The system calls this to obtain the cursor to display while the user drags
|
||||
// the minimized window.
|
||||
HCURSOR CAuthDBManagerDlg::OnQueryDragIcon()
|
||||
{
|
||||
return (HCURSOR) m_hIcon;
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnAbout()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnConnect()
|
||||
{
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_ON, CLed::LED_ROUND);
|
||||
|
||||
if(!CDBSingleObject::GetInstance().Connect(CDBSingleObject::Class_AuthDB))
|
||||
{
|
||||
m_ErrorLog.Format("[<5B><><EFBFBD><EFBFBD>] <20><><EFBFBD>ӿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߽<EFBFBD><DFBD>ϴ<EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ErrorLog.Format("[<5B><><EFBFBD><EFBFBD>] <20><><EFBFBD>ӿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߽<EFBFBD><DFBD>ϴ<EFBFBD>.");
|
||||
}
|
||||
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
m_ConnectionLed.SetLed(CLed::LED_COLOR_GREEN, CLed::LED_ON, CLed::LED_ROUND);
|
||||
|
||||
UpdateUserTable();
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnDisconnect()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_ON, CLed::LED_ROUND);
|
||||
|
||||
if(CDBSingleObject::GetInstance().DisconnectDataSource())
|
||||
m_ConnectionLed.SetLed(CLed::LED_COLOR_GREEN, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
}
|
||||
|
||||
bool CAuthDBManagerDlg::ConnectDB(int Type, CString DataSource, CString Server, CString DataBase, CString User, CString Pass)
|
||||
{
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_ON, CLed::LED_ROUND);
|
||||
|
||||
if(Type == 0)
|
||||
{
|
||||
if(!CDBSingleObject::GetInstance().ConnectSQLServer(DataSource.GetBuffer(0), NULL, NULL, NULL, CDBSingleObject::ConnType_ODBC))
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(Type == 1)
|
||||
{
|
||||
if(!CDBSingleObject::GetInstance().ConnectSQLServer(Server.GetBuffer(0), DataBase.GetBuffer(0), User.GetBuffer(0), Pass.GetBuffer(0), CDBSingleObject::ConnType_MSSQL))
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(Type == 2)
|
||||
{
|
||||
if(!CDBSingleObject::GetInstance().ConnectDataSourcePrompt(m_hWnd))
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
m_QueryLed.SetLed(CLed::LED_COLOR_RED, CLed::LED_OFF, CLed::LED_ROUND);
|
||||
m_ConnectionLed.SetLed(CLed::LED_COLOR_GREEN, CLed::LED_ON, CLed::LED_ROUND);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const int MaxRow = 200;
|
||||
|
||||
bool CAuthDBManagerDlg::UpdateUserTable(void)
|
||||
{
|
||||
SELECT_AUTHUSER_TABLE LoginTable[MaxRow] = {0,};
|
||||
|
||||
int StartRow;
|
||||
int RowCounter, Rows;
|
||||
|
||||
char Query[256] = "";
|
||||
char Option[256] = "";
|
||||
|
||||
if(m_SearchType != 0)
|
||||
{
|
||||
if(m_SearchType == 1)
|
||||
{
|
||||
sprintf(Option, " where Account='%s'", m_Search);
|
||||
}
|
||||
else if(m_SearchType == 2)
|
||||
{
|
||||
sprintf(Option, " where Name='%s'", m_Search);
|
||||
}
|
||||
}
|
||||
|
||||
if(m_Align == 0)
|
||||
{
|
||||
strcat(Option, " order by UID");
|
||||
}
|
||||
else if(m_Align == 1)
|
||||
{
|
||||
strcat(Option, " order by Account");
|
||||
}
|
||||
else if(m_Align == 2)
|
||||
{
|
||||
strcat(Option, " order by Name");
|
||||
}
|
||||
|
||||
if(m_AlignType == 0)
|
||||
{
|
||||
strcat(Option, " asc");
|
||||
}
|
||||
else if(m_AlignType == 1)
|
||||
{
|
||||
strcat(Option, " desc");
|
||||
}
|
||||
|
||||
m_UserList.DeleteAllItems();
|
||||
|
||||
sprintf(Query, "select * from AuthUser %s", Option);
|
||||
for(StartRow = 0;; StartRow += MaxRow)
|
||||
{
|
||||
if(CDBSingleObject::GetInstance().Select(Query, (void**)&LoginTable, sizeof(SELECT_AUTHUSER_TABLE), StartRow, MaxRow, &Rows))
|
||||
{
|
||||
for(RowCounter = 0; RowCounter < Rows; RowCounter++)
|
||||
m_UserList.AddUserRow(&LoginTable[RowCounter]);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if(Rows < MaxRow)
|
||||
break;
|
||||
}
|
||||
|
||||
m_TotalRow.Format("%d", StartRow + Rows);
|
||||
UpdateData(FALSE);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnClickUserList(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
POSITION Pos;
|
||||
int Index;
|
||||
|
||||
unsigned long UserUID;
|
||||
char strUserUID[256];
|
||||
char strUserID[256];
|
||||
|
||||
Pos= m_UserList.GetFirstSelectedItemPosition();
|
||||
if(Pos != NULL)
|
||||
{
|
||||
while(Pos)
|
||||
{
|
||||
Index = m_UserList.GetNextSelectedItem(Pos);
|
||||
}
|
||||
|
||||
m_SelectedRow.Format("%d", Index);
|
||||
m_SelectedCount.Format("%d", m_UserList.GetSelectedCount());
|
||||
|
||||
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
||||
if(m_UserList.GetItemText(Index, 0, strUserUID, 256))
|
||||
{
|
||||
UserUID = atoi(strUserUID);
|
||||
|
||||
m_SelectedUID.Format("%d", UserUID);
|
||||
|
||||
m_UserList.GetItemText(Index, 1, strUserID, 256);
|
||||
m_SelectedID = strUserID;
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnEndlabeleditUserList(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
|
||||
|
||||
char Query[256] = "";
|
||||
|
||||
// TODO: Add your control notification handler code here
|
||||
UPDATE_AUTHUSER_TABLE ModifyLoginTable;
|
||||
LV_ITEM *plvItem = &pDispInfo->item;
|
||||
|
||||
ZeroMemory(&ModifyLoginTable, sizeof(UPDATE_AUTHUSER_TABLE));
|
||||
|
||||
if(plvItem->pszText != NULL)
|
||||
{
|
||||
m_UserList.SetItemText(plvItem->iItem, plvItem->iSubItem, plvItem->pszText);
|
||||
|
||||
m_UserList.GetUserRow(plvItem->iItem, &ModifyLoginTable);
|
||||
|
||||
sprintf(Query, "UpdateUser '%d', '%s', '%s', '%s', '%d', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'",
|
||||
ModifyLoginTable.UID, ModifyLoginTable.AuthID, ModifyLoginTable.AuthPW, ModifyLoginTable.Name, ModifyLoginTable.Sex, ModifyLoginTable.Birth,
|
||||
ModifyLoginTable.ZipCode, ModifyLoginTable.Address, ModifyLoginTable.Mobile, ModifyLoginTable.Phone, ModifyLoginTable.Email, ModifyLoginTable.Job,
|
||||
ModifyLoginTable.IDNumber);
|
||||
|
||||
CDBSingleObject::GetInstance().ExecuteQuery(Query);;
|
||||
}
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnAddUser()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
INSERT_AUTHUSER_TABLE InsertLoginTable = {0,};
|
||||
char Query[256] = "";
|
||||
|
||||
UpdateData(TRUE);
|
||||
|
||||
strncpy(InsertLoginTable.AuthID, m_ID.GetBuffer(16), 16);
|
||||
strncpy(InsertLoginTable.AuthPW, m_Password.GetBuffer(16), 16);
|
||||
strncpy(InsertLoginTable.Name, m_Name.GetBuffer(16), 16);
|
||||
InsertLoginTable.Sex = m_Sex.GetCurSel();
|
||||
strncpy(InsertLoginTable.Birth, m_Birth.GetBuffer(20), 20);
|
||||
strncpy(InsertLoginTable.IDNumber, m_IDNumber.GetBuffer(14), 14);
|
||||
strncpy(InsertLoginTable.ZipCode, m_ZipCode.GetBuffer(12), 12);
|
||||
strncpy(InsertLoginTable.Address, m_Address.GetBuffer(80), 80);
|
||||
strncpy(InsertLoginTable.Mobile, m_Mobile.GetBuffer(20), 20);
|
||||
strncpy(InsertLoginTable.Phone, m_Phone.GetBuffer(20), 20);
|
||||
strncpy(InsertLoginTable.Email, m_Email.GetBuffer(48), 48);
|
||||
strncpy(InsertLoginTable.Job, m_Job.GetBuffer(20), 20);
|
||||
|
||||
sprintf(Query, "InsertUser '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'",
|
||||
InsertLoginTable.AuthID, InsertLoginTable.AuthPW, InsertLoginTable.Name, InsertLoginTable.Sex, InsertLoginTable.Birth,InsertLoginTable.ZipCode,
|
||||
InsertLoginTable.Address, InsertLoginTable.Mobile, InsertLoginTable.Phone, InsertLoginTable.Email, InsertLoginTable.Job, InsertLoginTable.IDNumber);
|
||||
|
||||
if(CDBSingleObject::GetInstance().ExecuteQuery(Query))
|
||||
UpdateUserTable();
|
||||
else
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnDeleteUser()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
POSITION Pos;
|
||||
int Index;
|
||||
|
||||
char Query[256] = "";
|
||||
char strUserUID[256] = "";
|
||||
|
||||
Pos= m_UserList.GetFirstSelectedItemPosition();
|
||||
if(Pos != NULL)
|
||||
{
|
||||
while(Pos != NULL)
|
||||
{
|
||||
Index = m_UserList.GetNextSelectedItem(Pos);
|
||||
|
||||
if(m_UserList.GetItemText(Index, 0, strUserUID, 256))
|
||||
{
|
||||
sprintf(Query, "DeleteUserByUID %s", strUserUID);
|
||||
if(!CDBSingleObject::GetInstance().ExecuteQuery(Query))
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UpdateUserTable();
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnInitLogintime()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnRefesh()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
UpdateUserTable();
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnSearch()
|
||||
{
|
||||
// TODO: Add your command handler code here
|
||||
CSearchDlg dlgSearch;
|
||||
dlgSearch.DoModal();
|
||||
|
||||
UpdateUserTable();
|
||||
}
|
||||
|
||||
void CAuthDBManagerDlg::OnKeydownUserList(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
NMLVKEYDOWN* pKeyDown = (NMLVKEYDOWN*)pNMHDR;
|
||||
// TODO: Add your control notification handler code here
|
||||
POSITION Pos;
|
||||
int Index;
|
||||
|
||||
char Query[256] = "";
|
||||
char strUserUID[256] = "";
|
||||
|
||||
if(pKeyDown->wVKey == VK_DELETE)
|
||||
{
|
||||
Pos= m_UserList.GetFirstSelectedItemPosition();
|
||||
if(Pos != NULL)
|
||||
{
|
||||
while(Pos)
|
||||
{
|
||||
Index = m_UserList.GetNextSelectedItem(Pos);
|
||||
|
||||
if(m_UserList.GetItemText(Index, 0, strUserUID, 256))
|
||||
{
|
||||
sprintf(Query, "DeleteUserByUID %s", strUserUID);
|
||||
if(!CDBSingleObject::GetInstance().ExecuteQuery(Query))
|
||||
{
|
||||
m_ErrorLog = CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UpdateUserTable();
|
||||
}
|
||||
}
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
98
Server/ToolProject/AuthDBManager/AuthDBManagerDlg.h
Normal file
@@ -0,0 +1,98 @@
|
||||
// AuthDBManagerDlg.h : header file
|
||||
//
|
||||
|
||||
#if !defined(AFX_AuthDBManagerDLG_H__E7BBB14C_99A2_40F4_A212_B00B1FF8EEF2__INCLUDED_)
|
||||
#define AFX_AuthDBManagerDLG_H__E7BBB14C_99A2_40F4_A212_B00B1FF8EEF2__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthDBManagerDlg dialog
|
||||
#include "AuthDBManager.h"
|
||||
|
||||
#include "Led\Led.h"
|
||||
|
||||
#include "ConnectDlg.h"
|
||||
#include "SearchDlg.h"
|
||||
#include "UserList.h"
|
||||
|
||||
class CAuthDBManagerDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CAuthDBManagerDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CAuthDBManagerDlg)
|
||||
enum { IDD = IDD_AuthDBManager_DIALOG };
|
||||
CComboBox m_Sex;
|
||||
CUserList m_UserList;
|
||||
CLed m_QueryLed;
|
||||
CLed m_ConnectionLed;
|
||||
CString m_ErrorLog;
|
||||
CString m_SelectedCount;
|
||||
CString m_SelectedRow;
|
||||
CString m_SelectedUID;
|
||||
CString m_SelectedID;
|
||||
CString m_TotalRow;
|
||||
CString m_Address;
|
||||
CString m_Birth;
|
||||
CString m_Email;
|
||||
CString m_ID;
|
||||
CString m_IDNumber;
|
||||
CString m_Job;
|
||||
CString m_Mobile;
|
||||
CString m_Name;
|
||||
CString m_Password;
|
||||
CString m_Phone;
|
||||
CString m_ZipCode;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAuthDBManagerDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
char m_Select[2][10];
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CAuthDBManagerDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnEndlabeleditUserList(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
afx_msg void OnAbout();
|
||||
afx_msg void OnConnect();
|
||||
afx_msg void OnDisconnect();
|
||||
afx_msg void OnClickUserList(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnAddUser();
|
||||
afx_msg void OnDeleteUser();
|
||||
afx_msg void OnInitLogintime();
|
||||
afx_msg void OnRefesh();
|
||||
afx_msg void OnSearch();
|
||||
afx_msg void OnKeydownUserList(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
public:
|
||||
int m_Align; // <20><><EFBFBD><EFBFBD>
|
||||
int m_AlignType;
|
||||
int m_SearchType; // <20>˻<EFBFBD>
|
||||
char m_Search[256];
|
||||
|
||||
public:
|
||||
bool ConnectDB(int Type, CString DataSource, CString Server, CString DataBase, CString User, CString Pass);
|
||||
bool UpdateUserTable(void);
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_AuthDBManagerDLG_H__E7BBB14C_99A2_40F4_A212_B00B1FF8EEF2__INCLUDED_)
|
||||
66
Server/ToolProject/AuthDBManager/AuthDef.h
Normal file
@@ -0,0 +1,66 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Table Schema Define
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef _AuthDBDef
|
||||
#define _AuthDBDef
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct _INSERT_AUTHUSER_TABLE
|
||||
{
|
||||
char AuthID[16]; // <20><><EFBFBD>̵<EFBFBD>
|
||||
char AuthPW[16]; // <20>н<EFBFBD>
|
||||
char Name[16]; // <20≯<EFBFBD>
|
||||
char Sex; // <20><><EFBFBD><EFBFBD>
|
||||
char Birth[11]; // <20><><EFBFBD><EFBFBD>
|
||||
char ZipCode[12]; // <20><><EFBFBD><EFBFBD> <20><>ȣ
|
||||
char Address[80]; // <20>ּ<EFBFBD>
|
||||
char Mobile[20]; // <20><EFBFBD><DEB4><EFBFBD>
|
||||
char Phone[20]; // <20><>ȭ
|
||||
char Email[50]; // <20≯<EFBFBD><CCB8><EFBFBD>
|
||||
char Job[20]; // <20><><EFBFBD><EFBFBD>
|
||||
char IDNumber[15]; // <20>ֹε<D6B9><CEB5><EFBFBD> <20><>ȣ
|
||||
}INSERT_AUTHUSER_TABLE, *LPINSERT_AUTHUSER_TABLE;
|
||||
#pragma pack()
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct _SELECT_AUTHUSER_TABLE
|
||||
{
|
||||
unsigned long UID; // <20><><EFBFBD>̵<EFBFBD>
|
||||
char AuthID[16]; // <20><><EFBFBD>̵<EFBFBD>
|
||||
char AuthPW[16]; // <20>н<EFBFBD>
|
||||
char Name[16]; // <20≯<EFBFBD>
|
||||
char Sex; // <20><><EFBFBD><EFBFBD>
|
||||
char Birth[11]; // <20><><EFBFBD><EFBFBD>
|
||||
char ZipCode[12]; // <20><><EFBFBD><EFBFBD> <20><>ȣ
|
||||
char Address[80]; // <20>ּ<EFBFBD>
|
||||
char Mobile[20]; // <20><EFBFBD><DEB4><EFBFBD>
|
||||
char Phone[20]; // <20><>ȭ
|
||||
char Email[50]; // <20≯<EFBFBD><CCB8><EFBFBD>
|
||||
char Job[20]; // <20><><EFBFBD><EFBFBD>
|
||||
char IDNumber[15]; // <20>ֹε<D6B9><CEB5><EFBFBD> <20><>ȣ
|
||||
TIME Reg_Date; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}SELECT_AUTHUSER_TABLE, *LPSELECT_AUTHUSER_TABLE;
|
||||
#pragma pack()
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct _UPDATE_AUTHUSER_TABLE
|
||||
{
|
||||
unsigned long UID; // <20><><EFBFBD>̵<EFBFBD>
|
||||
char AuthID[16]; // <20><><EFBFBD>̵<EFBFBD>
|
||||
char AuthPW[16]; // <20>н<EFBFBD>
|
||||
char Name[16]; // <20≯<EFBFBD>
|
||||
char Sex; // <20><><EFBFBD><EFBFBD>
|
||||
char Birth[11]; // <20><><EFBFBD><EFBFBD>
|
||||
char ZipCode[12]; // <20><><EFBFBD><EFBFBD> <20><>ȣ
|
||||
char Address[80]; // <20>ּ<EFBFBD>
|
||||
char Mobile[20]; // <20><EFBFBD><DEB4><EFBFBD>
|
||||
char Phone[20]; // <20><>ȭ
|
||||
char Email[50]; // <20≯<EFBFBD><CCB8><EFBFBD>
|
||||
char Job[20]; // <20><><EFBFBD><EFBFBD>
|
||||
char IDNumber[15]; // <20>ֹε<D6B9><CEB5><EFBFBD> <20><>ȣ
|
||||
}UPDATE_AUTHUSER_TABLE, *LPUPDATE_AUTHUSER_TABLE;
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
89
Server/ToolProject/AuthDBManager/ConnectDlg.cpp
Normal file
@@ -0,0 +1,89 @@
|
||||
// ConnectDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthDBManager.h"
|
||||
#include "ConnectDlg.h"
|
||||
#include "AuthDBManagerDlg.h"
|
||||
#include ".\connectdlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CConnectDlg dialog
|
||||
|
||||
|
||||
CConnectDlg::CConnectDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CConnectDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CConnectDlg)
|
||||
m_AuthUserName = _T("");
|
||||
m_AuthUserPass = _T("");
|
||||
m_DataBaseName = _T("");
|
||||
m_DataSourceName = _T("");
|
||||
m_ServerName = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
}
|
||||
|
||||
|
||||
void CConnectDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CConnectDlg)
|
||||
DDX_Control(pDX, ID_SELECT_TYPE, m_SelectControl);
|
||||
DDX_Text(pDX, ID_AUTHUSER_NAME, m_AuthUserName);
|
||||
DDX_Text(pDX, ID_AUTHUSER_PASS, m_AuthUserPass);
|
||||
DDX_Text(pDX, ID_DATABASE_NAME, m_DataBaseName);
|
||||
DDX_Text(pDX, ID_DATASOURCE_NAME, m_DataSourceName);
|
||||
DDX_Text(pDX, ID_SERVER_NAME, m_ServerName);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CConnectDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CConnectDlg)
|
||||
// NOTE: the ClassWizard will add message map macros here
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(IDOK, OnBnClickedOk)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CconnectDlg message handlers
|
||||
|
||||
BOOL CConnectDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
m_SelectControl.InsertString(0, "ODBC");
|
||||
m_SelectControl.InsertString(1, "OLE DB");
|
||||
m_SelectControl.InsertString(2, "Source Prompt");
|
||||
|
||||
m_SelectControl.SetCurSel(0);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CConnectDlg::OnOK()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
CAuthDBManagerDlg* pDlgWnd = (CAuthDBManagerDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
UpdateData();
|
||||
|
||||
pDlgWnd->ConnectDB(m_SelectControl.GetCurSel(), m_DataSourceName, m_ServerName, m_DataBaseName, m_AuthUserName, m_AuthUserPass);
|
||||
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CConnectDlg::OnBnClickedOk()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
OnOK();
|
||||
}
|
||||
54
Server/ToolProject/AuthDBManager/ConnectDlg.h
Normal file
@@ -0,0 +1,54 @@
|
||||
#if !defined(AFX_CONNECTDLG_H__815DC394_E827_414B_96D6_30BA20241E8F__INCLUDED_)
|
||||
#define AFX_CONNECTDLG_H__815DC394_E827_414B_96D6_30BA20241E8F__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// ConnectDlg.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CConnectDlg dialog
|
||||
|
||||
class CConnectDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CConnectDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CconnectDlg)
|
||||
enum { IDD = IDD_CONNECT };
|
||||
CComboBox m_SelectControl;
|
||||
CString m_AuthUserName;
|
||||
CString m_AuthUserPass;
|
||||
CString m_DataBaseName;
|
||||
CString m_DataSourceName;
|
||||
CString m_ServerName;
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CconnectDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CconnectDlg)
|
||||
virtual void OnOK();
|
||||
virtual BOOL OnInitDialog();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedOk();
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_CONNECTDLG_H__815DC394_E827_414B_96D6_30BA20241E8F__INCLUDED_)
|
||||
238
Server/ToolProject/AuthDBManager/Led/Led.cpp
Normal file
@@ -0,0 +1,238 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Led.cpp : implementation file
|
||||
// Visual Source Safe: $Revision: 1 $
|
||||
//
|
||||
// Led static control. Will display a LED in 4 different colors and two shapes.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 1998-1999 Monte Variakojis ( monte@apollocom.com )
|
||||
// All rights reserved - not to be sold.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "..\stdafx.h"
|
||||
#include "..\resource.h"
|
||||
#include "Led.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CLed
|
||||
#define TIMER_ID_PING 1 // Timer Ping ID
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
CLed::CLed()
|
||||
{
|
||||
m_LedBitmap.LoadBitmap(IDB_LEDS);
|
||||
m_nLedColor = LED_COLOR_RED;
|
||||
m_nLedMode = LED_OFF;
|
||||
m_nLedShape = LED_ROUND;
|
||||
}
|
||||
|
||||
CLed::~CLed()
|
||||
{
|
||||
VERIFY(m_LedBitmap.DeleteObject());
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CLed, CStatic)
|
||||
//{{AFX_MSG_MAP(CLed)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_TIMER()
|
||||
ON_WM_CREATE()
|
||||
ON_WM_ERASEBKGND()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CLed message handlers
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
void CLed::OnPaint()
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
DrawLed(&dc,m_nLedColor,m_nLedMode,m_nLedShape);
|
||||
|
||||
// Do not call CStatic::OnPaint() for painting messages
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: SetLed
|
||||
// Description: This method will draw the LED to the specified DC.
|
||||
//
|
||||
// Entry:
|
||||
// CDC *pDC - DC to draw to
|
||||
//
|
||||
// int iLedColor - Where color is defined by:
|
||||
// LED_COLOR_RED
|
||||
// LED_COLOR_GREEN
|
||||
// LED_COLOR_YELLOW
|
||||
// LED_COLOR_BLUE
|
||||
//
|
||||
// int iMode - where mode is defined by:
|
||||
// LED_ON
|
||||
// LED_OFF
|
||||
// LED_DISABLED
|
||||
//
|
||||
// int iShape - where shape is defined by:
|
||||
// LED_ROUND
|
||||
// LED_SQUARE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
void CLed::DrawLed(CDC *pDC,int nLEDColor, int nMode, int nShape)
|
||||
{
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
|
||||
//
|
||||
// Center led within an oversized window
|
||||
//
|
||||
if(rect.Width() >= LED_SIZE && rect.Height() >= LED_SIZE)
|
||||
{
|
||||
int nWidth = rect.Width();
|
||||
int nHeight = rect.Height();
|
||||
rect.left += (nWidth - LED_SIZE)/2;
|
||||
rect.right -= (nWidth - LED_SIZE)/2;
|
||||
rect.top += (nHeight - LED_SIZE)/2;
|
||||
rect.bottom -= (nHeight - LED_SIZE)/2;
|
||||
}
|
||||
|
||||
//
|
||||
// Prepare temporary DCs and bitmaps
|
||||
//
|
||||
CBitmap TransBitmap;
|
||||
TransBitmap.CreateBitmap(LED_SIZE,LED_SIZE,1,1,NULL);
|
||||
CBitmap bitmapTemp;
|
||||
CBitmap* pBitmap = &m_LedBitmap;
|
||||
CDC srcDC;
|
||||
CDC dcMask;
|
||||
CDC TempDC;
|
||||
TempDC.CreateCompatibleDC(pDC);
|
||||
srcDC.CreateCompatibleDC(pDC);
|
||||
dcMask.CreateCompatibleDC(pDC);
|
||||
|
||||
CBitmap* pOldBitmap = srcDC.SelectObject(pBitmap);
|
||||
CBitmap* pOldMaskbitmap = dcMask.SelectObject(&TransBitmap);
|
||||
bitmapTemp.CreateCompatibleBitmap(pDC,LED_SIZE,LED_SIZE);
|
||||
|
||||
//
|
||||
// Work with tempDC and bitmapTemp to reduce flickering
|
||||
//
|
||||
CBitmap *pOldBitmapTemp = TempDC.SelectObject(&bitmapTemp);
|
||||
TempDC.BitBlt(0, 0, LED_SIZE, LED_SIZE, pDC, rect.left, rect.top, SRCCOPY);
|
||||
|
||||
//
|
||||
// Create mask
|
||||
//
|
||||
COLORREF OldBkColor = srcDC.SetBkColor(RGB(255,0,255));
|
||||
dcMask.BitBlt(0, 0, LED_SIZE, LED_SIZE,&srcDC, nMode*LED_SIZE, nLEDColor+nShape, SRCCOPY);
|
||||
TempDC.SetBkColor(OldBkColor);
|
||||
|
||||
//
|
||||
// Using the IDB_LEDS bitmap, index into the bitmap for the appropriate
|
||||
// LED. By using the mask color (RGB(255,0,255)) a mask has been created
|
||||
// so the bitmap will appear transparent.
|
||||
//
|
||||
TempDC.BitBlt(0, 0, LED_SIZE, LED_SIZE, &srcDC, nMode*LED_SIZE, nLEDColor+nShape, SRCINVERT);
|
||||
TempDC.BitBlt(0, 0, LED_SIZE, LED_SIZE,&dcMask, 0, 0, SRCAND);
|
||||
TempDC.BitBlt(0, 0, LED_SIZE, LED_SIZE, &srcDC, nMode*LED_SIZE, nLEDColor+nShape, SRCINVERT);
|
||||
|
||||
//
|
||||
// Since the actual minipulation is done to tempDC so there is minimal
|
||||
// flicker, it is now time to draw the result to the screen.
|
||||
//
|
||||
pDC->BitBlt(rect.left, rect.top, LED_SIZE, LED_SIZE, &TempDC, 0, 0, SRCCOPY);
|
||||
|
||||
//
|
||||
// House cleaning
|
||||
//
|
||||
srcDC.SelectObject(pOldBitmap);
|
||||
dcMask.SelectObject(pOldMaskbitmap);
|
||||
TempDC.SelectObject(pOldBitmapTemp);
|
||||
VERIFY(srcDC.DeleteDC());
|
||||
VERIFY(dcMask.DeleteDC());
|
||||
VERIFY(TempDC.DeleteDC());
|
||||
VERIFY(TransBitmap.DeleteObject());
|
||||
VERIFY(bitmapTemp.DeleteObject());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: SetLed
|
||||
// Description: This method will draw and set led parameters.
|
||||
//
|
||||
// Entry: int iLedColor - Where color is defined by:
|
||||
// LED_COLOR_RED
|
||||
// LED_COLOR_GREEN
|
||||
// LED_COLOR_YELLOW
|
||||
// LED_COLOR_BLUE
|
||||
//
|
||||
// int iMode - where mode is defined by:
|
||||
// LED_ON
|
||||
// LED_OFF
|
||||
// LED_DISABLED
|
||||
//
|
||||
// int iShape - where shape is defined by:
|
||||
// LED_ROUND
|
||||
// LED_SQUARE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
void CLed::SetLed(int nLedColor, int nMode, int nShape)
|
||||
{
|
||||
m_nLedColor = nLedColor;
|
||||
m_nLedMode = nMode;
|
||||
m_nLedShape = nShape;
|
||||
|
||||
CDC *pDC;
|
||||
pDC = GetDC();
|
||||
DrawLed(pDC,m_nLedColor,m_nLedMode,m_nLedShape);
|
||||
ReleaseDC(pDC);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: Ping
|
||||
// Description: This method will turn the led on for dwTimeout milliseconds and
|
||||
// then turn it off.
|
||||
//
|
||||
// Entry: DWORD dwTimeout - Time out in milliseconds
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
void CLed::Ping(DWORD dwTimeout)
|
||||
{
|
||||
// Return if pinging
|
||||
if(m_bPingEnabled == TRUE)
|
||||
{
|
||||
KillTimer(TIMER_ID_PING);
|
||||
}
|
||||
|
||||
m_bPingEnabled = TRUE;
|
||||
SetLed(m_nLedColor,CLed::LED_ON,m_nLedShape);
|
||||
SetTimer(TIMER_ID_PING,dwTimeout,NULL);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
void CLed::OnTimer(UINT nIDEvent)
|
||||
{
|
||||
if(nIDEvent == TIMER_ID_PING)
|
||||
{
|
||||
SetLed(m_nLedColor,CLed::LED_OFF,m_nLedShape);
|
||||
KillTimer(nIDEvent);
|
||||
m_bPingEnabled = FALSE;
|
||||
}
|
||||
|
||||
CStatic::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
BOOL CLed::OnEraseBkgnd(CDC* pDC)
|
||||
{
|
||||
// No background rendering
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
88
Server/ToolProject/AuthDBManager/Led/Led.h
Normal file
@@ -0,0 +1,88 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Led.h : header file
|
||||
// Visual Source Safe: $Revision: 1 $
|
||||
//
|
||||
// Led static control. Will display a LED in 4 different colors and two shapes.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 1998-1999 Monte Variakojis ( monte@apollocom.com )
|
||||
// All rights reserved - not to be sold.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#if !defined(AFX_LEDWND_H__2D837381_FFEC_11D1_A1CE_00A024D311C0__INCLUDED_)
|
||||
#define AFX_LEDWND_H__2D837381_FFEC_11D1_A1CE_00A024D311C0__INCLUDED_
|
||||
|
||||
#if _MSC_VER >= 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER >= 1000
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define LED_SIZE 16 // Led are 16 X 16 pixels
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CLed window
|
||||
class CLed : public CStatic
|
||||
{
|
||||
|
||||
protected:
|
||||
int m_nLedColor, m_nLedMode, m_nLedShape;
|
||||
DWORD m_dwPingTimeout;
|
||||
BOOL m_bPingEnabled;
|
||||
CBitmap m_LedBitmap;
|
||||
|
||||
public:
|
||||
|
||||
enum {
|
||||
LED_ROUND = 0, // Circle starts at row 0
|
||||
LED_SQUARE = LED_SIZE * 4, // squares start at row 4
|
||||
};
|
||||
enum {
|
||||
LED_COLOR_RED = 0 * LED_SIZE, // Row 0
|
||||
LED_COLOR_GREEN = 1 * LED_SIZE, // Row 1
|
||||
LED_COLOR_YELLOW = 2 * LED_SIZE, // Row 2
|
||||
LED_COLOR_BLUE = 3 * LED_SIZE, // Row 3
|
||||
};
|
||||
enum {
|
||||
LED_ON = 0, // Column 0
|
||||
LED_OFF = 1, // Column 1
|
||||
LED_DISABLED = 2, // Column 2
|
||||
};
|
||||
|
||||
// Construction
|
||||
public:
|
||||
CLed();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
void SetLed(int nLedColor, int nMode, int nShape);
|
||||
int GetLedMode(){return m_nLedMode;}
|
||||
void Ping(DWORD dwTimeout = 1000);
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CLed)
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
void DrawLed( CDC *pDC, int nLEDColor, int nMode, int nShape );
|
||||
virtual ~CLed();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CLed)
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_LEDWND_H__2D837381_FFEC_11D1_A1CE_00A024D311C0__INCLUDED_)
|
||||
BIN
Server/ToolProject/AuthDBManager/Led/leds.bmp
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
127
Server/ToolProject/AuthDBManager/ListViewControl/InPlaceEdit.cpp
Normal file
@@ -0,0 +1,127 @@
|
||||
#include "InPlaceEdit.h"
|
||||
|
||||
CInPlaceEdit::CInPlaceEdit(int iItem, int iSubItem, CString sInitText) :m_sInitText( sInitText )
|
||||
{
|
||||
m_iItem = iItem;
|
||||
m_iSubItem = iSubItem;
|
||||
m_bESC = FALSE;
|
||||
}
|
||||
|
||||
CInPlaceEdit::~CInPlaceEdit()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CInPlaceEdit, CEdit)
|
||||
//{{AFX_MSG_MAP(CInPlaceEdit)
|
||||
ON_WM_KILLFOCUS()
|
||||
ON_WM_NCDESTROY()
|
||||
ON_WM_CHAR()
|
||||
ON_WM_CREATE()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
BOOL CInPlaceEdit::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if(pMsg->message == WM_KEYDOWN)
|
||||
{
|
||||
if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_DELETE || pMsg->wParam == VK_ESCAPE || GetKeyState(VK_CONTROL))
|
||||
{
|
||||
::TranslateMessage(pMsg);
|
||||
::DispatchMessage(pMsg);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return CEdit::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
|
||||
void CInPlaceEdit::OnKillFocus(CWnd* pNewWnd)
|
||||
{
|
||||
CEdit::OnKillFocus(pNewWnd);
|
||||
|
||||
CString str;
|
||||
GetWindowText(str);
|
||||
|
||||
LV_DISPINFO dispinfo;
|
||||
dispinfo.hdr.hwndFrom = GetParent()->m_hWnd;
|
||||
dispinfo.hdr.idFrom = GetDlgCtrlID();
|
||||
dispinfo.hdr.code = LVN_ENDLABELEDIT;
|
||||
|
||||
dispinfo.item.mask = LVIF_TEXT;
|
||||
dispinfo.item.iItem = m_iItem;
|
||||
dispinfo.item.iSubItem = m_iSubItem;
|
||||
dispinfo.item.pszText = m_bESC ? NULL : LPTSTR((LPCTSTR)str);
|
||||
dispinfo.item.cchTextMax = str.GetLength();
|
||||
|
||||
GetParent()->GetParent()->SendMessage(WM_NOTIFY, GetParent()->GetDlgCtrlID(), (LPARAM)&dispinfo);
|
||||
|
||||
DestroyWindow();
|
||||
}
|
||||
|
||||
void CInPlaceEdit::OnNcDestroy()
|
||||
{
|
||||
CEdit::OnNcDestroy();
|
||||
|
||||
delete this;
|
||||
}
|
||||
|
||||
|
||||
void CInPlaceEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
|
||||
{
|
||||
if(nChar == VK_ESCAPE || nChar == VK_RETURN)
|
||||
{
|
||||
if(nChar == VK_ESCAPE)
|
||||
m_bESC = TRUE;
|
||||
|
||||
GetParent()->SetFocus();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
CEdit::OnChar(nChar, nRepCnt, nFlags);
|
||||
|
||||
CString str;
|
||||
|
||||
GetWindowText(str);
|
||||
CWindowDC dc(this);
|
||||
CFont *pFont = GetParent()->GetFont();
|
||||
CFont *pFontDC = dc.SelectObject(pFont);
|
||||
CSize size = dc.GetTextExtent(str);
|
||||
dc.SelectObject(pFontDC);
|
||||
size.cx += 5;
|
||||
|
||||
CRect rect, parentrect;
|
||||
GetClientRect(&rect);
|
||||
GetParent()->GetClientRect(&parentrect);
|
||||
|
||||
ClientToScreen(&rect);
|
||||
GetParent()->ScreenToClient(&rect);
|
||||
|
||||
if(size.cx > rect.Width())
|
||||
{
|
||||
if(size.cx + rect.left < parentrect.right)
|
||||
rect.right = rect.left + size.cx;
|
||||
else
|
||||
rect.right = parentrect.right;
|
||||
|
||||
MoveWindow(&rect);
|
||||
}
|
||||
}
|
||||
|
||||
int CInPlaceEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||||
{
|
||||
if(CEdit::OnCreate(lpCreateStruct) == -1)
|
||||
return -1;
|
||||
|
||||
CFont* font = GetParent()->GetFont();
|
||||
SetFont(font);
|
||||
|
||||
SetWindowText(m_sInitText);
|
||||
SetFocus();
|
||||
SetSel(0, -1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
||||
|
||||
class CInPlaceEdit : public CEdit
|
||||
{
|
||||
public:
|
||||
CInPlaceEdit(int iItem, int iSubItem, CString sInitText);
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CInPlaceEdit)
|
||||
public:
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CInPlaceEdit();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CInPlaceEdit)
|
||||
afx_msg void OnKillFocus(CWnd* pNewWnd);
|
||||
afx_msg void OnNcDestroy();
|
||||
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
//}}AFX_MSG
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
private:
|
||||
int m_iItem;
|
||||
int m_iSubItem;
|
||||
CString m_sInitText;
|
||||
BOOL m_bESC; // To indicate whether ESC key was pressed
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
126
Server/ToolProject/AuthDBManager/ListViewControl/InPlaceList.cpp
Normal file
@@ -0,0 +1,126 @@
|
||||
// InPlaceList.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "InPlaceList.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CInPlaceList
|
||||
|
||||
CInPlaceList::CInPlaceList(int iItem, int iSubItem, CStringList *plstItems, int nSel)
|
||||
{
|
||||
m_iItem = iItem;
|
||||
m_iSubItem = iSubItem;
|
||||
|
||||
m_lstItems.AddTail( plstItems );
|
||||
m_nSel = nSel;
|
||||
m_bESC = FALSE;
|
||||
}
|
||||
|
||||
CInPlaceList::~CInPlaceList()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CInPlaceList, CComboBox)
|
||||
//{{AFX_MSG_MAP(CInPlaceList)
|
||||
ON_WM_CREATE()
|
||||
ON_WM_KILLFOCUS()
|
||||
ON_WM_CHAR()
|
||||
ON_WM_NCDESTROY()
|
||||
ON_CONTROL_REFLECT(CBN_CLOSEUP, OnCloseup)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CInPlaceList message handlers
|
||||
|
||||
int CInPlaceList::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||||
{
|
||||
if (CComboBox::OnCreate(lpCreateStruct) == -1)
|
||||
return -1;
|
||||
|
||||
// Set the proper font
|
||||
CFont* font = GetParent()->GetFont();
|
||||
SetFont(font);
|
||||
|
||||
for( POSITION pos = m_lstItems.GetHeadPosition(); pos != NULL; )
|
||||
{
|
||||
AddString( (LPCTSTR) (m_lstItems.GetNext( pos )) );
|
||||
}
|
||||
SetCurSel( m_nSel );
|
||||
SetFocus();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL CInPlaceList::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if( pMsg->message == WM_KEYDOWN )
|
||||
{
|
||||
if(pMsg->wParam == VK_RETURN
|
||||
|| pMsg->wParam == VK_ESCAPE
|
||||
)
|
||||
{
|
||||
::TranslateMessage(pMsg);
|
||||
::DispatchMessage(pMsg);
|
||||
return TRUE; // DO NOT process further
|
||||
}
|
||||
}
|
||||
|
||||
return CComboBox::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
void CInPlaceList::OnKillFocus(CWnd* pNewWnd)
|
||||
{
|
||||
CComboBox::OnKillFocus(pNewWnd);
|
||||
|
||||
CString str;
|
||||
GetWindowText(str);
|
||||
|
||||
// Send Notification to parent of ListView ctrl
|
||||
LV_DISPINFO dispinfo;
|
||||
dispinfo.hdr.hwndFrom = GetParent()->m_hWnd;
|
||||
dispinfo.hdr.idFrom = GetDlgCtrlID();
|
||||
dispinfo.hdr.code = LVN_ENDLABELEDIT;
|
||||
|
||||
dispinfo.item.mask = LVIF_TEXT;
|
||||
dispinfo.item.iItem = m_iItem;
|
||||
dispinfo.item.iSubItem = m_iSubItem;
|
||||
dispinfo.item.pszText = m_bESC ? NULL : LPTSTR((LPCTSTR)str);
|
||||
dispinfo.item.cchTextMax = str.GetLength();
|
||||
|
||||
GetParent()->GetParent()->SendMessage( WM_NOTIFY, GetParent()->GetDlgCtrlID(), (LPARAM)&dispinfo );
|
||||
|
||||
PostMessage( WM_CLOSE );
|
||||
}
|
||||
|
||||
void CInPlaceList::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
|
||||
{
|
||||
if( nChar == VK_ESCAPE || nChar == VK_RETURN)
|
||||
{
|
||||
if( nChar == VK_ESCAPE )
|
||||
m_bESC = TRUE;
|
||||
GetParent()->SetFocus();
|
||||
return;
|
||||
}
|
||||
|
||||
CComboBox::OnChar(nChar, nRepCnt, nFlags);
|
||||
}
|
||||
|
||||
void CInPlaceList::OnNcDestroy()
|
||||
{
|
||||
CComboBox::OnNcDestroy();
|
||||
|
||||
delete this;
|
||||
}
|
||||
|
||||
void CInPlaceList::OnCloseup()
|
||||
{
|
||||
GetParent()->SetFocus();
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// InPlaceList.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CInPlaceList window
|
||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
||||
|
||||
class CInPlaceList : public CComboBox
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CInPlaceList(int iItem, int iSubItem, CStringList *plstItems, int nSel);
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CInPlaceList)
|
||||
public:
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CInPlaceList();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CInPlaceList)
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
afx_msg void OnKillFocus(CWnd* pNewWnd);
|
||||
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
|
||||
afx_msg void OnNcDestroy();
|
||||
afx_msg void OnCloseup();
|
||||
//}}AFX_MSG
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
private:
|
||||
int m_iItem;
|
||||
int m_iSubItem;
|
||||
CStringList m_lstItems;
|
||||
int m_nSel;
|
||||
BOOL m_bESC; // To indicate whether ESC key was pressed
|
||||
};
|
||||
@@ -0,0 +1,260 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CListViewControl
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#include "ListViewControl.h"
|
||||
|
||||
CListViewControl::CListViewControl()
|
||||
{
|
||||
ZeroMemory(m_ColType, sizeof(unsigned int) * 100);
|
||||
}
|
||||
|
||||
CListViewControl::~CListViewControl()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CListViewControl, CListCtrl)
|
||||
//{{AFX_MSG_MAP(CListViewControl)
|
||||
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
|
||||
ON_WM_LBUTTONDBLCLK()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CListViewControl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
|
||||
|
||||
switch(lplvcd->nmcd.dwDrawStage)
|
||||
{
|
||||
case CDDS_PREPAINT:
|
||||
*pResult = CDRF_NOTIFYITEMDRAW;
|
||||
|
||||
break;
|
||||
|
||||
case CDDS_ITEMPREPAINT:
|
||||
if(lplvcd->nmcd.dwItemSpec % 2)
|
||||
lplvcd->clrTextBk = RGB(200, 228, 248);
|
||||
|
||||
*pResult = CDRF_DODEFAULT;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CListViewControl::OnLButtonDblClk(UINT nFlags, CPoint point)
|
||||
{
|
||||
CListCtrl::OnLButtonDblClk(nFlags, point);
|
||||
|
||||
int index, colnum;
|
||||
|
||||
if((index = HitTestEx(point, &colnum)) != -1)
|
||||
{
|
||||
if(m_ColType[colnum] == CT_EDIT)
|
||||
{
|
||||
if(GetWindowLong(m_hWnd, GWL_STYLE) & LVS_EDITLABELS)
|
||||
EditSubLabel(index, colnum);
|
||||
}
|
||||
|
||||
if(m_ColType[colnum] == CT_COMBO)
|
||||
{
|
||||
if(GetWindowLong(m_hWnd, GWL_STYLE) & LVS_EDITLABELS)
|
||||
ShowInPlaceList(index, colnum, m_ColumnStringList[colnum], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CListViewControl::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
if(GetFocus() != this)
|
||||
SetFocus();
|
||||
|
||||
CListCtrl::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
void CListViewControl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
if(GetFocus() != this)
|
||||
SetFocus();
|
||||
|
||||
CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
bool CListViewControl::SetColumnType(int ColNum, unsigned int Type)
|
||||
{
|
||||
if(ColNum < 0)
|
||||
return false;
|
||||
|
||||
m_ColType[ColNum] = Type;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CListViewControl::SetColumnStringList(int ColNum, CStringList &StringList)
|
||||
{
|
||||
if(ColNum < 0)
|
||||
return false;
|
||||
|
||||
m_ColumnStringList[ColNum].RemoveAll();
|
||||
|
||||
POSITION Pos = StringList.GetHeadPosition();
|
||||
|
||||
while(Pos)
|
||||
m_ColumnStringList[ColNum].AddTail(StringList.GetNext(Pos));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int CListViewControl::HitTestEx(CPoint &point, int *col) const
|
||||
{
|
||||
int colnum = 0;
|
||||
int row = HitTest(point, NULL);
|
||||
|
||||
if(col)
|
||||
*col = 0;
|
||||
|
||||
if((GetWindowLong(m_hWnd, GWL_STYLE) & LVS_TYPEMASK) != LVS_REPORT)
|
||||
return row;
|
||||
|
||||
row = GetTopIndex();
|
||||
int bottom = row + GetCountPerPage();
|
||||
if(bottom > GetItemCount())
|
||||
bottom = GetItemCount();
|
||||
|
||||
CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0);
|
||||
int nColumnCount = pHeader->GetItemCount();
|
||||
|
||||
INT* piColumnArray = new INT[nColumnCount];
|
||||
((CListCtrl*)this)->GetColumnOrderArray(piColumnArray);
|
||||
|
||||
for(;row <=bottom; row++)
|
||||
{
|
||||
CRect rect;
|
||||
GetItemRect(row, &rect, LVIR_BOUNDS);
|
||||
if(rect.PtInRect(point))
|
||||
{
|
||||
for(colnum = 0; colnum < nColumnCount; colnum++)
|
||||
{
|
||||
int colwidth = GetColumnWidth(piColumnArray[colnum]);
|
||||
if(point.x >= rect.left && point.x <= (rect.left + colwidth))
|
||||
{
|
||||
*col = piColumnArray[colnum];
|
||||
|
||||
delete [] piColumnArray;
|
||||
return row;
|
||||
}
|
||||
|
||||
rect.left += colwidth;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete [] piColumnArray;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
CEdit* CListViewControl::EditSubLabel(int nItem, int nCol)
|
||||
{
|
||||
if(!EnsureVisible(nItem, TRUE))
|
||||
return NULL;
|
||||
|
||||
CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0);
|
||||
int nColumnCount = pHeader->GetItemCount();
|
||||
if(nCol >= nColumnCount || GetColumnWidth(nCol) < 5)
|
||||
return NULL;
|
||||
|
||||
int offset = 0;
|
||||
|
||||
INT *piColumnArray = new INT[nColumnCount];
|
||||
((CListCtrl*)this)->GetColumnOrderArray(piColumnArray);
|
||||
|
||||
for(int i = 0; nCol != piColumnArray[i]; i++)
|
||||
offset += GetColumnWidth( piColumnArray[i]);
|
||||
|
||||
delete [] piColumnArray;
|
||||
|
||||
CRect rect;
|
||||
GetItemRect(nItem, &rect, LVIR_BOUNDS);
|
||||
|
||||
CRect rcClient;
|
||||
GetClientRect(&rcClient);
|
||||
if(offset + rect.left < 0 || offset + rect.left > rcClient.right)
|
||||
{
|
||||
CSize size;
|
||||
if(offset + rect.left < 0)
|
||||
size.cx = -(offset - rect.left);
|
||||
else
|
||||
size.cx = offset - rect.left;
|
||||
size.cy = 0;
|
||||
Scroll(size);
|
||||
GetItemRect(nItem, &rect, LVIR_BOUNDS);
|
||||
}
|
||||
|
||||
LV_COLUMN lvcol;
|
||||
lvcol.mask = LVCF_FMT;
|
||||
GetColumn(nCol, &lvcol);
|
||||
|
||||
DWORD dwStyle ;
|
||||
if((lvcol.fmt&LVCFMT_JUSTIFYMASK) == LVCFMT_LEFT)
|
||||
dwStyle = ES_LEFT;
|
||||
else if((lvcol.fmt&LVCFMT_JUSTIFYMASK) == LVCFMT_RIGHT)
|
||||
dwStyle = ES_RIGHT;
|
||||
else dwStyle = ES_CENTER;
|
||||
|
||||
rect.left += offset+4;
|
||||
rect.right = rect.left + GetColumnWidth(nCol) - 3 ;
|
||||
if(rect.right > rcClient.right)
|
||||
rect.right = rcClient.right;
|
||||
|
||||
dwStyle |= WS_BORDER|WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL;
|
||||
CEdit *pEdit = new CInPlaceEdit(nItem, nCol, GetItemText(nItem, nCol));
|
||||
pEdit->Create(dwStyle, rect, this, IDC_IPEDIT);
|
||||
|
||||
return pEdit;
|
||||
}
|
||||
|
||||
CComboBox* CListViewControl::ShowInPlaceList(int nItem, int nCol, CStringList &lstItems, int nSel)
|
||||
{
|
||||
if(!EnsureVisible(nItem, TRUE))
|
||||
return NULL;
|
||||
|
||||
CHeaderCtrl* pHeader = (CHeaderCtrl*)GetDlgItem(0);
|
||||
int nColumnCount = pHeader->GetItemCount();
|
||||
if(nCol >= nColumnCount || GetColumnWidth(nCol) < 10)
|
||||
return NULL;
|
||||
|
||||
int offset = 0;
|
||||
for(int i = 0; i < nCol; i++)
|
||||
offset += GetColumnWidth(i);
|
||||
|
||||
CRect rect;
|
||||
GetItemRect(nItem, &rect, LVIR_BOUNDS);
|
||||
|
||||
CRect rcClient;
|
||||
GetClientRect(&rcClient);
|
||||
if(offset + rect.left < 0 || offset + rect.left > rcClient.right)
|
||||
{
|
||||
CSize size;
|
||||
size.cx = offset + rect.left;
|
||||
size.cy = 0;
|
||||
Scroll( size );
|
||||
rect.left -= size.cx;
|
||||
}
|
||||
|
||||
rect.left += offset+4;
|
||||
rect.right = rect.left + GetColumnWidth(nCol) - 3 ;
|
||||
int height = rect.bottom-rect.top;
|
||||
rect.bottom += 5*height;
|
||||
if(rect.right > rcClient.right) rect.right = rcClient.right;
|
||||
|
||||
DWORD dwStyle = WS_BORDER|WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST|CBS_DISABLENOSCROLL;
|
||||
|
||||
CComboBox *pList = new CInPlaceList(nItem, nCol, &lstItems, nSel);
|
||||
pList->Create(dwStyle, rect, this, IDC_IPEDIT);
|
||||
pList->SetItemHeight(-1, height);
|
||||
pList->SetHorizontalExtent(GetColumnWidth(nCol));
|
||||
|
||||
return pList;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// CListViewControl
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef _CListViewControl
|
||||
#define _CListViewControl
|
||||
|
||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
||||
#include "InPlaceEdit.h"
|
||||
#include "InPlaceList.h"
|
||||
|
||||
#define IDC_IPEDIT 4321
|
||||
|
||||
const unsigned int CT_NORMAL = 0;
|
||||
const unsigned int CT_EDIT = 1;
|
||||
const unsigned int CT_COMBO = 2;
|
||||
|
||||
class CListViewControl : public CListCtrl
|
||||
{
|
||||
public:
|
||||
CListViewControl();
|
||||
virtual ~CListViewControl();
|
||||
|
||||
protected:
|
||||
//{{AFX_MSG(CCharList)
|
||||
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
//}}AFX_MSG
|
||||
|
||||
bool SetColumnType(int ColNum, unsigned int Type = CT_EDIT);
|
||||
bool SetColumnStringList(int ColNum, CStringList &StringList);
|
||||
|
||||
int HitTestEx(CPoint &point, int *col) const;
|
||||
CEdit* EditSubLabel(int nItem, int nCol);
|
||||
CComboBox* ShowInPlaceList(int nItem, int nCol, CStringList &lstItems, int nSel);
|
||||
|
||||
private:
|
||||
unsigned int m_ColType[100];
|
||||
CStringList m_ColumnStringList[100];
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
#endif
|
||||
105
Server/ToolProject/AuthDBManager/SearchDlg.cpp
Normal file
@@ -0,0 +1,105 @@
|
||||
// SearchDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthDBManager.h"
|
||||
#include "SearchDlg.h"
|
||||
#include "AuthDBManagerDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSearchDlg dialog
|
||||
|
||||
|
||||
CSearchDlg::CSearchDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CSearchDlg::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CSearchDlg)
|
||||
m_SearchText = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
}
|
||||
|
||||
|
||||
void CSearchDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CSearchDlg)
|
||||
DDX_Control(pDX, ID_SELECT_ALIGNTYPE, m_SelectAlignType);
|
||||
DDX_Control(pDX, ID_SELECT_ALIGN, m_SelectAlign);
|
||||
DDX_Control(pDX, ID_SELECT_SEARCH, m_SelectSearch);
|
||||
DDX_Text(pDX, ID_SEARCH_TEXT, m_SearchText);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSearchDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CSearchDlg)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSearchDlg message handlers
|
||||
|
||||
BOOL CSearchDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
char FieldName[256];
|
||||
|
||||
m_SelectSearch.InsertString(0, "----------------");
|
||||
LoadString(pAppWnd->m_Language, IDS_F2, FieldName, 256);
|
||||
m_SelectSearch.InsertString(1, FieldName);
|
||||
LoadString(pAppWnd->m_Language, IDS_F4, FieldName, 256);
|
||||
m_SelectSearch.InsertString(2, FieldName);
|
||||
|
||||
m_SelectSearch.SetCurSel(0);
|
||||
|
||||
m_SelectAlign.InsertString(0, "----------------");
|
||||
LoadString(pAppWnd->m_Language, IDS_F1, FieldName, 256);
|
||||
m_SelectAlign.InsertString(1, FieldName);
|
||||
LoadString(pAppWnd->m_Language, IDS_F2, FieldName, 256);
|
||||
m_SelectAlign.InsertString(2, FieldName);
|
||||
LoadString(pAppWnd->m_Language, IDS_F4, FieldName, 256);
|
||||
m_SelectAlign.InsertString(3, FieldName);
|
||||
LoadString(pAppWnd->m_Language, IDS_F14, FieldName, 256);
|
||||
m_SelectAlign.InsertString(4, FieldName);
|
||||
|
||||
m_SelectAlign.SetCurSel(0);
|
||||
|
||||
LoadString(pAppWnd->m_Language, IDS_A1, FieldName, 256);
|
||||
m_SelectAlignType.InsertString(0, FieldName);
|
||||
LoadString(pAppWnd->m_Language, IDS_A2, FieldName, 256);
|
||||
m_SelectAlignType.InsertString(1, FieldName);
|
||||
|
||||
m_SelectAlignType.SetCurSel(0);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CSearchDlg::OnOK()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
CAuthDBManagerDlg* pDlgWnd = (CAuthDBManagerDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
UpdateData();
|
||||
|
||||
pDlgWnd->m_SearchType = m_SelectSearch.GetCurSel();
|
||||
strcpy(pDlgWnd->m_Search, m_SearchText.GetBuffer(0));
|
||||
|
||||
pDlgWnd->m_Align = m_SelectAlign.GetCurSel();
|
||||
pDlgWnd->m_AlignType = m_SelectAlignType.GetCurSel();
|
||||
|
||||
CDialog::OnOK();
|
||||
}
|
||||
50
Server/ToolProject/AuthDBManager/SearchDlg.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#if !defined(AFX_SEARCHDLG_H__A1FDDFCB_DBA3_4CCD_8F91_1E8ABFA035CA__INCLUDED_)
|
||||
#define AFX_SEARCHDLG_H__A1FDDFCB_DBA3_4CCD_8F91_1E8ABFA035CA__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// SearchDlg.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSearchDlg dialog
|
||||
|
||||
class CSearchDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CSearchDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CSearchDlg)
|
||||
enum { IDD = IDD_SEARCH };
|
||||
CComboBox m_SelectAlignType;
|
||||
CComboBox m_SelectAlign;
|
||||
CComboBox m_SelectSearch;
|
||||
CString m_SearchText;
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CSearchDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CSearchDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual void OnOK();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_SEARCHDLG_H__A1FDDFCB_DBA3_4CCD_8F91_1E8ABFA035CA__INCLUDED_)
|
||||
8
Server/ToolProject/AuthDBManager/StdAfx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// AuthDBManager.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
|
||||
27
Server/ToolProject/AuthDBManager/StdAfx.h
Normal file
@@ -0,0 +1,27 @@
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#if !defined(AFX_STDAFX_H__40910505_0D0F_499D_85FE_F0441F208DE9__INCLUDED_)
|
||||
#define AFX_STDAFX_H__40910505_0D0F_499D_85FE_F0441F208DE9__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||
|
||||
#include <afxwin.h> // MFC core and standard components
|
||||
#include <afxext.h> // MFC extensions
|
||||
#include <afxdisp.h> // MFC Automation classes
|
||||
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_STDAFX_H__40910505_0D0F_499D_85FE_F0441F208DE9__INCLUDED_)
|
||||
240
Server/ToolProject/AuthDBManager/UserList.cpp
Normal file
@@ -0,0 +1,240 @@
|
||||
// UserList.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthDBManager.h"
|
||||
#include "UserList.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CUserList
|
||||
|
||||
CUserList::CUserList()
|
||||
{
|
||||
int Counter;
|
||||
char FieldName[256];
|
||||
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
|
||||
|
||||
for(Counter = 0; Counter < 14; Counter++)
|
||||
{
|
||||
LoadString(pAppWnd->m_Language, IDS_F1 + Counter, FieldName, 256);
|
||||
strcpy(m_FieldName[Counter], FieldName);
|
||||
}
|
||||
|
||||
for(Counter = 0; Counter < 2; Counter++)
|
||||
{
|
||||
LoadString(pAppWnd->m_Language, IDS_S1 + Counter, FieldName, 256);
|
||||
strcpy(m_Select[Counter], FieldName);
|
||||
}
|
||||
}
|
||||
|
||||
CUserList::~CUserList()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CUserList, CListCtrl)
|
||||
//{{AFX_MSG_MAP(CUserList)
|
||||
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
|
||||
ON_WM_LBUTTONDBLCLK()
|
||||
ON_WM_HSCROLL()
|
||||
ON_WM_VSCROLL()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CUserList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
CListViewControl::OnCustomDraw(pNMHDR, pResult);
|
||||
}
|
||||
|
||||
void CUserList::OnLButtonDblClk(UINT nFlags, CPoint point)
|
||||
{
|
||||
CListViewControl::OnLButtonDblClk(nFlags, point);
|
||||
}
|
||||
|
||||
void CUserList::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CListViewControl::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
void CUserList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CListViewControl::OnVScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
//Interface////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// SetColumn [ public ]
|
||||
// - <20><><EFBFBD>̺<EFBFBD> <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
// Parameter :
|
||||
// 1st : <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
// Return:
|
||||
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool CUserList::SetColumn(void)
|
||||
{
|
||||
DWORD ExStyle = LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
|
||||
SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ExStyle);
|
||||
|
||||
DWORD Style = GetWindowLong(m_hWnd, GWL_STYLE);
|
||||
Style |= LVS_EDITLABELS;
|
||||
|
||||
if (!SetWindowLong(m_hWnd, GWL_STYLE, Style))
|
||||
return false;
|
||||
|
||||
CStringList StringList;
|
||||
int IndexCounter = 0;
|
||||
|
||||
SetColumnType(IndexCounter, CT_NORMAL);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_COMBO);
|
||||
StringList.AddTail(m_Select[0]);
|
||||
StringList.AddTail(m_Select[1]);
|
||||
SetColumnStringList(IndexCounter, StringList);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 5 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 10 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 7 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 30 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 10 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 10 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 8 * 10);
|
||||
|
||||
SetColumnType(IndexCounter, CT_EDIT);
|
||||
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 16 * 10);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//Interface////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// AddUserRow [ public ]
|
||||
// - <20><> <20>߰<EFBFBD>
|
||||
//
|
||||
// Parameter :
|
||||
// 1st : <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
// Return:
|
||||
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool CUserList::AddUserRow(LPSELECT_AUTHUSER_TABLE UserTable_In)
|
||||
{
|
||||
CString strItem;
|
||||
int Counter = 1;
|
||||
int Index;
|
||||
|
||||
Index = GetItemCount();
|
||||
|
||||
strItem.Format("%d", UserTable_In->UID);
|
||||
InsertItem(Index, strItem);
|
||||
strItem.Format("%s", UserTable_In->AuthID);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->AuthPW);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Name);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", m_Select[UserTable_In->Sex]);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Birth);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->IDNumber);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->ZipCode);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Address);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Mobile);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Phone);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Email);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%s", UserTable_In->Job);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
strItem.Format("%04d/%02d/%02d %02d:%02d:%02d", UserTable_In->Reg_Date.Year, UserTable_In->Reg_Date.Month, UserTable_In->Reg_Date.Day, UserTable_In->Reg_Date.Hour, UserTable_In->Reg_Date.Minute, UserTable_In->Reg_Date.Second);
|
||||
SetItemText(Index, Counter++, strItem);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CUserList::GetUserRow(unsigned long Item_In, LPUPDATE_AUTHUSER_TABLE Table_Out)
|
||||
{
|
||||
int Counter = 0;
|
||||
char strItemText[256];
|
||||
CString DateText, YearText, MonthText, DayText, HourText, MinuteText, SecondText;
|
||||
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
Table_Out->UID = atoi(strItemText);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->AuthID, strItemText, 16);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->AuthPW, strItemText, 16);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Name, strItemText, 16);
|
||||
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
if(!strcmp(strItemText, m_Select[0]))
|
||||
Table_Out->Sex = 0;
|
||||
else
|
||||
Table_Out->Sex = 1;
|
||||
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Birth, strItemText, 20);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->IDNumber, strItemText, 15);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->ZipCode, strItemText, 12);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Address, strItemText, 80);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Mobile, strItemText, 20);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Phone, strItemText, 20);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Email, strItemText, 50);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
strncpy(Table_Out->Job, strItemText, 20);
|
||||
GetItemText(Item_In, Counter++, strItemText, 256);
|
||||
|
||||
return true;
|
||||
}
|
||||
61
Server/ToolProject/AuthDBManager/UserList.h
Normal file
@@ -0,0 +1,61 @@
|
||||
#if !defined(AFX_USERLIST_H__CA827D8B_2DCE_47F1_8895_25056B67CD92__INCLUDED_)
|
||||
#define AFX_USERLIST_H__CA827D8B_2DCE_47F1_8895_25056B67CD92__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// UserList.h : header file
|
||||
//
|
||||
|
||||
#include "AuthDBManager.h"
|
||||
#include "ListViewControl\ListViewControl.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CUserList window
|
||||
|
||||
class CUserList : public CListViewControl
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CUserList();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
char m_FieldName[21][20];
|
||||
char m_Select[2][10];
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CUserList)
|
||||
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CUserList();
|
||||
|
||||
bool SetColumn(void);
|
||||
bool AddUserRow(LPSELECT_AUTHUSER_TABLE UserTable_In);
|
||||
bool GetUserRow(unsigned long Item_In, LPUPDATE_AUTHUSER_TABLE Table_Out);
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CUserList)
|
||||
// NOTE - the ClassWizard will add and remove member functions here.
|
||||
//}}AFX_MSG
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_USERLIST_H__CA827D8B_2DCE_47F1_8895_25056B67CD92__INCLUDED_)
|
||||
BIN
Server/ToolProject/AuthDBManager/icon.ico
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
25
Server/ToolProject/AuthDBManager/plugin.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <windows.h>
|
||||
|
||||
#if !defined PlugIn_Strunt
|
||||
#define PlugIn_Strunt
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char CreaterName[255];
|
||||
char CreaterEmail[255];
|
||||
char CreaterHomepage[255];
|
||||
}CREATERINFO;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool PlugInfo;
|
||||
char PlugInVer[255];
|
||||
char PlugInName[255];
|
||||
char PlugInLastUpdate[255];
|
||||
CREATERINFO PlugInCreator;
|
||||
}PLUGININFO;
|
||||
|
||||
#endif
|
||||
|
||||
typedef PLUGININFO (*GET_PLUGIN_INFO) (void);
|
||||
|
||||
13
Server/ToolProject/AuthDBManager/res/AuthDBManager.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// AuthDBManager.RC2 - resources Microsoft Visual C++ does not edit directly
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error this file is not editable by Microsoft Visual C++
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Add manually edited resources here...
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
BIN
Server/ToolProject/AuthDBManager/res/Logo.bmp
Normal file
|
After Width: | Height: | Size: 104 KiB |
89
Server/ToolProject/AuthDBManager/resource.h
Normal file
@@ -0,0 +1,89 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by AuthDBManager.rc
|
||||
//
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_AuthDBManager_DIALOG 102
|
||||
#define IDS_F1 102
|
||||
#define IDS_F2 103
|
||||
#define IDS_F3 104
|
||||
#define IDS_F4 105
|
||||
#define IDS_F5 106
|
||||
#define IDS_F6 107
|
||||
#define IDS_F7 108
|
||||
#define IDS_F8 109
|
||||
#define IDS_F9 110
|
||||
#define IDS_F10 111
|
||||
#define IDS_F11 112
|
||||
#define IDS_F12 113
|
||||
#define IDS_F13 114
|
||||
#define IDS_F14 115
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDR_MENU 130
|
||||
#define IDD_CONNECT 131
|
||||
#define IDB_LEDS 132
|
||||
#define IDB_LOGO 133
|
||||
#define IDD_SEARCH 134
|
||||
#define IDS_S1 150
|
||||
#define IDS_S2 151
|
||||
#define IDS_A1 152
|
||||
#define IDS_A2 153
|
||||
#define ID_USER_LIST 1000
|
||||
#define ID_CHAR_LIST 1000
|
||||
#define ID_ERROR_LOG 1001
|
||||
#define ID_SELECT_TYPE 1002
|
||||
#define ID_ID 1002
|
||||
#define ID_DATASOURCE_NAME 1003
|
||||
#define ID_PASSWORD 1003
|
||||
#define ID_SERVER_NAME 1004
|
||||
#define ID_CONNECTION_LED 1004
|
||||
#define ID_DATABASE_NAME 1005
|
||||
#define ID_QEURY_LED 1005
|
||||
#define ID_AUTHUSER_NAME 1006
|
||||
#define ID_SELECTED_ROW 1006
|
||||
#define ID_AUTHUSER_PASS 1007
|
||||
#define ID_SELECTED_COUNT 1007
|
||||
#define ID_SELECTED_UID 1008
|
||||
#define ID_SEX 1009
|
||||
#define ID_NAME 1011
|
||||
#define ID_PLUGIN_LIST 1011
|
||||
#define ID_LASTUPDATE 1012
|
||||
#define ID_BIRTH 1013
|
||||
#define ID_CREATER 1013
|
||||
#define ID_SEARCH_TEXT 1013
|
||||
#define ID_IDNUMBER 1014
|
||||
#define ID_SELECT_SEARCH 1014
|
||||
#define ID_ZIPCODE 1015
|
||||
#define ID_SELECT_ALIGN 1015
|
||||
#define ID_ADDRESS 1016
|
||||
#define ID_SELECT_ALIGNTYPE 1016
|
||||
#define IDC_DEFAULT 1017
|
||||
#define IDC_BUTTON1 1018
|
||||
#define ID_MOBILE 1019
|
||||
#define ID_PHONE 1020
|
||||
#define ID_JOB 1021
|
||||
#define ID_EMAIL 1022
|
||||
#define ID_SELECTED_ID 1024
|
||||
#define ID_TOTAL_ROW 1025
|
||||
#define ID_CONNECT 32771
|
||||
#define ID_DISCONNECT 32772
|
||||
#define ID_ABOUT 32773
|
||||
#define ID_ADD_USER 32774
|
||||
#define ID_DELETE_USER 32775
|
||||
#define ID_INIT_LOGINTIME 32776
|
||||
#define ID_REFESH 32777
|
||||
#define ID_SEARCH 32778
|
||||
#define ID_AUTHTEST 32779
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 135
|
||||
#define _APS_NEXT_COMMAND_VALUE 32780
|
||||
#define _APS_NEXT_CONTROL_VALUE 1020
|
||||
#define _APS_NEXT_SYMED_VALUE 102
|
||||
#endif
|
||||
#endif
|
||||
72
Server/ToolProject/AuthGama/AuthGama.cpp
Normal file
@@ -0,0 +1,72 @@
|
||||
// AuthGama.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthGama.h"
|
||||
#include "AuthGamaDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CAuthGamaApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthGamaApp, CWinApp)
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CAuthGamaApp <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CAuthGamaApp::CAuthGamaApp()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
// InitInstance<63><65> <20><><EFBFBD><EFBFBD> <20>߿<EFBFBD><DFBF><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAuthGamaApp <20><>ü<EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
CAuthGamaApp theApp;
|
||||
|
||||
|
||||
// CAuthGamaApp <20>ʱ<EFBFBD>ȭ
|
||||
|
||||
BOOL CAuthGamaApp::InitInstance()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>Ŵ<EFBFBD><C5B4>佺Ʈ<E4BDBA><C6AE> ComCtl32.dll <20><><EFBFBD><EFBFBD> 6 <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>־<EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>, Windows XP <20><EFBFBD> <20>ݵ<EFBFBD><DDB5><EFBFBD> InitCommonControls()<29><> <20>ʿ<EFBFBD><CABF>մϴ<D5B4>.
|
||||
// InitCommonControls()<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
InitCommonControls();
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// ǥ<><C7A5> <20>ʱ<EFBFBD>ȭ
|
||||
// <20>̵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<>⸦ <20><><EFBFBD>̷<EFBFBD><CCB7><EFBFBD>
|
||||
// <20>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD> <20><><EFBFBD><EFBFBD> Ư<><C6AF> <20>ʱ<EFBFBD>ȭ <20><>ƾ<EFBFBD><C6BE> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>մϴ<D5B4>.
|
||||
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ű<><C5B0> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
// TODO: <20><> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> ȸ<><C8B8> <20>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>մϴ<D5B4>.
|
||||
SetRegistryKey(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1>"));
|
||||
|
||||
CAuthGamaDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
// <20>ڵ带 <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD>Ҹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
// <20>ڵ带 <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> FALSE<53><45> <20><>ȯ<EFBFBD>մϴ<D5B4>.
|
||||
return FALSE;
|
||||
}
|
||||
31
Server/ToolProject/AuthGama/AuthGama.h
Normal file
@@ -0,0 +1,31 @@
|
||||
// AuthGama.h : PROJECT_NAME <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error PCH<43><48><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> 'stdafx.h'<27><> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#include "resource.h" // <20><> <20><>ȣ
|
||||
|
||||
|
||||
// CAuthGamaApp:
|
||||
// <20><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> AuthGama.cpp<70><70> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
//
|
||||
|
||||
class CAuthGamaApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CAuthGamaApp();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern CAuthGamaApp theApp;
|
||||
202
Server/ToolProject/AuthGama/AuthGama.rc
Normal file
@@ -0,0 +1,202 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#include ""res\\AuthGama.rc2"" // Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>\r\n"
|
||||
"#include ""afxres.rc"" // ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\AuthGama.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_AUTHGAMA_DIALOG DIALOGEX 0, 0, 214, 201
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_VISIBLE |
|
||||
WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "AuthGama"
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
EDITTEXT IDC_AUTH_USER,57,36,115,12,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_AUTH_PASSWD,57,48,115,12,ES_PASSWORD |
|
||||
ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_UID_IN,71,135,127,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_ACCOUNT_IN,71,147,126,12,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
PUSHBUTTON "ã<><C3A3>",IDC_FIND_BTN,136,164,62,24,BS_FLAT
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD>",IDC_DB_CONNECT,7,7,83,18,BS_FLAT
|
||||
CTEXT "Account",IDC_STATIC,11,37,45,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "Password",IDC_STATIC,11,49,45,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD>",IDC_AUTH_BTN,179,36,24,37,BS_FLAT
|
||||
CTEXT "",IDC_UID_OUT,14,164,120,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "UID",IDC_STATIC,14,135,56,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "",IDC_ACCOUNT_OUT,14,176,120,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "Account",IDC_STATIC,14,147,56,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_MD5_PASSWORD,46,86,129,13,ES_PASSWORD |
|
||||
ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_MD5_HASHVAL,46,102,130,13,ES_AUTOHSCROLL |
|
||||
ES_READONLY | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
GROUPBOX "MD5",IDC_STATIC,7,78,200,40,BS_FLAT
|
||||
LTEXT "Password",IDC_STATIC,12,90,31,8
|
||||
LTEXT "MD5 Hash",IDC_STATIC,12,103,32,8
|
||||
PUSHBUTTON "<22><>ȯ",IDC_MD5_CONVERT_BTN,178,86,25,29,BS_FLAT
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD>",IDC_STATIC,7,28,200,48,BS_FLAT
|
||||
GROUPBOX "<22>˻<EFBFBD>",IDC_STATIC,7,122,200,72,BS_FLAT
|
||||
CTEXT "",IDC_AUTH_RESULT,57,61,115,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "Result",IDC_STATIC,11,61,45,11,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "041203b5"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "TODO: <ȸ<><C8B8> <20≯<EFBFBD>>"
|
||||
VALUE "FileDescription", "TODO: <<3C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>>"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "AuthGama.exe"
|
||||
VALUE "LegalCopyright", "TODO: (c) <ȸ<><C8B8> <20≯<EFBFBD>>. All rights reserved."
|
||||
VALUE "OriginalFilename", "AuthGama.exe"
|
||||
VALUE "ProductName", "TODO: <<3C><>ǰ <20≯<EFBFBD>>"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "<22><>ȯ", 0x412, 949
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_AUTHGAMA_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 207
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 194
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#include "res\AuthGama.rc2" // Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>
|
||||
#include "afxres.rc" // ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
207
Server/ToolProject/AuthGama/AuthGama.vcproj
Normal file
@@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="AuthGama"
|
||||
ProjectGUID="{CE41A965-FA1E-4CCD-9D57-AA41409E331C}"
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1042"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
MinimalRebuild="FALSE"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1042"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="<22>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\AuthGama.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthGamaDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\AuthGama.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthGamaDlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
<File
|
||||
RelativePath=".\res\AuthGama.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthGama.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\AuthGama.rc2">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MD5"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath=".\Md5\global.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Md5\md5.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Md5\md5c.c">
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\res\AuthGama.manifest">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="AuthGama.rc"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
318
Server/ToolProject/AuthGama/AuthGamaDlg.cpp
Normal file
@@ -0,0 +1,318 @@
|
||||
// AuthGamaDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthGama.h"
|
||||
#include "AuthGamaDlg.h"
|
||||
#include <Utility/Setup/ServerSetup.h>
|
||||
#include <Log/ServerLog.h>
|
||||
#include <DB/DBComponent.h>
|
||||
#include <DB/AuthDBComponent.h>
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <MD5/global.h>
|
||||
#include <MD5/md5.h>
|
||||
#include ".\authgamadlg.h"
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CAuthGamaDlg <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
static void MD5Print (unsigned char digest[16], char *szOutput)
|
||||
{
|
||||
for (unsigned int i = 0; i < 16; i++)
|
||||
{
|
||||
sprintf (szOutput + i * 2, "%02x", digest[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static void MD5String (char *szString, char* szOutput)
|
||||
{
|
||||
MD5_CTX context;
|
||||
unsigned char digest[16];
|
||||
unsigned int len = static_cast<unsigned int>(strlen(szString));
|
||||
|
||||
MD5Init (&context);
|
||||
MD5Update (&context, reinterpret_cast<unsigned char*>(szString), len);
|
||||
MD5Final (digest, &context);
|
||||
MD5Print (digest, szOutput);
|
||||
}
|
||||
|
||||
|
||||
CAuthGamaDlg::CAuthGamaDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CAuthGamaDlg::IDD, pParent)
|
||||
, m_szAuthAccount(_T(""))
|
||||
, m_szAuthPassword(_T(""))
|
||||
, m_szAuthResult(_T(""))
|
||||
, m_szMD5Password(_T(""))
|
||||
, m_szMD5HashVal(_T(""))
|
||||
, m_szFindUID(_T(""))
|
||||
, m_szFindAccount(_T(""))
|
||||
, m_szFoundUID(_T(""))
|
||||
, m_szFoundAccount(_T(""))
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Text(pDX, IDC_AUTH_USER, m_szAuthAccount);
|
||||
DDX_Text(pDX, IDC_AUTH_PASSWD, m_szAuthPassword);
|
||||
DDX_Text(pDX, IDC_AUTH_RESULT, m_szAuthResult);
|
||||
DDX_Text(pDX, IDC_MD5_PASSWORD, m_szMD5Password);
|
||||
DDX_Text(pDX, IDC_MD5_HASHVAL, m_szMD5HashVal);
|
||||
DDX_Text(pDX, IDC_UID_IN, m_szFindUID);
|
||||
DDX_Text(pDX, IDC_ACCOUNT_IN, m_szFindAccount);
|
||||
DDX_Text(pDX, IDC_UID_OUT, m_szFoundUID);
|
||||
DDX_Text(pDX, IDC_ACCOUNT_OUT, m_szFoundAccount);
|
||||
DDX_Control(pDX, IDC_AUTH_BTN, m_btnAuth);
|
||||
DDX_Control(pDX, IDC_MD5_CONVERT_BTN, m_btnMD5);
|
||||
DDX_Control(pDX, IDC_FIND_BTN, m_btnFind);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthGamaDlg, CDialog)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(IDC_DB_CONNECT, OnBnClickedDbConnect)
|
||||
ON_BN_CLICKED(IDC_AUTH_BTN, OnBnClickedAuthBtn)
|
||||
ON_BN_CLICKED(IDC_MD5_CONVERT_BTN, OnBnClickedMd5ConvertBtn)
|
||||
ON_BN_CLICKED(IDC_FIND_BTN, OnBnClickedFindBtn)
|
||||
ON_EN_CHANGE(IDC_ACCOUNT_IN, OnEnChangeAccountIn)
|
||||
ON_EN_CHANGE(IDC_UID_IN, OnEnChangeUidIn)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CAuthGamaDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
|
||||
BOOL CAuthGamaDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// <20><> <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><> â<><C3A2> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD>쿡<EFBFBD><ECBFA1>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ũ<EFBFBD><C5A9> <20><> <20>۾<EFBFBD><DBBE><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
SetIcon(m_hIcon, TRUE); // ū <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
SetIcon(m_hIcon, FALSE); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
// DB<44><42> <20><><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ư<EFBFBD><C6B0> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>մϴ<D5B4>.
|
||||
m_btnAuth.EnableWindow(FALSE);
|
||||
//m_btnMD5.EnableWindow(FALSE); // MD5 <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DB<44><42><EFBFBD>ῡ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡<EFBFBD><EBB0A1><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD>(by zun!)
|
||||
m_btnFind.EnableWindow(FALSE);
|
||||
|
||||
// <20>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.
|
||||
g_Log.Disable(0xFFFFFFFF);
|
||||
g_SessionLog.Disable(0xFFFFFFFF);
|
||||
|
||||
return TRUE; // <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TRUE<55><45> <20><>ȯ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD>ڿ<EFBFBD> <20>ּ<EFBFBD>ȭ <20><><EFBFBD>߸<EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20>Ʒ<EFBFBD> <20>ڵ尡 <20>ʿ<EFBFBD><CABF>մϴ<D5B4>. <20><><EFBFBD><EFBFBD>/<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> MFC <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD>쿡<EFBFBD><ECBFA1>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ũ<EFBFBD><C5A9><EFBFBD><EFBFBD> <20><> <20>۾<EFBFBD><DBBE><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
void CAuthGamaDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // <20><EFBFBD><D7B8>⸦ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> <20><><EFBFBD>ؽ<EFBFBD>Ʈ
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20>簢<EFBFBD><E7B0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EEB5A5> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B8>ϴ<EFBFBD>.
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ּ<EFBFBD>ȭ<EFBFBD><C8AD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ȿ<EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD> ǥ<>õǵ<C3B5><C7B5><EFBFBD> <20>ý<EFBFBD><C3BD>ۿ<EFBFBD><DBBF><EFBFBD>
|
||||
// <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> ȣ<><C8A3><EFBFBD>մϴ<D5B4>.
|
||||
HCURSOR CAuthGamaDlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnBnClickedDbConnect()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD><C2BE><EFBFBD><EFBFBD><EFBFBD> <20>¾<EFBFBD><C2BE><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>DB<44><42> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>մϴ<D5B4>.
|
||||
CString szError;
|
||||
CDBComponent& DBComponent = CDBSingleObject::GetInstance();
|
||||
|
||||
if (!CServerSetup::GetInstance().Initialize(CServerSetup::AuthServer))
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>д<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
|
||||
szError.Format("Read AuthServer info failed");
|
||||
}
|
||||
else if (!DBComponent.Connect(CDBComponent::Class_AuthDB))
|
||||
{
|
||||
// <20><><EFBFBD>ῡ <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
szError.Format("Connect DB failed : %s ", DBComponent.GetErrorString());
|
||||
}
|
||||
else
|
||||
{
|
||||
// <20><><EFBFBD>ῡ <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
m_btnAuth.EnableWindow(TRUE);
|
||||
m_btnMD5.EnableWindow(TRUE);
|
||||
m_btnFind.EnableWindow(TRUE);
|
||||
|
||||
SetWindowText(_T("AuthGama : AuthDB Connect Succeeded"));
|
||||
}
|
||||
|
||||
if (!szError.IsEmpty())
|
||||
{
|
||||
AfxMessageBox(szError, MB_OK | MB_ICONERROR);
|
||||
}
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnBnClickedAuthBtn()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData(TRUE);
|
||||
|
||||
DWORD dwUID = 0;
|
||||
CDBComponent& DBComponent = CDBSingleObject::GetInstance();
|
||||
|
||||
char szPassword[33];
|
||||
char szMD5String[33];
|
||||
|
||||
_snprintf(szPassword, 33, m_szAuthPassword);
|
||||
szPassword[32] = 0;
|
||||
|
||||
MD5String(szPassword, szMD5String);
|
||||
szMD5String[32] = 0;
|
||||
|
||||
if (!DBComponent::AuthDB::LoginAuthGama(DBComponent,
|
||||
m_szAuthAccount, szMD5String, dwUID))
|
||||
{
|
||||
m_szAuthResult.Format(_T("DB Error : %s"), DBComponent.GetErrorString());
|
||||
}
|
||||
else if (dwUID < 100)
|
||||
{
|
||||
switch(dwUID)
|
||||
{
|
||||
case 1: m_szAuthResult.Format(_T("Invalid password")); break;
|
||||
case 2: m_szAuthResult.Format(_T("Unknown Account")); break;
|
||||
case 5: m_szAuthResult.Format(_T("Password failed more than 3")); break;
|
||||
default: m_szAuthResult.Format(_T("Unknown Error")); break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_szAuthResult.Format(_T("%d"), dwUID);
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnBnClickedMd5ConvertBtn()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData(TRUE);
|
||||
|
||||
char szPassword[33];
|
||||
char szMD5String[33];
|
||||
|
||||
_snprintf(szPassword, 33, m_szMD5Password);
|
||||
szPassword[32] = 0;
|
||||
|
||||
MD5String(szPassword, szMD5String);
|
||||
szMD5String[32] = 0;
|
||||
|
||||
m_szMD5HashVal.SetString(szMD5String);
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnBnClickedFindBtn()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData(TRUE);
|
||||
|
||||
const int MAX_BUFFER = 64;
|
||||
CString szError;
|
||||
|
||||
CDBComponent& DBComponent = CDBSingleObject::GetInstance();
|
||||
|
||||
unsigned long dwUID = 0;
|
||||
if (!m_szFindUID.IsEmpty() && (0 != (dwUID = atol(m_szFindUID))))
|
||||
{
|
||||
char szAccount[MAX_BUFFER];
|
||||
if (DBComponent::AuthDB::GetGamaAccountByUID(DBComponent, dwUID, szAccount, MAX_BUFFER))
|
||||
{
|
||||
m_szFoundUID.Format(_T("%d"), dwUID);
|
||||
m_szFoundAccount.SetString(szAccount);
|
||||
}
|
||||
else
|
||||
{
|
||||
szError.Format(_T("DB Error : %s"), DBComponent.GetErrorString());
|
||||
}
|
||||
}
|
||||
else if (!m_szFindAccount.IsEmpty())
|
||||
{
|
||||
if (DBComponent::AuthDB::GetGamaUIDByAccount(DBComponent, m_szFindAccount, dwUID))
|
||||
{
|
||||
m_szFoundUID.Format(_T("%d"), dwUID);
|
||||
m_szFoundAccount.SetString(m_szFindAccount);
|
||||
}
|
||||
else
|
||||
{
|
||||
szError.Format(_T("DB Error : %s"), DBComponent.GetErrorString());
|
||||
}
|
||||
}
|
||||
|
||||
if (!szError.IsEmpty())
|
||||
{
|
||||
AfxMessageBox(szError, MB_OK | MB_ICONERROR);
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnOK()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> Ư<><C6AF>ȭ<EFBFBD><C8AD> <20>ڵ带 <20>߰<EFBFBD> <20><>/<2F>Ǵ<EFBFBD> <20>⺻ Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
// CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnEnChangeAccountIn()
|
||||
{
|
||||
// TODO: RICHEDIT <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
||||
// CDialog::<3A><><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9> OR <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ENM_CHANGE <20>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
||||
// CRichEditCtrl().SetEventMask()<29><> ȣ<><C8A3><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> OnInitDialog() <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><> <20>˸<EFBFBD><CBB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.
|
||||
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
|
||||
UpdateData(TRUE);
|
||||
m_szFindUID.Empty();
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthGamaDlg::OnEnChangeUidIn()
|
||||
{
|
||||
// TODO: RICHEDIT <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>
|
||||
// CDialog::<3A><><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9> OR <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ENM_CHANGE <20>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
||||
// CRichEditCtrl().SetEventMask()<29><> ȣ<><C8A3><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> OnInitDialog() <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><> <20>˸<EFBFBD><CBB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.
|
||||
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData(TRUE);
|
||||
m_szFindAccount.Empty();
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
61
Server/ToolProject/AuthGama/AuthGamaDlg.h
Normal file
@@ -0,0 +1,61 @@
|
||||
// AuthGamaDlg.h : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
|
||||
|
||||
// CAuthGamaDlg <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
class CAuthGamaDlg : public CDialog
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
CAuthGamaDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
enum { IDD = IDD_AUTHGAMA_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
|
||||
HICON m_hIcon;
|
||||
|
||||
// <20><EFBFBD><DEBD><EFBFBD> <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
private:
|
||||
|
||||
afx_msg void OnBnClickedDbConnect();
|
||||
afx_msg void OnBnClickedAuthBtn();
|
||||
afx_msg void OnBnClickedMd5ConvertBtn();
|
||||
afx_msg void OnBnClickedFindBtn();
|
||||
|
||||
CString m_szAuthAccount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CString m_szAuthPassword; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CString m_szAuthResult; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CString m_szMD5Password; // MD5<44><35><EFBFBD><EFBFBD> <20>˾Ƴ<CBBE> <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CString m_szMD5HashVal; // <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> MD5<44><35>
|
||||
|
||||
CString m_szFindUID; // <20>˻<EFBFBD><CBBB><EFBFBD> UID
|
||||
CString m_szFindAccount; // <20>˻<EFBFBD><CBBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CString m_szFoundUID; // <20>˻<EFBFBD><CBBB><EFBFBD> UID
|
||||
CString m_szFoundAccount; // <20>˻<EFBFBD><CBBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CButton m_btnAuth;
|
||||
CButton m_btnMD5;
|
||||
CButton m_btnFind;
|
||||
protected:
|
||||
virtual void OnOK();
|
||||
public:
|
||||
afx_msg void OnEnChangeAccountIn();
|
||||
afx_msg void OnEnChangeUidIn();
|
||||
};
|
||||
30
Server/ToolProject/AuthGama/Md5/global.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/* GLOBAL.H - RSAREF types and constants
|
||||
*/
|
||||
|
||||
/* PROTOTYPES should be set to one if and only if the compiler supports
|
||||
function argument prototyping.
|
||||
The following makes PROTOTYPES default to 0 if it has not already
|
||||
been defined with C compiler flags.
|
||||
*/
|
||||
#ifndef PROTOTYPES
|
||||
#define PROTOTYPES 0
|
||||
#endif
|
||||
|
||||
/* POINTER defines a generic pointer type */
|
||||
typedef unsigned char *POINTER;
|
||||
|
||||
/* UINT2 defines a two byte word */
|
||||
typedef unsigned short int UINT2;
|
||||
|
||||
/* UINT4 defines a four byte word */
|
||||
typedef unsigned long int UINT4;
|
||||
|
||||
/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
|
||||
If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
|
||||
returns an empty list.
|
||||
*/
|
||||
#if PROTOTYPES
|
||||
#define PROTO_LIST(list) list
|
||||
#else
|
||||
#define PROTO_LIST(list) ()
|
||||
#endif
|
||||
36
Server/ToolProject/AuthGama/Md5/md5.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* MD5.H - header file for MD5C.C
|
||||
*/
|
||||
|
||||
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
|
||||
rights reserved.
|
||||
|
||||
License to copy and use this software is granted provided that it
|
||||
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
|
||||
Algorithm" in all material mentioning or referencing this software
|
||||
or this function.
|
||||
|
||||
License is also granted to make and use derivative works provided
|
||||
that such works are identified as "derived from the RSA Data
|
||||
Security, Inc. MD5 Message-Digest Algorithm" in all material
|
||||
mentioning or referencing the derived work.
|
||||
|
||||
RSA Data Security, Inc. makes no representations concerning either
|
||||
the merchantability of this software or the suitability of this
|
||||
software for any particular purpose. It is provided "as is"
|
||||
without express or implied warranty of any kind.
|
||||
|
||||
These notices must be retained in any copies of any part of this
|
||||
documentation and/or software.
|
||||
*/
|
||||
|
||||
/* MD5 context. */
|
||||
typedef struct {
|
||||
UINT4 state[4]; /* state (ABCD) */
|
||||
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
|
||||
unsigned char buffer[64]; /* input buffer */
|
||||
} MD5_CTX;
|
||||
|
||||
void MD5Init (MD5_CTX *);
|
||||
void MD5Update (MD5_CTX *, unsigned char *, unsigned int);
|
||||
void MD5Final (unsigned char [16], MD5_CTX *);
|
||||
|
||||
337
Server/ToolProject/AuthGama/Md5/md5c.c
Normal file
@@ -0,0 +1,337 @@
|
||||
/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
|
||||
*/
|
||||
|
||||
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
|
||||
rights reserved.
|
||||
|
||||
License to copy and use this software is granted provided that it
|
||||
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
|
||||
Algorithm" in all material mentioning or referencing this software
|
||||
or this function.
|
||||
|
||||
License is also granted to make and use derivative works provided
|
||||
that such works are identified as "derived from the RSA Data
|
||||
Security, Inc. MD5 Message-Digest Algorithm" in all material
|
||||
mentioning or referencing the derived work.
|
||||
|
||||
RSA Data Security, Inc. makes no representations concerning either
|
||||
the merchantability of this software or the suitability of this
|
||||
software for any particular purpose. It is provided "as is"
|
||||
without express or implied warranty of any kind.
|
||||
|
||||
These notices must be retained in any copies of any part of this
|
||||
documentation and/or software.
|
||||
*/
|
||||
|
||||
#include "global.h"
|
||||
#include "md5.h"
|
||||
|
||||
/* Constants for MD5Transform routine.
|
||||
*/
|
||||
|
||||
#define S11 7
|
||||
#define S12 12
|
||||
#define S13 17
|
||||
#define S14 22
|
||||
#define S21 5
|
||||
#define S22 9
|
||||
#define S23 14
|
||||
#define S24 20
|
||||
#define S31 4
|
||||
#define S32 11
|
||||
#define S33 16
|
||||
#define S34 23
|
||||
#define S41 6
|
||||
#define S42 10
|
||||
#define S43 15
|
||||
#define S44 21
|
||||
|
||||
static void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64]));
|
||||
static void Encode PROTO_LIST
|
||||
((unsigned char *, UINT4 *, unsigned int));
|
||||
static void Decode PROTO_LIST
|
||||
((UINT4 *, unsigned char *, unsigned int));
|
||||
static void MD5_memcpy PROTO_LIST ((POINTER, POINTER, unsigned int));
|
||||
static void MD5_memset PROTO_LIST ((POINTER, int, unsigned int));
|
||||
|
||||
static unsigned char PADDING[64] = {
|
||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/* F, G, H and I are basic MD5 functions.
|
||||
*/
|
||||
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
|
||||
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
|
||||
#define H(x, y, z) ((x) ^ (y) ^ (z))
|
||||
#define I(x, y, z) ((y) ^ ((x) | (~z)))
|
||||
|
||||
/* ROTATE_LEFT rotates x left n bits.
|
||||
*/
|
||||
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
|
||||
|
||||
/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
|
||||
Rotation is separate from addition to prevent recomputation.
|
||||
*/
|
||||
#define FF(a, b, c, d, x, s, ac) { \
|
||||
(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
#define GG(a, b, c, d, x, s, ac) { \
|
||||
(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
#define HH(a, b, c, d, x, s, ac) { \
|
||||
(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
#define II(a, b, c, d, x, s, ac) { \
|
||||
(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
|
||||
/* MD5 initialization. Begins an MD5 operation, writing a new context.
|
||||
*/
|
||||
void MD5Init (context)
|
||||
MD5_CTX *context; /* context */
|
||||
{
|
||||
context->count[0] = context->count[1] = 0;
|
||||
/* Load magic initialization constants.
|
||||
*/
|
||||
context->state[0] = 0x67452301;
|
||||
context->state[1] = 0xefcdab89;
|
||||
context->state[2] = 0x98badcfe;
|
||||
context->state[3] = 0x10325476;
|
||||
}
|
||||
|
||||
/* MD5 block update operation. Continues an MD5 message-digest
|
||||
operation, processing another message block, and updating the
|
||||
context.
|
||||
*/
|
||||
void MD5Update (context, input, inputLen)
|
||||
MD5_CTX *context; /* context */
|
||||
unsigned char *input; /* input block */
|
||||
unsigned int inputLen; /* length of input block */
|
||||
{
|
||||
unsigned int i, index, partLen;
|
||||
|
||||
/* Compute number of bytes mod 64 */
|
||||
index = (unsigned int)((context->count[0] >> 3) & 0x3F);
|
||||
|
||||
/* Update number of bits */
|
||||
if ((context->count[0] += ((UINT4)inputLen << 3))
|
||||
< ((UINT4)inputLen << 3))
|
||||
context->count[1]++;
|
||||
context->count[1] += ((UINT4)inputLen >> 29);
|
||||
|
||||
partLen = 64 - index;
|
||||
|
||||
/* Transform as many times as possible.
|
||||
*/
|
||||
if (inputLen >= partLen) {
|
||||
MD5_memcpy
|
||||
((POINTER)&context->buffer[index], (POINTER)input, partLen);
|
||||
MD5Transform (context->state, context->buffer);
|
||||
|
||||
for (i = partLen; i + 63 < inputLen; i += 64)
|
||||
MD5Transform (context->state, &input[i]);
|
||||
|
||||
index = 0;
|
||||
}
|
||||
else
|
||||
i = 0;
|
||||
|
||||
/* Buffer remaining input */
|
||||
MD5_memcpy
|
||||
((POINTER)&context->buffer[index], (POINTER)&input[i],
|
||||
inputLen-i);
|
||||
}
|
||||
|
||||
/* MD5 finalization. Ends an MD5 message-digest operation, writing the
|
||||
the message digest and zeroizing the context.
|
||||
*/
|
||||
void MD5Final (digest, context)
|
||||
unsigned char digest[16]; /* message digest */
|
||||
MD5_CTX *context; /* context */
|
||||
{
|
||||
unsigned char bits[8];
|
||||
unsigned int index, padLen;
|
||||
|
||||
/* Save number of bits */
|
||||
Encode (bits, context->count, 8);
|
||||
|
||||
/* Pad out to 56 mod 64.
|
||||
*/
|
||||
index = (unsigned int)((context->count[0] >> 3) & 0x3f);
|
||||
padLen = (index < 56) ? (56 - index) : (120 - index);
|
||||
MD5Update (context, PADDING, padLen);
|
||||
|
||||
/* Append length (before padding) */
|
||||
MD5Update (context, bits, 8);
|
||||
|
||||
/* Store state in digest */
|
||||
Encode (digest, context->state, 16);
|
||||
|
||||
/* Zeroize sensitive information.
|
||||
*/
|
||||
MD5_memset ((POINTER)context, 0, sizeof (*context));
|
||||
}
|
||||
|
||||
/* MD5 basic transformation. Transforms state based on block.
|
||||
*/
|
||||
static void MD5Transform (state, block)
|
||||
UINT4 state[4];
|
||||
unsigned char block[64];
|
||||
{
|
||||
UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
|
||||
|
||||
Decode (x, block, 64);
|
||||
|
||||
/* Round 1 */
|
||||
FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
|
||||
FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
|
||||
FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
|
||||
FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
|
||||
FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
|
||||
FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
|
||||
FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
|
||||
FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
|
||||
FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
|
||||
FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
|
||||
FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
|
||||
FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
|
||||
FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
|
||||
FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
|
||||
FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
|
||||
FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
|
||||
|
||||
/* Round 2 */
|
||||
GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
|
||||
GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
|
||||
GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
|
||||
GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
|
||||
GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
|
||||
GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
|
||||
GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
|
||||
GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
|
||||
GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
|
||||
GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
|
||||
GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
|
||||
GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
|
||||
GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
|
||||
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
|
||||
GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
|
||||
GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
|
||||
|
||||
/* Round 3 */
|
||||
HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
|
||||
HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
|
||||
HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
|
||||
HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
|
||||
HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
|
||||
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
|
||||
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
|
||||
HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
|
||||
HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
|
||||
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
|
||||
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
|
||||
HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
|
||||
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
|
||||
HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
|
||||
HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
|
||||
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
|
||||
|
||||
/* Round 4 */
|
||||
II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
|
||||
II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
|
||||
II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
|
||||
II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
|
||||
II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
|
||||
II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
|
||||
II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
|
||||
II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
|
||||
II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
|
||||
II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
|
||||
II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
|
||||
II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
|
||||
II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
|
||||
II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
|
||||
II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
|
||||
II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
|
||||
|
||||
state[0] += a;
|
||||
state[1] += b;
|
||||
state[2] += c;
|
||||
state[3] += d;
|
||||
|
||||
/* Zeroize sensitive information.
|
||||
*/
|
||||
MD5_memset ((POINTER)x, 0, sizeof (x));
|
||||
}
|
||||
|
||||
/* Encodes input (UINT4) into output (unsigned char). Assumes len is
|
||||
a multiple of 4.
|
||||
*/
|
||||
static void Encode (output, input, len)
|
||||
unsigned char *output;
|
||||
UINT4 *input;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
for (i = 0, j = 0; j < len; i++, j += 4) {
|
||||
output[j] = (unsigned char)(input[i] & 0xff);
|
||||
output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
|
||||
output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
|
||||
output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
/* Decodes input (unsigned char) into output (UINT4). Assumes len is
|
||||
a multiple of 4.
|
||||
*/
|
||||
static void Decode (output, input, len)
|
||||
UINT4 *output;
|
||||
unsigned char *input;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
for (i = 0, j = 0; j < len; i++, j += 4)
|
||||
output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
|
||||
(((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
|
||||
}
|
||||
|
||||
/* Note: Replace "for loop" with standard memcpy if possible.
|
||||
*/
|
||||
|
||||
static void MD5_memcpy (output, input, len)
|
||||
POINTER output;
|
||||
POINTER input;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
output[i] = input[i];
|
||||
}
|
||||
|
||||
/* Note: Replace "for loop" with standard memset if possible.
|
||||
*/
|
||||
static void MD5_memset (output, value, len)
|
||||
POINTER output;
|
||||
int value;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
((char *)output)[i] = (char)value;
|
||||
}
|
||||
|
||||
|
||||
77
Server/ToolProject/AuthGama/ReadMe.txt
Normal file
@@ -0,0 +1,77 @@
|
||||
================================================================================
|
||||
MFC <20><><EFBFBD>̺귯<CCBA><EAB7AF> : AuthGama <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
================================================================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>縦 <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> AuthGama <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>ۼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> AuthGama <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>䰡 <20><><EFBFBD>ԵǾ<D4B5>
|
||||
<EFBFBD>ֽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
AuthGama.vcproj
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>縦 <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VC++ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Visual C++ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>,
|
||||
<20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
AuthGama.h
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> Resource.h<><68> <20><><EFBFBD><EFBFBD>
|
||||
Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǸ<D4B5> CAuthGamaApp <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
AuthGama.cpp
|
||||
CAuthGamaApp <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
AuthGama.rc
|
||||
<20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> Microsoft Windows <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> RES <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>Ʈ<EFBFBD><C6AE> <20><> Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǸ<D4B5>
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
||||
<20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> 1042<34><32> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
res\AuthGama.ico
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AuthGama.rc<72><63> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
res\AuthGama.rc2
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD>Ե<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>ԵǾ<D4B5> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
AuthGamaDlg.h, AuthGamaDlg.cpp - <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
CAuthGamaDlg Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD>
|
||||
<20><> <20><>ȭ <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǵ˴ϴ<CBB4>. <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD> AuthGama.rc<72><63>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
ActiveX <20><>Ʈ<EFBFBD><C6AE>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> ActiveX <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD>Ÿ ǥ<><C7A5> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
<20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(PCH) AuthGama.pch <20><> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> StdAfx.obj<62><6A> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
Resource.h
|
||||
<20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD> ID<49><44> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>а<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>մϴ<D5B4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1><EFBFBD><EFBFBD> "TODO:"<22><> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20>߰<EFBFBD><DFB0>ϰų<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD>
|
||||
<EFBFBD>ҽ<EFBFBD> <20>ڵ带 <20><>Ÿ<EFBFBD><C5B8><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DLL<4C><4C> MFC<46><43> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD> <20> ü<><C3BC><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD> Microsoft Visual C++ CD-ROM<4F><4D> Win\System <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20>ִ<EFBFBD>
|
||||
<EFBFBD>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> MFC70XXX.DLL<4C><4C> <20><>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD> system <20>Ǵ<EFBFBD> system32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MFCLOC.DLL<4C><4C> <20≯<EFBFBD><CCB8><EFBFBD> <20>ٲپ<D9B2><D9BE><EFBFBD> <20>մϴ<D5B4>. "XXX"<22><> <20>ش<EFBFBD> <20><><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MFC70DEU.DLL<4C><4C><EFBFBD><EFBFBD> <20><><EFBFBD>Ͼ<EFBFBD><CFBE><EFBFBD> <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
<EFBFBD>̷<EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20>Ϻ<EFBFBD> UI <20><><EFBFBD>Ұ<EFBFBD> <20> ü<><C3BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20>˴ϴ<CBB4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
31
Server/ToolProject/AuthGama/Resource.h
Normal file
@@ -0,0 +1,31 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by AuthGama.rc
|
||||
//
|
||||
#define IDD_AUTHGAMA_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_DB_CONNECT 1000
|
||||
#define IDC_AUTH_USER 1002
|
||||
#define IDC_AUTH_PASSWD 1003
|
||||
#define IDC_AUTH_BTN 1004
|
||||
#define IDC_UID_OUT 1005
|
||||
#define IDC_AUTH_RESULT 1006
|
||||
#define IDC_UID_IN 1008
|
||||
#define IDC_FIND_BTN 1009
|
||||
#define IDC_ACCOUNT_OUT 1010
|
||||
#define IDC_ACCOUNT_IN 1011
|
||||
#define IDC_MD5_PASSWORD 1016
|
||||
#define IDC_MD5_HASHVAL 1017
|
||||
#define IDC_MD5_CONVERT 1018
|
||||
#define IDC_MD5_CONVERT_BTN 1018
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1002
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
BIN
Server/ToolProject/AuthGama/res/AuthGama.ico
Normal file
|
After Width: | Height: | Size: 21 KiB |
22
Server/ToolProject/AuthGama/res/AuthGama.manifest
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
version="1.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
name="Microsoft.Windows.AuthGama"
|
||||
type="win32"
|
||||
/>
|
||||
<description>여기에 응용 프로그램 설명을 추가합니다.</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
||||
13
Server/ToolProject/AuthGama/res/AuthGama.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// AuthGama.RC2 - resources Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
7
Server/ToolProject/AuthGama/stdafx.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
// AuthGama.pch<63><68> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.
|
||||
// stdafx.obj<62><6A> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
42
Server/ToolProject/AuthGama/stdafx.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// stdafx.h : <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
||||
// ǥ<><C7A5> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // Windows <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ܽ<EFBFBD>ŵ<EFBFBD>ϴ<EFBFBD>.
|
||||
#endif
|
||||
|
||||
// <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>켱<EFBFBD>ϴ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
// <20>ٸ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSDN<44><4E> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
#ifndef WINVER // Windows 95 <20><> Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define WINVER 0x0400 // Windows 98<39><38> Windows 2000 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_WINNT 0x0400 // Windows 98<39><38> Windows 2000 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINDOWS // Windows 98 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_WINDOWS 0x0410 // Windows Me <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_IE // IE 4.0 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_IE 0x0400 // IE 5.0 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // <20>Ϻ<EFBFBD> CString <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
// MFC<46><43> <20><><EFBFBD><EFBFBD> <20>κа<CEBA> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⸦ <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC <20>ٽ<EFBFBD> <20><> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#include <afxext.h> // MFC <20>ͽ<EFBFBD><CDBD>ټ<EFBFBD>
|
||||
#include <afxdisp.h> // MFC <20>ڵ<EFBFBD>ȭ Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
|
||||
#include <afxdtctl.h> // Internet Explorer 4 <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD>
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // Windows <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD>
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
74
Server/ToolProject/AuthHan/AuthHan.cpp
Normal file
@@ -0,0 +1,74 @@
|
||||
// AuthHan.cpp : Defines the class behaviors for the application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthHan.h"
|
||||
#include "AuthHanDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthHanApp, CWinApp)
|
||||
//{{AFX_MSG_MAP(CAuthHanApp)
|
||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code!
|
||||
//}}AFX_MSG
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanApp construction
|
||||
|
||||
CAuthHanApp::CAuthHanApp()
|
||||
{
|
||||
// TODO: add construction code here,
|
||||
// Place all significant initialization in InitInstance
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// The one and only CAuthHanApp object
|
||||
|
||||
CAuthHanApp theApp;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanApp initialization
|
||||
|
||||
BOOL CAuthHanApp::InitInstance()
|
||||
{
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// Standard initialization
|
||||
// If you are not using these features and wish to reduce the size
|
||||
// of your final executable, you should remove from the following
|
||||
// the specific initialization routines you do not need.
|
||||
|
||||
#ifdef _AFXDLL
|
||||
Enable3dControls(); // Call this when using MFC in a shared DLL
|
||||
#else
|
||||
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
||||
#endif
|
||||
|
||||
CAuthHanDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
int nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
// dismissed with OK
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
// dismissed with Cancel
|
||||
}
|
||||
|
||||
// Since the dialog has been closed, return FALSE so that we exit the
|
||||
// application, rather than start the application's message pump.
|
||||
return FALSE;
|
||||
}
|
||||
49
Server/ToolProject/AuthHan/AuthHan.h
Normal file
@@ -0,0 +1,49 @@
|
||||
// AuthHan.h : main header file for the AUTHHAN application
|
||||
//
|
||||
|
||||
#if !defined(AFX_AUTHHAN_H__9A2BCE45_C0A5_418B_B7DC_02F9002937D2__INCLUDED_)
|
||||
#define AFX_AUTHHAN_H__9A2BCE45_C0A5_418B_B7DC_02F9002937D2__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // main symbols
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanApp:
|
||||
// See AuthHan.cpp for the implementation of this class
|
||||
//
|
||||
|
||||
class CAuthHanApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CAuthHanApp();
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAuthHanApp)
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
|
||||
//{{AFX_MSG(CAuthHanApp)
|
||||
// NOTE - the ClassWizard will add and remove member functions here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code !
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_AUTHHAN_H__9A2BCE45_C0A5_418B_B7DC_02F9002937D2__INCLUDED_)
|
||||
239
Server/ToolProject/AuthHan/AuthHan.rc
Normal file
@@ -0,0 +1,239 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"#ifdef _WIN32\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#endif //_WIN32\r\n"
|
||||
"#include ""res\\AuthHan.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
|
||||
"#include ""l.kor\\afxres.rc"" // Standard components\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\AuthHan.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOG 0, 0, 235, 55
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "AuthHan <20><><EFBFBD><EFBFBD>"
|
||||
FONT 9, "<22><><EFBFBD><EFBFBD>"
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
|
||||
LTEXT "AuthHan <20><><EFBFBD><EFBFBD> 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
|
||||
LTEXT "Copyright (C) 2002",IDC_STATIC,40,25,119,8
|
||||
DEFPUSHBUTTON "Ȯ<><C8AE>",IDOK,178,7,50,14,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_AUTHHAN_DIALOG DIALOGEX 0, 0, 289, 206
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE |
|
||||
WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "AuthHan"
|
||||
FONT 10, "<22><><EFBFBD><EFBFBD>", 0, 0, 0x1
|
||||
BEGIN
|
||||
EDITTEXT IDC_ACCOUNT,47,35,85,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_PASSWORD,47,47,85,12,ES_PASSWORD | ES_AUTOHSCROLL |
|
||||
NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_UID_IN,195,42,85,12,ES_AUTOHSCROLL | NOT WS_BORDER,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_ACCOUNT_IN,195,55,85,12,ES_AUTOHSCROLL | NOT
|
||||
WS_BORDER,WS_EX_STATICEDGE
|
||||
PUSHBUTTON "ã<><C3A3>",IDC_FIND,224,73,56,26,BS_FLAT
|
||||
PUSHBUTTON "UID<49><44><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ",IDC_FIND_UID_LIST,196,113,89,
|
||||
15,BS_FLAT
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> UID<49><44> <20><>ȯ",IDC_FIND_ACCOUNT_LIST,196,134,
|
||||
89,15,BS_FLAT
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD>",IDC_CONNECT,4,4,79,14,BS_FLAT
|
||||
LTEXT "",IDC_LOG,4,159,282,43,0,WS_EX_STATICEDGE
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD>",IDC_STATIC,4,23,133,82,BS_FLAT
|
||||
CTEXT "Account",IDC_STATIC,8,35,39,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "Password",IDC_STATIC,8,47,39,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD>",IDC_AUTH,8,67,66,29,BS_FLAT
|
||||
CTEXT "",IDC_ID,145,73,75,12,SS_CENTERIMAGE,WS_EX_STATICEDGE
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ",IDC_UPDATE,78,67,54,14,BS_FLAT
|
||||
GROUPBOX "<22>˻<EFBFBD>",IDC_STATIC,140,23,145,82,BS_FLAT
|
||||
CTEXT "UID",IDC_STATIC,145,42,49,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "",IDC_ACCOUNT_OUT,145,86,75,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
CTEXT "Account",IDC_STATIC,145,55,49,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>",IDC_REG,78,83,54,14,BS_FLAT
|
||||
CONTROL "<22><>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD>(ActionRyl) <20><><EFBFBD><EFBFBD>üũ",IDC_BATTLERYL_CHECK,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,98,8,104,10
|
||||
EDITTEXT IDC_MD5_PASSWORD,48,118,85,14,ES_PASSWORD |
|
||||
ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_MD5_HASHVAL,48,135,85,14,ES_AUTOHSCROLL |
|
||||
ES_READONLY | NOT WS_BORDER,WS_EX_STATICEDGE
|
||||
GROUPBOX "MD5",IDC_STATIC,8,110,155,43
|
||||
LTEXT "Password",IDC_STATIC,13,121,33,8
|
||||
LTEXT "MD5 Hash",IDC_STATIC,13,137,33,8
|
||||
PUSHBUTTON "<22><>ȯ",IDC_MD5_CONVERT,137,119,22,30
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "041204B0"
|
||||
BEGIN
|
||||
VALUE "FileDescription", "AuthHan MFC <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1>"
|
||||
VALUE "FileVersion", "1, 0, 0, 1"
|
||||
VALUE "InternalName", "AuthHan"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2002"
|
||||
VALUE "OriginalFilename", "AuthHan.EXE"
|
||||
VALUE "ProductName", "AuthHan <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1>"
|
||||
VALUE "ProductVersion", "1, 0, 0, 1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x412, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
|
||||
IDD_AUTHHAN_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 4
|
||||
RIGHTMARGIN, 285
|
||||
TOPMARGIN, 4
|
||||
BOTTOMMARGIN, 202
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "AuthHan <20><><EFBFBD><EFBFBD>(&A)..."
|
||||
END
|
||||
|
||||
#endif // <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
#include "res\AuthHan.rc2" // non-Microsoft Visual C++ edited resources
|
||||
#include "l.kor\afxres.rc" // Standard components
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
202
Server/ToolProject/AuthHan/AuthHan.vcproj
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="AuthHan"
|
||||
ProjectGUID="{89A2020E-B414-4DEB-A86D-3FE96E28267A}"
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
ExpandAttributedSource="FALSE"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
OutputFile="$(OutDir)/$(ProjectName).exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="TRUE"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/AuthHan.tlb"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1042"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
OutputFile="$(OutDir)/$(ProjectName).exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
SubSystem="2"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="TRUE"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/AuthHan.tlb"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1042"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
||||
<File
|
||||
RelativePath=".\AuthHan.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthHanDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\md5c.c">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\StdAfx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl">
|
||||
<File
|
||||
RelativePath=".\AuthHan.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthHanDlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\global.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\md5.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\StdAfx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
||||
<File
|
||||
RelativePath=".\res\AuthHan.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AuthHan.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\res\AuthHan.rc2">
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
<Global
|
||||
Name="RESOURCE_FILE"
|
||||
Value="AuthHan.rc"/>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
555
Server/ToolProject/AuthHan/AuthHanDlg.cpp
Normal file
@@ -0,0 +1,555 @@
|
||||
// AuthHanDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthHan.h"
|
||||
#include "AuthHanDlg.h"
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <stdio.h>
|
||||
#include "global.h"
|
||||
#include "md5.h"
|
||||
}
|
||||
|
||||
#include <DB/DBComponent.h>
|
||||
#include <DB/AuthDBComponent.h>
|
||||
#include ".\authhandlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
static void MD5Print (unsigned char digest[16], char *output)
|
||||
{
|
||||
|
||||
unsigned int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
sprintf (output + i * 2, "%02x", digest[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static void MD5String (char *string, char *output)
|
||||
{
|
||||
MD5_CTX context;
|
||||
unsigned char digest[16];
|
||||
unsigned int len = strlen (string);
|
||||
|
||||
MD5Init (&context);
|
||||
MD5Update (&context, reinterpret_cast<unsigned char*>(string), len);
|
||||
MD5Final (digest, &context);
|
||||
MD5Print (digest, output);
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAboutDlg dialog used for App About
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CAboutDlg)
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAboutDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
//{{AFX_MSG(CAboutDlg)
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CAboutDlg)
|
||||
//}}AFX_DATA_INIT
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CAboutDlg)
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CAboutDlg)
|
||||
// No message handlers
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanDlg dialog
|
||||
|
||||
CAuthHanDlg::CAuthHanDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CAuthHanDlg::IDD, pParent)
|
||||
, m_AccountIn(_T(""))
|
||||
, m_bBattleRylAuth(FALSE)
|
||||
, m_szMD5Password(_T(""))
|
||||
, m_szMD5HashValue(_T(""))
|
||||
{
|
||||
//{{AFX_DATA_INIT(CAuthHanDlg)
|
||||
m_Log = _T("");
|
||||
m_Account = _T("");
|
||||
m_Password = _T("");
|
||||
m_ID = _T("");
|
||||
m_UID_IN = _T("");
|
||||
m_Account_Out = _T("");
|
||||
//}}AFX_DATA_INIT
|
||||
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CAuthHanDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CAuthHanDlg)
|
||||
DDX_Text(pDX, IDC_LOG, m_Log);
|
||||
DDX_Text(pDX, IDC_ACCOUNT, m_Account);
|
||||
DDX_Text(pDX, IDC_PASSWORD, m_Password);
|
||||
DDX_Text(pDX, IDC_ID, m_ID);
|
||||
DDX_Text(pDX, IDC_UID_IN, m_UID_IN);
|
||||
DDX_Text(pDX, IDC_ACCOUNT_OUT, m_Account_Out);
|
||||
//}}AFX_DATA_MAP
|
||||
DDX_Text(pDX, IDC_ACCOUNT_IN, m_AccountIn);
|
||||
DDX_Check(pDX, IDC_BATTLERYL_CHECK, m_bBattleRylAuth);
|
||||
DDX_Text(pDX, IDC_MD5_PASSWORD, m_szMD5Password);
|
||||
DDX_Text(pDX, IDC_MD5_HASHVAL, m_szMD5HashValue);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthHanDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CAuthHanDlg)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_BN_CLICKED(IDC_CONNECT, OnConnect)
|
||||
ON_BN_CLICKED(IDC_AUTH, OnAuth)
|
||||
ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
|
||||
ON_BN_CLICKED(IDC_FIND, OnFind)
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(IDC_REG, OnBnClickedReg)
|
||||
ON_BN_CLICKED(IDC_FIND_UID_LIST, OnBnClickedFindUidList)
|
||||
ON_BN_CLICKED(IDC_FIND_ACCOUNT_LIST, OnBnClickedFindAccountList)
|
||||
ON_BN_CLICKED(IDC_MD5_CONVERT, OnBnClickedMd5Convert)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanDlg message handlers
|
||||
|
||||
BOOL CAuthHanDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// Add "About..." menu item to system menu.
|
||||
|
||||
// IDM_ABOUTBOX must be in the system command range.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the icon for this dialog. The framework does this automatically
|
||||
// when the application's main window is not a dialog
|
||||
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// If you add a minimize button to your dialog, you will need the code below
|
||||
// to draw the icon. For MFC applications using the document/view model,
|
||||
// this is automatically done for you by the framework.
|
||||
|
||||
void CAuthHanDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
|
||||
|
||||
// Center icon in client rectangle
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// Draw the icon
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// The system calls this to obtain the cursor to display while the user drags
|
||||
// the minimized window.
|
||||
HCURSOR CAuthHanDlg::OnQueryDragIcon()
|
||||
{
|
||||
return (HCURSOR) m_hIcon;
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnConnect()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
if(CDBSingleObject::GetInstance().Connect(CDBSingleObject::Class_AuthDB))
|
||||
{
|
||||
m_Log = "Connected";
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = "Connected failed";
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
typedef struct _ACCOUNT
|
||||
{
|
||||
char Account[16];
|
||||
char Password[16];
|
||||
}ACCOUNT, *LPACCOUNT;
|
||||
|
||||
void CAuthHanDlg::OnAuth()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
AuthUserHangame();
|
||||
}
|
||||
|
||||
void CAuthHanDlg::AuthUserHangame(void)
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
HAN_UID hanUID;
|
||||
|
||||
char szPassword[33];
|
||||
memset(szPassword, 0, sizeof(char) * 33);
|
||||
MD5String(m_Password.GetBuffer(0), szPassword);
|
||||
|
||||
bool bResult = !m_bBattleRylAuth ?
|
||||
DBComponent::AuthDB::LoginAuthHan(CDBSingleObject::GetInstance(),
|
||||
m_Account.GetBuffer(0), szPassword, hanUID) :
|
||||
DBComponent::AuthDB::LoginBattleAuthHan(CDBSingleObject::GetInstance(),
|
||||
m_Account.GetBuffer(0), szPassword, hanUID);
|
||||
|
||||
if(bResult)
|
||||
{
|
||||
unsigned long UserID = hanUID.hUID;
|
||||
|
||||
if(UserID > 100)
|
||||
{
|
||||
m_ID.Format("%d", UserID);
|
||||
m_Log.Format("H:0x%08x L:0x%08x", hanUID.hUID, hanUID.lUID);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(UserID)
|
||||
{
|
||||
case 1: m_Log = "password mismatch"; break;
|
||||
case 2: m_Log = "<EFBFBD>Ѱ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ƴϰų<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"; break;
|
||||
case 3: m_Log = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD>"; break;
|
||||
case 4: m_Log = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̴<EFBFBD>"; break;
|
||||
case 5: m_Log = "3ȸ <20>̻<EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD>"; break;
|
||||
case 6: m_Log = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"; break;
|
||||
default:
|
||||
m_Log.Format("<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD> : %u : H:0x%08x L:0x%08x", UserID, hanUID.hUID, hanUID.lUID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = CDBSingleObject::GetInstance().GetErrorString();
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnUpdate()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnFind()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
DWORD UserID = 0;
|
||||
char UID[16] = "";
|
||||
char Account[16] = "";
|
||||
|
||||
if(0 != m_AccountIn.GetLength())
|
||||
{
|
||||
bool bResult = !m_bBattleRylAuth ?
|
||||
DBComponent::AuthDB::GetUIDByAccount(CDBSingleObject::GetInstance(), m_AccountIn.GetBuffer(0), UID)
|
||||
: DBComponent::AuthDB::GetBattleUIDByAccount(CDBSingleObject::GetInstance(), m_AccountIn.GetBuffer(0), UID);
|
||||
|
||||
if(bResult)
|
||||
{
|
||||
m_ID = UID;
|
||||
m_Account_Out = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = CDBSingleObject::GetInstance().GetErrorString();
|
||||
}
|
||||
}
|
||||
else if(0 != m_UID_IN.GetLength())
|
||||
{
|
||||
bool bResult = !m_bBattleRylAuth ?
|
||||
DBComponent::AuthDB::GetAccountByUID(CDBSingleObject::GetInstance(), atoi(m_UID_IN.GetBuffer(0)), Account)
|
||||
: DBComponent::AuthDB::GetBattleAccountByUID(CDBSingleObject::GetInstance(), atoi(m_UID_IN.GetBuffer(0)), Account);
|
||||
|
||||
if(bResult)
|
||||
{
|
||||
m_ID = "";
|
||||
m_Account_Out = Account;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = CDBSingleObject::GetInstance().GetErrorString();
|
||||
}
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnBnClickedReg()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
|
||||
bool bResult = !m_bBattleRylAuth ?
|
||||
DBComponent::AuthDB::RegRylGameHan(CDBSingleObject::GetInstance(), m_Account.GetBuffer(0), "Y")
|
||||
: DBComponent::AuthDB::RegBattleRylGameHan(CDBSingleObject::GetInstance(), m_Account.GetBuffer(0), "Y");
|
||||
|
||||
m_Log = bResult ? "Query Ok..." : CDBSingleObject::GetInstance().GetErrorString();
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnBnClickedFindUidList()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
|
||||
// 1. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 2. <20><> <20><><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><CCB8><EFBFBD> <20>Ƽ<DEBE> <20><><EFBFBD><EFBFBD>.
|
||||
|
||||
// 3. GetAccountByUID <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20>ϳ<EFBFBD><CFB3><EFBFBD> <20>о<EFBFBD> <20>´<EFBFBD>
|
||||
// 4. <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>о<EFBFBD><D0BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>
|
||||
// 5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ݴ´<DDB4>.
|
||||
|
||||
UpdateData();
|
||||
|
||||
OPENFILENAME openfile;
|
||||
OPENFILENAME savefile;
|
||||
|
||||
char szOpenFileName[MAX_PATH * MAX_PATH] = "";
|
||||
char szSaveFileName[MAX_PATH] = "";
|
||||
|
||||
memset(&openfile, 0, sizeof(OPENFILENAME));
|
||||
memset(&savefile, 0, sizeof(OPENFILENAME));
|
||||
|
||||
openfile.lStructSize = sizeof(OPENFILENAME);
|
||||
openfile.hwndOwner = m_hWnd;
|
||||
openfile.lpstrFilter = "All Files(*.*)\0*.*\0";
|
||||
openfile.lpstrFile = szOpenFileName;
|
||||
|
||||
openfile.nMaxFile = MAX_PATH * MAX_PATH;
|
||||
openfile.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER;
|
||||
|
||||
savefile.lStructSize = sizeof(OPENFILENAME);
|
||||
savefile.hwndOwner = m_hWnd;
|
||||
savefile.lpstrFilter = "All Files(*.*)\0*.*\0";
|
||||
savefile.lpstrFile = szSaveFileName;
|
||||
savefile.nMaxFile = MAX_PATH;
|
||||
savefile.Flags = OFN_LONGNAMES | OFN_EXPLORER;
|
||||
|
||||
bool bResult = false;
|
||||
|
||||
if(GetOpenFileName(&openfile))
|
||||
{
|
||||
if(GetSaveFileName(&savefile))
|
||||
{
|
||||
FILE* readfile = fopen(szOpenFileName, "rt");
|
||||
|
||||
if(NULL != readfile)
|
||||
{
|
||||
FILE* writefile = fopen(szSaveFileName, "wt");
|
||||
|
||||
if(NULL != writefile)
|
||||
{
|
||||
const int MAX_BUFFER = 4000;
|
||||
char szUID[MAX_BUFFER];
|
||||
char Account[16] = "";
|
||||
|
||||
while(fgets(szUID, MAX_BUFFER, readfile))
|
||||
{
|
||||
char* stopstring = NULL;
|
||||
unsigned long dwUID = strtoul(szUID, &stopstring, 10);
|
||||
|
||||
if(0 < dwUID)
|
||||
{
|
||||
bool bResult = !m_bBattleRylAuth ? DBComponent::AuthDB::GetAccountByUID(CDBSingleObject::GetInstance(), dwUID, Account)
|
||||
: DBComponent::AuthDB::GetBattleAccountByUID(CDBSingleObject::GetInstance(), dwUID, Account);
|
||||
|
||||
if(bResult)
|
||||
{
|
||||
fprintf(writefile, "%10d\t%s\n", dwUID, Account);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(writefile, "%10d\t%s\n", dwUID, CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
}
|
||||
|
||||
Sleep(50);
|
||||
}
|
||||
|
||||
bResult = true;
|
||||
fclose(writefile);
|
||||
}
|
||||
|
||||
fclose(readfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox(bResult ? "<EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>." : "<EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>");
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnBnClickedFindAccountList()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
|
||||
UpdateData();
|
||||
|
||||
OPENFILENAME openfile;
|
||||
OPENFILENAME savefile;
|
||||
|
||||
char szOpenFileName[MAX_PATH * MAX_PATH] = "";
|
||||
char szSaveFileName[MAX_PATH] = "";
|
||||
|
||||
memset(&openfile, 0, sizeof(OPENFILENAME));
|
||||
memset(&savefile, 0, sizeof(OPENFILENAME));
|
||||
|
||||
openfile.lStructSize = sizeof(OPENFILENAME);
|
||||
openfile.hwndOwner = m_hWnd;
|
||||
openfile.lpstrFilter = "All Files(*.*)\0*.*\0";
|
||||
openfile.lpstrFile = szOpenFileName;
|
||||
|
||||
openfile.nMaxFile = MAX_PATH * MAX_PATH;
|
||||
openfile.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER;
|
||||
|
||||
savefile.lStructSize = sizeof(OPENFILENAME);
|
||||
savefile.hwndOwner = m_hWnd;
|
||||
savefile.lpstrFilter = "All Files(*.*)\0*.*\0";
|
||||
savefile.lpstrFile = szSaveFileName;
|
||||
savefile.nMaxFile = MAX_PATH;
|
||||
savefile.Flags = OFN_LONGNAMES | OFN_EXPLORER;
|
||||
|
||||
bool bResult = false;
|
||||
|
||||
if(GetOpenFileName(&openfile))
|
||||
{
|
||||
if(GetSaveFileName(&savefile))
|
||||
{
|
||||
FILE* readfile = fopen(szOpenFileName, "rt");
|
||||
|
||||
if(NULL != readfile)
|
||||
{
|
||||
FILE* writefile = fopen(szSaveFileName, "wt");
|
||||
|
||||
if(NULL != writefile)
|
||||
{
|
||||
const int MAX_BUFFER = 4000;
|
||||
char szAccount[MAX_BUFFER];
|
||||
char szUID[16] = "";
|
||||
|
||||
while(fgets(szUID, MAX_BUFFER, readfile))
|
||||
{
|
||||
char* stopstring = NULL;
|
||||
|
||||
bool bResult = !m_bBattleRylAuth ? DBComponent::AuthDB::GetUIDByAccount(CDBSingleObject::GetInstance(), szAccount, szUID)
|
||||
: DBComponent::AuthDB::GetBattleUIDByAccount(CDBSingleObject::GetInstance(), szAccount, szUID);
|
||||
|
||||
if(bResult)
|
||||
{
|
||||
fprintf(writefile, "%s\t%s\n", szUID, szAccount);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(writefile, "%s\t%s\n", szUID, CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
Sleep(50);
|
||||
}
|
||||
|
||||
bResult = true;
|
||||
fclose(writefile);
|
||||
}
|
||||
|
||||
fclose(readfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MessageBox(bResult ? "<EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD> <20>Ϸ<EFBFBD><CFB7>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>." : "<EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>");
|
||||
}
|
||||
|
||||
void CAuthHanDlg::OnBnClickedMd5Convert()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData();
|
||||
|
||||
char szPassword[33];
|
||||
memset(szPassword, 0, sizeof(char) * 33);
|
||||
MD5String(m_szMD5Password.GetBuffer(0), szPassword);
|
||||
|
||||
m_szMD5HashValue = szPassword;
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
78
Server/ToolProject/AuthHan/AuthHanDlg.h
Normal file
@@ -0,0 +1,78 @@
|
||||
// AuthHanDlg.h : header file
|
||||
//
|
||||
|
||||
#if !defined(AFX_AUTHHANDLG_H__D956BA36_044B_41F8_8C63_71ACF469DA91__INCLUDED_)
|
||||
#define AFX_AUTHHANDLG_H__D956BA36_044B_41F8_8C63_71ACF469DA91__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include <RylServerLibrary/DB/DBComponent.h>
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CAuthHanDlg dialog
|
||||
class CAuthHanDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CAuthHanDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
void AuthUserHangame(void);
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CAuthHanDlg)
|
||||
enum { IDD = IDD_AUTHHAN_DIALOG };
|
||||
CString m_Log;
|
||||
CString m_Account;
|
||||
CString m_Password;
|
||||
CString m_ID;
|
||||
CString m_T1;
|
||||
CString m_T2;
|
||||
CString m_UID_IN;
|
||||
CString m_Account_Out;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CAuthHanDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
public:
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CAuthHanDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
afx_msg void OnConnect();
|
||||
afx_msg void OnAuth();
|
||||
afx_msg void OnUpdate();
|
||||
afx_msg void OnFind();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
afx_msg void OnBnClickedReg();
|
||||
afx_msg void OnBnClickedFindUidList();
|
||||
afx_msg void OnBnClickedFindAccountList();
|
||||
|
||||
private:
|
||||
|
||||
CString m_AccountIn;
|
||||
BOOL m_bBattleRylAuth;
|
||||
|
||||
CString m_szMD5Password;
|
||||
CString m_szMD5HashValue;
|
||||
|
||||
afx_msg void OnBnClickedMd5Convert();
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_AUTHHANDLG_H__D956BA36_044B_41F8_8C63_71ACF469DA91__INCLUDED_)
|
||||
42
Server/ToolProject/AuthHan/Resource.h
Normal file
@@ -0,0 +1,42 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by AuthHan.rc
|
||||
//
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_AUTHHAN_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_CONNECT 1000
|
||||
#define IDC_LOG 1001
|
||||
#define IDC_ACCOUNT 1002
|
||||
#define IDC_PASSWORD 1003
|
||||
#define IDC_AUTH 1004
|
||||
#define IDC_ID 1005
|
||||
#define IDC_UPDATE 1006
|
||||
#define IDC_BUTTON 1007
|
||||
#define IDC_UID_IN 1008
|
||||
#define IDC_FIND 1009
|
||||
#define IDC_ACCOUNT_OUT 1010
|
||||
#define IDC_ACCOUNT_IN 1011
|
||||
#define IDC_FIND_UID_LIST 1012
|
||||
#define IDC_REG 1013
|
||||
#define IDC_FIND3 1014
|
||||
#define IDC_FIND_ACCOUNT_LIST 1014
|
||||
#define IDC_CHECK1 1015
|
||||
#define IDC_BATTLERYL_CHECK 1015
|
||||
#define IDC_MD5_PASSWORD 1016
|
||||
#define IDC_MD5_HASHVAL 1017
|
||||
#define IDC_BUTTON1 1018
|
||||
#define IDC_MD5_CONVERT 1018
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1019
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
8
Server/ToolProject/AuthHan/StdAfx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// AuthHan.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
|
||||
27
Server/ToolProject/AuthHan/StdAfx.h
Normal file
@@ -0,0 +1,27 @@
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#if !defined(AFX_STDAFX_H__0EAFCB48_9CA8_4B9A_BF6D_C9048E6747F7__INCLUDED_)
|
||||
#define AFX_STDAFX_H__0EAFCB48_9CA8_4B9A_BF6D_C9048E6747F7__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||
|
||||
#include <afxwin.h> // MFC core and standard components
|
||||
#include <afxext.h> // MFC extensions
|
||||
#include <afxdisp.h> // MFC Automation classes
|
||||
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_STDAFX_H__0EAFCB48_9CA8_4B9A_BF6D_C9048E6747F7__INCLUDED_)
|
||||
30
Server/ToolProject/AuthHan/global.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/* GLOBAL.H - RSAREF types and constants
|
||||
*/
|
||||
|
||||
/* PROTOTYPES should be set to one if and only if the compiler supports
|
||||
function argument prototyping.
|
||||
The following makes PROTOTYPES default to 0 if it has not already
|
||||
been defined with C compiler flags.
|
||||
*/
|
||||
#ifndef PROTOTYPES
|
||||
#define PROTOTYPES 0
|
||||
#endif
|
||||
|
||||
/* POINTER defines a generic pointer type */
|
||||
typedef unsigned char *POINTER;
|
||||
|
||||
/* UINT2 defines a two byte word */
|
||||
typedef unsigned short int UINT2;
|
||||
|
||||
/* UINT4 defines a four byte word */
|
||||
typedef unsigned long int UINT4;
|
||||
|
||||
/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
|
||||
If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
|
||||
returns an empty list.
|
||||
*/
|
||||
#if PROTOTYPES
|
||||
#define PROTO_LIST(list) list
|
||||
#else
|
||||
#define PROTO_LIST(list) ()
|
||||
#endif
|
||||
36
Server/ToolProject/AuthHan/md5.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* MD5.H - header file for MD5C.C
|
||||
*/
|
||||
|
||||
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
|
||||
rights reserved.
|
||||
|
||||
License to copy and use this software is granted provided that it
|
||||
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
|
||||
Algorithm" in all material mentioning or referencing this software
|
||||
or this function.
|
||||
|
||||
License is also granted to make and use derivative works provided
|
||||
that such works are identified as "derived from the RSA Data
|
||||
Security, Inc. MD5 Message-Digest Algorithm" in all material
|
||||
mentioning or referencing the derived work.
|
||||
|
||||
RSA Data Security, Inc. makes no representations concerning either
|
||||
the merchantability of this software or the suitability of this
|
||||
software for any particular purpose. It is provided "as is"
|
||||
without express or implied warranty of any kind.
|
||||
|
||||
These notices must be retained in any copies of any part of this
|
||||
documentation and/or software.
|
||||
*/
|
||||
|
||||
/* MD5 context. */
|
||||
typedef struct {
|
||||
UINT4 state[4]; /* state (ABCD) */
|
||||
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
|
||||
unsigned char buffer[64]; /* input buffer */
|
||||
} MD5_CTX;
|
||||
|
||||
void MD5Init (MD5_CTX *);
|
||||
void MD5Update (MD5_CTX *, unsigned char *, unsigned int);
|
||||
void MD5Final (unsigned char [16], MD5_CTX *);
|
||||
|
||||
337
Server/ToolProject/AuthHan/md5c.c
Normal file
@@ -0,0 +1,337 @@
|
||||
/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
|
||||
*/
|
||||
|
||||
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
|
||||
rights reserved.
|
||||
|
||||
License to copy and use this software is granted provided that it
|
||||
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
|
||||
Algorithm" in all material mentioning or referencing this software
|
||||
or this function.
|
||||
|
||||
License is also granted to make and use derivative works provided
|
||||
that such works are identified as "derived from the RSA Data
|
||||
Security, Inc. MD5 Message-Digest Algorithm" in all material
|
||||
mentioning or referencing the derived work.
|
||||
|
||||
RSA Data Security, Inc. makes no representations concerning either
|
||||
the merchantability of this software or the suitability of this
|
||||
software for any particular purpose. It is provided "as is"
|
||||
without express or implied warranty of any kind.
|
||||
|
||||
These notices must be retained in any copies of any part of this
|
||||
documentation and/or software.
|
||||
*/
|
||||
|
||||
#include "global.h"
|
||||
#include "md5.h"
|
||||
|
||||
/* Constants for MD5Transform routine.
|
||||
*/
|
||||
|
||||
#define S11 7
|
||||
#define S12 12
|
||||
#define S13 17
|
||||
#define S14 22
|
||||
#define S21 5
|
||||
#define S22 9
|
||||
#define S23 14
|
||||
#define S24 20
|
||||
#define S31 4
|
||||
#define S32 11
|
||||
#define S33 16
|
||||
#define S34 23
|
||||
#define S41 6
|
||||
#define S42 10
|
||||
#define S43 15
|
||||
#define S44 21
|
||||
|
||||
static void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64]));
|
||||
static void Encode PROTO_LIST
|
||||
((unsigned char *, UINT4 *, unsigned int));
|
||||
static void Decode PROTO_LIST
|
||||
((UINT4 *, unsigned char *, unsigned int));
|
||||
static void MD5_memcpy PROTO_LIST ((POINTER, POINTER, unsigned int));
|
||||
static void MD5_memset PROTO_LIST ((POINTER, int, unsigned int));
|
||||
|
||||
static unsigned char PADDING[64] = {
|
||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
/* F, G, H and I are basic MD5 functions.
|
||||
*/
|
||||
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
|
||||
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
|
||||
#define H(x, y, z) ((x) ^ (y) ^ (z))
|
||||
#define I(x, y, z) ((y) ^ ((x) | (~z)))
|
||||
|
||||
/* ROTATE_LEFT rotates x left n bits.
|
||||
*/
|
||||
#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
|
||||
|
||||
/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
|
||||
Rotation is separate from addition to prevent recomputation.
|
||||
*/
|
||||
#define FF(a, b, c, d, x, s, ac) { \
|
||||
(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
#define GG(a, b, c, d, x, s, ac) { \
|
||||
(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
#define HH(a, b, c, d, x, s, ac) { \
|
||||
(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
#define II(a, b, c, d, x, s, ac) { \
|
||||
(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
|
||||
(a) = ROTATE_LEFT ((a), (s)); \
|
||||
(a) += (b); \
|
||||
}
|
||||
|
||||
/* MD5 initialization. Begins an MD5 operation, writing a new context.
|
||||
*/
|
||||
void MD5Init (context)
|
||||
MD5_CTX *context; /* context */
|
||||
{
|
||||
context->count[0] = context->count[1] = 0;
|
||||
/* Load magic initialization constants.
|
||||
*/
|
||||
context->state[0] = 0x67452301;
|
||||
context->state[1] = 0xefcdab89;
|
||||
context->state[2] = 0x98badcfe;
|
||||
context->state[3] = 0x10325476;
|
||||
}
|
||||
|
||||
/* MD5 block update operation. Continues an MD5 message-digest
|
||||
operation, processing another message block, and updating the
|
||||
context.
|
||||
*/
|
||||
void MD5Update (context, input, inputLen)
|
||||
MD5_CTX *context; /* context */
|
||||
unsigned char *input; /* input block */
|
||||
unsigned int inputLen; /* length of input block */
|
||||
{
|
||||
unsigned int i, index, partLen;
|
||||
|
||||
/* Compute number of bytes mod 64 */
|
||||
index = (unsigned int)((context->count[0] >> 3) & 0x3F);
|
||||
|
||||
/* Update number of bits */
|
||||
if ((context->count[0] += ((UINT4)inputLen << 3))
|
||||
< ((UINT4)inputLen << 3))
|
||||
context->count[1]++;
|
||||
context->count[1] += ((UINT4)inputLen >> 29);
|
||||
|
||||
partLen = 64 - index;
|
||||
|
||||
/* Transform as many times as possible.
|
||||
*/
|
||||
if (inputLen >= partLen) {
|
||||
MD5_memcpy
|
||||
((POINTER)&context->buffer[index], (POINTER)input, partLen);
|
||||
MD5Transform (context->state, context->buffer);
|
||||
|
||||
for (i = partLen; i + 63 < inputLen; i += 64)
|
||||
MD5Transform (context->state, &input[i]);
|
||||
|
||||
index = 0;
|
||||
}
|
||||
else
|
||||
i = 0;
|
||||
|
||||
/* Buffer remaining input */
|
||||
MD5_memcpy
|
||||
((POINTER)&context->buffer[index], (POINTER)&input[i],
|
||||
inputLen-i);
|
||||
}
|
||||
|
||||
/* MD5 finalization. Ends an MD5 message-digest operation, writing the
|
||||
the message digest and zeroizing the context.
|
||||
*/
|
||||
void MD5Final (digest, context)
|
||||
unsigned char digest[16]; /* message digest */
|
||||
MD5_CTX *context; /* context */
|
||||
{
|
||||
unsigned char bits[8];
|
||||
unsigned int index, padLen;
|
||||
|
||||
/* Save number of bits */
|
||||
Encode (bits, context->count, 8);
|
||||
|
||||
/* Pad out to 56 mod 64.
|
||||
*/
|
||||
index = (unsigned int)((context->count[0] >> 3) & 0x3f);
|
||||
padLen = (index < 56) ? (56 - index) : (120 - index);
|
||||
MD5Update (context, PADDING, padLen);
|
||||
|
||||
/* Append length (before padding) */
|
||||
MD5Update (context, bits, 8);
|
||||
|
||||
/* Store state in digest */
|
||||
Encode (digest, context->state, 16);
|
||||
|
||||
/* Zeroize sensitive information.
|
||||
*/
|
||||
MD5_memset ((POINTER)context, 0, sizeof (*context));
|
||||
}
|
||||
|
||||
/* MD5 basic transformation. Transforms state based on block.
|
||||
*/
|
||||
static void MD5Transform (state, block)
|
||||
UINT4 state[4];
|
||||
unsigned char block[64];
|
||||
{
|
||||
UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
|
||||
|
||||
Decode (x, block, 64);
|
||||
|
||||
/* Round 1 */
|
||||
FF (a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
|
||||
FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
|
||||
FF (c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
|
||||
FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
|
||||
FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
|
||||
FF (d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
|
||||
FF (c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
|
||||
FF (b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
|
||||
FF (a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
|
||||
FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
|
||||
FF (c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
|
||||
FF (b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
|
||||
FF (a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
|
||||
FF (d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
|
||||
FF (c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
|
||||
FF (b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
|
||||
|
||||
/* Round 2 */
|
||||
GG (a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
|
||||
GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
|
||||
GG (c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
|
||||
GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
|
||||
GG (a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
|
||||
GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
|
||||
GG (c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
|
||||
GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
|
||||
GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
|
||||
GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
|
||||
GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
|
||||
GG (b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
|
||||
GG (a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
|
||||
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
|
||||
GG (c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
|
||||
GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
|
||||
|
||||
/* Round 3 */
|
||||
HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
|
||||
HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
|
||||
HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
|
||||
HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
|
||||
HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
|
||||
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
|
||||
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
|
||||
HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
|
||||
HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
|
||||
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
|
||||
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
|
||||
HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
|
||||
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
|
||||
HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
|
||||
HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
|
||||
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
|
||||
|
||||
/* Round 4 */
|
||||
II (a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
|
||||
II (d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
|
||||
II (c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
|
||||
II (b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
|
||||
II (a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
|
||||
II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
|
||||
II (c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
|
||||
II (b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
|
||||
II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
|
||||
II (d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
|
||||
II (c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
|
||||
II (b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
|
||||
II (a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
|
||||
II (d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
|
||||
II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
|
||||
II (b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
|
||||
|
||||
state[0] += a;
|
||||
state[1] += b;
|
||||
state[2] += c;
|
||||
state[3] += d;
|
||||
|
||||
/* Zeroize sensitive information.
|
||||
*/
|
||||
MD5_memset ((POINTER)x, 0, sizeof (x));
|
||||
}
|
||||
|
||||
/* Encodes input (UINT4) into output (unsigned char). Assumes len is
|
||||
a multiple of 4.
|
||||
*/
|
||||
static void Encode (output, input, len)
|
||||
unsigned char *output;
|
||||
UINT4 *input;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
for (i = 0, j = 0; j < len; i++, j += 4) {
|
||||
output[j] = (unsigned char)(input[i] & 0xff);
|
||||
output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
|
||||
output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
|
||||
output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
|
||||
}
|
||||
}
|
||||
|
||||
/* Decodes input (unsigned char) into output (UINT4). Assumes len is
|
||||
a multiple of 4.
|
||||
*/
|
||||
static void Decode (output, input, len)
|
||||
UINT4 *output;
|
||||
unsigned char *input;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i, j;
|
||||
|
||||
for (i = 0, j = 0; j < len; i++, j += 4)
|
||||
output[i] = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) |
|
||||
(((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
|
||||
}
|
||||
|
||||
/* Note: Replace "for loop" with standard memcpy if possible.
|
||||
*/
|
||||
|
||||
static void MD5_memcpy (output, input, len)
|
||||
POINTER output;
|
||||
POINTER input;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
output[i] = input[i];
|
||||
}
|
||||
|
||||
/* Note: Replace "for loop" with standard memset if possible.
|
||||
*/
|
||||
static void MD5_memset (output, value, len)
|
||||
POINTER output;
|
||||
int value;
|
||||
unsigned int len;
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
((char *)output)[i] = (char)value;
|
||||
}
|
||||
|
||||
|
||||
BIN
Server/ToolProject/AuthHan/res/AuthHan.ico
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
13
Server/ToolProject/AuthHan/res/AuthHan.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// AUTHHAN.RC2 - resources Microsoft Visual C++ does not edit directly
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error this file is not editable by Microsoft Visual C++
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Add manually edited resources here...
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
65
Server/ToolProject/AuthYouxi/AuthYouxi.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
// AuthYouxi.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthYouxi.h"
|
||||
#include "AuthYouxiDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CAuthYouxiApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthYouxiApp, CWinApp)
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CAuthYouxiApp <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CAuthYouxiApp::CAuthYouxiApp()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
// InitInstance<63><65> <20><><EFBFBD><EFBFBD> <20>߿<EFBFBD><DFBF><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAuthYouxiApp <20><>ü<EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
CAuthYouxiApp theApp;
|
||||
|
||||
|
||||
// CAuthYouxiApp <20>ʱ<EFBFBD>ȭ
|
||||
|
||||
BOOL CAuthYouxiApp::InitInstance()
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>Ŵ<EFBFBD><C5B4>佺Ʈ<E4BDBA><C6AE> ComCtl32.dll <20><><EFBFBD><EFBFBD> 6 <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>־<EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>, Windows XP <20><EFBFBD> <20>ݵ<EFBFBD><DDB5><EFBFBD> InitCommonControls()<29><> <20>ʿ<EFBFBD><CABF>մϴ<D5B4>.
|
||||
// InitCommonControls()<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
InitCommonControls();
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
|
||||
CAuthYouxiDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
// <20>ڵ带 <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD>Ҹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
// <20>ڵ带 <20><>ġ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> FALSE<53><45> <20><>ȯ<EFBFBD>մϴ<D5B4>.
|
||||
return FALSE;
|
||||
}
|
||||
31
Server/ToolProject/AuthYouxi/AuthYouxi.h
Normal file
@@ -0,0 +1,31 @@
|
||||
// AuthYouxi.h : PROJECT_NAME <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // <20><> <20><>ȣ
|
||||
|
||||
|
||||
// CAuthYouxiApp:
|
||||
// <20><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> AuthYouxi.cpp<70><70> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
//
|
||||
|
||||
class CAuthYouxiApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CAuthYouxiApp();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern CAuthYouxiApp theApp;
|
||||
215
Server/ToolProject/AuthYouxi/AuthYouxi.rc
Normal file
@@ -0,0 +1,215 @@
|
||||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
#pragma code_page(949)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
|
||||
"LANGUAGE 18, 1\r\n"
|
||||
"#pragma code_page(949)\r\n"
|
||||
"#include ""res\\AuthYouxi.rc2"" // Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>\r\n"
|
||||
"#include ""afxres.rc"" // ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON "res\\AuthYouxi.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "AuthYouxi <20><><EFBFBD><EFBFBD>"
|
||||
FONT 9, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
|
||||
LTEXT "AuthYouxi <20><><EFBFBD><EFBFBD> 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
|
||||
LTEXT "Copyright (c) 2003",IDC_STATIC,40,25,119,8
|
||||
DEFPUSHBUTTON "Ȯ<><C8AE>",IDOK,178,7,50,16,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_AUTHYOUXI_DIALOG DIALOGEX 0, 0, 157, 174
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE |
|
||||
WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "AuthYouxi"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON ".",IDC_DEFAULT,22,122,6,6,BS_FLAT | NOT WS_VISIBLE
|
||||
PUSHBUTTON "<22><><EFBFBD><EFBFBD>",IDC_CONNECT,5,5,50,14,BS_FLAT
|
||||
GROUPBOX "<22><><EFBFBD><EFBFBD>",IDC_STATIC,5,24,145,83
|
||||
CTEXT "<22><><EFBFBD><EFBFBD>",IDC_STATIC,11,37,32,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_ACCOUNT,44,37,96,12,ES_AUTOHSCROLL | NOT WS_BORDER
|
||||
CTEXT "<22>н<EFBFBD>",IDC_STATIC,11,50,32,12,SS_CENTERIMAGE,
|
||||
WS_EX_STATICEDGE
|
||||
EDITTEXT IDC_PASSWORD,44,50,96,12,ES_AUTOHSCROLL | NOT WS_BORDER
|
||||
PUSHBUTTON "spLoginAuthMyth",IDC_AUTH,11,68,129,14,BS_FLAT
|
||||
PUSHBUTTON "spPayAuthMyth",IDC_PAYAUTH,11,84,129,14,BS_FLAT
|
||||
LTEXT "",IDC_LOG,5,112,145,56,0,WS_EX_STATICEDGE
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "041203b5"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "TODO: <ȸ<><C8B8> <20≯<EFBFBD>>"
|
||||
VALUE "FileDescription", "TODO: <<3C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>>"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "AuthYouxi.exe"
|
||||
VALUE "LegalCopyright", "TODO: (c) <ȸ<><C8B8> <20≯<EFBFBD>>. All rights reserved."
|
||||
VALUE "OriginalFilename", "AuthYouxi.exe"
|
||||
VALUE "ProductName", "TODO: <<3C><>ǰ <20≯<EFBFBD>>"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "<22><>ȯ", 0x412, 949
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 228
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 48
|
||||
END
|
||||
|
||||
IDD_AUTHYOUXI_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 150
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 167
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// RT_MANIFEST
|
||||
//
|
||||
|
||||
IDR_MANIFEST RT_MANIFEST "res\\AuthYouxi.manifest"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// String Table
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ABOUTBOX "AuthYouxi <20><><EFBFBD><EFBFBD>(&A)..."
|
||||
END
|
||||
|
||||
#endif // <20>ѱ<EFBFBD><D1B1><EFBFBD> resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
|
||||
LANGUAGE 18, 1
|
||||
#pragma code_page(949)
|
||||
#include "res\AuthYouxi.rc2" // Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>
|
||||
#include "afxres.rc" // ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
193
Server/ToolProject/AuthYouxi/AuthYouxi.vcproj
Normal file
@@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="AuthYouxi"
|
||||
ProjectGUID="{02F46342-4C6A-4518-BE02-E40BC2F96AB4}"
|
||||
Keyword="MFCProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../DBToolExecutable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OmitFramePointers="TRUE"
|
||||
AdditionalIncludeDirectories="../;./;../../RylServerProject;../../RylServerProject/RylServerLibrary;../../RylServerProject/BaseLibrary"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
|
||||
StringPooling="TRUE"
|
||||
MinimalRebuild="FALSE"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
TreatWChar_tAsBuiltInType="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="FALSE"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
AdditionalIncludeDirectories="$(IntDir)"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="<22>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
|
||||
<File
|
||||
RelativePath="AuthYouxi.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="AuthYouxiDlg.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="h;hpp;hxx;hm;inl;inc">
|
||||
<File
|
||||
RelativePath="AuthYouxi.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="AuthYouxiDlg.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="Resource.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;manifest">
|
||||
<File
|
||||
RelativePath="res\AuthYouxi.ico">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="res\AuthYouxi.manifest">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="AuthYouxi.rc">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="res\AuthYouxi.rc2">
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="ReadMe.txt">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
255
Server/ToolProject/AuthYouxi/AuthYouxiDlg.cpp
Normal file
@@ -0,0 +1,255 @@
|
||||
// AuthYouxiDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AuthYouxi.h"
|
||||
#include "AuthYouxiDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
#include <DB/DBComponent.h>
|
||||
#include <DB/AuthDBComponent.h>
|
||||
#include <DB/BillingDBComponent.h>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> CAboutDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
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()
|
||||
|
||||
|
||||
// CAuthYouxiDlg <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
CAuthYouxiDlg::CAuthYouxiDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CAuthYouxiDlg::IDD, pParent)
|
||||
, m_Log(_T(""))
|
||||
, m_Account(_T(""))
|
||||
, m_Password(_T(""))
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CAuthYouxiDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Text(pDX, IDC_LOG, m_Log);
|
||||
DDX_Text(pDX, IDC_ACCOUNT, m_Account);
|
||||
DDX_Text(pDX, IDC_PASSWORD, m_Password);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAuthYouxiDlg, CDialog)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(IDC_CONNECT, OnBnClickedConnect)
|
||||
ON_BN_CLICKED(IDC_AUTH, OnBnClickedAuth)
|
||||
ON_BN_CLICKED(IDC_PAYAUTH, OnBnClickedPayauth)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CAuthYouxiDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
||||
|
||||
BOOL CAuthYouxiDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// <20>ý<EFBFBD><C3BD><EFBFBD> <20><EFBFBD><DEB4><EFBFBD> "<22><><EFBFBD><EFBFBD>..." <20><EFBFBD> <20><EFBFBD><D7B8><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
|
||||
// IDM_ABOUTBOX<4F><58> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE><EFBFBD> <20>մϴ<D5B4>.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// <20><> <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><> â<><C3A2> <20><>ȭ <20><><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD>쿡<EFBFBD><ECBFA1>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ũ<EFBFBD><C5A9> <20><> <20>۾<EFBFBD><DBBE><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
SetIcon(m_hIcon, TRUE); // ū <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
SetIcon(m_hIcon, FALSE); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
// TODO: <20><><EFBFBD> <20>߰<EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
|
||||
return TRUE; // <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> TRUE<55><45> <20><>ȯ<EFBFBD>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
void CAuthYouxiDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD>ڿ<EFBFBD> <20>ּ<EFBFBD>ȭ <20><><EFBFBD>߸<EFBFBD> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20>Ʒ<EFBFBD> <20>ڵ尡 <20>ʿ<EFBFBD><CABF>մϴ<D5B4>. <20><><EFBFBD><EFBFBD>/<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> MFC <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD>쿡<EFBFBD><ECBFA1>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ũ<EFBFBD><C5A9><EFBFBD><EFBFBD> <20><> <20>۾<EFBFBD><DBBE><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
void CAuthYouxiDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // <20><EFBFBD><D7B8>⸦ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> <20><><EFBFBD>ؽ<EFBFBD>Ʈ
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20>簢<EFBFBD><E7B0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EEB5A5> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B8>ϴ<EFBFBD>.
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ּ<EFBFBD>ȭ<EFBFBD><C8AD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ȿ<EFBFBD> Ŀ<><C4BF><EFBFBD><EFBFBD> ǥ<>õǵ<C3B5><C7B5><EFBFBD> <20>ý<EFBFBD><C3BD>ۿ<EFBFBD><DBBF><EFBFBD>
|
||||
// <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> ȣ<><C8A3><EFBFBD>մϴ<D5B4>.
|
||||
HCURSOR CAuthYouxiDlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
void CAuthYouxiDlg::OnBnClickedConnect()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
if(CDBSingleObject::GetInstance().Connect(CDBSingleObject::Class_KeeperDB))
|
||||
{
|
||||
m_Log = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD>. (Connected)";
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.";
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthYouxiDlg::OnBnClickedAuth()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData();
|
||||
|
||||
AUTH Auth = {0,};
|
||||
if(DBComponent::AuthDB::LoginAuthMyth(CDBSingleObject::GetInstance(),
|
||||
m_Account.GetBuffer(0), m_Password.GetBuffer(0), "0.0.0.0", &Auth))
|
||||
{
|
||||
if(0 == Auth.Errcode)
|
||||
{
|
||||
m_Log.Format("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> UID:%d", Auth.UID);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(Auth.Errcode)
|
||||
{
|
||||
case 1: m_Log.Format("%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʰų<CAB0> <20><>ȣ<EFBFBD><C8A3> Ʋ<><C6B2>", Auth.Errcode); break;
|
||||
case 2: m_Log.Format("%d UID <20><> <20>̻<EFBFBD>", Auth.Errcode); break;
|
||||
case 3: m_Log.Format("%d <20>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>", Auth.Errcode); break;
|
||||
case 9: m_Log.Format("%d <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 11: m_Log.Format("%d <20><><EFBFBD><EFBFBD>Ʈ ī<><C4AB> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD>", Auth.Errcode); break;
|
||||
case 12: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>ų<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 13: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 14: m_Log.Format("%d <20><>ȿ <20>Ⱓ <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 19: m_Log.Format("%d <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 21: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ⱓ<EFBFBD><E2B0A3> <20><><EFBFBD>۵<EFBFBD><DBB5><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD>", Auth.Errcode); break;
|
||||
case 22: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ⱓ <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 29: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
|
||||
case 51: m_Log.Format("%d <20><><EFBFBD><EFBFBD>Ʈ ī<><C4AB> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>ƴ<EFBFBD>", Auth.Errcode); break;
|
||||
case 52: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>ų<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 53: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 54: m_Log.Format("%d <20><>ȿ <20>Ⱓ <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
case 59: m_Log.Format("%d <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
default: m_Log.Format("%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>", Auth.Errcode); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = CDBSingleObject::GetInstance().GetErrorString();
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CAuthYouxiDlg::OnBnClickedPayauth()
|
||||
{
|
||||
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
UpdateData();
|
||||
|
||||
PAY_AUTH PayAuth = {0,};
|
||||
if(DBComponent::BillingDB::PayAuthMyth(
|
||||
CDBSingleObject::GetInstance(), m_Account.GetBuffer(0), "0.0.0.0", &PayAuth))
|
||||
{
|
||||
if(0 == PayAuth.Errcode)
|
||||
{
|
||||
m_Log.Format("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> UID:%d, Time:%d (<28><>)", PayAuth.UID, PayAuth.Time);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(PayAuth.Errcode)
|
||||
{
|
||||
case 1: m_Log.Format("%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20>ð<EFBFBD>:%d", PayAuth.Errcode, PayAuth.Time); break;
|
||||
case 11: m_Log.Format("%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>ð<EFBFBD>:%d", PayAuth.Errcode, PayAuth.Time); break;
|
||||
case 13: m_Log.Format("%d <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>. <20>ð<EFBFBD>:%d", PayAuth.Errcode, PayAuth.Time); break;
|
||||
case 19: m_Log.Format("%d <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20>ð<EFBFBD>:%d", PayAuth.Errcode, PayAuth.Time); break;
|
||||
default: m_Log.Format("%d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20>ð<EFBFBD>:%d", PayAuth.Errcode, PayAuth.Time); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Log = CDBSingleObject::GetInstance().GetErrorString();
|
||||
}
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
38
Server/ToolProject/AuthYouxi/AuthYouxiDlg.h
Normal file
@@ -0,0 +1,38 @@
|
||||
// AuthYouxiDlg.h : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
// CAuthYouxiDlg <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
class CAuthYouxiDlg : public CDialog
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
CAuthYouxiDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
enum { IDD = IDD_AUTHYOUXI_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// <20><EFBFBD><DEBD><EFBFBD> <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedConnect();
|
||||
CString m_Log;
|
||||
CString m_Account;
|
||||
CString m_Password;
|
||||
afx_msg void OnBnClickedAuth();
|
||||
afx_msg void OnBnClickedPayauth();
|
||||
};
|
||||
81
Server/ToolProject/AuthYouxi/ReadMe.txt
Normal file
@@ -0,0 +1,81 @@
|
||||
================================================================================
|
||||
MFC <20><><EFBFBD>̺귯<CCBA><EAB7AF> : AuthYouxi <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
================================================================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>縦 <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> AuthYouxi <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>ۼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> AuthYouxi <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>䰡 <20><><EFBFBD>ԵǾ<D4B5>
|
||||
<EFBFBD>ֽ<EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
AuthYouxi.vcproj
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>縦 <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VC++ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Visual C++ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>,
|
||||
<20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
AuthYouxi.h
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> Resource.h<><68> <20><><EFBFBD><EFBFBD>
|
||||
Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǸ<D4B5> CAuthYouxiApp <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
AuthYouxi.cpp
|
||||
CAuthYouxiApp <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
AuthYouxi.rc
|
||||
<20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> Microsoft Windows <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> RES <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>Ʈ<EFBFBD><C6AE> <20><> Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǸ<D4B5>
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
||||
<20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> 1042<34><32> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
res\AuthYouxi.ico
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AuthYouxi.rc<72><63> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
res\AuthYouxi.rc2
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD>Ե<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD>ԵǾ<D4B5> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ȭ <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
AuthYouxiDlg.h, AuthYouxiDlg.cpp - <20><>ȭ <20><><EFBFBD><EFBFBD>
|
||||
CAuthYouxiDlg Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD>
|
||||
<20><> <20><>ȭ <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ǵ˴ϴ<CBB4>. <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD> AuthYouxi.rc<72><63>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
ActiveX <20><>Ʈ<EFBFBD><C6AE>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> ActiveX <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
<EFBFBD>μ<EFBFBD> <20><> <20>μ<EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> MFC <20><><EFBFBD>̺귯<CCBA><EAB7AF><EFBFBD><EFBFBD> CView Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> ȣ<><C8A3><EFBFBD>Ͽ<EFBFBD>
|
||||
<20>μ<EFBFBD>, <20>μ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20>μ<EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20>ڵ带 <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD>Ÿ ǥ<><C7A5> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
<20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(PCH) AuthYouxi.pch <20><> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> StdAfx.obj<62><6A> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
Resource.h
|
||||
<20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD> ID<49><44> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>а<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>մϴ<D5B4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1><EFBFBD><EFBFBD> "TODO:"<22><> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20>߰<EFBFBD><DFB0>ϰų<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD>
|
||||
<EFBFBD>ҽ<EFBFBD> <20>ڵ带 <20><>Ÿ<EFBFBD><C5B8><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DLL<4C><4C> MFC<46><43> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD> <20> ü<><C3BC><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD> Microsoft Visual C++ CD-ROM<4F><4D> Win\System <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20>ִ<EFBFBD>
|
||||
<EFBFBD>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> MFC70XXX.DLL<4C><4C> <20><>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD> system <20>Ǵ<EFBFBD> system32 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MFCLOC.DLL<4C><4C> <20≯<EFBFBD><CCB8><EFBFBD> <20>ٲپ<D9B2><D9BE><EFBFBD> <20>մϴ<D5B4>. "XXX"<22><> <20>ش<EFBFBD> <20><><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MFC70DEU.DLL<4C><4C><EFBFBD><EFBFBD> <20><><EFBFBD>Ͼ<EFBFBD><CFBE><EFBFBD> <20><>ȯ<EFBFBD><C8AF> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
<EFBFBD>̷<EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20>Ϻ<EFBFBD> UI <20><><EFBFBD>Ұ<EFBFBD> <20> ü<><C3BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20>˴ϴ<CBB4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
28
Server/ToolProject/AuthYouxi/Resource.h
Normal file
@@ -0,0 +1,28 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by AuthYouxi.rc
|
||||
//
|
||||
#define IDR_MANIFEST 1
|
||||
#define IDM_ABOUTBOX 0x0010
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDS_ABOUTBOX 101
|
||||
#define IDD_AUTHYOUXI_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_DEFAULT 1000
|
||||
#define IDC_CONNECT 1001
|
||||
#define IDC_ACCOUNT 1002
|
||||
#define IDC_PASSWORD 1003
|
||||
#define IDC_AUTH 1004
|
||||
#define IDC_PAYAUTH 1005
|
||||
#define IDC_LOG 1006
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1007
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
BIN
Server/ToolProject/AuthYouxi/res/AuthYouxi.ico
Normal file
|
After Width: | Height: | Size: 21 KiB |
22
Server/ToolProject/AuthYouxi/res/AuthYouxi.manifest
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity
|
||||
version="1.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
name="Microsoft.Windows.AuthYouxi"
|
||||
type="win32"
|
||||
/>
|
||||
<description>여기에 응용 프로그램 설명을 추가합니다.</description>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="X86"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
</assembly>
|
||||
13
Server/ToolProject/AuthYouxi/res/AuthYouxi.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// AuthYouxi.RC2 - resources Microsoft Visual C++<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD>ҽ<EFBFBD>
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error this file is not editable by Microsoft Visual C++
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>....
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
7
Server/ToolProject/AuthYouxi/stdafx.cpp
Normal file
@@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
// AuthYouxi.pch<63><68> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.
|
||||
// stdafx.obj<62><6A> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
42
Server/ToolProject/AuthYouxi/stdafx.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// stdafx.h : <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
||||
// ǥ<><C7A5> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // Windows <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ܽ<EFBFBD>ŵ<EFBFBD>ϴ<EFBFBD>.
|
||||
#endif
|
||||
|
||||
// <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>켱<EFBFBD>ϴ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
// <20>ٸ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSDN<44><4E> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||
#ifndef WINVER // Windows 95 <20><> Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define WINVER 0x0400 // Windows 98<39><38> Windows 2000 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINNT // Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_WINNT 0x0400 // Windows 98<39><38> Windows 2000 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_WINDOWS // Windows 98 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_WINDOWS 0x0410 // Windows Me <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32_IE // IE 4.0 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
#define _WIN32_IE 0x0400 // IE 5.0 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>µ<EFBFBD><C2B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֽʽÿ<CABD>.
|
||||
#endif
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // <20>Ϻ<EFBFBD> CString <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
// MFC<46><43> <20><><EFBFBD><EFBFBD> <20>κа<CEBA> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⸦ <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC <20>ٽ<EFBFBD> <20><> ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#include <afxext.h> // MFC <20>ͽ<EFBFBD><CDBD>ټ<EFBFBD>
|
||||
#include <afxdisp.h> // MFC <20>ڵ<EFBFBD>ȭ Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
|
||||
#include <afxdtctl.h> // Internet Explorer 4 <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD>
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // Windows <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD> MFC <20><><EFBFBD><EFBFBD>
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
206
Server/ToolProject/GameDBTool/Admin.cpp
Normal file
@@ -0,0 +1,206 @@
|
||||
// Admin.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GameDBTool.h"
|
||||
#include "Admin.h"
|
||||
|
||||
#include "GameDBTool.h"
|
||||
#include "GameDBToolDlg.h"
|
||||
#include ".\admin.h"
|
||||
|
||||
// CAdmin <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CAdmin, CDialog)
|
||||
CAdmin::CAdmin(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CAdmin::IDD, pParent)
|
||||
, m_UserID(_T(""))
|
||||
, m_SIP(_T(""))
|
||||
, m_EIP(_T(""))
|
||||
{
|
||||
}
|
||||
|
||||
CAdmin::~CAdmin()
|
||||
{
|
||||
}
|
||||
|
||||
void CAdmin::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Text(pDX, IDC_UID, m_UserID);
|
||||
DDX_Control(pDX, IDC_LEVEL, m_Level);
|
||||
DDX_Text(pDX, IDC_S_IP, m_SIP);
|
||||
DDX_Text(pDX, IDC_E_IP, m_EIP);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAdmin, CDialog)
|
||||
ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
|
||||
ON_EN_CHANGE(IDC_S_IP, OnEnChangeSIp)
|
||||
ON_WM_CTLCOLOR()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CAdmin <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
BOOL CAdmin::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: <20><><EFBFBD> <20>߰<EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
ADMIN Admin = {0,};
|
||||
|
||||
char Query[256] = "";
|
||||
sprintf(Query, "SELECT * FROM AdminList WHERE UID='%d'", m_UID);
|
||||
|
||||
int Rows = 0;
|
||||
if(!CDBSingleObject::GetInstance().Select( Query, (void **)&Admin, sizeof(ADMIN), 0, 1, &Rows))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(0 == Rows)
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
m_UserID.Format("%d", m_UID);
|
||||
|
||||
m_Level.InsertString(0, "None");
|
||||
m_Level.InsertString(1, "Admin LV1");
|
||||
m_Level.InsertString(2, "Admin LV2");
|
||||
m_Level.InsertString(3, "Admin LV3");
|
||||
|
||||
|
||||
// <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> â <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||||
switch(Admin.Level)
|
||||
{
|
||||
case 0: m_Level.SetCurSel(0); break;
|
||||
case 1: m_Level.SetCurSel(1); break;
|
||||
case 2: m_Level.SetCurSel(2); break;
|
||||
case 3: m_Level.SetCurSel(3); break;
|
||||
}
|
||||
// <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> â <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||||
m_SIP = Admin.IP_S;
|
||||
m_EIP = Admin.IP_E;
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// <20><><EFBFBD><EFBFBD>: OCX <20>Ӽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FALSE<53><45> <20><>ȯ<EFBFBD>ؾ<EFBFBD> <20>մϴ<D5B4>.
|
||||
}
|
||||
|
||||
void CAdmin::OnBnClickedModify()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
IN_ADDR SAddr = {0,};
|
||||
IN_ADDR EAddr = {0,};
|
||||
|
||||
SAddr.S_un.S_addr = inet_addr(m_SIP.GetBuffer(0));
|
||||
EAddr.S_un.S_addr = inet_addr(m_EIP.GetBuffer(0));
|
||||
|
||||
if((SAddr.S_un.S_un_b.s_b1 != EAddr.S_un.S_un_b.s_b1) || (SAddr.S_un.S_un_b.s_b2 != EAddr.S_un.S_un_b.s_b2) ||
|
||||
(SAddr.S_un.S_un_b.s_b3 != EAddr.S_un.S_un_b.s_b3))
|
||||
{
|
||||
MessageBox("IP <20>뿪<EFBFBD><EBBFAA> <20>߸<EFBFBD> <20>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.");
|
||||
return;
|
||||
}
|
||||
|
||||
char Query[256] = "";
|
||||
switch(m_Level.GetCurSel())
|
||||
{
|
||||
case 0: // <20>Ϲ<EFBFBD>
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
0, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
|
||||
case 1: // <20><EFBFBD><EEBFB5> LV1
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
1, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
|
||||
case 2: // <20><EFBFBD><EEBFB5> LV2
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
2, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
case 3: // <20><EFBFBD><EEBFB5> LV3
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
3, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
}
|
||||
|
||||
int Rows = 0;
|
||||
if(!CDBSingleObject::GetInstance().ExecuteQuery(Query))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
CAdmin::OnOK();
|
||||
}
|
||||
|
||||
void CAdmin::OnEnChangeSIp()
|
||||
{
|
||||
UpdateData();
|
||||
m_EIP = m_SIP;
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
bool CAdminDB::Initialize(void)
|
||||
{
|
||||
char Query[256] = "";
|
||||
|
||||
memset(&m_AdminList, 0, sizeof(unsigned long) * MaxList);
|
||||
|
||||
sprintf(Query, "SELECT UID FROM AdminList");
|
||||
if(!CDBSingleObject::GetInstance().Select( Query, (void **)m_AdminList, sizeof(DWORD), 0, MaxList, &m_AdminNum))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
unsigned short CAdminDB::GetAdminLevel(unsigned long UID)
|
||||
{
|
||||
for(int Count = 0; Count < m_AdminNum; ++Count)
|
||||
if(m_AdminList[Count] == UID)
|
||||
{
|
||||
return Level::L1;
|
||||
}
|
||||
|
||||
return Level::None;
|
||||
}
|
||||
HBRUSH CAdmin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: <20><><EFBFBD>⼭ DC<44><43> Ư<><C6AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
HBRUSH m_hBrush;
|
||||
|
||||
m_hBrush = CreateSolidBrush(RGB( 255, 169, 128));
|
||||
|
||||
switch( nCtlColor ){
|
||||
case CTLCOLOR_DLG:
|
||||
pDC->SetBkColor(RGB( 255, 255, 255));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
case CTLCOLOR_STATIC:
|
||||
pDC->SetBkColor(RGB( 255, 169, 128));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
default:
|
||||
return hbr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
58
Server/ToolProject/GameDBTool/Admin.h
Normal file
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
|
||||
|
||||
// CAdmin <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
class CAdmin : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CAdmin)
|
||||
|
||||
public:
|
||||
CAdmin(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
virtual ~CAdmin();
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
enum { IDD = IDD_ADMIN };
|
||||
|
||||
DWORD m_UID;
|
||||
|
||||
public:
|
||||
void SetUID(DWORD UID_In) { m_UID = UID_In; }
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
virtual BOOL OnInitDialog();
|
||||
CString m_UserID;
|
||||
CComboBox m_Level;
|
||||
afx_msg void OnBnClickedModify();
|
||||
CString m_SIP;
|
||||
CString m_EIP;
|
||||
afx_msg void OnEnChangeSIp();
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
};
|
||||
|
||||
class CAdminDB
|
||||
{
|
||||
public:
|
||||
enum Level
|
||||
{
|
||||
None = 0,
|
||||
L1 = 1, // <20><EFBFBD><EEBFB5> L1
|
||||
L2 = 2, // <20><EFBFBD><EEBFB5> L2
|
||||
L3 = 3, // <20><EFBFBD><EEBFB5> L3
|
||||
};
|
||||
|
||||
private:
|
||||
enum { MaxList = 100 };
|
||||
|
||||
DWORD m_AdminList[MaxList];
|
||||
int m_AdminNum;
|
||||
|
||||
public:
|
||||
bool Initialize(void);
|
||||
unsigned short GetAdminLevel(unsigned long UID);
|
||||
};
|
||||
513
Server/ToolProject/GameDBTool/CharCopy.cpp
Normal file
@@ -0,0 +1,513 @@
|
||||
// CharCopy.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GameDBTool.h"
|
||||
#include "CharCopy.h"
|
||||
|
||||
#include "GameDBTool.h"
|
||||
#include "GameDBToolDlg.h"
|
||||
#include ".\charcopy.h"
|
||||
|
||||
// CCharCopy <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CCharCopy, CDialog)
|
||||
CCharCopy::CCharCopy(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CCharCopy::IDD, pParent)
|
||||
, m_CharID(_T(""))
|
||||
, m_TargetID(_T(""))
|
||||
{
|
||||
}
|
||||
|
||||
CCharCopy::~CCharCopy()
|
||||
{
|
||||
}
|
||||
|
||||
void CCharCopy::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Text(pDX, IDC_CID, m_CharID);
|
||||
DDX_Text(pDX, IDC_TARGETID, m_TargetID);
|
||||
}
|
||||
|
||||
BOOL CCharCopy::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
m_CharID.Format("%d", m_CID);
|
||||
UpdateData(FALSE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCharCopy, CDialog)
|
||||
ON_BN_CLICKED(IDC_FILE_SAVE, OnBnClickedFileSave)
|
||||
ON_BN_CLICKED(IDC_DB_LOAD, OnBnClickedDbLoad)
|
||||
ON_BN_CLICKED(IDC_COPY_TO, OnBnClickedCopyTo)
|
||||
ON_WM_CTLCOLOR()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
void CCharCopy::OnBnClickedFileSave()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
CHAR_INFOST CharInfo; // ij<><C4B3><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD>
|
||||
CHAR_POS CharPos; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
|
||||
SKILL Skill; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
|
||||
|
||||
QUICK Quick; // ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
EQUIP Equip; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
INVEN Inven; // ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
|
||||
EXTRA Extra; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
EXCHANGE Exchange; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ
|
||||
|
||||
CHAR_INFOEX CharInfoEx; // ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
FileOpen *lpFileOpen = pDlgWnd->m_pFileOpen;
|
||||
|
||||
if(lpFileOpen->SaveDlg("idump"))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] DB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
|
||||
DWORD dwWritten = 0;
|
||||
char DumpText[256] = "";
|
||||
|
||||
HANDLE hLogFile = CreateFile(lpFileOpen->GetFilePathNameFromBuffer(), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hLogFile == NULL)
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned short usEquipView[15] = { 0, };
|
||||
|
||||
// <20>ε<EFBFBD>
|
||||
if(!DBComponent::GameDB::GetCharInfo(CDBSingleObject::GetInstance(), m_CID, &CharInfo, usEquipView, 15))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetCharPos(CDBSingleObject::GetInstance(), m_CID, &CharPos))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetCharSkill(CDBSingleObject::GetInstance(), m_CID, &Skill))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetQuick(CDBSingleObject::GetInstance(), m_CID, &Quick))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetEquip(CDBSingleObject::GetInstance(), m_CID, &Equip))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetInven(CDBSingleObject::GetInstance(), m_CID, &Inven))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetExtra(CDBSingleObject::GetInstance(), m_CID, &Extra))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetExchange(CDBSingleObject::GetInstance(), m_CID, &Exchange))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetCharInfoEx(CDBSingleObject::GetInstance(), m_CID, &CharInfoEx))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
if(!WriteFile(hLogFile, &CharInfo, sizeof(CHAR_INFOST), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &CharPos, sizeof(CHAR_POS), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &Skill, sizeof(SKILL), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &Quick, sizeof(QUICK), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &Equip, sizeof(EQUIP), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &Inven, sizeof(INVEN), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &Extra, sizeof(EXTRA), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &Exchange, sizeof(EXCHANGE), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!WriteFile(hLogFile, &CharInfoEx, sizeof(CHAR_INFOEX), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
CloseHandle(hLogFile);
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] DB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
|
||||
void CCharCopy::OnBnClickedDbLoad()
|
||||
{
|
||||
CHAR_INFOST CharInfo; // ij<><C4B3><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD>
|
||||
CHAR_POS CharPos; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
|
||||
SKILL Skill; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
|
||||
|
||||
QUICK Quick; // ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
EQUIP Equip; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
INVEN Inven; // ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
|
||||
EXTRA Extra; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
EXCHANGE Exchange; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ
|
||||
|
||||
CHAR_INFOEX CharInfoEx; // ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
FileOpen *lpFileOpen = pDlgWnd->m_pFileOpen;
|
||||
if(lpFileOpen->OpenDlg())
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] DB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
|
||||
DWORD dwWritten = 0;
|
||||
char DumpText[256] = "";
|
||||
|
||||
HANDLE hLogFile = CreateFile(lpFileOpen->GetFilePathNameFromBuffer(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hLogFile == NULL)
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
if(!ReadFile(hLogFile, &CharInfo, sizeof(CHAR_INFOST), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &CharPos, sizeof(CHAR_POS), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &Skill, sizeof(SKILL), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &Quick, sizeof(QUICK), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &Equip, sizeof(EQUIP), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &Inven, sizeof(INVEN), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &Extra, sizeof(EXTRA), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &Exchange, sizeof(EXCHANGE), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
if(!ReadFile(hLogFile, &CharInfoEx, sizeof(CHAR_INFOEX), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
unsigned short EquipView[15] = {0,};
|
||||
if(!DBComponent::GameDB::UpdateCharInfo(CDBSingleObject::GetInstance(), m_CID, &CharInfo, EquipView, 15))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateCharPos(CDBSingleObject::GetInstance(), m_CID, &CharPos))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateCharSkill(CDBSingleObject::GetInstance(), m_CID, &Skill))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateQuick(CDBSingleObject::GetInstance(), m_CID, &Quick))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateEquip(CDBSingleObject::GetInstance(), m_CID, &Equip))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateInven(CDBSingleObject::GetInstance(), m_CID, &Inven))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateExtra(CDBSingleObject::GetInstance(), m_CID, &Extra))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateExchange(CDBSingleObject::GetInstance(), m_CID, &Exchange))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateCharInfoEx(CDBSingleObject::GetInstance(), m_CID, &CharInfoEx))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
CloseHandle(hLogFile);
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] DB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
|
||||
void CCharCopy::OnBnClickedCopyTo()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
CHAR_INFOST CharInfo; // ij<><C4B3><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD>
|
||||
CHAR_POS CharPos; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
|
||||
SKILL Skill; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
|
||||
|
||||
QUICK Quick; // ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
EQUIP Equip; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
INVEN Inven; // ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD>
|
||||
EXTRA Extra; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
EXCHANGE Exchange; // ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ
|
||||
|
||||
CHAR_INFOEX CharInfoEx; // ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
|
||||
unsigned short usEquipView[15] = { 0, };
|
||||
|
||||
// <20>ε<EFBFBD>
|
||||
if(!DBComponent::GameDB::GetCharInfo(CDBSingleObject::GetInstance(), m_CID, &CharInfo, usEquipView, 15))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetCharPos(CDBSingleObject::GetInstance(), m_CID, &CharPos))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetCharSkill(CDBSingleObject::GetInstance(), m_CID, &Skill))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetQuick(CDBSingleObject::GetInstance(), m_CID, &Quick))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetEquip(CDBSingleObject::GetInstance(), m_CID, &Equip))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetInven(CDBSingleObject::GetInstance(), m_CID, &Inven))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetExtra(CDBSingleObject::GetInstance(), m_CID, &Extra))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetExchange(CDBSingleObject::GetInstance(), m_CID, &Exchange))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetCharInfoEx(CDBSingleObject::GetInstance(), m_CID, &CharInfoEx))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
DWORD TargetCID = atoi(m_TargetID.GetBuffer());
|
||||
if(!DBComponent::GameDB::UpdateCharInfo(CDBSingleObject::GetInstance(), TargetCID, &CharInfo, usEquipView, 15))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateCharPos(CDBSingleObject::GetInstance(), TargetCID, &CharPos))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateCharSkill(CDBSingleObject::GetInstance(), TargetCID, &Skill))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateQuick(CDBSingleObject::GetInstance(), TargetCID, &Quick))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateEquip(CDBSingleObject::GetInstance(), TargetCID, &Equip))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateInven(CDBSingleObject::GetInstance(), TargetCID, &Inven))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateExtra(CDBSingleObject::GetInstance(), TargetCID, &Extra))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateExchange(CDBSingleObject::GetInstance(), TargetCID, &Exchange))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateCharInfoEx(CDBSingleObject::GetInstance(), TargetCID, &CharInfoEx))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[ī<><C4AB>] ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ű<EFBFBD><C5B1><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
}
|
||||
|
||||
HBRUSH CCharCopy::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: <20><><EFBFBD>⼭ DC<44><43> Ư<><C6AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
HBRUSH m_hBrush;
|
||||
|
||||
m_hBrush = CreateSolidBrush(RGB( 255, 169, 128));
|
||||
|
||||
switch( nCtlColor ){
|
||||
case CTLCOLOR_DLG:
|
||||
pDC->SetBkColor(RGB( 255, 255, 255));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
case CTLCOLOR_STATIC:
|
||||
pDC->SetBkColor(RGB( 255, 169, 128));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
default:
|
||||
return hbr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
34
Server/ToolProject/GameDBTool/CharCopy.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// CCharCopy <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
class CCharCopy : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CCharCopy)
|
||||
|
||||
DWORD m_CID;
|
||||
|
||||
public:
|
||||
CCharCopy(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
virtual ~CCharCopy();
|
||||
|
||||
void SetCID(DWORD CID_In) { m_CID = CID_In; }
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
enum { IDD = IDD_CHARCOPY };
|
||||
|
||||
protected:
|
||||
virtual BOOL OnInitDialog();
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedFileSave();
|
||||
CString m_CharID;
|
||||
CString m_TargetID;
|
||||
afx_msg void OnBnClickedDbLoad();
|
||||
afx_msg void OnBnClickedCopyTo();
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
};
|
||||
257
Server/ToolProject/GameDBTool/CharItem.cpp
Normal file
@@ -0,0 +1,257 @@
|
||||
// CharItem.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GameDBTool.h"
|
||||
#include "CharItem.h"
|
||||
|
||||
#include "GameDBTool.h"
|
||||
#include "GameDBToolDlg.h"
|
||||
#include ".\charitem.h"
|
||||
|
||||
// CCharItem <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CCharItem, CDialog)
|
||||
CCharItem::CCharItem(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CCharItem::IDD, pParent)
|
||||
, m_Equip(_T(""))
|
||||
, m_EquipSize(_T(""))
|
||||
, m_InvenSize(_T(""))
|
||||
, m_Inven(_T(""))
|
||||
{
|
||||
memset(&m_QuickData, 0, sizeof(QUICK));
|
||||
memset(&m_InvenData, 0, sizeof(INVEN));
|
||||
memset(&m_EquipData, 0, sizeof(EQUIP));
|
||||
}
|
||||
|
||||
CCharItem::~CCharItem()
|
||||
{
|
||||
}
|
||||
|
||||
void CCharItem::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Text(pDX, IDC_EQUIP, m_Equip);
|
||||
DDX_Text(pDX, IDC_EQUIP_SIZE, m_EquipSize);
|
||||
DDX_Text(pDX, IDC_INVEN_SIZE, m_InvenSize);
|
||||
DDX_Text(pDX, IDC_INVEN, m_Inven);
|
||||
}
|
||||
|
||||
BOOL CCharItem::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
CCharItem::OnBnClickedDbLoad();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCharItem, CDialog)
|
||||
ON_BN_CLICKED(IDC_DB_LOAD, OnBnClickedDbLoad)
|
||||
ON_BN_CLICKED(IDC_FILE_SAVE, OnBnClickedFileSave)
|
||||
ON_BN_CLICKED(IDC_FILE_LOAD, OnBnClickedFileLoad)
|
||||
ON_BN_CLICKED(IDC_DB_SAVE, OnBnClickedDbSave)
|
||||
ON_WM_CTLCOLOR()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CCharItem <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
void CCharItem::PrintData(void)
|
||||
{
|
||||
int Counter = 0;
|
||||
char Dest[3];
|
||||
|
||||
BYTE *lpPos = NULL;
|
||||
|
||||
// <20><> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m_Equip = "0x";
|
||||
lpPos = (BYTE*)&m_EquipData;
|
||||
for(Counter = 0; Counter < sizeof(EQUIP); ++Counter, ++lpPos)
|
||||
{
|
||||
Math::Convert::Hex08ToStr((char *)&Dest, *lpPos);
|
||||
m_Equip.Insert((Counter * 2) + 2, Dest);
|
||||
}
|
||||
m_EquipSize.Format("%d", m_EquipData.dwSize);
|
||||
|
||||
// <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
m_Inven = "0x";
|
||||
lpPos = (BYTE*)&m_InvenData;
|
||||
for(Counter = 0; Counter < sizeof(INVEN); ++Counter, ++lpPos)
|
||||
{
|
||||
Math::Convert::Hex08ToStr((char *)&Dest, *lpPos);
|
||||
m_Inven.Insert((Counter * 2) + 2, Dest);
|
||||
}
|
||||
m_InvenSize.Format("%d", m_InvenData.dwSize);
|
||||
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
void CCharItem::OnBnClickedDbLoad()
|
||||
{
|
||||
memset(&m_QuickData, 0, sizeof(QUICK));
|
||||
memset(&m_InvenData, 0, sizeof(INVEN));
|
||||
memset(&m_EquipData, 0, sizeof(EQUIP));
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
/* if(!DBComponent::GameDB::GetQuick(CDBSingleObject::GetInstance(), m_CID, &m_QuickData))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
*/
|
||||
if(!DBComponent::GameDB::GetEquip(CDBSingleObject::GetInstance(), m_CID, &m_EquipData))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::GetInven(CDBSingleObject::GetInstance(), m_CID, &m_InvenData))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20>κ<EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
PrintData();
|
||||
}
|
||||
|
||||
void CCharItem::OnBnClickedFileSave()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
FileOpen *lpFileOpen = pDlgWnd->m_pFileOpen;
|
||||
if(lpFileOpen->SaveDlg("idump"))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
|
||||
DWORD dwWritten = 0;
|
||||
char DumpText[256] = "";
|
||||
|
||||
HANDLE hLogFile = CreateFile(lpFileOpen->GetFilePathNameFromBuffer(), GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hLogFile == NULL)
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!WriteFile(hLogFile, &m_EquipData, sizeof(EQUIP), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
// <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!WriteFile(hLogFile, &m_InvenData, sizeof(INVEN), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
CloseHandle(hLogFile);
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CCharItem::OnBnClickedFileLoad()
|
||||
{
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
FileOpen *lpFileOpen = pDlgWnd->m_pFileOpen;
|
||||
if(lpFileOpen->OpenDlg())
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
|
||||
DWORD dwWritten = 0;
|
||||
char DumpText[256] = "";
|
||||
|
||||
HANDLE hLogFile = CreateFile(lpFileOpen->GetFilePathNameFromBuffer(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if(hLogFile == NULL)
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!ReadFile(hLogFile, &m_EquipData, sizeof(EQUIP), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
// <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if(!ReadFile(hLogFile, &m_InvenData, sizeof(INVEN), &dwWritten, NULL))
|
||||
{
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>. %d", GetLastError());
|
||||
return;
|
||||
}
|
||||
|
||||
CloseHandle(hLogFile);
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
|
||||
}
|
||||
|
||||
CCharItem::PrintData();
|
||||
}
|
||||
|
||||
void CCharItem::OnBnClickedDbSave()
|
||||
{
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
/* if(!DBComponent::GameDB::GetQuick(CDBSingleObject::GetInstance(), m_CID, &m_QuickData))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
*/
|
||||
if(!DBComponent::GameDB::UpdateEquip(CDBSingleObject::GetInstance(), m_CID, &m_EquipData))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(!DBComponent::GameDB::UpdateInven(CDBSingleObject::GetInstance(), m_CID, &m_InvenData))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
}
|
||||
|
||||
HBRUSH CCharItem::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: <20><><EFBFBD>⼭ DC<44><43> Ư<><C6AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
|
||||
HBRUSH m_hBrush;
|
||||
|
||||
m_hBrush = CreateSolidBrush(RGB( 255, 169, 128));
|
||||
|
||||
switch( nCtlColor ){
|
||||
case CTLCOLOR_DLG:
|
||||
pDC->SetBkColor(RGB( 255, 255, 255));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
case CTLCOLOR_STATIC:
|
||||
pDC->SetBkColor(RGB( 255, 169, 128));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
default:
|
||||
return hbr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
42
Server/ToolProject/GameDBTool/CharItem.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
// CCharItem <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
class CCharItem : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CCharItem)
|
||||
|
||||
DWORD m_CID;
|
||||
|
||||
QUICK m_QuickData;
|
||||
INVEN m_InvenData;
|
||||
EQUIP m_EquipData;
|
||||
|
||||
public:
|
||||
CCharItem(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
virtual ~CCharItem();
|
||||
|
||||
void SetCID(DWORD CID_In) { m_CID = CID_In; }
|
||||
void PrintData(void);
|
||||
|
||||
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
enum { IDD = IDD_CHARITEM };
|
||||
|
||||
protected:
|
||||
virtual BOOL OnInitDialog();
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
CString m_Equip;
|
||||
CString m_EquipSize;
|
||||
CString m_InvenSize;
|
||||
CString m_Inven;
|
||||
afx_msg void OnBnClickedDbLoad();
|
||||
afx_msg void OnBnClickedFileSave();
|
||||
afx_msg void OnBnClickedFileLoad();
|
||||
afx_msg void OnBnClickedDbSave();
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
};
|
||||
394
Server/ToolProject/GameDBTool/CharList.cpp
Normal file
@@ -0,0 +1,394 @@
|
||||
#include "charlist.h"
|
||||
|
||||
char g_CharInfoField[25][20] =
|
||||
{
|
||||
"CID", "Name", "Sex", "Hair", "Face",
|
||||
"Nationality", "Class", "Fame", "Mileage", "Guild",
|
||||
"Party", "Level", "Gold", "IP", "STR",
|
||||
"DEX", "CON", "INT", "WIS", "HP",
|
||||
"MP", "EXP"
|
||||
};
|
||||
|
||||
char g_Sex[2][7] = { "Male", "Female" };
|
||||
|
||||
CCharList::CCharList()
|
||||
{
|
||||
}
|
||||
|
||||
CCharList::~CCharList()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCharList, CListCtrl)
|
||||
//{{AFX_MSG_MAP(CUserList)
|
||||
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
|
||||
ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, OnEndLableEdit)
|
||||
ON_WM_LBUTTONDBLCLK()
|
||||
ON_WM_HSCROLL()
|
||||
ON_WM_VSCROLL()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CCharList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
CListViewControl::OnCustomDraw(pNMHDR, pResult);
|
||||
}
|
||||
|
||||
void CCharList::OnEndLableEdit(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
CListViewControl::OnEndLableEdit(pNMHDR, pResult);
|
||||
}
|
||||
|
||||
void CCharList::OnLButtonDblClk(UINT nFlags, CPoint point)
|
||||
{
|
||||
CListViewControl::OnLButtonDblClk(nFlags, point);
|
||||
}
|
||||
|
||||
void CCharList::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CListViewControl::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
void CCharList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CListViewControl::OnVScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
//Interface////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// SetColumn [ public ]
|
||||
// - <20><><EFBFBD>̺<EFBFBD> <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
// Parameter :
|
||||
// 1st : <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
// Return:
|
||||
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool CCharList::SetColumn(void)
|
||||
{
|
||||
DWORD ExStyle = LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
|
||||
SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ExStyle);
|
||||
|
||||
DWORD Style = GetWindowLong(m_hWnd, GWL_STYLE);
|
||||
Style |= LVS_EDITLABELS;
|
||||
|
||||
if (!SetWindowLong(m_hWnd, GWL_STYLE, Style))
|
||||
return false;
|
||||
|
||||
CStringList StringList;
|
||||
|
||||
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
||||
SetColumnType(0, CT_NORMAL);
|
||||
InsertColumn(0, g_CharInfoField[0], LVCFMT_CENTER, 4 * 20 + 5);
|
||||
|
||||
// <20≯<EFBFBD>
|
||||
SetColumnType(1, CT_NORMAL);
|
||||
InsertColumn(1, g_CharInfoField[1], LVCFMT_CENTER, 130 );
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
SetColumnType(2, CT_COMBO);
|
||||
StringList.AddTail(g_Sex[0]);
|
||||
StringList.AddTail(g_Sex[1]);
|
||||
SetColumnStringList(2, StringList);
|
||||
InsertColumn(2, g_CharInfoField[2], LVCFMT_CENTER, 5 * 10);
|
||||
|
||||
// <20>Ӹ<EFBFBD>
|
||||
SetColumnType(3, CT_EDIT);
|
||||
InsertColumn(3, g_CharInfoField[3], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
SetColumnType(4, CT_EDIT);
|
||||
InsertColumn(4, g_CharInfoField[4], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
SetColumnType(5, CT_EDIT);
|
||||
InsertColumn(5, g_CharInfoField[5], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
SetColumnType(6, CT_EDIT);
|
||||
InsertColumn(6, g_CharInfoField[6], LVCFMT_CENTER, 6 * 10);
|
||||
|
||||
// <20><><EFBFBD>嵵
|
||||
SetColumnType(7, CT_EDIT);
|
||||
InsertColumn(7, g_CharInfoField[7], LVCFMT_CENTER, 6 * 10);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
SetColumnType(8, CT_EDIT);
|
||||
InsertColumn(8, g_CharInfoField[8], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
SetColumnType(9, CT_EDIT);
|
||||
InsertColumn(9, g_CharInfoField[9], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// <20><>Ƽ
|
||||
SetColumnType(10, CT_EDIT);
|
||||
InsertColumn(10, g_CharInfoField[10], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
SetColumnType(11, CT_EDIT);
|
||||
InsertColumn(11, g_CharInfoField[11], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// <20><>
|
||||
SetColumnType(12, CT_EDIT);
|
||||
InsertColumn(12, g_CharInfoField[12], LVCFMT_CENTER, 8 * 10);
|
||||
|
||||
// IP
|
||||
SetColumnType(13, CT_EDIT);
|
||||
InsertColumn(13, g_CharInfoField[13], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// STR
|
||||
SetColumnType(14, CT_EDIT);
|
||||
InsertColumn(14, g_CharInfoField[14], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// DEX
|
||||
SetColumnType(15, CT_EDIT);
|
||||
InsertColumn(15, g_CharInfoField[15], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// CON
|
||||
SetColumnType(16, CT_EDIT);
|
||||
InsertColumn(16, g_CharInfoField[16], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// INT
|
||||
SetColumnType(17, CT_EDIT);
|
||||
InsertColumn(17, g_CharInfoField[17], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// WIS
|
||||
SetColumnType(18, CT_EDIT);
|
||||
InsertColumn(18, g_CharInfoField[18], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// HP
|
||||
SetColumnType(19, CT_EDIT);
|
||||
InsertColumn(19, g_CharInfoField[19], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// MP
|
||||
SetColumnType(20, CT_EDIT);
|
||||
InsertColumn(20, g_CharInfoField[20], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// EXP
|
||||
SetColumnType(21, CT_EDIT);
|
||||
InsertColumn(21, g_CharInfoField[21], LVCFMT_CENTER, 6 * 10);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//Interface////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// AddUserRow [ public ]
|
||||
// - <20><> <20>߰<EFBFBD>
|
||||
//
|
||||
// Parameter :
|
||||
// 1st : <20>÷<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
// Return:
|
||||
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool CCharList::AddCharRow(LPCHAR_INFOST CharInfo_In)
|
||||
{
|
||||
// TODO : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD> ó<><C3B3><EFBFBD>صӴϴ<D3B4>. <20>ʿ<EFBFBD><CABF>Ͻ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>. (2005-01-26 by <20>ε<EFBFBD>)
|
||||
/*
|
||||
CString strItem;
|
||||
int Index;
|
||||
|
||||
Index = GetItemCount();
|
||||
|
||||
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->UID);
|
||||
InsertItem(Index, strItem);
|
||||
|
||||
// <20≯<EFBFBD>
|
||||
strItem.Format("%s", CharInfo_In->Name);
|
||||
SetItemText(Index, 1, strItem);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
strItem.Format("%s", g_Sex[CharInfo_In->Sex - 1]);
|
||||
SetItemText(Index, 2, strItem);
|
||||
|
||||
// <20>Ӹ<EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Hair);
|
||||
SetItemText(Index, 3, strItem);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Face);
|
||||
SetItemText(Index, 4, strItem);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Race);
|
||||
SetItemText(Index, 5, strItem);
|
||||
|
||||
// Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Class);
|
||||
SetItemText(Index, 6, strItem);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Fame);
|
||||
SetItemText(Index, 7, strItem);
|
||||
|
||||
// <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Mileage);
|
||||
SetItemText(Index, 8, strItem);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Guild);
|
||||
SetItemText(Index, 9, strItem);
|
||||
|
||||
// <20><>Ƽ
|
||||
strItem.Format("%d", CharInfo_In->Party);
|
||||
SetItemText(Index, 10, strItem);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
strItem.Format("%d", CharInfo_In->Level);
|
||||
SetItemText(Index, 11, strItem);
|
||||
|
||||
// <20><>
|
||||
strItem.Format("%d", CharInfo_In->Gold);
|
||||
SetItemText(Index, 12, strItem);
|
||||
|
||||
// IP
|
||||
strItem.Format("%d", CharInfo_In->IP);
|
||||
SetItemText(Index, 13, strItem);
|
||||
|
||||
// STR
|
||||
strItem.Format("%d", CharInfo_In->STR);
|
||||
SetItemText(Index, 14, strItem);
|
||||
|
||||
// DEX
|
||||
strItem.Format("%d", CharInfo_In->DEX);
|
||||
SetItemText(Index, 15, strItem);
|
||||
|
||||
// CON
|
||||
strItem.Format("%d", CharInfo_In->CON);
|
||||
SetItemText(Index, 16, strItem);
|
||||
|
||||
// INT
|
||||
strItem.Format("%d", CharInfo_In->INT);
|
||||
SetItemText(Index, 17, strItem);
|
||||
|
||||
// WIS
|
||||
strItem.Format("%d", CharInfo_In->WIS);
|
||||
SetItemText(Index, 18, strItem);
|
||||
|
||||
// HP
|
||||
strItem.Format("%d", CharInfo_In->HP);
|
||||
SetItemText(Index, 19, strItem);
|
||||
|
||||
// MP
|
||||
strItem.Format("%d", CharInfo_In->MP);
|
||||
SetItemText(Index, 20, strItem);
|
||||
|
||||
// EXP
|
||||
strItem.Format("%d", CharInfo_In->Exp);
|
||||
SetItemText(Index, 21, strItem);
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CCharList::GetCharRow(unsigned long Item_In, LPCHAR_INFOST CharInfo_Out)
|
||||
{
|
||||
// TODO : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD> ó<><C3B3><EFBFBD>صӴϴ<D3B4>. <20>ʿ<EFBFBD><CABF>Ͻ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>. (2005-01-26 by <20>ε<EFBFBD>)
|
||||
/*
|
||||
int Counter = 0;
|
||||
char strItemText[256];
|
||||
|
||||
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
|
||||
GetItemText(Item_In, 0, strItemText, 256);
|
||||
CharInfo_Out->UID = atoi(strItemText);
|
||||
|
||||
// <20≯<EFBFBD>
|
||||
GetItemText(Item_In, 1, strItemText, 256);
|
||||
strncpy(CharInfo_Out->Name, strItemText, 16);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 2, strItemText, 256);
|
||||
if(!strcmp(strItemText, g_Sex[0]))
|
||||
CharInfo_Out->Sex = 1;
|
||||
else
|
||||
CharInfo_Out->Sex = 2;
|
||||
|
||||
// <20>Ӹ<EFBFBD>
|
||||
GetItemText(Item_In, 3, strItemText, 256);
|
||||
CharInfo_Out->Hair = atoi(strItemText);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 4, strItemText, 256);
|
||||
CharInfo_Out->Face = atoi(strItemText);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 5, strItemText, 256);
|
||||
CharInfo_Out->Race = atoi(strItemText);
|
||||
|
||||
// Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 6, strItemText, 256);
|
||||
CharInfo_Out->Class = atoi(strItemText);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 7, strItemText, 256);
|
||||
CharInfo_Out->Fame = atoi(strItemText);
|
||||
|
||||
// <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>
|
||||
GetItemText(Item_In, 8, strItemText, 256);
|
||||
CharInfo_Out->Mileage = atoi(strItemText);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 9, strItemText, 256);
|
||||
CharInfo_Out->Guild = atoi(strItemText);
|
||||
|
||||
// <20><>Ƽ
|
||||
GetItemText(Item_In, 10, strItemText, 256);
|
||||
CharInfo_Out->Party = atoi(strItemText);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
GetItemText(Item_In, 11, strItemText, 256);
|
||||
CharInfo_Out->Level = atoi(strItemText);
|
||||
|
||||
// <20><>
|
||||
GetItemText(Item_In, 12, strItemText, 256);
|
||||
CharInfo_Out->Gold = atoi(strItemText);
|
||||
|
||||
// IP
|
||||
GetItemText(Item_In, 13, strItemText, 256);
|
||||
CharInfo_Out->IP = atoi(strItemText);
|
||||
|
||||
// STR
|
||||
GetItemText(Item_In, 14, strItemText, 256);
|
||||
CharInfo_Out->STR = atoi(strItemText);
|
||||
|
||||
// DEX
|
||||
GetItemText(Item_In, 15, strItemText, 256);
|
||||
CharInfo_Out->DEX = atoi(strItemText);
|
||||
|
||||
// CON
|
||||
GetItemText(Item_In, 16, strItemText, 256);
|
||||
CharInfo_Out->CON = atoi(strItemText);
|
||||
|
||||
// INT
|
||||
GetItemText(Item_In, 17, strItemText, 256);
|
||||
CharInfo_Out->INT = atoi(strItemText);
|
||||
|
||||
// WIS
|
||||
GetItemText(Item_In, 18, strItemText, 256);
|
||||
CharInfo_Out->WIS = atoi(strItemText);
|
||||
|
||||
// HP
|
||||
GetItemText(Item_In, 19, strItemText, 256);
|
||||
CharInfo_Out->HP = atoi(strItemText);
|
||||
|
||||
// MP
|
||||
GetItemText(Item_In, 20, strItemText, 256);
|
||||
CharInfo_Out->MP = atoi(strItemText);
|
||||
|
||||
// EXP
|
||||
GetItemText(Item_In, 21, strItemText, 256);
|
||||
CharInfo_Out->Exp = atoi(strItemText);
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
42
Server/ToolProject/GameDBTool/CharList.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
#include "./controlex/listviewcontrol.h"
|
||||
#include "GameDBTool.h"
|
||||
|
||||
class CCharList :
|
||||
public CListViewControl
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CCharList();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CUserList)
|
||||
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnEndLableEdit(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CCharList();
|
||||
|
||||
bool SetColumn(void);
|
||||
bool AddCharRow(LPCHAR_INFOST CharInfo_In);
|
||||
bool GetCharRow(unsigned long Item_In, LPCHAR_INFOST CharInfo_Out);
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CUserList)
|
||||
// NOTE - the ClassWizard will add and remove member functions here.
|
||||
//}}AFX_MSG
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||