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

📄 serverpatch.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
									
				CString szTemp, szTemp2;
				szTemp = m_pApp->m_szDownloadPath[ pView->m_nCurServerSet ];
				char drive = szTemp.GetAt(0);
				szTemp2 = szTemp.Mid(3, szTemp.GetLength() - 3);
				
				//促弗累诀甸肺 牢秦 老何 Listener狼 促款肺靛 版肺啊 函版登菌阑 啊瓷己捞 乐栏骨肺 老褒利栏肺 嘎苗林磊..
				PACKET_SET_DOWNLOAD_PATH packet3(drive, szTemp2.GetBuffer(szTemp2.GetLength()));		
				g_pFt->Send((char*)&packet3, (unsigned short)packet3.GetPacketSize());

				//器飘 罐酒坷绊..
				c_SelectList.GetItemText(i, 1, str, 128);
				WORD wPort = (WORD)atoi(str);

				//角青窍扼绰 皋技瘤 傈价 ...      
				PACKET_LISTENER_SERVER_EXCUTE packet4(0, wPort, m_szExeName.GetBuffer( filelen ));
				g_pFt->Send((char*)&packet4, (unsigned short)packet4.GetPacketSize());
											
				g_pFt->CloseClientSocket();			
				
				count = 1;
			}
		}

		//恐 辑滚肺 楷搬窍绰啊? 
		g_pNet->Send(GetConnection(), packet2, offset);
		//g_pNet->Send(m_pApp->m_nCI[ pView->m_nCurServerSet ], packet2, offset);
		
		
#ifdef RM_LOG_MODE
	CString str2;	str2.Format("ServerPatch :: Execute Server!(Applied: %d) -> Server: %d", count, m_nRadioExecute);
	m_pApp->LogServer(pView->m_nCurServerSet, str2);
#endif
}

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

	if( !RIGHT(MASK_14) )	return;

	int count = c_SelectList.GetItemCount();
	
	if(count == 0)
	{
		MessageBox("Select Server to Create");
		return;
	}
	
	CServerView* pView = (CServerView*)GetParent();


	//弃歹甫 厚款促...  蓖满栏聪 肯傈促 昏力饶 积己..ぱ_-;;
	m_pApp->DelTree(m_pApp->m_szIniMakePath.GetBuffer(m_pApp->m_szIniMakePath.GetLength()));
	::CreateDirectory(m_pApp->m_szIniMakePath.GetBuffer(m_pApp->m_szIniMakePath.GetLength()), NULL);
		
	//绢恫 辆幅狼 角青 颇老墨乔啊 鞘夸茄瘤 眉农..
	int nTypeCheck[4] = {0,};
	char str[ 128 ];
	

	for(int i=0; i<count ; i++)
	{
		c_SelectList.GetItemText(i,3,str,128);//"辑滚疙", "器飘" , "惑怕", "辑滚鸥涝", "矫胶袍"	

		if(!strcmp(str,"PROXY"))	nTypeCheck[0] = 1;
		else if(!strcmp(str,"AGENT"))	nTypeCheck[1] = 1;
		else if(!strcmp(str,"DBDEMON"))	nTypeCheck[2] = 1;
		else if(!strcmp(str,"MAP"))	nTypeCheck[3] = 1;
	}

	//眉农茄 搬苞甫 啊瘤绊 傈价俊 鞘夸茄 辑滚 颇老甸 汗荤 
	for(i=0; i<4 ; i++)
	{
		if(nTypeCheck[i])
		{
			CString	 ExeFile = m_pApp->m_szServerFile[ pView->m_nCurServerSet ][i].Right( m_pApp->m_szServerFile[ pView->m_nCurServerSet ][i].GetLength()
								- m_pApp->m_szServerFile[ pView->m_nCurServerSet ][i].ReverseFind('\\') - 1);
			char temp[ MAX_PATH ];
			sprintf(temp,"%s\\%s",m_pApp->m_szIniMakePath, ExeFile);
			
			::CopyFile(m_pApp->m_szServerFile[ pView->m_nCurServerSet ][i], temp, FALSE);
		}
	}


	//ini 颇老苞 弃歹 积己 苞沥 
	//CString SourceFilePath = "d:\\SourceFile";
	
	int si = pView->m_nCurServerSet;	//ServerIndex(si)
	if(si < 0)		return;

	ServerInfo *pInfo = NULL;
	ServerInfo *pInfo2 = NULL;
	
	for(i=0; i< m_pApp->m_ServerSetInfo[ si ].nServerNum ; i++)
	{
	
		pInfo = &m_pApp->m_ServerInfo[si][i];
		
		if(!CheckExistSelectedList( (WORD)pInfo->Port ))
			continue;
		
		switch(pInfo->ServerType)
		{
		//Proxy Server	
		case 0:		
			{
				CStdioFile	file;
	

				CString	destpath;
				
				destpath.Format("%s\\proxy%d",GetWriteFolder(2,i), pInfo->Port);	//器飘锅龋肺 弃歹 积己窍扁 困茄 巩磊凯 

			
				if(!::CreateDirectory((LPCTSTR)destpath,NULL))
				{
					AfxMessageBox("Faillure to Create Folder.");
					return;
				}
		
				destpath += "\\proxyserver.ini";	//积己且 颇老疙篮 proxyserver.ini

				if (file.Open(destpath, CFile::modeCreate | CFile::modeWrite, NULL)==FALSE)
				{
					AfxMessageBox("Failure to Create 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("[server_set_info]\n");
				
				int nSet = g_NationAccount.iDragon_DB_ServerIndex[ si ];
				//if(si == 2)
				//	nSet = 100;		//海鸥辑滚(俺惯磊)
				//else
				//	nSet = si+1;	
			
				str.Format("own_server_set_number = %d\n",nSet);
				file.WriteString(str);
				file.WriteString("default_max_user_can_login = 3000\n");
				file.WriteString("default_max_user_can_login_per_sec = 5\n\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);
				
				str.Format("own_server_ip_for_user=%s\n",pInfo->Ip);
				file.WriteString(str);
				file.WriteString("own_server_port_for_user=9000\n");
				file.WriteString("primary_proxy_server_ip=\n");
				file.WriteString("primary_proxy_server_port=\n");
				file.WriteString("secondary_proxy_server_ip=\n");
				file.WriteString("secondary_proxy_server_port=\n\n");

				//唱吝俊 瘤快磊..  救镜何盒 
				/*
				file.WriteString("[server_manager]\n");
				file.WriteString("num_of_available_manager_ip = 9\n");
				file.WriteString("manager_ip0 = 203.227.17.17\n");
				file.WriteString("manager_ip1 = 203.227.17.4\n");
				file.WriteString("manager_ip2 = 203.227.17.5\n");
				file.WriteString("manager_ip3 = 203.227.17.10\n");
				file.WriteString("manager_ip4 = 203.227.17.11\n");
				file.WriteString("manager_ip5 = 211.55.70.116\n");
				file.WriteString("manager_ip6 = 211.55.70.63\n");
				file.WriteString("manager_ip7 = 203.227.17.103\n");
				file.WriteString("manager_ip8 = 203.227.17.104\n\n");
				//
				*/

				file.WriteString("[external_server_info]\n");
				str.Format("num_of_external_servers = %d\n\n", m_pApp->m_ServerSetInfo[ si ].nServerNum - 1);
				file.WriteString(str);

				file.WriteString(";/////////////// agent ///////////////\n\n");
				
				int count = 0;
				
				for(int j=0; j < m_pApp->m_ServerSetInfo[ si ].nServerNum; j++)
				{
					
					pInfo2 = &m_pApp->m_ServerInfo[si][j];

					if(pInfo2->ServerType == 1)	//Agent 辑滚父 
					{
					str.Format(";%s\n",pInfo2->MachineName);
					file.WriteString(str);

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

					str.Format("external_server_port%d = %d\n",count, pInfo2->Port);
					file.WriteString(str);

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

					str.Format("external_server_port_for_user%d = 9000\n",count);
					file.WriteString(str);

					count++;
					}
				}


				file.WriteString("\n;/////////////// DB ///////////////\n\n");

				for(j=0; j < m_pApp->m_ServerSetInfo[ si ].nServerNum; j++)
				{
					pInfo2 = &m_pApp->m_ServerInfo[si][j];

					if(pInfo2->ServerType == 2)	//DB Demon父 
					{
					str.Format(";%s\n",pInfo2->MachineName);
					file.WriteString(str);

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

					str.Format("external_server_port%d = %d\n",count, pInfo2->Port);
					file.WriteString(str);

					count++;
					}
				}

				file.WriteString("\n;/////////////// maps ///////////////\n\n");

				for(j=0; j < m_pApp->m_ServerSetInfo[ si ].nServerNum; j++)
				{
					pInfo2 = &m_pApp->m_ServerInfo[si][j];

					if(pInfo2->ServerType == 3)	//DB Demon父 
					{
					str.Format(";%s\n",pInfo2->MachineName);
					file.WriteString(str);

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

					str.Format("external_server_port%d = %d\n",count, pInfo2->Port);
					file.WriteString(str);

					count++;
					}
				}

				file.WriteString("\n[RMTool_Info]\n");
			
				CertainIPList iplist[20];	memset(iplist,0,sizeof(iplist));
				int ret = g_pDb->OpenRecord(L"Select IP from rm_log_info where LoginType >= 100", iplist, 20, (BYTE)TOTAL_DB);

				str.Format("CertainIPNum = %d\n",ret);
				file.WriteString(str);
				for(int i=0; i<ret; i++)
				{
					str.Format("CertainIP%d = %s\n",i+1,iplist[i].ip);
					file.WriteString(str);
				}

				file.Close();

			}	//case 0:
			break;
		//Agent Server
		case 1:		
			{
				CStdioFile	file;
				
				CString	destpath;
				destpath.Format("%s\\agent%d",GetWriteFolder(2,i), 
									pInfo->Port);	//器飘锅龋肺 弃歹 积己窍扁 困茄 巩磊凯 

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

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

				if (file.Open(destpath, CFile::modeCreate | CFile::modeWrite, NULL)==FALSE)
				{
					AfxMessageBox("failure to Create 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("[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);

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

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

					if(pInfo2->ServerType == 0)
					{
						proxy = j;
						break;
					}
				}

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


				str.Format("primary_proxy_server_port=%d\n",m_pApp->m_ServerInfo[si][proxy].Port);
				file.WriteString(str);
				
				str.Format("secondary_proxy_server_ip=%s\n",m_pApp->m_ServerInfo[si][proxy].Ip);
				file.WriteString(str);
				
				file.WriteString("secondary_proxy_server_port=3002\n\n");
				
				file.WriteString("[debug]\n");
				file.WriteString("makemode = 1\n");
				file.WriteString("pc_neverdie = 1\n");

				file.Close();
			}
			break;
		//DB Demon
		case 2:		
			{
				CStdioFile	file;
				
				CString	destpath;
				destpath.Format("%s\\db%d",GetWriteFolder(2,i), 
									pInfo->Port);	//器飘锅龋肺 弃歹 积己窍扁 困茄 巩磊凯 

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

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

				if (file.Open(destpath, CFile::modeCreate | CFile::modeWrite, NULL) == FALSE)
				{
					AfxMessageBox("Failure to Create 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;
					}

⌨️ 快捷键说明

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