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

📄 mainfrm.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		//秦寸 辑滚悸 橇遏矫 辑滚俊 立加 救等惑怕 
		MessageBox("Not connected nServerIndex...");		
	}

/*
	m_pApp->m_nNewServersetIndex = nServerSetIndex;		//橇废矫俊 货沥焊 夸没且锭 bOpenTemplate 啊 1牢版快
														//览翠皋技瘤甫 罐篮促澜 捞 函荐俊 悸泼等 
														//ServerSet栏肺 肺靛矫挪促. 
	if(m_pApp->m_nCI[ nServerSetIndex - 1 ])
	{
		//秦寸 辑滚悸俊 辑滚 沥焊 夸没 
		PACKET_REQUEST_ALL_SUBSERVER_INFO packet(TRUE);	//牢磊蔼捞 TRUE捞搁 辑滚沥焊甫 罐疽阑锭 辑滚 袍敲复阑 肺靛茄促.
		g_pNet->Send(m_pApp->m_nCI[ nServerSetIndex - 1 ], (char*)&packet, packet.GetPacketSize());
	}
	else
	{
		//秦寸 辑滚悸 橇遏矫 辑滚俊 立加 救等惑怕 
		MessageBox("Not connected nServerIndex...");		
	}
	rope
*/
}

CServerView* CMainFrame::FindServerView(int nServerSetIndex)	//0锅 惑侩, 1锅 秋墨匙胶, 2锅 俺惯磊 
{
	CMultiDocTemplate *pTemplate;
	CDocument *pDoc;
	CView *pView;
	CMDIChildWnd *pFrame;
	POSITION p,vp;
	CString title,id,view;

	POSITION pos = m_pApp->GetFirstDocTemplatePosition();

	while(TRUE)
	{
		pTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);
		if(!pos)	return NULL;

		p = pTemplate->GetFirstDocPosition();
		if(p == 0)	
		{
			return NULL;
		}

		while(TRUE)
		{
			pDoc = pTemplate->GetNextDoc(p);
			
			vp = pDoc->GetFirstViewPosition();
			pView = pDoc->GetNextView(vp);

			pFrame = (CMDIChildWnd*)pView->GetParentFrame();
			pFrame->GetWindowText(title);
			
			view = title.Mid(1,1);
			if(!view.Compare("S"))		//ServerView捞搁 
			{
				id = title.Mid(2,2);

				//泅犁 概俺函荐肺 林绢柳 ServerSet肺 嘎眠绢廉 乐绰 View啊 乐促搁 蔼阑 府畔 
				if(((CServerView*)pView)->m_nCurServerSet == nServerSetIndex)
				{
					return (CServerView*)pView;
				}
			}
			if(p == 0)	break;		//捞霸 付瘤阜 档钮刚飘烙..
		}
	}

	return NULL;
}

//秦寸 辑滚悸狼 葛电 轰甫 茫酒辑 Connect 惑怕甫 Setting 茄促. 
void CMainFrame::SetAllServerViewConnectInfo(BOOL connect, int nServerSetIndex)
{
	_ASSERTE( 0 <= nServerSetIndex ); //kyo

	CMultiDocTemplate *pTemplate;
	CDocument *pDoc;
	CServerView *pView;
	CMDIChildWnd *pFrame;
	POSITION p,vp;
	CString title,view;

	POSITION pos = m_pApp->GetFirstDocTemplatePosition();

	while(TRUE)
	{
		pTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);
		if(!pos)	return;

		p = pTemplate->GetFirstDocPosition();
		if(p == 0)	
		{
			return;
		}

		while(TRUE)
		{
			pDoc = pTemplate->GetNextDoc(p);
			
			vp = pDoc->GetFirstViewPosition();
			pView = (CServerView*)pDoc->GetNextView(vp);

			pFrame = (CMDIChildWnd*)pView->GetParentFrame();
			pFrame->GetWindowText(title);
			
			view = title.Mid(1,1);
			if(!view.Compare("S"))		//ServerView捞搁 
			{
				//泅犁 概俺函荐肺 林绢柳 ServerSet肺 嘎眠绢廉 乐绰 View啊 乐促搁 蔼阑 府畔 
				if(pView->m_nCurServerSet == nServerSetIndex)
				{
					if(connect)
					{
						pView->m_szConnectInfo = "Connected";
						pView->UpdateData(FALSE);
						pView->c_ProxyConnect.EnableWindow(FALSE);
					}
					else
					{
						pView->m_szConnectInfo = "Disconnected";
						pView->UpdateData(FALSE);
						pView->c_ProxyConnect.EnableWindow(TRUE);
					}

				}
			}
			if(p == 0)	break;		//捞霸 付瘤阜 档钮刚飘烙..
		}
	}
	return;
}




LONG CMainFrame::OnTrayNotification(UINT wParam, LONG lParam)
{
	return m_TrayIcon.OnTrayNotification(wParam, lParam);
}

void CMainFrame::OnTrayExit() 
{
	// TODO: Add your command handler code here
	//	PostMessage(WM_SYSCOMMAND,SC_CLOSE);
	CMainFrame::OnClose();
}

void CMainFrame::OnTrayShow() 
{
	// TODO: Add your command handler code here
	ShowWindow(SW_SHOW);
}

void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) 
{
	// TODO: Add your message handler code here and/or call default
	if(nID == SC_CLOSE)
    {
	//累诀惑狼 祈狼甫 困秦 泪瘪 官肺 辆丰窍绰吧肺 窍磊..
		if(nID == SC_CLOSE)
			m_pApp->HideApplication();
		return;		
    } 
	CMDIFrameWnd::OnSysCommand(nID, lParam);
}


void CMainFrame::AlarmStart()
{
	char path[ MAX_PATH ];
//	sprintf(path,"%s\\Down.wav",m_pApp->GetInstalledPath());
	sprintf(path,"./Down.wav","");
	
	sndPlaySound(path,SND_ASYNC | SND_LOOP);
}

void CMainFrame::AlarmStop()
{
	sndPlaySound(NULL,SND_ASYNC);
}

void CMainFrame::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	switch(nIDEvent)
	{
	case 1:
		{
			if(m_nEmergency == 1)
			{
				m_TrayIcon.SetIcon(IDI_SOUND);
				m_nEmergency = 2;			//2锅捞 IDI_SOUND
			}else if(m_nEmergency == 2)
			{
				m_TrayIcon.SetIcon(IDI_SERVERDOWN);
				m_nEmergency = 1;	//1锅捞 IDI_SERVERDOWN栏肺 窍磊 
			}
		}
		break;

	}
	CMDIFrameWnd::OnTimer(nIDEvent);
}

void CMainFrame::OnServer() 
{
	//<! BBD 040330
	if(m_pServerFrame)	// 见败稠 磊侥捞 粮犁窍绊
	{
//		CServerView * pView = (CServerView * )m_pServerFrame->GetActiveView();
		
//		if(pView->m_bIsUMS)		// 弊 磊侥捞 UMS龙阑 窍绊 乐栏搁
//		{
			m_pServerFrame->ShowWindow(TRUE);	// 乐绰 芒阑 傲 焊咯霖促
			return;
//		}
	}

	OnServerNew();	// 货 磊侥阑 父甸磊
	//> BBD 040330
	//Server Template Load
/*	
	int nServersetIndex;
	//DefaultServerSet阑 汲沥 救沁栏搁  
	if(m_pApp->m_DefaultServerSetIndex == 0)
	{
		CSelectServersetDlg dlg;

		nServersetIndex = dlg.DoModal();
	//	m_pApp->m_DefaultServerSetIndex = nServersetIndex;
	//		m_pApp->m_nNewServersetIndex = nServersetIndex;	//橇废矫俊 货沥焊 夸没且锭 bOpenTemplate 啊 1牢版快
														//览翠皋技瘤甫 罐篮促澜 捞 函荐俊 悸泼等 
														//ServerSet栏肺 肺靛矫挪促. 
	}
	else
		nServersetIndex = m_pApp->m_DefaultServerSetIndex;
*/
	
//	m_pApp->OpenServerTemplate();
/*

	CMultiDocTemplate* pDocTemplate;

	//Server Template Load
	POSITION pos = m_pApp->GetFirstDocTemplatePosition();
	pDocTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);
	CDocument* pDoc = pDocTemplate->OpenDocumentFile(NULL);

	POSITION vp = pDoc->GetFirstViewPosition();
	CServerView *pView = (CServerView*)pDoc->GetNextView(vp);	//泅犁 Open茄 Document狼 View 器牢磐 

	if(m_pApp->m_nCI[ pView->m_nCurServerSet ])
	{
		//秦寸 辑滚悸俊 辑滚 沥焊 夸没 
		PACKET_REQUEST_ALL_SUBSERVER_INFO packet(TRUE, m_pApp->m_ServerDocCount);	//牢磊蔼捞 TRUE捞搁 货肺款 Frame Open沁阑锭狼 Ruest捞促..
		g_pNet->Send(m_pApp->m_nCI[ pView->m_nCurServerSet ], (char*)&packet, packet.GetPacketSize());

		PACKET_REQUEST_ALL_LISTENER_INFO packet3;
		g_pNet->Send(m_pApp->m_nCI[ pView->m_nCurServerSet ], (char*)&packet3, packet3.GetPacketSize());

	}
	else
	{
		//秦寸 辑滚悸 橇遏矫 辑滚俊 立加 救等惑怕 
		//MessageBox("Not connected nServerIndex...");		
		TRACE0( "Not connected nServerIndex..." );
	}
*/	
}

