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

📄 serverpatch.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				}
	
				//file.WriteString("nation_name = KOREA\n");	//家胶瘤沥
				//str.Format( "nation_name = %s\n", "USA" );
				file.WriteString(str);	//家胶瘤沥
				file.WriteString("beta_server = 0\n");		//家胶瘤沥


				file.WriteString("[server_info]\n");
				str.Format("own_server_ip_for_server=%s\n",pInfo->Ip);
				file.WriteString(str);

				str.Format("own_server_port_for_server=%d\n",pInfo->Port);
				file.WriteString(str);

				file.WriteString("own_server_ip_for_user=\n");
				file.WriteString("own_server_port_for_user=\n");
				
				//proxy辑滚 茫扁..
				int proxy=0;
				for(int j=0; j<m_pApp->m_ServerSetInfo[ si ].nServerNum ; j++)
				{
					pInfo2 = &m_pApp->m_ServerInfo[si][j];
					if(pInfo2->ServerType == 0)
					{
						proxy = j;
						break;
					}
				}

				pInfo2 = &m_pApp->m_ServerInfo[si][proxy];
				str.Format("primary_proxy_server_ip=%s\n",pInfo2->Ip);
				file.WriteString(str);


				str.Format("primary_proxy_server_port=%d\n",pInfo2->Port);
				file.WriteString(str);
				
				str.Format("secondary_proxy_server_ip=%s\n",pInfo2->Ip);
				file.WriteString(str);
				
				file.WriteString("secondary_proxy_server_port=3002\n\n");
	
				file.Close();
			}
			break;
		//Map Server
		case 3:		
			{
				CStdioFile	file;
				
				CString	destpath;
				destpath.Format("%s\\%d",GetWriteFolder(2,i), pInfo->Port);	//器飘锅龋肺 弃歹 积己窍扁 困茄 巩磊凯 

				if(!::CreateDirectory((LPCTSTR)destpath,NULL))
				{
					AfxMessageBox("Failure to Create file");
					return;
				}

				CString subfolder;
				subfolder = destpath + "\\output";
				if(!::CreateDirectory((LPCTSTR)subfolder,NULL))
				{
					AfxMessageBox("Failure to Create Folder");
					return;
				}

				subfolder = destpath + "\\logout";
				if(!::CreateDirectory((LPCTSTR)subfolder,NULL))
				{
					AfxMessageBox("Failure to Create Folder");
					return;
				}

				subfolder = destpath + "\\changelog";		// 030312
				if(!::CreateDirectory((LPCTSTR)subfolder,NULL))
				{
					AfxMessageBox("Failure to Create Folder");
					return;
				}



				destpath += "\\mapserver.ini";	//积己且 颇老疙篮 proxyserver.ini

				if (file.Open(destpath, CFile::modeCreate | CFile::modeWrite, NULL)==FALSE)
				{
					AfxMessageBox("Cann't create mapserver.ini file	"); 
				}

				CString str;

				//惫啊沥焊
				file.WriteString("[nation_set]\n");
				switch( g_iNation )
				{
				
				case NATION_TAIWAN: 
					{
						str.Format( "nation_name = %s\n", "TAIWAN" );
						break;
					}
				case NATION_CHINA: 
					{
						str.Format( "nation_name = %s\n", "CHINA" );
						break;
					}
				case NATION_HONGKONG: 
					{
						str.Format( "nation_name = %s\n", "HONGKONG" );
						break;
					}
				case NATION_THAILAND: 
					{
						str.Format( "nation_name = %s\n", "THAI" );
						break;
					}
				case NATION_USA: 
					{
						str.Format( "nation_name = %s\n", "USA" );
						break;
					}
				case NATION_JAPAN: 
					{
						str.Format( "nation_name = %s\n", "JAPAN" );
						break;
					}
				case NATION_MAL: 
					{
						str.Format( "nation_name = %s\n", "MAL" );
						break;
					}
				case NATION_KOREA: 
				default:
					{
						str.Format( "nation_name = %s\n", "KOREA" );
						break;
					}
				}
	
				//file.WriteString("nation_name = KOREA\n");	//家胶瘤沥
				//str.Format( "nation_name = %s\n", "USA" );
				file.WriteString(str);	//家胶瘤沥
				file.WriteString("beta_server = 0\n");		//家胶瘤沥


				file.WriteString("[network]\n");
				str.Format("path=%s\n",m_pApp->m_szGameServerDataPath[ pView->m_nCurServerSet ]);
				file.WriteString(str);

				str.Format("mapname=%s\n\n",pInfo->MapName);
				file.WriteString(str);
				
				file.WriteString("[server_info]\n");
				str.Format("own_server_ip_for_server=%s\n",pInfo->Ip);
				file.WriteString(str);

				str.Format("own_server_port_for_server=%d\n",pInfo->Port);
				file.WriteString(str);

				file.WriteString("own_server_ip_for_user=\n");
				file.WriteString("own_server_port_for_user=\n");
				
				//proxy辑滚 茫扁..
				int proxy=0;
				for(int j=0; j<m_pApp->m_ServerSetInfo[ si ].nServerNum ; j++)
				{
					pInfo2 = &m_pApp->m_ServerInfo[si][j];
					if(pInfo2->ServerType == 0)
					{
						proxy = j;
						break;
					}
				}
				pInfo2 = &m_pApp->m_ServerInfo[si][proxy];

				str.Format("primary_proxy_server_ip=%s\n",pInfo2->Ip);
				file.WriteString(str);


				str.Format("primary_proxy_server_port=%d\n",pInfo2->Port);
				file.WriteString(str);
				
				str.Format("secondary_proxy_server_ip=%s\n",pInfo2->Ip);
				file.WriteString(str);
				
				file.WriteString("secondary_proxy_server_port=3002\n\n");
	
				file.WriteString("[option]\n");
				file.WriteString("DisconnectAccelatorUser=1\n\n");
				file.WriteString("LogPath=..\\LogOutput\n\n"); // 030805 kyo
				
				file.Close();
						
			}
			break;
		}
	}//for巩 场

	::ShellExecute(m_hWnd, NULL, m_pApp->m_szIniMakePath, NULL, NULL, SW_SHOWNORMAL);
}

