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

📄 serverview.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	if( !RIGHT(MASK_1) )	return;

	DWORD dwConnectionIndex = g_pNet->ConnectToServer(m_pApp->m_ProxyIp[ m_nCurServerSet ] , m_pApp->m_ProxyPort[ m_nCurServerSet ] );
	/*
	if( !dwConnectionIndex  )
	{
		char str[0xff];
		sprintf(str,"Fail to connect proxyserver");
		MessageBox(str,"Error",MB_OK);
		return;
	}
*/
	m_pApp->m_nCI[ m_nCurServerSet ] = (unsigned short)dwConnectionIndex;

	//Proxy Server俊 肺弊牢 
	MANAGER_PACKET_HEADER packet1;
	packet1.wCMD = MANAGER_CLIENT_FIRST_PACKET_TYPE;
	packet1.dwCRC = MANAGER_CLIENT_FIRST_PACKET_CRC;
	g_pNet->Send(m_pApp->m_nCI[ m_nCurServerSet ], (char*)&packet1, sizeof(packet1));

	PACKET_RM_LOGIN packet(m_pApp->m_LogInfo.ID, m_pApp->m_LogInfo.Name);
	if( !g_pNet->Send(m_pApp->m_nCI[ m_nCurServerSet ], (char*)&packet,packet.GetPacketSize()) )
	{
		char str[0xff];
		sprintf(str,"Fail to connect proxyserver");
		MessageBox(str,"Error",MB_OK);
	}
}

DWORD CServerView::GetConnection()
{
	return m_pApp->m_nCI[ m_nCurServerSet ];
}

void CServerView::SetBaseClientSize(CTabCtrl *pCtrl)
{
	CRect TabRect,ItemRect;			//TabRect篮 徘 牧飘费 傈眉 康开, ItemRect篮 困俊 徘何盒父..
	pCtrl->GetClientRect(&TabRect);
	pCtrl->GetItemRect(0, &ItemRect);
	
	int width,height;

	width = TabRect.Width() - 10;
	height = TabRect.Height() - ItemRect.Height() - 13;

	m_BaseRect.left = TabRect.left + 5;
	m_BaseRect.top = TabRect.top + 5 + 30/*Tab Control困俊 后沫 巢败初篮 父怒*/;
	m_BaseRect.right = m_BaseRect.left + width;
	m_BaseRect.bottom = m_BaseRect.top + height;

	m_ServerControlDlg.m_nPrevHeight = m_BaseRect.Height();
	m_ServerControlDlg.m_nPrevWidth = m_BaseRect.Width();
	m_ServerStatusDlg.m_nPrevHeight = m_BaseRect.Height();
	m_ServerStatusDlg.m_nPrevWidth = m_BaseRect.Width();
	m_ServerPatchDlg.m_nPrevHeight = m_BaseRect.Height();
	m_ServerPatchDlg.m_nPrevWidth = m_BaseRect.Width();

	m_nPrevWidth = m_BaseRect.Width();
	m_nPrevHeight = m_BaseRect.Height();
}

void CServerView::RemoveItemsFromAllListControl()
{
	m_ServerStatusDlg.c_ListenerStatusList.DeleteAllItems();
	m_ServerStatusDlg.c_MainStatusList.DeleteAllItems();
	m_ServerControlDlg.c_AllList.DeleteAllItems();
	m_ServerControlDlg.c_SelectList.DeleteAllItems();
	m_ServerPatchDlg.c_AllList.DeleteAllItems();
	m_ServerPatchDlg.c_SelectList.DeleteAllItems();
}


