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>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,576 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdminToolClient", "AdminToolClient\AdminToolClient.vcproj", "{9C7F0055-7BE2-4876-BABA-AA95E909446E}"
ProjectSection(ProjectDependencies) = postProject
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46} = {809DB255-CA5B-4836-BF0C-3D4AB28E0E46}
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3} = {EE20E867-1836-4550-A08D-1BBA2F7B2EA3}
{6F4544BD-BC5A-49F2-8E15-170CD964B149} = {6F4544BD-BC5A-49F2-8E15-170CD964B149}
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D} = {80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GridControl", "GridControl\GridControl.vcproj", "{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseLibrary", "..\RylServerProject\BaseLibrary\BaseLibrary.vcproj", "{53C4C877-99B7-43CB-84A3-BE22D7AA6741}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RylServerLibrary", "..\RylServerProject\RylServerLibrary\RylServerLibrary.vcproj", "{22FFFF6F-3968-482B-91DE-4BBFA16459A6}"
ProjectSection(ProjectDependencies) = postProject
{53C4C877-99B7-43CB-84A3-BE22D7AA6741} = {53C4C877-99B7-43CB-84A3-BE22D7AA6741}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CAsyncSockLibrary", "CAsyncSockLibrary\CAsyncSockLibrary.vcproj", "{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}"
ProjectSection(ProjectDependencies) = postProject
{53C4C877-99B7-43CB-84A3-BE22D7AA6741} = {53C4C877-99B7-43CB-84A3-BE22D7AA6741}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RylGameLibrary", "..\RylServerProject\RylGameLibrary\RylGameLibrary.vcproj", "{6F4544BD-BC5A-49F2-8E15-170CD964B149}"
ProjectSection(ProjectDependencies) = postProject
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D} = {34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}
{22FFFF6F-3968-482B-91DE-4BBFA16459A6} = {22FFFF6F-3968-482B-91DE-4BBFA16459A6}
{8AE46FB5-1285-4406-B5EA-C45E28ECF950} = {8AE46FB5-1285-4406-B5EA-C45E28ECF950}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\RylServerProject\zlib\zlib.vcproj", "{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScriptEngine", "..\RylServerProject\ScriptEngine\ScriptEngine.vcproj", "{8AE46FB5-1285-4406-B5EA-C45E28ECF950}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdminToolLibrary", "AdminToolLibrary\RylToolLibrary.vcproj", "{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}"
ProjectSection(ProjectDependencies) = postProject
{6F4544BD-BC5A-49F2-8E15-170CD964B149} = {6F4544BD-BC5A-49F2-8E15-170CD964B149}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdminToolServer", "AdminToolServer\AdminToolServer.vcproj", "{21AA2880-D5FC-40D4-82B2-5ECA5579B815}"
ProjectSection(ProjectDependencies) = postProject
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46} = {809DB255-CA5B-4836-BF0C-3D4AB28E0E46}
{6F4544BD-BC5A-49F2-8E15-170CD964B149} = {6F4544BD-BC5A-49F2-8E15-170CD964B149}
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D} = {80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Executable", "Executable\Executable.vcproj", "{1E3A7702-6685-4367-A8F8-55044078AA16}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MemoryManager", "..\RYLSERVERPROJECT\MemoryManager\MemoryManager.vcproj", "{F438627D-4F03-43CA-AEA9-7237443F14E5}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Debug Unicode = Debug Unicode
Release = Release
Release Unicode = Release Unicode
ReleaseWithMemory = ReleaseWithMemory
Static Debug = Static Debug
Static Debug with MFC DLL = Static Debug with MFC DLL
Static MBCS Debug = Static MBCS Debug
Static MBCS Debug with MFC DLL = Static MBCS Debug with MFC DLL
Static MBCS Release = Static MBCS Release
Static MBCS Release with MFC DLL = Static MBCS Release with MFC DLL
Static Release = Static Release
Static Release with MFC DLL = Static Release with MFC DLL
Static Unicode Debug = Static Unicode Debug
Static Unicode Debug with MFC DLL = Static Unicode Debug with MFC DLL
Static Unicode Release = Static Unicode Release
Static Unicode Release with MFC DLL = Static Unicode Release with MFC DLL
TestDebug = TestDebug
TestRelease = TestRelease
TestServer = TestServer
TestServerRelease = TestServerRelease
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Debug Unicode.ActiveCfg = Debug Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Release Unicode.ActiveCfg = Release Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.ReleaseWithMemory.ActiveCfg = Release Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.ReleaseWithMemory.Build.0 = Release Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release with MFC DLL.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestDebug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestDebug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestRelease.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestRelease.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServer.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServer.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServerRelease.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServerRelease.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Debug Unicode.ActiveCfg = Debug Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Release Unicode.ActiveCfg = Release Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.ReleaseWithMemory.ActiveCfg = Release Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.ReleaseWithMemory.Build.0 = Release Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release with MFC DLL.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestDebug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestDebug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestRelease.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestRelease.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServer.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServer.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServerRelease.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServerRelease.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Debug Unicode.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Release Unicode.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.ReleaseWithMemory.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.ReleaseWithMemory.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release with MFC DLL.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestDebug.ActiveCfg = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestDebug.Build.0 = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestRelease.ActiveCfg = TestRelease|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestRelease.Build.0 = TestRelease|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServer.ActiveCfg = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServer.Build.0 = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServerRelease.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServerRelease.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Debug Unicode.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Release Unicode.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.ReleaseWithMemory.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.ReleaseWithMemory.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release with MFC DLL.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestDebug.ActiveCfg = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestDebug.Build.0 = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestRelease.ActiveCfg = TestRelease|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestRelease.Build.0 = TestRelease|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServer.ActiveCfg = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServer.Build.0 = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServerRelease.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServerRelease.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Debug Unicode.ActiveCfg = Debug Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Release Unicode.ActiveCfg = Release Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.ReleaseWithMemory.ActiveCfg = Release Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.ReleaseWithMemory.Build.0 = Release Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release with MFC DLL.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestDebug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestDebug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestRelease.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestRelease.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServer.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServer.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServerRelease.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServerRelease.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Debug Unicode.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Release Unicode.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.ReleaseWithMemory.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.ReleaseWithMemory.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release with MFC DLL.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestDebug.ActiveCfg = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestDebug.Build.0 = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestRelease.ActiveCfg = TestRelease|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestRelease.Build.0 = TestRelease|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServer.ActiveCfg = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServer.Build.0 = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServerRelease.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServerRelease.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Debug Unicode.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Release Unicode.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.ReleaseWithMemory.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.ReleaseWithMemory.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release with MFC DLL.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestDebug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestDebug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestRelease.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestRelease.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServer.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServer.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServerRelease.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServerRelease.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Debug Unicode.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Release Unicode.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.ReleaseWithMemory.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.ReleaseWithMemory.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release with MFC DLL.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestDebug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestDebug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestRelease.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestRelease.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServer.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServer.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServerRelease.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServerRelease.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Debug Unicode.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Release Unicode.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.ReleaseWithMemory.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.ReleaseWithMemory.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release with MFC DLL.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestDebug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestDebug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestRelease.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestRelease.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServer.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServer.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServerRelease.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServerRelease.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Debug.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Debug.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Debug Unicode.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Release.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Release.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Release Unicode.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.ReleaseWithMemory.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.ReleaseWithMemory.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Debug.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Debug.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Debug.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Debug.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Release.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Release.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Release.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Release.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Release with MFC DLL.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Debug.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Debug.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Release.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Release.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestDebug.ActiveCfg = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestDebug.Build.0 = Debug|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestRelease.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestRelease.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestServer.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestServer.Build.0 = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestServerRelease.ActiveCfg = Release|Win32
{21AA2880-D5FC-40D4-82B2-5ECA5579B815}.TestServerRelease.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Debug Unicode.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Release Unicode.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.ReleaseWithMemory.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.ReleaseWithMemory.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release with MFC DLL.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestDebug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestDebug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestRelease.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestRelease.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServer.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServer.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServerRelease.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServerRelease.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Debug Unicode.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Release Unicode.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.ReleaseWithMemory.ActiveCfg = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.ReleaseWithMemory.Build.0 = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release with MFC DLL.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestDebug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestDebug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestRelease.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestRelease.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServer.ActiveCfg = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServer.Build.0 = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServerRelease.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServerRelease.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal

Binary file not shown.

View File

@@ -0,0 +1,529 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdminToolClient", "AdminToolClient\AdminToolClient.vcproj", "{9C7F0055-7BE2-4876-BABA-AA95E909446E}"
ProjectSection(ProjectDependencies) = postProject
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46} = {809DB255-CA5B-4836-BF0C-3D4AB28E0E46}
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3} = {EE20E867-1836-4550-A08D-1BBA2F7B2EA3}
{6F4544BD-BC5A-49F2-8E15-170CD964B149} = {6F4544BD-BC5A-49F2-8E15-170CD964B149}
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D} = {80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GridControl", "GridControl\GridControl.vcproj", "{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseLibrary", "..\RylServerProject\BaseLibrary\BaseLibrary.vcproj", "{53C4C877-99B7-43CB-84A3-BE22D7AA6741}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RylServerLibrary", "..\RylServerProject\RylServerLibrary\RylServerLibrary.vcproj", "{22FFFF6F-3968-482B-91DE-4BBFA16459A6}"
ProjectSection(ProjectDependencies) = postProject
{53C4C877-99B7-43CB-84A3-BE22D7AA6741} = {53C4C877-99B7-43CB-84A3-BE22D7AA6741}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CAsyncSockLibrary", "CAsyncSockLibrary\CAsyncSockLibrary.vcproj", "{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}"
ProjectSection(ProjectDependencies) = postProject
{53C4C877-99B7-43CB-84A3-BE22D7AA6741} = {53C4C877-99B7-43CB-84A3-BE22D7AA6741}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RylGameLibrary", "..\RylServerProject\RylGameLibrary\RylGameLibrary.vcproj", "{6F4544BD-BC5A-49F2-8E15-170CD964B149}"
ProjectSection(ProjectDependencies) = postProject
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D} = {34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}
{22FFFF6F-3968-482B-91DE-4BBFA16459A6} = {22FFFF6F-3968-482B-91DE-4BBFA16459A6}
{8AE46FB5-1285-4406-B5EA-C45E28ECF950} = {8AE46FB5-1285-4406-B5EA-C45E28ECF950}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\RylServerProject\zlib\zlib.vcproj", "{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ScriptEngine", "..\RylServerProject\ScriptEngine\ScriptEngine.vcproj", "{8AE46FB5-1285-4406-B5EA-C45E28ECF950}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AdminToolLibrary", "AdminToolLibrary\RylToolLibrary.vcproj", "{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}"
ProjectSection(ProjectDependencies) = postProject
{6F4544BD-BC5A-49F2-8E15-170CD964B149} = {6F4544BD-BC5A-49F2-8E15-170CD964B149}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Executable", "Executable\Executable.vcproj", "{1E3A7702-6685-4367-A8F8-55044078AA16}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MemoryManager", "..\RYLSERVERPROJECT\MemoryManager\MemoryManager.vcproj", "{F438627D-4F03-43CA-AEA9-7237443F14E5}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Debug Unicode = Debug Unicode
Release = Release
Release Unicode = Release Unicode
ReleaseWithMemory = ReleaseWithMemory
Static Debug = Static Debug
Static Debug with MFC DLL = Static Debug with MFC DLL
Static MBCS Debug = Static MBCS Debug
Static MBCS Debug with MFC DLL = Static MBCS Debug with MFC DLL
Static MBCS Release = Static MBCS Release
Static MBCS Release with MFC DLL = Static MBCS Release with MFC DLL
Static Release = Static Release
Static Release with MFC DLL = Static Release with MFC DLL
Static Unicode Debug = Static Unicode Debug
Static Unicode Debug with MFC DLL = Static Unicode Debug with MFC DLL
Static Unicode Release = Static Unicode Release
Static Unicode Release with MFC DLL = Static Unicode Release with MFC DLL
TestDebug = TestDebug
TestRelease = TestRelease
TestServer = TestServer
TestServerRelease = TestServerRelease
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Debug Unicode.ActiveCfg = Debug Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Release Unicode.ActiveCfg = Release Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.ReleaseWithMemory.ActiveCfg = Release Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.ReleaseWithMemory.Build.0 = Release Unicode|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Release with MFC DLL.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestDebug.ActiveCfg = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestDebug.Build.0 = Debug|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestRelease.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestRelease.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServer.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServer.Build.0 = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServerRelease.ActiveCfg = Release|Win32
{9C7F0055-7BE2-4876-BABA-AA95E909446E}.TestServerRelease.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Debug Unicode.ActiveCfg = Debug Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Release Unicode.ActiveCfg = Release Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.ReleaseWithMemory.ActiveCfg = Release Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.ReleaseWithMemory.Build.0 = Release Unicode|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Release with MFC DLL.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestDebug.ActiveCfg = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestDebug.Build.0 = Debug|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestRelease.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestRelease.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServer.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServer.Build.0 = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServerRelease.ActiveCfg = Release|Win32
{EE20E867-1836-4550-A08D-1BBA2F7B2EA3}.TestServerRelease.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Debug Unicode.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Release Unicode.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.ReleaseWithMemory.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.ReleaseWithMemory.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Release with MFC DLL.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestDebug.ActiveCfg = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestDebug.Build.0 = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestRelease.ActiveCfg = TestRelease|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestRelease.Build.0 = TestRelease|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServer.ActiveCfg = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServer.Build.0 = TestDebug|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServerRelease.ActiveCfg = Release|Win32
{53C4C877-99B7-43CB-84A3-BE22D7AA6741}.TestServerRelease.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Debug Unicode.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Release Unicode.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.ReleaseWithMemory.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.ReleaseWithMemory.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Release with MFC DLL.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestDebug.ActiveCfg = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestDebug.Build.0 = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestRelease.ActiveCfg = TestRelease|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestRelease.Build.0 = TestRelease|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServer.ActiveCfg = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServer.Build.0 = TestDebug|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServerRelease.ActiveCfg = Release|Win32
{22FFFF6F-3968-482B-91DE-4BBFA16459A6}.TestServerRelease.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Debug Unicode.ActiveCfg = Debug Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Release Unicode.ActiveCfg = Release Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.ReleaseWithMemory.ActiveCfg = Release Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.ReleaseWithMemory.Build.0 = Release Unicode|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Release with MFC DLL.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestDebug.ActiveCfg = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestDebug.Build.0 = Debug|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestRelease.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestRelease.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServer.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServer.Build.0 = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServerRelease.ActiveCfg = Release|Win32
{809DB255-CA5B-4836-BF0C-3D4AB28E0E46}.TestServerRelease.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Debug Unicode.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Release Unicode.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.ReleaseWithMemory.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.ReleaseWithMemory.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Release with MFC DLL.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestDebug.ActiveCfg = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestDebug.Build.0 = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestRelease.ActiveCfg = TestRelease|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestRelease.Build.0 = TestRelease|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServer.ActiveCfg = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServer.Build.0 = TestDebug|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServerRelease.ActiveCfg = Release|Win32
{6F4544BD-BC5A-49F2-8E15-170CD964B149}.TestServerRelease.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Debug Unicode.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Release Unicode.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.ReleaseWithMemory.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.ReleaseWithMemory.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Release with MFC DLL.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestDebug.ActiveCfg = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestDebug.Build.0 = Debug|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestRelease.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestRelease.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServer.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServer.Build.0 = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServerRelease.ActiveCfg = Release|Win32
{34A0DB2A-4175-44AF-AF79-0A4D8BE9A65D}.TestServerRelease.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Debug Unicode.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Release Unicode.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.ReleaseWithMemory.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.ReleaseWithMemory.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Release with MFC DLL.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestDebug.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestDebug.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestRelease.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestRelease.Build.0 = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServer.ActiveCfg = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServer.Build.0 = Debug|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServerRelease.ActiveCfg = Release|Win32
{8AE46FB5-1285-4406-B5EA-C45E28ECF950}.TestServerRelease.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Debug Unicode.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Release Unicode.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.ReleaseWithMemory.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.ReleaseWithMemory.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Release with MFC DLL.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestDebug.ActiveCfg = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestDebug.Build.0 = Debug|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestRelease.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestRelease.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServer.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServer.Build.0 = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServerRelease.ActiveCfg = Release|Win32
{80EDF2CA-C3CA-4240-861B-ECD05A89CA3D}.TestServerRelease.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Debug Unicode.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Release Unicode.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.ReleaseWithMemory.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.ReleaseWithMemory.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Release with MFC DLL.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestDebug.ActiveCfg = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestDebug.Build.0 = Debug|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestRelease.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestRelease.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServer.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServer.Build.0 = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServerRelease.ActiveCfg = Release|Win32
{1E3A7702-6685-4367-A8F8-55044078AA16}.TestServerRelease.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Debug Unicode.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Release Unicode.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.ReleaseWithMemory.ActiveCfg = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.ReleaseWithMemory.Build.0 = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug with MFC DLL.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Debug with MFC DLL.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug with MFC DLL.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Debug with MFC DLL.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release with MFC DLL.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static MBCS Release with MFC DLL.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release with MFC DLL.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Release with MFC DLL.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug with MFC DLL.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Debug with MFC DLL.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release with MFC DLL.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.Static Unicode Release with MFC DLL.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestDebug.ActiveCfg = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestDebug.Build.0 = Debug|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestRelease.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestRelease.Build.0 = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServer.ActiveCfg = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServer.Build.0 = ReleaseWithMemory|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServerRelease.ActiveCfg = Release|Win32
{F438627D-4F03-43CA-AEA9-7237443F14E5}.TestServerRelease.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,203 @@
// AddBlockUserDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "AddBlockUserDlg.h"
#include "UserCharTreeView.h"
#include "GlobalFunctions.h"
#include "CharacterDoc.h"
#include "PacketManager.h"
#include ".\addblockuserdlg.h"
// CAddBlockUserDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CAddBlockUserDlg, CDialog)
CAddBlockUserDlg::CAddBlockUserDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddBlockUserDlg::IDD, pParent)
, m_lpParent(pParent)
{
}
CAddBlockUserDlg::~CAddBlockUserDlg()
{
}
void CAddBlockUserDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BA_SERVER_CB, m_ctrlServerGroupCb);
DDX_Control(pDX, IDC_BA_SELALL_CHK, m_ctrlAllChk);
}
BEGIN_MESSAGE_MAP(CAddBlockUserDlg, CDialog)
ON_CBN_SELCHANGE(IDC_BLOCK_TYPE, OnCbnSelchangeBlockType)
ON_BN_CLICKED(IDC_BA_SELALL_CHK, OnBnClickedBaSelallChk)
END_MESSAGE_MAP()
// CAddBlockUserDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CAddBlockUserDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CUserCharTreeView* lpTreeDlg = static_cast<CUserCharTreeView*>(m_lpParent);
CUserCharTreeView::BLOCK_INFO BlockInfo = lpTreeDlg->GetLastBlockInfo();
ServerGroupComboSet(m_ctrlServerGroupCb, false);
// <20><><EFBFBD><EFBFBD> <20>׷<EFBFBD> <20><><EFBFBD><EFBFBD> (üũ <20>޺<EFBFBD> <20>ڽ<EFBFBD>)
CString strServerName;
CCharacterDoc::GetInstance().GetServerName(BlockInfo.m_dwServerGroup, strServerName);
if (0 != strServerName.CompareNoCase("UNKNOWN"))
{
m_ctrlServerGroupCb.SetCheck(m_ctrlServerGroupCb.FindString(-1, strServerName), true);
m_ctrlServerGroupCb.EnableWindow(false);
m_ctrlAllChk.EnableWindow(false);
}
// <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
SetDlgItemText(IDC_BLOCK_NAME, BlockInfo.m_szCharacterName);
CComboBox* lpBlockTermCb = static_cast<CComboBox*>(GetDlgItem(IDC_BLOCK_TYPE));
// <20><><EFBFBD><EFBFBD> <20><20>޺<EFBFBD> <20><><EFBFBD><EFBFBD>
lpBlockTermCb->AddString(GetLocalString("IDC_BLOCKADD_06"));
lpBlockTermCb->AddString(GetLocalString("IDC_BLOCKADD_07"));
SetWindowText(GetLocalString("WND_BLOCKADD"));
SetUIString(this->m_hWnd, IDC_BLOCKADD_01, "IDC_BLOCKADD_01");
SetUIString(this->m_hWnd, IDC_BLOCKADD_02, "IDC_BLOCKADD_02");
SetUIString(this->m_hWnd, IDC_BLOCKADD_03, "IDC_BLOCKADD_03");
SetUIString(this->m_hWnd, IDC_BLOCKADD_04, "IDC_BLOCKADD_04");
SetUIString(this->m_hWnd, IDC_BLOCKADD_05, "IDC_BLOCKADD_05");
return TRUE;
}
void CAddBlockUserDlg::OnOK()
{
CUserCharTreeView* lpTreeDlg = static_cast<CUserCharTreeView*>(m_lpParent);
CUserCharTreeView::BLOCK_INFO BlockInfo = lpTreeDlg->GetLastBlockInfo();
CDateTimeCtrl* lpDateCtrl = static_cast<CDateTimeCtrl*>(GetDlgItem(IDC_BLOCK_DATE));
CComboBox* lpBlockTermCb = static_cast<CComboBox*>(GetDlgItem(IDC_BLOCK_TYPE));
unsigned char cBlockTarget, cBlockTerm = 0;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if(BlockInfo.ACCOUNT == BlockInfo.m_cType)
{
cBlockTarget = PktAdminMgr::PktAddBlockUser::TARGET_ACCOUNT;
}
else if(BlockInfo.CHARACTER == BlockInfo.m_cType)
{
cBlockTarget = PktAdminMgr::PktAddBlockUser::TARGET_CHARACTER;
}
// <20><><EFBFBD><EFBFBD> <20>
if(CB_ERR == lpBlockTermCb->GetCurSel())
{
Report(GetLocalString("MSG_0093"), CAUTION);
return;
}
else
{
if(TEMP_BLOCK == lpBlockTermCb->GetCurSel())
{
cBlockTerm = PktAdminMgr::PktAddBlockUser::TERM_TEMPORARY;
}
else if((PERMANANT_BLOCK == lpBlockTermCb->GetCurSel()))
{
cBlockTerm = PktAdminMgr::PktAddBlockUser::TERM_PERMANANT;
}
}
// <20><><EFBFBD><EFBFBD> <20>Ⱓ (<28><><EFBFBD><EFBFBD> <20><>¥)
TCHAR szFinishDate[20], szDescription[31];
szFinishDate[0] = szDescription[0] = 0;
COleDateTime StartBlockTime = COleDateTime::GetCurrentTime();
COleDateTime FinishBlockTime;
lpDateCtrl->GetTime(FinishBlockTime);
COleDateTimeSpan TimeSpan = FinishBlockTime - StartBlockTime;
// 24<32>ð<EFBFBD> <20>̳<EFBFBD><CCB3><EFBFBD> <20>ִ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20>𸣰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD> <20><>.<2E><> 10<31><30>-9<><39><EFBFBD><EFBFBD> <20>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<>̴<EFBFBD> <20><><EFBFBD><EFBFBD>
long BlockDays = TimeSpan.GetDays() + 1;
if((StartBlockTime.GetDay() == FinishBlockTime.GetDay()) && (1 == BlockDays))
{
--BlockDays;
}
else if(StartBlockTime > FinishBlockTime)
{
Report(GetLocalString("MSG_0094"), CAUTION);
return;
}
GetDlgItemText(IDC_BLOCK_REASON, szDescription, sizeof(szDescription));
_sntprintf(szFinishDate, sizeof(szFinishDate), _T("%d"), BlockDays);
if((0 < _tcslen(szFinishDate)) && (0 < _tcslen(szDescription)) && (30 > _tcslen(szDescription)))
{
for (int nIndex = 0; nIndex < m_ctrlServerGroupCb.GetCount(); ++nIndex)
{
if (TRUE == m_ctrlServerGroupCb.GetCheck(nIndex))
{
CString strServerName;
unsigned long dwServerIndex = 10000;
m_ctrlServerGroupCb.GetLBText(nIndex, strServerName);
CCharacterDoc::GetInstance().GetServerIndex(strServerName, dwServerIndex);
CPacketMgr::GetInstance()->SendPktBlockUser((unsigned char)dwServerIndex,
BlockInfo.m_dwUID, BlockInfo.m_szCharacterName, cBlockTarget, cBlockTerm, szFinishDate, szDescription);
}
}
EndDialog(true);
}
else
{
Report(GetLocalString("MSG_0095"), CAUTION);
return;
}
}
void CAddBlockUserDlg::OnCbnSelchangeBlockType()
{
CComboBox* lpBlockTermCb = static_cast<CComboBox*>(GetDlgItem(IDC_BLOCK_TYPE));
if(NULL == lpBlockTermCb)
{
return;
}
if(TEMP_BLOCK == lpBlockTermCb->GetCurSel())
{
GetDlgItem(IDC_BLOCK_DATE)->EnableWindow(true);
}
else if(PERMANANT_BLOCK == lpBlockTermCb->GetCurSel())
{
GetDlgItem(IDC_BLOCK_DATE)->EnableWindow(false);
}
}
void CAddBlockUserDlg::OnBnClickedBaSelallChk()
{
bool bChk = false;
m_ctrlServerGroupCb.EnableWindow(true);
if (BST_CHECKED == m_ctrlAllChk.GetCheck())
{
bChk = true;
m_ctrlServerGroupCb.EnableWindow(false);
}
m_ctrlServerGroupCb.SelectAll(bChk);
}

View File

@@ -0,0 +1,45 @@
#pragma once
#include "afxwin.h"
#include "CheckComboBox.h"
/*!
\class CAddBlockUserDlg
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0>ϴ<EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CAddBlockUserDlg : public CDialog
{
DECLARE_DYNAMIC(CAddBlockUserDlg)
public:
CAddBlockUserDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CAddBlockUserDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_ADDBLOCK_USER };
enum BLOCKTYPE_CB_INDEX
{
TEMP_BLOCK = 0,
PERMANANT_BLOCK = 1
};
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void OnOK();
private:
CWnd* m_lpParent;
CCheckComboBox m_ctrlServerGroupCb;
afx_msg void OnCbnSelchangeBlockType();
afx_msg void OnBnClickedBaSelallChk();
public:
CButton m_ctrlAllChk;
};

View File

@@ -0,0 +1,5 @@
namespace CON
{
const int MAX_GROUP_NUM = 10;
};

View File

@@ -0,0 +1,116 @@
// AdminLoginDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "AdminLoginDlg.h"
#include "PacketManager.h"
#include "WindowMgr.h"
#include "GlobalFunctions.h"
// CAdminLoginDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CAdminLoginDlg, CDialog)
CAdminLoginDlg::CAdminLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAdminLoginDlg::IDD, pParent)
{
}
CAdminLoginDlg::~CAdminLoginDlg()
{
}
void CAdminLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAdminLoginDlg, CDialog)
ON_BN_CLICKED(IDC_LOGIN, OnBnClickedLogin)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
ON_BN_CLICKED(IDC_LOGIN_CANCEL, OnBnClickedLoginCancel)
ON_WM_DESTROY()
END_MESSAGE_MAP()
// CAdminLoginDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CAdminLoginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
INSERT_WINDOW(IDD_ADMIN_LOGIN, this);
SetWindowText(GetLocalString("IDD_ADMIN_LOGIN"));
SetUIString(this->m_hWnd, IDC_LOGIN_01, "IDC_LOGIN_01");
SetUIString(this->m_hWnd, IDC_LOGIN_02, "IDC_LOGIN_02");
return TRUE;
}
void CAdminLoginDlg::OnBnClickedLogin()
{
OnLogin();
}
void CAdminLoginDlg::OnLogin()
{
GetDlgItemText(IDC_ACCOUNT, m_szAccount);
GetDlgItemText(IDC_PASSWORD, m_szPasswd);
if(m_szAccount.GetLength() && m_szPasswd.GetLength())
{
if(((CAdminToolClientApp*)AfxGetApp())->IsConnected())
{
CPacketMgr::GetInstance()->SendLogin(m_szAccount, m_szPasswd);
}
else
{
AfxMessageBox(GetLocalString("MSG_0096"));
}
}
else
{
AfxMessageBox(GetLocalString("MSG_0097"));
}
}
BOOL CAdminLoginDlg::PreTranslateMessage(MSG* pMsg)
{
if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
{
CString strPass;
this->GetDlgItemText(IDC_PASSWORD, strPass);
if((GetFocus() == GetDlgItem(IDC_PASSWORD)->GetFocus()) && (!strPass.IsEmpty()))
{
OnLogin();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CAdminLoginDlg::OnBnClickedLoginCancel()
{
PostQuitMessage(false);
}
void CAdminLoginDlg::OnDestroy()
{
CDialog::OnDestroy();
ERASE_WINDOW(IDD_ADMIN_LOGIN);
}
void CAdminLoginDlg::OnBnClickedOk()
{
//OnOK();
}
void CAdminLoginDlg::OnBnClickedCancel()
{
//OnCancel();
}

View File

@@ -0,0 +1,37 @@
#pragma once
/*!
\class CAdminLoginDlg
<09><EFBFBD><EEBFB5> <20>α<EFBFBD><CEB1><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CAdminLoginDlg : public CDialog
{
DECLARE_DYNAMIC(CAdminLoginDlg)
private:
CString m_szAccount;
CString m_szPasswd;
void OnLogin( );
public:
CAdminLoginDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CAdminLoginDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_ADMIN_LOGIN };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL PreTranslateMessage(MSG* pMsg);
virtual BOOL OnInitDialog();
public:
afx_msg void OnBnClickedLogin();
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedLoginCancel();
afx_msg void OnDestroy();
};

View File

@@ -0,0 +1,20 @@
<HTML>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ks_c_5601-1987">
<BODY ID=CAdminLoginDlg BGCOLOR=LIGHTGREY>
<TABLE WIDTH=100%>
<TR>
<TD ALIGN=RIGHT>
<BUTTON STYLE="WIDTH:100" ID="ButtonOK">Ȯ<EFBFBD><EFBFBD></BUTTON><BR>
<BUTTON STYLE="WIDTH:100" ID="ButtonCancel"><EFBFBD><EFBFBD><EFBFBD><EFBFBD></BUTTON>
</TD>
</TR>
<TR WIDTH=100% HEIGHT=75>
<TD ALIGN=CENTER VALIGN=BOTTOM>
TODO: <20><><EFBFBD><20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><>ġ<EFBFBD>մϴ<D5B4>.
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

View File

@@ -0,0 +1,202 @@
// AdminStoreDlgBar.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "AdminStoreDlgBar.h"
#include "ListCtrlSortClass.h"
#include "PacketManager.h"
#include "WindowMgr.h"
#include "GlobalFunctions.h"
IMPLEMENT_DYNAMIC(CAdminStoreDlgBar, CInitDialogBar)
CAdminStoreDlgBar::CAdminStoreDlgBar()
: m_bSortListAsc(false)
{
INSERT_WINDOW(IDD_STATUS_DLGBAR, static_cast<CWnd*>(this));
}
CAdminStoreDlgBar::~CAdminStoreDlgBar()
{
ERASE_WINDOW(IDD_STATUS_DLGBAR);
}
void CAdminStoreDlgBar::DoDataExchange(CDataExchange* pDX)
{
CInitDialogBar::DoDataExchange(pDX);
DDX_Control(pDX, IDC_ADMINSTORELIST, m_ctrlAdminStoreList);
DDX_Control(pDX, IDC_WORKREPORT_LIST, m_ctrlWorkReportList);
}
BEGIN_MESSAGE_MAP(CAdminStoreDlgBar, CInitDialogBar)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_AS_ITEMCOPY, OnAstoreitemcopy)
ON_COMMAND(ID_AS_ITEMEDIT, OnAsItemedit)
ON_COMMAND(ID_AS_ITEMDEL, OnAsItemdel)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_ADMINSTORELIST, OnLvnColumnclickAdminstorelist)
ON_NOTIFY(NM_CLICK, IDC_ADMINSTORELIST, OnNMClickAdminstorelist)
ON_NOTIFY(NM_DBLCLK, IDC_ADMINSTORELIST, OnNMDblclkAdminstorelist)
ON_MESSAGE(WM_INITDIALOG, InitDialog)
END_MESSAGE_MAP()
// CAdminStoreDlgBar <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
LRESULT CAdminStoreDlgBar::InitDialog(WPARAM, LPARAM)
{
UpdateData(FALSE);
OnInitDialog();
return 0L;
}
BOOL CAdminStoreDlgBar::OnInitDialog()
{
SetUIString(this->m_hWnd, IDC_BOTTOMBAR_01, "IDC_BOTTOMBAR_01");
SetUIString(this->m_hWnd, IDC_BOTTOMBAR_02, "IDC_BOTTOMBAR_02");
return TRUE;
}
void CAdminStoreDlgBar::OnContextMenu(CWnd* pWnd, CPoint point)
{
if(pWnd->GetSafeHwnd() == m_ctrlAdminStoreList.GetSafeHwnd()
&& m_ctrlAdminStoreList.GetSelectedCount() == 1)
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(8);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_AS_ITEMCOPY, GetLocalString("MENU_027"));
pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_AS_ITEMEDIT, GetLocalString("MENU_024"));
pContextMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, ID_AS_ITEMDEL, GetLocalString("MENU_025"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CAdminStoreDlgBar::OnAstoreitemcopy()
{
int iSelIndex = m_ctrlAdminStoreList.GetNextItem(-1, LVNI_SELECTED);
CPacketMgr::GetInstance()->SendPktGetAdminStoreItem(
PktAdminMgr::PktGetAdminStoreItem::CREATE,
_ttol(m_ctrlAdminStoreList.GetItemText(iSelIndex, 0)));
}
void CAdminStoreDlgBar::OnAsItemedit()
{
int iSelIndex = m_ctrlAdminStoreList.GetNextItem(-1, LVNI_SELECTED);
CPacketMgr::GetInstance()->SendPktGetAdminStoreItem(
PktAdminMgr::PktGetAdminStoreItem::EDIT,
_ttol(m_ctrlAdminStoreList.GetItemText(iSelIndex, 0)));
}
void CAdminStoreDlgBar::OnAsItemdel()
{
int iSelIndex = m_ctrlAdminStoreList.GetNextItem(-1, LVNI_SELECTED);
CPacketMgr::GetInstance()->SendPktAdminStoreDelete(
_ttol(m_ctrlAdminStoreList.GetItemText(iSelIndex, 0)));
}
void CAdminStoreDlgBar::OnLvnColumnclickAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlAdminStoreList, m_iSortListItem);
*pResult = 0;
}
void CAdminStoreDlgBar::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::STORE_ID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::SERVER_GROUP:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::OWNER:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::NAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
}
}
void CAdminStoreDlgBar::OnNMClickAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult)
{
if(g_bItemGrab)
{
char StoreBuffer[PktAdminMgr::PktAdminStoreInsert::MAX_ITEM_INFO];
unsigned long dwStoreBufferLength = 0;
g_stMyItemInfo.m_stItemInfo.AdminStore_Out(StoreBuffer, dwStoreBufferLength);
CPacketMgr::GetInstance()->SendPktAdminStoreInsert(PktAdminMgr::PktAdminStoreInsert::EMPTY_SERVERID,
_T("Adminstrator"), CONV_CLISTR(g_stMyItemInfo.m_stItemInfo.m_szItemName), StoreBuffer);
}
*pResult = 0;
}
void CAdminStoreDlgBar::OnNMDblclkAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult)
{
if(!g_bItemGrab)
{
OnAsItemedit();
}
*pResult = 0;
}
void CAdminStoreDlgBar::WorkReport(CString report, REPORT_TYPE eType)
{
CString contents;
SYSTEMTIME SysTime;
GetLocalTime(&SysTime);
contents.Format(_T("[%04d-%02d-%02d %02d:%02d:%02d] %s"),
SysTime.wYear, SysTime.wMonth, SysTime.wDay, SysTime.wHour, SysTime.wMinute, SysTime.wSecond, report);
switch(eType){
case GENERAL:
m_ctrlWorkReportList.AddLine(CXListBox::White, CXListBox::Black, contents);
break;
case NOTIFY:
m_ctrlWorkReportList.AddLine(CXListBox::Aqua, CXListBox::Black, contents);
break;
case CAUTION:
m_ctrlWorkReportList.AddLine(CXListBox::Yellow, CXListBox::Black, contents);
break;
case SUCCESS:
m_ctrlWorkReportList.AddLine(CXListBox::Lime, CXListBox::Black, contents);
break;
case FAILED:
m_ctrlWorkReportList.AddLine(CXListBox::Fuschia, CXListBox::Black, contents);
break;
}
}
void CAdminStoreDlgBar::SetGoldEditBox(unsigned __int64 i64Gold)
{
// <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>!
//SetDlgItemText(
}

View File

@@ -0,0 +1,52 @@
#pragma once
#include "InitDialogBar.h"
#include "XListBox.h"
#include "GlobalFunctions.h"
#include "./res/resource.h"
/*!
\class CAdminStoreDlgBar
<09> â<><C3A2> <20><> <20>۾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20><>(DDX <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20><>)
*/
class CAdminStoreDlgBar : public CInitDialogBar
{
DECLARE_DYNAMIC(CAdminStoreDlgBar)
public:
CAdminStoreDlgBar();
virtual ~CAdminStoreDlgBar();
enum { IDD = IDD_BOTTOM_DLGBAR };
enum SORT_TYPE { STORE_ID, SERVER_GROUP, OWNER, NAME };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX / DDY <20><><EFBFBD><EFBFBD>
DECLARE_MESSAGE_MAP()
afx_msg LRESULT InitDialog(WPARAM, LPARAM);
afx_msg BOOL OnInitDialog();
private:
bool m_bSortListAsc;
int m_iSortListItem;
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnAstoreitemcopy();
afx_msg void OnAsItemedit();
afx_msg void OnAsItemdel();
afx_msg void OnAsItemdistribute();
afx_msg void OnNMClickAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnColumnclickAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMDblclkAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult);
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
public:
CListCtrl m_ctrlAdminStoreList; // MainFrm Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
CXListBox m_ctrlWorkReportList; // <20>۾<EFBFBD> â <20><><EFBFBD><EFBFBD>Ʈ <20>ڽ<EFBFBD>
void WorkReport(CString report, REPORT_TYPE eType);
void SetGoldEditBox(unsigned __int64 i64Gold);
};

View File

@@ -0,0 +1,482 @@
// AdminToolClient.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 "AdminToolClient.h"
#include "MainFrm.h"
#include "UserInfoDoc.h"
#include "UserInfoFrm.h"
#include "AdminToolClientDoc.h"
#include "AdminToolClientView.h"
#include "AdminLoginDlg.h"
#include "TAdminManagementDlg.h"
#include "CharRestoreDlg.h"
#include "BlockManagementDlg.h"
#include "GAdminManagementDlg.h"
#include "GlobalFunctions.h"
#include "Dispatch.h"
#include "PacketManager.h"
#include <Network/SingleSession/ClientSingleSession.h>
#include <Item/ItemMgr.h>
#include <Skill/SkillMgr.h>
#include <Character/ModifyCharacter.h>
#include <ToolQuestList.h>
#include <Quest/QuestMgr.h>
#include <GameGuardLib/ggsrv.h>
GGAUTHS_API void NpLog(int mode, char* msg)
{
}
GGAUTHS_API void GGAuthUpdateCallback(PGG_UPREPORT report)
{
}
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
bool g_bItemGrab = false;
bool g_bIsLogin = false;
MyItemInfo g_stMyItemInfo;
// CAdminToolClientApp
BEGIN_MESSAGE_MAP(CAdminToolClientApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(ID_TADMINMANAGEMENT, OnTadminmanagementdlg)
ON_COMMAND(ID_CHARRESTORE, OnCharrestore)
ON_COMMAND(ID_BLOCKLIST, OnBlocklist)
ON_COMMAND(ID_GADMINMANAGEMENT, OnGadminmanagement)
END_MESSAGE_MAP()
// CAdminToolClientApp <20><><EFBFBD><EFBFBD>
CAdminToolClientApp::CAdminToolClientApp() : m_lpSession( NULL )
{
// 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> CAdminToolClientApp <20><>ü<EFBFBD>Դϴ<D4B4>.
CAdminToolClientApp theApp;
// CAdminToolClientApp <20>ʱ<EFBFBD>ȭ
bool CAdminToolClientApp::ConnectServer()
{
CString tempAdminServerIP = GetSetupString(_T("CONNECT"), _T("ADMIN_SERVER_IP"));
TCHAR AdminServerIP[50];
_tcsncpy(AdminServerIP, tempAdminServerIP, sizeof(AdminServerIP));
m_lpSession = new CSingleSession;
if(!m_lpSession->Initialize(new CClientDispatch))
{
AfxMessageBox(GetLocalString("MSG_0134"));
return false;
}
if(!m_lpSession->Connect(CONV_NETSTRING(AdminServerIP), CServerSetup::P2AdminToolServerClientListen))
{
AfxMessageBox(GetLocalString("MSG_0135"));
return false;
}
CPacketMgr::GetInstance()->SetSession(m_lpSession);
return true;
}
bool CAdminToolClientApp::IsConnected()
{
if(NULL != m_lpSession)
{
return m_lpSession->GetConnected();
}
return FALSE;
}
bool CAdminToolClientApp::OnLoadResourceDLL()
{
TCHAR szCurrentPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH ,szCurrentPath);
CString strResFileFullPath;
strResFileFullPath = szCurrentPath;
strResFileFullPath += _T("\\Resource\\AdminToolRes.dll");
HINSTANCE hInstance = AfxGetResourceHandle();
if(NULL != hInstance)
{
FreeLibrary(hInstance);
}
hInstance = LoadLibrary(strResFileFullPath);
if(NULL == hInstance)
{
CString strErrMessage;
strErrMessage.Format(_T("%s\n"), GetLocalString("MSG_0170"));
if(ERROR_MOD_NOT_FOUND == GetLastError())
{
strErrMessage.AppendFormat(_T("%s\n%s"),
strResFileFullPath, strErrMessage);
}
else
{
strErrMessage.AppendFormat(_T(" (ERROR CODE: 0X%X)"), GetLastError());
}
AfxMessageBox(strErrMessage, MB_OK | MB_ICONSTOP);
return false;
}
AfxSetResourceHandle(hInstance);
return true;
}
BOOL CAdminToolClientApp::InitInstance()
{
// <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();
// <20>߰輭<DFB0><E8BCAD> Ÿ<><C5B8> <20>ε<EFBFBD>
m_nAgentType =
GetPrivateProfileInt(_T("GENERAL"), _T("AGENT_TYPE"), 0, _T("./AdminToolClientSetup.ini"));
// <20><><EFBFBD><EFBFBD> Ÿ<><C5B8> <20>ε<EFBFBD>
GetPrivateProfileString(_T("GENERAL"), _T("NATION"), NULL, m_szNationType, 256, _T("./AdminToolClientSetup.ini"));
if (NULL == m_szNationType)
{
AfxMessageBox(GetLocalString("ADDED_STRING_035"));
return FALSE;
}
// OLE <20><><EFBFBD>̺귯<CCBA><EAB7AF><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD>մϴ<D5B4>.
if(!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
if(!AfxSocketInit())
{
AfxMessageBox("AfxSocketInit() Falied");
}
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("RylAdminToolRegKey"));
LoadStdProfileSettings(4); // MRU<52><55> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> ǥ<><C7A5> INI <20><><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20>ε<EFBFBD><CEB5>մϴ<D5B4>.
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>
// <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>մϴ<D5B4>.
// CHILD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20>â<EEBFB5><C3A2> â <20><><EFBFBD><EFBFBD>)
CMultiDocTemplate* pDocTemplate;
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> â <20><><EFBFBD><EFBFBD>
pDocTemplate = new CMultiDocTemplate(IDR_UserinfoTYPE,
RUNTIME_CLASS(CUserInfoDoc), // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ť<EFBFBD><C5A5>Ʈ
RUNTIME_CLASS(CUserInfoFrame), // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RUNTIME_CLASS(CAdminToolClientView)); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
//pDocTemplate->m_NewMenuShared.LoadToolBar(IDR_MAINFRAME);
// <20><> MDI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
// <20><><EFBFBD>̻簡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><ECBFA1> DragAcceptFiles<65><73> ȣ<><C8A3><EFBFBD>մϴ<D5B4>.
// MDI <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_pMainWnd<6E><64> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ٷ<EFBFBD> <20>̷<EFBFBD><CCB7><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20>߻<EFBFBD><DFBB>ؾ<EFBFBD> <20>մϴ<D5B4>.
// ǥ<><C7A5> <20><> <20><><EFBFBD><EFBFBD>, DDE, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>м<EFBFBD><D0BC>մϴ<D5B4>.
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// <20><><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD>մϴ<D5B4>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> /RegServer, /Register, /Unregserver <20>Ǵ<EFBFBD> /Unregister<65><72> <20><><EFBFBD>۵<EFBFBD> <20><><EFBFBD><EFBFBD> FALSE<53><45> <20><>ȯ<EFBFBD>մϴ<D5B4>.
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// <20><> â<><C3A2> <20>ʱ<EFBFBD>ȭ<EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20≯<EFBFBD> ǥ<><C7A5><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD>մϴ<D5B4>.
// <20>޴<EFBFBD> <20><><EFBFBD><EFBFBD>
CMenu *lpMainMenu, *lpSubMenu, *lpTempMenu;
lpMainMenu = pMainFrame->GetMenu();
if(NULL == lpMainMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpMainMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_013"));
lpMainMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_014"));
lpMainMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_015"));
lpSubMenu = lpMainMenu->GetSubMenu(0);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpSubMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 32868, GetLocalString("MENU_001"));
lpSubMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32903, GetLocalString("MENU_002"));
lpSubMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, 32997, GetLocalString("ADDED_STRING_110"));
lpSubMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, 32956, GetLocalString("MENU_004"));
lpSubMenu->ModifyMenu(4, MF_STRING | MF_BYPOSITION, 32962, GetLocalString("MENU_005"));
lpSubMenu->ModifyMenu(6, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_070"));
lpSubMenu->ModifyMenu(7, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_071"));
lpSubMenu->ModifyMenu(8, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_222"));
lpSubMenu->ModifyMenu(10, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("MENU_006"));
lpSubMenu->ModifyMenu(12, MF_STRING | MF_BYPOSITION, NULL, GetLocalString("ADDED_STRING_072"));
lpSubMenu->ModifyMenu(14, MF_STRING | MF_BYPOSITION, 57665, GetLocalString("MENU_009"));
lpTempMenu = lpSubMenu->GetSubMenu(6);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_CREATEITEM, GetLocalString("ADDED_STRING_073"));
lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_CANCELGRABITEM, GetLocalString("ADDED_STRING_074"));
lpTempMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_DUPLICATEDITEM, GetLocalString("ADDED_STRING_075"));
lpTempMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, 32953, GetLocalString("MENU_003"));
lpTempMenu = lpSubMenu->GetSubMenu(7);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GUILDMANAGE, GetLocalString("ADDED_STRING_076"));
lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32988, GetLocalString("ADDED_STRING_077"));
lpTempMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, 33002, GetLocalString("ADDED_STRING_115"));
lpTempMenu = lpSubMenu->GetSubMenu(8);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 33004, GetLocalString("ADDED_STRING_223"));
lpTempMenu = lpSubMenu->GetSubMenu(10);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 32907, GetLocalString("MENU_007"));
lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32906, GetLocalString("MENU_008"));
lpTempMenu = lpSubMenu->GetSubMenu(12);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpTempMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 32985, GetLocalString("ADDED_STRING_078"));
lpTempMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, 32986, GetLocalString("ADDED_STRING_079"));
lpSubMenu = lpMainMenu->GetSubMenu(1);
if(NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return FALSE;
}
lpSubMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 59393, GetLocalString("MENU_010"));
lpSubMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, 32871, GetLocalString("MENU_011"));
lpSubMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, 32901, GetLocalString("MENU_012"));
lpSubMenu = lpMainMenu->GetSubMenu(2);
if (NULL == lpSubMenu)
{
ERRLOG0(g_Log, "Menu init failed");
return -1;
}
lpSubMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, 57664, GetLocalString("ADDED_STRING_042"));
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
this->CloseAllDocuments(FALSE); // <20><><EFBFBD>α׷<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD> <20><>ť<EFBFBD><C5A5>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
if(!Item::CItemMgr::GetInstance().LoadItemProtoType("./Script/Game/ItemScript.txt"))
{
AfxMessageBox(GetLocalString("MSG_0136"));
return false;
}
if(!CSkillMgr::GetInstance().LoadSkillsFromFile())
{
AfxMessageBox(GetLocalString("MSG_0137"));
return false;
}
if(!CSkillID::GetInstance().ReadSkillScript())
{
AfxMessageBox(GetLocalString("MSG_0138"));
return false;
}
if (FALSE == g_QuestList.Load("./Script/Game/Quest.mcf"))
{
AfxMessageBox(GetLocalString("MSG_0182"));
return false;
}
if (false == CQuestMgr::GetInstance().LoadQuestInfo())
{
AfxMessageBox(GetLocalString("ADDED_STRING_084"));
return false;
}
// <20>α<EFBFBD><CEB1><EFBFBD> â
CAdminLoginDlg LoginDlg;
Report(GetLocalString("MSG_0139"), GENERAL);
if(false == ConnectServer())
{
Report(GetLocalString("MSG_0140"), FAILED);
return false;
}
Report(GetLocalString("MSG_0141"), SUCCESS);
if(IDOK != LoginDlg.DoModal())
{
return false;
}
return TRUE;
}
// <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()
// <20><>ȭ <20><><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α׷<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
void CAdminToolClientApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// CAdminToolClientApp <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
// <20><> <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
void CAdminToolClientApp::OnTadminmanagementdlg()
{
CTAdminManagementDlg Dlg;
Dlg.DoModal();
}
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
void CAdminToolClientApp::OnCharrestore()
{
CCharRestoreDlg Dlg;
Dlg.DoModal();
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
void CAdminToolClientApp::OnBlocklist()
{
CBlockManagementDlg Dlg;
Dlg.DoModal();
}
// <20><><EFBFBD><EFBFBD> <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
void CAdminToolClientApp::OnGadminmanagement()
{
CGAdminManagementDlg Dlg;
Dlg.DoModal();
}
CDocument* CAdminToolClientApp::NewUserDocument()
{
POSITION pos = GetFirstDocTemplatePosition();
CDocTemplate *pTemplate = GetNextDocTemplate(pos);
return pTemplate->OpenDocumentFile(NULL);
}
int CAdminToolClientApp::ExitInstance()
{
if(0 != m_lpSession)
{
delete m_lpSession;
m_lpSession = 0;
}
CCharacterDoc::GetInstance().Destroy();
return CWinApp::ExitInstance();
}

View File

@@ -0,0 +1,90 @@
// AdminToolClient.h : AdminToolClient <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α׷<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
//
#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 "stdafx.h"
#include "./res/resource.h" // <20><> <20><>ȣ
#include "InfoStruct.h"
#include <Network/Protocol/Ryl_AdminMgrProtocol.h>
#include <Character/ModifyCharacter.h>
#include <vector>
struct MyItemInfo
{
enum Mode
{
NONE = 0,
CREATE_PLURAL = 1,
CREATE_SINGLE = 2,
CREATE_DISTRIBUTE = 3,
EDIT = 4,
EDIT_ADMINSTORE = 5,
REMOVE = 6
};
unsigned int m_nModeIndex;
CModifyCharacter* m_lpModifyCharInfo;
unsigned int m_dwDocKey;
unsigned __int64 m_dwItemSerial;
char m_szItemName[255];
unsigned char m_cTakeType;
unsigned long m_dwStoreUID;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD>
PktAdminMgr::CreateItemInfo m_stItemInfo;
unsigned short m_SizeX;
unsigned short m_SizeY;
MyItemInfo()
: m_nModeIndex(0), m_SizeX(0), m_SizeY(0), m_dwItemSerial(0)
, m_lpModifyCharInfo(NULL), m_dwDocKey(0), m_dwStoreUID(0) { }
};
class CSingleSession;
class CAdminToolClientApp : public CWinApp
{
public:
CAdminToolClientApp();
DECLARE_MESSAGE_MAP()
virtual BOOL InitInstance();
virtual int ExitInstance();
private:
afx_msg void OnAppAbout();
afx_msg void OnTadminmanagementdlg();
afx_msg void OnCharrestore();
afx_msg void OnBlocklist();
afx_msg void OnGadminmanagement();
unsigned int m_nAgentType;
char m_szNationType[256];
public:
CSingleSession* m_lpSession;
bool ConnectServer();
bool IsConnected();
bool OnLoadResourceDLL();
ClientInfo m_MyInfo;
CDocument* NewUserDocument();
unsigned int GetAgentType() { return m_nAgentType; };
const char* GetNationType() { return m_szNationType; };
};
extern CAdminToolClientApp theApp;
extern MyItemInfo g_stMyItemInfo; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
extern bool g_bItemGrab; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
extern bool g_bIsLogin; // <20>α<EFBFBD><CEB1><EFBFBD> <20>ߴ<EFBFBD><DFB4><EFBFBD> <20><><EFBFBD><EFBFBD>

View File

@@ -0,0 +1,836 @@
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="AdminToolClient"
ProjectGUID="{9C7F0055-7BE2-4876-BABA-AA95E909446E}"
RootNamespace="AdminToolClient"
Keyword="MFCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="../Executable/$(ConfigurationName)"
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./;../AdminToolClient;../GridControl;../CAsyncSockLibrary/;../../RylServerProject/BaseLibrary;../../RylServerProject/RylGameLibrary;../../RylServerProject/RylServerLibrary;../AdminToolLibrary;../../RylServerProject;"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;NO_GAMEGUARD"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="4"
DisableSpecificWarnings="4800"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="0"
IgnoreAllDefaultLibraries="FALSE"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="TRUE"
GenerateMapFile="FALSE"
MapFileName=""
MapExports="FALSE"
MapLines="FALSE"
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="../Executable/$(ConfigurationName)"
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="2"
WholeProgramOptimization="FALSE">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="./;../AdminToolClient;../GridControl;../CAsyncSockLibrary/;../../RylServerProject/BaseLibrary;../../RylServerProject/RylGameLibrary;../../RylServerProject/RylServerLibrary;../AdminToolLibrary;../../RylServerProject;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="FALSE"
RuntimeLibrary="0"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
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="&quot;C:\Documents and Settings\administrator\<5C><><EFBFBD><EFBFBD> ȭ<><C8AD>\AdminToolClient\AdminToolClient\res&quot;;&quot;$(IntDir)&quot;"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release Unicode|Win32"
OutputDirectory="../Executable/$(ConfigurationName)"
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="1"
WholeProgramOptimization="FALSE">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="./;../AdminToolClient;../GridControl;../CAsyncSockLibrary/;../../RylServerProject/BaseLibrary;../../RylServerProject/RylGameLibrary;../../RylServerProject/RylServerLibrary;../AdminToolLibrary;../../RylServerProject;"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="FALSE"
RuntimeLibrary="0"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
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="&quot;C:\Documents and Settings\administrator\<5C><><EFBFBD><EFBFBD> ȭ<><C8AD>\AdminToolClient\AdminToolClient\res&quot;;&quot;$(IntDir)&quot;"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Debug Unicode|Win32"
OutputDirectory="../Executable/$(ConfigurationName)"
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./;../AdminToolClient;../GridControl;../CAsyncSockLibrary/;../../RylServerProject/BaseLibrary;../../RylServerProject/RylGameLibrary;../../RylServerProject/RylServerLibrary;../AdminToolLibrary;../../RylServerProject;"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
WarningLevel="3"
Detect64BitPortabilityProblems="FALSE"
DebugInformationFormat="4"
DisableSpecificWarnings="4800"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
LinkIncremental="0"
IgnoreAllDefaultLibraries="FALSE"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="TRUE"
GenerateMapFile="FALSE"
MapFileName=""
MapExports="FALSE"
MapLines="FALSE"
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>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Resource"
Filter="">
<File
RelativePath=".\res\AdminToolClient.ico">
</File>
<File
RelativePath=".\res\AdminToolClient.manifest">
</File>
<File
RelativePath=".\res\AdminToolClient.rc">
</File>
<File
RelativePath=".\res\AdminToolClient.rc2">
</File>
<File
RelativePath=".\res\AdminToolClientDoc.ico">
</File>
<File
RelativePath=".\res\bitmap1.bmp">
</File>
<File
RelativePath=".\res\bitmap2.bmp">
</File>
<File
RelativePath=".\res\Block.ico">
</File>
<File
RelativePath=".\res\Character.ico">
</File>
<File
RelativePath=".\res\grab_cursor.cur">
</File>
<File
RelativePath=".\res\resource.h">
</File>
<File
RelativePath=".\res\Server.ico">
</File>
<File
RelativePath=".\res\Toolbar.bmp">
</File>
<File
RelativePath=".\res\toolbar1.bmp">
</File>
<File
RelativePath=".\res\UID.ico">
</File>
</Filter>
<Filter
Name="Utility"
Filter="">
<File
RelativePath=".\GlobalFunctions.cpp">
</File>
<File
RelativePath=".\GlobalFunctions.h">
</File>
<File
RelativePath=".\GridControlFactory.cpp">
</File>
<File
RelativePath=".\GridControlFactory.h">
</File>
<File
RelativePath=".\InfoStruct.h">
</File>
<File
RelativePath=".\ListCtrlSortClass.cpp">
</File>
<File
RelativePath=".\ListCtrlSortClass.h">
</File>
<File
RelativePath=".\WindowMgr.cpp">
</File>
<File
RelativePath=".\WindowMgr.h">
</File>
</Filter>
<Filter
Name="Network"
Filter="">
<File
RelativePath=".\Dispatch.cpp">
</File>
<File
RelativePath=".\Dispatch.h">
</File>
<File
RelativePath=".\PacketManager.cpp">
</File>
<File
RelativePath=".\PacketManager.h">
</File>
</Filter>
<Filter
Name="Doc"
Filter="">
<File
RelativePath=".\AdminToolClientDoc.cpp">
</File>
<File
RelativePath=".\AdminToolClientDoc.h">
</File>
<File
RelativePath=".\CharacterDoc.cpp">
</File>
<File
RelativePath=".\CharacterDoc.h">
</File>
<File
RelativePath=".\UserInfoDoc.cpp">
</File>
<File
RelativePath=".\UserInfoDoc.h">
</File>
</Filter>
<Filter
Name="CustomControls"
Filter="">
<Filter
Name="XListBox"
Filter="">
<File
RelativePath=".\Clipboard.cpp">
</File>
<File
RelativePath=".\Clipboard.h">
</File>
<File
RelativePath=".\ColorPickerCB.cpp">
</File>
<File
RelativePath=".\ColorPickerCB.h">
</File>
<File
RelativePath=".\XListBox.cpp">
</File>
<File
RelativePath=".\XListBox.h">
</File>
</Filter>
<Filter
Name="InitDialogBar"
Filter="">
<File
RelativePath=".\InitDialogBar.cpp">
</File>
<File
RelativePath=".\InitDialogBar.h">
</File>
</Filter>
<Filter
Name="CheckComboBox"
Filter="">
<File
RelativePath=".\CheckComboBox.cpp">
</File>
<File
RelativePath=".\CheckComboBox.h">
</File>
</Filter>
</Filter>
<Filter
Name="Dialog"
Filter="">
<File
RelativePath=".\AddBlockUserDlg.cpp">
</File>
<File
RelativePath=".\AddBlockUserDlg.h">
</File>
<File
RelativePath=".\AdminLoginDlg.cpp">
</File>
<File
RelativePath=".\AdminLoginDlg.h">
</File>
<File
RelativePath=".\BlockManagementDlg.cpp">
</File>
<File
RelativePath=".\BlockManagementDlg.h">
</File>
<File
RelativePath=".\CastleCreatureDlg.cpp">
</File>
<File
RelativePath=".\CastleCreatureDlg.h">
</File>
<File
RelativePath=".\CastleSearchDlg.cpp">
</File>
<File
RelativePath=".\CastleSearchDlg.h">
</File>
<File
RelativePath=".\ChangeDeleteTimeDlg.cpp">
</File>
<File
RelativePath=".\ChangeDeleteTimeDlg.h">
</File>
<File
RelativePath=".\CharInfoTime.cpp">
</File>
<File
RelativePath=".\CharInfoTime.h">
</File>
<File
RelativePath=".\CharRestoreDlg.cpp">
</File>
<File
RelativePath=".\CharRestoreDlg.h">
</File>
<File
RelativePath=".\CharSkillEditDlg.cpp">
</File>
<File
RelativePath=".\CharSkillEditDlg.h">
</File>
<File
RelativePath=".\ConnectionInfoDlg.cpp">
</File>
<File
RelativePath=".\ConnectionInfoDlg.h">
</File>
<File
RelativePath=".\DetailCharInfo.cpp">
</File>
<File
RelativePath=".\DetailCharInfo.h">
</File>
<File
RelativePath=".\DetailInfoDlg.cpp">
</File>
<File
RelativePath=".\DetailInfoDlg.h">
</File>
<File
RelativePath=".\DuplicatedItemDlg.cpp">
</File>
<File
RelativePath=".\DuplicatedItemDlg.h">
</File>
<File
RelativePath=".\ExitToolDlg.cpp">
</File>
<File
RelativePath=".\ExitToolDlg.h">
</File>
<File
RelativePath=".\FortInfoDlg.cpp">
</File>
<File
RelativePath=".\FortInfoDlg.h">
</File>
<File
RelativePath=".\GAdminInfoEditDlg.cpp">
</File>
<File
RelativePath=".\GAdminInfoEditDlg.h">
</File>
<File
RelativePath=".\GAdminManagementDlg.cpp">
</File>
<File
RelativePath=".\GAdminManagementDlg.h">
</File>
<File
RelativePath=".\GMLogMsgDlg.cpp">
</File>
<File
RelativePath=".\GMLogMsgDlg.h">
</File>
<File
RelativePath=".\GuildMainDlg.cpp">
</File>
<File
RelativePath=".\GuildMainDlg.h">
</File>
<File
RelativePath=".\GuildPositionDlg.cpp">
</File>
<File
RelativePath=".\GuildPositionDlg.h">
</File>
<File
RelativePath=".\GuildRestoreDlg.cpp">
</File>
<File
RelativePath=".\GuildRestoreDlg.h">
</File>
<File
RelativePath=".\GuildSearchDlg.cpp">
</File>
<File
RelativePath=".\GuildSearchDlg.h">
</File>
<File
RelativePath=".\InterestedUserDlg.cpp">
</File>
<File
RelativePath=".\InterestedUserDlg.h">
</File>
<File
RelativePath=".\ItemDistributeDlg.cpp">
</File>
<File
RelativePath=".\ItemDistributeDlg.h">
</File>
<File
RelativePath=".\ItemManageDlg.cpp">
</File>
<File
RelativePath=".\ItemManageDlg.h">
</File>
<File
RelativePath=".\ItemQtyControlAddDlg.cpp">
</File>
<File
RelativePath=".\ItemQtyControlAddDlg.h">
</File>
<File
RelativePath=".\ItemQuantityControlDlg.cpp">
</File>
<File
RelativePath=".\ItemQuantityControlDlg.h">
</File>
<File
RelativePath=".\MiningCampDlg.cpp">
</File>
<File
RelativePath=".\MiningCampDlg.h">
</File>
<File
RelativePath=".\ModifyCharNameDlg.cpp">
</File>
<File
RelativePath=".\ModifyCharNameDlg.h">
</File>
<File
RelativePath=".\NewAreaMatrixDlg.cpp">
</File>
<File
RelativePath=".\NewAreaMatrixDlg.h">
</File>
<File
RelativePath=".\ShopCampPage.cpp">
</File>
<File
RelativePath=".\ShopCampPage.h">
</File>
<File
RelativePath=".\TAdminEditDlg.cpp">
</File>
<File
RelativePath=".\TAdminEditDlg.h">
</File>
<File
RelativePath=".\TAdminManagementDlg.cpp">
</File>
<File
RelativePath=".\TAdminManagementDlg.h">
</File>
<File
RelativePath=".\TAdminRegistrationDlg.cpp">
</File>
<File
RelativePath=".\TAdminRegistrationDlg.h">
</File>
<File
RelativePath=".\TAdminUseLogDlg.cpp">
</File>
<File
RelativePath=".\TAdminUseLogDlg.h">
</File>
<File
RelativePath=".\UnifiedCharInfoDlg.cpp">
</File>
<File
RelativePath=".\UnifiedCharInfoDlg.h">
</File>
<File
RelativePath=".\UnifiedGuildInfoDlg.cpp">
</File>
<File
RelativePath=".\UnifiedGuildInfoDlg.h">
</File>
<File
RelativePath=".\UserBillingLogDlg.cpp">
</File>
<File
RelativePath=".\UserBillingLogDlg.h">
</File>
<Filter
Name="DialogBar"
Filter="">
<File
RelativePath=".\AdminStoreDlgBar.cpp">
</File>
<File
RelativePath=".\AdminStoreDlgBar.h">
</File>
<File
RelativePath=".\QuickMenuDlgBar.cpp">
</File>
<File
RelativePath=".\QuickMenuDlgBar.h">
</File>
</Filter>
</Filter>
<Filter
Name="PropertySheet"
Filter="">
<File
RelativePath=".\CharPropertySheet.cpp">
</File>
<File
RelativePath=".\CharPropertySheet.h">
</File>
<File
RelativePath=".\GuildInfoSheet.cpp">
</File>
<File
RelativePath=".\GuildInfoSheet.h">
</File>
<Filter
Name="Page"
Filter="">
<File
RelativePath=".\CharEXInfoPage.cpp">
</File>
<File
RelativePath=".\CharEXInfoPage.h">
</File>
<File
RelativePath=".\CharExtraItemPage.cpp">
</File>
<File
RelativePath=".\CharExtraItemPage.h">
</File>
<File
RelativePath=".\CharInventoryPage.cpp">
</File>
<File
RelativePath=".\CharInventoryPage.h">
</File>
<File
RelativePath=".\CharItemStorePage.cpp">
</File>
<File
RelativePath=".\CharItemStorePage.h">
</File>
<File
RelativePath=".\CharQuestPage.cpp">
</File>
<File
RelativePath=".\CharQuestPage.h">
</File>
<File
RelativePath=".\CharSkillPage.cpp">
</File>
<File
RelativePath=".\CharSkillPage.h">
</File>
<File
RelativePath=".\CharSocietyPage.cpp">
</File>
<File
RelativePath=".\CharSocietyPage.h">
</File>
<File
RelativePath=".\CharStatusPage.cpp">
</File>
<File
RelativePath=".\CharStatusPage.h">
</File>
<File
RelativePath=".\CharTempInvenPage.cpp">
</File>
<File
RelativePath=".\CharTempInvenPage.h">
</File>
<File
RelativePath=".\GuildCastlePage.cpp">
</File>
<File
RelativePath=".\GuildCastlePage.h">
</File>
<File
RelativePath=".\GuildGoldPage.cpp">
</File>
<File
RelativePath=".\GuildGoldPage.h">
</File>
<File
RelativePath=".\GuildItemPage.cpp">
</File>
<File
RelativePath=".\GuildItemPage.h">
</File>
<File
RelativePath=".\GuildMemberPage.cpp">
</File>
<File
RelativePath=".\GuildMemberPage.h">
</File>
<File
RelativePath=".\GuildRelationshipPage.cpp">
</File>
<File
RelativePath=".\GuildRelationshipPage.h">
</File>
</Filter>
</Filter>
<Filter
Name="Frame"
Filter="">
<File
RelativePath=".\MainFrm.cpp">
</File>
<File
RelativePath=".\MainFrm.h">
</File>
<File
RelativePath=".\UserInfoFrm.cpp">
</File>
<File
RelativePath=".\UserInfoFrm.h">
</File>
</Filter>
<Filter
Name="View"
Filter="">
<File
RelativePath=".\AdminToolClientView.cpp">
</File>
<File
RelativePath=".\AdminToolClientView.h">
</File>
<File
RelativePath=".\CharSheetView.cpp">
</File>
<File
RelativePath=".\CharSheetView.h">
</File>
<File
RelativePath=".\UserCharTreeView.cpp">
</File>
<File
RelativePath=".\UserCharTreeView.h">
</File>
</Filter>
<File
RelativePath=".\AdminClientConstants.h">
</File>
<File
RelativePath=".\AdminLoginDlg.htm"
DeploymentContent="TRUE">
</File>
<File
RelativePath=".\AdminToolClient.cpp">
</File>
<File
RelativePath=".\AdminToolClient.h">
</File>
<File
RelativePath=".\ReadMe.txt">
</File>
<File
RelativePath=".\stdafx.cpp">
</File>
<File
RelativePath=".\stdafx.h">
</File>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="res\AdminToolClient.rc"/>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,76 @@
// AdminToolClientDoc.cpp : CAdminToolClientDoc Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "AdminToolClientDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CAdminToolClientDoc
IMPLEMENT_DYNCREATE(CAdminToolClientDoc, CDocument)
BEGIN_MESSAGE_MAP(CAdminToolClientDoc, CDocument)
END_MESSAGE_MAP()
// CAdminToolClientDoc <20><><EFBFBD><EFBFBD>/<2F>Ҹ<EFBFBD>
CAdminToolClientDoc::CAdminToolClientDoc()
{
// TODO: <20><><EFBFBD><20><>ȸ<EFBFBD><C8B8> <20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
CAdminToolClientDoc::~CAdminToolClientDoc()
{
}
BOOL CAdminToolClientDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: <20><><EFBFBD><20>ٽ<EFBFBD> <20>ʱ<EFBFBD>ȭ <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
// SDI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
return TRUE;
}
// CAdminToolClientDoc serialization
void CAdminToolClientDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
else
{
// TODO: <20><><EFBFBD><20>ε<EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
}
// CAdminToolClientDoc <20><><EFBFBD><EFBFBD>
#ifdef _DEBUG
void CAdminToolClientDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CAdminToolClientDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
// CAdminToolClientDoc <20><><EFBFBD><EFBFBD>

View File

@@ -0,0 +1,37 @@
// AdminToolClientDoc.h : CAdminToolClientDoc Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD>
//
#pragma once
class CAdminToolClientDoc : public CDocument
{
protected: // serialization<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
CAdminToolClientDoc();
DECLARE_DYNCREATE(CAdminToolClientDoc)
// Ư<><C6AF>
public:
// <20>۾<EFBFBD>
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
// <20><><EFBFBD><EFBFBD>
public:
virtual ~CAdminToolClientDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// <20>޽<EFBFBD><DEBD><EFBFBD> <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
protected:
DECLARE_MESSAGE_MAP()
};

View File

@@ -0,0 +1,99 @@
// AdminToolClientView.cpp : CAdminToolClientView Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "AdminToolClientDoc.h"
#include "AdminToolClientView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CAdminToolClientView
IMPLEMENT_DYNCREATE(CAdminToolClientView, CView)
BEGIN_MESSAGE_MAP(CAdminToolClientView, CView)
// ǥ<><C7A5> <20>μ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
// CAdminToolClientView <20><><EFBFBD><EFBFBD>/<2F>Ҹ<EFBFBD>
CAdminToolClientView::CAdminToolClientView()
{
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
CAdminToolClientView::~CAdminToolClientView()
{
}
BOOL CAdminToolClientView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: CREATESTRUCT cs<63><73> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><E2BFA1>
// Window Ŭ<><C5AC><EFBFBD><EFBFBD> <20>Ǵ<EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
return CView::PreCreateWindow(cs);
}
// CAdminToolClientView <20>׸<EFBFBD><D7B8><EFBFBD>
void CAdminToolClientView::OnDraw(CDC* /*pDC*/)
{
CAdminToolClientDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
// CAdminToolClientView <20>μ<EFBFBD>
BOOL CAdminToolClientView::OnPreparePrinting(CPrintInfo* pInfo)
{
// <20><EFBFBD><E2BABB><EFBFBD><EFBFBD> <20>غ<EFBFBD>
return DoPreparePrinting(pInfo);
}
void CAdminToolClientView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: <20>μ<EFBFBD><CEBC>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
void CAdminToolClientView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: <20>μ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
}
// CAdminToolClientView <20><><EFBFBD><EFBFBD>
#ifdef _DEBUG
void CAdminToolClientView::AssertValid() const
{
CView::AssertValid();
}
void CAdminToolClientView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CAdminToolClientDoc* CAdminToolClientView::GetDocument() const // <20><><EFBFBD><EFBFBD><EFBFBD>׵<EFBFBD><D7B5><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAdminToolClientDoc)));
return (CAdminToolClientDoc*)m_pDocument;
}
#endif //_DEBUG
// CAdminToolClientView <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>

View File

@@ -0,0 +1,52 @@
// AdminToolClientView.h : iCAdminToolClientView Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD>
//
#include "UserInfoDoc.h"
#pragma once
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
class CAdminToolClientDoc;
class CAdminToolClientView : public CView
{
protected: // serialization<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
CAdminToolClientView();
DECLARE_DYNCREATE(CAdminToolClientView)
// Ư<><C6AF>
public:
CAdminToolClientDoc* GetDocument() const;
// <20>۾<EFBFBD>
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
virtual void OnDraw(CDC* pDC); // <20><> <20><20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǵǾ<C7B5><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
// <20><><EFBFBD><EFBFBD>
public:
virtual ~CAdminToolClientView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// <20>޽<EFBFBD><DEBD><EFBFBD> <20><> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.
protected:
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // AdminToolClientView.cpp<70><70> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
inline CAdminToolClientDoc* CAdminToolClientView::GetDocument() const
{ return reinterpret_cast<CAdminToolClientDoc*>(m_pDocument); }
#endif

View File

@@ -0,0 +1,207 @@
// BlockedListDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "BlockManagementDlg.h"
#include "GlobalFunctions.h"
#include "CharacterDoc.h"
#include "WindowMgr.h"
#include "PacketManager.h"
#include "ListCtrlSortClass.h"
// CBlockManagementDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CBlockManagementDlg, CDialog)
CBlockManagementDlg::CBlockManagementDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBlockManagementDlg::IDD, pParent)
, m_bSortListAsc(false)
{
INSERT_WINDOW(IDD_BLOCKEDLISTDLG, this);
}
CBlockManagementDlg::~CBlockManagementDlg()
{
ERASE_WINDOW(IDD_BLOCKEDLISTDLG);
}
void CBlockManagementDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BLOCKEDLIST, m_ctrlBlockedList);
DDX_Control(pDX, IDC_BM_SERVERCOMBO, m_ctrlBMServerCombo);
}
BEGIN_MESSAGE_MAP(CBlockManagementDlg, CDialog)
ON_BN_CLICKED(IDC_BLOCKLIST_SEARCH, OnBnClickedBlocklistSearch)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_DELETE_BLOCK, OnDeleteBlock)
ON_BN_CLICKED(IDC_BLOCKLIST_CLIP_BTN, OnBnClickedBlocklistClipBtn)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_BLOCKEDLIST, OnLvnColumnclickBlockedlist)
END_MESSAGE_MAP()
// CBlockManagementDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CBlockManagementDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlBlockedList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlBlockedList.InsertColumn(0, GetLocalString("ADDED_STRING_114"), LVCFMT_RIGHT, 50);
m_ctrlBlockedList.InsertColumn(1, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 90);
m_ctrlBlockedList.InsertColumn(2, _T("UID"), LVCFMT_LEFT, 100);
m_ctrlBlockedList.InsertColumn(3, GetLocalString("ACCOUNT"), LVCFMT_LEFT, 100);
m_ctrlBlockedList.InsertColumn(4, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 100);
m_ctrlBlockedList.InsertColumn(5, GetLocalString("BLOCK_TARGET"), LVCFMT_LEFT, 70);
m_ctrlBlockedList.InsertColumn(6, GetLocalString("BLCOK_TERM"), LVCFMT_LEFT, 70);
m_ctrlBlockedList.InsertColumn(7, GetLocalString("BLOCK_START_TIME"), LVCFMT_LEFT, 120);
m_ctrlBlockedList.InsertColumn(8, GetLocalString("BLOCK_END_TIME"), LVCFMT_LEFT, 120);
m_ctrlBlockedList.InsertColumn(9, GetLocalString("ADMIN_ID"), LVCFMT_LEFT, 80);
m_ctrlBlockedList.InsertColumn(10, GetLocalString("DESCRIPTION"), LVCFMT_LEFT, 170);
SetWindowText(GetLocalString("IDD_BLOCKEDLISTDLG"));
SetUIString(this->m_hWnd, IDC_BLOCKMANAGE_01,"IDC_BLOCKMANAGE_01");
SetUIString(this->m_hWnd, IDC_BLOCKMANAGE_02,"IDC_BLOCKMANAGE_02");
SetUIString(this->m_hWnd, IDC_BLOCKMANAGE_03,"IDC_BLOCKMANAGE_03");
SetUIString(this->m_hWnd, IDC_BLOCKLIST_SEARCH,"IDC_BLOCKLIST_SEARCH");
SetUIString(this->m_hWnd, IDC_BLOCKLIST_CLIP_BTN,"IDC_BLOCKLIST_CLIP_BTN");
ServerGroupComboSet(m_ctrlBMServerCombo);
return TRUE;
}
void CBlockManagementDlg::OnDeleteBlock()
{
int Index = m_ctrlBlockedList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
TCHAR szValue[256];
unsigned long dwServerGroup;
m_ctrlBlockedList.GetItemText(Index, 1, szValue, sizeof(szValue));
CCharacterDoc::GetInstance().GetServerIndex(szValue, dwServerGroup);
m_ctrlBlockedList.GetItemText(Index, 0, szValue, sizeof(szValue));
unsigned long nidx = _ttol(szValue);
CPacketMgr::GetInstance()->SendDelBlockUser((char)dwServerGroup, nidx, szValue);
// <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
m_ctrlBlockedList.DeleteAllItems();
CPacketMgr::GetInstance()->SendPktSearchBlock(dwServerGroup);
}
}
void CBlockManagementDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
if(pWnd->GetSafeHwnd() == m_ctrlBlockedList.GetSafeHwnd() &&
m_ctrlBlockedList.GetSelectedCount() == 1)
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(10);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_DELETE_BLOCK, GetLocalString("MENU_030"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CBlockManagementDlg::OnOK()
{
//CDialog::OnOK();
}
void CBlockManagementDlg::OnCancel()
{
CDialog::OnCancel();
}
void CBlockManagementDlg::OnBnClickedBlocklistSearch()
{
CComboBox* lpServerCombo = static_cast<CComboBox*>(GetDlgItem(IDC_BM_SERVERCOMBO));
if(CB_ERR != lpServerCombo->GetCurSel())
{
m_ctrlBlockedList.DeleteAllItems();
CString strServerName;
unsigned long dwServerGroup;
lpServerCombo->GetLBText(lpServerCombo->GetCurSel(), strServerName);
CCharacterDoc::GetInstance().GetServerIndex(strServerName, dwServerGroup);
CPacketMgr::GetInstance()->SendPktSearchBlock(dwServerGroup);
}
}
void CBlockManagementDlg::OnBnClickedBlocklistClipBtn()
{
ClippingListCtrl(m_ctrlBlockedList, 9, true);
}
void CBlockManagementDlg::OnLvnColumnclickBlockedlist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlBlockedList, m_iSortListItem);
*pResult = 0;
}
void CBlockManagementDlg::SortListWndItem(CListCtrl* lpListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(lpListCtrl, iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::INDEX:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::SERVER_GROUP:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::UID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::ACCOUNT:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::CHAR_NAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::TARGET:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::TERM:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::START_TIME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::END_TIME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::ADMIN_ID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::DESCRIPTION:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
}
}

View File

@@ -0,0 +1,60 @@
#pragma once
#include "afxcmn.h"
#include "afxwin.h"
/*!
\class CBlockManagementDlg
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CBlockManagementDlg : public CDialog
{
DECLARE_DYNAMIC(CBlockManagementDlg)
public:
CBlockManagementDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CBlockManagementDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_BLOCKEDLISTDLG };
enum SORT_TYPE
{
INDEX = 0,
SERVER_GROUP = 1,
UID = 2,
ACCOUNT = 3,
CHAR_NAME = 4,
TARGET = 5,
TERM = 6,
START_TIME = 7,
END_TIME = 8,
ADMIN_ID = 9,
DESCRIPTION = 10
};
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void OnOK();
virtual void OnCancel();
private:
bool m_bSortListAsc;
int m_iSortListItem;
CListCtrl m_ctrlBlockedList;
CComboBox m_ctrlBMServerCombo;
void SortListWndItem(CListCtrl* lpListCtrl, const int iCol);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnDeleteBlock();
afx_msg void OnBnClickedBlocklistSearch();
afx_msg void OnBnClickedBlocklistClipBtn();
afx_msg void OnLvnColumnclickBlockedlist(NMHDR *pNMHDR, LRESULT *pResult);
};

View File

@@ -0,0 +1,68 @@
// CastleCreature.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CastleCreatureDlg.h"
#include ".\castlecreatureDlg.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include "WindowMgr.h"
// CCastleCreatureDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCastleCreatureDlg, CDialog)
CCastleCreatureDlg::CCastleCreatureDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCastleCreatureDlg::IDD, pParent)
{
INSERT_WINDOW(IDD_CASTLECREATUREDLG, static_cast<CWnd*>(this));
}
CCastleCreatureDlg::~CCastleCreatureDlg()
{
ERASE_WINDOW(IDD_CASTLECREATUREDLG);
}
void CCastleCreatureDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CASTLECREATURE_LIST, m_ctrlCastleCreatureList);
}
BEGIN_MESSAGE_MAP(CCastleCreatureDlg, CDialog)
END_MESSAGE_MAP()
// CCastleCreatureDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCastleCreatureDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlCastleCreatureList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCastleCreatureList.InsertColumn(0, GetLocalString("ADDED_STRING_224"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(1, GetLocalString("ADDED_STRING_225"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(2, GetLocalString("ADDED_STRING_226"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(3, GetLocalString("ADDED_STRING_227"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(4, GetLocalString("ADDED_STRING_228"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(5, GetLocalString("ADDED_STRING_229"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(6, GetLocalString("ADDED_STRING_230"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(7, GetLocalString("ADDED_STRING_231"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(8, GetLocalString("ADDED_STRING_232"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(9, GetLocalString("ADDED_STRING_233"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(10, GetLocalString("ADDED_STRING_234"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(11, GetLocalString("ADDED_STRING_235"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(12, GetLocalString("ADDED_STRING_236"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(13, GetLocalString("ADDED_STRING_237"), LVCFMT_LEFT, 65);
m_ctrlCastleCreatureList.InsertColumn(14, GetLocalString("ADDED_STRING_238"), LVCFMT_LEFT, 65);
SetWindowText(GetLocalString("ADDED_STRING_239"));
return TRUE;
}

View File

@@ -0,0 +1,27 @@
#pragma once
#include "afxcmn.h"
/*!
\class CCastleCreatureDlg
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CCastleCreatureDlg : public CDialog
{
DECLARE_DYNAMIC(CCastleCreatureDlg)
public:
CCastleCreatureDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CCastleCreatureDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CASTLECREATUREDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
public:
CListCtrl m_ctrlCastleCreatureList;
virtual BOOL OnInitDialog();
};

View File

@@ -0,0 +1,392 @@
// CastleSearch.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CastleSearchDlg.h"
#include ".\castlesearchDlg.h"
#include "CharacterDoc.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include "WindowMgr.h"
#include <Network/Protocol/RYL_AdminMgrProtocol.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include "AdminClientConstants.h"
#include "ListCtrlSortClass.h"
#include "CastleCreatureDlg.h"
// CCastleSearch <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCastleSearchDlg, CDialog)
CCastleSearchDlg::CCastleSearchDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCastleSearchDlg::IDD, pParent)
, m_dwSearchCount(0)
, m_dwSelCount(0)
, m_bAllServerGroupChk(TRUE)
, m_bAllZoneGroupChk(TRUE)
, m_strSearchValue(_T(""))
{
INSERT_WINDOW(IDD_CASTLESEARCHDLG, static_cast<CWnd*>(this));
}
CCastleSearchDlg::~CCastleSearchDlg()
{
ERASE_WINDOW(IDD_CASTLESEARCHDLG);
}
void CCastleSearchDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDCCASTLESEARCH_SEARCHED_LIST, m_ctrlSearchedList);
DDX_Text(pDX, IDC_CASTLESEARCH_SEARCHCOUNT, m_dwSearchCount);
DDX_Text(pDX, IDC_CASTLESEARCH_SELCOUNT, m_dwSelCount);
DDX_Check(pDX, IDC_CASTLESEARCH_SERVERGROUP_CHK, m_bAllServerGroupChk);
DDX_Check(pDX, IDC_CASTLESEARCH_ZONEGROUP_CHK, m_bAllZoneGroupChk);
DDX_Text(pDX, IDC_CASTLESEARCH_SEARCHVALUE_EDIT, m_strSearchValue);
DDX_Control(pDX, IDC_CASTLESEARCH_SERVERGROUP_CB, m_ctrlServerGroupCb);
DDX_Control(pDX, IDC_CASTLESEARCH_ZONEGROUP_CB, m_ctrlZoneGroupCb);
DDX_Control(pDX, IDC_CASTLESEARCH_SEARCHCONDITION_CB, m_ctrlSearchConditionCb);
}
BEGIN_MESSAGE_MAP(CCastleSearchDlg, CDialog)
ON_BN_CLICKED(IDC_CASTLESEARCH_SERVERGROUP_CHK, OnBnClickedCastlesearchServergroupChk)
ON_BN_CLICKED(IDC_CASTLESEARCH_ZONEGROUP_CHK, OnBnClickedCastlesearchZonegroupChk)
ON_BN_CLICKED(IDC_CASTLESEARCH_SEARCH_BTN, OnBnClickedCastlesearchSearchBtn)
ON_NOTIFY(LVN_COLUMNCLICK, IDCCASTLESEARCH_SEARCHED_LIST, OnLvnColumnclickSearchedList)
ON_NOTIFY(NM_DBLCLK, IDCCASTLESEARCH_SEARCHED_LIST, OnNMDblclkSearchedList)
ON_NOTIFY(LVN_ITEMCHANGED, IDCCASTLESEARCH_SEARCHED_LIST, OnLvnItemchangedSearchedList)
END_MESSAGE_MAP()
// CCastleSearch <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCastleSearchDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ServerGroupComboSet(m_ctrlServerGroupCb);
m_ctrlSearchConditionCb.InsertString(0, _T("CastleID"));
m_ctrlSearchedList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlSearchedList.InsertColumn(0, GetLocalString("ADDED_STRING_188"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(1, GetLocalString("ADDED_STRING_189"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(2, GetLocalString("ADDED_STRING_190"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(3, GetLocalString("ADDED_STRING_191"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(4, GetLocalString("ADDED_STRING_192"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(5, GetLocalString("ADDED_STRING_193"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(6, GetLocalString("ADDED_STRING_194"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(7, GetLocalString("ADDED_STRING_195"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(8, GetLocalString("ADDED_STRING_196"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(9, GetLocalString("ADDED_STRING_197"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(10, GetLocalString("ADDED_STRING_198"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(11, GetLocalString("ADDED_STRING_199"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(12, GetLocalString("ADDED_STRING_200"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(13, GetLocalString("ADDED_STRING_201"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(14, GetLocalString("ADDED_STRING_202"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(15, GetLocalString("ADDED_STRING_203"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(16, GetLocalString("ADDED_STRING_204"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(17, GetLocalString("ADDED_STRING_205"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(18, GetLocalString("ADDED_STRING_206"), LVCFMT_LEFT, 65);
SetWindowText(GetLocalString("ADDED_STRING_207"));
CComboBox* lpZoneCb = static_cast<CComboBox*>(GetDlgItem(IDC_CASTLESEARCH_ZONEGROUP_CB));
for(int nIndex = 0; nIndex < SERVER_ID::MAX_ZONE_NUM; ++nIndex)
{
lpZoneCb->InsertString(nIndex, GetZoneString(nIndex));
}
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_SERVERGROUP_CHK, "ADDED_STRING_208");
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_ZONEGROUP_CHK, "ADDED_STRING_209");
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_SEARCH_BTN, "ADDED_STRING_210");
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_01, "ADDED_STRING_211");
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_02, "ADDED_STRING_212");
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_03, "ADDED_STRING_213");
SetUIString(this->m_hWnd, IDC_CASTLESEARCH_04, "ADDED_STRING_214");
return TRUE;
}
BOOL CCastleSearchDlg::PreTranslateMessage(MSG* pMsg)
{
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
{
if(pMsg->hwnd == GetDlgItem(IDC_CASTLESEARCH_SEARCHVALUE_EDIT)->m_hWnd)
{
OnBnClickedCastlesearchSearchBtn();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CCastleSearchDlg::OnBnClickedCastlesearchServergroupChk()
{
UpdateData(true);
m_ctrlServerGroupCb.EnableWindow(!m_bAllServerGroupChk);
}
void CCastleSearchDlg::OnBnClickedCastlesearchZonegroupChk()
{
UpdateData(true);
m_ctrlZoneGroupCb.EnableWindow(!m_bAllZoneGroupChk);
}
void CCastleSearchDlg::OnBnClickedCastlesearchSearchBtn()
{
UpdateData(true);
unsigned char cSearchType = PktAdminMgr::PktCastleSearch::NONE;
unsigned long dwServerGroup = 0;
unsigned long dwZoneGroup = 0;
TCHAR szSearchValue[MAX_PATH];
bool bAllServerGroupSerchFlag = false;
bool bAllZoneGroupSerchFlag = false;
if(m_bAllServerGroupChk && m_bAllZoneGroupChk)
{
bAllServerGroupSerchFlag = true;
bAllZoneGroupSerchFlag = true;
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktCastleSearch::ALLSERVER_ALLZONE_ALLCASTLE;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktCastleSearch::ALLSERVER_ALLZONE_SPECASTLE_ID;
}
}
else if(m_bAllServerGroupChk && CB_ERR != m_ctrlZoneGroupCb.GetCurSel())
{
bAllServerGroupSerchFlag = true;
dwZoneGroup = m_ctrlZoneGroupCb.GetCurSel();
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktCastleSearch::ALLSERVER_SPEZONE_ALLCASTLE;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktCastleSearch::ALLSERVER_SPEZONE_SPECASTLE_ID;
}
}
else if(m_bAllZoneGroupChk && CB_ERR != m_ctrlServerGroupCb.GetCurSel())
{
bAllZoneGroupSerchFlag = true;
CString strGroupName;
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktCastleSearch::SPESERVER_ALLZONE_ALLCASTLE;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktCastleSearch::SPESERVER_ALLZONE_SPECASTLE_ID;
}
}
else if(!m_bAllServerGroupChk && !m_bAllZoneGroupChk
&& CB_ERR != m_ctrlServerGroupCb.GetCurSel() && CB_ERR != m_ctrlZoneGroupCb.GetCurSel() )
{
CString strGroupName;
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
dwZoneGroup = m_ctrlZoneGroupCb.GetCurSel();
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktCastleSearch::SPESERVER_SPEZONE_ALLCASTLE;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktCastleSearch::SPESERVER_SPEZONE_SPECASTLE_ID;
}
}
else
{
Report(GetLocalString("ADDED_STRING_215"), CAUTION);
}
if(PktAdminMgr::PktCastleSearch::NONE != cSearchType)
{
m_ctrlSearchedList.DeleteAllItems();
_tcsncpy(szSearchValue, m_strSearchValue, m_strSearchValue.GetLength());
szSearchValue[m_strSearchValue.GetLength()] = '\0';
if(bAllServerGroupSerchFlag && bAllZoneGroupSerchFlag)
{
for(unsigned long dwServerGroup = 0; dwServerGroup < CON::MAX_GROUP_NUM; dwServerGroup++)
for(unsigned long dwZoneGroup = 0; dwZoneGroup < SERVER_ID::MAX_ZONE_NUM; dwZoneGroup++)
CPacketMgr::GetInstance()->SendCastleSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
else if(bAllServerGroupSerchFlag)
{
for(unsigned long dwServerGroup = 0; dwServerGroup < CON::MAX_GROUP_NUM; dwServerGroup++)
CPacketMgr::GetInstance()->SendCastleSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
else if(bAllZoneGroupSerchFlag)
{
for(unsigned long dwZoneGroup = 0; dwZoneGroup < SERVER_ID::MAX_ZONE_NUM; dwZoneGroup++)
CPacketMgr::GetInstance()->SendCastleSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
else
{
CPacketMgr::GetInstance()->SendCastleSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
}
}
void CCastleSearchDlg::OnLvnColumnclickSearchedList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlSearchedList, m_iSortListItem);
*pResult = 0;
}
void CCastleSearchDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::ServerGroup:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::CastleID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::Nation:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::Zone:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::Channel:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::Name:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::SiegeCount:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::InvincibleCount:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::TotalSiegeCount:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::TotalTaxMoney:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::Right:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::PosInX:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosInY:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosInZ:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosOutX:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosOutY:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosOutZ:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::ItemID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::ItemNum:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
}
}
void CCastleSearchDlg::OnNMDblclkSearchedList(NMHDR *pNMHDR, LRESULT *pResult)
{
if(0 < m_ctrlSearchedList.GetSelectedCount())
{
int Index = m_ctrlSearchedList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
TCHAR szValue[m_stSelCastleInfo.MAX_STRING];
unsigned long dwServerGroup;
unsigned long dwCastleID;
m_ctrlSearchedList.GetItemText(Index, 0, szValue, sizeof(szValue));
CCharacterDoc::GetInstance().GetServerIndex(szValue, dwServerGroup);
m_ctrlSearchedList.GetItemText(Index, 1, szValue, sizeof(szValue));
dwCastleID = atoi(szValue);
CPacketMgr::GetInstance()->SendCastleCreature(dwServerGroup, dwCastleID);
CCastleCreatureDlg castleCreatureDlg;
castleCreatureDlg.DoModal();
}
}
*pResult = 0;
}
void CCastleSearchDlg::OnLvnItemchangedSearchedList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
m_dwSelCount = m_ctrlSearchedList.GetSelectedCount();
UpdateData(false);
*pResult = 0;
}

View File

@@ -0,0 +1,76 @@
#pragma once
#include "afxcmn.h"
#include "afxwin.h"
// CCastleSearch <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
class CCastleSearchDlg : public CDialog
{
DECLARE_DYNAMIC(CCastleSearchDlg)
public:
CCastleSearchDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CCastleSearchDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CASTLESEARCHDLG };
enum SORT_TYPE
{
ServerGroup,
CastleID,
Nation,
Zone,
Channel,
Name,
SiegeCount,
InvincibleCount,
TotalSiegeCount,
TotalTaxMoney,
Right,
PosInX,
PosInY,
PosInZ,
PosOutX,
PosOutY,
PosOutZ,
ItemID,
ItemNum,
};
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual BOOL PreTranslateMessage(MSG* pMsg);
private:
bool m_bSortListAsc;
int m_iSortListItem;
CString m_strSearchValue;
UINT m_dwSelCount;
BOOL m_bAllServerGroupChk;
BOOL m_bAllZoneGroupChk;
CComboBox m_ctrlServerGroupCb;
CComboBox m_ctrlZoneGroupCb;
CComboBox m_ctrlSearchConditionCb;
SEL_CASTLE_INFO m_stSelCastleInfo;
afx_msg void OnBnClickedCastlesearchServergroupChk();
afx_msg void OnBnClickedCastlesearchZonegroupChk();
afx_msg void OnBnClickedCastlesearchSearchBtn();
afx_msg void OnLvnColumnclickSearchedList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMDblclkSearchedList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnItemchangedSearchedList(NMHDR *pNMHDR, LRESULT *pResult);
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
public:
CListCtrl m_ctrlSearchedList;
UINT m_dwSearchCount;
};

View File

@@ -0,0 +1,41 @@
// ChangeDeleteTime.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "ChangeDeleteTimeDlg.h"
#include "GlobalFunctions.h"
// CChangeDeleteTimeDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CChangeDeleteTimeDlg, CDialog)
CChangeDeleteTimeDlg::CChangeDeleteTimeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CChangeDeleteTimeDlg::IDD, pParent)
{
}
CChangeDeleteTimeDlg::~CChangeDeleteTimeDlg()
{
}
void CChangeDeleteTimeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CChangeDeleteTimeDlg, CDialog)
END_MESSAGE_MAP()
// CChangeDeleteTimeDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CChangeDeleteTimeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowText(GetLocalString("IDD_CHANGETIME"));
return TRUE;
}

View File

@@ -0,0 +1,25 @@
#pragma once
/*!
\class CChangeDeleteTimeDlg
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD><><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α׿<CEB1><D7BF><EFBFBD> ȣ<><C8A3>)
*/
class CChangeDeleteTimeDlg : public CDialog
{
DECLARE_DYNAMIC(CChangeDeleteTimeDlg)
public:
CChangeDeleteTimeDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CChangeDeleteTimeDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHANGETIME };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
};

View File

@@ -0,0 +1,315 @@
// CharEXInfoPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharEXInfoPage.h"
#include "PacketManager.h"
#include "CharacterDoc.h"
#include "NewAreaMatrixDlg.h"
#include "GlobalFunctions.h"
#include <Character/ModifyCharacter.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include ".\charexinfopage.h"
// CCharEXInfoPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharEXInfoPage, CPropertyPage)
CCharEXInfoPage::CCharEXInfoPage()
: CPropertyPage(CCharEXInfoPage::IDD)
, m_lpModifyCharacter(NULL)
, m_dwDocKey(0)
, m_fLastPosX(0)
, m_fLastPosY(0)
, m_fLastPosZ(0)
, m_fStorePosX(0)
, m_fStorePosY(0)
, m_fStorePosZ(0)
, m_dwStoreZone(0)
, m_eState(CCharEXInfoPage::NONE)
{
}
CCharEXInfoPage::~CCharEXInfoPage()
{
}
void CCharEXInfoPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_AREALIST, m_ctrlAreaList);
DDX_Text(pDX, IDC_LAST_POS_X, m_fLastPosX);
DDX_Text(pDX, IDC_LAST_POS_Y, m_fLastPosY);
DDX_Text(pDX, IDC_LAST_POS_Z, m_fLastPosZ);
DDX_Text(pDX, IDC_STORE_POS_X, m_fStorePosX);
DDX_Text(pDX, IDC_STORE_POS_Y, m_fStorePosY);
DDX_Text(pDX, IDC_STORE_POS_Z, m_fStorePosZ);
}
BEGIN_MESSAGE_MAP(CCharEXInfoPage, CPropertyPage)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_NEWAREAREG, OnBnClickedNewareareg)
ON_BN_CLICKED(IDC_POS_UPDATE, OnBnClickedIPosUpdate)
ON_BN_CLICKED(IDC_REFRESH_AREALIST, OnBnClickedRefreshAreaList)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_GIVE_POS, OnGivePos)
ON_COMMAND(ID_DEL_POS, OnDelPos)
ON_COMMAND(ID_UPDATE_POS, OnUpdatePos)
ON_BN_CLICKED(IDC_NAME_UPDATE_BTN, OnBnClickedNameUpdateBtn)
END_MESSAGE_MAP()
// CCharEXInfoPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
HBRUSH CCharEXInfoPage::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
BOOL CCharEXInfoPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlAreaList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlAreaList.InsertColumn(0, GetLocalString("AREA_NAME"), LVCFMT_LEFT, 120);
m_ctrlAreaList.InsertColumn(1, _T("ZONE"), LVCFMT_LEFT, 120);
m_ctrlAreaList.InsertColumn(2, _T("X"), LVCFMT_CENTER, 53);
m_ctrlAreaList.InsertColumn(3, _T("Z"), LVCFMT_CENTER, 53);
CComboBox* lpZoneCb = static_cast<CComboBox*>(GetDlgItem(IDC_ZONE_COMBO));
for(int nIndex = 0; nIndex < SERVER_ID::MAX_ZONE_NUM; ++nIndex)
{
lpZoneCb->InsertString(nIndex, GetZoneString(nIndex));
}
RefreshZoneList();
SetUIString(this->m_hWnd, IDC_EXPAGE_01, "IDC_EXPAGE_01");
SetUIString(this->m_hWnd, IDC_EXPAGE_02, "IDC_EXPAGE_02");
SetUIString(this->m_hWnd, IDC_EXPAGE_03, "IDC_EXPAGE_03");
SetUIString(this->m_hWnd, IDC_EXPAGE_04, "IDC_EXPAGE_04");
SetUIString(this->m_hWnd, IDC_EXPAGE_05, "IDC_EXPAGE_05");
SetUIString(this->m_hWnd, IDC_EXPAGE_06, "IDC_EXPAGE_06");
SetUIString(this->m_hWnd, IDC_EXPAGE_07, "IDC_EXPAGE_07");
SetUIString(this->m_hWnd, IDC_EXPAGE_08, "IDC_EXPAGE_08");
SetUIString(this->m_hWnd, IDC_EXPAGE_09, "IDC_EXPAGE_09");
SetUIString(this->m_hWnd, IDC_POS_UPDATE, "IDC_POS_UPDATE");
SetUIString(this->m_hWnd, IDC_NEWAREAREG, "IDC_NEWAREAREG");
SetUIString(this->m_hWnd, IDC_REFRESH_AREALIST, "IDC_REFRESH_AREALIST");
SetUIString(this->m_hWnd, IDC_NAMECHANGECNT, "ADDED_STRING_080");
return TRUE;
}
bool CCharEXInfoPage::SetCharEXInfoPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if(0 != dwDocKey && NULL != lpModifyCharacter)
{
m_lpModifyCharacter = lpModifyCharacter;
m_dwDocKey = dwDocKey;
GetDlgItem(IDC_POS_UPDATE)->EnableWindow(true);
GetDlgItem(IDC_REFRESH_AREALIST)->EnableWindow(true);
GetDlgItem(IDC_NEWAREAREG)->EnableWindow(true);
GetDlgItem(IDC_NAME_UPDATE_BTN)->EnableWindow(true);
return true;
}
else
{
return false;
}
}
void CCharEXInfoPage::SetCharEXInfoPage(CModifyCharacter* lpModifyCharacter)
{
if(NULL != lpModifyCharacter)
{
CHAR_POS& pos = m_lpModifyCharacter->GetLastPos();
m_fLastPosX = pos.LastPoint.fPointX;
m_fLastPosY = pos.LastPoint.fPointY;
m_fLastPosZ = pos.LastPoint.fPointZ;
m_fStorePosX = pos.SavePoint.fPointX;
m_fStorePosY = pos.SavePoint.fPointY;
m_fStorePosZ = pos.SavePoint.fPointZ;
SERVER_ID ServerID;
ServerID.dwID = m_lpModifyCharacter->GetServerID();
m_dwStoreZone = ServerID.GetZone();
if(0 != m_dwStoreZone)
{
static_cast<CComboBox*>(GetDlgItem(IDC_ZONE_COMBO))->SetCurSel(m_dwStoreZone);
}
else
{
Report(GetLocalString("MSG_0115"), NOTIFY);
}
SetDlgItemInt(IDC_CHARINFOEX_NAME, (unsigned int)lpModifyCharacter->GetNameChangeChance(), false);
}
else
{
m_fLastPosX = 0;
m_fLastPosY = 0;
m_fLastPosZ = 0;
m_fStorePosX = 0;
m_fStorePosY = 0;
m_fStorePosZ = 0;
static_cast<CComboBox*>(GetDlgItem(IDC_ZONE_COMBO))->SetCurSel(-1);
}
UpdateData(false);
}
void CCharEXInfoPage::OnBnClickedNewareareg()
{
m_eState = INSERT;
CNewAreaMatrixDlg Dlg(this);
Dlg.DoModal();
m_eState = NONE;
}
void CCharEXInfoPage::OnBnClickedIPosUpdate()
{
UpdateData(true);
CComboBox* lpZoneCb = static_cast<CComboBox*>(GetDlgItem(IDC_ZONE_COMBO));
CPacketMgr::GetInstance()->SendPktChangePos(
m_lpModifyCharacter->GetServerGroup(), m_dwDocKey, m_lpModifyCharacter->GetUID(),
m_lpModifyCharacter->GetCID(), (char)lpZoneCb->GetCurSel(), m_fLastPosX, m_fLastPosY, m_fLastPosZ);
}
void CCharEXInfoPage::RefreshZoneList()
{
CCharacterDoc& CharDocument = CCharacterDoc::GetInstance();
CCharacterDoc::ZoneList& ZoneList = CharDocument.GetZoneList();
CCharacterDoc::ZoneList::vecZoneList::iterator Pos = ZoneList.ZoneInfo.begin();
m_ctrlAreaList.DeleteAllItems();
while(Pos != ZoneList.ZoneInfo.end())
{
TCHAR szTemporary[100];
CCharacterDoc::Zone& zone = (*Pos);
m_ctrlAreaList.InsertItem(0,(LPCTSTR)zone.m_szName);
m_ctrlAreaList.SetItemText(0, 1, (LPCTSTR)GetZoneString(zone.m_Zone));
_sntprintf(szTemporary, 100, _T("%.1f"), zone.m_fPosX);
m_ctrlAreaList.SetItemText(0, 2, (LPCTSTR)szTemporary);
_sntprintf(szTemporary, 100, _T("%.1f"), zone.m_fPosZ);
m_ctrlAreaList.SetItemText(0, 3, (LPCTSTR)szTemporary);
++Pos;
}
}
void CCharEXInfoPage::OnBnClickedRefreshAreaList()
{
RefreshZoneList();
}
void CCharEXInfoPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
if((pWnd->GetSafeHwnd() == m_ctrlAreaList.GetSafeHwnd())
&& (m_ctrlAreaList.GetSelectedCount() == 1))
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(11);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GIVE_POS, GetLocalString("MENU_031"));
pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_UPDATE_POS, GetLocalString("MENU_032"));
pContextMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, ID_DEL_POS, GetLocalString("MENU_033"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CCharEXInfoPage::OnGivePos()
{
CCharacterDoc& CharDocument = CCharacterDoc::GetInstance();
CCharacterDoc::ZoneList& ZoneList = CharDocument.GetZoneList();
CCharacterDoc::ZoneList::vecZoneList::iterator Pos = ZoneList.ZoneInfo.begin();
int Idx = m_ctrlAreaList.GetNextItem(-1, LVIS_SELECTED);
CString strName;
if(-1 != Idx)
{
strName = m_ctrlAreaList.GetItemText(Idx, 0);
}
else
{
return;
}
while(Pos != ZoneList.ZoneInfo.end())
{
CCharacterDoc::Zone& zone = (*Pos);
if (!_tcsicmp(strName, zone.m_szName))
{
m_fLastPosX = zone.m_fPosX;
m_fLastPosZ = zone.m_fPosZ;
m_fLastPosY = 22;
static_cast<CComboBox*>(GetDlgItem(IDC_ZONE_COMBO))->SetCurSel(zone.m_Zone - 1);
break;
}
++Pos;
}
UpdateData(false);
}
void CCharEXInfoPage::OnDelPos()
{
CCharacterDoc& CharDocument = CCharacterDoc::GetInstance();
CCharacterDoc::ZoneList& ZoneList = CharDocument.GetZoneList();
CListCtrl* lpCtrl = static_cast<CListCtrl*>(GetDlgItem(IDC_AREALIST));
int iItemCount = lpCtrl->GetNextItem(-1, LVIS_SELECTED);
TCHAR tmp[256];
CString strName = lpCtrl->GetItemText(iItemCount, 0);
_sntprintf(tmp, sizeof(tmp), _T("%s"), strName);
ZoneList.Erase(tmp);
RefreshZoneList();
}
void CCharEXInfoPage::OnUpdatePos()
{
m_eState = EDIT;
CNewAreaMatrixDlg Dlg(this);
Dlg.DoModal();
m_eState = NONE;
}
void CCharEXInfoPage::OnBnClickedNameUpdateBtn()
{
unsigned int dwNameChangeChance = GetDlgItemInt(IDC_CHARINFOEX_NAME, 0, false);
CPacketMgr::GetInstance()->SendPktNameChangeCount(m_lpModifyCharacter->GetServerGroup(),
m_lpModifyCharacter->GetCID(), (unsigned char)dwNameChangeChance);
}

View File

@@ -0,0 +1,68 @@
#pragma once
#include "afxcmn.h"
class CModifyCharacter;
/*!
\class CCharEXInfoPage
ij<><C4B3><EFBFBD><EFBFBD> <20><>Ÿ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharEXInfoPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharEXInfoPage)
public:
CCharEXInfoPage();
virtual ~CCharEXInfoPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHAREXINFOPAGE };
enum STATE
{
NONE = 1,
INSERT = 2,
EDIT = 3
};
STATE GetState() { return m_eState; }
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
private:
CModifyCharacter* m_lpModifyCharacter;
unsigned int m_dwDocKey;
CListCtrl m_ctrlAreaList;
float m_fLastPosX;
float m_fLastPosY;
float m_fLastPosZ;
float m_fStorePosX;
float m_fStorePosY;
float m_fStorePosZ;
unsigned long m_dwStoreZone;
STATE m_eState;
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnBnClickedIPosUpdate();
afx_msg void OnBnClickedRefreshAreaList();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnGivePos();
afx_msg void OnDelPos();
afx_msg void OnUpdatePos();
afx_msg void OnBnClickedNewareareg();
afx_msg void OnBnClickedNameUpdateBtn();
public:
void RefreshZoneList();
bool SetCharEXInfoPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetCharEXInfoPage(CModifyCharacter* lpModifyCharacter);
};

View File

@@ -0,0 +1,129 @@
// CharExtraItem.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharExtraItemPage.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include <Item/ItemStructure.h>
#include <Character/ModifyCharacter.h>
// CCharExtraItemPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharExtraItemPage, CPropertyPage)
CCharExtraItemPage::CCharExtraItemPage()
: CPropertyPage(CCharExtraItemPage::IDD)
{
}
CCharExtraItemPage::~CCharExtraItemPage()
{
}
void CCharExtraItemPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EXTRAITEM_LIST, m_ctrlExtraItemList);
}
BEGIN_MESSAGE_MAP(CCharExtraItemPage, CPropertyPage)
ON_BN_CLICKED(IDC_EXTRAITEM_DEFAULTING_BTN, OnBnClickedExtraitemDefaultingBtn)
ON_BN_CLICKED(IDC_EXTRAPAGE_CLIPPING_BTN, OnBnClickedExtrapageClippingBtn)
END_MESSAGE_MAP()
// CCharExtraItemPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharExtraItemPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlExtraItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlExtraItemList.InsertColumn(0, GetLocalString("ADDED_STRING_070"), LVCFMT_LEFT, 130);
m_ctrlExtraItemList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 140);
m_ctrlExtraItemList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 130);
m_ctrlExtraItemList.InsertColumn(3, GetLocalString("POS"), LVCFMT_LEFT, 190);
SetUIString(this->m_hWnd, IDC_EXTRAPAGE_01, "IDC_EXTRAPAGE_01");
SetUIString(this->m_hWnd, IDC_EXTRAITEM_DEFAULTING_BTN, "IDC_EXTRAITEM_DEFAULTING_BTN");
SetUIString(this->m_hWnd, IDC_EXTRAPAGE_CLIPPING_BTN, "IDC_EXTRAPAGE_CLIPPING_BTN");
return TRUE;
}
bool CCharExtraItemPage::SetExtraItemPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if((0 != dwDocKey) && (NULL != lpModifyCharacter))
{
m_lpModifyCharacter = lpModifyCharacter;
m_dwDocKey = dwDocKey;
GetDlgItem(IDC_EXTRAITEM_DEFAULTING_BTN)->EnableWindow(true);
return true;
}
return false;
}
void CCharExtraItemPage::SetExtraItemPage(CModifyCharacter* lpModifyCharacter)
{
if(NULL == lpModifyCharacter)
{
return;
}
Item::CListContainer& Extra = lpModifyCharacter->GetExtra();
Item::CListContainer::iterator itrCursor = Extra.begin();
Item::CListContainer::iterator itrEnd = Extra.end();
m_ctrlExtraItemList.DeleteAllItems();
Item::CItem* lpItem = NULL;
while(itrEnd != itrCursor)
{
lpItem = (*itrCursor);
if(NULL != lpItem)
{
CString strFormat;
const Item::ItemInfo& ItemInfo = lpItem->GetItemInfo();
strFormat.Format(_T("0x%016I64X"), lpItem->GetUID());
m_ctrlExtraItemList.InsertItem(0, strFormat);
strFormat.Format(_T("%s"), lpItem->GetItemTypeName());
m_ctrlExtraItemList.SetItemText(0, 1, strFormat);
strFormat.Format(_T("%s"), ItemInfo.m_SpriteData.m_szName);
m_ctrlExtraItemList.SetItemText(0, 2, strFormat);
m_ctrlExtraItemList.SetItemText(0, 3,
GetExtraSpacePosString((unsigned char)lpItem->GetPos().m_cIndex));
// <20>ߺ<EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
std::pair<CModifyCharacter::ModifyCharItemSerialInfo::iterator, bool> returnPair
= lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(lpItem->GetUID());
if(!returnPair.second)
{
lpModifyCharacter->m_OverlapSerialInfo.push_back(lpItem->GetUID());
lpModifyCharacter->SetOwnCopyItemState(true);
}
}
++itrCursor;
}
}
void CCharExtraItemPage::OnBnClickedExtraitemDefaultingBtn()
{
CPacketMgr::GetInstance()->SendItemContainerReset(m_lpModifyCharacter->GetServerGroup(),
m_lpModifyCharacter->GetUID(), m_lpModifyCharacter->GetCID(), m_dwDocKey, TakeType::TS_EXTRA);
}
void CCharExtraItemPage::OnBnClickedExtrapageClippingBtn()
{
ClippingListCtrl(m_ctrlExtraItemList, 4, true);
}

View File

@@ -0,0 +1,40 @@
#pragma once
#include "afxcmn.h"
class CModifyCharacter;
/*!
\class CCharExtraItemPage
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharExtraItemPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharExtraItemPage)
public:
CCharExtraItemPage();
virtual ~CCharExtraItemPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHAREXTRAITEMPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
CModifyCharacter* m_lpModifyCharacter;
unsigned int m_dwDocKey;
CListCtrl m_ctrlExtraItemList;
afx_msg void OnBnClickedExtraitemDefaultingBtn();
afx_msg void OnBnClickedExtrapageClippingBtn();
public:
bool SetExtraItemPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetExtraItemPage(CModifyCharacter* lpModifyCharacter);
};

View File

@@ -0,0 +1,95 @@
// CharGMLogPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharGMLogPage.h"
#include "WindowMgr.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include ".\chargmlogpage.h"
// CCharGMLogPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharGMLogPage, CPropertyPage)
CCharGMLogPage::CCharGMLogPage()
: CPropertyPage(CCharGMLogPage::IDD)
{
}
CCharGMLogPage::~CCharGMLogPage()
{
}
void CCharGMLogPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GMLOG_LIST, m_ctrlGMLogList);
}
BEGIN_MESSAGE_MAP(CCharGMLogPage, CPropertyPage)
ON_BN_CLICKED(IDC_GMLOGEDIT_BTN, OnBnClickedGmlogeditBtn)
ON_BN_CLICKED(IDC_GMLOGDELETE_BTN, OnBnClickedGmlogdeleteBtn)
END_MESSAGE_MAP()
// CCharGMLogPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharGMLogPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlGMLogList.InsertColumn(0, _T("LogID"), LVCFMT_LEFT, 20);
m_ctrlGMLogList.InsertColumn(1, GetLocalString("ADDED_STRING_039"), LVCFMT_LEFT, 100);
m_ctrlGMLogList.InsertColumn(2, GetLocalString("ADDED_STRING_040"), LVCFMT_LEFT, 130);
return TRUE;
}
void CCharGMLogPage::SetGMLogMsgPage(CModifyCharacter* lpChar)
{
CPacketMgr::GetInstance().SendPktGMLogMsg(
PktAdminMgr::PktGMLogMsg::LOG_SELECT, lpChar->GetClientKey(),
lpChar->GetServerGroup(), lpChar->GetUID(), lpChar->GetCID());
}
bool CCharGMLogPage::SetGMLogMsgPageData(unsigned int dwDocKey, CModifyCharacter* lpChar)
{
if((0 != dwDocKey) && (NULL != lpChar))
{
m_lpGMLogMsgPageInfo = lpChar;
m_dwDocKey = dwDocKey;
return true;
}
else
{
return false;
}
}
void CCharGMLogPage::OnBnClickedGmlogeditBtn()
{
if (1 == m_ctrlGMLogList.GetSelectedCount())
{
}
else
{
}
}
void CCharGMLogPage::OnBnClickedGmlogdeleteBtn()
{
if (1 == m_ctrlGMLogList.GetSelectedCount())
{
}
else
{
}
}

View File

@@ -0,0 +1,37 @@
#pragma once
#include "afxcmn.h"
// CCharGMLogPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
class CCharGMLogPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharGMLogPage)
public:
CCharGMLogPage();
virtual ~CCharGMLogPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARGMLOGPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
CListCtrl m_ctrlGMLogList;
CModifyCharacter* m_lpGMLogMsgPageInfo;
unsigned long m_dwDocKey;
afx_msg void OnBnClickedGmlogeditBtn();
afx_msg void OnBnClickedGmlogdeleteBtn();
public:
bool SetGMLogMsgPageData(unsigned int dwDocKey, CModifyCharacter* lpChar);
void SetGMLogMsgPage(CModifyCharacter* lpChar);
};

View File

@@ -0,0 +1,123 @@
// CharInfoTime.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharInfoTime.h"
#include ".\charinfotime.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include "WindowMgr.h"
#include "CharacterDoc.h"
// CCharInfoTime <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharInfoTime, CDialog)
CCharInfoTime::CCharInfoTime(CWnd* pParent /*=NULL*/)
: CDialog(CCharInfoTime::IDD, pParent)
, m_szSearchValue(_T(""))
, m_szCreateTime(_T(""))
, m_szUpdateTime(_T(""))
{
}
CCharInfoTime::~CCharInfoTime()
{
}
void CCharInfoTime::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BM_TYPECOMBO, m_ctrlSearchConditionCb);
DDX_Control(pDX, IDC_BM_SERVERCOMBO, m_ctrlServerGroupCb);
DDX_Text(pDX, IDC_SEARCHVALUE, m_szSearchValue);
DDX_Text(pDX, IDC_RESULTCREATETIME, m_szCreateTime);
DDX_Text(pDX, IDC_RESULTUPDATETIME, m_szUpdateTime);
}
BEGIN_MESSAGE_MAP(CCharInfoTime, CDialog)
ON_BN_CLICKED(IDC_CMDSEARCH, OnBnClickedCmdsearch)
ON_WM_DESTROY()
END_MESSAGE_MAP()
// CCharInfoTime <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharInfoTime::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: <20><><EFBFBD><20>߰<EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD><DBBE><EFBFBD> <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
m_ctrlSearchConditionCb.InsertString(0, _T("CID"));
m_ctrlSearchConditionCb.InsertString(1, _T("Name"));
ServerGroupComboSet(m_ctrlServerGroupCb);
SetWindowText(static_cast<LPCTSTR>(GetLocalString("ADDED_STRING_099")));
SetUIString(this->m_hWnd, IDC_CHARINFOTIME_001, "ADDED_STRING_100");
SetUIString(this->m_hWnd, IDC_CHARINFOTIME_002, "ADDED_STRING_101");
SetUIString(this->m_hWnd, IDC_CHARINFOTIME_003, "ADDED_STRING_102");
SetUIString(this->m_hWnd, IDC_CMDSEARCH, "ADDED_STRING_103");
SetUIString(this->m_hWnd, IDC_CHARINFOTIME_004, "ADDED_STRING_104");
SetUIString(this->m_hWnd, IDC_CHARINFOTIME_005, "ADDED_STRING_105");
SetUIString(this->m_hWnd, IDC_CHARINFOTIME_006, "ADDED_STRING_106");
INSERT_WINDOW(IDD_CHARINFOTIMEDLG, this);
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 CCharInfoTime::OnBnClickedCmdsearch()
{
// TODO: <20><><EFBFBD><20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
UpdateData(TRUE);
unsigned char SearchType = static_cast<unsigned char>(m_ctrlSearchConditionCb.GetCurSel());
unsigned long ServerGroup = 0;
CString strServerName;
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strServerName);
CCharacterDoc::GetInstance().GetServerIndex(strServerName, ServerGroup);
// <20>˻<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƹ<EFBFBD><C6B9>͵<EFBFBD> <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD>.
if(0xFF == SearchType)
{
MessageBox(GetLocalString("ADDED_STRING_111"), "Notifiacation", MB_ICONINFORMATION);
return;
}
// <20><><EFBFBD><EFBFBD> <20>׷<EFBFBD><D7B7><EFBFBD> <20>ƹ<EFBFBD><C6B9>͵<EFBFBD> <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD>.
if(CB_ERR == ServerGroup)
{
MessageBox(GetLocalString("ADDED_STRING_112"), "Notification", MB_ICONINFORMATION);
return;
}
// <20>˻<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD>.
if(0 == m_szSearchValue.GetLength())
{
MessageBox(GetLocalString("ADDED_STRING_113"), "Notification", MB_ICONINFORMATION);
return;
}
m_szCreateTime.Empty();
m_szUpdateTime.Empty();
UpdateData(FALSE);
if(FALSE == CPacketMgr::GetInstance()->SendSearchCharInfoTime(SearchType, ServerGroup, m_szSearchValue))
{
Report(GetLocalString("ADDED_STRING_109"), FAILED);
}
}
void CCharInfoTime::OnDestroy()
{
CDialog::OnDestroy();
// TODO: <20><><EFBFBD><20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
ERASE_WINDOW(IDD_CHARINFOTIMEDLG);
}

View File

@@ -0,0 +1,35 @@
#pragma once
#include "afxwin.h"
/*!
\class CCharInfoTime
ij<><C4B3><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CCharInfoTime : public CDialog
{
DECLARE_DYNAMIC(CCharInfoTime)
public:
CCharInfoTime(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CCharInfoTime();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARINFOTIMEDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
protected:
CComboBox m_ctrlSearchConditionCb;
CComboBox m_ctrlServerGroupCb;
public:
CString m_szSearchValue;
CString m_szCreateTime;
CString m_szUpdateTime;
afx_msg void OnBnClickedCmdsearch();
afx_msg void OnDestroy();
};

View File

@@ -0,0 +1,776 @@
// CharInventoryPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "ListCtrlSortClass.h"
#include "CharInventoryPage.h"
#include "GridControlFactory.h"
#include "ItemManageDlg.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include <stdlib.h>
#include <Utility/Math/Math.h>
#include <Item/Item.h>
#include <Item/Container/ItemContainer.h>
#include <Character/ModifyCharacter.h>
#include <Network/Protocol/Ryl_AdminMgrProtocol.h>
// CCharInventoryPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharInventoryPage, CPropertyPage)
CCharInventoryPage::CCharInventoryPage()
: CPropertyPage(CCharInventoryPage::IDD)
, m_lpInventoryPageInfo( NULL )
, m_dwInventoryGold(0)
, m_dwDocKey(0)
, m_InInventoryList(false)
, m_InEquipList(false)
, m_bSortListAsc(false)
{
}
CCharInventoryPage::~CCharInventoryPage()
{
}
void CCharInventoryPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_INVENTORYTAB, m_ctrlInventoryTab);
DDX_Control(pDX, IDC_EQUIPITEMLIST, m_ctrlEquipItemList);
DDX_Control(pDX, IDC_INVENTORYITEMLIST, m_ctrlInventoryItemList);
DDX_Text(pDX, IDC_INVENTORY_GOLD, m_dwInventoryGold);
}
BEGIN_MESSAGE_MAP(CCharInventoryPage, CPropertyPage)
ON_WM_CONTEXTMENU()
ON_NOTIFY(NM_CLICK, MSG_INVENTORY_GRID, OnInventoryGridClick)
ON_NOTIFY(NM_DBLCLK, MSG_INVENTORY_GRID, OnInventoryGridDblClick)
ON_NOTIFY(TCN_SELCHANGE, IDC_INVENTORYTAB, OnTcnSelchangeInventorytab)
ON_BN_CLICKED(IDC_ITEMMAKE, OnBnClickedItemmake)
ON_NOTIFY(NM_DBLCLK, IDC_EQUIPITEMLIST, OnNMDblclkEquipitemlist)
ON_NOTIFY(NM_DBLCLK, IDC_INVENTORYITEMLIST, OnNMDblclkInventoryitemlist)
ON_COMMAND(ID_INVENITEMEDIT, OnUpdateItem)
ON_COMMAND(ID_INVENITEMREMOVE, OnRemoveItem)
ON_BN_CLICKED(IDC_EQUIP_RESET, OnBnClickedEquipReset)
ON_BN_CLICKED(IDC_INVEN_RESET, OnBnClickedInvenReset)
ON_BN_CLICKED(IDC_INVENGOLD_UPDATE, OnBnClickedInvenGoldUpdate)
ON_COMMAND(ID_STORE_COPY, OnStoreCopy)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_EQUIPITEMLIST, OnLvnColumnclickitemlist)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_INVENTORYITEMLIST, OnLvnColumnclickitemlist)
ON_BN_CLICKED(IDC_INVENPAGE_EQUIPCLIP_BTN, OnBnClickedInvenpageEguipclipBtn)
ON_BN_CLICKED(IDC_INVENPAGE_INVENCLIP_BTN, OnBnClickedInvenpageInvenclipBtn)
END_MESSAGE_MAP()
// CCharInventoryPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharInventoryPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
CRect rcGrid;
rcGrid.left = 23; rcGrid.top = 55; rcGrid.right = 209; rcGrid.bottom = 240;
m_ctrlInventoryGrid.Create(rcGrid, this, MSG_INVENTORY_GRID, WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE);
InitializeItemGrid(m_ctrlInventoryGrid, 6, 6, FALSE, FALSE,
RGB(0, 0, 0), RGB(215, 247, 255), RGB(172, 172, 172));
m_ctrlInventoryGrid.EnableSelection( FALSE );
m_ctrlInventoryTab.InsertItem(0, _T("<EFBFBD><EFBFBD>"), 0);
m_ctrlInventoryTab.InsertItem(1, _T("<EFBFBD><EFBFBD>"), 0);
m_ctrlInventoryTab.InsertItem(2, _T("<EFBFBD><EFBFBD>"), 0);
m_ctrlInventoryTab.InsertItem(3, _T("<EFBFBD><EFBFBD>"), 0);
m_ctrlEquipItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlInventoryItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlEquipItemList.InsertColumn(0, GetLocalString("SERIAL"), LVCFMT_LEFT, 130);
m_ctrlEquipItemList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 123);
m_ctrlEquipItemList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 85);
m_ctrlEquipItemList.InsertColumn(3, GetLocalString("POS"), LVCFMT_LEFT, 50);
m_ctrlEquipItemList.InsertColumn(4, GetLocalString("QTY"), LVCFMT_LEFT, 50);
m_ctrlInventoryItemList.InsertColumn(0, GetLocalString("SERIAL"), LVCFMT_LEFT, 130);
m_ctrlInventoryItemList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 123);
m_ctrlInventoryItemList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 85);
m_ctrlInventoryItemList.InsertColumn(3, GetLocalString("POS"), LVCFMT_LEFT, 50);
m_ctrlInventoryItemList.InsertColumn(4, GetLocalString("QTY"), LVCFMT_LEFT, 50);
SetUIString(this->m_hWnd, IDC_INVENPAGE_01, "IDC_INVENPAGE_01");
SetUIString(this->m_hWnd, IDC_INVENPAGE_02, "IDC_INVENPAGE_02");
SetUIString(this->m_hWnd, IDC_INVENPAGE_03, "IDC_INVENPAGE_03");
SetUIString(this->m_hWnd, IDC_INVENPAGE_04, "IDC_INVENPAGE_04");
SetUIString(this->m_hWnd, IDC_INVENGOLD_UPDATE, "IDC_INVENGOLD_UPDATE");
SetUIString(this->m_hWnd, IDC_EQUIP_RESET, "IDC_EQUIP_RESET");
SetUIString(this->m_hWnd, IDC_INVENPAGE_EQUIPCLIP_BTN, "IDC_INVENPAGE_EQUIPCLIP_BTN");
SetUIString(this->m_hWnd, IDC_INVEN_RESET, "IDC_INVEN_RESET");
SetUIString(this->m_hWnd, IDC_INVENPAGE_INVENCLIP_BTN, "IDC_INVENPAGE_INVENCLIP_BTN");
return TRUE;
}
bool CCharInventoryPage::SetInventoryPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharInfo)
{
if((0 != dwDocKey) && (NULL != lpModifyCharInfo))
{
m_lpInventoryPageInfo = lpModifyCharInfo;
m_dwDocKey = dwDocKey;
GetDlgItem(IDC_INVENGOLD_UPDATE)->EnableWindow(true);
GetDlgItem(IDC_EQUIP_RESET)->EnableWindow(true);
GetDlgItem(IDC_INVEN_RESET)->EnableWindow(true);
GetDlgItem(IDC_INVENPAGE_EQUIPCLIP_BTN)->EnableWindow(true);
GetDlgItem(IDC_INVENPAGE_INVENCLIP_BTN)->EnableWindow(true);
return true;
}
else
{
return false;
}
}
// <20>κ<EFBFBD><CEBA><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
void CCharInventoryPage::SetInventoryPage(CModifyCharacter* lpModifyCharInfo)
{
SetEquip(lpModifyCharInfo);
SetInventoryItem(lpModifyCharInfo);
}
// <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD>
void CCharInventoryPage::SetEquip(CModifyCharacter* lpModifyCharacter)
{
m_ctrlEquipItemList.DeleteAllItems();
if(NULL == lpModifyCharacter) return;
Item::CEquipmentsContainer& Equip = lpModifyCharacter->GetEquipments();
Item::CItemContainer::iterator Itr = Equip.begin();
while(Itr != Equip.end())
{
Item::CItem* lpEquipItem = (*Itr);
if(NULL != lpEquipItem)
{
CString serial(_T("0x"));
CString quantity;
CString realItemPos;
Item::ItemPos ItemPos = lpEquipItem->GetPos();
quantity.Format(_T("%d"), lpEquipItem->GetNumOrDurability());
realItemPos.Format(_T("X:%d Y:%d Z:%d"), ItemPos.GetXIndex(), ItemPos.GetYIndex(), ItemPos.GetZIndex());
serial.AppendFormat(_T("%016I64X"), lpEquipItem->GetUID());
const Item::ItemInfo& ItemInfo = lpEquipItem->GetItemInfo( );
m_ctrlEquipItemList.InsertItem(0, serial);
m_ctrlEquipItemList.SetItemText(0, 1, (LPCTSTR)ItemInfo.m_SpriteData.m_szName);
m_ctrlEquipItemList.SetItemText(0, 2, (LPCTSTR)lpEquipItem->GetItemTypeName());
m_ctrlEquipItemList.SetItemText(0, 3, realItemPos);
m_ctrlEquipItemList.SetItemText(0, 4, quantity);
// <20>ߺ<EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
std::pair<CModifyCharacter::ModifyCharItemSerialInfo::iterator, bool> returnPair
= lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(lpEquipItem->GetUID());
if(!returnPair.second)
{
lpModifyCharacter->m_OverlapSerialInfo.push_back(lpEquipItem->GetUID());
lpModifyCharacter->SetOwnCopyItemState(true);
}
}
++Itr;
}
}
// <09>κ<EFBFBD><CEBA><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD>Ѱ<EFBFBD> <20>׸<EFBFBD><D7B8><20><><EFBFBD><EFBFBD>
void CCharInventoryPage::SetInventoryItem(CModifyCharacter* lpModifyCharacter)
{
m_ctrlInventoryGrid.DeleteAllItems();
m_ctrlInventoryItemList.DeleteAllItems();
InitializeItemGrid(m_ctrlInventoryGrid,
6, 6, FALSE, FALSE, RGB(0, 0, 0), RGB(215, 247, 255), RGB(172, 172, 172));
if (NULL == lpModifyCharacter)
{
return;
}
Item::CArrayContainer& Inventory = lpModifyCharacter->GetInventory();
Item::CArrayContainer::iterator Itr = Inventory.begin();
Item::CItem* InventoryItem = NULL;
m_dwInventoryGold = lpModifyCharacter->GetGold();
while(Itr != Inventory.end())
{
InventoryItem = (*Itr);
if (NULL != InventoryItem)
{
CString strItemSerial(_T("0x")), strQty, strItemPos;
Item::ItemPos ItemPos = InventoryItem->GetPos();
strQty.Format(_T("%d"), InventoryItem->GetNumOrDurability());
strItemPos.Format(_T("X:%d Y:%d Z:%d"),
ItemPos.GetXIndex(), ItemPos.GetYIndex(), ItemPos.GetZIndex());
strItemSerial.AppendFormat(_T("%016I64X"), InventoryItem->GetUID());
const Item::ItemInfo& ItemInfo = InventoryItem->GetItemInfo();
m_ctrlInventoryItemList.InsertItem(0, strItemSerial);
m_ctrlInventoryItemList.SetItemText(0, 1, (LPCTSTR)ItemInfo.m_SpriteData.m_szName);
m_ctrlInventoryItemList.SetItemText(0, 2, (LPCTSTR)InventoryItem->GetItemTypeName());
m_ctrlInventoryItemList.SetItemText(0, 3, strItemPos);
m_ctrlInventoryItemList.SetItemText(0, 4, strQty);
InventoryGridSet(InventoryItem, m_ctrlInventoryTab.GetCurSel());
std::pair<CModifyCharacter::ModifyCharItemSerialInfo::iterator, bool> returnPair
= lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(InventoryItem->GetUID());
if(!returnPair.second)
{
lpModifyCharacter->m_OverlapSerialInfo.push_back(InventoryItem->GetUID());
lpModifyCharacter->SetOwnCopyItemState(true);
}
}
++Itr;
}
UpdateData(false);
}
void CCharInventoryPage::InventoryGridSet(Item::CItem* InventoryItem, unsigned int nTab)
{
Item::ItemPos ItemPos = InventoryItem->GetPos();
const Item::ItemInfo& ItemInfo = InventoryItem->GetItemInfo();
if (nTab == ItemPos.GetZIndex())
{
CString strItemToolTip;
unsigned int nItemPosX = ItemPos.GetXIndex();
unsigned int nItemPosY = ItemPos.GetYIndex();
unsigned int nItemSizeX = ItemInfo.m_DetailData.m_cXSize;
unsigned int nItemSizeY = ItemInfo.m_DetailData.m_cYSize;
strItemToolTip.Format(GetLocalString("FORMAT_002"),
ItemInfo.m_SpriteData.m_szName, InventoryItem->GetUID());
m_ctrlInventoryGrid.SetItemText(nItemPosY, nItemPosX, strItemToolTip);
for (unsigned int nPosX = nItemPosX; nPosX < (nItemPosX + nItemSizeX); nPosX++)
{
for (unsigned int nPosY = nItemPosY; nPosY < (nItemPosY + nItemSizeY); nPosY++)
{
m_ctrlInventoryGrid.SetItemBkColour(nPosY, nPosX,
GetItemTypeColor(Item::ItemType::Type(ItemInfo.m_DetailData.m_cItemType)));
}
}
m_ctrlInventoryGrid.Invalidate();
}
}
void CCharInventoryPage::OnTcnSelchangeInventorytab(NMHDR *pNMHDR, LRESULT *pResult)
{
if (NULL == m_lpInventoryPageInfo)
{
return;
}
m_ctrlInventoryGrid.DeleteAllItems();
InitializeItemGrid(m_ctrlInventoryGrid,
6, 6, FALSE, FALSE, RGB(0, 0, 0), RGB(215, 247, 255), RGB(172, 172, 172));
if (NULL != m_lpInventoryPageInfo)
{
Item::CArrayContainer& Inventory = m_lpInventoryPageInfo->GetInventory();
Item::CArrayContainer::iterator Itr = Inventory.begin();
Item::CItem* InventoryItem = NULL;
while(Itr != Inventory.end())
{
InventoryItem = (*Itr);
if (NULL != InventoryItem)
{
Item::ItemPos Pos = InventoryItem->GetPos();
if (Pos.GetZIndex() == m_ctrlInventoryTab.GetCurSel())
{
switch(m_ctrlInventoryTab.GetCurSel())
{
case 0: InventoryGridSet(InventoryItem, 0); break;
case 1: InventoryGridSet(InventoryItem, 1); break;
case 2: InventoryGridSet(InventoryItem, 2); break;
case 3: InventoryGridSet(InventoryItem, 3); break;
default:
Report(GetLocalString("MSG_0116"), FAILED);
break;
}
}
}
++Itr;
}
}
*pResult = 0;
}
// <09>κ<EFBFBD><CEBA><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؽ<EFBFBD>Ʈ <20>޴<EFBFBD>
void CCharInventoryPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
if (((pWnd->GetSafeHwnd() == m_ctrlEquipItemList.GetSafeHwnd()) && (m_ctrlEquipItemList.GetSelectedCount() == 1) ) ||
((pWnd->GetSafeHwnd() == m_ctrlInventoryItemList.GetSafeHwnd()) && (m_ctrlInventoryItemList.GetSelectedCount() == 1)))
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(6);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_INVENITEMEDIT, GetLocalString("MENU_024"));
pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_INVENITEMREMOVE, GetLocalString("MENU_025"));
pContextMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, ID_STORE_COPY, GetLocalString("MENU_026"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
if (pWnd->GetSafeHwnd() == m_ctrlEquipItemList.GetSafeHwnd()) m_InEquipList = true;
if (pWnd->GetSafeHwnd() == m_ctrlInventoryItemList.GetSafeHwnd()) m_InInventoryList = true;
}
}
// <09>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ ó<><C3B3>
void CCharInventoryPage::OnInventoryGridDblClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/)
{
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
m_ctrlInventoryGrid.Invalidate();
}
// <09>׸<EFBFBD><D7B8><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ ó<><C3B3>
void CCharInventoryPage::OnInventoryGridClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/)
{
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
if (true == g_bItemGrab)
{
/* 2005-06-16 QA<51><41> <20><>û
if (3 == m_ctrlInventoryTab.GetCurSel())
{
Report(GetLocalString("ADDED_STRING_059"), CAUTION);
return;
}
*/
g_stMyItemInfo.m_stItemInfo.m_cTakePos = TakeType::TS_INVEN;
g_stMyItemInfo.m_stItemInfo.m_cXPos = pItem->iColumn;
g_stMyItemInfo.m_stItemInfo.m_cYPos = pItem->iRow;
g_stMyItemInfo.m_stItemInfo.m_cZPos = m_ctrlInventoryTab.GetCurSel();
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǻ<EFBFBD><C7BA><EFBFBD> <20><><EFBFBD><EFBFBD>
CPoint GrabbedItemPos, GrabbedItemSize;
GrabbedItemPos.x = g_stMyItemInfo.m_stItemInfo.m_cXPos;
GrabbedItemPos.y = g_stMyItemInfo.m_stItemInfo.m_cYPos;
GrabbedItemSize.x = g_stMyItemInfo.m_SizeX;
GrabbedItemSize.y = g_stMyItemInfo.m_SizeY;
if (NULL != m_lpInventoryPageInfo && NULL != m_dwDocKey)
{
if (TRUE == IsEnableItemDrop(GrabbedItemPos, GrabbedItemSize))
{
CPacketMgr::GetInstance()->SendCreateItem(m_lpInventoryPageInfo->GetServerGroup(),
m_lpInventoryPageInfo->GetCID(), m_lpInventoryPageInfo->GetUID(),
m_dwDocKey, g_stMyItemInfo.m_stItemInfo);
if (g_stMyItemInfo.m_nModeIndex == g_stMyItemInfo.CREATE_SINGLE)
{
g_bItemGrab = FALSE;
}
}
else
{
Report(GetLocalString("MSG_0117"), CAUTION);
}
}
else
{
Report(GetLocalString("MSG_0118"), CAUTION);
}
}
}
// <09>ش<EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20>׸<EFBFBD><D7B8><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><> <20>Ǻ<EFBFBD><C7BA>ϴ<EFBFBD> <20>Լ<EFBFBD>
BOOL CCharInventoryPage::IsEnableItemDrop(CPoint selGridCoordinates, CPoint selItemSize)
{
int nIsEnableCell = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20>׸<EFBFBD><D7B8><EFBFBD> <20>˻<EFBFBD><CBBB><EFBFBD> 6 X 6 <20><> <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EEB3AA> <20>ʵ<EFBFBD><CAB5><EFBFBD> <20>ʱ<EFBFBD>ȭ
int maxGridSearchColumn =
(selGridCoordinates.x + selItemSize.x > 5) ? 6 : selGridCoordinates.x + selItemSize.x;
int maxGridSearchRow =
(selGridCoordinates.y + selItemSize.y > 5) ? 6 : selGridCoordinates.y + selItemSize.y;
// <20>׸<EFBFBD><D7B8><EFBFBD> <20>˻<EFBFBD>
for (int nColumn = selGridCoordinates.x; nColumn < maxGridSearchColumn; nColumn++)
{
for (int nRow = selGridCoordinates.y; nRow < maxGridSearchRow; nRow++)
{
COLORREF clrDefaultCellColor = RGB(215, 247, 255);
// <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ä<><C3A4><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD>)<29><><EFBFBD><EFBFBD> Ȯ<><C8AE>
if (4278190080 == m_ctrlInventoryGrid.GetItemBkColour(nRow, nColumn))
nIsEnableCell++;
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9> <20><>ŭ<EFBFBD><C5AD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE <20><><EFBFBD><EFBFBD>, <20>ƴϸ<C6B4> FALSE <20><><EFBFBD><EFBFBD>
if (nIsEnableCell == (selItemSize.x * selItemSize.y))
return TRUE;
else
return FALSE;
}
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ư Ŭ<><C5AC>
void CCharInventoryPage::OnBnClickedItemmake()
{
CItemManageDlg dlg(CItemManageDlg::CREATE);
dlg.DoModal();
}
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
void CCharInventoryPage::OnUpdateItem()
{
int Index;
unsigned __int64 ItemID = 0;
TCHAR szItemName[255];
TCHAR szTmp[50];
unsigned char cTakeType;
UpdateData(true);
if (true == m_InEquipList)
{
cTakeType = TakeType::TS_EQUIP;
Index = m_ctrlEquipItemList.GetNextItem(-1, LVIS_SELECTED);
if (-1 != Index)
{
m_ctrlEquipItemList.GetItemText(Index, 0, szTmp, sizeof(szTmp));
m_ctrlEquipItemList.GetItemText(Index, 1, szItemName, sizeof(szItemName));
ItemID = Math::Convert::StrToHex64(szTmp);
}
}
else if (true == m_InInventoryList)
{
cTakeType = TakeType::TS_INVEN;
Index = m_ctrlInventoryItemList.GetNextItem(-1, LVIS_SELECTED);
if (-1 != Index)
{
m_ctrlInventoryItemList.GetItemText(Index, 0, szTmp, sizeof(szTmp));
m_ctrlInventoryItemList.GetItemText(Index, 1, szItemName, sizeof(szItemName));
ItemID = Math::Convert::StrToHex64(szTmp);
const Item::ItemInfo *ItemInfo =
Item::CItemMgr::GetInstance().GetItemInfoFromItemName(szItemName);
if (NULL == ItemInfo)
{
Report(GetLocalString("ADDED_STRING_060"), FAILED);
return;
}
/* 2005-06-16 QA<51><41> <20><>û
else if(Item::ItemType::QUEST_ITEM == ItemInfo->m_DetailData.m_cItemType)
{
Report(GetLocalString("ADDED_STRING_061"), FAILED);
return;
}
*/
}
}
if ((NULL != m_lpInventoryPageInfo) && (ItemID != 0) && (NULL != m_dwDocKey))
{
g_stMyItemInfo.m_nModeIndex = MyItemInfo::EDIT;
g_stMyItemInfo.m_dwItemSerial = ItemID;
_tcscpy(g_stMyItemInfo.m_szItemName, szItemName);
g_stMyItemInfo.m_cTakeType = cTakeType;
g_stMyItemInfo.m_lpModifyCharInfo = m_lpInventoryPageInfo;
g_stMyItemInfo.m_dwDocKey = m_dwDocKey;
Item::CItem* lpItem = g_stMyItemInfo.m_lpModifyCharInfo->UIDbyItem(ItemID, cTakeType);
//g_stMyItemInfo.m_stItemInfo = lpItem->GetItemInfo();
CItemManageDlg dlg(CItemManageDlg::EDIT);
dlg.DoModal();
}
m_InEquipList = m_InInventoryList = false;
}
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
void CCharInventoryPage::OnRemoveItem()
{
int Index;
unsigned __int64 ItemID = 0;
TCHAR szItemName[256];
TCHAR szTmp[50];
unsigned char cTakeType;
UpdateData(true);
if (true == m_InEquipList)
{
cTakeType = TakeType::TS_EQUIP;
Index = m_ctrlEquipItemList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
m_ctrlEquipItemList.GetItemText(Index, 0, szTmp, 50);
m_ctrlEquipItemList.GetItemText(Index, 1, szItemName, 256);
ItemID = Math::Convert::StrToHex64(szTmp);
}
}
else if (true == m_InInventoryList)
{
cTakeType = TakeType::TS_INVEN;
Index = m_ctrlInventoryItemList.GetNextItem(-1, LVIS_SELECTED);
if (-1 != Index)
{
m_ctrlInventoryItemList.GetItemText(Index, 0, szTmp, 50);
m_ctrlInventoryItemList.GetItemText(Index, 1, szItemName, 256);
ItemID = Math::Convert::StrToHex64(szTmp);
const Item::ItemInfo *ItemInfo =
Item::CItemMgr::GetInstance().GetItemInfoFromItemName(szItemName);
if (NULL == ItemInfo)
{
Report(GetLocalString("ADDED_STRING_060"), FAILED);
return;
}
/* 2005-06-16 QA<51><41> <20><>û
else if(Item::ItemType::QUEST_ITEM == ItemInfo->m_DetailData.m_cItemType)
{
Report(GetLocalString("ADDED_STRING_062"), FAILED);
return;
}
*/
}
}
if ((NULL != m_lpInventoryPageInfo) && (ItemID != 0) && (NULL != m_dwDocKey))
{
g_stMyItemInfo.m_nModeIndex = MyItemInfo::REMOVE;
g_stMyItemInfo.m_dwItemSerial = ItemID;
CopyMemory(g_stMyItemInfo.m_szItemName, szItemName, 256);
g_stMyItemInfo.m_cTakeType = cTakeType;
g_stMyItemInfo.m_lpModifyCharInfo = m_lpInventoryPageInfo;
g_stMyItemInfo.m_dwDocKey = m_dwDocKey;
Item::CItem* lpItem = m_lpInventoryPageInfo->UIDbyItem(ItemID, cTakeType);
Item::ItemPos stItemPos = lpItem->GetPos();
CPacketMgr::GetInstance()->SendRemoveItem(
m_lpInventoryPageInfo->GetServerGroup(), m_lpInventoryPageInfo->GetCID(),
m_lpInventoryPageInfo->GetUID(), m_dwDocKey, ItemID, lpItem->GetPrototypeID(), stItemPos);
}
m_InEquipList = m_InInventoryList = false;
}
void CCharInventoryPage::PostNcDestroy()
{
m_ctrlInventoryGrid.DestroyWindow();
CPropertyPage::PostNcDestroy();
}
void CCharInventoryPage::OnNMDblclkEquipitemlist(NMHDR *pNMHDR, LRESULT *pResult)
{
if(1 == m_ctrlEquipItemList.GetSelectedCount())
{
m_InEquipList = true;
OnUpdateItem();
}
*pResult = 0;
}
void CCharInventoryPage::OnNMDblclkInventoryitemlist(NMHDR *pNMHDR, LRESULT *pResult)
{
if(1 == m_ctrlInventoryItemList.GetSelectedCount())
{
m_InInventoryList = true;
OnUpdateItem();
}
*pResult = 0;
}
void CCharInventoryPage::OnBnClickedEquipReset()
{
CPacketMgr::GetInstance()->SendItemContainerReset(m_lpInventoryPageInfo->GetServerGroup(),
m_lpInventoryPageInfo->GetUID(), m_lpInventoryPageInfo->GetCID(), m_dwDocKey, TakeType::TS_EQUIP);
}
void CCharInventoryPage::OnBnClickedInvenReset()
{
CPacketMgr::GetInstance()->SendItemContainerReset(m_lpInventoryPageInfo->GetServerGroup(),
m_lpInventoryPageInfo->GetUID(), m_lpInventoryPageInfo->GetCID(), m_dwDocKey, TakeType::TS_INVEN);
}
void CCharInventoryPage::OnBnClickedInvenGoldUpdate()
{
UpdateData(true);
CPacketMgr::GetInstance()->SendInvenGold(
m_lpInventoryPageInfo->GetUID(), m_lpInventoryPageInfo->GetCID(),
m_lpInventoryPageInfo->GetServerGroup(), m_dwDocKey, m_dwInventoryGold);
}
void CCharInventoryPage::OnStoreCopy()
{
CListCtrl* lpItemList;
unsigned char cTakeType;
__int64 ItemUID;
TCHAR szTmp[256];
if (true == m_InEquipList)
{
cTakeType = TakeType::TS_EQUIP;
lpItemList = &m_ctrlEquipItemList;
}
else if (true == m_InInventoryList)
{
cTakeType = TakeType::TS_INVEN;
lpItemList = &m_ctrlInventoryItemList;
}
else
{
return;
}
int Index = lpItemList->GetNextItem(-1, LVIS_SELECTED);
if (-1 < Index)
{
lpItemList->GetItemText(Index, 0, szTmp, sizeof(szTmp));
ItemUID = Math::Convert::StrToHex64( szTmp );
}
else
{
Report(GetLocalString("MSG_0119"), FAILED);
return;
}
PktAdminMgr::CreateItemInfo MkStoreInfo;
Item::CItem* lpItem = m_lpInventoryPageInfo->UIDbyItem(ItemUID, cTakeType);
if (NULL != lpItem)
{
MkStoreInfo.m_cNumOrDurability = lpItem->GetNumOrDurability();
Item::CEquipment* lpEquipment = Item::CEquipment::DowncastToEquipment(lpItem);
if (NULL != lpEquipment)
{
for(int nIndex = 0; nIndex < Item::EquipmentInfo::MAX_RUNE_SOCKET_NUM; ++nIndex)
{
MkStoreInfo.m_usRuneSocket[nIndex] = lpEquipment->GetRuneSocket(nIndex);
}
MkStoreInfo.m_cMaxDurability = lpEquipment->GetMaxNumOrDurability();
MkStoreInfo.m_cCurrentSocketNum = lpEquipment->GetCurrentSocketNum();
MkStoreInfo.m_cMaxSocketNum = lpEquipment->GetMaxSocketNum();
MkStoreInfo.m_cUpgradeLevel = lpEquipment->GetUpgradeLevel();
MkStoreInfo.m_cSeasonRecord = lpEquipment->GetSeasonRecord();
MkStoreInfo.m_cCoreLevel = lpEquipment->GetCoreLevel();
lpEquipment->GetAttribute(MkStoreInfo.m_usAttribute, sizeof(MkStoreInfo.m_usAttribute));
lpEquipment->GetSocket(MkStoreInfo.m_cSocket, sizeof(MkStoreInfo.m_cSocket));
}
}
char StoreBuffer[PktAdminMgr::PktAdminStoreInsert::MAX_ITEM_INFO];
TCHAR szItemName[64];
unsigned long dwStoreBufferLength = 0;
_tcsncpy(szItemName, CONV_CLISTR(lpItem->GetItemInfo().m_SpriteData.m_szName), 64);
MkStoreInfo.AdminStore_Out(StoreBuffer, dwStoreBufferLength);
CPacketMgr::GetInstance()->SendPktAdminStoreInsert(
(unsigned char)m_lpInventoryPageInfo->GetServerGroup(),
CONV_CLISTR(m_lpInventoryPageInfo->GetName()), szItemName, StoreBuffer);
m_InEquipList = m_InInventoryList = false;
}
void CCharInventoryPage::OnLvnColumnclickitemlist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
if(pNMLV->hdr.idFrom == IDC_EQUIPITEMLIST)
{
SortListWndItem(&m_ctrlEquipItemList, m_iSortListItem);
}
else if(pNMLV->hdr.idFrom == IDC_INVENTORYITEMLIST)
{
SortListWndItem(&m_ctrlInventoryItemList, m_iSortListItem);
}
*pResult = 0;
}
void CCharInventoryPage::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::SERIAL:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::NAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::TYPE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::COORDINATE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::QUANTITY:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
}
}
void CCharInventoryPage::OnBnClickedInvenpageEguipclipBtn()
{
ClippingListCtrl(m_ctrlEquipItemList, 5, true);
}
void CCharInventoryPage::OnBnClickedInvenpageInvenclipBtn()
{
ClippingListCtrl(m_ctrlInventoryItemList, 5, true);
}

View File

@@ -0,0 +1,85 @@
#pragma once
#include "../GridControl/GridCtrl_src/GridCtrl.h"
#include "afxwin.h"
//#include "afxcmn.h"
#define MSG_INVENTORY_GRID WM_USER + 1
// CCharInventoryPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
namespace Item
{
class CItem;
};
class CModifyCharacter;
/*!
\class CCharInventoryPage
ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharInventoryPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharInventoryPage)
public:
CCharInventoryPage();
virtual ~CCharInventoryPage();
enum { IDD = IDD_CHARINVENTORYPAGE };
enum SORT_TYPE{ SERIAL, NAME, TYPE, COORDINATE, QUANTITY };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void PostNcDestroy();
private:
bool m_InInventoryList;
bool m_InEquipList;
bool m_bSortListAsc;
int m_iSortListItem;
CModifyCharacter* m_lpInventoryPageInfo;
unsigned int m_dwDocKey;
CGridCtrl m_ctrlInventoryGrid;
CTabCtrl m_ctrlInventoryTab;
CListCtrl m_ctrlEquipItemList;
CListCtrl m_ctrlInventoryItemList;
unsigned long m_dwInventoryGold;
afx_msg void OnInventoryGridClick(NMHDR *pNotifyStruct, LRESULT* pResult);
afx_msg void OnInventoryGridDblClick(NMHDR *pNotifyStruct, LRESULT* pResult);
afx_msg void OnTcnSelchangeInventorytab(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnBnClickedItemmake();
afx_msg void OnNMDblclkEquipitemlist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMDblclkInventoryitemlist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnColumnclickitemlist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnUpdateItem();
afx_msg void OnRemoveItem();
afx_msg void OnBnClickedEquipReset();
afx_msg void OnBnClickedInvenReset();
afx_msg void OnBnClickedInvenGoldUpdate();
afx_msg void OnStoreCopy();
afx_msg void OnBnClickedInvenpageEguipclipBtn();
afx_msg void OnBnClickedInvenpageInvenclipBtn();
void SortListWndItem(CListCtrl *lpListCtrl, const int iCol);
void SetInventoryItem(CModifyCharacter* lpModifyCharacter);
void SetEquip(CModifyCharacter* lpModifyCharacter);
void InventoryGridSet(Item::CItem* InventoryItem, unsigned int nTab);
BOOL IsEnableItemDrop(CPoint selGridCoordinates, CPoint selItemSize);
public:
bool SetInventoryPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetInventoryPage(CModifyCharacter* lpModifyCharacter);
};

View File

@@ -0,0 +1,669 @@
// CharItemStorePage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharItemStorePage.h"
#include "GridControlFactory.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include "ListCtrlSortClass.h"
#include "ItemManageDlg.h"
#include <Item/Container/DepositContainer.h>
#include <Item/Container/ContainerConstant.h>
#include <Character/ModifyCharacter.h>
#include <Utility/Math/Math.h>
// CCharItemStorePage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharItemStorePage, CPropertyPage)
CCharItemStorePage::CCharItemStorePage()
: CPropertyPage(CCharItemStorePage::IDD)
, m_dwStoreGold(0)
, m_strStorePass(_T("0000"))
, m_dwDocKey(0)
, m_lpStorePageInfo(NULL)
, m_bSortListAsc(false)
{
}
CCharItemStorePage::~CCharItemStorePage()
{
}
void CCharItemStorePage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_ITEMSTORETAB, m_ctrlItemStoreTab);
DDX_Control(pDX, IDC_ITEMSTORELIST, m_ctrlItemStoreItemList);
DDX_Text(pDX, IDC_STORE_GOLD, m_dwStoreGold);
DDX_Text(pDX, IDC_STORE_PASS, m_strStorePass);
DDX_Control(pDX, IDC_TABNUM_CB, m_ctrlTabNumCb);
}
BEGIN_MESSAGE_MAP(CCharItemStorePage, CPropertyPage)
ON_WM_CONTEXTMENU()
ON_NOTIFY(NM_CLICK, CHAR_STORE_ITEM, OnStoreGridClick)
ON_NOTIFY(NM_DBLCLK, IDC_ITEMSTORELIST, OnNMDblclkItemstorelist)
ON_NOTIFY(TCN_SELCHANGE, IDC_ITEMSTORETAB, OnTcnSelchangeItemstoretab)
ON_COMMAND(ID_STOREITEM_EDIT, OnStoreitemUpdate)
ON_COMMAND(ID_STOREITEM_REMOVE, OnStoreitemRemove)
ON_COMMAND(ID_STORE_COPY, OnStoreCopy)
ON_BN_CLICKED(IDC_STORERESET, OnBnClickedStoreResetBtn)
ON_BN_CLICKED(IDC_STOREPASS_EDIT, OnBnClickedStorePassEdit)
ON_BN_CLICKED(IDC_STOREGOLD_UPDATE, OnBnClickedStoregoldUpdate)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_ITEMSTORELIST, OnLvnColumnclickItemstorelist)
ON_BN_CLICKED(IDC_STOREPAGE_STORECLIP_BTN, OnBnClickedStorepageStoreclipBtn)
ON_BN_CLICKED(IDC_TABEDIT_BTN, OnBnClickedTabeditBtn)
END_MESSAGE_MAP()
// CCharItemStorePage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharItemStorePage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
CRect rcGrid;
rcGrid.left = 19; rcGrid.top = 49; rcGrid.right = 264; rcGrid.bottom = 414;
m_ctrlItemStoreGrid.Create(rcGrid, this, CHAR_STORE_ITEM, WS_CHILD|WS_BORDER|WS_TABSTOP|WS_VISIBLE);
InitializeItemGrid(m_ctrlItemStoreGrid, 12, 8, FALSE, FALSE,
RGB(0, 0, 0), RGB(215, 247, 255), RGB(172, 172, 172));
m_ctrlItemStoreGrid.EnableSelection(FALSE);
m_ctrlItemStoreTab.InsertItem( 0, _T("1"), 0);
m_ctrlItemStoreTab.InsertItem( 1, _T("2"), 0);
m_ctrlItemStoreTab.InsertItem( 2, _T("3"), 0);
m_ctrlItemStoreTab.InsertItem( 3, _T("4"), 0);
m_ctrlItemStoreItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlItemStoreItemList.InsertColumn(0, GetLocalString("SERIAL"), LVCFMT_LEFT, 120);
m_ctrlItemStoreItemList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 117);
m_ctrlItemStoreItemList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 80);
m_ctrlItemStoreItemList.InsertColumn(3, GetLocalString("POS"), LVCFMT_LEFT, 47);
m_ctrlItemStoreItemList.InsertColumn(4, GetLocalString("QTY"), LVCFMT_LEFT, 47);
CString strTab;
for (int nIndex = 0; nIndex < 4; ++nIndex)
{
strTab.Format("%d", nIndex + 1);
m_ctrlTabNumCb.AddString(strTab);
}
SetUIString(this->m_hWnd, IDC_STOREPAGE_01, "IDC_STOREPAGE_01");
SetUIString(this->m_hWnd, IDC_STOREPAGE_02, "IDC_STOREPAGE_02");
SetUIString(this->m_hWnd, IDC_STOREPAGE_03, "IDC_STOREPAGE_03");
SetUIString(this->m_hWnd, IDC_STOREPAGE_04, "IDC_STOREPAGE_04");
SetUIString(this->m_hWnd, IDC_STOREPAGE_05, "IDC_STOREPAGE_05");
SetUIString(this->m_hWnd, IDC_STORERESET, "IDC_STORERESET");
SetUIString(this->m_hWnd, IDC_STOREPAGE_STORECLIP_BTN, "IDC_STOREPAGE_STORECLIP_BTN");
SetUIString(this->m_hWnd, IDC_STOREGOLD_UPDATE, "IDC_STOREGOLD_UPDATE");
SetUIString(this->m_hWnd, IDC_STOREPASS_EDIT, "IDC_STOREPASS_EDIT");
return TRUE;
}
bool CCharItemStorePage::SetStorePageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if((0 != dwDocKey) && (NULL != lpModifyCharacter))
{
m_lpStorePageInfo = lpModifyCharacter;
m_dwDocKey = dwDocKey;
GetDlgItem(IDC_STORERESET)->EnableWindow(true);
GetDlgItem(IDC_STOREGOLD_UPDATE)->EnableWindow(true);
GetDlgItem(IDC_STOREPASS_EDIT)->EnableWindow(true);
GetDlgItem(IDC_STOREPAGE_STORECLIP_BTN)->EnableWindow(true);
return true;
}
else
return false;
}
void CCharItemStorePage::SetStorePage(CModifyCharacter* lpModifyCharacter)
{
m_ctrlItemStoreItemList.DeleteAllItems();
m_ctrlItemStoreGrid.DeleteAllItems();
InitializeItemGrid(m_ctrlItemStoreGrid, 12, 8, FALSE, FALSE,
RGB(0, 0, 0), RGB(215, 247, 255), RGB(172, 172, 172));
m_ctrlItemStoreGrid.EnableSelection(false);
if(NULL == lpModifyCharacter)
{
return;
}
Item::CDepositContainer& DepositContainer = lpModifyCharacter->GetDeposit();
Item::CItemContainer* ItemContainer = DepositContainer.GetTab(m_ctrlItemStoreTab.GetCurSel());
Item::CItemContainer::iterator Itr = ItemContainer->begin();
Item::CItem* StoreItem = NULL;
unsigned long dwTabFlag = DepositContainer.GetTabFlag();
unsigned int nUseTabNum = 0;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> ĸ<><C4B8> <20><><EFBFBD><EFBFBD>
TCHAR szText[255];
TCITEM stTabItem;
stTabItem.mask = TCIF_TEXT;
stTabItem.pszText = szText;
stTabItem.cchTextMax = 255;
for (char cTab = 0; cTab < ContainerConstant::MAX_DEPOSIT_TAB; ++cTab)
{
if (0 == (dwTabFlag & (1 << cTab)))
{
_sntprintf(szText, 255, _T("Not use"));
m_ctrlItemStoreTab.SetItem((int)cTab, &stTabItem);
}
else
{
_sntprintf(szText, 255, _T("%d"), (int)cTab + 1);
m_ctrlItemStoreTab.SetItem((int)cTab, &stTabItem);
++nUseTabNum;
}
}
while(Itr != ItemContainer->end())
{
StoreItem = (*Itr);
if(NULL != StoreItem)
{
StoreGridSet(StoreItem);
}
++Itr;
}
// <09><><EFBFBD><EFBFBD><EBB0A1> <20><> <20>ǿ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD>ѿ<EFBFBD> <20><><EFBFBD><EFBFBD>
for(int StoreTab = 0; StoreTab < ContainerConstant::MAX_DEPOSIT_TAB; StoreTab++)
{
ItemContainer = DepositContainer.GetTab(StoreTab);
Itr = ItemContainer->begin();
StoreItem = NULL;
while(Itr != ItemContainer->end())
{
StoreItem = (*Itr);
if(NULL != StoreItem)
{
CString serial(_T("0x"));
CString quantity;
CString realItemPos;
Item::ItemPos ItemPos = StoreItem->GetPos();
quantity.Format(_T("%d"), StoreItem->GetNumOrDurability());
realItemPos.Format(_T("X:%d Y:%d Z:%d"), ItemPos.GetXIndex(), ItemPos.GetYIndex(), ItemPos.GetZIndex());
serial.AppendFormat(_T("%016I64X"), StoreItem->GetUID());
const Item::ItemInfo& ItemInfo = StoreItem->GetItemInfo();
m_ctrlItemStoreItemList.InsertItem(0, serial);
m_ctrlItemStoreItemList.SetItemText(0, 1, (LPCTSTR)ItemInfo.m_SpriteData.m_szName);
m_ctrlItemStoreItemList.SetItemText(0, 2, (LPCTSTR)StoreItem->GetItemTypeName());
m_ctrlItemStoreItemList.SetItemText(0, 3, realItemPos);
m_ctrlItemStoreItemList.SetItemText(0, 4, quantity);
// <20>ߺ<EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ
std::pair<CModifyCharacter::ModifyCharItemSerialInfo::iterator, bool> returnPair
= lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(StoreItem->GetUID());
if(!returnPair.second)
{
lpModifyCharacter->m_OverlapSerialInfo.push_back(StoreItem->GetUID());
lpModifyCharacter->SetOwnCopyItemState(true);
}
}
++Itr;
}
}
m_dwStoreGold = DepositContainer.GetGold();
char szPassword[10];
sprintf(szPassword, "%s", DepositContainer.GetPassword());
szPassword[4] = 0;
m_strStorePass.Format(_T("%s"), CONV_CLISTR(szPassword));
m_ctrlTabNumCb.SetCurSel(nUseTabNum - 1);
UpdateData(false);
}
void CCharItemStorePage::StoreGridSet(Item::CItem* StoreItem)
{
Item::ItemPos ItemPos = StoreItem->GetPos();
const Item::ItemInfo& ItemInfo = StoreItem->GetItemInfo();
CString ItemToolTip; // <20>׸<EFBFBD><D7B8>忡 ä<><C3A4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CString serial(_T("0x")); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ <20><><EFBFBD><EFBFBD>
unsigned int itemX = ItemPos.GetXIndex();
unsigned int itemY = ItemPos.GetYIndex();
unsigned int itemSizeX = ItemInfo.m_DetailData.m_cXSize;
unsigned int itemSizeY = ItemInfo.m_DetailData.m_cYSize;
ItemToolTip.Format(GetLocalString("FORMAT_002"),
ItemInfo.m_SpriteData.m_szName, StoreItem->GetUID());
m_ctrlItemStoreGrid.SetItemText(itemY, itemX, ItemToolTip);
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><20><><EFBFBD><EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ĥ<>ϱ<EFBFBD>
for (int X = itemX; X < (int)(itemX + itemSizeX); X++)
{
for(int Y = itemY; Y < (int)(itemY + itemSizeY); Y++)
{
m_ctrlItemStoreGrid.SetItemBkColour(Y, X,
GetItemTypeColor(Item::ItemType::Type(ItemInfo.m_DetailData.m_cItemType)));
}
}
m_ctrlItemStoreGrid.Invalidate(TRUE);
}
// <09>׸<EFBFBD><D7B8><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ ó<><C3B3>
void CCharItemStorePage::OnStoreGridClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/)
{
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
if(g_bItemGrab)
{
CPoint selItemCoordinate, selItemSize;
g_stMyItemInfo.m_stItemInfo.m_cTakePos = TakeType::TS_DEPOSIT; // â<><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
g_stMyItemInfo.m_stItemInfo.m_cXPos = pItem->iColumn; // <09><>ǥ<EFBFBD><C7A5> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
g_stMyItemInfo.m_stItemInfo.m_cYPos = pItem->iRow;
g_stMyItemInfo.m_stItemInfo.m_cZPos = m_ctrlItemStoreTab.GetCurSel();
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǻ<EFBFBD><C7BA><EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD> <20><>ǥ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
selItemCoordinate.x = g_stMyItemInfo.m_stItemInfo.m_cXPos;
selItemCoordinate.y = g_stMyItemInfo.m_stItemInfo.m_cYPos;
// <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ǻ<EFBFBD><C7BA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
selItemSize.x = g_stMyItemInfo.m_SizeX;
selItemSize.y = g_stMyItemInfo.m_SizeY;
if(NULL != m_lpStorePageInfo && NULL != m_dwDocKey)
{
if(IsEnableItemDrop(selItemCoordinate, selItemSize))
{
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CPacketMgr::GetInstance()->SendCreateItem(m_lpStorePageInfo->GetServerGroup(),
m_lpStorePageInfo->GetCID(), m_lpStorePageInfo->GetUID(), m_dwDocKey, g_stMyItemInfo.m_stItemInfo);
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if(g_stMyItemInfo.m_nModeIndex == g_stMyItemInfo.CREATE_SINGLE)
{
g_bItemGrab = FALSE;
}
}
else
{
Report(GetLocalString("MSG_0120"), CAUTION);
}
}
else
{
Report(GetLocalString("MSG_0121"), CAUTION);
}
}
}
// <09>ش<EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20>׸<EFBFBD><D7B8><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><> <20>Ǻ<EFBFBD><C7BA>ϴ<EFBFBD> <20>Լ<EFBFBD>
BOOL CCharItemStorePage::IsEnableItemDrop(CPoint selGridCoordinates, CPoint selItemSize)
{
int nIsEnableCell = 0; // <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20>׸<EFBFBD><D7B8><EFBFBD> <20>˻<EFBFBD><CBBB><EFBFBD> 8 X 12 <20><> <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EEB3AA> <20>ʵ<EFBFBD><CAB5><EFBFBD> <20>ʱ<EFBFBD>ȭ
int maxGridSearchColumn = (selGridCoordinates.x + selItemSize.x > 7) ? 8 : selGridCoordinates.x + selItemSize.x;
int maxGridSearchRow = (selGridCoordinates.y + selItemSize.y > 11) ? 12 : selGridCoordinates.y + selItemSize.y;
// <20>׸<EFBFBD><D7B8><EFBFBD> <20>˻<EFBFBD>
for(int nColumn = selGridCoordinates.x; nColumn < maxGridSearchColumn; nColumn++)
{
for(int nRow = selGridCoordinates.y; nRow < maxGridSearchRow; nRow++)
{
COLORREF clrDefaultCellColor = RGB(215, 247, 255);
// <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ä<><C3A4><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD>)<29><><EFBFBD><EFBFBD> Ȯ<><C8AE>
if(4278190080 == m_ctrlItemStoreGrid.GetItemBkColour(nRow, nColumn))
{
nIsEnableCell++;
}
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<><C5A9> <20><>ŭ<EFBFBD><C5AD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE <20><><EFBFBD><EFBFBD>, <20>ƴϸ<C6B4> FALSE <20><><EFBFBD><EFBFBD>
if(nIsEnableCell == (selItemSize.x * selItemSize.y))
{
return TRUE;
}
else
{
return FALSE;
}
}
void CCharItemStorePage::OnTcnSelchangeItemstoretab(NMHDR *pNMHDR, LRESULT *pResult)
{
// â<><C3A2> <20><><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ǿ<EFBFBD> <20>´<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if(NULL == m_lpStorePageInfo)
{
return;
}
m_ctrlItemStoreGrid.DeleteAllItems(); // <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
InitializeItemGrid( m_ctrlItemStoreGrid, 12, 8, FALSE, FALSE,
RGB(0, 0, 0), RGB(215, 247, 255), RGB(172, 172, 172)); // <20><> <20>׸<EFBFBD><D7B8><EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD>
if(NULL != m_lpStorePageInfo)
{
Item::CDepositContainer& DepositContainer = m_lpStorePageInfo->GetDeposit();
Item::CItemContainer* ItemContainer = DepositContainer.GetTab( m_ctrlItemStoreTab.GetCurSel() );
Item::CItemContainer::iterator Itr = ItemContainer->begin( );
Item::CItem* StoreItem = NULL;
while(Itr != ItemContainer->end())
{
StoreItem = (*Itr);
if(NULL != StoreItem)
{
StoreGridSet(StoreItem);
}
++Itr;
}
}
*pResult = 0;
}
void CCharItemStorePage::OnContextMenu(CWnd* pWnd, CPoint point)
{
if((pWnd->GetSafeHwnd() == m_ctrlItemStoreItemList.GetSafeHwnd())
&& (m_ctrlItemStoreItemList.GetSelectedCount() == 1))
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(7);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_STOREITEM_EDIT, GetLocalString("MENU_024"));
pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_STOREITEM_REMOVE, GetLocalString("MENU_025"));
pContextMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, ID_STORE_COPY, GetLocalString("MENU_026"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CCharItemStorePage::OnStoreitemUpdate()
{
unsigned __int64 i64ItemSerial = 0;
TCHAR szItemName[255] = _T("Item Name");
TCHAR szTmp[50];
unsigned char cTakeType;
UpdateData(true);
cTakeType = TakeType::TS_DEPOSIT;
int iSelIndex = m_ctrlItemStoreItemList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != iSelIndex)
{
m_ctrlItemStoreItemList.GetItemText(iSelIndex, 0, szTmp, sizeof(szTmp));
m_ctrlItemStoreItemList.GetItemText(iSelIndex, 1, szItemName, sizeof(szItemName));
i64ItemSerial = Math::Convert::StrToHex64(szTmp); //__ttoi64(szTmp);
}
if((NULL != m_lpStorePageInfo) && (0 != i64ItemSerial) && (NULL != m_dwDocKey))
{
g_stMyItemInfo.m_nModeIndex = MyItemInfo::EDIT;
g_stMyItemInfo.m_dwItemSerial = i64ItemSerial;
CopyMemory( g_stMyItemInfo.m_szItemName, szItemName, sizeof(szItemName));
g_stMyItemInfo.m_cTakeType = cTakeType;
g_stMyItemInfo.m_lpModifyCharInfo = m_lpStorePageInfo;
g_stMyItemInfo.m_dwDocKey = m_dwDocKey;
Item::CItem* lpItem = g_stMyItemInfo.m_lpModifyCharInfo->UIDbyItem(i64ItemSerial, cTakeType);
CItemManageDlg dlg(CItemManageDlg::EDIT);
dlg.DoModal();
}
}
void CCharItemStorePage::OnStoreitemRemove()
{
int Index;
unsigned __int64 i64ItemSerial = 0;
TCHAR szItemName[255] = _T("Item Name");
TCHAR szTmp[50];
unsigned char cTakeType;
UpdateData(TRUE);
cTakeType = TakeType::TS_DEPOSIT;
Index = m_ctrlItemStoreItemList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
m_ctrlItemStoreItemList.GetItemText(Index, 0, szTmp, sizeof(szTmp));
m_ctrlItemStoreItemList.GetItemText(Index, 1, szItemName, sizeof(szItemName));
i64ItemSerial = Math::Convert::StrToHex64( szTmp );//__ttoi64( szTmp );
}
if( (NULL != m_lpStorePageInfo) && (i64ItemSerial != 0) && (NULL != m_dwDocKey) )
{
g_stMyItemInfo.m_nModeIndex = MyItemInfo::REMOVE; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
g_stMyItemInfo.m_dwItemSerial = i64ItemSerial; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD>
CopyMemory(g_stMyItemInfo.m_szItemName, szItemName, sizeof(szItemName)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
g_stMyItemInfo.m_cTakeType = cTakeType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
g_stMyItemInfo.m_lpModifyCharInfo = m_lpStorePageInfo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
g_stMyItemInfo.m_dwDocKey = m_dwDocKey; // <20><><EFBFBD><EFBFBD> <20><>ť<EFBFBD><C5A5>Ʈ Ű <20><><EFBFBD><EFBFBD>
Item::CItem* lpItem = m_lpStorePageInfo->UIDbyItem( i64ItemSerial, cTakeType );
Item::ItemPos stItemPos = lpItem->GetPos();
CPacketMgr::GetInstance()->SendRemoveItem(m_lpStorePageInfo->GetServerGroup(),
m_lpStorePageInfo->GetCID(), m_lpStorePageInfo->GetUID(), m_dwDocKey, i64ItemSerial,
lpItem->GetPrototypeID(), stItemPos);
}
}
void CCharItemStorePage::OnNMDblclkItemstorelist(NMHDR *pNMHDR, LRESULT *pResult)
{
if(m_ctrlItemStoreItemList.GetSelectedCount() == 1)
{
OnStoreitemUpdate();
}
*pResult = 0;
}
void CCharItemStorePage::OnBnClickedStoreResetBtn()
{
CPacketMgr::GetInstance()->SendItemContainerReset(m_lpStorePageInfo->GetServerGroup(),
m_lpStorePageInfo->GetUID(), m_lpStorePageInfo->GetCID(), m_dwDocKey, TakeType::TS_DEPOSIT);
}
void CCharItemStorePage::OnBnClickedStorePassEdit()
{
UpdateData(true);
if(m_strStorePass.GetLength() < PktAdminMgr::PktDepositPasswd::PASSWORD_LENGTH + 1)
{
CPacketMgr::GetInstance()->SendPktDepositPwd(m_lpStorePageInfo->GetUID(), m_lpStorePageInfo->GetCID(),
m_lpStorePageInfo->GetServerGroup(), m_dwDocKey, m_strStorePass.GetBuffer());
}
else
{
AfxMessageBox(GetLocalString("MSG_0122"));
}
}
void CCharItemStorePage::OnStoreCopy()
{ // <20>ߺ<EFBFBD><DFBA>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>.<2E><>;
__int64 ItemUID;
TCHAR szTmp[256];
unsigned char cTakeType = TakeType::TS_DEPOSIT;
int Index = m_ctrlItemStoreItemList.GetNextItem(-1, LVIS_SELECTED);
if( -1 < Index )
{
m_ctrlItemStoreItemList.GetItemText(Index, 0, szTmp, sizeof(szTmp));
ItemUID = Math::Convert::StrToHex64(szTmp);
}
else
{
return;
}
PktAdminMgr::CreateItemInfo MkStoreInfo;
Item::CItem* lpItem = m_lpStorePageInfo->UIDbyItem(ItemUID, cTakeType);
if( NULL != lpItem )
{
MkStoreInfo.m_cNumOrDurability = lpItem->GetNumOrDurability();
Item::CEquipment* lpEquipment = Item::CEquipment::DowncastToEquipment(lpItem);
if(NULL != lpEquipment)
{
for(int nIndex = 0; nIndex < Item::EquipmentInfo::MAX_RUNE_SOCKET_NUM; ++nIndex)
{
MkStoreInfo.m_usRuneSocket[nIndex] = lpEquipment->GetRuneSocket(nIndex);
}
MkStoreInfo.m_cMaxDurability = lpEquipment->GetMaxNumOrDurability();
MkStoreInfo.m_cCurrentSocketNum = lpEquipment->GetCurrentSocketNum();
MkStoreInfo.m_cMaxSocketNum = lpEquipment->GetMaxSocketNum();
MkStoreInfo.m_cUpgradeLevel = lpEquipment->GetUpgradeLevel();
MkStoreInfo.m_cSeasonRecord = lpEquipment->GetSeasonRecord();
MkStoreInfo.m_cCoreLevel = lpEquipment->GetCoreLevel();
lpEquipment->GetAttribute(MkStoreInfo.m_usAttribute, sizeof(MkStoreInfo.m_usAttribute));
lpEquipment->GetSocket(MkStoreInfo.m_cSocket, sizeof(MkStoreInfo.m_cSocket));
}
}
char StoreBuffer[PktAdminMgr::PktAdminStoreInsert::MAX_ITEM_INFO];
TCHAR szItemName[64];
unsigned long dwStoreBufferLength = 0;
_tcsncpy(szItemName, CONV_CLISTR(lpItem->GetItemInfo().m_SpriteData.m_szName), 64);
MkStoreInfo.AdminStore_Out(StoreBuffer, dwStoreBufferLength);
CPacketMgr::GetInstance()->SendPktAdminStoreInsert((unsigned char)m_lpStorePageInfo->GetServerGroup(),
CONV_CLISTR(m_lpStorePageInfo->GetName()), szItemName, StoreBuffer);
}
void CCharItemStorePage::PostNcDestroy()
{
m_ctrlItemStoreGrid.DestroyWindow();
CPropertyPage::PostNcDestroy();
}
void CCharItemStorePage::OnBnClickedStoregoldUpdate()
{
UpdateData(true);
if(m_dwStoreGold < ULONG_MAX)
{
CPacketMgr::GetInstance()->SendStoreGoldUpdate(
m_lpStorePageInfo->GetUID(), m_lpStorePageInfo->GetCID(),
m_lpStorePageInfo->GetServerGroup(), m_dwDocKey, m_dwStoreGold);
}
else
{
AfxMessageBox(GetLocalString("MSG_0123"));
}
}
void CCharItemStorePage::OnLvnColumnclickItemstorelist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlItemStoreItemList, m_iSortListItem);
*pResult = 0;
}
void CCharItemStorePage::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::SERIAL:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::NAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::TYPE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::COORDINATE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::QUANTITY:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
}
}
void CCharItemStorePage::OnBnClickedStorepageStoreclipBtn()
{
ClippingListCtrl(m_ctrlItemStoreItemList, 5, true);
}
void CCharItemStorePage::OnBnClickedTabeditBtn()
{
unsigned long dwTabFlag = m_lpStorePageInfo->GetDeposit().GetTabFlag();
unsigned int nUseTabNum = 0;
for (char cTab = 0; cTab < ContainerConstant::MAX_DEPOSIT_TAB; ++cTab)
{
if(0 != (dwTabFlag & (1 << cTab)))
{
++nUseTabNum;
}
}
if ((int)nUseTabNum < (m_ctrlTabNumCb.GetCurSel() + 1))
{
CPacketMgr::GetInstance()->SendPktStoreTabEdit(m_dwDocKey,
m_lpStorePageInfo->GetServerGroup(), m_lpStorePageInfo->GetCID(),
(unsigned int)(m_ctrlTabNumCb.GetCurSel() + 1));
}
else
{
Report(GetLocalString("ADDED_STRING_038"), CAUTION);
}
}

View File

@@ -0,0 +1,76 @@
#pragma once
#include <GridCtrl_src/GridCtrl.h>
#include "afxcmn.h"
#include "afxwin.h"
// CCharItemStorePage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
#define CHAR_STORE_ITEM WM_USER + 2
namespace Item{
class CItem;
};
class CModifyCharacter;
/*!
\class CCharItemStorePage
ij<><C4B3><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharItemStorePage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharItemStorePage)
public:
CCharItemStorePage();
virtual ~CCharItemStorePage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARITEMSTOREPAGE };
enum SORT_TYPE{ SERIAL, NAME, TYPE, COORDINATE, QUANTITY };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void PostNcDestroy();
private:
bool m_bSortListAsc;
int m_iSortListItem;
CModifyCharacter* m_lpStorePageInfo;
unsigned int m_dwDocKey;
CGridCtrl m_ctrlItemStoreGrid;
CTabCtrl m_ctrlItemStoreTab;
CListCtrl m_ctrlItemStoreItemList;
CString m_strStorePass;
CComboBox m_ctrlTabNumCb;
unsigned long m_dwStoreGold;
BOOL IsEnableItemDrop(CPoint selGridCoordinates, CPoint selItemSize);
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
void StoreGridSet(Item::CItem* StoreItem);
afx_msg void OnTcnSelchangeItemstoretab(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnStoreGridClick(NMHDR *pNotifyStruct, LRESULT* pResult);
afx_msg void OnStoreitemUpdate();
afx_msg void OnStoreitemRemove();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnNMDblclkItemstorelist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedStoreResetBtn();
afx_msg void OnBnClickedStorePassEdit();
afx_msg void OnStoreCopy();
afx_msg void OnBnClickedStoregoldUpdate();
afx_msg void OnLvnColumnclickItemstorelist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedStorepageStoreclipBtn();
public:
bool SetStorePageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetStorePage(CModifyCharacter* lpModifyCharacter);
afx_msg void OnBnClickedTabeditBtn();
};

View File

@@ -0,0 +1,114 @@
// CharPropertySheet.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharPropertySheet.h"
#include "PacketManager.h"
#include <Character/ModifyCharacter.h>
// CCharPropertySheet
IMPLEMENT_DYNAMIC(CCharPropertySheet, CPropertySheet)
CCharPropertySheet::CCharPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
, m_lpModifyCharInfo(NULL)
, m_dwDocKey(0)
{
AddPage(&m_wndCharStatusPage);
AddPage(&m_wndCharInventoryPage);
AddPage(&m_wndCharItemStorePage);
AddPage(&m_wndCharSkillPage);
AddPage(&m_wndCharSocietyPage);
AddPage(&m_wndCharQuestPage);
AddPage(&m_wndCharTempInvenPage);
AddPage(&m_wndCharExtraItemPage);
AddPage(&m_wndCharEXInfoPage);
}
CCharPropertySheet::CCharPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
, m_lpModifyCharInfo(NULL)
, m_dwDocKey(0)
{
AddPage(&m_wndCharStatusPage);
AddPage(&m_wndCharInventoryPage);
AddPage(&m_wndCharItemStorePage);
AddPage(&m_wndCharSkillPage);
AddPage(&m_wndCharSocietyPage);
AddPage(&m_wndCharQuestPage);
AddPage(&m_wndCharTempInvenPage);
AddPage(&m_wndCharExtraItemPage);
AddPage(&m_wndCharEXInfoPage);
}
CCharPropertySheet::~CCharPropertySheet()
{
if(NULL != m_lpModifyCharInfo && (m_dwDocKey != 0))
{
// ij<><C4B3><EFBFBD><EFBFBD> <20><>Ʈ <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD> <20>ִ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CPacketMgr::GetInstance()->SendCloseCharacter(
m_lpModifyCharInfo->GetServerGroup(), m_lpModifyCharInfo->GetCID(), m_dwDocKey);
}
}
BEGIN_MESSAGE_MAP(CCharPropertySheet, CPropertySheet)
END_MESSAGE_MAP()
// CCharPropertySheet <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
SetActivePage(&m_wndCharTempInvenPage);
SetActivePage(&m_wndCharInventoryPage);
SetActivePage(&m_wndCharItemStorePage);
SetActivePage(&m_wndCharSkillPage);
SetActivePage(&m_wndCharSocietyPage);
SetActivePage(&m_wndCharQuestPage);
SetActivePage(&m_wndCharEXInfoPage);
SetActivePage(&m_wndCharExtraItemPage);
SetActivePage(&m_wndCharStatusPage);
return bResult;
}
bool CCharPropertySheet::SetAllPage( unsigned int dwDocKey, CModifyCharacter* lpModifyCharInfo )
{
m_lpModifyCharInfo = lpModifyCharInfo;
m_dwDocKey = dwDocKey;
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
m_wndCharStatusPage.SetStatusPageData (dwDocKey, lpModifyCharInfo); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharInventoryPage.SetInventoryPageData (dwDocKey, lpModifyCharInfo); // <20>κ<EFBFBD><CEBA><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharItemStorePage.SetStorePageData (dwDocKey, lpModifyCharInfo); // â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharSkillPage.SetSkillPageData (dwDocKey, lpModifyCharInfo); // <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharSocietyPage.SetSocietyPageData (dwDocKey, lpModifyCharInfo); // <20><>ȸâ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharQuestPage.SetQuestPageData (dwDocKey, lpModifyCharInfo); // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharTempInvenPage.SetTempInvenPageData (dwDocKey, lpModifyCharInfo); // <20>ӽ<EFBFBD> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharExtraItemPage.SetExtraItemPageData (dwDocKey, lpModifyCharInfo); // <20><>Ÿ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndCharEXInfoPage.SetCharEXInfoPageData (dwDocKey, lpModifyCharInfo); // <20><>Ÿ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
m_wndCharStatusPage.SetStatusPage (lpModifyCharInfo);
m_wndCharInventoryPage.SetInventoryPage (lpModifyCharInfo);
m_wndCharItemStorePage.SetStorePage (lpModifyCharInfo);
m_wndCharSkillPage.SetSkillPage (lpModifyCharInfo);
m_wndCharSocietyPage.SetSocietyPage (lpModifyCharInfo);
m_wndCharQuestPage.SetQuestPage (lpModifyCharInfo);
m_wndCharEXInfoPage.SetCharEXInfoPage (lpModifyCharInfo);
m_wndCharTempInvenPage.SetTempInvenPage (lpModifyCharInfo);
m_wndCharExtraItemPage.SetExtraItemPage (lpModifyCharInfo);
return true;
}
void CCharPropertySheet::PostNcDestroy()
{
CPropertySheet::PostNcDestroy();
}

View File

@@ -0,0 +1,54 @@
#pragma once
#include "CharSkillPage.h"
#include "CharStatuspage.h"
#include "CharQuestPage.h"
#include "CharInventoryPage.h"
#include "CharItemStorePage.h"
#include "CharSocietyPage.h"
#include "CharEXInfoPage.h"
#include "CharTempInvenPage.h"
#include "CharExtraItemPage.h"
class CModifyCharacter;
/*!
\class CCharPropertySheet
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><>Ʈ
*/
class CCharPropertySheet : public CPropertySheet
{
DECLARE_DYNAMIC(CCharPropertySheet)
public:
CCharPropertySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CCharPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
virtual ~CCharPropertySheet();
protected:
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void PostNcDestroy();
private:
CModifyCharacter* m_lpModifyCharInfo;
unsigned int m_dwDocKey;
// ij<><C4B3><EFBFBD><EFBFBD> <20>Ӽ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CCharStatusPage m_wndCharStatusPage;
CCharInventoryPage m_wndCharInventoryPage;
CCharItemStorePage m_wndCharItemStorePage;
CCharSkillPage m_wndCharSkillPage;
CCharSocietyPage m_wndCharSocietyPage;
CCharQuestPage m_wndCharQuestPage;
CCharEXInfoPage m_wndCharEXInfoPage;
CCharTempInvenPage m_wndCharTempInvenPage;
CCharExtraItemPage m_wndCharExtraItemPage;
public:
// <20><>Ʈ<EFBFBD><C6AE> <20>޸<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool SetAllPage(unsigned int dwDocKey, CModifyCharacter* lpModifyCharinfo);
};

View File

@@ -0,0 +1,284 @@
// CharQuestPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharQuestPage.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include "ListCtrlSortClass.h"
#include <Utility/Math/Math.h>
#include <ToolQuestList.h>
#include <Character/ModifyCharacter.h>
#include ".\charquestpage.h"
// CCharQuestPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharQuestPage, CPropertyPage)
CCharQuestPage::CCharQuestPage()
: CPropertyPage(CCharQuestPage::IDD)
, m_bSortListAsc(false)
{
}
CCharQuestPage::~CCharQuestPage()
{
}
void CCharQuestPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CHARINGQUESTLIST, m_ctrlCharIngQuestList);
DDX_Control(pDX, IDC_CHARFINISHEDQUESTLIST, m_ctrlCharFinishedQuestList);
}
BEGIN_MESSAGE_MAP(CCharQuestPage, CPropertyPage)
ON_BN_CLICKED(IDC_INGQUEST_RESET, OnBnClickedIngquestReset)
ON_BN_CLICKED(IDC_SEL_INGQUEST_DEL, OnBnClickedSelIngquestDel)
ON_BN_CLICKED(IDC_SEL_ENDQUEST_DEL, OnBnClickedSelEndquestDel)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_CHARINGQUESTLIST, OnLvnColumnclickCharingquestlist)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_CHARFINISHEDQUESTLIST, OnLvnColumnclickCharfinishedquestlist)
END_MESSAGE_MAP()
// CCharQuestPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharQuestPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlCharIngQuestList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCharIngQuestList.InsertColumn(0, _T("QID"), LVCFMT_LEFT, 50);
m_ctrlCharIngQuestList.InsertColumn(1, GetLocalString("QUEST_NAME"), LVCFMT_LEFT, 170);
m_ctrlCharIngQuestList.InsertColumn(2, GetLocalString("QUEST_LEVEL"), LVCFMT_LEFT, 100);
m_ctrlCharIngQuestList.InsertColumn(3, GetLocalString("QUEST_PHASE"), LVCFMT_LEFT, 100);
m_ctrlCharFinishedQuestList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCharFinishedQuestList.InsertColumn(0, _T("QID"), LVCFMT_LEFT, 50);
m_ctrlCharFinishedQuestList.InsertColumn(1, GetLocalString("QUEST_NAME"), LVCFMT_LEFT, 170);
SetUIString(this->m_hWnd, IDC_QUESTPAGE_01, "IDC_QUESTPAGE_01");
SetUIString(this->m_hWnd, IDC_QUESTPAGE_02, "IDC_QUESTPAGE_02");
SetUIString(this->m_hWnd, IDC_SEL_INGQUEST_DEL, "IDC_SEL_INGQUEST_DEL");
SetUIString(this->m_hWnd, IDC_INGQUEST_RESET, "IDC_INGQUEST_RESET");
SetUIString(this->m_hWnd, IDC_SEL_ENDQUEST_DEL, "IDC_SEL_ENDQUEST_DEL");
SetUIString(this->m_hWnd, IDC_ENDQUEST_RESET, "IDC_ENDQUEST_RESET");
return TRUE;
}
bool CCharQuestPage::SetQuestPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if((NULL != lpModifyCharacter) && (dwDocKey != 0))
{
m_lpModifyCharacter = lpModifyCharacter;
m_dwDocKey = dwDocKey;
GetDlgItem(IDC_SEL_INGQUEST_DEL)->EnableWindow(true);
//GetDlgItem(IDC_INGQUEST_RESET)->EnableWindow(true);
GetDlgItem(IDC_SEL_ENDQUEST_DEL)->EnableWindow(true);
//GetDlgItem(IDC_ENDQUEST_RESET)->EnableWindow(true);
return true;
}
else
{
return false;
}
}
void CCharQuestPage::SetQuestPage(CModifyCharacter* lpModifyCharacter)
{
m_ctrlCharIngQuestList.DeleteAllItems();
m_ctrlCharFinishedQuestList.DeleteAllItems();
if(NULL == lpModifyCharacter)
{
return;
}
CString strForFormat;
Quest::ExecutingQuest* lpExeQuest = lpModifyCharacter->GetExecutingQuest();
unsigned short* lpHisQuest = lpModifyCharacter->GetHistoryQuest();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
for (int nIndex = 0; nIndex < Quest::MAX_EXECUTING_QUEST; ++nIndex)
{
if (NULL != lpExeQuest[nIndex].m_QuestNode)
{
LPQuestNode lpQuestNode = g_QuestList.GetQuest(lpExeQuest[nIndex].m_QuestNode->m_wQuestID);
if (NULL != lpQuestNode)
{
strForFormat.Format(_T("0x%04X"), lpExeQuest[nIndex].m_QuestNode->m_wQuestID);
m_ctrlCharIngQuestList.InsertItem(0, strForFormat);
strForFormat.Format(_T("%s"), lpQuestNode->m_strQuestTitle);
m_ctrlCharIngQuestList.SetItemText(0, 1, strForFormat);
strForFormat.Format(_T("%s"), lpQuestNode->m_strQuestLevel);
m_ctrlCharIngQuestList.SetItemText(0, 2, strForFormat);
strForFormat.Format(_T("%d/%d"), lpExeQuest[nIndex].m_cPhase, lpQuestNode->m_wMaxPhase);
m_ctrlCharIngQuestList.SetItemText(0, 3, strForFormat);
}
else
{
Report(GetLocalString("MSG_0183"), FAILED);
}
}
}
// <20>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
for (int nIndex = 0; nIndex < Quest::MAX_HISTORY_QUEST; ++nIndex)
{
if (0 != lpHisQuest[nIndex])
{
LPQuestNode lpHistoryQuestNode = g_QuestList.GetQuest(lpHisQuest[nIndex]);
if (NULL != lpHistoryQuestNode)
{
strForFormat.Format(_T("0x%04X"), lpHisQuest[nIndex]);
m_ctrlCharFinishedQuestList.InsertItem(0, strForFormat);
strForFormat.Format(_T("%s"), lpHistoryQuestNode->m_strQuestTitle);
m_ctrlCharFinishedQuestList.SetItemText(0, 1, strForFormat);
}
else
{
Report(GetLocalString("MSG_0183"), FAILED);
}
}
}
}
void CCharQuestPage::OnBnClickedIngquestReset()
{
// <20><><EFBFBD><EFBFBD>Ʈ <20>ʱ<EFBFBD>ȭ
}
void CCharQuestPage::OnBnClickedSelIngquestDel()
{
if (1 == m_ctrlCharIngQuestList.GetSelectedCount())
{
char szQID[16];
int nIndex = m_ctrlCharIngQuestList.GetNextItem(-1, LVIS_SELECTED);
m_ctrlCharIngQuestList.GetItemText(nIndex, 0, szQID, 16);
//unsigned long ulQID = 0;
//int i = 0;
//int k = strlen(szQID);
//unsigned short sQID = 0;
//for(i = 0; i < k; ++i)
//{
// if(szQID[i] == '0' && (szQID[i + 1] == 'x' || szQID[i + 1] == 'X'))
// {
// ++i;
// continue;
// }
// switch(tolower(szQID[i]))
// {
// case 'a':
// case 'b':
// case 'c':
// case 'd':
// case 'e':
// case 'f':
// sQID = (sQID * 16) + (10 + tolower(szQID[i]) - 'a');
// break;
// default:
// sQID = (sQID * 16) + (szQID[i] - '0');
// break;
// }
//}
CPacketMgr::GetInstance()->SendCancelExecuteQuest(m_dwDocKey,
m_lpModifyCharacter->GetServerGroup(), m_lpModifyCharacter->GetCID(),
(unsigned short)Math::Convert::StrToHex16(szQID));
}
else
{
Report(GetLocalString("MSG_0184"), CAUTION);
}
}
void CCharQuestPage::OnBnClickedSelEndquestDel()
{
if (1 == m_ctrlCharFinishedQuestList.GetSelectedCount())
{
char szQID[16];
int nIndex = m_ctrlCharFinishedQuestList.GetNextItem(-1, LVIS_SELECTED);
m_ctrlCharFinishedQuestList.GetItemText(nIndex, 0, szQID, 16);
CPacketMgr::GetInstance()->SendDeleteHistoryQuest(m_dwDocKey,
m_lpModifyCharacter->GetServerGroup(), m_lpModifyCharacter->GetCID(),
(unsigned short)Math::Convert::StrToHex16(szQID));
}
else
{
Report(GetLocalString("MSG_0184"), CAUTION);
}
}
void CCharQuestPage::SortListWndItem(CListCtrl* lpListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(lpListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::QID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::TITLE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::PHASE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
}
}
void CCharQuestPage::OnLvnColumnclickCharingquestlist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlCharIngQuestList, m_iSortListItem);
*pResult = 0;
}
void CCharQuestPage::OnLvnColumnclickCharfinishedquestlist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlCharFinishedQuestList, m_iSortListItem);
*pResult = 0;
}

View File

@@ -0,0 +1,50 @@
#pragma once
#include "afxcmn.h"
/*!
\class CCharQuestPage
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharQuestPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharQuestPage)
public:
CCharQuestPage();
virtual ~CCharQuestPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARQUESTPAGE };
enum SORT_TYPE { QID, TITLE, PHASE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
CModifyCharacter* m_lpModifyCharacter;
unsigned int m_dwDocKey;
bool m_bSortListAsc;
int m_iSortListItem;
CListCtrl m_ctrlCharIngQuestList;
CListCtrl m_ctrlCharFinishedQuestList;
public:
bool SetQuestPageData ( unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter );
void SetQuestPage ( CModifyCharacter* lpModifyCharacter );
void SortListWndItem(CListCtrl *lpListCtrl, const int iCol);
afx_msg void OnBnClickedIngquestReset();
afx_msg void OnBnClickedSelIngquestDel();
afx_msg void OnBnClickedSelEndquestDel();
afx_msg void OnLvnColumnclickCharingquestlist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnColumnclickCharfinishedquestlist(NMHDR *pNMHDR, LRESULT *pResult);
};

View File

@@ -0,0 +1,203 @@
// CharRestoreDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharRestoreDlg.h"
#include "GlobalFunctions.h"
#include "WindowMgr.h"
#include "CharacterDoc.h"
#include "PacketManager.h"
#include "ChangeDeleteTimeDlg.h"
// CCharRestoreDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharRestoreDlg, CDialog)
CCharRestoreDlg::CCharRestoreDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCharRestoreDlg::IDD, pParent)
{
INSERT_WINDOW(IDD_CHARRESTOREDLG, this);
}
CCharRestoreDlg::~CCharRestoreDlg()
{
ERASE_WINDOW(IDD_CHARRESTOREDLG);
}
void CCharRestoreDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CR_SEARCHCONDITION, m_ctrlSearchConditionCb);
DDX_Control(pDX, IDC_CR_SEARCHGROUP, m_ctrlSearchServerCb);
DDX_Control(pDX, IDC_CR_DELHISTORYLIST, m_ctrlDelHistoryList);
}
BEGIN_MESSAGE_MAP(CCharRestoreDlg, CDialog)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_CHARRESTORE_SEARCH, OnBnClickedCharRestoreSearch)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_RESTORE_TIME, OnRestoreTime)
ON_COMMAND(ID_RESTORE_CHAR, OnRestoreChar)
END_MESSAGE_MAP()
// CCharRestoreDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharRestoreDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlSearchConditionCb.AddString(_T("UID"));
m_ctrlSearchConditionCb.AddString(_T("CID"));
ServerGroupComboSet(m_ctrlSearchServerCb);
m_ctrlDelHistoryList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlDelHistoryList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 80);
m_ctrlDelHistoryList.InsertColumn(1, _T("CID"), LVCFMT_LEFT, 80);
m_ctrlDelHistoryList.InsertColumn(2, GetLocalString("ADDED_STRING_001"), LVCFMT_LEFT, 50);
m_ctrlDelHistoryList.InsertColumn(3, GetLocalString("ADDED_STRING_002"), LVCFMT_LEFT, 50);
m_ctrlDelHistoryList.InsertColumn(4, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 100);
m_ctrlDelHistoryList.InsertColumn(5, _T("Level"), LVCFMT_LEFT, 40);
m_ctrlDelHistoryList.InsertColumn(6, _T("Gold"), LVCFMT_LEFT, 80);
m_ctrlDelHistoryList.InsertColumn(7, GetLocalString("CHAR_DEL_TIME"), LVCFMT_LEFT, 170);
m_ctrlDelHistoryList.InsertColumn(8, GetLocalString("CHAR_DEL_DB_TIME"), LVCFMT_LEFT, 170);
m_ctrlSearchConditionCb.SetCurSel(1); // UID<49><44> <20>ʱ⼱<CAB1><E2BCB1>
SetWindowText(GetLocalString("IDD_CHARRESTOREDLG"));
SetUIString(this->m_hWnd, IDC_CHARRESTORE_01,"IDC_CHARRESTORE_01");
SetUIString(this->m_hWnd, IDC_CHARRESTORE_02,"IDC_CHARRESTORE_02");
SetUIString(this->m_hWnd, IDC_CHARRESTORE_03,"IDC_CHARRESTORE_03");
SetUIString(this->m_hWnd, IDC_CHARRESTORE_04,"IDC_CHARRESTORE_04");
SetUIString(this->m_hWnd, IDC_CHARRESTORE_05,"IDC_CHARRESTORE_05");
SetUIString(this->m_hWnd, IDC_CHARRESTORE_SEARCH,"IDC_CHARRESTORE_SEARCH");
return TRUE;
}
void CCharRestoreDlg::OnSearchSend()
{
const unsigned char UID = 1;
const unsigned char CID = 2;
int SearchType = m_ctrlSearchConditionCb.GetCurSel();
int ServerGroup = m_ctrlSearchServerCb.GetCurSel();
unsigned long dwServerGroup;
unsigned char cSearchType = cSearchType = CID;
if((-1 != SearchType) && (-1 != ServerGroup))
{
CString strSrvName;
m_ctrlSearchServerCb.GetLBText(ServerGroup, strSrvName);
if(0 != SearchType) cSearchType = UID;
if(CCharacterDoc::GetInstance().GetServerIndex(strSrvName, dwServerGroup))
{
CString strValue;
unsigned long dwValue;
this->GetDlgItemText(IDC_CHARRESTORE_EDIT, strValue);
if(0 < strValue.GetLength())
{
dwValue = _ttol(strValue);
if(CPacketMgr::GetInstance()->SendDelCharHistory(SearchType, dwServerGroup, dwValue))
{
m_ctrlDelHistoryList.DeleteAllItems();
}
}
}
}
}
HBRUSH CCharRestoreDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
void CCharRestoreDlg::OnBnClickedCharRestoreSearch()
{
OnSearchSend();
}
void CCharRestoreDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
if((pWnd->GetSafeHwnd() == m_ctrlDelHistoryList.GetSafeHwnd())
&& (1 == m_ctrlDelHistoryList.GetSelectedCount()))
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(12);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_RESTORE_CHAR, GetLocalString("MENU_034"));
pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_RESTORE_TIME, GetLocalString("MENU_035"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CCharRestoreDlg::OnRestoreTime()
{
CChangeDeleteTimeDlg ChangeDlg;
ChangeDlg.DoModal();
}
void CCharRestoreDlg::OnRestoreChar()
{
if(0 < m_ctrlDelHistoryList.GetSelectedCount())
{
CString strSrvName;
unsigned long dwServerGroup;
int index = m_ctrlDelHistoryList.GetNextItem(-1, LVIS_SELECTED);
CString strUID = m_ctrlDelHistoryList.GetItemText(index, 0);
CString strCID = m_ctrlDelHistoryList.GetItemText(index, 1);
CString strNewServerGroupID = m_ctrlDelHistoryList.GetItemText(index, 2);
CString strOldServerGroupID = m_ctrlDelHistoryList.GetItemText(index, 3);
m_ctrlSearchServerCb.GetLBText(m_ctrlSearchServerCb.GetCurSel(), strSrvName);
if(CCharacterDoc::GetInstance().GetServerIndex(strSrvName, dwServerGroup))
{
unsigned long dwUID, dwCID, dwNewServerGroupID, dwOldServerGroupID;
dwUID = _ttol(strUID);
dwCID = _ttol(strCID);
dwNewServerGroupID = _ttoi(strNewServerGroupID);
dwOldServerGroupID = _ttoi(strOldServerGroupID);
CPacketMgr::GetInstance()->SendPktCharRestore(dwUID, dwCID,
(unsigned char)dwNewServerGroupID, (unsigned char)dwOldServerGroupID, dwServerGroup);
}
}
}
BOOL CCharRestoreDlg::PreTranslateMessage(MSG* pMsg)
{
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
{
if(pMsg->hwnd == this->GetDlgItem(IDC_CHARRESTORE_EDIT)->m_hWnd)
{
OnSearchSend();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CCharRestoreDlg::OnCancel()
{
CDialog::OnCancel();
}
void CCharRestoreDlg::OnOK()
{
//CDialog::OnOK();
}

View File

@@ -0,0 +1,43 @@
#pragma once
#include "afxcmn.h"
#include "afxwin.h"
/*!
\class CCharRestoreDlg
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CCharRestoreDlg : public CDialog
{
DECLARE_DYNAMIC(CCharRestoreDlg)
public:
CCharRestoreDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CCharRestoreDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARRESTOREDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
DECLARE_MESSAGE_MAP()
virtual BOOL PreTranslateMessage(MSG* pMsg);
virtual BOOL OnInitDialog();
virtual void OnCancel();
virtual void OnOK();
private:
CComboBox m_ctrlSearchConditionCb;
CComboBox m_ctrlSearchServerCb;
CListCtrl m_ctrlDelHistoryList;
void OnSearchSend();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnBnClickedCharRestoreSearch();
afx_msg void OnRestoreTime();
afx_msg void OnRestoreChar();
};

View File

@@ -0,0 +1,155 @@
// CharSheetView.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "AdminStoreDlgBar.h"
#include "CharSheetView.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include <UserInfoDoc.h>
#include <Character/ModifyCharacter.h>
// CCharSheetView
IMPLEMENT_DYNCREATE(CCharSheetView, CFormView)
CCharSheetView::CCharSheetView()
: CFormView(CCharSheetView::IDD)
, m_strSheetInfo(_T("[Not select character]"))
, m_lpModifyCharInfo(NULL)
, m_dwDocKey(0)
{
m_strSheetInfo = GetLocalString("MSG_0131");
}
CCharSheetView::~CCharSheetView()
{
if( NULL != m_pCharPropertySheet )
{
delete m_pCharPropertySheet;
}
}
void CCharSheetView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CCharSheetView, CFormView)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_CHARUPDATE_BTN, OnBnClickedCharupdateBtn)
ON_BN_CLICKED(IDC_OVERLAPITEMLIST_BTN, OnBnClickedOverlapitemlistBtn)
END_MESSAGE_MAP()
// CCharSheetView <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
#ifdef _DEBUG
void CCharSheetView::AssertValid() const
{
CFormView::AssertValid();
}
void CCharSheetView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
// CCharSheetView <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
void CCharSheetView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CWnd* pwndPropSheetHolder = GetDlgItem(IDC_PLACEHOLDER); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><>Ʈ<EFBFBD><C6AE> Ȧ<><C8A6><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
m_pCharPropertySheet = new CCharPropertySheet(_T("Character Property Sheet"), pwndPropSheetHolder);
if(!m_pCharPropertySheet->Create(pwndPropSheetHolder, WS_CHILD | WS_VISIBLE, 0))
{
delete m_pCharPropertySheet;
m_pCharPropertySheet = NULL;
return;
}
// <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> ũ<><20>°<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CRect rectPropSheet;
pwndPropSheetHolder->GetWindowRect(rectPropSheet);
m_pCharPropertySheet->SetWindowPos(NULL, 0, 0,
rectPropSheet.Width(), rectPropSheet.Height(), SWP_NOZORDER | SWP_NOACTIVATE);
SetUIString(this->m_hWnd, IDC_CHARUPDATE_BTN, "IDC_CHARUPDATE_BTN");
SetUIString(this->m_hWnd, IDC_OVERLAPITEMLIST_BTN, "IDC_OVERLAPITEMLIST_BTN");
}
HBRUSH CCharSheetView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
pDC->SetTextColor(RGB(0,0,255));
return hbr;
}
bool CCharSheetView::SetCharSheetInfo(unsigned int dwDocKey, CModifyCharacter* lpCharacter)
{
GetDlgItem(IDC_OVERLAPITEMLIST_BTN)->EnableWindow(false);
if(0 != dwDocKey && NULL != lpCharacter)
{
m_lpModifyCharInfo = lpCharacter;
m_dwDocKey = dwDocKey;
// <20>ߺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻翡 <20>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
m_lpModifyCharInfo->m_ModifyCharItemSerialInfo.clear();
m_lpModifyCharInfo->m_OverlapSerialInfo.clear();
m_lpModifyCharInfo->SetOwnCopyItemState(false);
m_pCharPropertySheet->SetAllPage(dwDocKey, lpCharacter); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ǥ<><C7A5>
GetDlgItem(IDC_CHARUPDATE_BTN)->EnableWindow(true);
if(m_lpModifyCharInfo->IsOwnCopyItem())
{
GetDlgItem(IDC_OVERLAPITEMLIST_BTN)->EnableWindow(true);
Report(GetLocalString("MSG_0132"), NOTIFY);
}
UpdateData(false);
return true;
}
else
{
return false;
}
}
void CCharSheetView::PostNcDestroy()
{
CFormView::PostNcDestroy();
}
void CCharSheetView::OnBnClickedCharupdateBtn()
{
CPacketMgr::GetInstance()->SendSetCharacter(
m_lpModifyCharInfo->GetServerGroup(), m_lpModifyCharInfo->GetCID(),
m_lpModifyCharInfo->GetUID(), m_dwDocKey, m_lpModifyCharInfo->GetOldServerGroupID());
}
void CCharSheetView::OnBnClickedOverlapitemlistBtn()
{
CModifyCharacter::OverlapSerialInfo::iterator itr = m_lpModifyCharInfo->m_OverlapSerialInfo.begin();
CModifyCharacter::OverlapSerialInfo::iterator end = m_lpModifyCharInfo->m_OverlapSerialInfo.end();
CString strFormat;
Report(_T("[Copy Item Serial List]"), NOTIFY);
for(;itr != end; ++itr)
{
strFormat.Format(_T("0x%016I64x"), (*itr));
Report(strFormat, NOTIFY);
}
}

View File

@@ -0,0 +1,47 @@
#pragma once
#include "CharPropertySheet.h"
class CModifyCharacter;
/*!
\class CCharSheetView
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><>Ʈ
*/
class CCharSheetView : public CFormView
{
DECLARE_DYNCREATE(CCharSheetView)
protected:
CCharSheetView(); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> protected <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CCharSheetView();
public:
enum { IDD = IDD_CHARSHEETVIEW };
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
DECLARE_MESSAGE_MAP()
virtual void OnInitialUpdate();
virtual void PostNcDestroy();
private:
CCharPropertySheet* m_pCharPropertySheet;
CModifyCharacter* m_lpModifyCharInfo;
unsigned int m_dwDocKey;
afx_msg void OnBnClickedCharupdateBtn();
afx_msg void OnBnClickedOverlapitemlistBtn();
public:
CString m_strSheetInfo;
bool SetCharSheetInfo(unsigned int dwDocKey, CModifyCharacter* lpCharacter);
};

View File

@@ -0,0 +1,145 @@
// CharSkillEditDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharSkillEditDlg.h"
#include "CharSkillPage.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include <Skill/SkillMgr.h>
#include <Character/ModifyCharacter.h>
// CCharSkillEditDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharSkillEditDlg, CDialog)
CCharSkillEditDlg::CCharSkillEditDlg(unsigned char cDlgType, CWnd* pParent)
: CDialog(CCharSkillEditDlg::IDD, pParent)
, m_lpParent(pParent)
, m_cDlgType(cDlgType)
{
}
CCharSkillEditDlg::~CCharSkillEditDlg()
{
}
void CCharSkillEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SKILLLEVELEDIT, m_ctrlSkillLevelEdit);
DDX_Text(pDX, IDC_CURRENT_SKILL_NAME, m_strSkillName);
DDX_Text(pDX, IDC_CURRENT_SKILL_LV, m_cSkillLevel);
}
BEGIN_MESSAGE_MAP(CCharSkillEditDlg, CDialog)
ON_BN_CLICKED(IDC_SKILLLV_EDIT, OnBnClickedSkillLVEdit)
END_MESSAGE_MAP()
// CCharSkillEditDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharSkillEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString strWindowText = _T("Don't use thjs dialog~ -_ -;");
if(m_cDlgType == SKILL_ADD)
{
strWindowText = GetLocalString("SKILL_ADD");
}
else if(m_cDlgType == SKILL_EDIT)
{
strWindowText = GetLocalString("SKILL_EDIT");
}
CCharSkillPage* lpSkillPage = static_cast<CCharSkillPage*>(m_lpParent);
CModifyCharacter* lpCharacter = lpSkillPage->GetCharacter();
SKILLSLOT& SkillSlot = lpSkillPage->GetLastSkill();
const Skill::ProtoType* lpPrototype =
CSkillMgr::GetInstance().GetSkillProtoType(SkillSlot.SKILLINFO.wSkill);
if((NULL != lpPrototype) && (NULL != lpCharacter))
{
char cLockCount = SkillSlot.SKILLINFO.cLockCount;
if(cLockCount <= CSkillMgr::MAX_SKILL_LOCKCOUNT)
{
m_strSkillName.Format(_T("%s"), lpPrototype[cLockCount].m_SpriteInfo.m_szName);
}
else
{
return false;
}
short wSkillLevel = lpCharacter->GetSkillLevelEX(SkillSlot.SKILLINFO.wSkill, cLockCount);
if(-1 != wSkillLevel)
{
m_cSkillLevel = (unsigned char)wSkillLevel;
m_ctrlSkillLevelEdit.SetCurSel((int)m_cSkillLevel);
}
else
{
m_cSkillLevel = 0;
m_ctrlSkillLevelEdit.SetCurSel(0);
}
}
else
{
return false;
}
int nSkillLV = 0;
if(0 == SkillSlot.SKILLINFO.cLockCount)
{
nSkillLV = 1;
}
for(nSkillLV; nSkillLV <= CSkillMgr::MAX_SKILL_LEVEL; ++nSkillLV)
{
CString strSkillLevel;
strSkillLevel.Format(_T("LV %d"), nSkillLV);
m_ctrlSkillLevelEdit.AddString(strSkillLevel);
}
UpdateData(false);
SetUIString(this->m_hWnd, IDC_SKILLADDEDIT_01, "IDC_SKILLADDEDIT_01");
SetWindowText(strWindowText);
return TRUE;
}
void CCharSkillEditDlg::OnBnClickedSkillLVEdit()
{
CCharSkillPage* lpSkillPage = (CCharSkillPage*)m_lpParent;
CModifyCharacter* lpCharacter = lpSkillPage->GetCharacter();
SKILLSLOT& SkillSlot = lpSkillPage->GetLastSkill();
CCharSkillPage::SKILL_EDIT_MODE eSkillMode = lpSkillPage->GetMode();
int iSkillLevel = m_ctrlSkillLevelEdit.GetCurSel();
if(0 == SkillSlot.SKILLINFO.cLockCount)
{
++iSkillLevel; // 0<>ܰ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><ECBFA1> <20>޺<EFBFBD><DEBA>ڽ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> + 1
}
if((CCharSkillPage::MODE_EMPTY != eSkillMode) && (-1 != iSkillLevel))
{
SkillSlot.SKILLINFO.cSkillLevel = (char)iSkillLevel;
CPacketMgr::GetInstance()->SendPktSkillEdit(
lpCharacter->GetUID(), lpCharacter->GetCID(), lpCharacter->GetServerGroup(),
lpCharacter->GetClientKey(), SkillSlot.SKILLINFO.wSkill, (char)iSkillLevel,
SkillSlot.SKILLINFO.cLockCount, lpSkillPage->GetMode());
}
EndDialog(IDOK);
}

View File

@@ -0,0 +1,43 @@
#pragma once
#include "afxwin.h"
/*!
\class CCharSkillEditDlg
<09><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CCharSkillEditDlg : public CDialog
{
DECLARE_DYNAMIC(CCharSkillEditDlg)
public:
CCharSkillEditDlg(unsigned char cDlgType, CWnd* pParent = NULL);
virtual ~CCharSkillEditDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARSKILLEDITDLG };
enum DLG_TYPE
{
SKILL_ADD = 1,
SKILL_EDIT = 2,
SKILL_DEL = 3
};
protected:
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
CWnd* m_lpParent;
unsigned char m_cDlgType;
CString m_strSkillName;
CComboBox m_ctrlSkillLevelEdit;
unsigned char m_cSkillLevel;
afx_msg void OnBnClickedSkillLVEdit();
};

View File

@@ -0,0 +1,432 @@
// CharSkillPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharSkillPage.h"
#include "CharSkillEditDlg.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include "ListCtrlSortClass.h"
#include <Log/ServerLog.h>
#include <Skill/SkillMgr.h>
#include <Character/ModifyCharacter.h>
#include <Utility/Math/Math.h>
// CCharSkillPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharSkillPage, CPropertyPage)
CCharSkillPage::CCharSkillPage()
: CPropertyPage(CCharSkillPage::IDD)
, m_dwSkillMaxNum(0)
, m_dwSkillUseNum(0)
, m_dwDocKey(0)
, m_ContextType(CONTEXT_MENU_TYPE::NONE)
, m_EditMode(SKILL_EDIT_MODE::MODE_EMPTY)
, m_bSortListAsc(false)
{
}
CCharSkillPage::~CCharSkillPage()
{
}
void CCharSkillPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CHARSKILLLIST, m_ctrlCharSkillList);
DDX_Control(pDX, IDC_SKILL_LIST, m_ctrlWantSkillList);
DDX_Text(pDX, IDC_SKILL_MAXNUM, m_dwSkillMaxNum);
DDX_Text(pDX, IDC_SKILL_USENUM, m_dwSkillUseNum);
}
BEGIN_MESSAGE_MAP(CCharSkillPage, CPropertyPage)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_SKILL_INSERT, OnSkillAddCM)
ON_COMMAND(ID_CHARSKILLEDITCM, OnSkillEditCM)
ON_COMMAND(ID_CHARSKILLDELCM, OnSkillDelCM)
ON_NOTIFY(NM_DBLCLK, IDC_CHARSKILLLIST, OnNMDblclkCharskilllist)
ON_LBN_DBLCLK(IDC_SKILL_LIST, OnLbnDblclkSkillList)
ON_BN_CLICKED(IDC_SKILLPAGE_CLIPSKILL_BTN, OnBnClickedSkillpageClipskillBtn)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_CHARSKILLLIST, OnLvnColumnclickCharskilllist)
END_MESSAGE_MAP()
// CCharSkillPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharSkillPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlCharSkillList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCharSkillList.InsertColumn(0, GetLocalString("SLOT_NUM"), LVCFMT_LEFT, 40);
m_ctrlCharSkillList.InsertColumn(1, GetLocalString("SKILL_ID"), LVCFMT_LEFT, 75);
m_ctrlCharSkillList.InsertColumn(2, GetLocalString("SKILL_NAME"), LVCFMT_LEFT, 140);
m_ctrlCharSkillList.InsertColumn(3, GetLocalString("SKILL_TYPE"), LVCFMT_LEFT, 80);
m_ctrlCharSkillList.InsertColumn(4, _T("LV"), LVCFMT_LEFT, 65);
SetUIString(this->m_hWnd, IDC_SKILLPAGE_01, "IDC_SKILLPAGE_01");
SetUIString(this->m_hWnd, IDC_SKILLPAGE_02, "IDC_SKILLPAGE_02");
SetUIString(this->m_hWnd, IDC_SKILLPAGE_03, "IDC_SKILLPAGE_03");
SetUIString(this->m_hWnd, IDC_SKILLPAGE_04, "IDC_SKILLPAGE_04");
SetUIString(this->m_hWnd, IDC_SKILLPAGE_CLIPSKILL_BTN, "IDC_SKILLPAGE_CLIPSKILL_BTN");
return TRUE;
}
bool CCharSkillPage::SetSkillPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if((0 != dwDocKey) && (NULL != lpModifyCharacter))
{
m_lpSkillPageInfo = lpModifyCharacter;
m_dwDocKey = dwDocKey;
lpModifyCharacter->SetClientKey(dwDocKey);
return true;
}
return false;
}
void CCharSkillPage::SetSkillPage(CModifyCharacter* lpModifyCharacter)
{
m_ctrlCharSkillList.DeleteAllItems();
m_ctrlWantSkillList.ResetContent();
if(NULL == lpModifyCharacter)
{
return;
}
SetSkill(lpModifyCharacter->GetSkill());
SetAcquirableSkillList();
m_dwSkillMaxNum = lpModifyCharacter->GetMaxSkillPoint();
m_dwSkillUseNum = lpModifyCharacter->GetSkillPoint();
UpdateData(false);
}
void CCharSkillPage::SetSkill(SKILL& Skill)
{
for(int nSlotIndex = 0; nSlotIndex < Skill.wSlotNum; ++nSlotIndex)
{
SKILLSLOT& Slot = Skill.SSlot[nSlotIndex];
const Skill::ProtoType* lpPrototype =
CSkillMgr::GetInstance().GetSkillProtoType(Slot.SKILLINFO.wSkill);
if(NULL != lpPrototype) // <20><><EFBFBD>׷<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>;
{
unsigned char cSkillLockCount = Slot.SKILLINFO.cLockCount;
const Skill::ProtoType ProtoType = lpPrototype[cSkillLockCount];
CString strForFormat;
int nRow = m_ctrlCharSkillList.GetItemCount();
strForFormat.Format(_T("%d"), nSlotIndex); // <20><><EFBFBD><EFBFBD> <20><>ȣ
m_ctrlCharSkillList.InsertItem(nRow, strForFormat);
strForFormat.Format(_T("0x%x %d"), ProtoType.m_usSkill_ID, cSkillLockCount); // <20><>ų ID, <20><> ī<><C4AB>Ʈ
m_ctrlCharSkillList.SetItemText(nRow, 1, strForFormat);
m_ctrlCharSkillList.SetItemText(nRow, 2, CONV_CLISTR(ProtoType.m_SpriteInfo.m_szName)); // <20><>ų <20><>
m_ctrlCharSkillList.SetItemText(nRow, 3, GetSkillTypeString(ProtoType.m_eSkillType)); // <20><>ų Ÿ<><C5B8>
strForFormat.Format(_T("%d"), ((int) Slot.SKILLINFO.cSkillLevel)); // <20><>ų <20><><EFBFBD><EFBFBD>
m_ctrlCharSkillList.SetItemText(nRow, 4, strForFormat);
}
else
{
/*
ERRLOG3(g_Log, "<22><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>. CID: %u, <20><>ųID: 0x%x, <20><><EFBFBD><EFBFBD>: %d",
m_lpSkillPageInfo->GetCID(), Slot.SKILLINFO.wSkill, nSlotIndex);
*/
}
}
}
void CCharSkillPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
m_ContextType = CONTEXT_MENU_TYPE::NONE;
if((pWnd->GetSafeHwnd() == m_ctrlCharSkillList.GetSafeHwnd())
&& (1 == m_ctrlCharSkillList.GetSelectedCount()))
{
m_ContextType = IN_SKILL_LIST;
}
else if((pWnd->GetSafeHwnd() == m_ctrlWantSkillList.GetSafeHwnd())
&& (LB_ERR != m_ctrlWantSkillList.GetCurSel()))
{
m_ContextType = IN_WANTSKILL_LIST;
}
if(NONE != m_ContextType)
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(3);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_CHARSKILLEDITCM, GetLocalString("MENU_020"));
pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_CHARSKILLDELCM, GetLocalString("MENU_021"));
pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_SKILL_INSERT, GetLocalString("MENU_022"));
if(IN_SKILL_LIST == m_ContextType)
{
pContextMenu->DeleteMenu(ID_SKILL_INSERT, MF_POPUP | MF_BYCOMMAND);
}
else if(IN_WANTSKILL_LIST == m_ContextType)
{
pContextMenu->DeleteMenu(ID_CHARSKILLDELCM, MF_POPUP | MF_BYCOMMAND);
pContextMenu->DeleteMenu(ID_CHARSKILLEDITCM, MF_POPUP | MF_BYCOMMAND);
}
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
bool CCharSkillPage::SetManageSkillInfo()
{
ZeroMemory(&m_ManageSkill, sizeof(SKILLSLOT));
TCHAR szSkillID[32];
TCHAR cSkillLockCount = 0;
int nSelIndex = -1;
TCHAR szGetString[256];
if(IN_WANTSKILL_LIST == m_ContextType) // <20><>ų <20>߰<EFBFBD>
{
nSelIndex = m_ctrlWantSkillList.GetCurSel();
if(-1 != nSelIndex)
m_ctrlWantSkillList.GetText(nSelIndex, szGetString);
}
else if(IN_SKILL_LIST == m_ContextType) // <20><>ų <20><><EFBFBD><EFBFBD>
{
nSelIndex = m_ctrlCharSkillList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != nSelIndex)
m_ctrlCharSkillList.GetItemText(nSelIndex, 1, szGetString, sizeof(szGetString));
}
if((NULL != szGetString) && (-1 != nSelIndex))
{
_stscanf(szGetString, _T("%s %c"), szSkillID, &cSkillLockCount);
m_ManageSkill.SKILLINFO.wSkill = Math::Convert::Atos(szSkillID);
m_ManageSkill.SKILLINFO.cLockCount = cSkillLockCount - 48; // ASCII <20>ڵ<EFBFBD> 48 = 0 -_ -?
return true;
}
return false;
}
// <20><>ų <20>߰<EFBFBD>
void CCharSkillPage::OnSkillAddCM()
{
if(LB_ERR != m_ctrlWantSkillList.GetCurSel())
{
if(SetManageSkillInfo())
{
m_EditMode = SKILL_EDIT_MODE::MODE_CREATE;
CCharSkillEditDlg Dlg(CCharSkillEditDlg::SKILL_ADD, this);
Dlg.DoModal();
}
}
}
void CCharSkillPage::OnLbnDblclkSkillList()
{
m_ContextType = IN_WANTSKILL_LIST; // SetManageSkillInfo<66><6F><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
OnSkillAddCM();
}
// <20><>ų <20><><EFBFBD><EFBFBD>
void CCharSkillPage::OnSkillEditCM()
{
if(1 == m_ctrlCharSkillList.GetSelectedCount())
{
if(SetManageSkillInfo())
{
m_EditMode = SKILL_EDIT_MODE::MODE_EDIT;
CCharSkillEditDlg Dlg(CCharSkillEditDlg::SKILL_EDIT, this);
Dlg.DoModal();
}
}
}
void CCharSkillPage::OnNMDblclkCharskilllist(NMHDR *pNMHDR, LRESULT *pResult)
{
m_ContextType = IN_SKILL_LIST; // SetManageSkillInfo<66><6F><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
OnSkillEditCM();
*pResult = 0;
}
// <20><>ų <20><><EFBFBD><EFBFBD>
void CCharSkillPage::OnSkillDelCM()
{
if(1 == m_ctrlCharSkillList.GetSelectedCount())
{
if(SetManageSkillInfo())
{
m_EditMode = SKILL_EDIT_MODE::MODE_DELETE;
CPacketMgr::GetInstance()->SendPktSkillEdit(m_lpSkillPageInfo->GetUID(), m_lpSkillPageInfo->GetCID(),
m_lpSkillPageInfo->GetServerGroup(), m_lpSkillPageInfo->GetClientKey(),
m_ManageSkill.SKILLINFO.wSkill, 0, 0, m_EditMode);
}
}
}
// <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> ǥ<><C7A5>
void CCharSkillPage::SetAcquirableSkillList()
{
m_ctrlWantSkillList.ResetContent();
const unsigned short MAX_SKILL = 255; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><>ų<EFBFBD><C5B3> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>;)
CSkillID::isListSkillPos itrPos = CSkillID::GetInstance().begin();
CSkillID::isListSkillPos itrEnd = CSkillID::GetInstance().end();
while(itrEnd != itrPos)
{
const Skill::ProtoType* lpPrototype =
CSkillMgr::GetInstance().GetSkillProtoType(*itrPos);
if(NULL != lpPrototype)
{
SKILLSLOT Slot;
Slot.dwSkillSlot = 0;
Slot.SKILLINFO.cSkillLevel = 0;
Slot.SKILLINFO.wSkill = lpPrototype->m_usSkill_ID;
unsigned char cSkillClass = static_cast<unsigned char>
((((lpPrototype->m_usSkill_ID - Skill::SKILL_MASK) & 0xFF00) >> 8) & 0x00FF);
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> <20>Ǻ<EFBFBD>
bool bIsLearnSkill =
(CClass::GetRace(cSkillClass) == m_lpSkillPageInfo->GetRace())
&& (!lpPrototype->m_bIsClassSkill);
if(bIsLearnSkill)
{
for(int nLockCount = 0; nLockCount < CSkillMgr::MAX_SKILL_LOCKCOUNT; ++nLockCount)
{
const Skill::ProtoType& Prototype = lpPrototype[nLockCount];
Slot.SKILLINFO.cLockCount = nLockCount;
if(Prototype.m_usSkill_ID != lpPrototype->m_usSkill_ID)
{
break;
}
if(PktBase::NO_SERVER_ERR ==
m_lpSkillPageInfo->ReadSkill(Slot, Slot.SKILLINFO.wSkill, nLockCount))
{
CString strFormat;
strFormat.Format( _T("0x%x %d [%s]"),
Prototype.m_usSkill_ID, nLockCount, Prototype.m_SpriteInfo.m_szName);
// <20><><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3>
if(0 != Prototype.m_usChildSkill)
{
const Skill::ProtoType* lpChildSkill =
CSkillMgr::GetInstance().GetSkillProtoType(Prototype.m_usChildSkill);
if(NULL != lpChildSkill)
{
strFormat.AppendFormat(_T("><[%s]"),
lpChildSkill->m_SpriteInfo.m_szName);
}
}
else if(0 != Prototype.m_usParentSkill)
{
const Skill::ProtoType* lpParentSkill =
CSkillMgr::GetInstance().GetSkillProtoType(Prototype.m_usParentSkill);
if(NULL != lpParentSkill)
{
strFormat.AppendFormat(_T("><[%s]"),
lpParentSkill->m_SpriteInfo.m_szName);
}
}
m_ctrlWantSkillList.AddString(strFormat);
}
}
}
}
else
{
ERRLOG1(g_Log,
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD> <20><>ų ID <20>߻<EFBFBD>. <20><>ųID: %s", *itrPos);
}
++itrPos;
}
}
SKILLSLOT& CCharSkillPage::GetLastSkill()
{
return m_ManageSkill;
}
void CCharSkillPage::OnBnClickedSkillpageClipskillBtn()
{
ClippingListCtrl(m_ctrlCharSkillList, 5, true);
}
void CCharSkillPage::OnLvnColumnclickCharskilllist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlCharSkillList, m_iSortListItem);
*pResult = 0;
}
void CCharSkillPage::SortListWndItem(CListCtrl* lpListCtrl, int iCol)
{
CListCtrlSortClass SortClass(lpListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::SLOT_NUM:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::SKILL_ID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::SKILL_NAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::SKILL_TYPE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
case SORT_TYPE::SKILL_LEVEL:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
}
}

View File

@@ -0,0 +1,79 @@
#pragma once
#include "afxcmn.h"
class CModifyCharacter;
class SkillMgr;
/*!
\class CCharSkillPage
ij<><C4B3><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharSkillPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharSkillPage)
public:
CCharSkillPage();
virtual ~CCharSkillPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARSKILLPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
public:
enum CONTEXT_MENU_TYPE { NONE, IN_SKILL_LIST, IN_WANTSKILL_LIST };
enum SORT_TYPE { SLOT_NUM, SKILL_ID, SKILL_NAME, SKILL_TYPE, SKILL_LEVEL };
enum SKILL_EDIT_MODE
{
MODE_EMPTY = 0,
MODE_CREATE = 1,
MODE_EDIT = 2,
MODE_DELETE = 3
};
private:
bool m_bSortListAsc;
int m_iSortListItem;
CModifyCharacter* m_lpSkillPageInfo;
unsigned int m_dwDocKey;
SKILLSLOT m_ManageSkill;
CListCtrl m_ctrlCharSkillList;
CListBox m_ctrlWantSkillList;
unsigned int m_dwSkillMaxNum;
unsigned int m_dwSkillUseNum;
CONTEXT_MENU_TYPE m_ContextType;
SKILL_EDIT_MODE m_EditMode;
void SetSkill(SKILL& Skill);
bool SetManageSkillInfo();
void SetAcquirableSkillList();
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnSkillAddCM();
afx_msg void OnSkillEditCM();
afx_msg void OnSkillDelCM();
afx_msg void OnLbnDblclkSkillList();
afx_msg void OnNMDblclkCharskilllist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnColumnclickCharskilllist(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedSkillpageClipskillBtn();
public:
bool SetSkillPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetSkillPage(CModifyCharacter* lpModifyCharacter);
SKILLSLOT& GetLastSkill();
SKILL_EDIT_MODE GetMode() { return m_EditMode; }
CModifyCharacter* GetCharacter() { return m_lpSkillPageInfo; }
};

View File

@@ -0,0 +1,217 @@
// CharSocietyPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharSocietyPage.h"
#include "PacketManager.h"
#include "MainFrm.h"
#include "GlobalFunctions.h"
#include <Community/FriendList.h>
#include <Character/ModifyCharacter.h>
// CCharSocietyPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharSocietyPage, CPropertyPage)
CCharSocietyPage::CCharSocietyPage()
: CPropertyPage(CCharSocietyPage::IDD)
, m_lpModifyCharacter(NULL)
, m_dwDocKey(0)
, m_dwPartyID(0)
, m_dwGID(0)
{
}
CCharSocietyPage::~CCharSocietyPage()
{
}
void CCharSocietyPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CHARPARTYLIST, m_ctrlCharPartyList);
DDX_Control(pDX, IDC_CHARFRIENDLIST, m_ctrlCharFriendList);
DDX_Control(pDX, IDC_CHARBANLIST, m_ctrlCharBanList);
DDX_Text(pDX, IDC_PARTY_ID, m_dwPartyID);
DDX_Text(pDX, IDC_CHARACTERPAGE_GID, m_dwGID);
}
BEGIN_MESSAGE_MAP(CCharSocietyPage, CPropertyPage)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_NEWDOC_CHARSEARCH, OnNewdocCharsearch)
ON_BN_CLICKED(IDC_PARTYPAGE_PARTYCLIP_BTN, OnBnClickedPartypagePartyclipBtn)
ON_BN_CLICKED(IDC_PARTYPAGE_BANCLIP_BTN, OnBnClickedPartypageBanclipBtn)
ON_BN_CLICKED(IDC_PARTYPAGE_FRICLIP_BTN, OnBnClickedPartypageFriclipBtn)
END_MESSAGE_MAP()
// CCharSocietyPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharSocietyPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlCharPartyList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCharFriendList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCharBanList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlCharPartyList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 95);
m_ctrlCharPartyList.InsertColumn(1, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 130);
m_ctrlCharFriendList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 95);
m_ctrlCharFriendList.InsertColumn(1, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 130);
m_ctrlCharBanList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 95);
m_ctrlCharBanList.InsertColumn(1, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 130);
SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_01, "IDC_SOCIETYPAGE_01");
SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_02, "IDC_SOCIETYPAGE_02");
SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_03, "IDC_SOCIETYPAGE_03");
SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_04, "IDC_SOCIETYPAGE_04");
SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_05, "IDC_SOCIETYPAGE_05");
SetUIString(this->m_hWnd, IDC_SOCIETYPAGE_06, "IDC_SOCIETYPAGE_06");
SetUIString(this->m_hWnd, IDC_PARTYPAGE_PARTYCLIP_BTN, "IDC_PARTYPAGE_PARTYCLIP_BTN");
SetUIString(this->m_hWnd, IDC_PARTYPAGE_BANCLIP_BTN, "IDC_PARTYPAGE_BANCLIP_BTN");
SetUIString(this->m_hWnd, IDC_PARTYPAGE_FRICLIP_BTN, "IDC_PARTYPAGE_FRICLIP_BTN");
return TRUE;
}
bool CCharSocietyPage::SetSocietyPageData( unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter )
{
if(dwDocKey != 0)
{
m_lpModifyCharacter = lpModifyCharacter;
m_dwDocKey = dwDocKey;
}
return true;
}
void CCharSocietyPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
bool bIsSel = false;
if((pWnd->GetSafeHwnd() == m_ctrlCharPartyList.GetSafeHwnd())
&& (m_ctrlCharPartyList.GetSelectedCount() == 1))
{
bIsSel = true;
m_lpSelList = &m_ctrlCharPartyList;
}
else if((pWnd->GetSafeHwnd() == m_ctrlCharBanList.GetSafeHwnd())
&& (m_ctrlCharBanList.GetSelectedCount() == 1))
{
bIsSel = true;
m_lpSelList = &m_ctrlCharBanList;
}
else if((pWnd->GetSafeHwnd() == m_ctrlCharFriendList.GetSafeHwnd())
&& (m_ctrlCharFriendList.GetSelectedCount() == 1))
{
bIsSel = true;
m_lpSelList = &m_ctrlCharFriendList;
}
if(false == bIsSel)
{
return;
}
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(4);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_NEWDOC_CHARSEARCH, GetLocalString("MENU_023"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
// <20><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> --------------------------------------------------------------
class CMakeItList
{
public:
CMakeItList(CListCtrl& ctrlFriendList)
: m_FriendList(ctrlFriendList) { ; }
bool operator() (CFriendList::Rebind& rebind)
{
CString strCID;
strCID.Format(_T("%d"), rebind.GetCID());
m_FriendList.InsertItem(0, strCID);
m_FriendList.SetItemText(0, 1, rebind.GetCharacterName());
return true;
}
bool operator() (CBanList::Rebind& rebind)
{
CString strCID;
strCID.Format(_T("%d"), rebind.GetCID());
m_FriendList.InsertItem(0, strCID);
m_FriendList.SetItemText(0, 1, rebind.GetCharacterName());
return true;
}
private:
CListCtrl& m_FriendList;
};
//---------------------------------------------------------------------------------------------
void CCharSocietyPage::MakeItFriendList()
{
if(NULL != m_lpModifyCharacter)
{
m_lpModifyCharacter->GetFriendList().Process(CMakeItList(m_ctrlCharFriendList));
}
}
void CCharSocietyPage::MakeItBanList()
{
if(NULL != m_lpModifyCharacter)
{
m_lpModifyCharacter->GetBanList().Process(CMakeItList(m_ctrlCharBanList));
}
}
void CCharSocietyPage::SetSocietyPage(CModifyCharacter* lpModifyCharacter)
{
m_ctrlCharFriendList.DeleteAllItems();
m_ctrlCharBanList.DeleteAllItems();
if(NULL != lpModifyCharacter)
{
m_dwPartyID = lpModifyCharacter->GetPID();
m_dwGID = lpModifyCharacter->GetGID();
MakeItFriendList();
MakeItBanList();
UpdateData(false);
}
}
void CCharSocietyPage::OnNewdocCharsearch()
{
int nIndex = m_lpSelList->GetNextItem(-1, LVIS_SELECTED);
CString strCID = m_lpSelList->GetItemText(nIndex, 0);
CPacketMgr::GetInstance()->SendSearchID(
PktAdminMgr::PktSearchID::SearchCID, m_lpModifyCharacter->GetServerGroup(), _ttoi(strCID));
}
void CCharSocietyPage::OnBnClickedPartypagePartyclipBtn()
{
ClippingListCtrl(m_ctrlCharPartyList, 2, true);
}
void CCharSocietyPage::OnBnClickedPartypageBanclipBtn()
{
ClippingListCtrl(m_ctrlCharBanList, 2, true);
}
void CCharSocietyPage::OnBnClickedPartypageFriclipBtn()
{
ClippingListCtrl(m_ctrlCharFriendList, 2, true);
}

View File

@@ -0,0 +1,53 @@
#pragma once
#include "afxcmn.h"
class CModifyCharacter;
/*!
\class CCharSocietyPage
ij<><C4B3><EFBFBD><EFBFBD> ģ<><C4A3>, <20>ź<EFBFBD>, <20><>Ƽ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharSocietyPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharSocietyPage)
public:
CCharSocietyPage();
virtual ~CCharSocietyPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARSOCIETYPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
afx_msg void OnContextMenu( CWnd* pWnd, CPoint point );
private:
CModifyCharacter* m_lpModifyCharacter;
unsigned int m_dwDocKey;
unsigned long m_dwGID;
unsigned long m_dwPartyID;
CListCtrl* m_lpSelList;
CListCtrl m_ctrlCharPartyList;
CListCtrl m_ctrlCharFriendList;
CListCtrl m_ctrlCharBanList;
void MakeItFriendList();
void MakeItBanList();
afx_msg void OnNewdocCharsearch();
afx_msg void OnBnClickedPartypagePartyclipBtn();
afx_msg void OnBnClickedPartypageBanclipBtn();
afx_msg void OnBnClickedPartypageFriclipBtn();
public:
bool SetSocietyPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetSocietyPage(CModifyCharacter* lpModifyCharacter);
};

View File

@@ -0,0 +1,243 @@
// CharStatusPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharStatusPage.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include <Character/ModifyCharacter.h>
#include <Creature/CreatureStructure.h>
#include <Creature/Character/ExpTable.h>
#include <Network/Protocol/Ryl_AdminMgrProtocol.h>
// CCharStatusPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharStatusPage, CPropertyPage)
CCharStatusPage::CCharStatusPage()
: CPropertyPage(CCharStatusPage::IDD)
, m_lpStatusPageInfo( NULL )
, m_dwFame(0)
, m_dwMileage(0)
, m_dwLV(0)
, m_dwSTR(0)
, m_dwDEX(0)
, m_dwWIS(0)
, m_dwINT(0)
, m_dwCON(0)
, m_dwIP(0)
, m_dwHP(0)
, m_dwMP(0)
, m_dwEXP(0)
, m_dwEXPLimit(0)
, m_dwDocKey(0)
{
}
CCharStatusPage::~CCharStatusPage()
{
}
void CCharStatusPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CHARSEX, m_ctrlCharSex);
DDX_Control(pDX, IDC_CHARHAIR, m_ctrlCharHair);
DDX_Control(pDX, IDC_CHARFACE, m_ctrlCharFace);
DDX_Control(pDX, IDC_CHARNATIONALITY, m_ctrlCharRace);
DDX_Control(pDX, IDC_CHARCLASS, m_ctrlCharClass);
DDX_Text(pDX, IDC_STATUS_FAME, m_dwFame);
DDX_Text(pDX, IDC_STATUS_MILEAGE, m_dwMileage);
DDX_Text(pDX, IDC_STATUS_LV, m_dwLV);
DDX_Text(pDX, IDC_STATUS_STR, m_dwSTR);
DDX_Text(pDX, IDC_STATUS_DEX, m_dwDEX);
DDX_Text(pDX, IDC_STATUS_WIS, m_dwWIS);
DDX_Text(pDX, IDC_STATUS_INT, m_dwINT);
DDX_Text(pDX, IDC_STATUS_CON, m_dwCON);
DDX_Text(pDX, IDC_STATUS_IP, m_dwIP);
DDX_Text(pDX, IDC_STATUS_HP, m_dwHP);
DDX_Text(pDX, IDC_STATUS_MP, m_dwMP);
DDX_Text(pDX, IDC_STATUS_EXP, m_dwEXP);
DDX_Text(pDX, IDC_STATUS_EXPLIMIT, m_dwEXPLimit);
}
BEGIN_MESSAGE_MAP(CCharStatusPage, CPropertyPage)
ON_BN_CLICKED(IDC_UPDATE_STATUS, OnBnClickedUpdateStatus)
END_MESSAGE_MAP()
// CCharStatusPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharStatusPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// <20><><EFBFBD><EFBFBD>
m_ctrlCharSex.InsertString(0, GetLocalString("MALE"));
m_ctrlCharSex.InsertString(1, GetLocalString("FEMALE"));
// <20>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
for(int nIndex = 1; nIndex < 8; ++nIndex)
{
CString strFaceandHair;
strFaceandHair.Format(_T("Type %d"), nIndex);
m_ctrlCharFace.AddString(strFaceandHair);
m_ctrlCharHair.AddString(strFaceandHair);
}
// <20><><EFBFBD><EFBFBD> (<28><><EFBFBD>߿<EFBFBD> <20>޺<EFBFBD><DEBA>ڽ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20>μ<EFBFBD>Ʈ<EFBFBD>Ҷ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>)
for(unsigned int nIndex = 0; nIndex < CClass::MAX_RACE; ++nIndex)
{
m_ctrlCharRace.InsertString(nIndex, GetRaceString(nIndex));
}
// Ŭ<><C5AC><EFBFBD><EFBFBD> (<28><><EFBFBD>߿<EFBFBD> <20>޺<EFBFBD><DEBA>ڽ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20>μ<EFBFBD>Ʈ<EFBFBD>Ҷ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>)
for(int nClass = 0; nClass < CClass::MAX_CLASS; ++nClass)
{
m_ctrlCharClass.InsertString(nClass, GetClassString(nClass));
}
if(NULL == m_lpStatusPageInfo)
{
GetDlgItem(IDC_UPDATE_STATUS)->EnableWindow(false);
}
SetUIString(this->m_hWnd, IDC_STATUSPAGE_01, "IDC_STATUSPAGE_01");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_02, "IDC_STATUSPAGE_02");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_03, "IDC_STATUSPAGE_03");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_04, "IDC_STATUSPAGE_04");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_05, "IDC_STATUSPAGE_05");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_06, "IDC_STATUSPAGE_06");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_07, "IDC_STATUSPAGE_07");
SetUIString(this->m_hWnd, IDC_STATUSPAGE_08, "IDC_STATUSPAGE_08");
SetUIString(this->m_hWnd, IDC_UPDATE_STATUS, "IDC_UPDATE_STATUS");
SetUIString(this->m_hWnd, IDC_STATCHANCE, "ADDED_STRING_082");
SetUIString(this->m_hWnd, IDC_NATION_STATIC, "ADDED_STRING_083");
return TRUE;
}
bool CCharStatusPage::SetStatusPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if(NULL != lpModifyCharacter && 0 != dwDocKey)
{
m_lpStatusPageInfo = lpModifyCharacter;
m_dwDocKey = dwDocKey;
GetDlgItem(IDC_UPDATE_STATUS)->EnableWindow(true);
return true;
}
else
{
GetDlgItem(IDC_UPDATE_STATUS)->EnableWindow(false);
}
return false;
}
bool CCharStatusPage::SetStatusPage(CModifyCharacter* lpCharInfo)
{
m_dwEXPLimit = 0;
if(NULL != lpCharInfo)
{
PktAdminMgr::CHAR_STATUS_ST CharStatusInfo;
lpCharInfo->GetModifyCharStatus(CharStatusInfo);
m_ctrlCharRace.SetCurSel((int)lpCharInfo->GetRace());
m_dwLV = (unsigned int)CharStatusInfo.m_cLevel;
m_ctrlCharClass.SetCurSel((unsigned int)CharStatusInfo.m_nClass);
m_dwEXP = (unsigned long)CharStatusInfo.m_dwExp;
if(m_dwLV > 0 && m_dwLV < Creature::PC_MAX_LEVEL)
m_dwEXPLimit = (unsigned long)EXP::ExpTable[m_dwLV-1];
m_ctrlCharSex.SetCurSel ((unsigned int)CharStatusInfo.m_cSex - 1);
m_ctrlCharFace.SetCurSel((unsigned int)CharStatusInfo.m_cFace - 1);
m_ctrlCharHair.SetCurSel((unsigned int)CharStatusInfo.m_cHair - 1);
m_dwFame = (unsigned long)CharStatusInfo.m_dwFame;
m_dwMileage = (unsigned long)CharStatusInfo.m_dwMileage;
m_dwSTR = (unsigned int)CharStatusInfo.m_nSTR;
m_dwDEX = (unsigned int)CharStatusInfo.m_nDEX;
m_dwCON = (unsigned int)CharStatusInfo.m_nCON;
m_dwWIS = (unsigned int)CharStatusInfo.m_nWIS;
m_dwINT = (unsigned int)CharStatusInfo.m_nINT;
m_dwIP = (unsigned int)CharStatusInfo.m_nIP;
m_dwHP = (unsigned long)lpCharInfo->GetMaxHP();
m_dwMP = (unsigned long)lpCharInfo->GetMaxMP();
SetDlgItemText(IDC_STATUS_NATION, GetNationString(lpCharInfo->GetUserNation()));
SetDlgItemInt(IDC_STATUS_CHANCE, (unsigned int)lpCharInfo->GetChance(), false);
}
else
{
m_dwFame = m_dwMileage = m_dwLV = 0;
m_dwSTR = m_dwDEX = m_dwCON = m_dwWIS = m_dwINT = m_dwIP = 0;
m_dwHP = m_dwMP = 0;
m_dwEXP = 0;
m_ctrlCharRace.SetCurSel(CB_ERR);
m_ctrlCharClass.SetCurSel(CB_ERR);
m_ctrlCharSex.SetCurSel(CB_ERR);
m_ctrlCharFace.SetCurSel(CB_ERR);
m_ctrlCharHair.SetCurSel(CB_ERR);
SetDlgItemInt(IDC_STATUS_CHANCE, 0, false);
}
UpdateData(false);
return true;
}
void CCharStatusPage::OnBnClickedUpdateStatus()
{
PktAdminMgr::CHAR_STATUS_ST stStatus;
UpdateData(true);
CString strGetString;
m_ctrlCharRace.GetLBText(m_ctrlCharRace.GetCurSel(), strGetString);
if(0 == strGetString.CompareNoCase(_T("UNKNOWN")))
{
MessageBox(GetLocalString("MSG_0168"));
return;
}
stStatus.m_cRace = (char)m_ctrlCharRace.GetCurSel();
stStatus.m_cLevel = m_dwLV;
stStatus.m_nClass = m_ctrlCharClass.GetCurSel();
stStatus.m_dwExp = m_dwEXP;
stStatus.m_cFace = m_ctrlCharFace.GetCurSel() + 1;
stStatus.m_cHair = m_ctrlCharHair.GetCurSel() + 1;
stStatus.m_cSex = m_ctrlCharSex.GetCurSel() + 1;
stStatus.m_dwFame = m_dwFame;
stStatus.m_dwMileage = m_dwMileage;
stStatus.m_nCON = m_dwCON;
stStatus.m_nDEX = m_dwDEX;
stStatus.m_nINT = m_dwINT;
stStatus.m_nSTR = m_dwSTR;
stStatus.m_nWIS = m_dwWIS;
stStatus.m_nIP = m_dwIP;
stStatus.m_cChance = (char)GetDlgItemInt(IDC_STATUS_CHANCE, 0, false);
if(NULL != m_lpStatusPageInfo)
{
CPacketMgr::GetInstance()->SendUpdateStatus(m_lpStatusPageInfo->GetServerGroup(),
m_lpStatusPageInfo->GetCID(), m_lpStatusPageInfo->GetUID(), m_dwDocKey, stStatus);
}
}

View File

@@ -0,0 +1,60 @@
#pragma once
#include "afxwin.h"
class CModifyCharacter;
/*!
\class CCharStatusPage
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharStatusPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharStatusPage)
public:
CCharStatusPage();
virtual ~CCharStatusPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CHARSTATUSPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
CComboBox m_ctrlCharSex;
CComboBox m_ctrlCharHair;
CComboBox m_ctrlCharFace;
CComboBox m_ctrlCharRace;
CComboBox m_ctrlCharClass;
unsigned long m_dwFame;
unsigned long m_dwMileage;
unsigned int m_dwLV;
unsigned int m_dwSTR;
unsigned int m_dwDEX;
unsigned int m_dwWIS;
unsigned int m_dwINT;
unsigned int m_dwCON;
unsigned int m_dwIP;
unsigned int m_dwHP;
unsigned int m_dwMP;
__int64 m_dwEXP;
__int64 m_dwEXPLimit;
CModifyCharacter* m_lpStatusPageInfo;
unsigned int m_dwDocKey;
afx_msg void OnBnClickedUpdateStatus();
public:
bool SetStatusPageData(unsigned int dwDocKey, CModifyCharacter* lpCharInfo);
bool SetStatusPage(CModifyCharacter* lpModifyCharacter);
};

View File

@@ -0,0 +1,161 @@
// TempInventoryPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "CharTempInvenPage.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include <Character/ModifyCharacter.h>
#include <Log/ServerLog.h>
// CCharTempInvenPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CCharTempInvenPage, CPropertyPage)
CCharTempInvenPage::CCharTempInvenPage()
: CPropertyPage(CCharTempInvenPage::IDD)
{
}
CCharTempInvenPage::~CCharTempInvenPage()
{
}
void CCharTempInvenPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TEMPINVEN_LIST, m_ctrlTempInvenList);
}
BEGIN_MESSAGE_MAP(CCharTempInvenPage, CPropertyPage)
ON_NOTIFY(NM_CLICK, IDC_TEMPINVEN_LIST, OnNMClickTempinvenList)
ON_BN_CLICKED(IDC_TEMPINVENCLEAR_BTN, OnBnClickedTempinvenclearBtn)
ON_BN_CLICKED(IDC_TEMPINVENLIST_TO_CLIP_BTN, OnBnClickedTempinvenlistToClipBtn)
END_MESSAGE_MAP()
// CCharTempInvenPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CCharTempInvenPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlTempInvenList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlTempInvenList.InsertColumn(0, GetLocalString("SERIAL"), LVCFMT_LEFT, 130);
m_ctrlTempInvenList.InsertColumn(1, GetLocalString("ITEM_NAME"), LVCFMT_LEFT, 130);
m_ctrlTempInvenList.InsertColumn(2, GetLocalString("ITEM_TYPE"), LVCFMT_LEFT, 85);
m_ctrlTempInvenList.InsertColumn(3, GetLocalString("STACK_ORDER"), LVCFMT_LEFT, 50);
m_ctrlTempInvenList.InsertColumn(4, GetLocalString("QTY"), LVCFMT_LEFT, 50);
SetUIString(this->m_hWnd, IDC_TEMPINVENPAGE_01, "IDC_TEMPINVENPAGE_01");
SetUIString(this->m_hWnd, IDC_TEMPINVENCLEAR_BTN, "IDC_TEMPINVENCLEAR_BTN");
SetUIString(this->m_hWnd, IDC_TEMPINVENLIST_TO_CLIP_BTN, "IDC_TEMPINVENLIST_TO_CLIP_BTN");
return TRUE;
}
bool CCharTempInvenPage::SetTempInvenPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter)
{
if((0 != dwDocKey) && (NULL != lpModifyCharacter))
{
m_dwDocKey = dwDocKey;
m_lpTempInvenPageInfo = lpModifyCharacter;
GetDlgItem(IDC_TEMPINVENCLEAR_BTN)->EnableWindow(true);
return true;
}
else
{
ERRLOG0(g_Log, "<EFBFBD>ӽ<EFBFBD> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
return false;
}
}
void CCharTempInvenPage::SetTempInvenPage(CModifyCharacter* lpModifyCharacter)
{
if(NULL == lpModifyCharacter)
{
ERRLOG0(g_Log, "ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
return;
}
m_ctrlTempInvenList.DeleteAllItems();
Item::CTempInvenContainer& lpTempInventory = lpModifyCharacter->GetTempInven();
Item::CTempInvenContainer::iterator itrCursor = lpTempInventory.begin();
Item::CTempInvenContainer::iterator itrEnd = lpTempInventory.end();
Item::CItem* lpItem = NULL;
unsigned int nStackOrder = 1;
while(itrEnd != itrCursor)
{
lpItem = (*itrCursor);
if(NULL != lpItem)
{
CString strFormat;
const Item::ItemInfo& ItemInfo = lpItem->GetItemInfo();
strFormat.Format(_T("0x%016I64X"), lpItem->GetUID());
m_ctrlTempInvenList.InsertItem(0, strFormat);
strFormat.Format(_T("%s"), ItemInfo.m_SpriteData.m_szName);
m_ctrlTempInvenList.SetItemText(0, 1, strFormat);
strFormat.Format(_T("%s"), lpItem->GetItemTypeName());
m_ctrlTempInvenList.SetItemText(0, 2, strFormat);
strFormat.Format(_T("%d"), nStackOrder);
m_ctrlTempInvenList.SetItemText(0, 3, strFormat);
strFormat.Format(_T("%d"), lpItem->GetNumOrDurability());
m_ctrlTempInvenList.SetItemText(0, 4, strFormat);
// <20>ߺ<EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
std::pair<CModifyCharacter::ModifyCharItemSerialInfo::iterator, bool> returnPair
= lpModifyCharacter->m_ModifyCharItemSerialInfo.insert(lpItem->GetUID());
if(!returnPair.second)
{
lpModifyCharacter->m_OverlapSerialInfo.push_back(lpItem->GetUID());
lpModifyCharacter->SetOwnCopyItemState(true);
}
}
++itrCursor;
++nStackOrder;
}
}
void CCharTempInvenPage::OnNMClickTempinvenList(NMHDR *pNMHDR, LRESULT *pResult)
{
if(g_bItemGrab)
{
g_stMyItemInfo.m_stItemInfo.m_cTakePos = TakeType::TS_TEMPINVEN;
g_stMyItemInfo.m_stItemInfo.m_cXPos = 0;
g_stMyItemInfo.m_stItemInfo.m_cYPos = 0;
g_stMyItemInfo.m_stItemInfo.m_cZPos = 0;
CPacketMgr::GetInstance()->SendCreateItem(m_lpTempInvenPageInfo->GetServerGroup(),
m_lpTempInvenPageInfo->GetCID(), m_lpTempInvenPageInfo->GetUID(),
m_dwDocKey, g_stMyItemInfo.m_stItemInfo);
if(g_stMyItemInfo.m_nModeIndex == MyItemInfo::CREATE_SINGLE)
{
g_bItemGrab = FALSE;
}
}
*pResult = 0;
}
void CCharTempInvenPage::OnBnClickedTempinvenclearBtn()
{
CPacketMgr::GetInstance()->SendItemContainerReset(m_lpTempInvenPageInfo->GetServerGroup(),
m_lpTempInvenPageInfo->GetUID(), m_lpTempInvenPageInfo->GetCID(), m_dwDocKey, TakeType::TS_TEMPINVEN);
}
void CCharTempInvenPage::OnBnClickedTempinvenlistToClipBtn()
{
ClippingListCtrl(m_ctrlTempInvenList, 5, true);
}

View File

@@ -0,0 +1,43 @@
#pragma once
#include "afxcmn.h"
class CModifyCharacter;
/*!
\class CCharTempInvenPage
ij<><C4B3><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CCharTempInvenPage : public CPropertyPage
{
DECLARE_DYNAMIC(CCharTempInvenPage)
public:
CCharTempInvenPage();
virtual ~CCharTempInvenPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_TEMPINVENTORYPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
CModifyCharacter* m_lpTempInvenPageInfo;
unsigned int m_dwDocKey;
CListCtrl m_ctrlTempInvenList;
afx_msg void OnBnClickedTempinvenclearBtn();
afx_msg void OnNMClickTempinvenList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedTempinvenlistToClipBtn();
public:
bool SetTempInvenPageData(unsigned int dwDocKey, CModifyCharacter* lpModifyCharacter);
void SetTempInvenPage(CModifyCharacter* lpModifyCharacter);
};

View File

@@ -0,0 +1,95 @@
#include "stdafx.h"
#include "CharacterDoc.h"
CCharacterDoc::~CCharacterDoc()
{
Destroy();
}
void CCharacterDoc::Destroy()
{
isMapDoc::iterator itr = m_mapCharDoc.begin();
for(;itr != m_mapCharDoc.end(); ++itr)
{
delete itr->second;
}
m_mapCharDoc.clear();
m_listServerInfo.clear();
}
unsigned long CCharacterDoc::PushCharDocInfo(CharDocInfo* lpCharDocInfo)
{
m_mapCharDoc.insert(std::make_pair(++m_dwKey, lpCharDocInfo));
lpCharDocInfo->m_dwDocKey = m_dwKey;
return m_dwKey;
}
CCharacterDoc::CharDocInfo* CCharacterDoc::GetCharDocInfo(unsigned long dwKey)
{
isMapDoc::iterator itr = m_mapCharDoc.find(dwKey);
if(itr != m_mapCharDoc.end())
{
return itr->second;
}
return NULL;
}
bool CCharacterDoc::DeleteCharDocInfo(unsigned long dwKey)
{
isMapDoc::iterator itr = m_mapCharDoc.find(dwKey);
if(itr != m_mapCharDoc.end())
{
delete itr->second;
m_mapCharDoc.erase(itr);
return true;
}
return false;
}
void CCharacterDoc::PushServerGroup(CString strServerName, unsigned long dwServerIndex)
{
m_listServerInfo.push_back(ServerInfo(strServerName, dwServerIndex));
}
bool CCharacterDoc::GetServerIndex(CString strServerName, unsigned long& dwServerIndex)
{
islistServerInfo::iterator pos = m_listServerInfo.begin();
while(pos != m_listServerInfo.end())
{
if(!_tcsicmp((*pos).m_strServerName, strServerName))
{
dwServerIndex = (*pos).m_dwServerIndex;
return true;
}
++pos;
}
return false;
}
bool CCharacterDoc::GetServerName(unsigned long dwServerGroup, CString& strServerName)
{
islistServerInfo::iterator pos = m_listServerInfo.begin();
while(pos != m_listServerInfo.end())
{
if((*pos).m_dwServerIndex == dwServerGroup)
{
strServerName = (*pos).m_strServerName;
return true;
}
++pos;
}
strServerName = _T("UNKNOWN");
return false;
}

View File

@@ -0,0 +1,250 @@
#ifndef _CHARACTER_DOC_H_
#define _CHARACTER_DOC_H_
#include <Pattern/Singleton.h>
#include <Character/ModifyCharacter.h>
#include <DBComponent/RYL_GameDB.h>
class CCharacterDoc : public CStaticSingleton<CCharacterDoc>
{
public:
#pragma pack(1)
// ij<><C4B3><EFBFBD><EFBFBD> ã<><C3A3> <20><EFBFBD><E2BABB><EFBFBD><EFBFBD>
struct In_CharacterIndex
{
TCHAR m_szCharName[16]; // ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD>
unsigned long m_UID; // ij<><C4B3><EFBFBD><EFBFBD> UID
unsigned long m_CID; // ij<><C4B3><EFBFBD><EFBFBD> CID
};
// 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD>
struct In_ServerCharacter
{
unsigned long dwServerGroup; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Index
unsigned char dwCharCount; // <20><><EFBFBD>ϵǾ<CFB5><C7BE>ִ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD>
In_CharacterIndex CharIdx[CGameDB::MAX_CHAR_SLOT]; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
};
// <20>ʿ<EFBFBD><CABF><EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0>ϸ鼭 <20>۾<EFBFBD><DBBE>Ѵ<EFBFBD>.
struct CharDocInfo // MDI<44><49><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD> View<65><77> CCharDocInfo<66><6F> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
{
typedef std::list<In_ServerCharacter> isListCharIdx;
enum STATE
{
EMPTY, // <20>ƹ<EFBFBD><C6B9><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD>
LOADING, // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD>
FINISH // <20>ε<EFBFBD><CEB5><EFBFBD> <20>Ϸ<EFBFBD><CFB7><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD>
};
unsigned char m_cCharacterState;
CDocument* m_ModifyDocument;
bool m_bLoaded;
unsigned long m_dwDocKey;
isListCharIdx m_listTreeInfo; // Ʈ<><C6AE> <20><>Ʈ<EFBFBD>ѿ<EFBFBD><D1BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰԵ<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CModifyCharacter* m_ModifyCharacter; // <20><><EFBFBD><EFBFBD> <20>۾<EFBFBD><DBBE><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
unsigned char m_cOldServerGroup; // Part2Selectable Ÿ<><C5B8><EFBFBD>϶<EFBFBD> <20><><EFBFBD><EFBFBD>
CharDocInfo()
: m_ModifyCharacter(NULL)
, m_bLoaded(false)
, m_ModifyDocument(NULL)
, m_cCharacterState(EMPTY) {}
// <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> new, delete <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ظ<EFBFBD><D8B8>ϸ<EFBFBD> <20>̳<EFBFBD><CCB3><EFBFBD> <20><><EFBFBD><EFBFBD>...
void ReleaseCharacter()
{
if(m_ModifyCharacter)
{
delete m_ModifyCharacter;
m_ModifyCharacter = NULL;
}
}
In_CharacterIndex* GetSrvChar(unsigned long dwServer, unsigned long dwCID)
{
isListCharIdx::iterator pos = m_listTreeInfo.begin();
while(pos != m_listTreeInfo.end())
{
if((*pos).dwServerGroup == dwServer)
{
for(int search = 0; (*pos).dwCharCount > search; search++)
{
if((*pos).CharIdx[search].m_CID == dwCID)
{
return ((*pos).CharIdx + search);
}
}
}
}
return NULL;
}
CModifyCharacter* Createcharacter()
{
ReleaseCharacter();
if(NULL == m_ModifyCharacter)
{
m_ModifyCharacter = new CModifyCharacter;
}
return m_ModifyCharacter;
}
~CharDocInfo()
{
m_listTreeInfo.clear();
if(NULL != m_ModifyCharacter)
{
delete m_ModifyCharacter;
}
}
};
struct Zone
{
enum
{
MAX_NAME = 100,
};
TCHAR m_szName[MAX_NAME];
unsigned char m_Zone;
float m_fPosX;
float m_fPosZ;
};
struct ZoneList
{
typedef std::vector<Zone> vecZoneList;
vecZoneList ZoneInfo;
void Serialize_In(char* Out_Data)
{
unsigned long* dwSize = reinterpret_cast<unsigned long*>(Out_Data);
unsigned char* cRowCount = reinterpret_cast<unsigned char*>(Out_Data + sizeof(unsigned long));
char* cDataBody = static_cast<char*>(Out_Data + sizeof(unsigned long) + sizeof(unsigned char));
ZoneInfo.clear();
for(unsigned char cnt = 0; cnt < *cRowCount; ++cnt)
{
Zone* Data = reinterpret_cast< Zone* >( cDataBody + ( cnt * sizeof( Zone ) ) );
ZoneInfo.push_back( *Data );
}
}
bool Serialize_Out( char* In_Data, unsigned short& wLength )
{
unsigned long* dwSize = reinterpret_cast< unsigned long* > ( In_Data );
unsigned char* cRowCount = reinterpret_cast< unsigned char* > ( In_Data + sizeof( unsigned long ) );
char* cDataBody = static_cast< char* > ( In_Data + sizeof( unsigned long ) + sizeof( unsigned char ) );
unsigned char cCount = 0;
unsigned short wBufferLength = wLength;
vecZoneList::iterator pos = ZoneInfo.begin( );
wLength = sizeof( unsigned long ) + sizeof( unsigned char );
wBufferLength ++;
while( pos != ZoneInfo.end( ) )
{
if( wBufferLength < ( wLength + sizeof( Zone ) ) ) return false;
CopyMemory( ( cDataBody + ( cCount * sizeof( Zone ) ) ), &(*pos), sizeof( Zone ) ); wLength += sizeof( Zone );
++cCount;
++pos;
}
*cRowCount = cCount;
*dwSize = ( unsigned long )wLength;
return true;
}
bool Erase( TCHAR* szName )
{
vecZoneList::iterator begin = ZoneInfo.begin( );
while( begin != ZoneInfo.end( ) )
{
Zone& stZone = ( *begin );
if( !_tcsicmp( szName, stZone.m_szName ) )
{
ZoneInfo.erase( begin );
return true;
}
else
{
++begin;
}
}
return false;
}
vecZoneList::iterator Find( TCHAR* szName )
{
vecZoneList::iterator begin = ZoneInfo.begin( );
while( begin != ZoneInfo.end( ) )
{
if( false == _tcsicmp( szName, ( *begin ).m_szName ) )
{
return begin;
}
++begin;
}
return ZoneInfo.end( );
}
};
struct ServerInfo
{
CString m_strServerName;
unsigned long m_dwServerIndex;
ServerInfo(CString strServerName, unsigned long dwServerIndex)
: m_strServerName(strServerName), m_dwServerIndex(dwServerIndex) {}
};
#pragma pack()
typedef std::list<ServerInfo> islistServerInfo;
typedef std::map<unsigned long, CharDocInfo*> isMapDoc;
typedef islistServerInfo::iterator listServerInfoPos;
public:
CCharacterDoc ( ) : m_dwKey( 0 ) {}
~CCharacterDoc ( );
void Destroy();
unsigned long NextKey ( ) { return m_dwKey + 1; }
unsigned long PushCharDocInfo ( CharDocInfo* lpCharDocInfo );
CharDocInfo* GetCharDocInfo ( unsigned long dwKey );
bool DeleteCharDocInfo ( unsigned long dwKey );
void PushServerGroup ( CString strServerName, unsigned long dwServerIndex );
bool GetServerIndex ( CString strServerName, unsigned long& dwServerIndex );
bool GetServerName ( unsigned long dwServerGroup, CString& strServerName );
listServerInfoPos GetServerInfoBegin ( ) { return m_listServerInfo.begin( ); }
listServerInfoPos GetServerInfoEnd ( ) { return m_listServerInfo.end( ); }
ZoneList& GetZoneList ( ) { return m_ZoneList; }
private:
unsigned long m_dwKey;
isMapDoc m_mapCharDoc;
islistServerInfo m_listServerInfo;
ZoneList m_ZoneList;
};
#endif

View File

@@ -0,0 +1,425 @@
// CheckComboBox.cpp
//
// Written by Magnus Egelberg (magnus.egelberg@lundalogik.se)
//
// Copyright (C) 1999, Lundalogik AB, Sweden. All rights reserved.
//
//
#include "stdafx.h"
//#include "CheckCombo.h"
#include "CheckComboBox.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static WNDPROC m_pWndProc = 0;
static CCheckComboBox *m_pComboBox = 0;
BEGIN_MESSAGE_MAP(CCheckComboBox, CComboBox)
//{{AFX_MSG_MAP(CCheckComboBox)
ON_MESSAGE(WM_CTLCOLORLISTBOX, OnCtlColorListBox)
ON_MESSAGE(WM_GETTEXT, OnGetText)
ON_MESSAGE(WM_GETTEXTLENGTH, OnGetTextLength)
ON_CONTROL_REFLECT(CBN_DROPDOWN, OnDropDown)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//
// The subclassed COMBOLBOX message handler
//
extern "C" LRESULT FAR PASCAL ComboBoxListBoxProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
switch (nMsg) {
case WM_RBUTTONDOWN: {
// If you want to select all/unselect all using the
// right button, remove this ifdef. Personally, I don't really like it
#if FALSE
if (m_pComboBox != 0) {
INT nCount = m_pComboBox->GetCount();
INT nSelCount = 0;
for (INT i = 0; i < nCount; i++) {
if (m_pComboBox->GetCheck(i))
nSelCount++;
}
m_pComboBox->SelectAll(nSelCount != nCount);
// Make sure to invalidate this window as well
InvalidateRect(hWnd, 0, FALSE);
m_pComboBox->GetParent()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLong(m_pComboBox->m_hWnd, GWL_ID), CBN_SELCHANGE), (LPARAM)m_pComboBox->m_hWnd);
}
#endif
break;
}
// Make the combobox always return -1 as the current selection. This
// causes the lpDrawItemStruct->itemID in DrawItem() to be -1
// when the always-visible-portion of the combo is drawn
case LB_GETCURSEL: {
return -1;
}
case WM_CHAR: {
if (wParam == VK_SPACE) {
// Get the current selection
INT nIndex = CallWindowProcA(m_pWndProc, hWnd, LB_GETCURSEL, wParam, lParam);
CRect rcItem;
SendMessage(hWnd, LB_GETITEMRECT, nIndex, (LONG)(VOID *)&rcItem);
InvalidateRect(hWnd, rcItem, FALSE);
// Invert the check mark
m_pComboBox->SetCheck(nIndex, !m_pComboBox->GetCheck(nIndex));
// Notify that selection has changed
m_pComboBox->GetParent()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLong(m_pComboBox->m_hWnd, GWL_ID), CBN_SELCHANGE), (LPARAM)m_pComboBox->m_hWnd);
return 0;
}
break;
}
case WM_LBUTTONDOWN: {
CRect rcClient;
GetClientRect(hWnd, rcClient);
CPoint pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
if (PtInRect(rcClient, pt)) {
INT nItemHeight = SendMessage(hWnd, LB_GETITEMHEIGHT, 0, 0);
INT nTopIndex = SendMessage(hWnd, LB_GETTOPINDEX, 0, 0);
// Compute which index to check/uncheck
INT nIndex = nTopIndex + pt.y / nItemHeight;
CRect rcItem;
SendMessage(hWnd, LB_GETITEMRECT, nIndex, (LONG)(VOID *)&rcItem);
if (PtInRect(rcItem, pt)) {
// Invalidate this window
InvalidateRect(hWnd, rcItem, FALSE);
m_pComboBox->SetCheck(nIndex, !m_pComboBox->GetCheck(nIndex));
// Notify that selection has changed
m_pComboBox->GetParent()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLong(m_pComboBox->m_hWnd, GWL_ID), CBN_SELCHANGE), (LPARAM)m_pComboBox->m_hWnd);
}
}
// Do the default handling now (such as close the popup
// window when clicked outside)
break;
}
case WM_LBUTTONUP: {
// Don't do anything here. This causes the combobox popup
// windows to remain open after a selection has been made
return 0;
}
}
return CallWindowProc(m_pWndProc, hWnd, nMsg, wParam, lParam);
}
CCheckComboBox::CCheckComboBox()
{
m_hListBox = 0;
m_bTextUpdated = FALSE;
m_bItemHeightSet = FALSE;
}
CCheckComboBox::~CCheckComboBox()
{
}
BOOL CCheckComboBox::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID)
{
// Remove the CBS_SIMPLE and CBS_DROPDOWN styles and add the one I'm designed for
dwStyle &= ~0xF;
dwStyle |= CBS_DROPDOWNLIST;
// Make sure to use the CBS_OWNERDRAWVARIABLE style
dwStyle |= CBS_OWNERDRAWVARIABLE;
// Use default strings. We need the itemdata to store checkmarks
dwStyle |= CBS_HASSTRINGS;
return CComboBox::Create(dwStyle, rect, pParentWnd, nID);
}
LRESULT CCheckComboBox::OnCtlColorListBox(WPARAM wParam, LPARAM lParam)
{
// If the listbox hasn't been subclassed yet, do so...
if (m_hListBox == 0) {
HWND hWnd = (HWND)lParam;
if (hWnd != 0 && hWnd != m_hWnd) {
// Save the listbox handle
m_hListBox = hWnd;
// Do the subclassing
m_pWndProc = (WNDPROC)GetWindowLong(m_hListBox, GWL_WNDPROC);
SetWindowLong(m_hListBox, GWL_WNDPROC, (LONG)ComboBoxListBoxProc);
}
}
return DefWindowProc(WM_CTLCOLORLISTBOX, wParam, lParam);
}
void CCheckComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
HDC dc = lpDrawItemStruct->hDC;
CRect rcBitmap = lpDrawItemStruct->rcItem;
CRect rcText = lpDrawItemStruct->rcItem;
CString strText;
// 0 - No check, 1 - Empty check, 2 - Checked
INT nCheck = 0;
// Check if we are drawing the static portion of the combobox
if ((LONG)lpDrawItemStruct->itemID < 0) {
// Make sure the m_strText member is updated
RecalcText();
// Get the text
strText = m_strText;
// Don't draw any boxes on this item
nCheck = 0;
}
// Otherwise it is one of the items
else {
GetLBText(lpDrawItemStruct->itemID, strText);
nCheck = 1 + (GetItemData(lpDrawItemStruct->itemID) != 0);
TEXTMETRIC metrics;
GetTextMetrics(dc, &metrics);
rcBitmap.left = 0;
rcBitmap.right = rcBitmap.left + metrics.tmHeight + metrics.tmExternalLeading + 6;
rcBitmap.top += 1;
rcBitmap.bottom -= 1;
rcText.left = rcBitmap.right;
}
if (nCheck > 0) {
SetBkColor(dc, GetSysColor(COLOR_WINDOW));
SetTextColor(dc, GetSysColor(COLOR_WINDOWTEXT));
UINT nState = DFCS_BUTTONCHECK;
if (nCheck > 1)
nState |= DFCS_CHECKED;
// Draw the checkmark using DrawFrameControl
DrawFrameControl(dc, rcBitmap, DFC_BUTTON, nState);
}
if (lpDrawItemStruct->itemState & ODS_SELECTED) {
SetBkColor(dc, GetSysColor(COLOR_HIGHLIGHT));
SetTextColor(dc, GetSysColor(COLOR_HIGHLIGHTTEXT));
}
else {
SetBkColor(dc, GetSysColor(COLOR_WINDOW));
SetTextColor(dc, GetSysColor(COLOR_WINDOWTEXT));
}
// Erase and draw
ExtTextOut(dc, 0, 0, ETO_OPAQUE, &rcText, 0, 0, 0);
DrawText(dc, ' ' + strText, strText.GetLength() + 1, &rcText, DT_SINGLELINE|DT_VCENTER|DT_END_ELLIPSIS);
if ((lpDrawItemStruct->itemState & (ODS_FOCUS|ODS_SELECTED)) == (ODS_FOCUS|ODS_SELECTED))
DrawFocusRect(dc, &rcText);
}
void CCheckComboBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
CClientDC dc(this);
CFont *pFont = dc.SelectObject(GetFont());
if (pFont != 0) {
TEXTMETRIC metrics;
dc.GetTextMetrics(&metrics);
lpMeasureItemStruct->itemHeight = metrics.tmHeight + metrics.tmExternalLeading;
// An extra height of 2 looks good I think.
// Otherwise the list looks a bit crowded...
lpMeasureItemStruct->itemHeight += 2;
// This is needed since the WM_MEASUREITEM message is sent before
// MFC hooks everything up if used in i dialog. So adjust the
// static portion of the combo box now
if (!m_bItemHeightSet) {
m_bItemHeightSet = TRUE;
SetItemHeight(-1, lpMeasureItemStruct->itemHeight);
}
dc.SelectObject(pFont);
}
}
//
// Make sure the combobox window handle is updated since
// there may be many CCheckComboBox windows active
//
void CCheckComboBox::OnDropDown()
{
m_pComboBox = this;
}
//
// Selects/unselects all items in the list
//
void CCheckComboBox::SelectAll(BOOL bCheck)
{
INT nCount = GetCount();
for (INT i = 0; i < nCount; i++)
SetCheck(i, bCheck);
}
//
// By adding this message handler, we may use CWnd::GetText()
//
LRESULT CCheckComboBox::OnGetText(WPARAM wParam, LPARAM lParam)
{
// Make sure the text is updated
RecalcText();
if (lParam == 0)
return 0;
// Copy the 'fake' window text
lstrcpyn((LPSTR)lParam, m_strText, (INT)wParam);
return m_strText.GetLength();
}
//
// By adding this message handler, we may use CWnd::GetTextLength()
//
LRESULT CCheckComboBox::OnGetTextLength(WPARAM, LPARAM)
{
// Make sure the text is updated
RecalcText();
return m_strText.GetLength();
}
//
// This routine steps thru all the items and builds
// a string containing the checked items
//
void CCheckComboBox::RecalcText()
{
if (!m_bTextUpdated) {
CString strText;
// Get the list count
INT nCount = GetCount();
// Get the list separator
TCHAR szBuffer[10] = {0};
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, szBuffer, sizeof(szBuffer));
CString strSeparator = szBuffer;
// If none found, the the ';'
if (strSeparator.GetLength() == 0)
strSeparator = ';';
// Trim extra spaces
strSeparator.TrimRight();
// And one...
strSeparator += ' ';
for (INT i = 0; i < nCount; i++) {
if (GetItemData(i)) {
CString strItem;
GetLBText(i, strItem);
if (!strText.IsEmpty())
strText += strSeparator;
strText += strItem;
}
}
// Set the text
m_strText = strText;
m_bTextUpdated = TRUE;
}
}
INT CCheckComboBox::SetCheck(INT nIndex, BOOL bFlag)
{
INT nResult = SetItemData(nIndex, bFlag);
if (nResult < 0)
return nResult;
// Signal that the text need updating
m_bTextUpdated = FALSE;
// Redraw the window
Invalidate(FALSE);
return nResult;
}
BOOL CCheckComboBox::GetCheck(INT nIndex)
{
return GetItemData(nIndex);
}

View File

@@ -0,0 +1,63 @@
#if !defined(AFX_CHECKCOMBOBOX_H__66750D93_95DB_11D3_9325_444553540000__INCLUDED_)
#define AFX_CHECKCOMBOBOX_H__66750D93_95DB_11D3_9325_444553540000__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CCheckComboBox : public CComboBox
{
public:
CCheckComboBox();
virtual ~CCheckComboBox();
BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
// Selects all/unselects the specified item
INT SetCheck(INT nIndex, BOOL bFlag);
// Returns checked state
BOOL GetCheck(INT nIndex);
// Selects all/unselects all
void SelectAll(BOOL bCheck = TRUE);
protected:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCheckComboBox)
protected:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
//}}AFX_VIRTUAL
//{{AFX_MSG(CCheckComboBox)
afx_msg LRESULT OnCtlColorListBox(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnGetText(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam);
afx_msg void OnDropDown();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
protected:
// Routine to update the text
void RecalcText();
// The subclassed COMBOLBOX window (notice the 'L')
HWND m_hListBox;
// The string containing the text to display
CString m_strText;
BOOL m_bTextUpdated;
// A flag used in MeasureItem, see comments there
BOOL m_bItemHeightSet;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHECKCOMBOBOX_H__66750D93_95DB_11D3_9325_444553540000__INCLUDED_)

View File

@@ -0,0 +1,253 @@
// CClipboard Class
// ----------------
// Written by David Terracino <davet@lycosemail.com>
//
// This code is released into the public domain, because
// it's silly easy. If you want to use and expand it, go
// ahead; fine by me. If you do expand this class's
// functionality, please consider sending it back up to
// the MFC Programmer's Sourcebook at www.codeguru.com.
//
// And as always, please give credit where credit is
// due. Don't remove my name from the source.
///////////////////////////////////////////////////////////////////////////////
// Modified by Hans Dietrich hdietrich2@hotmail.com
///////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Clipboard.h"
///////////////////////////////////////////////////////////////////////////////
// GetText - Retrieves text from the clipboard
///////////////////////////////////////////////////////////////////////////////
//
// Parameters:
//
// Return Values:
// CString - not empty if text was successfully copied from clipboard
//
///////////////////////////////////////////////////////////////////////////////
CString CClipboard::GetText()
{
CString str;
str = _T("");
// First, open the clipboard. OpenClipboard() takes one
// parameter, the handle of the window that will temporarily
// be it's owner. If NULL is passed, the current process
// is assumed.
if (::OpenClipboard(NULL))
{
// Request a pointer to the text on the clipboard.
HGLOBAL hGlobal = ::GetClipboardData(CF_TEXT);
// If there was no text on the clipboard, we have
// been returned a NULL handle.
if (hGlobal)
{
// Now we have a global memory handle to the text
// stored on the clipboard. We have to lock this global
// handle so that we have access to it.
LPSTR lpszData = (LPSTR) ::GlobalLock(hGlobal);
if (lpszData)
{
str = lpszData;
// Now, simply unlock the global memory pointer
// and close the clipboard.
::GlobalUnlock(hGlobal);
}
}
::CloseClipboard();
}
return str;
}
///////////////////////////////////////////////////////////////////////////////
// GetText - Retrieves text from the clipboard
///////////////////////////////////////////////////////////////////////////////
//
// Parameters:
// lpszBuffer - pointer to a string where the text is to be put
// nBufSize - allocated length of lpszBuffer
//
// Return Values:
// TRUE - Text was successfully retrieved
// FALSE - No text returned
//
///////////////////////////////////////////////////////////////////////////////
BOOL CClipboard::GetText(LPSTR lpszBuffer, int nBufSize)
{
ASSERT(lpszBuffer);
if (lpszBuffer == NULL)
return FALSE;
if (nBufSize == 0)
return FALSE;
lpszBuffer[0] = 0;
BOOL bSuccess = FALSE;
// First, open the clipboard. OpenClipboard() takes one
// parameter, the handle of the window that will temporarily
// be it's owner. If NULL is passed, the current process
// is assumed.
if (::OpenClipboard(NULL))
{
// Request a pointer to the text on the clipboard.
HGLOBAL hGlobal = ::GetClipboardData(CF_TEXT);
// If there was no text on the clipboard, we have
// been returned a NULL handle.
if (hGlobal)
{
// Now we have a global memory handle to the text
// stored on the clipboard. We have to lock this global
// handle so that we have access to it.
LPSTR lpszData = (LPSTR) ::GlobalLock(hGlobal);
if (lpszData)
{
// Now get the size of the text on the clipboard.
DWORD nSize = ::GlobalSize(hGlobal);
// Make sure the text on the clipboard is not longer
// that the buffer that was allocated for it. If it was
// snip the text on the clipboard so that it fits.
if (nSize >= (UINT)nBufSize)
nSize = nBufSize - 1;
// Now, copy the text into the return buffer. Note that
// there will be at least one nul at the end
ZeroMemory(lpszBuffer, nBufSize);
CopyMemory(lpszBuffer, lpszData, nSize);
// Now, simply unlock the global memory pointer
// and close the clipboard.
::GlobalUnlock(hGlobal);
bSuccess = TRUE;
}
}
::CloseClipboard();
}
return bSuccess;
}
///////////////////////////////////////////////////////////////////////////////
// GetTextLength - Retrieves length of text on the clipboard
///////////////////////////////////////////////////////////////////////////////
//
// Parameters:
//
// Return Values:
// > 0 - Text length was successfully returned.
// 0 - No text on the clipboard
//
///////////////////////////////////////////////////////////////////////////////
DWORD CClipboard::GetTextLength()
{
DWORD nSize = 0; // Size of clipboard data
// First, open the clipboard. OpenClipboard() takes one
// parameter, the handle of the window that will temporarily
// be it's owner. If NULL is passed, the current process
// is assumed.
if (::OpenClipboard(NULL))
{
// Request a pointer to the text on the clipboard.
HGLOBAL hGlobal = ::GetClipboardData(CF_TEXT);
// If there was no text on the clipboard, we have
// been returned a NULL handle.
if (hGlobal)
{
// Now we have a global memory handle to the text
// stored on the clipboard. We have to lock this global
// handle so that we have access to it.
LPSTR lpszData = (LPSTR) ::GlobalLock(hGlobal);
if (lpszData)
{
// Now get the size of the text on the clipboard.
nSize = ::GlobalSize(hGlobal);
// Now, simply unlock the global memory pointer
// and close the clipboard.
::GlobalUnlock(hGlobal);
}
}
::CloseClipboard();
}
return nSize;
}
///////////////////////////////////////////////////////////////////////////////
// SetText - Places text on the clipboard
///////////////////////////////////////////////////////////////////////////////
//
// Parameters:
// lpszBuffer - pointer to a string to put on the clipboard
//
// Return Values:
// TRUE - Text was successfully copied onto clipboard
// FALSE - Text not copied
//
///////////////////////////////////////////////////////////////////////////////
BOOL CClipboard::SetText(LPCTSTR lpszBuffer)
{
BOOL bSuccess = FALSE;
// First, open the clipboard. OpenClipboard() takes one
// parameter, the handle of the window that will temporarily
// be it's owner. If NULL is passed, the current process
// is assumed. After opening, empty the clipboard so we
// can put our text on it.
if (::OpenClipboard(NULL))
{
::EmptyClipboard();
// Get the size of the string in the buffer that was
// passed into the function, so we know how much global
// memory to allocate for the string.
int nSize = _tcslen(lpszBuffer);
// Allocate the memory for the string.
HGLOBAL hGlobal = ::GlobalAlloc(GMEM_ZEROINIT, nSize+1);
// If we got any error during the memory allocation,
// we have been returned a NULL handle.
if (hGlobal)
{
// Now we have a global memory handle to the text
// stored on the clipboard. We have to lock this global
// handle so that we have access to it.
LPTSTR lpszData = (LPTSTR) ::GlobalLock(hGlobal);
if (lpszData)
{
// Now, copy the text from the buffer into the allocated
// global memory pointer
_tcscpy(lpszData, lpszBuffer);
// Now, simply unlock the global memory pointer,
// set the clipboard data type and pointer,
// and close the clipboard.
::GlobalUnlock(hGlobal);
::SetClipboardData(CF_TEXT, hGlobal);
bSuccess = TRUE;
}
}
::CloseClipboard();
}
return bSuccess;
}

View File

@@ -0,0 +1,29 @@
// CClipboard Class
// ----------------
// Written by David Terracino <davet@lycosemail.com>
//
// This code is released into the public domain, because
// it's silly easy. If you want to use and expand it, go
// ahead; fine by me. If you do expand this class's
// functionality, please consider sending it back up to
// the MFC Programmer's Sourcebook at www.codeguru.com.
//
// And as always, please give credit where credit is
// due. Don't remove my name from the source.
///////////////////////////////////////////////////////////////////////////////
// Modified by Hans Dietrich hdietrich2@hotmail.com
///////////////////////////////////////////////////////////////////////////////
#ifndef CCLIPBOARD_H
#define CCLIPBOARD_H
class CClipboard
{
public:
static CString GetText();
static BOOL GetText(LPSTR lpszBuffer, int nBufSize);
static DWORD GetTextLength();
static BOOL SetText(LPCTSTR lpszBuffer);
};
#endif

View File

@@ -0,0 +1,315 @@
// ColorPickerCB.cpp
//
// http://www.codeguru.com/combobox//combo_color_picker3.shtml
//
// (c) 1998 James R. Twine
//
// Based On Code That Was Found On www.codeguru.com, And Was
// ?1997 Baldvin Hansson
//
///////////////////////////////////////////////////////////////////////////////
// Modified by Hans Dietrich hdietrich2@hotmail.com
///////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ColorPickerCB.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// NOTE - following table must be kept in sync with XListBox.cpp
SColorAndName CColorPickerCB::ms_pColors[CCB_MAX_COLORS] =
{
SColorAndName( RGB( 0x00, 0x00, 0x00 ), _T("Black") ),
SColorAndName( RGB( 0xFF, 0xFF, 0xFF ), _T("White") ),
SColorAndName( RGB( 0x80, 0x00, 0x00 ), _T("Maroon") ),
SColorAndName( RGB( 0x00, 0x80, 0x00 ), _T("Green") ),
SColorAndName( RGB( 0x80, 0x80, 0x00 ), _T("Olive") ),
SColorAndName( RGB( 0x00, 0x00, 0x80 ), _T("Navy") ),
SColorAndName( RGB( 0x80, 0x00, 0x80 ), _T("Purple") ),
SColorAndName( RGB( 0x00, 0x80, 0x80 ), _T("Teal") ),
SColorAndName( RGB( 0xC0, 0xC0, 0xC0 ), _T("Silver") ),
SColorAndName( RGB( 0x80, 0x80, 0x80 ), _T("Gray") ),
SColorAndName( RGB( 0xFF, 0x00, 0x00 ), _T("Red") ),
SColorAndName( RGB( 0x00, 0xFF, 0x00 ), _T("Lime") ),
SColorAndName( RGB( 0xFF, 0xFF, 0x00 ), _T("Yellow") ),
SColorAndName( RGB( 0x00, 0x00, 0xFF ), _T("Blue") ),
SColorAndName( RGB( 0xFF, 0x00, 0xFF ), _T("Fuchsia") ),
SColorAndName( RGB( 0x00, 0xFF, 0xFF ), _T("Aqua") )
};
CColorPickerCB::CColorPickerCB()
{
}
CColorPickerCB::~CColorPickerCB()
{
}
BEGIN_MESSAGE_MAP(CColorPickerCB, CComboBox)
//{{AFX_MSG_MAP(CColorPickerCB)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CColorPickerCB message handlers
int CColorPickerCB::OnCreate(LPCREATESTRUCT pCStruct)
{
if (CComboBox::OnCreate(pCStruct) == -1) // If Create Failed
return -1; // Return Failure
Initialize(); // Initialize Contents
SetCurSel(0); // Select First Item By Default
return 0; // Done!
}
void CColorPickerCB::PreSubclassWindow()
{
Initialize(); // Initialize Contents
CComboBox::PreSubclassWindow(); // Subclass Control
SetCurSel(0); // Select First Item By Default
}
void CColorPickerCB::Initialize()
{
int iAddedItem = -1;
ResetContent();
for (int iColor = 0; iColor < CCB_MAX_COLORS; iColor++) // For All Colors
{
iAddedItem = AddString( ms_pColors[iColor].m_cColor); // Set Color Name/Text
if (iAddedItem == CB_ERRSPACE) // If Not Added
break; // Stop
else // If Added Successfully
SetItemData(iAddedItem, ms_pColors[iColor].m_crColor); // Set Color RGB Value
}
}
void CColorPickerCB::DrawItem(LPDRAWITEMSTRUCT pDIStruct)
{
CDC dcContext;
CRect rItemRect(pDIStruct -> rcItem);
CRect rBlockRect(rItemRect);
CRect rTextRect(rBlockRect);
int iColorWidth = (rBlockRect.Width() * 5)/ 12;
int iItem = pDIStruct -> itemID;
int iState = pDIStruct -> itemState;
CBrush brFrameBrush;
COLORREF crColor = 0;
COLORREF crNormal = GetSysColor(COLOR_WINDOW);
COLORREF crSelected = GetSysColor(COLOR_HIGHLIGHT);
COLORREF crText = GetSysColor(COLOR_WINDOWTEXT);
if (!dcContext.Attach(pDIStruct -> hDC)) // Attach CDC Object
return; // Stop If Attach Failed
brFrameBrush.CreateStockObject(BLACK_BRUSH); // Create Black Brush
if (iState & ODS_SELECTED) // If Selected
{ // Set Selected Attributes
dcContext.SetTextColor((0x00FFFFFF & ~(crText))); // Set Inverted Text Color (With Mask)
dcContext.SetBkColor(crSelected); // Set BG To Highlight Color
dcContext.FillSolidRect(&rBlockRect, crSelected); // Erase Item
}
else // If Not Selected
{ // Set Standard Attributes
dcContext.SetTextColor(crText); // Set Text Color
dcContext.SetBkColor(crNormal); // Set BG Color
dcContext.FillSolidRect(&rBlockRect, crNormal); // Erase Item
}
if (iState & ODS_FOCUS) // If Item Has The Focus
dcContext.DrawFocusRect(&rItemRect); // Draw Focus Rect
//
// Calculate Text Area
//
rTextRect.left += iColorWidth + 2; // Set Start Of Text
rTextRect.top += 2; // Offset A Bit
//
// Calculate Color Block Area
//
rBlockRect.DeflateRect(CSize(2, 2)); // Reduce Color Block Size
rBlockRect.right = iColorWidth; // Set Width Of Color Block
//
// Draw Color Text And Block
//
if (iItem != -1) // If Not An Empty Item
{
CString sColor;
GetLBText(iItem, sColor); // Get Color Text
if (iState & ODS_DISABLED) // If Disabled
{
crColor = GetSysColor(COLOR_INACTIVECAPTIONTEXT);
dcContext.SetTextColor(crColor); // Set Text Color
}
else // If Normal
crColor = GetItemData(iItem); // Get Color Value
dcContext.SetBkMode(TRANSPARENT); // Transparent Background
dcContext.TextOut(rTextRect.left, rTextRect.top, sColor); // Draw Color Name
dcContext.FillSolidRect(&rBlockRect, crColor); // Draw Color
dcContext.FrameRect(&rBlockRect, &brFrameBrush); // Draw Frame
}
dcContext.Detach(); // Detach DC From Object
}
COLORREF CColorPickerCB::GetSelectedColorValue()
{
int iSelectedItem = GetCurSel(); // Get Selected Item
if (iSelectedItem == CB_ERR) // If Nothing Selected
return (RGB(0, 0, 0)); // Return Black
return (GetItemData(iSelectedItem)); // Return Selected Color
}
UINT CColorPickerCB::GetSelectedColorIndex()
{
UINT nSelectedItem = GetCurSel(); // Get Selected Item
if (nSelectedItem == CB_ERR) // If Nothing Selected
return 0;
else
return nSelectedItem;
}
CString CColorPickerCB::GetSelectedColorName()
{
int iSelectedItem = GetCurSel(); // Get Selected Item
if (iSelectedItem == CB_ERR) // If Nothing Selected
return (m_sColorName = "afxEmptyString"); // Return Nothing (Not "Black!")
GetLBText(iSelectedItem, m_sColorName); // Store Name Of Color
return m_sColorName; // Return Selected Color Name
}
void CColorPickerCB::SetSelectedColorValue(COLORREF crClr)
{
int iItems = GetCount();
for (int iItem = 0; iItem < iItems; iItem++)
{
if (crClr == GetItemData(iItem)) // If Match Found
SetCurSel(iItem); // Select It
}
}
void CColorPickerCB::SetSelectedColorIndex(UINT nIndex)
{
ASSERT(nIndex >= 0 && nIndex <= 15);
SetCurSel(nIndex);
}
void CColorPickerCB::SetSelectedColorName(LPCTSTR cpColor)
{
int iItems = GetCount();
CString sColorName;
for (int iItem = 0; iItem < iItems; iItem++)
{
GetLBText(iItem, sColorName); // Get Color Name
if (!sColorName.CompareNoCase(cpColor)) // If Match Found
SetCurSel(iItem); // Select It
}
}
BOOL CColorPickerCB::RemoveColor(LPCTSTR cpColor)
{
int iItems = GetCount();
CString sColor;
BOOL bRemoved = FALSE;
for (int iItem = 0; iItem < iItems; iItem++)
{
GetLBText(iItem, sColor); // Get Color Name
if (!sColor.CompareNoCase(cpColor)) // If Match Found
{
DeleteString(iItem); // Remove It
bRemoved = TRUE; // Set Flag
break; // Stop Checking
}
}
return bRemoved; // Done!
}
BOOL CColorPickerCB::RemoveColor(COLORREF crClr)
{
int iItems = GetCount();
BOOL bRemoved = FALSE;
for (int iItem = 0; iItem < iItems; iItem++)
{
if (crClr == GetItemData(iItem)) // If Desired Color Found
{
DeleteString(iItem); // Remove It
bRemoved = TRUE; // Set Flag
break; // Stop Checking
}
}
return bRemoved; // Done!
}
int CColorPickerCB::AddColor(LPCTSTR cpName, COLORREF crColor)
{
int iItem = -1;
iItem = InsertString(-1, cpName); // Insert String
if (iItem != LB_ERR) // If Insert Good
SetItemData(iItem, crColor); // Set Color Value
return iItem; // Done! Return Location
}
void DDX_ColorPicker(CDataExchange* pDX, int nIDC_, COLORREF& crColor)
{
HWND hWndCtrl = pDX->PrepareCtrl(nIDC_);
ASSERT(hWndCtrl);
CColorPickerCB* pPicker = (CColorPickerCB*) CWnd::FromHandle(hWndCtrl);
ASSERT(pPicker);
if (!pDX->m_bSaveAndValidate)
{
pPicker->SetSelectedColorValue(crColor);
}
else
{
crColor = pPicker->GetSelectedColorValue();
}
}
void DDX_ColorPicker(CDataExchange* pDX, int nIDC_, CString& strName)
{
HWND hWndCtrl = pDX->PrepareCtrl(nIDC_);
ASSERT(hWndCtrl);
CColorPickerCB* pPicker = (CColorPickerCB*) CWnd::FromHandle(hWndCtrl);
ASSERT(pPicker);
if (!pDX->m_bSaveAndValidate)
{
pPicker->SetSelectedColorName(strName);
}
else
{
strName = pPicker->GetSelectedColorName();
}
}

View File

@@ -0,0 +1,99 @@
// ColorPickerCB.h
//
// http://www.codeguru.com/combobox//combo_color_picker3.shtml
//
// (c) 1998 James R. Twine
//
// Based On Code That Was Found On www.codeguru.com, And Was
// ?1997 Baldvin Hansson
//
///////////////////////////////////////////////////////////////////////////////
// Modified by Hans Dietrich hdietrich2@hotmail.com
///////////////////////////////////////////////////////////////////////////////
#ifndef COLORPICKERCB_H
#define COLORPICKERCB_H
#define CCB_MAX_COLORS 16 // Colors In List
#define CCB_MAX_COLOR_NAME 16 // Max Chars For Color Name - 1
//
// Internal Structure For Color/Name Storage...
//
struct SColorAndName
{
SColorAndName()
{
ZeroMemory(this, sizeof(SColorAndName)); // Init Structure
};
SColorAndName(COLORREF crColor, LPCTSTR cpColor)
{
ZeroMemory(this, sizeof(SColorAndName)); // Init Structure
m_crColor = crColor; // Set Color RGB Value
_tcsncpy(m_cColor, cpColor, CCB_MAX_COLOR_NAME); // Set Color Name
};
COLORREF m_crColor; // Actual Color RGB Value
TCHAR m_cColor[CCB_MAX_COLOR_NAME]; // Actual Name For Color
};
// Gets/sets color value from/to COLORREF member variable
void DDX_ColorPicker(CDataExchange* pDX_, int nIDC_, COLORREF& crColor_);
// Gets/sets color name from/to CString member variable
void DDX_ColorPicker(CDataExchange* pDX_, int nIDC_, CString& strName_);
class CColorPickerCB : public CComboBox
{
// Construction
public:
CColorPickerCB();
virtual ~CColorPickerCB();
// Attributes
private:
CString m_sColorName; // Name Of Selected Color
private:
void Initialize(void); // Initialize Control/Colors
public:
static
SColorAndName ms_pColors[CCB_MAX_COLORS]; // Array Of Colors And Names
COLORREF GetSelectedColorValue(void); // Get Selected Color Value
UINT GetSelectedColorIndex(void); // Get Selected Color Index
CString GetSelectedColorName( void ); // Get Selected Color Name
void SetSelectedColorValue(COLORREF crClr); // Set Selected Color Value
void SetSelectedColorIndex(UINT nIndex); // Set Selected Color Index
void SetSelectedColorName(LPCTSTR cpColor); // Set Selected Color Name
BOOL RemoveColor(LPCTSTR cpColor); // Remove Color From List
BOOL RemoveColor(COLORREF crClr); // Remove Color From List
int AddColor(LPCTSTR cpNam, COLORREF crClr); // Insert A New Color
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CColorPickerCB)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
// Implementation
public:
// Generated message map functions
protected:
//{{AFX_MSG(CColorPickerCB)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif //COLORPICKERCB_H

View File

@@ -0,0 +1,74 @@
// ConnectionInfoDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "ConnectionInfoDlg.h"
#include "CharacterDoc.h"
#include "GlobalFunctions.h"
// CConnectionInfoDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CConnectionInfoDlg, CDialog)
CConnectionInfoDlg::CConnectionInfoDlg(PktAdminMgr::PktConnectionChk* lpInfo, CWnd* pParent /*=NULL*/)
: CDialog(CConnectionInfoDlg::IDD, pParent)
, m_lpConnectionInfo(lpInfo)
{
}
CConnectionInfoDlg::~CConnectionInfoDlg()
{
}
void CConnectionInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CConnectionInfoDlg, CDialog)
END_MESSAGE_MAP()
// CConnectionInfoDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CConnectionInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
if (NULL != m_lpConnectionInfo)
{
CString strFormat;
strFormat.Format(_T("%s"), m_lpConnectionInfo->m_szAccount);
SetDlgItemText(IDC_CI_ACCOUNT_EDIT, strFormat);
strFormat.Format(_T("%u"), m_lpConnectionInfo->m_dwUID);
SetDlgItemText(IDC_CI_UID_EDIT, strFormat);
if(CCharacterDoc::GetInstance().GetServerName(m_lpConnectionInfo->m_nServerGroup, strFormat))
{
SetDlgItemText(IDC_CI_SERVERGROUP_EDIT, strFormat);
}
else
{
strFormat.Format(_T("UNKNOWN (%u)"), m_lpConnectionInfo->m_nServerGroup);
SetDlgItemText(IDC_CI_SERVERGROUP_EDIT, strFormat);
}
strFormat.Format(_T("%s"), m_lpConnectionInfo->m_szLoginTime);
SetDlgItemText(IDC_CI_LOGINTIME_EDIT, strFormat);
strFormat.Format(_T("%s"), m_lpConnectionInfo->m_szLoginIP);
SetDlgItemText(IDC_CI_IP_EDIT, strFormat);
}
SetWindowText(GetLocalString("IDD_CONNECTIONINFODLG"));
SetUIString(this->m_hWnd, IDC_CONNINFO_01, "IDC_CONNINFO_01");
SetUIString(this->m_hWnd, IDC_CONNINFO_02, "IDC_CONNINFO_02");
SetUIString(this->m_hWnd, IDC_CONNINFO_04, "IDC_CONNINFO_04");
return TRUE;
}

View File

@@ -0,0 +1,31 @@
#pragma once
#include "afxcmn.h"
#include <Network/Protocol/RYL_AdminMgrProtocol.h>
/*!
\class CConnectionInfoDlg
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CConnectionInfoDlg : public CDialog
{
DECLARE_DYNAMIC(CConnectionInfoDlg)
public:
CConnectionInfoDlg(PktAdminMgr::PktConnectionChk* lpInfo, CWnd* pParent = NULL);
virtual ~CConnectionInfoDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_CONNECTIONINFODLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
public:
PktAdminMgr::PktConnectionChk* m_lpConnectionInfo;
};

View File

@@ -0,0 +1,58 @@
// DetailCharInfo.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "DetailCharInfo.h"
#include "GlobalFunctions.h"
#include "WindowMgr.h"
// CDetailCharInfo <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CDetailCharInfo, CDialog)
CDetailCharInfo::CDetailCharInfo(CWnd* pParent /*=NULL*/)
: CDialog(CDetailCharInfo::IDD, pParent)
{
INSERT_WINDOW(IDD_DETAILCHARINFO, reinterpret_cast<CWnd*>(this));
}
CDetailCharInfo::~CDetailCharInfo()
{
ERASE_WINDOW(IDD_DETAILCHARINFO);
}
void CDetailCharInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_DETAILCHARINFO_LIST, m_ctrlDetailCharInfoList);
}
BEGIN_MESSAGE_MAP(CDetailCharInfo, CDialog)
END_MESSAGE_MAP()
// CDetailCharInfo <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CDetailCharInfo::OnInitDialog()
{
CDialog::OnInitDialog();
CDialog::OnInitDialog();
m_ctrlDetailCharInfoList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlDetailCharInfoList.InsertColumn(0, GetLocalString("ADDED_STRING_014"), LVCFMT_LEFT, 100);
m_ctrlDetailCharInfoList.InsertColumn(1, GetLocalString("ADDED_STRING_015"), LVCFMT_LEFT, 100);
SetWindowText(GetLocalString("ADDED_STRING_016"));
m_ctrlDetailCharInfoList.InsertItem(0, GetLocalString("ADDED_STRING_017"));
m_ctrlDetailCharInfoList.InsertItem(1, GetLocalString("ADDED_STRING_018"));
m_ctrlDetailCharInfoList.InsertItem(2, GetLocalString("ADDED_STRING_019"));
m_ctrlDetailCharInfoList.InsertItem(3, GetLocalString("ADDED_STRING_020"));
m_ctrlDetailCharInfoList.InsertItem(4, GetLocalString("ADDED_STRING_021"));
m_ctrlDetailCharInfoList.InsertItem(5, GetLocalString("ADDED_STRING_022"));
m_ctrlDetailCharInfoList.InsertItem(6, GetLocalString("ADDED_STRING_023"));
return TRUE;
}

View File

@@ -0,0 +1,30 @@
#pragma once
#include "afxcmn.h"
/*!
\class CDetailCharInfo
ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>(<28><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α׿<CEB1><D7BF><EFBFBD> ȣ<><C8A3>)
*/
class CDetailCharInfo : public CDialog
{
DECLARE_DYNAMIC(CDetailCharInfo)
public:
CDetailCharInfo(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CDetailCharInfo();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_DETAILCHARINFO };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
public:
CListCtrl m_ctrlDetailCharInfoList;
};

View File

@@ -0,0 +1,49 @@
// DetailInfoDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "DetailInfoDlg.h"
#include ".\detailinfodlg.h"
// CDetailInfoDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CDetailInfoDlg, CDialog)
CDetailInfoDlg::CDetailInfoDlg(CString& strMsg, CWnd* pParent /*=NULL*/)
: CDialog(CDetailInfoDlg::IDD, pParent)
{
if (true == strMsg.IsEmpty())
{
m_strMsg.Format("Not exist data. -_ -a");
}
else
{
m_strMsg = strMsg;
}
}
CDetailInfoDlg::~CDetailInfoDlg()
{
}
void CDetailInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CDetailInfoDlg, CDialog)
END_MESSAGE_MAP()
// CDetailInfoDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CDetailInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetDlgItemText(IDC_DETAILINFO_EDIT, m_strMsg);
return TRUE;
}

View File

@@ -0,0 +1,28 @@
#pragma once
/*!
\class CDetailInfoDlg
GM<47>α<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
*/
class CDetailInfoDlg : public CDialog
{
DECLARE_DYNAMIC(CDetailInfoDlg)
public:
CDetailInfoDlg(CString& strMsg, CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CDetailInfoDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_DETAILINFODLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
private:
CString m_strMsg;
virtual BOOL OnInitDialog();
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,113 @@
#ifndef _DISPATCH_H_
#define _DISPATCH_H_
#include <Network/Dispatch/AdminToolDispatch.h>
#include <Network/AgentServerParseData/Ryl_AgentServerParseData.h>
#include <CharacterDoc.h>
struct PktBase;
namespace PktAdminMgr
{
struct PktGetAdminStoreItemAck;
};
class CClientDispatch : public CClientMultiThreadDispatch
{
public:
CClientDispatch() { }
virtual CClientDispatch* Clone() { return new CClientDispatch; }
virtual void Destroy() { delete this; }
virtual void Disconnected() { }
private:
virtual bool DispatchPacket(PktBase* lpPktBase);
// Packet Process
bool PktResultAck (PktBase* lpPktBase);
bool PktAdminListAck (PktBase* lpPktBase);
bool PktLoginInfoAck (PktBase* lpPktBase);
bool PktDelAdminAck (PktBase* lpPktBase);
bool PktUpdateLevelAck (PktBase* lpPktBase);
bool PktUpdateIPAck (PktBase* lpPktBase);
bool PktLogListAck (PktBase* lpPktBase);
bool PktDetailLogAck (PktBase* lpPktBase);
bool PktGetExitLogAck (PktBase* lpPktBase);
bool PktBeforeAfterAck (PktBase* lpPktBase);
bool PktSearchResultAck (PktBase* lpPktBase);
bool PktAgentServerIndexAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktSearchAck (PktBase* lpPktBase); // <20>˻<EFBFBD>â<EFBFBD><C3A2><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktGetCharacterAck (PktBase* lpPktBase); // <20>˻<EFBFBD><CBBB><EFBFBD> ij<><C4B3><EFBFBD>Ϳ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktCloseCharacterAck (PktBase* lpPktBase); // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD> <20><>
bool PktCreateItemAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktUpdateItemAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
bool PktRemoveItemAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktSyncDeposit (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><EEBFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>´<EFBFBD>
bool PktItemResetAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktInvenGold (PktBase* lpPktBase);
bool PktSkillEditAck (PktBase* lpPktBase); // <20><>ų <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktSearchBlockAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20>˻<EFBFBD>
bool PktSetZoneList (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><>
bool PktChangeNameAck (PktBase* lpPktBase); // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktDelCharListAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktCharRestoreAck (PktBase* lpPktBase); // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktAdminStoreInsertAck (PktBase* lpPktBase); // <20>â<EEBFB5><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktAdminStoreDeleteAck (PktBase* lpPktBase); // <20>â<EEBFB5><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktGetAdminStoreItemAck (PktBase* lpPktBase); // <20>â<EEBFB5><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktCancelExecuteQuest (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
bool PktDeleteHistoryQuest (PktBase* lpPktBase); // <20>Ϸ<EFBFBD><CFB7><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
bool PktUserNation (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktStoreTabEdit (PktBase* lpPktBase); // â<><C3A2> <20><> <20><> <20><><EFBFBD><EFBFBD>
bool PktGuildSearchAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD>
bool PktRequestGuildMemberListAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
bool PktGuildRestoreDataListAck (PktBase* lpPktBase); // <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
bool PktGuildRight (PktBase* lpPktBase); // <20><><EFBFBD><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktGuildMemberEdit (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>
bool PktFortSearchAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD>
bool PktMiningCampAck (PktBase* lpPktBase); // ä<><C3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktShopCampAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktCastleSearchAck (PktBase* lpPktBase); // <20><> <20>˻<EFBFBD>
bool PktCastleCreatureAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktItemQtyControlAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktUserBillingLogAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktGameAdminAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> Ack
bool PktConnectAllServerzAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20>ִ<EFBFBD> <20>߰輭<DFB0><E8BCAD> <20>ε<EFBFBD><CEB5><EFBFBD> Ack
bool PktInterestedUserList (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
bool PktConnectionChk (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> üũ
bool PktConnectedUserList (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool PktDuplicatedItem (PktBase* lpPktBase); // <20>ߺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktItemDistributeAck (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD> Ack
bool PktUnifiedCharInfo (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktUnifiedGuildInfo (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktDetailCharInfo (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool PktShiftToUID (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD>, UID<49><44> <20><>ȯ (<28>ѱ<EFBFBD><D1B1><EFBFBD> <20><><EFBFBD><EFBFBD><EBB0A1><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
bool PktAmountOfGold (PktBase* lpPktBase); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>差 Ȯ<><C8AE>
bool PktGMLogMsg (PktBase* lpPktBase); // GM <20>α<EFBFBD> <20>޼<EFBFBD><DEBC><EFBFBD>
bool CharInfoParseFinish (CCharacterDoc::CharDocInfo* lpCharDocInfo);
void ResultErrModifyCharacter (PktBase* lpPktBase);
void ResultErrStateSave (PktBase* lpPktBase);
void AdminStoreItemModify (PktAdminMgr::PktGetAdminStoreItemAck* lpPktAck);
void AdminStoreGrabMode (PktAdminMgr::PktGetAdminStoreItemAck* lpPktAck);
bool PktResultCharInfoTime (PktBase* lpPktAck); // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE>
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CAgentServerParseData Parser; // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>м<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
// ETC
CString GetBlockString(unsigned int nIndex);
CString GetGuildTitleString(unsigned int nIndex);
CString GetGuildRightString(unsigned int nIndex);
bool SucessLogin();
};
#endif

View File

@@ -0,0 +1,196 @@
// DuplicatedItemDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "DuplicatedItemDlg.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
#include "WindowMgr.h"
#include "ListCtrlSortClass.h"
#include "CharacterDoc.h"
#include <Utility/Math/Math.h>
// CDuplicatedItemDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CDuplicatedItemDlg, CDialog)
CDuplicatedItemDlg::CDuplicatedItemDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDuplicatedItemDlg::IDD, pParent)
, m_bSortListAsc(false)
{
INSERT_WINDOW(IDD_DUPLICATEDITEMDLG, static_cast<CWnd*>(this));
}
CDuplicatedItemDlg::~CDuplicatedItemDlg()
{
ERASE_WINDOW(IDD_DUPLICATEDITEMDLG);
}
void CDuplicatedItemDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_DS_DITEM_LIST, m_ctrlDItemList);
DDX_Control(pDX, IDC_DS_GROUP_CB, m_ctrlServerGroupCb);
DDX_Control(pDX, IDC_DS_ISCHK_CB, m_ctrlIsChkCb);
}
BEGIN_MESSAGE_MAP(CDuplicatedItemDlg, CDialog)
ON_BN_CLICKED(IDC_DS_SEARCH_BTN, OnBnClickedDsSearchBtn)
ON_BN_CLICKED(IDC_DS_DELETELIST_BTN, OnBnClickedDsDeletelistBtn)
ON_BN_CLICKED(IDC_DS_CHK_BTN, OnBnClickedDsChkBtn)
ON_NOTIFY(HDN_ITEMCHANGING, 0, OnHdnItemchangingDsDitemList)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_DS_DITEM_LIST, OnLvnColumnclickDsDitemList)
ON_BN_CLICKED(IDC_DUPITEM_CLIPPING_BTN, OnBnClickedDupitemClippingBtn)
END_MESSAGE_MAP()
// CDuplicatedItemDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CDuplicatedItemDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlDItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlDItemList.InsertColumn(0, GetLocalString("INSERT_TIME"), LVCFMT_LEFT, 120);
m_ctrlDItemList.InsertColumn(1, GetLocalString("CHK_TIME"), LVCFMT_LEFT, 120);
m_ctrlDItemList.InsertColumn(2, _T("UID"), LVCFMT_LEFT, 100);
m_ctrlDItemList.InsertColumn(3, _T("CID"), LVCFMT_LEFT, 100);
m_ctrlDItemList.InsertColumn(4, _T("CharName"), LVCFMT_LEFT, 100);
m_ctrlDItemList.InsertColumn(5, _T("ItemSerial"), LVCFMT_LEFT, 135);
m_ctrlDItemList.InsertColumn(6, _T("Qty"), LVCFMT_LEFT, 60);
m_ctrlDItemList.InsertColumn(7, GetLocalString("CHK_RESULT"), LVCFMT_LEFT, 90);
ServerGroupComboSet(m_ctrlServerGroupCb);
m_ctrlIsChkCb.InsertString(0, _T("0 : DO NOT"));
m_ctrlIsChkCb.InsertString(1, _T("1 : DO"));
m_ctrlIsChkCb.SetCurSel(0);
SetWindowText(GetLocalString("IDD_DUPLICATEDITEMDLG"));
SetUIString(this->m_hWnd, IDC_DUPITEM_01, "IDC_DUPITEM_01");
SetUIString(this->m_hWnd, IDC_DUPITEM_02, "IDC_DUPITEM_02");
SetUIString(this->m_hWnd, IDC_DUPITEM_03, "IDC_DUPITEM_03");
SetUIString(this->m_hWnd, IDC_DUPITEM_04, "IDC_DUPITEM_04");
SetUIString(this->m_hWnd, IDC_DS_SEARCH_BTN, "IDC_DS_SEARCH_BTN");
SetUIString(this->m_hWnd, IDC_DS_DELETELIST_BTN, "IDC_DS_DELETELIST_BTN");
SetUIString(this->m_hWnd, IDC_DUPITEM_CLIPPING_BTN, "IDC_DUPITEM_CLIPPING_BTN");
SetUIString(this->m_hWnd, IDC_DS_CHK_BTN, "IDC_DS_CHK_BTN");
return TRUE;
}
void CDuplicatedItemDlg::OnBnClickedDsSearchBtn()
{
if(CB_ERR != m_ctrlServerGroupCb.GetCurSel())
{
m_ctrlDItemList.DeleteAllItems();
CPacketMgr::GetInstance()->SendSearchDupItem(
(unsigned long)m_ctrlServerGroupCb.GetCurSel(), (m_ctrlIsChkCb.GetCurSel() == 0) ? true : false);
}
}
void CDuplicatedItemDlg::OnBnClickedDsChkBtn()
{
int iIndex = m_ctrlDItemList.GetNextItem(-1, LVIS_SELECTED);
if (-1 != iIndex)
{
unsigned long dwUID = atol(m_ctrlDItemList.GetItemText(iIndex, 2));
unsigned long dwCID = atol(m_ctrlDItemList.GetItemText(iIndex, 3));
unsigned __int64 i64ItemSerial =
Math::Convert::StrToHex64(m_ctrlDItemList.GetItemText(iIndex, 5));
unsigned long dwServerGroup = 100;
CString strServerName;
GetDlgItemText(IDC_DUPLICATEDITEM_SELGROUP_EDIT, strServerName);
CCharacterDoc::GetInstance().GetServerIndex(strServerName, dwServerGroup);
CPacketMgr::GetInstance()->SendChkDupItem(dwUID, dwCID, dwServerGroup, i64ItemSerial);
m_ctrlDItemList.DeleteAllItems();
CPacketMgr::GetInstance()->SendSearchDupItem(dwServerGroup, true);
}
}
void CDuplicatedItemDlg::OnBnClickedDsDeletelistBtn()
{
POSITION pos;
while(pos = m_ctrlDItemList.GetFirstSelectedItemPosition())
{
m_ctrlDItemList.DeleteItem(m_ctrlDItemList.GetNextSelectedItem(pos));
}
}
void CDuplicatedItemDlg::OnHdnItemchangingDsDitemList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
*pResult = 0;
}
void CDuplicatedItemDlg::OnLvnColumnclickDsDitemList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlDItemList, m_iSortListItem);
*pResult = 0;
}
void CDuplicatedItemDlg::SortListWndItem(CListCtrl* lpListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(lpListCtrl, iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::INSERT_TIME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::CHK_TIME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::UID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::CID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::ITEM_SERIAL:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::CHARNAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::QTY:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::CHK_RESULT:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
break;
}
}
void CDuplicatedItemDlg::OnBnClickedDupitemClippingBtn()
{
ClippingListCtrl(m_ctrlDItemList, 8, true);
}

View File

@@ -0,0 +1,58 @@
#pragma once
#include "afxcmn.h"
#include "afxwin.h"
/*!
\class CDuplicatedItemDlg
<09>ߺ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CDuplicatedItemDlg : public CDialog
{
DECLARE_DYNAMIC(CDuplicatedItemDlg)
public:
CDuplicatedItemDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CDuplicatedItemDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_DUPLICATEDITEMDLG };
enum SORT_TYPE
{
INSERT_TIME = 0,
CHK_TIME = 1,
UID = 2,
CID = 3,
CHARNAME = 4,
ITEM_SERIAL = 5,
QTY = 6,
CHK_RESULT = 7
};
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
bool m_bSortListAsc;
int m_iSortListItem;
CComboBox m_ctrlServerGroupCb;
CComboBox m_ctrlIsChkCb;
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
afx_msg void OnBnClickedDsSearchBtn();
afx_msg void OnBnClickedDsDeletelistBtn();
afx_msg void OnBnClickedDsChkBtn();
afx_msg void OnHdnItemchangingDsDitemList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnColumnclickDsDitemList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedDupitemClippingBtn();
public:
CListCtrl m_ctrlDItemList;
};

View File

@@ -0,0 +1,94 @@
// ExitToolDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "ExitToolDlg.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
// CExitToolDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CExitToolDlg, CDialog)
CExitToolDlg::CExitToolDlg(CWnd* pParent /*=NULL*/)
: CDialog(CExitToolDlg::IDD, pParent)
{
}
CExitToolDlg::~CExitToolDlg()
{
}
void CExitToolDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CExitToolDlg, CDialog)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(ID_QUIT, OnQuitBtn)
END_MESSAGE_MAP()
// CExitToolDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
HBRUSH CExitToolDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
BOOL CExitToolDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowText(GetLocalString("IDD_EXITTOOLDLG"));
SetUIString(this->m_hWnd, IDC_EXIT_01, "IDC_EXIT_01");
SetUIString(this->m_hWnd, IDC_EXIT_02, "IDC_EXIT_02");
SetUIString(this->m_hWnd, ID_QUIT, "ID_QUIT");
return TRUE;
}
void CExitToolDlg::OnOK()
{
}
void CExitToolDlg::OnCancel()
{
}
BOOL CExitToolDlg::PreTranslateMessage(MSG* pMsg)
{
return CDialog::PreTranslateMessage(pMsg);
}
void CExitToolDlg::OnToolExit(CString szText)
{
EndDialog(true);
}
void CExitToolDlg::OnQuitBtn()
{
UpdateData(true);
CString szText;
GetDlgItemText(IDC_EXITLOG, szText);
if((0 < szText.GetLength()) || (100 > szText.GetLength()))
{
CPacketMgr::GetInstance()->SendPktSetZoneList();
CPacketMgr::GetInstance()->SendExitLog(szText);
GetDlgItem(ID_QUIT)->EnableWindow(false);
Sleep(500); // <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD>۵<EFBFBD><DBB5><EFBFBD> <20><><EFBFBD><EFBFBD>;
EndDialog(true);
}
else
{
AfxMessageBox(GetLocalString("MSG_0099"));
}
}

View File

@@ -0,0 +1,33 @@
#pragma once
#include "afxwin.h"
/*!
\class CExitToolDlg
<09><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EBB3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CExitToolDlg : public CDialog
{
DECLARE_DYNAMIC(CExitToolDlg)
public:
CExitToolDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CExitToolDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_EXITTOOLDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
virtual void OnCancel();
virtual BOOL PreTranslateMessage(MSG* pMsg);
void OnQuitBtn();
void OnToolExit(CString szText);
virtual void OnOK();
};

View File

@@ -0,0 +1,430 @@
// FortInfoDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildSearchDlg.h"
#include "MiningCampDlg.h"
#include "ShopCampPage.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include "WindowMgr.h"
#include <Network/Protocol/RYL_AdminMgrProtocol.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include <Creature/Siege/SiegeConstants.h>
#include "CharacterDoc.h"
#include "AdminClientConstants.h"
#include "ListCtrlSortClass.h"
#include "FortInfoDlg.h"
#include ".\guildsearchdlg.h"
// CFortInfoDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CFortInfoDlg, CDialog)
CFortInfoDlg::CFortInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFortInfoDlg::IDD, pParent)
, m_bAllServerGroupChk(TRUE)
, m_bAllZoneGroupChk(TRUE)
, m_strSearchValue(_T(""))
, m_dwSelCount(0)
, m_dwSearchCount(0)
{
INSERT_WINDOW(IDD_FORTINFODLG, static_cast<CWnd*>(this));
}
CFortInfoDlg::~CFortInfoDlg()
{
ERASE_WINDOW(IDD_FORTINFODLG);
}
void CFortInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_FORTINFO_SERVERGROUP_CB, m_ctrlServerGroupCb);
DDX_Control(pDX, IDC_FORTINFO_ZONEGROUP_CB, m_ctrlZoneGroupCb);
DDX_Control(pDX, IDC_FORTINFO_SEARCHCONDITION_CB, m_ctrlSearchConditionCb);
DDX_Control(pDX, IDC_FORTINFO_SEARCHED_LIST, m_ctrlSearchedList);
DDX_Check(pDX, IDC_FORTINFO_SERVERGROUP_CHK, m_bAllServerGroupChk);
DDX_Check(pDX, IDC_FORTINFO_ZONEGROUP_CHK, m_bAllZoneGroupChk);
DDX_Text(pDX, IDC_FORTINFO_SEARCHVALUE_EDIT, m_strSearchValue);
DDX_Text(pDX, IDC_FORTINFO_SELCOUNT, m_dwSelCount);
DDX_Text(pDX, IDC_FORTINFO_SEARCHCOUNT, m_dwSearchCount);
}
BEGIN_MESSAGE_MAP(CFortInfoDlg, CDialog)
ON_BN_CLICKED(IDC_FORTINFO_SERVERGROUP_CHK, OnBnClickedAllServergroupChk)
ON_BN_CLICKED(IDC_FORTINFO_SEARCH_BTN, OnBnClickedSearch)
ON_BN_CLICKED(IDC_FORTINFO_ZONEGROUP_CHK, OnBnClickedAllZonegroupChk)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_FORTINFO_SEARCHED_LIST, OnLvnItemchangedSearchedList)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_FORTINFO_SEARCHED_LIST, OnLvnColumnclickSearchedList)
ON_NOTIFY(NM_DBLCLK, IDC_FORTINFO_SEARCHED_LIST, OnNMDblclkSearchedList)
END_MESSAGE_MAP()
BOOL CFortInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ServerGroupComboSet(m_ctrlServerGroupCb);
m_ctrlSearchConditionCb.InsertString(0, _T("GID"));
m_ctrlSearchConditionCb.InsertString(1, _T("Name"));
m_ctrlSearchedList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlSearchedList.InsertColumn(0, GetLocalString("ADDED_STRING_166"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(1, GetLocalString("ADDED_STRING_167"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(2, GetLocalString("ADDED_STRING_168"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(3, GetLocalString("ADDED_STRING_169"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(4, GetLocalString("ADDED_STRING_170"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(5, GetLocalString("ADDED_STRING_171"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(6, GetLocalString("ADDED_STRING_172"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(7, GetLocalString("ADDED_STRING_173"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(8, GetLocalString("ADDED_STRING_174"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(9, GetLocalString("ADDED_STRING_175"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(10, GetLocalString("ADDED_STRING_176"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(11, GetLocalString("ADDED_STRING_177"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(12, GetLocalString("ADDED_STRING_178"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(13, GetLocalString("ADDED_STRING_179"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(14, GetLocalString("ADDED_STRING_180"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(15, GetLocalString("ADDED_STRING_181"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(16, GetLocalString("ADDED_STRING_182"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(17, GetLocalString("ADDED_STRING_183"), LVCFMT_LEFT, 65);
m_ctrlSearchedList.InsertColumn(18, GetLocalString("ADDED_STRING_184"), LVCFMT_LEFT, 65);
SetWindowText(GetLocalString("ADDED_STRING_116"));
CComboBox* lpZoneCb = static_cast<CComboBox*>(GetDlgItem(IDC_FORTINFO_ZONEGROUP_CB));
for(int nIndex = 0; nIndex < SERVER_ID::MAX_ZONE_NUM; ++nIndex)
{
lpZoneCb->InsertString(nIndex, GetZoneString(nIndex));
}
SetUIString(this->m_hWnd, IDC_FORTINFO_SERVERGROUP_CHK, "IDC_GUILSEARCH_SERVERGROUP_CHK");
SetUIString(this->m_hWnd, IDC_FORTINFO_ZONEGROUP_CHK, "ADDED_STRING_117");
SetUIString(this->m_hWnd, IDC_FORTINFO_SEARCH_BTN, "IDC_GUILDSEARCH_SEARCH_BTN");
SetUIString(this->m_hWnd, IDC_FORTINFO_01, "ADDED_STRING_211");
SetUIString(this->m_hWnd, IDC_FORTINFO_02, "ADDED_STRING_212");
SetUIString(this->m_hWnd, IDC_FORTINFO_03, "ADDED_STRING_118");
SetUIString(this->m_hWnd, IDC_FORTINFO_04, "ADDED_STRING_119");
return TRUE;
}
void CFortInfoDlg::OnBnClickedSearch()
{
UpdateData(true);
unsigned char cSearchType = PktAdminMgr::PktFortSearch::NONE;
unsigned long dwServerGroup = 0;
unsigned long dwZoneGroup = 0;
TCHAR szSearchValue[MAX_PATH];
bool bAllServerGroupSerchFlag = false;
bool bAllZoneGroupSerchFlag = false;
if(m_bAllServerGroupChk && m_bAllZoneGroupChk)
{
bAllServerGroupSerchFlag = true;
bAllZoneGroupSerchFlag = true;
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktFortSearch::ALLSERVER_ALLZONE_ALLGUILD;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktFortSearch::ALLSERVER_ALLZONE_SPEGUILD_GID;
else if(m_ctrlSearchConditionCb.GetCurSel() == 1)
cSearchType = PktAdminMgr::PktFortSearch::ALLSERVER_ALLZONE_SPEGUILD_NAME;
}
}
else if(m_bAllServerGroupChk && CB_ERR != m_ctrlZoneGroupCb.GetCurSel())
{
bAllServerGroupSerchFlag = true;
dwZoneGroup = m_ctrlZoneGroupCb.GetCurSel();
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktFortSearch::ALLSERVER_SPEZONE_ALLGUILD;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktFortSearch::ALLSERVER_SPEZONE_SPEGUILD_GID;
else if(m_ctrlSearchConditionCb.GetCurSel() == 1)
cSearchType = PktAdminMgr::PktFortSearch::ALLSERVER_SPEZONE_SPEGUILD_NAME;
}
}
else if(m_bAllZoneGroupChk && CB_ERR != m_ctrlServerGroupCb.GetCurSel())
{
bAllZoneGroupSerchFlag = true;
CString strGroupName;
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktFortSearch::SPESERVER_ALLZONE_ALLGUILD;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktFortSearch::SPESERVER_ALLZONE_SPEGUILD_GID;
else if(m_ctrlSearchConditionCb.GetCurSel() == 1)
cSearchType = PktAdminMgr::PktFortSearch::SPESERVER_ALLZONE_SPEGUILD_NAME;
}
}
else if(!m_bAllServerGroupChk && !m_bAllZoneGroupChk
&& CB_ERR != m_ctrlServerGroupCb.GetCurSel() && CB_ERR != m_ctrlZoneGroupCb.GetCurSel() )
{
CString strGroupName;
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
dwZoneGroup = m_ctrlZoneGroupCb.GetCurSel();
if(0 == m_strSearchValue.GetLength())
{
cSearchType = PktAdminMgr::PktFortSearch::SPESERVER_SPEZONE_ALLGUILD;
}
else
{
if(CB_ERR == m_ctrlSearchConditionCb.GetCurSel())
Report(GetLocalString("MSG_0100"), CAUTION);
else if(m_ctrlSearchConditionCb.GetCurSel() == 0)
cSearchType = PktAdminMgr::PktFortSearch::SPESERVER_SPEZONE_SPEGUILD_GID;
else if(m_ctrlSearchConditionCb.GetCurSel() == 1)
cSearchType = PktAdminMgr::PktFortSearch::SPESERVER_SPEZONE_SPEGUILD_NAME;
}
}
else
{
Report(GetLocalString("ADDED_STRING_215"), CAUTION);
}
if(PktAdminMgr::PktGuildSearch::NONE != cSearchType)
{
m_ctrlSearchedList.DeleteAllItems();
_tcsncpy(szSearchValue, m_strSearchValue, m_strSearchValue.GetLength());
szSearchValue[m_strSearchValue.GetLength()] = '\0';
if(bAllServerGroupSerchFlag && bAllZoneGroupSerchFlag)
{
for(unsigned long dwServerGroup = 0; dwServerGroup < CON::MAX_GROUP_NUM; dwServerGroup++)
for(unsigned long dwZoneGroup = 0; dwZoneGroup < SERVER_ID::MAX_ZONE_NUM; dwZoneGroup++)
CPacketMgr::GetInstance()->SendFortSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
else if(bAllServerGroupSerchFlag)
{
for(unsigned long dwServerGroup = 0; dwServerGroup < CON::MAX_GROUP_NUM; dwServerGroup++)
CPacketMgr::GetInstance()->SendFortSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
else if(bAllZoneGroupSerchFlag)
{
for(unsigned long dwZoneGroup = 0; dwZoneGroup < SERVER_ID::MAX_ZONE_NUM; dwZoneGroup++)
CPacketMgr::GetInstance()->SendFortSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
else
{
CPacketMgr::GetInstance()->SendFortSearch(cSearchType, dwServerGroup, dwZoneGroup, szSearchValue);
m_dwSearchCount = 0;
UpdateData(false);
}
}
}
BOOL CFortInfoDlg::PreTranslateMessage(MSG* pMsg)
{
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
{
if(pMsg->hwnd == GetDlgItem(IDC_FORTINFO_SEARCHVALUE_EDIT)->m_hWnd)
{
OnBnClickedSearch();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CFortInfoDlg::OnBnClickedAllServergroupChk()
{
UpdateData(true);
m_ctrlServerGroupCb.EnableWindow(!m_bAllServerGroupChk);
}
void CFortInfoDlg::OnBnClickedAllZonegroupChk()
{
UpdateData(true);
m_ctrlZoneGroupCb.EnableWindow(!m_bAllZoneGroupChk);
}
void CFortInfoDlg::OnLvnItemchangedSearchedList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
m_dwSelCount = m_ctrlSearchedList.GetSelectedCount();
UpdateData(false);
*pResult = 0;
}
void CFortInfoDlg::OnLvnColumnclickSearchedList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlSearchedList, m_iSortListItem);
*pResult = 0;
}
void CFortInfoDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::ServerGroup:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::CampID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::GuildID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::GuildName:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::HP:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::Zone:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::Channel:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::ObjectType:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::State:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::SubState:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::UpgradeStep:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::RemainTime:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::LastUseTime:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::Right:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::PosX:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosY:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::PosZ:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtFLOAT);
break;
case SORT_TYPE::Material:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::SiegeCount:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
}
}
void CFortInfoDlg::OnNMDblclkSearchedList(NMHDR *pNMHDR, LRESULT *pResult)
{
if(0 < m_ctrlSearchedList.GetSelectedCount())
{
int Index = m_ctrlSearchedList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
TCHAR szValue[m_stSelFortInfo.MAX_STRING];
int SiegeObjectTypeIndex;
unsigned long dwServerGroup;
unsigned int iCampID;
m_ctrlSearchedList.GetItemText(Index, 0, szValue, sizeof(szValue));
CCharacterDoc::GetInstance().GetServerIndex(szValue, dwServerGroup);
m_ctrlSearchedList.GetItemText(Index, 1, szValue, sizeof(szValue));
iCampID = atoi(szValue);
m_ctrlSearchedList.GetItemText(Index, 7, szValue, sizeof(szValue));
SiegeObjectTypeIndex = GetSiegeObjectTypeIndex(szValue);
switch(SiegeObjectTypeIndex)
{
case Siege::MINING_CAMP:
{
CPacketMgr::GetInstance()->SendMiningCamp(dwServerGroup, iCampID);
CMiningCampDlg miningCampDlg;
miningCampDlg.DoModal();
break;
}
case Siege::CAMP_SHOP:
CPacketMgr::GetInstance()->SendShopCamp(dwServerGroup, iCampID);
CShopCampPage shopCampPage;
shopCampPage.DoModal();
break;
}
}
}
*pResult = 0;
}

View File

@@ -0,0 +1,77 @@
#pragma once
#include "afxwin.h"
#include "afxcmn.h"
// CFortInfoDlg <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
class CFortInfoDlg : public CDialog
{
DECLARE_DYNAMIC(CFortInfoDlg)
public:
CFortInfoDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CFortInfoDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_FORTINFODLG };
enum SORT_TYPE
{
ServerGroup,
CampID,
GuildID,
GuildName,
HP,
Zone,
Channel,
ObjectType,
State,
SubState,
UpgradeStep,
RemainTime,
LastUseTime,
Right,
PosX,
PosY,
PosZ,
Material,
SiegeCount
};
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual BOOL PreTranslateMessage(MSG* pMsg);
private:
bool m_bSortListAsc;
int m_iSortListItem;
UINT m_dwSelCount;
BOOL m_bAllServerGroupChk;
BOOL m_bAllZoneGroupChk;
CString m_strSearchValue;
CComboBox m_ctrlServerGroupCb;
CComboBox m_ctrlZoneGroupCb;
CComboBox m_ctrlSearchConditionCb;
SEL_FORT_INFO m_stSelFortInfo;
afx_msg void OnBnClickedAllServergroupChk();
afx_msg void OnBnClickedSearch();
afx_msg void OnBnClickedAllZonegroupChk();
afx_msg void OnLvnItemchangedSearchedList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnLvnColumnclickSearchedList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMDblclkSearchedList(NMHDR *pNMHDR, LRESULT *pResult);
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
public:
CListCtrl m_ctrlSearchedList;
UINT m_dwSearchCount;
};

View File

@@ -0,0 +1,118 @@
// GAdminInfoEditDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GAdminInfoEditDlg.h"
#include "PacketManager.h"
#include "CharacterDoc.h"
#include "GlobalFunctions.h"
// CGAdminInfoEditDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGAdminInfoEditDlg, CDialog)
CGAdminInfoEditDlg::CGAdminInfoEditDlg(CString strServerGroup, CString strUID, CWnd* pParent /*=NULL*/)
: CDialog(CGAdminInfoEditDlg::IDD, pParent)
, m_strServerGroup(strServerGroup)
, m_strUID(strUID)
{
}
CGAdminInfoEditDlg::~CGAdminInfoEditDlg()
{
}
void CGAdminInfoEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GAMIE_ADMINLV_CB, m_ctrlAdminLV);
DDX_Control(pDX, IDC_GAMIE_LIMITSTART_IP, m_ctrlStartIP);
DDX_Control(pDX, IDC_GAMIE_LIMITEND_IP, m_ctrlEndIP);
DDX_Text(pDX, IDC_GAMIE_GROUP_EDIT, m_strServerGroup);
DDX_Text(pDX, IDC_GAMIE_UID_EDIT, m_strUID);
}
BEGIN_MESSAGE_MAP(CGAdminInfoEditDlg, CDialog)
ON_BN_CLICKED(IDC_GAMIE_EDIT_BTN, OnBnClickedGamieEditBtn)
ON_BN_CLICKED(IDC_GAMIE_CANCEL_BTN, OnBnClickedGamieCancelBtn)
END_MESSAGE_MAP()
// CGAdminInfoEditDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CGAdminInfoEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlAdminLV.InsertString(0, _T("Supporter"));
m_ctrlAdminLV.InsertString(1, _T("Admin LV1"));
m_ctrlAdminLV.InsertString(2, _T("Admin LV2"));
m_ctrlAdminLV.InsertString(3, _T("Admin LV3"));
m_ctrlAdminLV.InsertString(4, _T("Developer"));
SetWindowText(GetLocalString("IDD_GADMININFOEDITDLG"));
SetUIString(this->m_hWnd, IDC_GAMEADMINEDIT_01, "IDC_GAMEADMINEDIT_01");
SetUIString(this->m_hWnd, IDC_GAMEADMINEDIT_02, "IDC_GAMEADMINEDIT_02");
SetUIString(this->m_hWnd, IDC_GAMEADMINEDIT_03, "IDC_GAMEADMINEDIT_03");
UpdateData(false);
return TRUE;
}
void CGAdminInfoEditDlg::OnBnClickedGamieEditBtn()
{
UpdateData(true);
if(CB_ERR != m_ctrlAdminLV.GetCurSel() && !m_strUID.IsEmpty())
{
unsigned long dwServerGroup;
CCharacterDoc::GetInstance().GetServerIndex(m_strServerGroup, dwServerGroup);
TCHAR szStartIP[PktAdminMgr::MAX_IP], szEndIP[PktAdminMgr::MAX_IP];
if(m_ctrlStartIP.IsBlank())
_sntprintf(szStartIP, PktAdminMgr::MAX_IP, _T("NULL"));
if(m_ctrlEndIP.IsBlank())
_sntprintf(szEndIP, PktAdminMgr::MAX_IP, _T("NULL"));
if(!(m_ctrlStartIP.IsBlank() && m_ctrlEndIP.IsBlank()))
{
m_ctrlStartIP.GetWindowText(szStartIP, PktAdminMgr::MAX_IP);
m_ctrlEndIP.GetWindowText(szEndIP, PktAdminMgr::MAX_IP);
}
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::EDIT, dwServerGroup,
_ttol(m_strUID), m_ctrlAdminLV.GetCurSel() + 1, szStartIP, szEndIP);
OnOK();
}
}
void CGAdminInfoEditDlg::OnBnClickedGamieCancelBtn()
{
this->OnCancel();
}
void CGAdminInfoEditDlg::OnOK()
{
//CDialog::OnOK();
}
BOOL CGAdminInfoEditDlg::PreTranslateMessage(MSG* pMsg)
{
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
{
if(pMsg->hwnd == GetDlgItem(IDC_GAMIE_LIMITEND_IP)->m_hWnd)
{
OnBnClickedGamieEditBtn();
}
}
return CDialog::PreTranslateMessage(pMsg);
}

View File

@@ -0,0 +1,39 @@
#pragma once
#include "afxwin.h"
#include "afxcmn.h"
/*!
\class CGAdminInfoEditDlg
<09><><EFBFBD><EFBFBD> <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CGAdminInfoEditDlg : public CDialog
{
DECLARE_DYNAMIC(CGAdminInfoEditDlg)
public:
CGAdminInfoEditDlg(CString strServerGroup, CString strUID, CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CGAdminInfoEditDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GADMININFOEDITDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void OnOK();
virtual BOOL PreTranslateMessage(MSG* pMsg);
private:
CString m_strServerGroup;
CString m_strUID;
CComboBox m_ctrlAdminLV;
CIPAddressCtrl m_ctrlStartIP;
CIPAddressCtrl m_ctrlEndIP;
afx_msg void OnBnClickedGamieEditBtn();
afx_msg void OnBnClickedGamieCancelBtn();
};

View File

@@ -0,0 +1,269 @@
// GAdminManagementDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GAdminManagementDlg.h"
#include "GlobalFunctions.h"
#include "WindowMgr.h"
#include "PacketManager.h"
#include "CharacterDoc.h"
#include "GAdminInfoEditDlg.h"
#include "ListCtrlSortClass.h"
// CGAdminManagementDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGAdminManagementDlg, CDialog)
CGAdminManagementDlg::CGAdminManagementDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGAdminManagementDlg::IDD, pParent)
, m_strRegAdminUID(_T(""))
, m_strSearchedGroup(_T(""))
, m_bSortListAsc(false)
{
}
CGAdminManagementDlg::~CGAdminManagementDlg()
{
}
void CGAdminManagementDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GADMINLIST, m_ctrlGAdminList);
DDX_Control(pDX, IDC_GAM_SERVERCB1, m_ctrlGAMServerCb1);
DDX_Control(pDX, IDC_GAM_SERVERCB2, m_ctrlGAMServerCb2);
DDX_Text(pDX, IDC_GAM_UID_EDIT, m_strRegAdminUID);
DDX_Control(pDX, IDC_GAM_LIMITIPSTART_IP, m_ctrlLimitStartIP);
DDX_Control(pDX, IDC_GAM_LIMITIPEND_IP, m_ctrlLimitEndIP);
DDX_Control(pDX, IDC_GAM_ADMINLV_CB, m_ctrlNewAdminLV);
DDX_Text(pDX, IDC_GAM_SEARCHEDGROUP_EDIT, m_strSearchedGroup);
}
BEGIN_MESSAGE_MAP(CGAdminManagementDlg, CDialog)
ON_WM_CTLCOLOR()
ON_WM_CONTEXTMENU()
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_GAM_ADMINREG_BTN, OnBnClickedGamAdminregBtn)
ON_BN_CLICKED(IDC_GAM_ADMINSEARCH_BTN, OnBnClickedGamAdminsearchBtn)
ON_COMMAND(ID_GAM_ADMINEDIT, OnGamAdminedit)
ON_COMMAND(ID_GAM_ADMINDEL, OnGamAdmindel)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_GAM_ADMIN_LIST, OnLvnColumnclickGamAdminList)
END_MESSAGE_MAP()
// CGAdminManagementDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
HBRUSH CGAdminManagementDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
BOOL CGAdminManagementDlg::OnInitDialog()
{
CDialog::OnInitDialog();
INSERT_WINDOW(IDD_GADMINMANAGEMENTDLG, static_cast<CWnd*>(this));
m_ctrlGAdminList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlGAdminList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 110);
m_ctrlGAdminList.InsertColumn(1, _T("Level"), LVCFMT_LEFT, 50);
m_ctrlGAdminList.InsertColumn(2, GetLocalString("LIMIT_IP_START"), LVCFMT_LEFT, 120);
m_ctrlGAdminList.InsertColumn(3, GetLocalString("LIMIT_IP_END"), LVCFMT_LEFT, 120);
ServerGroupComboSet(m_ctrlGAMServerCb1);
ServerGroupComboSet(m_ctrlGAMServerCb2);
m_ctrlNewAdminLV.InsertString(0, _T("Supporter"));
m_ctrlNewAdminLV.InsertString(1, _T("Admin LV1"));
m_ctrlNewAdminLV.InsertString(2, _T("Admin LV2"));
m_ctrlNewAdminLV.InsertString(3, _T("Admin LV3"));
m_ctrlNewAdminLV.InsertString(4, _T("Developer"));
SetWindowText(GetLocalString("IDD_GADMINMANAGEMENTDLG"));
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_01, "IDC_GADMINMANEGE_01");
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_02, "IDC_GADMINMANEGE_02");
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_03, "IDC_GADMINMANEGE_03");
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_04, "IDC_GADMINMANEGE_04");
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_05, "IDC_GADMINMANEGE_05");
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_06, "IDC_GADMINMANEGE_06");
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_07, "IDC_GADMINMANEGE_07");
SetUIString(this->m_hWnd, IDC_GAM_ADMINSEARCH_BTN, "IDC_GAM_ADMINSEARCH_BTN");
SetUIString(this->m_hWnd, IDC_GAM_ADMINREG_BTN, "IDC_GAM_ADMINREG_BTN");
return TRUE;
}
void CGAdminManagementDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
if(pWnd->GetSafeHwnd() == m_ctrlGAdminList.GetSafeHwnd()
&& m_ctrlGAdminList.GetSelectedCount() == 1)
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(9);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GAM_ADMINEDIT, GetLocalString("MENU_028"));
pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_GAM_ADMINDEL, GetLocalString("MENU_029"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CGAdminManagementDlg::OnDestroy()
{
CDialog::OnDestroy();
ERASE_WINDOW(IDD_GADMINMANAGEMENTDLG);
}
void CGAdminManagementDlg::OnBnClickedGamAdminregBtn()
{
UpdateData(true);
if((CB_ERR != m_ctrlGAMServerCb1.GetCurSel()) && (CB_ERR != m_ctrlNewAdminLV.GetCurSel()))
{
if(!m_strRegAdminUID.IsEmpty())
{
unsigned long dwServerGroup;
CString strGroupName;
m_ctrlGAMServerCb1.GetLBText(m_ctrlGAMServerCb1.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
TCHAR szStartIP[PktAdminMgr::MAX_IP], szEndIP[PktAdminMgr::MAX_IP];
if(m_ctrlLimitStartIP.IsBlank())
_sntprintf(szStartIP, PktAdminMgr::MAX_IP, _T("NULL"));
if(m_ctrlLimitEndIP.IsBlank())
_sntprintf(szEndIP, PktAdminMgr::MAX_IP, _T("NULL"));
if(!(m_ctrlLimitStartIP.IsBlank() && m_ctrlLimitEndIP.IsBlank()))
{
m_ctrlLimitStartIP.GetWindowText(szStartIP, PktAdminMgr::MAX_IP);
m_ctrlLimitEndIP.GetWindowText(szEndIP, PktAdminMgr::MAX_IP);
}
#ifdef _UNICODE
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::REG,
dwServerGroup, _ttol(m_strRegAdminUID), m_ctrlNewAdminLV.GetCurSel() + 1, szStartIP, szEndIP);
#endif
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::REG,
dwServerGroup, _ttol(m_strRegAdminUID), m_ctrlNewAdminLV.GetCurSel() + 1, szStartIP, szEndIP);
}
}
}
void CGAdminManagementDlg::OnBnClickedGamAdminsearchBtn()
{
if(CB_ERR != m_ctrlGAMServerCb2.GetCurSel())
{
m_ctrlGAdminList.DeleteAllItems();
unsigned long dwServerGroup;
CString strGroupName;
m_ctrlGAMServerCb2.GetLBText(m_ctrlGAMServerCb2.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::SEARCH, dwServerGroup);
m_strSearchedGroup.Format(_T("%s"), strGroupName);
UpdateData(false);
}
}
void CGAdminManagementDlg::OnGamAdminedit()
{
if(m_ctrlGAdminList.GetSelectedCount() == 1)
{
int Index = m_ctrlGAdminList.GetNextItem(-1, LVIS_SELECTED);
CGAdminInfoEditDlg dlg(m_strSearchedGroup, m_ctrlGAdminList.GetItemText(Index, 0));
dlg.DoModal();
}
}
void CGAdminManagementDlg::OnGamAdmindel()
{
if(m_ctrlGAdminList.GetSelectedCount() == 1)
{
UpdateData(true);
unsigned long dwServerGroup;
CCharacterDoc::GetInstance().GetServerIndex(m_strSearchedGroup, dwServerGroup);
int Index = m_ctrlGAdminList.GetNextItem(-1, LVIS_SELECTED);
unsigned long dwUID = _ttol(m_ctrlGAdminList.GetItemText(Index, 0));
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::DEL, dwServerGroup, dwUID);
}
}
void CGAdminManagementDlg::ReFreshGameAdminList()
{
OnBnClickedGamAdminsearchBtn();
}
BOOL CGAdminManagementDlg::PreTranslateMessage(MSG* pMsg)
{
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
{
if(pMsg->hwnd == GetDlgItem(IDC_GAM_UID_EDIT)->m_hWnd
|| pMsg->hwnd == GetDlgItem(IDC_GAM_LIMITIPEND_IP)->m_hWnd)
{
OnBnClickedGamAdminregBtn();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CGAdminManagementDlg::OnOK()
{
//CDialog::OnOK();
}
void CGAdminManagementDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::UID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::LV:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::IP_S:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::IP_E:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
}
}
void CGAdminManagementDlg::OnLvnColumnclickGamAdminList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlGAdminList, m_iSortListItem);
*pResult = 0;
}

View File

@@ -0,0 +1,59 @@
#pragma once
#include "afxcmn.h"
#include "afxwin.h"
/*!
\class CGAdminManagementDlg
<09><><EFBFBD>ӳ<EFBFBD> <20><EFBFBD><EEBFB5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CGAdminManagementDlg : public CDialog
{
DECLARE_DYNAMIC(CGAdminManagementDlg)
public:
CGAdminManagementDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CGAdminManagementDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GADMINMANAGEMENTDLG };
enum SORT_TYPE { UID, LV, IP_S, IP_E };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
virtual void OnOK();
virtual BOOL PreTranslateMessage(MSG* pMsg);
private:
bool m_bSortListAsc;
int m_iSortListItem;
CComboBox m_ctrlGAMServerCb1;
CComboBox m_ctrlGAMServerCb2;
CComboBox m_ctrlNewAdminLV;
CIPAddressCtrl m_ctrlLimitStartIP;
CIPAddressCtrl m_ctrlLimitEndIP;
CString m_strRegAdminUID;
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnBnClickedGamAdminregBtn();
afx_msg void OnBnClickedGamAdminsearchBtn();
afx_msg void OnGamAdminedit();
afx_msg void OnGamAdmindel();
afx_msg void OnDestroy();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnLvnColumnclickGamAdminList(NMHDR *pNMHDR, LRESULT *pResult);
void SortListWndItem(CListCtrl *pListCtrl, const int iCol);
public:
CListCtrl m_ctrlGAdminList;
CString m_strSearchedGroup;
void ReFreshGameAdminList();
};

View File

@@ -0,0 +1,220 @@
// GMLogMsgDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GMLogMsgDlg.h"
#include "WindowMgr.h"
#include "GlobalFunctions.h"
#include "PacketManager.h"
#include "CharacterDoc.h"
#include "ListCtrlSortClass.h"
#include "DetailInfoDlg.h"
// CGMLogMsgDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGMLogMsgDlg, CDialog)
CGMLogMsgDlg::CGMLogMsgDlg(DLG_TYPE eDlgType, DlgOwnerInfo& stInfo, CWnd* pParent /*=NULL*/)
: CDialog(CGMLogMsgDlg::IDD, pParent)
, m_bSortListAsc(false)
{
INSERT_WINDOW(IDD_GMLOGMSGDLG, static_cast<CWnd*>(this));
m_stDlgOwnerInfo.m_dwUID = stInfo.m_dwUID;
m_stDlgOwnerInfo.m_dwCID = stInfo.m_dwCID;
m_stDlgOwnerInfo.m_dwServerGroup = stInfo.m_dwServerGroup;
m_eDlgType = eDlgType;
}
CGMLogMsgDlg::~CGMLogMsgDlg()
{
ERASE_WINDOW(IDD_GMLOGMSGDLG);
}
void CGMLogMsgDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GMLOGMSG_LIST, m_ctrlGMLogMsgList);
}
BEGIN_MESSAGE_MAP(CGMLogMsgDlg, CDialog)
ON_BN_CLICKED(IDC_GMLOG_ADD, OnBnClickedGmlogAdd)
ON_BN_CLICKED(IDC_GMLOG_DEL, OnBnClickedGmlogDel)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_GMLOGMSG_LIST, OnLvnColumnclickGmlogmsgList)
ON_BN_CLICKED(IDC_GMLOG_CLIPPING_BTN, OnBnClickedGmlogClippingBtn)
ON_NOTIFY(NM_DBLCLK, IDC_GMLOGMSG_LIST, OnNMDblclkGmlogmsgList)
END_MESSAGE_MAP()
// CGMLogMsgDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CGMLogMsgDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlGMLogMsgList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlGMLogMsgList.InsertColumn(0, GetLocalString("ADDED_STRING_051"), LVCFMT_LEFT, 50);
m_ctrlGMLogMsgList.InsertColumn(1, GetLocalString("EDIT_TIME"), LVCFMT_LEFT, 140);
m_ctrlGMLogMsgList.InsertColumn(2, GetLocalString("ADDED_STRING_050"), LVCFMT_LEFT, 150);
m_ctrlGMLogMsgList.InsertColumn(3, GetLocalString("ADMIN_ID"), LVCFMT_LEFT, 100);
CString strTitle;
strTitle = GetLocalString("ADDED_STRING_046");
if (UID_LOG_TYPE == m_eDlgType)
{
strTitle.AppendFormat(" (UID: %u)", m_stDlgOwnerInfo.m_dwUID);
SetDlgItemInt(IDC_GMLOG_UID_EDIT, (int)m_stDlgOwnerInfo.m_dwUID, false);
SetDlgItemText(IDC_GMLOG_SERVER_EDIT, "none");
SetDlgItemInt(IDC_GMLOG_CID_EDIT, 0, false);
CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_SELECT,
m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID);
}
else if (CID_LOG_TYPE == m_eDlgType)
{
strTitle.AppendFormat(" (CID: %u)", m_stDlgOwnerInfo.m_dwCID);
CString strServerName;
CCharacterDoc::GetInstance().GetServerName(m_stDlgOwnerInfo.m_dwServerGroup, strServerName);
SetDlgItemInt(IDC_GMLOG_UID_EDIT, (int)m_stDlgOwnerInfo.m_dwUID, false);
SetDlgItemText(IDC_GMLOG_SERVER_EDIT, strServerName);
SetDlgItemInt(IDC_GMLOG_CID_EDIT, (int)m_stDlgOwnerInfo.m_dwCID, false);
CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_SELECT,
m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID, m_stDlgOwnerInfo.m_dwCID);
}
SetUIString(this->m_hWnd, IDC_GMLOG_LIST_GROUP, "ADDED_STRING_048");
SetUIString(this->m_hWnd, IDC_GMLOG_ADD_GROUP, "ADDED_STRING_049");
SetUIString(this->m_hWnd, IDC_GMLOG_GROUP_STATIC, "IDC_CHARRESTORE_03");
SetUIString(this->m_hWnd, IDC_GMLOG_ADD_GROUP, "ADDED_STRING_049");
SetUIString(this->m_hWnd, IDC_GMLOG_ADD, "IDC_DROPCONTROL_ADDITEM_BTN");
SetUIString(this->m_hWnd, IDC_GMLOG_CLIPPING_BTN, "IDC_BILLLOG_TO_CLIP_BTN");
SetUIString(this->m_hWnd, IDC_GMLOG_DEL, "ADDED_STRING_052");
SetWindowText(strTitle);
return TRUE;
}
bool CGMLogMsgDlg::InsertGMLogMsgList(PktAdminMgr::PktGMLogMsg* lpData)
{
if (NULL == lpData)
{
return false;
}
CString strForFormat;
int nInsertIndex = m_ctrlGMLogMsgList.GetItemCount();
strForFormat.Format(_T("%u"), lpData->m_dwLogID);
m_ctrlGMLogMsgList.InsertItem(nInsertIndex, strForFormat);
strForFormat.Format(_T("%s"), lpData->m_szEditDate);
m_ctrlGMLogMsgList.SetItemText(nInsertIndex, 1, strForFormat);
strForFormat.Format(_T("%s"), lpData->m_szLogMsg);
m_ctrlGMLogMsgList.SetItemText(nInsertIndex, 2, strForFormat);
strForFormat.Format(_T("%s"), lpData->m_szAdminID);
m_ctrlGMLogMsgList.SetItemText(nInsertIndex, 3, strForFormat);
return true;
}
void CGMLogMsgDlg::OnBnClickedGmlogAdd()
{
CString strMsg;
GetDlgItemText(IDC_GMLOG_ADDLOG_EDIT, strMsg);
if (false == strMsg.IsEmpty() && strMsg.GetLength() < PktAdminMgr::MAX_LOG)
{
char szMsg[PktAdminMgr::MAX_LOG];
_snprintf(szMsg, PktAdminMgr::MAX_LOG, "%s", strMsg);
CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_INSERT,
m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID, m_stDlgOwnerInfo.m_dwCID, 0, szMsg);
}
else
{
Report(GetLocalString("ADDED_STRING_047"), CAUTION);
}
}
void CGMLogMsgDlg::OnBnClickedGmlogDel()
{
if (1 == m_ctrlGMLogMsgList.GetSelectedCount())
{
int nIndex = m_ctrlGMLogMsgList.GetNextItem(-1, LVIS_SELECTED);
unsigned long dwLogID = atol(m_ctrlGMLogMsgList.GetItemText(nIndex, 0));
CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_DELETE,
m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID, m_stDlgOwnerInfo.m_dwCID, dwLogID);
}
}
void CGMLogMsgDlg::OnLvnColumnclickGmlogmsgList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlGMLogMsgList, m_iSortListItem);
*pResult = 0;
}
void CGMLogMsgDlg::SortListWndItem(CListCtrl* lpListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(lpListCtrl, iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::LOGID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::EDITDATE:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::LOGMSG:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::ADMINID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
}
}
void CGMLogMsgDlg::OnBnClickedGmlogClippingBtn()
{
ClippingListCtrl(m_ctrlGMLogMsgList, 4, true);
}
void CGMLogMsgDlg::OnNMDblclkGmlogmsgList(NMHDR *pNMHDR, LRESULT *pResult)
{
if (1 == m_ctrlGMLogMsgList.GetSelectedCount())
{
int nIndex = m_ctrlGMLogMsgList.GetNextItem(-1, LVIS_SELECTED);
CString strMsg = m_ctrlGMLogMsgList.GetItemText(nIndex, 2);
CDetailInfoDlg dlg(strMsg);
dlg.DoModal();
}
*pResult = 0;
}

View File

@@ -0,0 +1,76 @@
#pragma once
#include "afxcmn.h"
#include <Network/Protocol/RYL_AdminMgrProtocol.h>
/*!
\class CGMLogMsgDlg
GM<47>α<EFBFBD> <20>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CGMLogMsgDlg : public CDialog
{
DECLARE_DYNAMIC(CGMLogMsgDlg)
public:
enum DLG_TYPE
{
UID_LOG_TYPE = 0,
CID_LOG_TYPE = 1
};
enum SORT_TYPE
{
LOGID = 0,
EDITDATE = 1,
LOGMSG = 2,
ADMINID = 3
};
struct DlgOwnerInfo
{
unsigned long m_dwUID;
unsigned long m_dwCID;
unsigned long m_dwServerGroup;
DlgOwnerInfo()
{
m_dwUID = 0;
m_dwCID = 0;
m_dwServerGroup = 0;
};
};
CGMLogMsgDlg(DLG_TYPE eDlgType, DlgOwnerInfo& stInfo, CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CGMLogMsgDlg();
enum { IDD = IDD_GMLOGMSGDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
private:
virtual BOOL OnInitDialog();
bool m_bSortListAsc;
int m_iSortListItem;
DLG_TYPE m_eDlgType;
DlgOwnerInfo m_stDlgOwnerInfo;
void SortListWndItem(CListCtrl* lpListCtrl, const int iCol);
afx_msg void OnBnClickedGmlogAdd();
afx_msg void OnBnClickedGmlogDel();
afx_msg void OnLvnColumnclickGmlogmsgList(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedGmlogClippingBtn();
afx_msg void OnNMDblclkGmlogmsgList(NMHDR *pNMHDR, LRESULT *pResult);
public:
CListCtrl m_ctrlGMLogMsgList;
bool InsertGMLogMsgList(PktAdminMgr::PktGMLogMsg* lpData);
};

View File

@@ -0,0 +1,594 @@
#include "stdafx.h"
#include "GlobalFunctions.h"
#include "AdminToolClient.h"
#include "CharacterDoc.h"
#include "Clipboard.h"
#include "CheckComboBox.h"
#include "WindowMgr.h"
#include "AdminStoreDlgBar.h"
#include <Item/Item.h>
#include <Log/ServerLog.h>
#include <Creature/CreatureStructure.h>
#include <Creature/Character/CharacterClass.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include <Community/Guild/GuildConstants.h>
#include <Creature/Siege/SiegeConstants.h>
#include <Item/ItemConstants.h>
static const char* szSetupFileName = _T("./AdminToolClientSetup.ini");
// <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD>ѿ<EFBFBD><D1BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> : ctrlList - Ŭ<><C5AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD><C6AE>, nColCount - <20>÷<EFBFBD> <20><>
bool ClippingListCtrl(CListCtrl& ctrlList, int nColCount, bool bIsAllSel)
{
CString strBuffer;
strBuffer.Empty();
if(bIsAllSel)
{
for(int nRow = 0; nRow < ctrlList.GetItemCount(); ++nRow)
{
for(int nCol = 0; nCol < nColCount; ++nCol)
{
strBuffer.AppendFormat(_T("%s"), ctrlList.GetItemText(nRow, nCol));
strBuffer.AppendFormat(_T("\t"));
}
strBuffer.AppendFormat(_T("\r\n"));
}
}
else
{
POSITION pos = ctrlList.GetFirstSelectedItemPosition();
while(pos)
{
int nSelIndex = ctrlList.GetNextSelectedItem(pos);
for(int nCol = 0; nCol < nColCount; ++nCol)
{
strBuffer.AppendFormat(_T("%s"), ctrlList.GetItemText(nSelIndex, nCol));
strBuffer.AppendFormat(_T("\t"));
}
strBuffer.AppendFormat(_T("\r\n"));
}
}
return CClipboard::SetText(strBuffer);
}
void CustomPeekMessage()
{
MSG msg;
if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
AfxGetApp()->PumpMessage();
}
}
int SearchListCtrlCol(CListCtrl& ctrlList, CString strSearchValue, int nColIndex)
{
CString strGetString;
for(int nIndex = 0; nIndex < ctrlList.GetItemCount(); ++nIndex)
{
strGetString = ctrlList.GetItemText(nIndex, nColIndex);
if(0 == strGetString.Compare(strSearchValue))
return nIndex;
}
return -1;
}
void ServerGroupComboSet(CComboBox &Cb)
{
CCharacterDoc::listServerInfoPos nEndPos = CCharacterDoc::GetInstance().GetServerInfoEnd();
CCharacterDoc::listServerInfoPos nPos = CCharacterDoc::GetInstance().GetServerInfoBegin();
int ComboIdx = 0;
while(nPos != nEndPos)
{
CCharacterDoc::ServerInfo& Info = (*nPos);
Cb.InsertString(ComboIdx++, Info.m_strServerName);
++nPos;
}
}
void ServerGroupComboSet(CCheckComboBox &Cb, bool bIsCheck)
{
CCharacterDoc::listServerInfoPos nEndPos = CCharacterDoc::GetInstance().GetServerInfoEnd();
CCharacterDoc::listServerInfoPos nPos = CCharacterDoc::GetInstance().GetServerInfoBegin();
int ComboIdx = 0;
while(nPos != nEndPos)
{
CCharacterDoc::ServerInfo& Info = (*nPos);
Cb.InsertString(ComboIdx++, Info.m_strServerName);
++nPos;
}
for(int nIdx = 0; nIdx < Cb.GetCount(); ++nIdx)
{
Cb.SetCheck(nIdx, bIsCheck);
}
}
CString GetRaceString(int nRaceIndex)
{
switch(nRaceIndex)
{
case CClass::HUMAN: return GetLocalString("HUMAN");
case CClass::AKHAN: return GetLocalString("AKHAN");
default: return _T("UNKNOWN");
}
}
CString GetNationString(int nNationIndex)
{
switch(nNationIndex)
{
case Creature::KARTERANT: return GetLocalString("NATION_001");
case Creature::MERKADIA: return GetLocalString("NATION_002");
case Creature::STATELESS: return GetLocalString("NATION_003");
case Creature::ALMIGHTY_PIRATE: return GetLocalString("NATION_004");
}
return _T("UNKNOWN");
}
CString GetSiegeObjectTypeString(int nSiegeObjectTypeIndex)
{
using namespace Siege;
switch(nSiegeObjectTypeIndex)
{
case Siege::EMBLEM: return GetLocalString("ADDED_STRING_120");
case Siege::GATE: return GetLocalString("ADDED_STRING_121");
case Siege::BACKDOOR: return GetLocalString("ADDED_STRING_122");
case Siege::CAMP: return GetLocalString("ADDED_STRING_123");
case Siege::CASTLE_ARMS_NPC: return GetLocalString("ADDED_STRING_124");
case Siege::GUARD: return GetLocalString("ADDED_STRING_125");
case Siege::SHORT_RANGE_CASTLE_ARMS: return GetLocalString("ADDED_STRING_126");
case Siege::LONG_RANGE_CASTLE_ARMS: return GetLocalString("ADDED_STRING_127");
case Siege::SHORT_RANGE_SIEGE_ARMS: return GetLocalString("ADDED_STRING_128");
case Siege::LONG_RANGE_SIEGE_ARMS: return GetLocalString("ADDED_STRING_129");
case Siege::AIRSHIP: return GetLocalString("ADDED_STRING_130");
case Siege::MINING_CAMP: return GetLocalString("ADDED_STRING_131");
case Siege::CAMP_SHOP: return GetLocalString("ADDED_STRING_132");
case Siege::KARTERANT_WEAPON: return GetLocalString("ADDED_STRING_133");
case Siege::MERKADIA_WEAPON: return GetLocalString("ADDED_STRING_134");
case Siege::DEFAULT_TYPE: return GetLocalString("ADDED_STRING_135");
}
return _T("UNKNOWN");
}
int GetSiegeObjectTypeIndex(char* szSiegeObjectType)
{
CString strEMBLEM = GetLocalString("ADDED_STRING_120");
CString strGATE = GetLocalString("ADDED_STRING_121");
CString strBACKDOOR = GetLocalString("ADDED_STRING_122");
CString strCAMP = GetLocalString("ADDED_STRING_123");
CString strCASTLE_ARMS_NPC = GetLocalString("ADDED_STRING_124");
CString strGUARD = GetLocalString("ADDED_STRING_125");
CString strSHORT_RANGE_CASTLE_ARMS = GetLocalString("ADDED_STRING_126");
CString strLONG_RANGE_CASTLE_ARMS = GetLocalString("ADDED_STRING_127");
CString strSHORT_RANGE_SIEGE_ARMS = GetLocalString("ADDED_STRING_128");
CString strLONG_RANGE_SIEGE_ARMS = GetLocalString("ADDED_STRING_129");
CString strAIRSHIP = GetLocalString("ADDED_STRING_130");
CString strMINING_CAMP = GetLocalString("ADDED_STRING_131");
CString strCAMP_SHOP = GetLocalString("ADDED_STRING_132");
CString strKARTERANT_WEAPON = GetLocalString("ADDED_STRING_133");
CString strMERKADIA_WEAPON = GetLocalString("ADDED_STRING_134");
CString strDEFAULT_TYPE = GetLocalString("ADDED_STRING_135");
if (0 == strEMBLEM.CompareNoCase(szSiegeObjectType)) return Siege::EMBLEM;
else if (0 == strGATE.CompareNoCase(szSiegeObjectType)) return Siege::GATE;
else if (0 == strBACKDOOR.CompareNoCase(szSiegeObjectType)) return Siege::BACKDOOR;
else if (0 == strCAMP.CompareNoCase(szSiegeObjectType)) return Siege::CAMP;
else if (0 == strCASTLE_ARMS_NPC.CompareNoCase(szSiegeObjectType)) return Siege::CASTLE_ARMS_NPC;
else if (0 == strGUARD.CompareNoCase(szSiegeObjectType)) return Siege::GUARD;
else if (0 == strSHORT_RANGE_CASTLE_ARMS.CompareNoCase(szSiegeObjectType)) return Siege::SHORT_RANGE_CASTLE_ARMS;
else if (0 == strLONG_RANGE_CASTLE_ARMS.CompareNoCase(szSiegeObjectType)) return Siege::LONG_RANGE_CASTLE_ARMS;
else if (0 == strSHORT_RANGE_SIEGE_ARMS.CompareNoCase(szSiegeObjectType)) return Siege::SHORT_RANGE_SIEGE_ARMS;
else if (0 == strLONG_RANGE_SIEGE_ARMS.CompareNoCase(szSiegeObjectType)) return Siege::LONG_RANGE_SIEGE_ARMS;
else if (0 == strAIRSHIP.CompareNoCase(szSiegeObjectType)) return Siege::AIRSHIP;
else if (0 == strMINING_CAMP.CompareNoCase(szSiegeObjectType)) return Siege::MINING_CAMP;
else if (0 == strCAMP_SHOP.CompareNoCase(szSiegeObjectType)) return Siege::CAMP_SHOP;
else if (0 == strKARTERANT_WEAPON.CompareNoCase(szSiegeObjectType)) return Siege::KARTERANT_WEAPON;
else if (0 == strMERKADIA_WEAPON.CompareNoCase(szSiegeObjectType)) return Siege::MERKADIA_WEAPON;
else return Siege::DEFAULT_TYPE;
}
CString GetStateString(int nStateIndex)
{
switch(nStateIndex)
{
case Siege::COMPLETE: return GetLocalString("ADDED_STRING_136");
case Siege::UPGRADING: return GetLocalString("ADDED_STRING_137");
case Siege::REPARING: return GetLocalString("ADDED_STRING_138");
case Siege::DESTROYING: return GetLocalString("ADDED_STRING_139");
case Siege::CHANGING: return GetLocalString("ADDED_STRING_140");
case Siege::DEVELOPING: return GetLocalString("ADDED_STRING_141");
case Siege::CANCELING: return GetLocalString("ADDED_STRING_142");
case Siege::RESTORING: return GetLocalString("ADDED_STRING_143");
case Siege::DESTROYED: return GetLocalString("ADDED_STRING_144");
}
return _T("UNKNOWN");
}
CString GetSubStateString(int nSiegeObjectTypeIndex, int nSubStateIndex)
{
switch(nSiegeObjectTypeIndex)
{
case Siege::EMBLEM:
{
switch(nSubStateIndex)
{
case Siege::MINE: return GetLocalString("ADDED_STRING_146");
case Siege::ENEMY: return GetLocalString("ADDED_STRING_147");
}
}
case Siege::GATE:
{
switch(nSubStateIndex)
{
case Siege::OPENED: return GetLocalString("ADDED_STRING_148");
case Siege::CLOSED: return GetLocalString("ADDED_STRING_149");
}
}
case Siege::BACKDOOR:
{
switch(nSubStateIndex)
{
case Siege::OPENED: return GetLocalString("ADDED_STRING_148");
case Siege::CLOSED: return GetLocalString("ADDED_STRING_149");
}
}
case Siege::MINING_CAMP:
{
switch(nSubStateIndex)
{
case Siege::MINING_OFF: return GetLocalString("ADDED_STRING_150");
case Siege::MINING_ON: return GetLocalString("ADDED_STRING_151");
case Siege::MINING_READY: return GetLocalString("ADDED_STRING_152");
}
}
case Siege::KARTERANT_WEAPON:
{
switch(nSubStateIndex)
{
case Siege::WEAPON_EMPTY: return GetLocalString("ADDED_STRING_153");
case Siege::WEAPON_CHARGE: return GetLocalString("ADDED_STRING_154");
case Siege::WEAPON_READY: return GetLocalString("ADDED_STRING_155");
case Siege::WEAPON_FIRE: return GetLocalString("ADDED_STRING_156");
}
}
case Siege::MERKADIA_WEAPON:
{
switch(nSubStateIndex)
{
case Siege::WEAPON_EMPTY: return GetLocalString("ADDED_STRING_153");
case Siege::WEAPON_CHARGE: return GetLocalString("ADDED_STRING_154");
case Siege::WEAPON_READY: return GetLocalString("ADDED_STRING_155");
case Siege::WEAPON_FIRE: return GetLocalString("ADDED_STRING_156");
}
}
default : return GetLocalString("ADDED_STRING_145");
}
return _T("UNKNOWN");
}
CString GetJewelString(int nJewelIndex)
{
switch(nJewelIndex)
{
case Siege::NO_JEWEL: return GetLocalString("");
case Siege::RUBY: return GetLocalString("");
case Siege::EMERALD: return GetLocalString("");
case Siege::SAPPHIRE: return GetLocalString("");
case Siege::DIAMOND: return GetLocalString("");
case Siege::BLACKMOON: return GetLocalString("");
}
return _T("UNKNOWN");
}
unsigned char GetNationIndex(char* szNation)
{
CString strKarterant = GetLocalString("NATION_001");
CString strMerkadia = GetLocalString("NATION_002");
CString strStateless = GetLocalString("NATION_003");
CString strThirdNation = GetLocalString("NATION_004");
if (0 == strKarterant.CompareNoCase(szNation)) return Creature::KARTERANT;
else if (0 == strMerkadia.CompareNoCase(szNation)) return Creature::MERKADIA;
else if (0 == strStateless.CompareNoCase(szNation)) return Creature::STATELESS;
else if (0 == strThirdNation.CompareNoCase(szNation)) return Creature::ALMIGHTY_PIRATE;
else return Creature::STATELESS;
}
CString GetSkillTypeString(unsigned char SkillType)
{
switch(SkillType)
{
case Skill::Type::NONE: return _T("NONE");
case Skill::Type::PASSIVE: return _T("PASSIVE");
case Skill::Type::INSTANCE: return _T("INSTANCE");
case Skill::Type::CAST: return _T("CAST");
case Skill::Type::CHANT: return _T("CHANT");
case Skill::Type::ENCHANT: return _T("ENCHANT");
case Skill::Type::ITEM: return _T("ITEM");
}
return _T("UNKNOWN");
}
CString GetZoneString(unsigned char cZoneIdx)
{
switch(cZoneIdx)
{
case SERVER_ID::ZONE1: return GetLocalString("ZONE_001");
case SERVER_ID::ZONE2: return GetLocalString("ZONE_002");
case SERVER_ID::ZONE4: return GetLocalString("ZONE_004");
case SERVER_ID::ZONE5: return GetLocalString("ZONE_005");
case SERVER_ID::CAPITAL: return GetLocalString("ZONE_008");
case SERVER_ID::ZONE9: return GetLocalString("ZONE_009");
case SERVER_ID::ZONE12: return GetLocalString("ZONE_012");
case SERVER_ID::STONE_WAR1: return GetLocalString("ZONE_016");
case SERVER_ID::STONE_WAR2: return GetLocalString("ZONE_017");
case SERVER_ID::STONE_WAR3: return GetLocalString("ZONE_018");
}
return _T("NONE");
}
CString GetClassString(int nClassIndex)
{
CString strClassName, strKey;
strKey.Format("CLASS_%03d", nClassIndex);
strClassName = GetLocalString(strKey);
if(false == strClassName.IsEmpty())
{
return strClassName;
}
return _T("NONE");
}
CString GetSetupString(CString Section, CString key)
{
TCHAR value[255];
GetPrivateProfileString(Section, key, _T("default"), value, 255, szSetupFileName);
return value;
}
CString GetSTableString(unsigned int nIDS)
{
CString strString;
strString.LoadString(nIDS);
return strString;
}
int GetSetupInt(CString Section, CString key)
{
return GetPrivateProfileInt(Section, key, 255, szSetupFileName);
}
void Report(CString report, REPORT_TYPE eType)
{
CAdminStoreDlgBar* StoreBar = static_cast<CAdminStoreDlgBar*>(GET_WINDOW(IDD_STATUS_DLGBAR));
if(NULL != StoreBar)
{
StoreBar->WorkReport(report, eType);
}
}
void Report(UINT nID, REPORT_TYPE eType)
{
CAdminStoreDlgBar* StoreBar = static_cast<CAdminStoreDlgBar*>(GET_WINDOW(IDD_STATUS_DLGBAR));
CString strStringTable;
strStringTable.LoadString(nID);
StoreBar->WorkReport(strStringTable, eType);
}
COLORREF GetItemTypeColor(Item::ItemType::Type ItemTypeIndex)
{
COLORREF ItemTypeColor;
using namespace Item::ItemType;
switch (ItemTypeIndex)
{
case SHIRT: ItemTypeColor = RGB(0, 221, 111); break;
case TUNIC: ItemTypeColor = RGB(0, 221, 111); break;
case CON_ARMOUR: ItemTypeColor = RGB(0, 221, 111); break;
case CON_HELM: ItemTypeColor = RGB(0, 221, 111); break;
case CON_GLOVE: ItemTypeColor = RGB(0, 221, 111); break;
case CON_BOOTS: ItemTypeColor = RGB(0, 221, 111); break;
case DEX_ARMOUR: ItemTypeColor = RGB(255, 74, 74); break;
case DEX_HELM: ItemTypeColor = RGB(255, 74, 74); break;
case DEX_GLOVE: ItemTypeColor = RGB(255, 74, 74); break;
case DEX_BOOTS: ItemTypeColor = RGB(255, 74, 74); break;
case ONEHANDED_SWORD: ItemTypeColor = RGB(255, 74, 74); break;
case TWOHANDED_SWORD: ItemTypeColor = RGB(255, 74, 74); break;
case ONEHANDED_AXE: ItemTypeColor = RGB(255, 74, 74); break;
case TWOHANDED_AXE: ItemTypeColor = RGB(255, 74, 74); break;
case ONEHANDED_BLUNT: ItemTypeColor = RGB(255, 74, 74); break;
case TWOHANDED_BLUNT: ItemTypeColor = RGB(255, 74, 74); break;
case BOW: ItemTypeColor = RGB(0, 221, 111); break;
case CROSSBOW: ItemTypeColor = RGB(0, 221, 111); break;
case STAFF: ItemTypeColor = RGB(255, 0, 255); break;
case DAGGER: ItemTypeColor = RGB(255, 0, 255); break;
case SHIELD: ItemTypeColor = RGB(77, 255, 255); break;
case CON_BODY: ItemTypeColor = RGB(77, 255, 255); break;
case CON_HEAD: ItemTypeColor = RGB(77, 255, 255); break;
case CON_PELVIS: ItemTypeColor = RGB(255, 128, 192); break;
case CON_PROTECT_A: ItemTypeColor = RGB(255, 255, 128); break;
case DEX_BODY: ItemTypeColor = RGB(255, 255, 128); break;
case DEX_HEAD: ItemTypeColor = RGB(255, 255, 128); break;
case DEX_PELVIS: ItemTypeColor = RGB(77, 255, 255); break;
case DEX_PROTECT_A: ItemTypeColor = RGB(255, 188, 155); break;
case COM_BLUNT: ItemTypeColor = RGB(0, 221, 111); break;
case COM_SWORD: ItemTypeColor = RGB(0, 221, 111); break;
case OPP_HAMMER: ItemTypeColor = RGB(0, 221, 111); break;
case OPP_AXE: ItemTypeColor = RGB(0, 221, 111); break;
case OPP_SLUSHER: ItemTypeColor = RGB(255, 74, 74); break;
case OPP_TALON: ItemTypeColor = RGB(255, 74, 74); break;
case OPP_SYTHE: ItemTypeColor = RGB(255, 74, 74); break;
case SKILL_A_GUARD: ItemTypeColor = RGB(255, 74, 74); break;
case SKILL_A_ATTACK: ItemTypeColor = RGB(255, 74, 74); break;
case SKILL_A_GUN: ItemTypeColor = RGB(255, 74, 74); break;
case SKILL_A_KNIFE: ItemTypeColor = RGB(255, 74, 74); break;
case ARROW: ItemTypeColor = RGB(0, 221, 111); break;
case BOLT: ItemTypeColor = RGB(255, 74, 74); break;
case AMMO: ItemTypeColor = RGB(255, 74, 74); break;
case POTION: ItemTypeColor = RGB(255, 74, 74); break;
case EXP_BOOK: ItemTypeColor = RGB(128, 255, 255); break;
case CASH_BOOK: ItemTypeColor = RGB(0, 250, 0); break;
case EVENT_LOTTERY: ItemTypeColor = RGB(0, 0, 255); break;
case PORTAL: ItemTypeColor = RGB(218, 218, 180); break;
case FIRE_CRACKER: ItemTypeColor = RGB(255, 0, 128); break;
case SKILL_BOOK: ItemTypeColor = RGB(255, 162, 68); break;
case GEM: ItemTypeColor = RGB(77, 255, 255); break;
case ORE: ItemTypeColor = RGB(77, 255, 255); break;
case ETC: ItemTypeColor = RGB(255, 20, 20); break;
// case EVENT_DROP: ItemTypeColor = RGB(77, 255, 255); break;
case CAMP_KIT: ItemTypeColor = RGB(77, 255, 255); break;
case SHORT_RANGE_ARMS_KIT: ItemTypeColor = RGB(255, 20, 20); break;
case LONG_RANGE_ARMS_KIT: ItemTypeColor = RGB(77, 255, 255); break;
case AIRSHIP_KIT: ItemTypeColor = RGB(77, 255, 255); break;
case QUEST_ITEM: ItemTypeColor = RGB(239, 213, 192); break;
default: ItemTypeColor = RGB(100, 100, 100); break;
}
return ItemTypeColor;
}
void SetAdminLevelCb(CComboBox& ctrlLevelCb)
{
ctrlLevelCb.InsertString(0, _T("Supporter"));
ctrlLevelCb.InsertString(1, _T("GM"));
ctrlLevelCb.InsertString(2, _T("Master"));
ctrlLevelCb.InsertString(3, _T("Developer"));
}
unsigned char GetAdminLVInitial(CString strAdminLVName)
{
if(strAdminLVName == _T("Developer")) return 'D';
if(strAdminLVName == _T("Master")) return 'M';
if(strAdminLVName == _T("GM")) return 'G';
if(strAdminLVName == _T("Supporter")) return 'S';
return 'X';
}
unsigned char SetAuthorityMask(unsigned char cLV)
{
switch(cLV){
case 'D': return PktAdminMgr::AuthorityMask::DEVELOPER;
case 'M': return PktAdminMgr::AuthorityMask::MASTER;
case 'G': return PktAdminMgr::AuthorityMask::GM;
case 'S': return PktAdminMgr::AuthorityMask::SUPPORTER;
default: return PktAdminMgr::AuthorityMask::QUEST_MODE;
}
}
CString GetAdminLVName(unsigned char Initial)
{
CString strLevelName = _T("UNKNOWN");
switch(Initial){
case 'D': strLevelName = _T("Developer"); break;
case 'M': strLevelName = _T("Master"); break;
case 'G': strLevelName = _T("GM"); break;
case 'S': strLevelName = _T("Supporter"); break;
}
return strLevelName;
}
int GetAdminLVIconIndex(unsigned char Initial)
{
switch(Initial){
case 'D': return 0; break; // Developer
case 'M': return 1; break; // Master
case 'G': return 2; break; // GM
case 'S': return 3; break; // Supporter
default: return 4; break; // Unknown Level
}
}
CString GetExtraSpacePosString(unsigned char cType)
{
switch(cType)
{
case Item::ExtraSpacePos::UPGRADE_EQUIPMENT_POS: return _T("UPGRADE_EQUIPMENT_POS"); break;
case Item::ExtraSpacePos::UPGRADE_MATERIAL_POS: return _T("UPGRADE_MATERIAL_POS"); break;
case Item::ExtraSpacePos::HOLDITEM_POS: return _T("HOLDITEM_POS"); break;
case Item::ExtraSpacePos::KIT_MATERIAL_POS: return _T("KIT_MATERIAL_POS"); break;
case Item::ExtraSpacePos::CAMP_MATERIAL_POS: return _T("CAMP_MATERIAL_POS"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS1: return _T("EMBLEM_JEWEL_POS1"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS2: return _T("EMBLEM_JEWEL_POS2"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS3: return _T("EMBLEM_JEWEL_POS3"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS4: return _T("EMBLEM_JEWEL_POS4"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS5: return _T("EMBLEM_JEWEL_POS5"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS6: return _T("EMBLEM_JEWEL_POS6"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS7: return _T("EMBLEM_JEWEL_POS7"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS8: return _T("EMBLEM_JEWEL_POS8"); break;
case Item::ExtraSpacePos::EMBLEM_JEWEL_POS9: return _T("EMBLEM_JEWEL_POS9"); break;
case Item::ExtraSpacePos::GRAFT_ORIGINAL_POS: return _T("GRAFT_ORIGINAL_POS"); break;
case Item::ExtraSpacePos::GRAFT_SACRIFICE_POS: return _T("GRAFT_SACRIFICE_POS"); break;
case Item::ExtraSpacePos::GRAFT_RESULT_POS: return _T("GRAFT_RESULT_POS"); break;
case Item::ExtraSpacePos::COMPENSATION_POS: return _T("COMPENSATION_POS"); break;
default: return _T("UNKNOWN"); break;
}
}
CString GetLocalString(CString strKey)
{
char szReturned[256] = "";
GetPrivateProfileString("LOCAL_STRING", strKey, NULL, szReturned, 256, szSetupFileName);
if(NULL == szReturned)
{
return _T("UNKNOWN");
}
else
{
return static_cast<LPCTSTR>(szReturned);
}
}
void SetUIString(HWND hWnd, int nResID, char* szKey)
{
CString strFormat;
strFormat.Format(" %s ", GetLocalString(szKey));
if(FALSE == SetDlgItemText(hWnd, nResID, strFormat))
{
ERRLOG2(g_Log, "Local string set failed: err - %u, key - %s", GetLastError(), szKey);
}
}

View File

@@ -0,0 +1,62 @@
#ifndef _GLOBAL_FUNCTIONS_H_
#define _GLOBAL_FUNCTIONS_H_
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
namespace Item{ namespace ItemType{ enum Type; } }
class CCheckComboBox;
enum REPORT_TYPE
{
GENERAL = 0,
SUCCESS = 1,
FAILED = 2,
CAUTION = 3,
NOTIFY = 4
};
bool ClippingListCtrl(CListCtrl& ctrlList, int nColCount, bool bIsAllSel = false); // <20><><EFBFBD>õ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD><C6AE> <20>׸<EFBFBD><D7B8><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
int SearchListCtrlCol(CListCtrl& ctrlList, CString strSearchValue, int nColIndex); // <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>÷<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>޾<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><>Ʈ<EFBFBD><C6AE> <20>˻<EFBFBD>
void ServerGroupComboSet(CComboBox &Cb); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޺<EFBFBD> <20>ڽ<EFBFBD> <20><><EFBFBD><EFBFBD>
void ServerGroupComboSet(CCheckComboBox & Cb, bool bIsCheck); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ <20>޺<EFBFBD> <20>ڽ<EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetSiegeObjectTypeString(int nSiegeObjectTypeIndex); // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
int GetSiegeObjectTypeIndex(char* szNation); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetStateString(int nStateIndex); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetSubStateString(int nSiegeObjectTypeIndex, int nSubStateIndex); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20>ΰ<EFBFBD><CEB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetJewelString(int nJewelIndex); // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetZoneString(unsigned char cZoneIdx); // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetNationString(int nNationIndex); // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
unsigned char GetNationIndex(char* szNation); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetRaceString(int nRaceIndex); // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CString GetSkillTypeString(unsigned char SkillType); // <20><>ų Ÿ<><C5B8> <20><> <20><><EFBFBD><EFBFBD>
CString GetClassString(int nClassIndex); // <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
CString GetSetupString(CString Section, CString key); // <20>ؽ<EFBFBD>Ʈ <20><><EFBFBD>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString GetSTableString(unsigned int nIDS); // IDS<44><53> CString <20><><EFBFBD><EFBFBD>
int GetSetupInt(CString Section, CString key); // <20>ؽ<EFBFBD>Ʈ <20><><EFBFBD>Ϸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Report(CString report, REPORT_TYPE eType); // <20>۾<EFBFBD> <20><>Ȳ â<><C3A2> <20>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Report(UINT nID, REPORT_TYPE eType); // <20><><EFBFBD>ҽ<EFBFBD> <20>о<20>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COLORREF GetItemTypeColor(Item::ItemType::Type ItemTypeIndex); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<>Կ<EFBFBD> <20>´<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
void CustomPeekMessage();
void SetAdminLevelCb(CComboBox& ctrlLevelCb);
unsigned char GetAdminLVInitial(CString strAdminLVName);
unsigned char SetAuthorityMask(unsigned char cLV);
CString GetAdminLVName(unsigned char Initial);
int GetAdminLVIconIndex(unsigned char Initial);
CString GetExtraSpacePosString(unsigned char ePos); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ÿ <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD>ÿ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
CString GetLocalString(CString strKey);
// UI<55><49> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
void SetUIString(HWND hWnd, int nResID, char* szKey);
#endif

View File

@@ -0,0 +1,54 @@
#include "stdafx.h"
#include "GridControlFactory.h"
#include <GridCtrl_src/GridCtrl.h>
//-----------------------------------------------------------------------
// <09>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> : grid_ctrl - <20>׸<EFBFBD><D7B8><EFBFBD> <20>ڵ<EFBFBD>
// nRow - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// nColumn - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// bEnableEdit - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// bDragandDrop - <20><EFBFBD>׿<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// clrBkGridColor - <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
// clrDefaultCellColor - <20><20><> <20><>
// clrGridLineColor - <20>׸<EFBFBD><D7B8><EFBFBD> <20><> <20><>
//
// <09><><EFBFBD><EFBFBD> : <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> TRUE, <20><><EFBFBD>н<EFBFBD> FALSE <20><><EFBFBD><EFBFBD> -_-;
//
// <09><><EFBFBD><EFBFBD> : <09>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ʱ<EFBFBD>ȭ <20>Լ<EFBFBD>
//------------------------------------------------------------------------
BOOL InitializeItemGrid(CGridCtrl& grid_ctrl, int nRow, int nColumn, BOOL bEnableEdit,
BOOL bDragandDrop, COLORREF clrBkGridColor,
COLORREF clrDefaultCellColor, COLORREF clrGridLineColor)
{
// Ŀ<><C4BF><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD>ѷ<EFBFBD> <20>׷<EFBFBD><D7B7><EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>۾<EFBFBD>
grid_ctrl.SetColumnCount(nColumn); // <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
grid_ctrl.SetRowCount(nRow);
grid_ctrl.SetTitleTipBackClr( RGB( 0, 0, 0 ) );
grid_ctrl.SetTitleTipTextClr( RGB( 255, 255, 255 ) );
// <20><>ǥâ <20>׸<EFBFBD><D7B8><EFBFBD> (nRow<6F><77>, nCloumn<6D><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
for(int row = 0; row < nRow; row++)
{
grid_ctrl.SetRowHeight(row, 30);
}
for(int column = 0; column < nColumn; column++)
{
grid_ctrl.SetColumnWidth(column, 30);
}
grid_ctrl.SetGridBkColor(clrBkGridColor); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
grid_ctrl.SetGridLineColor(clrGridLineColor); // <20>׸<EFBFBD><D7B8><EFBFBD> <20><><EFBFBD>λ<EFBFBD> <20><><EFBFBD><EFBFBD>
grid_ctrl.EnableDragAndDrop(bDragandDrop);
grid_ctrl.SetEditable(bEnableEdit);
// <20><> <20>׸<EFBFBD><D7B8><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
grid_ctrl.GetDefaultCell(FALSE, FALSE)->SetBackClr(clrDefaultCellColor);
return TRUE;
}

View File

@@ -0,0 +1,13 @@
#ifndef _GRID_CONTROL_FACTORY_H_
#define _GRID_CONTROL_FACTORY_H_
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
class CGridCtrl;
BOOL InitializeItemGrid(CGridCtrl& grid_ctrl, int nRow, int nColumn, BOOL bEnableEdit,
BOOL bDragandDrop, COLORREF clrBkGridColor,
COLORREF clrDefaultCellColor, COLORREF clrGridLineColor);
#endif

View File

@@ -0,0 +1,31 @@
// GuildCastlePage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildCastlePage.h"
// CGuildCastlePage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGuildCastlePage, CPropertyPage)
CGuildCastlePage::CGuildCastlePage()
: CPropertyPage(CGuildCastlePage::IDD)
{
}
CGuildCastlePage::~CGuildCastlePage()
{
}
void CGuildCastlePage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CGuildCastlePage, CPropertyPage)
END_MESSAGE_MAP()
// CGuildCastlePage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.

View File

@@ -0,0 +1,25 @@
#pragma once
// CGuildCastlePage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
/*!
\class CGuildCastlePage
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CGuildCastlePage : public CPropertyPage
{
DECLARE_DYNAMIC(CGuildCastlePage)
public:
CGuildCastlePage();
virtual ~CGuildCastlePage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GUILDCASTLEPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
};

View File

@@ -0,0 +1,39 @@
// GuildGoldPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildGoldPage.h"
// CGuildGoldPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGuildGoldPage, CPropertyPage)
CGuildGoldPage::CGuildGoldPage()
: CPropertyPage(CGuildGoldPage::IDD)
{
}
CGuildGoldPage::~CGuildGoldPage()
{
}
void CGuildGoldPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CGuildGoldPage, CPropertyPage)
END_MESSAGE_MAP()
// CGuildGoldPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CGuildGoldPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
return TRUE;
}

View File

@@ -0,0 +1,28 @@
#pragma once
#include "afxcmn.h"
// CGuildGoldPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
/*!
\class CGuildGoldPage
<09><><EFBFBD><EFBFBD> <20>ݰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CGuildGoldPage : public CPropertyPage
{
DECLARE_DYNAMIC(CGuildGoldPage)
public:
CGuildGoldPage();
virtual ~CGuildGoldPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GUILDGOLDPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
};

View File

@@ -0,0 +1,52 @@
// GuildInfoSheet.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildInfoSheet.h"
#include "WindowMgr.h"
// CGuildInfoSheet
IMPLEMENT_DYNAMIC(CGuildInfoSheet, CPropertySheet)
CGuildInfoSheet::CGuildInfoSheet(unsigned long dwSelServerGroup, unsigned long dwSelGID,
UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
, m_dwSelServerGroup(dwSelServerGroup)
, m_dwSelGID(dwSelGID)
{
AddPage(&m_wndMemberPage);
//AddPage(&m_wndGoldPage);
//AddPage(&m_wndItemPage);
//AddPage(&m_wndRelationshipPage);
//AddPage(&m_wndCastlePage);
}
CGuildInfoSheet::CGuildInfoSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_wndMemberPage);
//AddPage(&m_wndGoldPage);
//AddPage(&m_wndItemPage);
//AddPage(&m_wndRelationshipPage);
//AddPage(&m_wndCastlePage);
}
CGuildInfoSheet::~CGuildInfoSheet()
{
}
BEGIN_MESSAGE_MAP(CGuildInfoSheet, CPropertySheet)
END_MESSAGE_MAP()
// CGuildInfoSheet <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CGuildInfoSheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
return bResult;
}

View File

@@ -0,0 +1,39 @@
#pragma once
#include "GuildMemberPage.h"
#include "GuildGoldPage.h"
#include "GuildItemPage.h"
#include "GuildRelationshipPage.h"
#include "GuildCastlePage.h"
/*!
\class CGuildInfoSheet
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><>Ʈ
*/
class CGuildInfoSheet : public CPropertySheet
{
DECLARE_DYNAMIC(CGuildInfoSheet)
public:
CGuildInfoSheet(unsigned long dwSelServerGroup, unsigned long dwSelGID,
UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CGuildInfoSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
virtual ~CGuildInfoSheet();
virtual BOOL OnInitDialog();
protected:
DECLARE_MESSAGE_MAP()
public:
unsigned long m_dwSelServerGroup;
unsigned long m_dwSelGID;
CGuildMemberPage m_wndMemberPage;
CGuildGoldPage m_wndGoldPage;
CGuildItemPage m_wndItemPage;
CGuildRelationshipPage m_wndRelationshipPage;
CGuildCastlePage m_wndCastlePage;
};

View File

@@ -0,0 +1,31 @@
// GuildItemPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildItemPage.h"
// CGuildItemPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGuildItemPage, CPropertyPage)
CGuildItemPage::CGuildItemPage()
: CPropertyPage(CGuildItemPage::IDD)
{
}
CGuildItemPage::~CGuildItemPage()
{
}
void CGuildItemPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CGuildItemPage, CPropertyPage)
END_MESSAGE_MAP()
// CGuildItemPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.

View File

@@ -0,0 +1,25 @@
#pragma once
// CGuildItemPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
/*!
\class CGuildItemPage
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CGuildItemPage : public CPropertyPage
{
DECLARE_DYNAMIC(CGuildItemPage)
public:
CGuildItemPage();
virtual ~CGuildItemPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GUILDITEMPAGE };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
};

View File

@@ -0,0 +1,110 @@
// GuildMainDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildMainDlg.h"
#include "WindowMgr.h"
#include "CharacterDoc.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
// CGuildMainDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGuildMainDlg, CDialog)
CGuildMainDlg::CGuildMainDlg(SEL_GUILD_INFO stSelGuildInfo, CWnd* pParent /*=NULL*/)
: CDialog(CGuildMainDlg::IDD, pParent), m_stSelGuildInfo(stSelGuildInfo)
{
INSERT_WINDOW(IDD_GUILDMAINDLG, static_cast<CWnd*>(this));
}
CGuildMainDlg::~CGuildMainDlg()
{
ERASE_WINDOW(IDD_GUILDMAINDLG);
}
void CGuildMainDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GRIGHT_LIST, m_ctrlGuildRightList);
}
BEGIN_MESSAGE_MAP(CGuildMainDlg, CDialog)
END_MESSAGE_MAP()
// CGuildMainDlg <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CGuildMainDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString strServerName;
unsigned long dwServerGroup;
strServerName.Format(_T("%s"), m_stSelGuildInfo.m_szServerGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strServerName, dwServerGroup);
CWnd* pwndHolder = GetDlgItem(IDC_GUILDSHEET_HOLDER);
pwndHolder->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
m_pGuildInfoSheet = new CGuildInfoSheet(dwServerGroup, m_stSelGuildInfo.m_dwGID, IDS_GUILDINFO, pwndHolder);
if(!m_pGuildInfoSheet->Create(pwndHolder, WS_CHILD | WS_VISIBLE, 0))
{
delete m_pGuildInfoSheet;
m_pGuildInfoSheet = NULL;
return FALSE;
}
m_pGuildInfoSheet->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
CRect rectPropSheet;
pwndHolder->GetWindowRect(rectPropSheet);
m_pGuildInfoSheet->SetWindowPos(NULL, 0, 0,
rectPropSheet.Width(), rectPropSheet.Height(), SWP_NOZORDER | SWP_NOACTIVATE);
CString strTmp;
SetDlgItemText(IDC_GUILDMAIN_GROUP, m_stSelGuildInfo.m_szServerGroupName);
strTmp.Format(_T("%u"), m_stSelGuildInfo.m_dwGID);
SetDlgItemText(IDC_GUILDMAIN_GID, strTmp);
SetDlgItemText(IDC_GUILDMAIN_NAME, m_stSelGuildInfo.m_szGuildName);
SetDlgItemText(IDC_GUILDMAIN_NATION, m_stSelGuildInfo.m_szNation);
strTmp.Format(_T("%u"), m_stSelGuildInfo.m_dwFame);
SetDlgItemText(IDC_GUILDMAIN_FAME, strTmp);
strTmp.Format(_T("%u"), m_stSelGuildInfo.m_dwGold);
SetDlgItemText(IDC_GUILDMAIN_GOLD, strTmp);
strTmp.Format(_T("%d"), m_stSelGuildInfo.m_nMemberNum);
SetDlgItemText(IDC_GUILDMAIN_MEMBERNUM, strTmp);
strTmp.Format(_T("%d"), m_stSelGuildInfo.m_nLevel);
SetDlgItemText(IDC_GUILDMAIN_LV, strTmp);
m_ctrlGuildRightList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlGuildRightList.InsertColumn(0, GetLocalString("RIGHT_NAME"), LVCFMT_LEFT, 92);
m_ctrlGuildRightList.InsertColumn(1, GetLocalString("USE_RIGHT"), LVCFMT_LEFT, 79);
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>û
CPacketMgr::GetInstance()->SendPktGuildRight(dwServerGroup, m_stSelGuildInfo.m_dwGID);
SetWindowText(GetLocalString("IDD_GUILDMAINDLG"));
SetUIString(this->m_hWnd, IDC_GUILDMAIN_01, "IDC_GUILDMAIN_01");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_02, "IDC_GUILDMAIN_02");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_03, "IDC_GUILDMAIN_03");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_04, "IDC_GUILDMAIN_04");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_05, "IDC_GUILDMAIN_05");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_06, "IDC_GUILDMAIN_06");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_07, "IDC_GUILDMAIN_07");
SetUIString(this->m_hWnd, IDC_GUILDMAIN_08, "IDC_GUILDMAIN_08");
return TRUE;
}

View File

@@ -0,0 +1,35 @@
#pragma once
#include "InfoStruct.h"
#include "GuildInfoSheet.h"
#include "afxcmn.h"
/*!
\class CGuildMainDlg
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD>
*/
class CGuildMainDlg : public CDialog
{
DECLARE_DYNAMIC(CGuildMainDlg)
public:
CGuildMainDlg(SEL_GUILD_INFO stSelGuildInfo, CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
virtual ~CGuildMainDlg();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GUILDMAINDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
private:
SEL_GUILD_INFO m_stSelGuildInfo;
public:
CGuildInfoSheet* m_pGuildInfoSheet;
CListCtrl m_ctrlGuildRightList;
};

View File

@@ -0,0 +1,202 @@
// GuildMemberPage.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildMemberPage.h"
#include "GuildInfoSheet.h"
#include "PacketManager.h"
#include "ListCtrlSortClass.h"
#include "GlobalFunctions.h"
#include "GuildPositionDlg.h"
#include <Network/Packet/PacketStruct/GuildPacket.h>
// CGuildMemberPage <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
IMPLEMENT_DYNAMIC(CGuildMemberPage, CPropertyPage)
CGuildMemberPage::CGuildMemberPage()
: CPropertyPage(CGuildMemberPage::IDD)
{
}
CGuildMemberPage::~CGuildMemberPage()
{
}
void CGuildMemberPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GUILDPAGE_MEMBER_LIST, m_ctrlMemberList);
}
BEGIN_MESSAGE_MAP(CGuildMemberPage, CPropertyPage)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_GUILDPAGE_MEMBER_LIST, OnLvnColumnclickGuildpageMemberList)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_GMEM_RIGHTEDIT_MENU, OnGmemRighteditMenu)
ON_COMMAND(ID_GMEM_EXPULSION_MENU, OnGmemExpulsionMenu)
END_MESSAGE_MAP()
// CGuildMemberPage <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
BOOL CGuildMemberPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctrlMemberList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlMemberList.InsertColumn(0, _T("CID"), LVCFMT_LEFT, 65);
m_ctrlMemberList.InsertColumn(1, GetLocalString("RIGHTS"), LVCFMT_LEFT, 40);
m_ctrlMemberList.InsertColumn(2, GetLocalString("RANK"), LVCFMT_LEFT, 40);
m_ctrlMemberList.InsertColumn(3, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 100);
m_ctrlMemberList.InsertColumn(4, _T("LV"), LVCFMT_LEFT, 30);
m_ctrlMemberList.InsertColumn(5, GetLocalString("FAME"), LVCFMT_LEFT, 80);
m_ctrlMemberList.InsertColumn(6, _T("Gold"), LVCFMT_LEFT, 80);
m_ctrlMemberList.InsertColumn(7, GetLocalString("CLASS"), LVCFMT_LEFT, 50);
m_ctrlMemberList.InsertColumn(8, GetLocalString("SESSION_TIME"), LVCFMT_LEFT, 125);
if(MemberPageSet())
{
return TRUE;
}
else
{
return FALSE;
}
}
bool CGuildMemberPage::MemberPageSet()
{
CGuildInfoSheet* lpSheet = reinterpret_cast<CGuildInfoSheet*>(GetParent());
if(NULL != lpSheet)
{
CPacketMgr::GetInstance()->SendRequestGuildMemberList(
lpSheet->m_dwSelGID, lpSheet->m_dwSelServerGroup);
}
else
{
return false;
}
return true;
}
void CGuildMemberPage::OnLvnColumnclickGuildpageMemberList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->iSubItem == m_iSortListItem)
{
m_bSortListAsc = !m_bSortListAsc;
}
else
{
m_iSortListItem = pNMLV->iSubItem;
m_bSortListAsc = true;
}
SortListWndItem(&m_ctrlMemberList, m_iSortListItem);
*pResult = 0;
}
void CGuildMemberPage::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::CID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::RIGHT:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::RANK:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::CHARNAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::LEVEL:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::FAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::GOLD:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::CLASS:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::SECESSION_TIME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
}
}
void CGuildMemberPage::OnContextMenu(CWnd* pWnd, CPoint point)
{
if (pWnd->GetSafeHwnd() == m_ctrlMemberList.GetSafeHwnd())
{
CMenu muTemp, *pContextMenu;
muTemp.LoadMenu(IDR_CONTEXTMENU);
pContextMenu = muTemp.GetSubMenu(13);
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GMEM_RIGHTEDIT_MENU, GetLocalString("ADDED_STRING_085"));
pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_GMEM_EXPULSION_MENU, GetLocalString("ADDED_STRING_086"));
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
}
void CGuildMemberPage::OnGmemRighteditMenu()
{
CGuildInfoSheet* lpGuildInfoSheet = reinterpret_cast<CGuildInfoSheet*>(GetParent());
unsigned long dwCID = 0;
unsigned char cPosition = 0;
if (1 == m_ctrlMemberList.GetSelectedCount())
{
int Index = m_ctrlMemberList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
char szValue[256];
m_ctrlMemberList.GetItemText(Index, 0, szValue, sizeof(szValue));
dwCID = atoi(szValue);
m_ctrlMemberList.GetItemText(Index, 1, szValue, sizeof(szValue));
cPosition = atoi(szValue);
}
CGuildPositionDlg dlg(lpGuildInfoSheet->m_dwSelServerGroup,
lpGuildInfoSheet->m_dwSelGID, dwCID, cPosition);
dlg.DoModal();
}
}
void CGuildMemberPage::OnGmemExpulsionMenu()
{
CGuildInfoSheet* lpGuildInfoSheet = reinterpret_cast<CGuildInfoSheet*>(GetParent());
unsigned long dwCID = 0;
if (1 == m_ctrlMemberList.GetSelectedCount())
{
int Index = m_ctrlMemberList.GetNextItem(-1, LVIS_SELECTED);
if(-1 != Index)
{
char szValue[256];
m_ctrlMemberList.GetItemText(Index, 0, szValue, sizeof(szValue));
dwCID = atoi(szValue);
}
}
CPacketMgr::GetInstance()->SendPktGuildMemberEdit(lpGuildInfoSheet->m_dwSelServerGroup,
lpGuildInfoSheet->m_dwSelGID, dwCID, 0, PktGuildPosition::TYPE_MEMBERDELETE);
}

View File

@@ -0,0 +1,53 @@
#pragma once
#include "afxcmn.h"
/*!
\class CGuildMemberPage
<09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
class CGuildMemberPage : public CPropertyPage
{
DECLARE_DYNAMIC(CGuildMemberPage)
public:
CGuildMemberPage();
virtual ~CGuildMemberPage();
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
enum { IDD = IDD_GUILDMEMBERPAGE };
enum SORT_TYPE
{
CID,
RIGHT,
RANK,
CHARNAME,
LEVEL,
FAME,
GOLD,
CLASS,
SECESSION_TIME,
};
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
afx_msg void OnLvnColumnclickGuildpageMemberList(NMHDR *pNMHDR, LRESULT *pResult);
private:
bool m_bSortListAsc;
int m_iSortListItem;
bool MemberPageSet();
void SortListWndItem(CListCtrl* pListCtrl, const int iCol);
public:
CListCtrl m_ctrlMemberList;
afx_msg void OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/);
afx_msg void OnGmemRighteditMenu();
afx_msg void OnGmemExpulsionMenu();
};

Some files were not shown because too many files have changed in this diff Show More