⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverpatch.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			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.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 CServerPatch::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 CServerPatch::OnRadioShutdown() 
{
	// TODO: Add your control notification handler code here
	if(m_nRadioShutDown != 0)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerList();
		MoveToSelectEachServer(3);
		
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 1;
	m_CheckDBDemon = 0;
	UpdateData(FALSE);
}
//ShutDown-Agent Radio
void CServerPatch::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	if(m_nRadioShutDown != 1)
	{
		c_SelectList.DeleteAllItems();
		//RefreshServerList();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(1);
	}
	UpdateData(TRUE);
	m_CheckAgent = 1;
	m_CheckMap = 0;
	m_CheckDBDemon = 0;
	UpdateData(FALSE);
}
//ShutDown-DBDemon Radio
void CServerPatch::OnRadio3() 
{
	// TODO: Add your control notification handler code here
	if(m_nRadioShutDown != 2)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(2);
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 0;
	m_CheckDBDemon = 1;
	UpdateData(FALSE);
}
//ShutDown-Proxy Radio
void CServerPatch::OnRadio4() 
{
	// TODO: Add your control notification handler code here
	if(m_nRadioShutDown != 3)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(0);		
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 0;
	m_CheckDBDemon = 0;
	UpdateData(FALSE);
}

//ShutDown-Selected
void CServerPatch::OnRadio5() 
{
	// TODO: Add your control notification handler code here
	if(m_nRadioShutDown != 4)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerList();
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 0;
	m_CheckDBDemon = 0;
	UpdateData(FALSE);
	
}

//Execute-Proxy
void CServerPatch::OnRadioExecute() 
{
	__VIEW
	// TODO: Add your control notification handler code here
	if(m_nRadioExecute != 0)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(0);		
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 0;
	m_CheckDBDemon = 0;
	
	CString szTemp,szTemp2;
	szTemp = m_pApp->m_szServerFile[ pView->m_nCurServerSet ][0];
	szTemp2 = szTemp.Right(szTemp.GetLength() - szTemp.ReverseFind('\\') - 1);
	m_szExeName = szTemp2;
	UpdateData(FALSE);
}

//Execute-Agent
void CServerPatch::OnRadio7() 
{
	__VIEW
	// TODO: Add your control notification handler code here
	if(m_nRadioExecute != 1)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(1);
	}
	UpdateData(TRUE);
	m_CheckAgent = 1;
	m_CheckMap = 0;
	m_CheckDBDemon = 0;
	
	CString szTemp,szTemp2;
	szTemp = m_pApp->m_szServerFile[ pView->m_nCurServerSet ][1];
	szTemp2 = szTemp.Right(szTemp.GetLength() - szTemp.ReverseFind('\\') - 1);
	m_szExeName = szTemp2;
	UpdateData(FALSE);
}

//Execute-DBDemon
void CServerPatch::OnRadio8() 
{
	__VIEW
	// TODO: Add your control notification handler code here
	if(m_nRadioExecute != 2)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(2);
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 0;
	m_CheckDBDemon = 1;
	
	CString szTemp,szTemp2;
	szTemp = m_pApp->m_szServerFile[ pView->m_nCurServerSet ][2];
	szTemp2 = szTemp.Right(szTemp.GetLength() - szTemp.ReverseFind('\\') - 1);
	m_szExeName = szTemp2;
	UpdateData(FALSE);
}
//Execute-Map
void CServerPatch::OnRadio9() 
{
	// TODO: Add your control notification handler code here
	__VIEW
	if(m_nRadioExecute != 3)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerListOnlyAllServerList();
		MoveToSelectEachServer(3);
		
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 1;
	m_CheckDBDemon = 0;
	
	CString szTemp,szTemp2;
	szTemp = m_pApp->m_szServerFile[ pView->m_nCurServerSet ][3];
	szTemp2 = szTemp.Right(szTemp.GetLength() - szTemp.ReverseFind('\\') - 1);
	m_szExeName = szTemp2;
	UpdateData(FALSE);
}
//Execute-Selected
void CServerPatch::OnRadio10() 
{
	// TODO: Add your control notification handler code here
	if(m_nRadioExecute != 4)
	{
		c_SelectList.DeleteAllItems();
		RefreshServerList();
	}
	UpdateData(TRUE);
	m_CheckAgent = 0;
	m_CheckMap = 0;
	m_CheckDBDemon = 0;
	m_szExeName = "";
	UpdateData(FALSE);
}