void CMainFrame::OnCharacter() 
{
	// TODO: Add your command handler code here
//kyo
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif
	
	OnCharacterNew();
/*
	CMultiDocTemplate *pDocTemplate;
	CRMToolApp *pApp = (CRMToolApp*)AfxGetApp();

	POSITION pos = pApp->GetFirstDocTemplatePosition();
	pDocTemplate = (CMultiDocTemplate*)pApp->GetNextDocTemplate(pos);	//Server Template
	pDocTemplate = (CMultiDocTemplate*)pApp->GetNextDocTemplate(pos);	//Character Template
	pDocTemplate->OpenDocumentFile(NULL);
	*/
}

void CMainFrame::OnCharacterConfigure() 
{
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif
//<! BBD Test
	if( !RIGHT( MASK_2) ) return;

	CMultiDocTemplate *pDocTemplate;

	POSITION pos = m_pApp->GetFirstDocTemplatePosition();
	pDocTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);
	pDocTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);	//Character Template
	pDocTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);	//Char Mgr Templeate
	CDocument* pDoc = pDocTemplate->OpenDocumentFile(NULL);

	POSITION vp = pDoc->GetFirstViewPosition();
	CCharMgrView *pView = (CCharMgrView*)pDoc->GetNextView(vp);	//泅犁 Open茄 Document狼 View 器牢磐 

//	MessageBox("No Used");	
//> BBD Test
}


void CMainFrame::OnServerConfigure() 
{
	// TODO: Add your command handler code here
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif

	if( !RIGHT( MASK_3 )) return;

	CServerConfigureDlg dlg;
	dlg.DoModal();
}

void CMainFrame::OnAdminMode() 
{
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif

	// TODO: Add your command handler code here
	if( !RIGHT(MASK_5) ) 
		return;
	
	//CAdminDlg dlg;
	cAdmindlg.DoModal();
}

//皋春
void CMainFrame::OnServerNew() 
{
	// TODO: Add your command handler code here
	if( !RIGHT( MASK_1 ) ) return;

	CMultiDocTemplate* pDocTemplate;

	//Server Template Load
	POSITION pos = m_pApp->GetFirstDocTemplatePosition();
	pDocTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);
	CDocument* pDoc = pDocTemplate->OpenDocumentFile(NULL);

	POSITION vp = pDoc->GetFirstViewPosition();
	CServerView *pView = (CServerView*)pDoc->GetNextView(vp);	//泅犁 Open茄 Document狼 View 器牢磐 

	m_pServerFrame = (CChildFrame *)GetActiveFrame();		// BBD 040330

	if(m_pApp->m_nCI[ pView->m_nCurServerSet ])
	{
		//秦寸 辑滚悸俊 辑滚 沥焊 夸没 
		PACKET_REQUEST_ALL_SUBSERVER_INFO packet(TRUE, m_pApp->m_ServerDocCount);	//牢磊蔼捞 TRUE捞搁 货肺款 Frame Open沁阑锭狼 Ruest捞促..
		g_pNet->Send(m_pApp->m_nCI[ pView->m_nCurServerSet ], (char*)&packet, packet.GetPacketSize());
	}
	else
	{
		//秦寸 辑滚悸 橇遏矫 辑滚俊 立加 救等惑怕 
		MessageBox("Not connected nServerIndex...");		
	}

	
}

//皋春 
void CMainFrame::OnCharacterNew() 
{
	// TODO: Add your command handler code here
//kyo
#ifdef __COMPACT__
	AfxMessageBox( "RUN Only Full_version");
	return;
#endif

	if( !RIGHT( MASK_2) ) return;

	CMultiDocTemplate *pDocTemplate;
	CRMToolApp *pApp = (CRMToolApp*)AfxGetApp();

	POSITION pos = pApp->GetFirstDocTemplatePosition();
	pDocTemplate = (CMultiDocTemplate*)pApp->GetNextDocTemplate(pos);	//Server Template
	pDocTemplate = (CMultiDocTemplate*)pApp->GetNextDocTemplate(pos);	//Character Template
	pDocTemplate->OpenDocumentFile(NULL);
}



