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:
394
Server/ToolProject/GameDBTool/CharList.cpp
Normal file
394
Server/ToolProject/GameDBTool/CharList.cpp
Normal file
@@ -0,0 +1,394 @@
|
||||
#include "charlist.h"
|
||||
|
||||
char g_CharInfoField[25][20] =
|
||||
{
|
||||
"CID", "Name", "Sex", "Hair", "Face",
|
||||
"Nationality", "Class", "Fame", "Mileage", "Guild",
|
||||
"Party", "Level", "Gold", "IP", "STR",
|
||||
"DEX", "CON", "INT", "WIS", "HP",
|
||||
"MP", "EXP"
|
||||
};
|
||||
|
||||
char g_Sex[2][7] = { "Male", "Female" };
|
||||
|
||||
CCharList::CCharList()
|
||||
{
|
||||
}
|
||||
|
||||
CCharList::~CCharList()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCharList, CListCtrl)
|
||||
//{{AFX_MSG_MAP(CUserList)
|
||||
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
|
||||
ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, OnEndLableEdit)
|
||||
ON_WM_LBUTTONDBLCLK()
|
||||
ON_WM_HSCROLL()
|
||||
ON_WM_VSCROLL()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
void CCharList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
CListViewControl::OnCustomDraw(pNMHDR, pResult);
|
||||
}
|
||||
|
||||
void CCharList::OnEndLableEdit(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
CListViewControl::OnEndLableEdit(pNMHDR, pResult);
|
||||
}
|
||||
|
||||
void CCharList::OnLButtonDblClk(UINT nFlags, CPoint point)
|
||||
{
|
||||
CListViewControl::OnLButtonDblClk(nFlags, point);
|
||||
}
|
||||
|
||||
void CCharList::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CListViewControl::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
void CCharList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CListViewControl::OnVScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
//Interface////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// SetColumn [ public ]
|
||||
// - 테이블 컬럼 세팅
|
||||
//
|
||||
// Parameter :
|
||||
// 1st : 컬럼 정보
|
||||
//
|
||||
// Return:
|
||||
// 성공시 true
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool CCharList::SetColumn(void)
|
||||
{
|
||||
DWORD ExStyle = LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
|
||||
SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ExStyle);
|
||||
|
||||
DWORD Style = GetWindowLong(m_hWnd, GWL_STYLE);
|
||||
Style |= LVS_EDITLABELS;
|
||||
|
||||
if (!SetWindowLong(m_hWnd, GWL_STYLE, Style))
|
||||
return false;
|
||||
|
||||
CStringList StringList;
|
||||
|
||||
// 캐릭터 아이디
|
||||
SetColumnType(0, CT_NORMAL);
|
||||
InsertColumn(0, g_CharInfoField[0], LVCFMT_CENTER, 4 * 20 + 5);
|
||||
|
||||
// 이름
|
||||
SetColumnType(1, CT_NORMAL);
|
||||
InsertColumn(1, g_CharInfoField[1], LVCFMT_CENTER, 130 );
|
||||
|
||||
// 성별
|
||||
SetColumnType(2, CT_COMBO);
|
||||
StringList.AddTail(g_Sex[0]);
|
||||
StringList.AddTail(g_Sex[1]);
|
||||
SetColumnStringList(2, StringList);
|
||||
InsertColumn(2, g_CharInfoField[2], LVCFMT_CENTER, 5 * 10);
|
||||
|
||||
// 머리
|
||||
SetColumnType(3, CT_EDIT);
|
||||
InsertColumn(3, g_CharInfoField[3], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 얼굴
|
||||
SetColumnType(4, CT_EDIT);
|
||||
InsertColumn(4, g_CharInfoField[4], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 종족
|
||||
SetColumnType(5, CT_EDIT);
|
||||
InsertColumn(5, g_CharInfoField[5], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 클래스
|
||||
SetColumnType(6, CT_EDIT);
|
||||
InsertColumn(6, g_CharInfoField[6], LVCFMT_CENTER, 6 * 10);
|
||||
|
||||
// 공헌도
|
||||
SetColumnType(7, CT_EDIT);
|
||||
InsertColumn(7, g_CharInfoField[7], LVCFMT_CENTER, 6 * 10);
|
||||
|
||||
// 명성
|
||||
SetColumnType(8, CT_EDIT);
|
||||
InsertColumn(8, g_CharInfoField[8], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 길드
|
||||
SetColumnType(9, CT_EDIT);
|
||||
InsertColumn(9, g_CharInfoField[9], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 파티
|
||||
SetColumnType(10, CT_EDIT);
|
||||
InsertColumn(10, g_CharInfoField[10], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 레벨
|
||||
SetColumnType(11, CT_EDIT);
|
||||
InsertColumn(11, g_CharInfoField[11], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// 돈
|
||||
SetColumnType(12, CT_EDIT);
|
||||
InsertColumn(12, g_CharInfoField[12], LVCFMT_CENTER, 8 * 10);
|
||||
|
||||
// IP
|
||||
SetColumnType(13, CT_EDIT);
|
||||
InsertColumn(13, g_CharInfoField[13], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// STR
|
||||
SetColumnType(14, CT_EDIT);
|
||||
InsertColumn(14, g_CharInfoField[14], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// DEX
|
||||
SetColumnType(15, CT_EDIT);
|
||||
InsertColumn(15, g_CharInfoField[15], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// CON
|
||||
SetColumnType(16, CT_EDIT);
|
||||
InsertColumn(16, g_CharInfoField[16], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// INT
|
||||
SetColumnType(17, CT_EDIT);
|
||||
InsertColumn(17, g_CharInfoField[17], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// WIS
|
||||
SetColumnType(18, CT_EDIT);
|
||||
InsertColumn(18, g_CharInfoField[18], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// HP
|
||||
SetColumnType(19, CT_EDIT);
|
||||
InsertColumn(19, g_CharInfoField[19], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// MP
|
||||
SetColumnType(20, CT_EDIT);
|
||||
InsertColumn(20, g_CharInfoField[20], LVCFMT_CENTER, 4 * 10);
|
||||
|
||||
// EXP
|
||||
SetColumnType(21, CT_EDIT);
|
||||
InsertColumn(21, g_CharInfoField[21], LVCFMT_CENTER, 6 * 10);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//Interface////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// AddUserRow [ public ]
|
||||
// - 줄 추가
|
||||
//
|
||||
// Parameter :
|
||||
// 1st : 컬럼 정보
|
||||
//
|
||||
// Return:
|
||||
// 성공시 true
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool CCharList::AddCharRow(LPCHAR_INFOST CharInfo_In)
|
||||
{
|
||||
// TODO : 컴파일 에러가 나서 주석 처리해둡니다. 필요하신 분이 수정해주세요. (2005-01-26 by 로딘)
|
||||
/*
|
||||
CString strItem;
|
||||
int Index;
|
||||
|
||||
Index = GetItemCount();
|
||||
|
||||
// 캐릭터 아이디
|
||||
strItem.Format("%d", CharInfo_In->UID);
|
||||
InsertItem(Index, strItem);
|
||||
|
||||
// 이름
|
||||
strItem.Format("%s", CharInfo_In->Name);
|
||||
SetItemText(Index, 1, strItem);
|
||||
|
||||
// 성별
|
||||
strItem.Format("%s", g_Sex[CharInfo_In->Sex - 1]);
|
||||
SetItemText(Index, 2, strItem);
|
||||
|
||||
// 머리
|
||||
strItem.Format("%d", CharInfo_In->Hair);
|
||||
SetItemText(Index, 3, strItem);
|
||||
|
||||
// 얼굴
|
||||
strItem.Format("%d", CharInfo_In->Face);
|
||||
SetItemText(Index, 4, strItem);
|
||||
|
||||
// 종족
|
||||
strItem.Format("%d", CharInfo_In->Race);
|
||||
SetItemText(Index, 5, strItem);
|
||||
|
||||
// 클래스
|
||||
strItem.Format("%d", CharInfo_In->Class);
|
||||
SetItemText(Index, 6, strItem);
|
||||
|
||||
// 명성
|
||||
strItem.Format("%d", CharInfo_In->Fame);
|
||||
SetItemText(Index, 7, strItem);
|
||||
|
||||
// 마일리지
|
||||
strItem.Format("%d", CharInfo_In->Mileage);
|
||||
SetItemText(Index, 8, strItem);
|
||||
|
||||
// 길드
|
||||
strItem.Format("%d", CharInfo_In->Guild);
|
||||
SetItemText(Index, 9, strItem);
|
||||
|
||||
// 파티
|
||||
strItem.Format("%d", CharInfo_In->Party);
|
||||
SetItemText(Index, 10, strItem);
|
||||
|
||||
// 레벨
|
||||
strItem.Format("%d", CharInfo_In->Level);
|
||||
SetItemText(Index, 11, strItem);
|
||||
|
||||
// 돈
|
||||
strItem.Format("%d", CharInfo_In->Gold);
|
||||
SetItemText(Index, 12, strItem);
|
||||
|
||||
// IP
|
||||
strItem.Format("%d", CharInfo_In->IP);
|
||||
SetItemText(Index, 13, strItem);
|
||||
|
||||
// STR
|
||||
strItem.Format("%d", CharInfo_In->STR);
|
||||
SetItemText(Index, 14, strItem);
|
||||
|
||||
// DEX
|
||||
strItem.Format("%d", CharInfo_In->DEX);
|
||||
SetItemText(Index, 15, strItem);
|
||||
|
||||
// CON
|
||||
strItem.Format("%d", CharInfo_In->CON);
|
||||
SetItemText(Index, 16, strItem);
|
||||
|
||||
// INT
|
||||
strItem.Format("%d", CharInfo_In->INT);
|
||||
SetItemText(Index, 17, strItem);
|
||||
|
||||
// WIS
|
||||
strItem.Format("%d", CharInfo_In->WIS);
|
||||
SetItemText(Index, 18, strItem);
|
||||
|
||||
// HP
|
||||
strItem.Format("%d", CharInfo_In->HP);
|
||||
SetItemText(Index, 19, strItem);
|
||||
|
||||
// MP
|
||||
strItem.Format("%d", CharInfo_In->MP);
|
||||
SetItemText(Index, 20, strItem);
|
||||
|
||||
// EXP
|
||||
strItem.Format("%d", CharInfo_In->Exp);
|
||||
SetItemText(Index, 21, strItem);
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CCharList::GetCharRow(unsigned long Item_In, LPCHAR_INFOST CharInfo_Out)
|
||||
{
|
||||
// TODO : 컴파일 에러가 나서 주석 처리해둡니다. 필요하신 분이 수정해주세요. (2005-01-26 by 로딘)
|
||||
/*
|
||||
int Counter = 0;
|
||||
char strItemText[256];
|
||||
|
||||
// 캐릭터 아이디
|
||||
GetItemText(Item_In, 0, strItemText, 256);
|
||||
CharInfo_Out->UID = atoi(strItemText);
|
||||
|
||||
// 이름
|
||||
GetItemText(Item_In, 1, strItemText, 256);
|
||||
strncpy(CharInfo_Out->Name, strItemText, 16);
|
||||
|
||||
// 성별
|
||||
GetItemText(Item_In, 2, strItemText, 256);
|
||||
if(!strcmp(strItemText, g_Sex[0]))
|
||||
CharInfo_Out->Sex = 1;
|
||||
else
|
||||
CharInfo_Out->Sex = 2;
|
||||
|
||||
// 머리
|
||||
GetItemText(Item_In, 3, strItemText, 256);
|
||||
CharInfo_Out->Hair = atoi(strItemText);
|
||||
|
||||
// 얼굴
|
||||
GetItemText(Item_In, 4, strItemText, 256);
|
||||
CharInfo_Out->Face = atoi(strItemText);
|
||||
|
||||
// 종족
|
||||
GetItemText(Item_In, 5, strItemText, 256);
|
||||
CharInfo_Out->Race = atoi(strItemText);
|
||||
|
||||
// 클래스
|
||||
GetItemText(Item_In, 6, strItemText, 256);
|
||||
CharInfo_Out->Class = atoi(strItemText);
|
||||
|
||||
// 명성
|
||||
GetItemText(Item_In, 7, strItemText, 256);
|
||||
CharInfo_Out->Fame = atoi(strItemText);
|
||||
|
||||
// 마일리지
|
||||
GetItemText(Item_In, 8, strItemText, 256);
|
||||
CharInfo_Out->Mileage = atoi(strItemText);
|
||||
|
||||
// 길드
|
||||
GetItemText(Item_In, 9, strItemText, 256);
|
||||
CharInfo_Out->Guild = atoi(strItemText);
|
||||
|
||||
// 파티
|
||||
GetItemText(Item_In, 10, strItemText, 256);
|
||||
CharInfo_Out->Party = atoi(strItemText);
|
||||
|
||||
// 레벨
|
||||
GetItemText(Item_In, 11, strItemText, 256);
|
||||
CharInfo_Out->Level = atoi(strItemText);
|
||||
|
||||
// 돈
|
||||
GetItemText(Item_In, 12, strItemText, 256);
|
||||
CharInfo_Out->Gold = atoi(strItemText);
|
||||
|
||||
// IP
|
||||
GetItemText(Item_In, 13, strItemText, 256);
|
||||
CharInfo_Out->IP = atoi(strItemText);
|
||||
|
||||
// STR
|
||||
GetItemText(Item_In, 14, strItemText, 256);
|
||||
CharInfo_Out->STR = atoi(strItemText);
|
||||
|
||||
// DEX
|
||||
GetItemText(Item_In, 15, strItemText, 256);
|
||||
CharInfo_Out->DEX = atoi(strItemText);
|
||||
|
||||
// CON
|
||||
GetItemText(Item_In, 16, strItemText, 256);
|
||||
CharInfo_Out->CON = atoi(strItemText);
|
||||
|
||||
// INT
|
||||
GetItemText(Item_In, 17, strItemText, 256);
|
||||
CharInfo_Out->INT = atoi(strItemText);
|
||||
|
||||
// WIS
|
||||
GetItemText(Item_In, 18, strItemText, 256);
|
||||
CharInfo_Out->WIS = atoi(strItemText);
|
||||
|
||||
// HP
|
||||
GetItemText(Item_In, 19, strItemText, 256);
|
||||
CharInfo_Out->HP = atoi(strItemText);
|
||||
|
||||
// MP
|
||||
GetItemText(Item_In, 20, strItemText, 256);
|
||||
CharInfo_Out->MP = atoi(strItemText);
|
||||
|
||||
// EXP
|
||||
GetItemText(Item_In, 21, strItemText, 256);
|
||||
CharInfo_Out->Exp = atoi(strItemText);
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user