void CServerPatch::OnReboot() 
{
//kyo
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif

	if( !RIGHT(MASK_14) )	return;
	// TODO: Add your control notification handler code here
	CServerView* pView = (CServerView*)GetParent();
	
	int disconnect = 0;
	int num; num = c_SelectList.GetItemCount();
	if( num <= 0 )
	{
		MessageBox("Select to Rebooting Server");
		return;
	}

	if(MessageBox("Rebooted server. Are you sure?","Reboot",MB_YESNO) != IDYES)
		return;

	int offset = 3;
	char packet[ 1024 ], str[ 0xff ];

	packet[ 0 ] = PTCL_RM;
	packet[ 1 ] = MSG_RM_REBOOT_SERVER;
	packet[ 2 ] = (char)num;

	for(int i=0; i<num; i++)
	{
		c_SelectList.GetItemText(i, 2, str, 128);		//立加 惑怕 眉农 
		if(!strcmp(str,"O"))	disconnect++;

		
		c_SelectList.GetItemText(i, 1, str, 128);
		WORD wPort = (WORD)atoi(str);

		memcpy(packet + offset, &wPort, sizeof(WORD)); 
		offset += sizeof(WORD);
	}

	if(disconnect > 0)
	{
		sprintf(str,"酒流 角青捞 辆丰登瘤 臼篮 辑滚啊 %d俺 乐嚼聪促. 拌加窍矫摆嚼聪鳖?",disconnect);
		if(MessageBox(str,"辑滚 角青吝",MB_YESNO) == IDYES)
		{
			if(m_pApp->m_nCI[ pView->m_nCurServerSet ])
			{
				g_pNet->Send(m_pApp->m_nCI[ pView->m_nCurServerSet ], (char*)packet, offset);

				
#ifdef RM_LOG_MODE
	CString str;	str.Format("ServerPatch :: Reboot Server!(Applied: num)",num);
	m_pApp->LogServer(pView->m_nCurServerSet, str);
#endif
			}
			else
			{
				MessageBox("Don't Connect to Proxy server.","Offline",MB_OK);
			}
		}

	}
	else
	{
		
		if(m_pApp->m_nCI[ pView->m_nCurServerSet ])
		{
			g_pNet->Send(m_pApp->m_nCI[ pView->m_nCurServerSet ], (char*)packet, offset);
		}
		else
		{
			MessageBox("Don't Connect to Proxy server.","Offline",MB_OK);
		}

	}

	
}

int  g_AllServerListSort2[5] = {0,};		//5篮 漠烦 肮荐促.
void CServerPatch::OnColumnclickAllServerList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	if(g_AllServerListSort2[ pNMListView->iSubItem ] == ASC)
		g_AllServerListSort2[ pNMListView->iSubItem ] = DESC;
	else
		g_AllServerListSort2[ pNMListView->iSubItem ] = ASC;
	
	ListValue value;
	value.iSubItem = pNMListView->iSubItem;
	value.pListCtrl = &c_AllList;
	value.iListCtrl = 5;		//3锅捞 AllServerStatusList..

	ListView_SortItems(c_AllList.m_hWnd, pfnCompare, &value);
	*pResult = 0;
}

int  g_SelectServerListSort2[5] = {0,};		//5篮 漠烦 肮荐促.
void CServerPatch::OnColumnclickSelectServerList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	if(g_SelectServerListSort2[ pNMListView->iSubItem ] == ASC)
		g_SelectServerListSort2[ pNMListView->iSubItem ] = DESC;
	else
		g_SelectServerListSort2[ pNMListView->iSubItem ] = ASC;
	
	ListValue value;
	value.iSubItem = pNMListView->iSubItem;
	value.pListCtrl = &c_SelectList;
	value.iListCtrl = 4;		//2锅捞 SelectServerStatusList..

	ListView_SortItems(c_SelectList.m_hWnd, pfnCompare, &value);
	*pResult = 0;
}

void CServerPatch::OnSetServerfile() 
{
	
//kyo
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif

	// TODO: Add your control notification handler code here
	if( !RIGHT(MASK_14) )	return;

	CServerView *pView = (CServerView*)GetParent();
	
	CServerFilePathDlg dlg;
	dlg.m_nCurServerSet = pView->m_nCurServerSet;
	dlg.DoModal();
}

void CServerPatch::OnListenerPatch() 
{
//kyo
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif


	// TODO: Add your control notification handler code here
	if( !RIGHT(MASK_14) )	return;


	if( MessageBox( "Do You Want Listener Patch?","ListenerPatch",MB_YESNO) == IDNO) 
	{
		PACKET_LISTENER_PATCH packet;
		g_pNet->Send(GetConnection(), (char*)&packet, packet.GetPacketSize() );
	}

#ifdef RM_LOG_MODE
	//CServerView* pView = (CServerView*)GetParent();
	
	//SLog(pView->m_nCurServerSet, ServerPatch :: Listener Patch!) //kyo 020628
#endif

}

DWORD CServerPatch::GetConnection()
{
	CServerView* pView = (CServerView*)GetParent();
	return m_pApp->m_nCI[ pView->m_nCurServerSet ];
}

void CServerPatch::OnRadioIni() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	c_CheckExecute.EnableWindow(FALSE);
	
/*
	CServerView* pView = (CServerView*)GetParent();

	CString szTemp, szTemp2;
	szTemp = m_pApp->m_szDownloadPath[ pView->m_nCurServerSet ];
	
	szTemp2 = szTemp.Mid(3);

	PACKET_SET_DOWNLOAD_PATH packet(szTemp.GetAt(0), szTemp2.GetBuffer( szTemp2.GetLength() ));
	g_pNet->Send(GetCon

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -