📄 servercontrol.cpp
字号:
}
c_SelectList.SetItem(&item);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = pInfo->MachineName;
c_SelectList.SetItem(&item);
//Machine
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = pInfo->Ip;
c_SelectList.SetItem(&item);
}
CountConnectServer();
}
void CServerControl::OnLeft()
{
int nItem,port,i=0,count=0;
LVITEM item;
char str[128];
count = c_SelectList.GetItemCount();
while(count > 0)
{
nItem = c_SelectList.GetNextItem( -1, LVNI_SELECTED );
if( nItem < 0 ) break;
port = atoi(c_SelectList.GetItemText(nItem,1));
i = c_AllList.GetItemCount();
c_SelectList.GetItemText(nItem,0,str,128);
//辑滚疙
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = str;
item.iItem = i; //青锅龋
item.iSubItem = 0; //凯锅龋
item.lParam = port;
c_AllList.InsertItem(&item);
c_SelectList.GetItemText(nItem,1,str,128);
//Port 锅龋
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,2,str,128);
//泅犁 惑怕
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,3,str,128);
//辑滚鸥涝
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,4,str,128);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,5,str,128);
//Machine
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = str;
c_AllList.SetItem(&item);
//盖 关栏肺 胶农费官 捞悼..
POINT point;
CHeaderCtrl* pHeader = (CHeaderCtrl*)c_AllList.GetDlgItem(0);
RECT rect;
pHeader->GetClientRect( &rect );
int header = rect.bottom;
c_AllList.GetItemPosition(i, &point);
c_AllList.Scroll(CSize(0, point.y - header));
c_SelectList.DeleteItem(nItem);
count--;
}
CountConnectServer();
}
void CServerControl::OnRight()
{
// TODO: Add your control notification handler code here
int nItem,port,i=0,count=0;
LVITEM item;
char str[128];
count = c_AllList.GetItemCount();
while(count > 0)
{
nItem = c_AllList.GetNextItem( -1, LVNI_SELECTED );
if( nItem < 0 ) break;
port = atoi(c_AllList.GetItemText(nItem,1));
i = c_SelectList.GetItemCount();
c_AllList.GetItemText(nItem,0,str,128);
//辑滚疙
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = str;
item.iItem = i; //青锅龋
item.iSubItem = 0; //凯锅龋
item.lParam = port;
c_SelectList.InsertItem(&item);
c_AllList.GetItemText(nItem,1,str,128);
//Port 锅龋
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,2,str,128);
//泅犁 惑怕
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,3,str,128);
//辑滚鸥涝
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,4,str,128);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,5,str,128);
//Machine
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = str;
c_SelectList.SetItem(&item);
//盖 关栏肺 胶农费官 捞悼..
POINT point;
CHeaderCtrl* pHeader = (CHeaderCtrl*)c_SelectList.GetDlgItem(0);
RECT rect;
pHeader->GetClientRect( &rect );
int header = rect.bottom;
c_SelectList.GetItemPosition(i, &point);
c_SelectList.Scroll(CSize(0, point.y - header));
c_AllList.DeleteItem(nItem);
count--;
}
CountConnectServer();
}
void CServerControl::OnLeftAll()
{
// TODO: Add your control notification handler code here
c_AllList.DeleteAllItems();
c_SelectList.DeleteAllItems();
CServerView* pView = (CServerView*)GetParent();
LVITEM item;
char temp[ 0xff ];
int si = pView->m_nCurServerSet; //ServerIndex(si)
if(si < 0) return;
ServerInfo *pInfo = NULL;
for(int i=0; i< m_pApp->m_ServerSetInfo[ si ].nServerNum ; i++)
{
pInfo = &m_pApp->m_ServerInfo[si][i];
//辑滚疙
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = pInfo->MapName;
item.iItem = i; //青锅龋
item.iSubItem = 0; //凯锅龋
item.lParam = pInfo->Port;
c_AllList.InsertItem(&item);
//Port 锅龋
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = _itoa(pInfo->Port, temp, 10);
c_AllList.SetItem(&item);
//泅犁 惑怕
sprintf(temp,"%c",m_pApp->m_StatusSymbol[ pInfo->dwStatus ]);
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = temp;
c_AllList.SetItem(&item);
//辑滚鸥涝
item.mask = LVIF_TEXT;
item.iSubItem = 3;
switch(pInfo->ServerType)
{
case SERVER_TYPE_PROXY: item.pszText = "PROXY"; break;
case SERVER_TYPE_AGENT: item.pszText = "AGENT"; break;
case SERVER_TYPE_DBDEMON: item.pszText = "DBDEMON"; break;
case SERVER_TYPE_MAP: item.pszText = "MAP"; break;
}
c_AllList.SetItem(&item);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = pInfo->MachineName;
c_AllList.SetItem(&item);
//Machine
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = pInfo->Ip;
c_AllList.SetItem(&item);
}
CountConnectServer();
}
int g_SelectServerListSort[5] = {0,}; //5篮 漠烦 肮荐促.
void CServerControl::OnColumnclickSelectServerList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(g_SelectServerListSort[ pNMListView->iSubItem ] == ASC)
g_SelectServerListSort[ pNMListView->iSubItem ] = DESC;
else
g_SelectServerListSort[ pNMListView->iSubItem ] = ASC;
ListValue value;
value.iSubItem = pNMListView->iSubItem;
value.pListCtrl = &c_SelectList;
value.iListCtrl = 2; //2锅捞 SelectServerStatusList..
ListView_SortItems(c_SelectList.m_hWnd, pfnCompare, &value);
*pResult = 0;
}
int g_AllServerListSort[5] = {0,}; //5篮 漠烦 肮荐促.
void CServerControl::OnColumnclickAllServerList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(g_AllServerListSort[ pNMListView->iSubItem ] == ASC)
g_AllServerListSort[ pNMListView->iSubItem ] = DESC;
else
g_AllServerListSort[ pNMListView->iSubItem ] = ASC;
ListValue value;
value.iSubItem = pNMListView->iSubItem;
value.pListCtrl = &c_AllList;
value.iListCtrl = 3; //3锅捞 AllServerStatusList..
ListView_SortItems(c_AllList.m_hWnd, pfnCompare, &value);
*pResult = 0;
}
void CServerControl::OnCheckAgent()
{
// TODO: Add your control notification handler code here
if(m_CheckAgent)
{
m_CheckAgent = 0;
MoveToAllEachServer(1);
}
else
{
m_CheckAgent = 1;
MoveToSelectEachServer(1);
}
UpdateData(FALSE);
}
void CServerControl::OnCheckDbdemon()
{
// TODO: Add your control notification handler code here
if(m_CheckDBDemon)
{
m_CheckDBDemon = 0;
MoveToAllEachServer(2);
}
else
{
m_CheckDBDemon = 1;
MoveToSelectEachServer(2);
}
UpdateData(FALSE);
}
void CServerControl::OnCheckMap()
{
// TODO: Add your control notification handler code here
if(m_CheckMap)
{
m_CheckMap = 0;
MoveToAllEachServer(3);
}
else
{
m_CheckMap = 1;
MoveToSelectEachServer(3);
}
UpdateData(FALSE);
}
void CServerControl::MoveToSelectEachServer(int nServerType)
{
int nItem,port,i=0,count=0;
LVITEM item;
char str[128];
char* type[4] = {"PROXY","AGENT","DBDEMON","MAP"};
int num = c_AllList.GetItemCount();
for(int k=0; k<num; k++)
{
nItem = k - count;
c_AllList.GetItemText(nItem,3,str,128);
if(!strcmp(str, type[ nServerType ]))
{
port = atoi(c_AllList.GetItemText(nItem,1));
i = c_SelectList.GetItemCount();
c_AllList.GetItemText(nItem,0,str,128);
//辑滚疙
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = str;
item.iItem = i; //青锅龋
item.iSubItem = 0; //凯锅龋
item.lParam = port;
c_SelectList.InsertItem(&item);
c_AllList.GetItemText(nItem,1,str,128);
//Port 锅龋
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,2,str,128);
//泅犁 惑怕
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,3,str,128);
//辑滚鸥涝
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,4,str,128);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = str;
c_SelectList.SetItem(&item);
c_AllList.GetItemText(nItem,5,str,128);
//Ip
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = str;
c_SelectList.SetItem(&item);
//nItem = nItem - count + 1;
c_AllList.DeleteItem(nItem);
count++;
//盖 关栏肺 胶农费官 捞悼..
POINT point;
CHeaderCtrl* pHeader = (CHeaderCtrl*)c_SelectList.GetDlgItem(0);
RECT rect;
pHeader->GetClientRect( &rect );
int header = rect.bottom;
c_SelectList.GetItemPosition(i, &point);
c_SelectList.Scroll(CSize(0, point.y - header));
}
}
CountConnectServer();
}
void CServerControl::MoveToAllEachServer(int nServerType)
{
int nItem,port,i=0,count=0;
LVITEM item;
char str[128];
char* type[4] = {"PROXY","AGENT","DBDEMON","MAP"};
int num = c_SelectList.GetItemCount();
for(int k=0; k<num; k++)
{
nItem = k - count;
c_SelectList.GetItemText(nItem,3,str,128);
if(!strcmp(str, type[ nServerType ]))
{
port = atoi(c_SelectList.GetItemText(nItem,1));
i = c_AllList.GetItemCount();
c_SelectList.GetItemText(nItem,0,str,128);
//辑滚疙
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = str;
item.iItem = i; //青锅龋
item.iSubItem = 0; //凯锅龋
item.lParam = port;
c_AllList.InsertItem(&item);
c_SelectList.GetItemText(nItem,1,str,128);
//Port 锅龋
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,2,str,128);
//泅犁 惑怕
item.mask = LVIF_TEXT;
item.iSubItem = 2;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,3,str,128);
//辑滚鸥涝
item.mask = LVIF_TEXT;
item.iSubItem = 3;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,4,str,128);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 4;
item.pszText = str;
c_AllList.SetItem(&item);
c_SelectList.GetItemText(nItem,5,str,128);
//System
item.mask = LVIF_TEXT;
item.iSubItem = 5;
item.pszText = str;
c_AllList.SetItem(&item);
//nItem = nItem - count + 1;
c_SelectList.DeleteItem(nItem);
count++;
//盖 关栏肺 胶农费官 捞悼..
POINT point;
CHeaderCtrl* pHeader = (CHeaderCtrl*)c_AllList.GetDlgItem(0);
RECT rect;
pHeader->GetClientRect( &rect );
int header = rect.bottom;
c_AllList.GetItemPosition(i, &point);
c_AllList.Scroll(CSize(0, point.y - header));
}
}
CountConnectServer();
}
void CServerControl::OnReloadData()
{
// TODO: Add your control notification handler code here
if( !RIGHT(MASK_9) ) return;
if( MessageBox( "GameServerData Update Are You Sure??", "Sure??", MB_YESNO ) != IDYES )
return;
int num = c_SelectList.GetItemCount();
if(num <= 0)
{
MessageBox("Select Reload Map!","Select Map Server",MB_OK);
return;
}
int diff = 0, offset = 3;
WORD wPort;
char str[ 128 ];
char packet[ 1024 ];
packet[0] = PTCL_RM;
packet[1] = MSG_RM_RELOAD_DATA;
packet[2] = (char)num;
for(int i=0; i<num; i++)
{
c_SelectList.GetItemText(i, 3, str, 128);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -