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:
133
Server/DBProcess/FindCharCopyLog/FindCharCopyLog.cpp
Normal file
133
Server/DBProcess/FindCharCopyLog/FindCharCopyLog.cpp
Normal file
@@ -0,0 +1,133 @@
|
||||
// FindCharCopyLog.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#pragma warning(disable:4800)
|
||||
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <ctime>
|
||||
#include <set>
|
||||
#include <iomanip>
|
||||
#include <boost/pool/pool_alloc.hpp>
|
||||
|
||||
void PrintUsage()
|
||||
{
|
||||
printf("Usage : FindCharCopyLog ServerGroupNum(0~9) filename(can use wildcard * or ? ) ");
|
||||
}
|
||||
|
||||
struct CopyCharData
|
||||
{
|
||||
unsigned long m_dwUID; // UID
|
||||
unsigned long m_dwCID; // CID
|
||||
time_t m_nCopyTime; // 복사 신청한 시간
|
||||
unsigned long m_dwIndex; // 시간이 같은 경우에, 이거 순서대로 비교.
|
||||
};
|
||||
|
||||
struct SortByTime
|
||||
{
|
||||
bool operator () (const CopyCharData& lhs, const CopyCharData& rhs)
|
||||
{
|
||||
return lhs.m_nCopyTime < rhs.m_nCopyTime ||
|
||||
(!(rhs.m_nCopyTime < lhs.m_nCopyTime) && lhs.m_dwIndex, rhs.m_dwIndex);
|
||||
}
|
||||
};
|
||||
|
||||
typedef std::set<CopyCharData, SortByTime, boost::fast_pool_allocator<CopyCharData> > CopyCharUIDDataSet;
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
if(3 != argc)
|
||||
{
|
||||
PrintUsage();
|
||||
return -1;
|
||||
}
|
||||
|
||||
int nServerGroup = atoi(argv[1]);
|
||||
|
||||
WIN32_FIND_DATA findData;
|
||||
memset(&findData, 0, sizeof(WIN32_FIND_DATA));
|
||||
|
||||
HANDLE hSearch = FindFirstFile(argv[2], &findData);
|
||||
if (hSearch == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
printf("File not found\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
CopyCharUIDDataSet copyCharUIDDataSet;
|
||||
|
||||
tm localTm;
|
||||
memset(&localTm, 0, sizeof(tm));
|
||||
|
||||
unsigned long dwUID = 0;
|
||||
unsigned long dwCID = 0;
|
||||
|
||||
const int MAX_BUFFER = 4096;
|
||||
char szReadBuffer[MAX_BUFFER];
|
||||
|
||||
CopyCharData copyTempCharData;
|
||||
|
||||
do
|
||||
{
|
||||
std::fstream inputFile(findData.cFileName, std::ios_base::in);
|
||||
|
||||
if(!inputFile.is_open())
|
||||
{
|
||||
printf("File open failed : %s", findData.cFileName);
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned long dwLineCount = 0;
|
||||
|
||||
while(inputFile.getline(szReadBuffer, MAX_BUFFER - 1))
|
||||
{
|
||||
szReadBuffer[MAX_BUFFER - 1] = 0;
|
||||
|
||||
if(0 != strstr(szReadBuffer, "[Copy Log]") &&
|
||||
8 == sscanf(szReadBuffer, "[Ty-DET][Tm-%d-%d-%d %d:%d:%d][Ex-UID:%d/CID:%d/",
|
||||
&localTm.tm_year, &localTm.tm_mon, &localTm.tm_mday, &localTm.tm_hour, &localTm.tm_min, &localTm.tm_sec,
|
||||
&dwUID, &dwCID))
|
||||
{
|
||||
// 값이 전부 제대로 들어 왔으면 데이터를 맵에 넣는다.
|
||||
|
||||
localTm.tm_year -= 1900;
|
||||
localTm.tm_mon -= 1;
|
||||
|
||||
copyTempCharData.m_dwUID = dwUID;
|
||||
copyTempCharData.m_dwCID = dwCID;
|
||||
copyTempCharData.m_nCopyTime = mktime(&localTm);
|
||||
copyTempCharData.m_dwIndex = ++dwLineCount;
|
||||
|
||||
copyCharUIDDataSet.insert(copyTempCharData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
while(FindNextFile(hSearch, &findData));
|
||||
FindClose(hSearch);
|
||||
|
||||
// 시간순으로 소트해서, 일단 전부 뽑아낸 뒤, 나중에 중복체크, 종족체크 등을 한다.
|
||||
std::stringstream outFileName;
|
||||
outFileName << "./CharCopy" << std::setfill('0') << std::setw(2) << nServerGroup << ".log" << std::ends;
|
||||
|
||||
std::fstream outstream(outFileName.str().c_str(), std::ios_base::out);
|
||||
if(outstream.is_open())
|
||||
{
|
||||
CopyCharUIDDataSet::iterator pos = copyCharUIDDataSet.begin();
|
||||
CopyCharUIDDataSet::iterator end = copyCharUIDDataSet.end();
|
||||
|
||||
for(; pos != end; ++pos)
|
||||
{
|
||||
CopyCharData& copyCharData = *pos;
|
||||
|
||||
outstream << copyCharData.m_dwUID << ":" << copyCharData.m_dwCID
|
||||
<< ":" << copyCharData.m_nCopyTime << ":" << copyCharData.m_dwIndex << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
163
Server/DBProcess/FindCharCopyLog/FindCharCopyLog.vcproj
Normal file
163
Server/DBProcess/FindCharCopyLog/FindCharCopyLog.vcproj
Normal file
@@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="FindCharCopyLog"
|
||||
ProjectGUID="{73A572AC-4BEE-40E4-8297-A1B395ADE2D2}"
|
||||
SccProjectName="SAK"
|
||||
SccAuxPath="SAK"
|
||||
SccLocalPath="SAK"
|
||||
SccProvider="SAK"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
UseOfATL="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;../../RylServerProject;../../RylServerProject/BaseLibrary;../../RylServerProject/RylServerLibrary;../../RylServerProject/RylGameLibrary"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="ws2_32.lib"
|
||||
OutputFile="$(OutDir)/FindCharCopyLog.exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/FindCharCopyLog.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<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"
|
||||
UseOfATL="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../;../../RylServerProject;../../RylServerProject/BaseLibrary;../../RylServerProject/RylServerLibrary;../../RylServerProject/RylGameLibrary"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="ws2_32.lib"
|
||||
OutputFile="$(OutDir)/FindCharCopyLog.exe"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="소스 파일"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\FindCharCopyLog.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="헤더 파일"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="리소스 파일"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
32
Server/DBProcess/FindCharCopyLog/ReadMe.txt
Normal file
32
Server/DBProcess/FindCharCopyLog/ReadMe.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
========================================================================
|
||||
콘솔 응용 프로그램 : FindCharCopyLog 프로젝트 개요
|
||||
========================================================================
|
||||
|
||||
응용 프로그램 마법사에서 이 FindCharCopyLog 응용 프로그램을 만들었습니다.
|
||||
이 파일에는 FindCharCopyLog 응용 프로그램을 구성하는 각각의 파일에
|
||||
들어 있는 요약 설명이 포함되어 있습니다.
|
||||
|
||||
|
||||
FindCharCopyLog.vcproj
|
||||
응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다.
|
||||
해당 파일을 생성한 Visual C++의 버전 정보를 비롯하여
|
||||
응용 프로그램 마법사에서 선택한 플랫폼, 구성 및
|
||||
프로젝트 기능에 대한 정보가 들어 있습니다.
|
||||
|
||||
FindCharCopyLog.cpp
|
||||
기본 응용 프로그램 소스 파일입니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
기타 표준 파일:
|
||||
|
||||
StdAfx.h 및 StdAfx.cpp는
|
||||
FindCharCopyLog.pch라는 이름의 PCH(미리 컴파일된 헤더) 파일과
|
||||
StdAfx.obj라는 이름의 미리 컴파일된 형식 파일을 빌드하는 데 사용됩니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
기타 참고:
|
||||
|
||||
응용 프로그램 마법사에서 사용하는 "TODO:" 주석은 사용자가 추가하거나 사용자 지정해야 하는
|
||||
소스 코드 부분을 나타냅니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
8
Server/DBProcess/FindCharCopyLog/stdafx.cpp
Normal file
8
Server/DBProcess/FindCharCopyLog/stdafx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
|
||||
// FindCharCopyLog.pch는 미리 컴파일된 헤더가 됩니다.
|
||||
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: 필요한 추가 헤더는
|
||||
// 이 파일이 아닌 STDAFX.H에서 참조합니다.
|
||||
15
Server/DBProcess/FindCharCopyLog/stdafx.h
Normal file
15
Server/DBProcess/FindCharCopyLog/stdafx.h
Normal file
@@ -0,0 +1,15 @@
|
||||
// stdafx.h : 자주 사용하지만 자주 변경되지는 않는
|
||||
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
|
||||
// 들어 있는 포함 파일입니다.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <tchar.h>
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다.
|
||||
|
||||
#include <atlbase.h>
|
||||
|
||||
// TODO: 프로그램에 필요한 추가 헤더는 여기에서 참조합니다.
|
||||
Reference in New Issue
Block a user