CString CServerPatch::GetWriteFolder(int ServerSetNum, int i)
{
	ServerSetNum;

	CServerView* pView = (CServerView*)GetParent();
	int si = pView->m_nCurServerSet;	//ServerIndex(si)

	//IP弃歹 啊 乐绰瘤 绝绰瘤甫 炼荤茄促. 
	CFileFind finder;
	CString destpath,foldername;

	
	ServerInfo* pInfo = &m_pApp->m_ServerInfo[si][i];


	destpath.Format("%s\\%s(%s)",m_pApp->m_szIniMakePath, pInfo->Ip, pInfo->MachineName);
	foldername.Format("%s(%s)", pInfo->Ip,pInfo->MachineName);


	BOOL bWorking = finder.FindFile(destpath);
	BOOL FolderExist = 0;
	while(bWorking)
	{
		bWorking = finder.FindNextFile();
		
		if(finder.IsDirectory() && !finder.IsDots() && finder.GetFileName() == foldername) 
		{
			FolderExist = 1;
		}
	}
	
	CString name;
	
	if(!FolderExist)
	{
		//父距 绝栏搁 IP狼 弃歹甫 货肺  父电促.
		name.Format("%s\\%s(%s)",m_pApp->m_szIniMakePath, pInfo->Ip,pInfo->MachineName);
		if(!::CreateDirectory((LPCTSTR)name,NULL))
		{
			AfxMessageBox("Failure to Create Folder.");
			return "";
		}

		
		//角青 颇老 汗荤 
		CString source, dest;
	
		//int type = pInfo->ServerType; 
		//角青 颇老疙父 眠免 
//		CString	 ExeFile = m_pApp->m_szServerFile[ type ].Right( m_pApp->m_szServerFile[ type ].GetLength() - m_pApp->m_szServerFile[ type ].ReverseFind('\\') - 1);
		
//		dest.Format("%s\\%s",destpath,ExeFile);
//		::CopyFile((LPCTSTR)m_pApp->m_szServerFile[type],(LPCTSTR)dest,FALSE);
		//
		
	}
	else
	{
		name.Format("%s\\%s(%s)",m_pApp->m_szIniMakePath, pInfo->Ip, pInfo->MachineName);
	}

	finder.Close();
	return name;
}


BOOL CServerPatch::CheckExistSelectedList(WORD wPort)
{
	WORD port;
	int count = c_SelectList.GetItemCount();

	for(int i=0; i<count ; i++)
	{
		port = (WORD)atoi(c_SelectList.GetItemText( i,1));//"辑滚疙", "器飘" , "惑怕", "辑滚鸥涝", "矫胶袍"	
			
		if(wPort == port)	return TRUE;
	}
	
	return FALSE;
}

void CServerPatch::OnDownloadPath() 
{
	if( !RIGHT(MASK_14) )	return;
	// TODO: Add your control notification handler code here
	CServerView* pView = (CServerView*)GetParent();
	CSetDownloadPathDlg dlg;
	dlg.m_nCurServerSet = pView->m_nCurServerSet;
	dlg.m_pPatchDlg = this;
	dlg.DoModal();
}

void CServerPatch::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 CServerPatch::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 CServerPatch::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 CServerPatch::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);
			//Ip
			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();
/*	int nItem,port,i=0,count=0;
	LVITEM item;
	char str[128];	
	char* type[4] = {"PROXY","AGENT","DBDEMON","MAP"};


	count = c_SelectList.GetItemCount();

	while(count > 0)
	{
		nItem = c_SelectList.GetNextItem( -1, LVNI_ALL);
		if( nItem < 0 ) break;

		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.DeleteItem(nItem);

			//盖 关栏肺 胶农费官 捞悼..
			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));

		}
		count--; 
	}
*/
/*


	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;				//凯锅龋 

⌨️ 快捷键说明

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