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:
576
Server/AdminTool/AdminTool.sln
Normal file
576
Server/AdminTool/AdminTool.sln
Normal 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
|
||||
BIN
Server/AdminTool/AdminTool.suo
Normal file
BIN
Server/AdminTool/AdminTool.suo
Normal file
Binary file not shown.
529
Server/AdminTool/AdminToolClient.sln
Normal file
529
Server/AdminTool/AdminToolClient.sln
Normal 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
|
||||
203
Server/AdminTool/AdminToolClient/AddBlockUserDlg.cpp
Normal file
203
Server/AdminTool/AdminToolClient/AddBlockUserDlg.cpp
Normal 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);
|
||||
}
|
||||
45
Server/AdminTool/AdminToolClient/AddBlockUserDlg.h
Normal file
45
Server/AdminTool/AdminToolClient/AddBlockUserDlg.h
Normal 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;
|
||||
};
|
||||
5
Server/AdminTool/AdminToolClient/AdminClientConstants.h
Normal file
5
Server/AdminTool/AdminToolClient/AdminClientConstants.h
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
namespace CON
|
||||
{
|
||||
const int MAX_GROUP_NUM = 10;
|
||||
};
|
||||
116
Server/AdminTool/AdminToolClient/AdminLoginDlg.cpp
Normal file
116
Server/AdminTool/AdminToolClient/AdminLoginDlg.cpp
Normal 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();
|
||||
}
|
||||
37
Server/AdminTool/AdminToolClient/AdminLoginDlg.h
Normal file
37
Server/AdminTool/AdminToolClient/AdminLoginDlg.h
Normal 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();
|
||||
};
|
||||
20
Server/AdminTool/AdminToolClient/AdminLoginDlg.htm
Normal file
20
Server/AdminTool/AdminToolClient/AdminLoginDlg.htm
Normal 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>
|
||||
202
Server/AdminTool/AdminToolClient/AdminStoreDlgBar.cpp
Normal file
202
Server/AdminTool/AdminToolClient/AdminStoreDlgBar.cpp
Normal 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(
|
||||
}
|
||||
52
Server/AdminTool/AdminToolClient/AdminStoreDlgBar.h
Normal file
52
Server/AdminTool/AdminToolClient/AdminStoreDlgBar.h
Normal 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);
|
||||
};
|
||||
482
Server/AdminTool/AdminToolClient/AdminToolClient.cpp
Normal file
482
Server/AdminTool/AdminToolClient/AdminToolClient.cpp
Normal 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();
|
||||
}
|
||||
90
Server/AdminTool/AdminToolClient/AdminToolClient.h
Normal file
90
Server/AdminTool/AdminToolClient/AdminToolClient.h
Normal 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>
|
||||
836
Server/AdminTool/AdminToolClient/AdminToolClient.vcproj
Normal file
836
Server/AdminTool/AdminToolClient/AdminToolClient.vcproj
Normal 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=""C:\Documents and Settings\administrator\<5C><><EFBFBD><EFBFBD> ȭ<><C8AD>\AdminToolClient\AdminToolClient\res";"$(IntDir)""/>
|
||||
<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=""C:\Documents and Settings\administrator\<5C><><EFBFBD><EFBFBD> ȭ<><C8AD>\AdminToolClient\AdminToolClient\res";"$(IntDir)""/>
|
||||
<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>
|
||||
76
Server/AdminTool/AdminToolClient/AdminToolClientDoc.cpp
Normal file
76
Server/AdminTool/AdminToolClient/AdminToolClientDoc.cpp
Normal 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>
|
||||
37
Server/AdminTool/AdminToolClient/AdminToolClientDoc.h
Normal file
37
Server/AdminTool/AdminToolClient/AdminToolClientDoc.h
Normal 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()
|
||||
};
|
||||
99
Server/AdminTool/AdminToolClient/AdminToolClientView.cpp
Normal file
99
Server/AdminTool/AdminToolClient/AdminToolClientView.cpp
Normal 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>
|
||||
52
Server/AdminTool/AdminToolClient/AdminToolClientView.h
Normal file
52
Server/AdminTool/AdminToolClient/AdminToolClientView.h
Normal 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
|
||||
|
||||
207
Server/AdminTool/AdminToolClient/BlockManagementDlg.cpp
Normal file
207
Server/AdminTool/AdminToolClient/BlockManagementDlg.cpp
Normal 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;
|
||||
}
|
||||
}
|
||||
60
Server/AdminTool/AdminToolClient/BlockManagementDlg.h
Normal file
60
Server/AdminTool/AdminToolClient/BlockManagementDlg.h
Normal 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);
|
||||
};
|
||||
68
Server/AdminTool/AdminToolClient/CastleCreatureDlg.cpp
Normal file
68
Server/AdminTool/AdminToolClient/CastleCreatureDlg.cpp
Normal 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;
|
||||
}
|
||||
27
Server/AdminTool/AdminToolClient/CastleCreatureDlg.h
Normal file
27
Server/AdminTool/AdminToolClient/CastleCreatureDlg.h
Normal 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();
|
||||
};
|
||||
392
Server/AdminTool/AdminToolClient/CastleSearchDlg.cpp
Normal file
392
Server/AdminTool/AdminToolClient/CastleSearchDlg.cpp
Normal 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;
|
||||
}
|
||||
76
Server/AdminTool/AdminToolClient/CastleSearchDlg.h
Normal file
76
Server/AdminTool/AdminToolClient/CastleSearchDlg.h
Normal 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;
|
||||
};
|
||||
41
Server/AdminTool/AdminToolClient/ChangeDeleteTimeDlg.cpp
Normal file
41
Server/AdminTool/AdminToolClient/ChangeDeleteTimeDlg.cpp
Normal 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;
|
||||
}
|
||||
25
Server/AdminTool/AdminToolClient/ChangeDeleteTimeDlg.h
Normal file
25
Server/AdminTool/AdminToolClient/ChangeDeleteTimeDlg.h
Normal 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>(ij<><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();
|
||||
};
|
||||
315
Server/AdminTool/AdminToolClient/CharEXInfoPage.cpp
Normal file
315
Server/AdminTool/AdminToolClient/CharEXInfoPage.cpp
Normal 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);
|
||||
}
|
||||
68
Server/AdminTool/AdminToolClient/CharEXInfoPage.h
Normal file
68
Server/AdminTool/AdminToolClient/CharEXInfoPage.h
Normal 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);
|
||||
};
|
||||
129
Server/AdminTool/AdminToolClient/CharExtraItemPage.cpp
Normal file
129
Server/AdminTool/AdminToolClient/CharExtraItemPage.cpp
Normal 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);
|
||||
}
|
||||
40
Server/AdminTool/AdminToolClient/CharExtraItemPage.h
Normal file
40
Server/AdminTool/AdminToolClient/CharExtraItemPage.h
Normal 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);
|
||||
};
|
||||
95
Server/AdminTool/AdminToolClient/CharGMLogPage.cpp
Normal file
95
Server/AdminTool/AdminToolClient/CharGMLogPage.cpp
Normal 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
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
37
Server/AdminTool/AdminToolClient/CharGMLogPage.h
Normal file
37
Server/AdminTool/AdminToolClient/CharGMLogPage.h
Normal 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);
|
||||
};
|
||||
123
Server/AdminTool/AdminToolClient/CharInfoTime.cpp
Normal file
123
Server/AdminTool/AdminToolClient/CharInfoTime.cpp
Normal 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);
|
||||
}
|
||||
35
Server/AdminTool/AdminToolClient/CharInfoTime.h
Normal file
35
Server/AdminTool/AdminToolClient/CharInfoTime.h
Normal 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();
|
||||
};
|
||||
776
Server/AdminTool/AdminToolClient/CharInventoryPage.cpp
Normal file
776
Server/AdminTool/AdminToolClient/CharInventoryPage.cpp
Normal 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);
|
||||
}
|
||||
85
Server/AdminTool/AdminToolClient/CharInventoryPage.h
Normal file
85
Server/AdminTool/AdminToolClient/CharInventoryPage.h
Normal 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);
|
||||
};
|
||||
669
Server/AdminTool/AdminToolClient/CharItemStorePage.cpp
Normal file
669
Server/AdminTool/AdminToolClient/CharItemStorePage.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
76
Server/AdminTool/AdminToolClient/CharItemStorePage.h
Normal file
76
Server/AdminTool/AdminToolClient/CharItemStorePage.h
Normal 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();
|
||||
};
|
||||
114
Server/AdminTool/AdminToolClient/CharPropertySheet.cpp
Normal file
114
Server/AdminTool/AdminToolClient/CharPropertySheet.cpp
Normal 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();
|
||||
}
|
||||
54
Server/AdminTool/AdminToolClient/CharPropertySheet.h
Normal file
54
Server/AdminTool/AdminToolClient/CharPropertySheet.h
Normal 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);
|
||||
};
|
||||
284
Server/AdminTool/AdminToolClient/CharQuestPage.cpp
Normal file
284
Server/AdminTool/AdminToolClient/CharQuestPage.cpp
Normal 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;
|
||||
}
|
||||
50
Server/AdminTool/AdminToolClient/CharQuestPage.h
Normal file
50
Server/AdminTool/AdminToolClient/CharQuestPage.h
Normal 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);
|
||||
};
|
||||
203
Server/AdminTool/AdminToolClient/CharRestoreDlg.cpp
Normal file
203
Server/AdminTool/AdminToolClient/CharRestoreDlg.cpp
Normal 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();
|
||||
}
|
||||
43
Server/AdminTool/AdminToolClient/CharRestoreDlg.h
Normal file
43
Server/AdminTool/AdminToolClient/CharRestoreDlg.h
Normal 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();
|
||||
};
|
||||
155
Server/AdminTool/AdminToolClient/CharSheetView.cpp
Normal file
155
Server/AdminTool/AdminToolClient/CharSheetView.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
47
Server/AdminTool/AdminToolClient/CharSheetView.h
Normal file
47
Server/AdminTool/AdminToolClient/CharSheetView.h
Normal 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);
|
||||
};
|
||||
145
Server/AdminTool/AdminToolClient/CharSkillEditDlg.cpp
Normal file
145
Server/AdminTool/AdminToolClient/CharSkillEditDlg.cpp
Normal 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);
|
||||
}
|
||||
43
Server/AdminTool/AdminToolClient/CharSkillEditDlg.h
Normal file
43
Server/AdminTool/AdminToolClient/CharSkillEditDlg.h
Normal 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();
|
||||
};
|
||||
432
Server/AdminTool/AdminToolClient/CharSkillPage.cpp
Normal file
432
Server/AdminTool/AdminToolClient/CharSkillPage.cpp
Normal 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;
|
||||
}
|
||||
}
|
||||
79
Server/AdminTool/AdminToolClient/CharSkillPage.h
Normal file
79
Server/AdminTool/AdminToolClient/CharSkillPage.h
Normal 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; }
|
||||
};
|
||||
217
Server/AdminTool/AdminToolClient/CharSocietyPage.cpp
Normal file
217
Server/AdminTool/AdminToolClient/CharSocietyPage.cpp
Normal 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);
|
||||
}
|
||||
53
Server/AdminTool/AdminToolClient/CharSocietyPage.h
Normal file
53
Server/AdminTool/AdminToolClient/CharSocietyPage.h
Normal 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);
|
||||
};
|
||||
243
Server/AdminTool/AdminToolClient/CharStatusPage.cpp
Normal file
243
Server/AdminTool/AdminToolClient/CharStatusPage.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
60
Server/AdminTool/AdminToolClient/CharStatusPage.h
Normal file
60
Server/AdminTool/AdminToolClient/CharStatusPage.h
Normal 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);
|
||||
};
|
||||
161
Server/AdminTool/AdminToolClient/CharTempInvenPage.cpp
Normal file
161
Server/AdminTool/AdminToolClient/CharTempInvenPage.cpp
Normal 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);
|
||||
}
|
||||
43
Server/AdminTool/AdminToolClient/CharTempInvenPage.h
Normal file
43
Server/AdminTool/AdminToolClient/CharTempInvenPage.h
Normal 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);
|
||||
};
|
||||
95
Server/AdminTool/AdminToolClient/CharacterDoc.cpp
Normal file
95
Server/AdminTool/AdminToolClient/CharacterDoc.cpp
Normal 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;
|
||||
}
|
||||
250
Server/AdminTool/AdminToolClient/CharacterDoc.h
Normal file
250
Server/AdminTool/AdminToolClient/CharacterDoc.h
Normal 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
|
||||
425
Server/AdminTool/AdminToolClient/CheckComboBox.cpp
Normal file
425
Server/AdminTool/AdminToolClient/CheckComboBox.cpp
Normal 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);
|
||||
}
|
||||
|
||||
|
||||
63
Server/AdminTool/AdminToolClient/CheckComboBox.h
Normal file
63
Server/AdminTool/AdminToolClient/CheckComboBox.h
Normal 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_)
|
||||
253
Server/AdminTool/AdminToolClient/Clipboard.cpp
Normal file
253
Server/AdminTool/AdminToolClient/Clipboard.cpp
Normal 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;
|
||||
}
|
||||
29
Server/AdminTool/AdminToolClient/Clipboard.h
Normal file
29
Server/AdminTool/AdminToolClient/Clipboard.h
Normal 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
|
||||
315
Server/AdminTool/AdminToolClient/ColorPickerCB.cpp
Normal file
315
Server/AdminTool/AdminToolClient/ColorPickerCB.cpp
Normal 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();
|
||||
}
|
||||
}
|
||||
99
Server/AdminTool/AdminToolClient/ColorPickerCB.h
Normal file
99
Server/AdminTool/AdminToolClient/ColorPickerCB.h
Normal 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
|
||||
74
Server/AdminTool/AdminToolClient/ConnectionInfoDlg.cpp
Normal file
74
Server/AdminTool/AdminToolClient/ConnectionInfoDlg.cpp
Normal 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;
|
||||
}
|
||||
31
Server/AdminTool/AdminToolClient/ConnectionInfoDlg.h
Normal file
31
Server/AdminTool/AdminToolClient/ConnectionInfoDlg.h
Normal 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;
|
||||
};
|
||||
58
Server/AdminTool/AdminToolClient/DetailCharInfo.cpp
Normal file
58
Server/AdminTool/AdminToolClient/DetailCharInfo.cpp
Normal 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;
|
||||
}
|
||||
30
Server/AdminTool/AdminToolClient/DetailCharInfo.h
Normal file
30
Server/AdminTool/AdminToolClient/DetailCharInfo.h
Normal 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;
|
||||
};
|
||||
49
Server/AdminTool/AdminToolClient/DetailInfoDlg.cpp
Normal file
49
Server/AdminTool/AdminToolClient/DetailInfoDlg.cpp
Normal 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;
|
||||
}
|
||||
28
Server/AdminTool/AdminToolClient/DetailInfoDlg.h
Normal file
28
Server/AdminTool/AdminToolClient/DetailInfoDlg.h
Normal 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();
|
||||
};
|
||||
2487
Server/AdminTool/AdminToolClient/Dispatch.cpp
Normal file
2487
Server/AdminTool/AdminToolClient/Dispatch.cpp
Normal file
File diff suppressed because it is too large
Load Diff
113
Server/AdminTool/AdminToolClient/Dispatch.h
Normal file
113
Server/AdminTool/AdminToolClient/Dispatch.h
Normal 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
|
||||
196
Server/AdminTool/AdminToolClient/DuplicatedItemDlg.cpp
Normal file
196
Server/AdminTool/AdminToolClient/DuplicatedItemDlg.cpp
Normal 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);
|
||||
}
|
||||
58
Server/AdminTool/AdminToolClient/DuplicatedItemDlg.h
Normal file
58
Server/AdminTool/AdminToolClient/DuplicatedItemDlg.h
Normal 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;
|
||||
};
|
||||
94
Server/AdminTool/AdminToolClient/ExitToolDlg.cpp
Normal file
94
Server/AdminTool/AdminToolClient/ExitToolDlg.cpp
Normal 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"));
|
||||
}
|
||||
}
|
||||
33
Server/AdminTool/AdminToolClient/ExitToolDlg.h
Normal file
33
Server/AdminTool/AdminToolClient/ExitToolDlg.h
Normal 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();
|
||||
};
|
||||
430
Server/AdminTool/AdminToolClient/FortInfoDlg.cpp
Normal file
430
Server/AdminTool/AdminToolClient/FortInfoDlg.cpp
Normal 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;
|
||||
}
|
||||
77
Server/AdminTool/AdminToolClient/FortInfoDlg.h
Normal file
77
Server/AdminTool/AdminToolClient/FortInfoDlg.h
Normal 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;
|
||||
};
|
||||
118
Server/AdminTool/AdminToolClient/GAdminInfoEditDlg.cpp
Normal file
118
Server/AdminTool/AdminToolClient/GAdminInfoEditDlg.cpp
Normal 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);
|
||||
}
|
||||
39
Server/AdminTool/AdminToolClient/GAdminInfoEditDlg.h
Normal file
39
Server/AdminTool/AdminToolClient/GAdminInfoEditDlg.h
Normal 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();
|
||||
};
|
||||
269
Server/AdminTool/AdminToolClient/GAdminManagementDlg.cpp
Normal file
269
Server/AdminTool/AdminToolClient/GAdminManagementDlg.cpp
Normal 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;
|
||||
}
|
||||
59
Server/AdminTool/AdminToolClient/GAdminManagementDlg.h
Normal file
59
Server/AdminTool/AdminToolClient/GAdminManagementDlg.h
Normal 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();
|
||||
};
|
||||
220
Server/AdminTool/AdminToolClient/GMLogMsgDlg.cpp
Normal file
220
Server/AdminTool/AdminToolClient/GMLogMsgDlg.cpp
Normal 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;
|
||||
}
|
||||
76
Server/AdminTool/AdminToolClient/GMLogMsgDlg.h
Normal file
76
Server/AdminTool/AdminToolClient/GMLogMsgDlg.h
Normal 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);
|
||||
};
|
||||
594
Server/AdminTool/AdminToolClient/GlobalFunctions.cpp
Normal file
594
Server/AdminTool/AdminToolClient/GlobalFunctions.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
62
Server/AdminTool/AdminToolClient/GlobalFunctions.h
Normal file
62
Server/AdminTool/AdminToolClient/GlobalFunctions.h
Normal 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
|
||||
54
Server/AdminTool/AdminToolClient/GridControlFactory.cpp
Normal file
54
Server/AdminTool/AdminToolClient/GridControlFactory.cpp
Normal 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;
|
||||
}
|
||||
13
Server/AdminTool/AdminToolClient/GridControlFactory.h
Normal file
13
Server/AdminTool/AdminToolClient/GridControlFactory.h
Normal 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
|
||||
31
Server/AdminTool/AdminToolClient/GuildCastlePage.cpp
Normal file
31
Server/AdminTool/AdminToolClient/GuildCastlePage.cpp
Normal 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>.
|
||||
25
Server/AdminTool/AdminToolClient/GuildCastlePage.h
Normal file
25
Server/AdminTool/AdminToolClient/GuildCastlePage.h
Normal 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()
|
||||
};
|
||||
39
Server/AdminTool/AdminToolClient/GuildGoldPage.cpp
Normal file
39
Server/AdminTool/AdminToolClient/GuildGoldPage.cpp
Normal 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;
|
||||
}
|
||||
28
Server/AdminTool/AdminToolClient/GuildGoldPage.h
Normal file
28
Server/AdminTool/AdminToolClient/GuildGoldPage.h
Normal 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();
|
||||
};
|
||||
52
Server/AdminTool/AdminToolClient/GuildInfoSheet.cpp
Normal file
52
Server/AdminTool/AdminToolClient/GuildInfoSheet.cpp
Normal 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;
|
||||
}
|
||||
39
Server/AdminTool/AdminToolClient/GuildInfoSheet.h
Normal file
39
Server/AdminTool/AdminToolClient/GuildInfoSheet.h
Normal 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;
|
||||
};
|
||||
31
Server/AdminTool/AdminToolClient/GuildItemPage.cpp
Normal file
31
Server/AdminTool/AdminToolClient/GuildItemPage.cpp
Normal 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>.
|
||||
25
Server/AdminTool/AdminToolClient/GuildItemPage.h
Normal file
25
Server/AdminTool/AdminToolClient/GuildItemPage.h
Normal 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()
|
||||
};
|
||||
110
Server/AdminTool/AdminToolClient/GuildMainDlg.cpp
Normal file
110
Server/AdminTool/AdminToolClient/GuildMainDlg.cpp
Normal 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;
|
||||
}
|
||||
35
Server/AdminTool/AdminToolClient/GuildMainDlg.h
Normal file
35
Server/AdminTool/AdminToolClient/GuildMainDlg.h
Normal 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;
|
||||
};
|
||||
202
Server/AdminTool/AdminToolClient/GuildMemberPage.cpp
Normal file
202
Server/AdminTool/AdminToolClient/GuildMemberPage.cpp
Normal 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);
|
||||
}
|
||||
53
Server/AdminTool/AdminToolClient/GuildMemberPage.h
Normal file
53
Server/AdminTool/AdminToolClient/GuildMemberPage.h
Normal 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
Reference in New Issue
Block a user