void CServerView::OnKeydownTabServer(NMHDR* pNMHDR, LRESULT* pResult) 
{
	TC_KEYDOWN* pTCKeyDown; pTCKeyDown = (TC_KEYDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}

void CServerView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	UpdateData(TRUE);
	m_dwCurrentTime = GetTickCount();

	static int UMSMaxTime = 3;	// BBD 040304 UMS 焊郴绰 冉荐
	static int UMSCurTime = 0;	// BBD 040304 UMS 焊辰 冉荐

	if( m_bIsUMS == true )
	{		
		//辑滚府胶飘 父甸扁 
		if( m_nCurServerSet == 0 ) //惑侩捞 酒聪搁 扁成 唱柯促. 
		if( 0 < GetServerDownList("DownList.txt") )
		{
			if( m_nUMSCounter < m_nUMS_FirstSendNum )
			{//贸澜促款
				m_nUMSCounter++;
				Send2DeveloperUMS("DownList.txt", "DeveloperList.txt");

				UMSCurTime++;	// BBD 040304 UMS 茄锅 焊晨

			}
			else if( m_nUMSCounter >= m_nUMS_FirstSendNum )
			{//拌加 促款吝
				if( m_dwCurrentTime > m_dwLoopTime + m_dwWaitTime )
				{
//<! BBD 040304	老沥冉荐父 皋矫瘤 焊郴霸 烹力
					if(UMSCurTime < UMSMaxTime)
					{
						Send2DeveloperUMS("DownList.txt", "DeveloperList.txt" );
						UMSCurTime++;
					}
//> BBD 040304	老沥冉荐父 皋矫瘤 焊郴霸 烹力
					m_dwLoopTime  = m_dwCurrentTime;
				}
			}
		}
	}
		
	CFormView::OnTimer(nIDEvent);
}

int CServerView::GetServerDownList( const char* szFilename)
{//促款等霸 绝栏搁 0 乐栏搁... 哪磐锅龋父 
	int nCount = m_ServerStatusDlg.c_MainStatusList.GetItemCount();
	CString szStatus, szList;
	
	CStdioFile csFile;
	if( !csFile.Open( szFilename, CFile::modeCreate|CFile::modeWrite, NULL ) )
	{
		//AfxMessageBox( "ERROR :: Cann't Open File !! \n CServerView::GetServerDownList");
		return 0;
	}

	int nDownNum = 0;
	for( int i=0; i<nCount; i++)
	{
		szStatus = m_ServerStatusDlg.c_MainStatusList.GetItemText(i, 2 );
		if( szStatus.Compare("O") != 0 && szStatus.Compare("R") != 0) 
		{//沥惑苞 Reload牢 版快甫 力寇窍绊绰 葛滴 辑滚促款栏肺 贸府窃.
			nDownNum++;
			/*
			szList.Format( "%s\t%s\t%s\t%s\n", m_ServerStatusDlg.c_MainStatusList.GetItemText(i,0), 
				m_ServerStatusDlg.c_MainStatusList.GetItemText(i,1), 
				m_ServerStatusDlg.c_MainStatusList.GetItemText(i,5), 
				m_ServerStatusDlg.c_MainStatusList.GetItemText(i,6) );
				*/
			szList.Format( "%s\t%s\t%s\n", m_ServerStatusDlg.c_MainStatusList.GetItemText(i,0), 
				m_ServerStatusDlg.c_MainStatusList.GetItemText(i,1),
				m_ServerStatusDlg.c_MainStatusList.GetItemText(i,5)
				);

			csFile.WriteString( szList );					
				//0 1 5 6 
		}
	}
	csFile.Close();

	return nDownNum;
}

void CServerView::InitUMS()
{
	m_nUMSCounter = 0;		// 泅犁 割锅 辰绰啊?
	m_nUMS_FirstSendNum = 3;		// 辑滚啊 促款登磊 付磊 割锅 皋矫瘤甫 焊尘巴牢啊.

	m_dwCurrentTime = GetTickCount();
	m_dwLoopTime = GetTickCount();
	m_dwWaitTime = LOOP_TIME * 30;			//倔付甫 扁促啡促啊 促矫 UMS甫 焊郴绰啊?
}

void CServerView::OnCheckUms() 
{
	// TODO: Add your control notification handler code here
	if( m_bIsUMS == true )
	{
		m_bIsUMS = false;
	}
	else
	{
		m_bIsUMS = true;
	}
	InitUMS();
}

void CServerView::MakeUMSMessageFull( const char* szDownList, CString& strUMSMessage)
{
	_ASSERTE( szDownList != NULL);
	FILE *fp;
	if( !(fp = fopen( szDownList, "r")) )
	{
		AfxMessageBox( "ERROR :: Cann't Read File !! \n CServerView::MakeUMSMessage");
		return;
	}
	char szToken[32];
	while(EOF!=fscanf(fp, "%s",szToken) )
	{		
		if(80 <= strUMSMessage.GetLength() ) 
		{
			fclose( fp);
			strUMSMessage.Empty();
			strUMSMessage.Format("DR_SERVER_DOWN ");
			MakeUMSMessageMin( szDownList, strUMSMessage);
			return;
		}
		strUMSMessage += szToken;
		strUMSMessage += " ";					

	}
	fclose(fp);
}