void CMainFrame::Chime()
{
	char path[ MAX_PATH ];
	//sprintf(path,"%s\\30.wav",m_pApp->GetInstalledPath());
	//sprintf(path,"./30.wav","");
	sprintf(path,"./30.wav");
	sndPlaySound(path,SND_ASYNC);
}

CServerView* CMainFrame::GetServerView()
{

	//积己磊俊 糕滚蔼阑 汲沥沁促.m_pApp = (CRMToolApp*)AfxGetApp();
	CMultiDocTemplate* pDocTemplate;

	POSITION pos = m_pApp->GetFirstDocTemplatePosition();
	pDocTemplate = (CMultiDocTemplate*)m_pApp->GetNextDocTemplate(pos);
	CDocument* pDoc = pDocTemplate->OpenDocumentFile(NULL);

	POSITION vp = pDoc->GetFirstViewPosition();
	CServerView *pView = (CServerView*)pDoc->GetNextView(vp);

	_ASSERTE( NULL != pView );

	return pView;
}

void CMainFrame::SetRMServerInfo(QueryServerInfo *pServerInfo, int setnum)
{
	if( m_iAncient != setnum )
	{
		m_iAncient = setnum;
		m_iCount = 0;
	}

	CRMToolApp *pApp = (CRMToolApp*)AfxGetApp();
	memcpy( &(pApp->m_ServerInfo[ setnum ][ m_iCount++]), (void*)pServerInfo, sizeof( QueryServerInfo ));
	pApp->m_ServerSetInfo[ setnum ].nServerNum = m_iCount;

}

int CMainFrame::GetServerSetNumByServerSetIndex( int nServerSetIndex )
{
	for( int i=0; i < CURRENT_SERVERSET_NUM; i++)
		if( nServerSetIndex == g_NationAccount.iDragon_DB_ServerIndex[ i ] )
			return i;
	return -1;
}

void CMainFrame::OnTestfunction() 
{
	// TODO: Add your command handler code here
#ifdef __KOYANGHI__
	CAccountAuthority cAuthority;
	cAuthority.DoModal();
#endif
}

//////////////////////////////////////////////////////////////////////////////////////
// BBD 040105	
// 窃荐疙	: InitRMServerStatus()
// 扁瓷		: RM_SERVER_STATUS狼 粮犁蜡公甫 犬牢窍绊 敲贰弊甫 悸泼茄促.
//////////////////////////////////////////////////////////////////////////////////////
bool CMainFrame::InitRMServerStatus()
{
	char szQuery[ 1024 ];
	WCHAR wszQuery[ 1024 ];

	// 抛捞喉狼 粮犁蜡公 眉农
	sprintf(szQuery, "if exists (select * from sysobjects where name = 'RM_SERVER_STATUS' and type = 'u') "
		" select 1 else select 0 ");
	g_pDb->KSCToUnicode(szQuery,wszQuery);
	
	int result = 0;
	int ret = g_pDb->OpenRecord(wszQuery, &result, 1,  TOTAL_DB);
	if(!ret)
	{
		return false;		// 孽府 角菩
	}

	if(result)	// 捞函荐俊 抛捞喉狼 粮犁啊 魄窜登绢 乐促
	{
		m_bUseRmServerStatusTBL = true;
	}
	else
	{
		m_bUseRmServerStatusTBL = false;
	}
	
	return true;
}

//////////////////////////////////////////////////////////////////////////////////////
// BBD 040105	
// 窃荐疙	: RefreshRMServerStatus()
// 扁瓷		: m_pApp->m_ServerInfo狼 郴侩阑 RM_SERVER_STATUS俊 诀单勒 矫难霖促.
//////////////////////////////////////////////////////////////////////////////////////
bool CMainFrame::RefreshRMServerStatus()
{
	if(!m_bUseRmServerStatusTBL)	// 抛捞喉捞 绝绰 惑怕捞骨肺 鞠老档 且霸 绝促
	{
		return true;
	}
	
	char szQuery[ 1024 ];
	WCHAR wszQuery[ 1024 ];

	for(int i = 0; i < MAX_SERVERSET_NUM; i++)
	{
		for(int j = 0; j < MAX_SERVERNUM_PER_SERVERSET; j++)
		{
			sprintf(szQuery, "Update RM_SERVER_STATUS set ServerStatus=%d where Port = %d"
				, m_pApp->m_ServerInfo[ i ][ j ].dwStatus, m_pApp->m_ServerInfo[ i ][ j ].Port);
			g_pDb->KSCToUnicode(szQuery,wszQuery);

			int ret = g_pDb->ExecuteSQL(wszQuery, TOTAL_DB);
			
			if(!ret)
			{
				return false;
			}
		}
	}


	return true;
}

⌨️ 快捷键说明

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