//void CServerView::MakeUMSMessageMin( const char* szDownList, char* strUMSMessage)
void CServerView::MakeUMSMessageMin( const char* szDownList, CString& strUMSMessage)
{
	_ASSERTE( szDownList != NULL );//&& strUMSMessage != NULL);
	FILE *fp;
	if( !(fp = fopen( szDownList, "r")) )
	{
		AfxMessageBox( "ERROR :: Cann't Read File !! \n CServerView::MakeUMSMessage");
		return;
	}
	char szToken[32];
	//string szToken;
	int nToken=0;
	while(1)
	{		
		memset( szToken,0, 32);//="\0";
		if( EOF!=fscanf(fp, "%s",szToken) )
		{
			if( nToken++ == 2)
			{				
				if( 0 > strUMSMessage.Find( szToken ) )			
				{
					if(80 <= strUMSMessage.GetLength() ) 
					{
						fclose( fp);
						strUMSMessage.Empty();
						strUMSMessage.Format("DR_SERVER_DOWN!! 咯矾辑滚狼 促款!!!!!");
						return;
					}
					strUMSMessage += szToken;
					strUMSMessage  += " ";					
				}
				nToken=0;
			}			
		}
		else
		{
			break;
		}		
	}
	fclose(fp);
}

void CServerView::Send2DeveloperUMS( const char* szDownList, const char* szDeveloperList)
{//DownList俊 乐绰 郴侩捞 80巩磊甫 逞绢啊搁 辑滚疙父 焊辰促. 弊贰档 逞绢啊搁 扁成 Down捞扼绊父 焊辰促.
	_ASSERTE( szDeveloperList != NULL && szDownList!=NULL );

	CString strUMSMessage= "DR_SERVER_DOWN!! ";
	MakeUMSMessageFull( szDownList, strUMSMessage);
	//MakeUMSMessageMin( szDownList, strUMSMessage);
	FILE *fp;
	if( !(fp = fopen( szDeveloperList, "r")) )
	{
		AfxMessageBox( "ERROR :: Cann't Read File !! \n CServerView::SendUMSMessage");
		return;
	}
	char szToken[32]; //
	char szUserInfo[4][32];
	int nToken=0;
	while(EOF!=fscanf(fp, "%s",szToken) )
	{			
		memset( szUserInfo[nToken], 0, 32 );
		strncpy(szUserInfo[nToken++], szToken, sizeof( szToken ) );
		if( nToken > 3 )
		{
			SendUMSMessage(szUserInfo[0],szUserInfo[1],szUserInfo[2],szUserInfo[3],strUMSMessage.GetBuffer(0));
			nToken=0;
		}

	}
	fclose(fp);
}

void CServerView::Send2DeveloperUMSOnly(char* strUMSMessage, const char* szDeveloperList)
{
	FILE *fp;
	if( !(fp = fopen( szDeveloperList, "r")) )
	{
		AfxMessageBox( "ERROR :: Cann't Read File !! \n CServerView::SendUMSMessage");
		return;
	}
	char szToken[32]; //
	char szUserInfo[4][32];
	int nToken=0;
	while(EOF!=fscanf(fp, "%s",szToken) )
	{			
		memset( szUserInfo[nToken], 0, 32 );
		strncpy(szUserInfo[nToken++], szToken, sizeof( szToken ) );
		if( nToken > 3 )
		{
			SendUMSMessage(szUserInfo[0],szUserInfo[1],szUserInfo[2],szUserInfo[3],strUMSMessage);
			nToken=0;
		}

	}
	fclose(fp);
}

void CServerView::SendUMSMessage( char* szPhone1,char* szPhone2,char* szPhone3, char* szName, char* szMessage)
{
	if( 4<strlen(szPhone1)||4<strlen(szPhone2)||4<strlen(szPhone3)||32<strlen(szName)||80<strlen(szMessage) )
	{
		return;
	}

//::MessageBoxPrintf( 0, "%s-%s-%s %s msg: %s",szPhone1, szPhone2, szPhone3, szName, szMessage);
//return;

	int nRet = SMSUnitSend ("esofnet",						//荤侩磊ID				(30)
					"俺惯评",							//荤侩磊疙				(16)
					"UK-IDW-WH",						//雀荤内靛
					"捞家橇齿",							//雀荤疙 (逞滚盔 雀盔老版快 password)
					"02",								//雀脚锅龋1				(4)
					"574",								//雀脚锅龋2				(4)
					"0498",								//雀脚锅龋3				(4)
					szName,								//荐脚磊疙				(32)
					szPhone1,							//龋免锅龋1				(4)
					szPhone2,							//龋免锅龋2				(4)
					szPhone3,							//龋免锅龋3				(4)
					szMessage,  //皋矫瘤	(80)
					"00000000",							//抗距老磊(YYYYMMDD)	(8)
					"000000",							//抗距矫埃(HHMMSS)		(6)
					300);								//老访锅龋				long
	LeaveLogInFile("AMS Message Result = %d", nRet );
	/*
	int nRet = SMSUnitSend ("esofnet",						//荤侩磊ID				(30)
					"款康评",							//荤侩磊疙				(16)
					"UK-IDW-WH",						//雀荤内靛
					"捞家橇齿",							//雀荤疙 (逞滚盔 雀盔老版快 password)
					"019",								//雀脚锅龋1				(4)
					"533",								//雀脚锅龋2				(4)
					"4916",								//雀脚锅龋3				(4)
					"咯矾盒",							//荐脚磊疙				(32)
					"019",								//龋免锅龋1				(4)
					"533",								//龋免锅龋2				(4)
					"4916",								//龋免锅龋3				(4)
					"呈 瘤阿窍绰芭 酒衬? 逞 蠢膊埃芭啊瓢叼..",  //皋矫瘤	(80)
					"00000000",							//抗距老磊(YYYYMMDD)	(8)
					"000000",							//抗距矫埃(HHMMSS)		(6)
					300);								//老访锅龋				long

  	switch(nRet)
	{
		case 1 :	//龋免己傍
			AfxMessageBox("SMS 窜焊傈价己傍");
			break;
		case 80 :	//捞烹荤锅龋 捞惑
			AfxMessageBox("SMS 窜焊傈价角菩 [捞烹荤锅龋捞惑]");
			break;
		case 78 :	//惫锅 肚绰 缔4磊府 捞惑
			AfxMessageBox("SMS 窜焊傈价角菩 [惫锅 or 缔4磊府 捞惑]");
			break;
		case 73 :	//固殿废 雀盔
			AfxMessageBox("SMS 窜焊傈价角菩 [固殿废 雀盔]");
			break;
		case 68 :	//绊按荤 内靛 捞惑
			AfxMessageBox("SMS 窜焊傈价角菩 [绊按荤 内靛 捞惑]");
			break;
		case 77 :	//龋免皋矫瘤 郴侩 绝澜
			AfxMessageBox("SMS 窜焊傈价角菩 [皋矫瘤绝澜]");
			break;
		case 84 :	//抗距老磊 捞惑
			AfxMessageBox("SMS 窜焊傈价角菩 [抗距老磊 捞惑]");
			break;
		case 82 :	//700, 800 陛瘤 诀眉
			AfxMessageBox("SMS 窜焊傈价角菩 [700, 800 陛瘤诀眉]");
			break;
		case 67 :	//儡咀 何练
			AfxMessageBox("SMS 窜焊傈价角菩 [儡咀 何练]");
			break;
		case 85 :	//龋免 URL 绝澜
			AfxMessageBox("SMS 窜焊傈价角菩 [龋免 URL 绝澜]");
			break;
		case 99 :	//扁鸥
			AfxMessageBox("SMS 窜焊傈价角菩 [扁鸥1]");
			break;
		case -1 :
			AfxMessageBox("匙飘况农 惑怕捞惑1");
			break;
		case -2 :
			AfxMessageBox("匙飘况农 惑怕捞惑2");
			break;
		case -3 :
			AfxMessageBox("匙飘况农 惑怕捞惑3");
			break;
		case -4 :
			AfxMessageBox("匙飘况农 惑怕捞惑4");
			break;
		case -5 :
			AfxMessageBox("匙飘况农 惑怕捞惑5");
			break;
		case -6 :
			AfxMessageBox("匙飘况农 惑怕捞惑6");
			break;
		default:
			AfxMessageBox("SMS 窜焊傈价角菩 [扁鸥2]");
			break;
	}
*/
}

BOOL CServerView::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	KillTimer(ID_UMS);
	return CFormView::DestroyWindow();
}


void CServerView::SendUMS_ProxyServerDown()
{
	Send2DeveloperUMSOnly("DR_SERVE_DOWN Proxy ServerDown!!!!!!!", "DeveloperList.txt");
}

⌨️ 快捷键说明

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