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

📄 dlgenemy.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 2 页
字号:


void CDlgEnemy::OnEnemyBtnFriend() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound("Sound/Dlg_Ok.wav");
	if(m_FriendListChk.GetCheckValue() ==1)
	{
		PopCurListChk();
		m_iShowMode = 0;
		m_AddBtn.EnableWindow();
		m_DlgEnmState.m_iShowMode = m_iShowMode;
		SetFriendList();
		m_DlgEnmState.EnableWindow(false);
		m_nCurrentQueryIndex = -1;		
	}
	else
	{
		m_FriendListChk.SetCheckValue(1);
	}
}

void CDlgEnemy::SetFriendList()
{
	m_DelStuBtn.ChangeImage("Button171");
	m_DelStuBtn.EnableWindow(true);
	
	CRect rect;
	CDlgEnemy::GetWindowRect(rect);
	CRect rectB;
	m_DelStuBtn.GetWindowRect(rectB);
	m_DelStuBtn.MoveWindow(108,294,rectB.Width(),rectB.Height(),false);
	m_DelStuBtn.ReInit(rect.left, rect.top );

	m_EnemyLstData.ResetContent ( ) ;

	int nAmount = g_objHero.GetFriendAmount () ;
	// Test the online Friend num
	int nOnline = 0 ;
	for (int i = 0; i < nAmount; i++)
	{
		CFriend* pFriend = g_objHero.GetFriendByIndex ( i ) ;
		if ( pFriend && pFriend->IsOnline () )
			nOnline++ ;
	}
	int nOffLine = nOnline ;
	
	for ( i = 0; i < nAmount; i++)
	{	
		CFriend* pFriend	= g_objHero.GetFriendByIndex(i);
		if (pFriend)
		{
			char strListData[64] ;
			strcpy ( strListData, pFriend->GetName () ) ;
			if ( pFriend->IsOnline () ) 
			{
				m_EnemyLstData.InsertString ( 0, strListData ) ;
				m_EnemyLstData.SetListRealIndex ( nOnline - 1, 1 ) ;
				nOnline-- ;
			}
			else
			{
				m_EnemyLstData.AddString(strListData);
				if(g_objGameMsg.GetLeaveWordAmountByName(pFriend->GetName())>0)
					m_EnemyLstData.SetItemFlash(nOffLine,TRUE);
				else
					m_EnemyLstData.SetItemFlash(nOffLine,FALSE);

				m_EnemyLstData.SetListRealIndex ( nOffLine, -1 ) ;
				nOffLine++ ;
			}
		}
	}	
}

void CDlgEnemy::SetFriendState()
{
	char strEnemyName[16] ;
	m_EnemyLstData.GetText ( m_nCurrentQueryIndex, strEnemyName ) ;
	if ( strEnemyName != NULL )
	{
		if (m_DlgSchoolList.m_bShow)
			m_DlgSchoolList.EnableWindow(false);
		if ( !m_DlgEnmState.m_bShow )
			m_DlgEnmState.EnableWindow() ;
		m_DlgEnmState.SetEnemyState ( strEnemyName ,m_iShowMode) ;
	}
}

void CDlgEnemy::OnEnemyBtnAdd() 
{
	// TODO: Add your control notification handler code here

	if (m_iShowMode == 0)
	{
		DXPlaySound ( "Sound/Dlg_Ok.wav" ) ;
		CDlgEnemy::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_FRIEND_ADD ) ;
	}
}

void CDlgEnemy::SetTsList()
{
	CRect rect;
	CDlgEnemy::GetWindowRect(rect);
	CRect rectB;
	m_DelStuBtn.GetWindowRect(rectB);
	m_DelStuBtn.MoveWindow(108,294,rectB.Width(),rectB.Height(),false);
	m_DelStuBtn.ReInit(rect.left, rect.top );

	m_EnemyLstData.ResetContent ( ) ;	
	int nAmount = g_objHero.GetSchoolMemberAmount();

	for(int i=0;i<nAmount;i++)
	{
		CSchoolMember* pSchoolMember = g_objHero.GetSchoolMemberByIndex(i);
		if (pSchoolMember)
		{
			char strListData[64] ;
			strcpy ( strListData, pSchoolMember->GetName () ) ;

			if (pSchoolMember->GetRelation() == RELATION_TEACHER)
			{
				m_EnemyLstData.InsertString(0,strListData);
				if (pSchoolMember->GetStatus())
					m_EnemyLstData.SetListRealIndex(0,1);
				else
					m_EnemyLstData.SetListRealIndex(0,-1);
			}
			else if (pSchoolMember->GetRelation() == RELATION_STUDENT)
			{
				m_EnemyLstData.AddString(strListData);
				if (pSchoolMember->GetStatus())
					m_EnemyLstData.SetListRealIndex ( i, 1 ) ;	
				else
					m_EnemyLstData.SetListRealIndex( i, -1);
			}
		}
	}
	
	SetTeacherStatus();
	SetTeacherBtn();
}

void CDlgEnemy::OnEnemyBtnEnemy() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound("Sound/Dlg_Ok.wav");
	if (m_EnemyListChk.GetCheckValue()==1)
	{
		PopCurListChk();
		m_iShowMode = 1;
		m_DlgEnmState.m_iShowMode = m_iShowMode;
		SetEnemyList();
		m_DlgEnmState.EnableWindow(false);
		m_nCurrentQueryIndex = -1;
	}
	else
	{
		m_EnemyListChk.SetCheckValue(1);
	}
}

void CDlgEnemy::PopCurListChk()
{
	DXPlaySound ( "Sound/Dlg_Ok.wav" ) ;
	switch(m_iShowMode)
	{
	case 0:
		m_FriendListChk.SetCheckValue(0);
		m_AddBtn.EnableWindow(false);		
		break;
	case 1:
		m_EnemyListChk.SetCheckValue(0);
		break;
	case 2:
		m_TeacherListChk.SetCheckValue(0);
		m_DelStuBtn.EnableWindow(false);
		m_TeacherBtn.EnableWindow(false);
		break;
	default:
		break;
	}
}

void CDlgEnemy::OnEnemyBtnTeacher() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound("Sound/Dlg_Ok.wav");
	if (m_TeacherListChk.GetCheckValue()==1)
	{
		PopCurListChk();
		m_AddBtn.EnableWindow(false);
		m_TeacherBtn.EnableWindow(true);
		m_DelStuBtn.EnableWindow(true);
		m_iShowMode = 2;
		m_DlgEnmState.EnableWindow(false);
		SetTsList();
		m_nCurrentQueryIndex = -1;		
	}
	else
	{
		m_TeacherListChk.SetCheckValue(1);
	}
}

void CDlgEnemy::SetTeacherStatus()
{
	if (!g_objHero.IsHaveTeacher())
	{
		m_nTsStatus = 0;
	}
	else
		m_nTsStatus = 1;
}

void CDlgEnemy::OnBtnTeacher() 
{
	// TODO: Add your control notification handler code here
	switch(m_nTsStatus)
	{
	case 0://no teacher
		{
			DXPlaySound ( "Sound/Get_Teacher.wav" ) ;
			if (g_objHero.GetLev ()>= 40 ) 
			{
				g_objGameMsg.AddMsg (g_objGameDataSet.GetStr (10774));
				return;
			}
			CDlgEnemy::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_TEACHER_REQUEST );
		}
		break;
	case 1://have teacher
		{
			g_objGameMsg.AddMsg (g_objGameDataSet.GetStr(10770));
		}
		break;
	case 2://sel teacher
		{
			DXPlaySound("Sound/Dlg_Ok.wav");
			g_objHero.LeaveTeacher();
			if (m_DlgEnmState.m_bShow)
				m_DlgEnmState.EnableWindow (false);
		}
		break;
	case 3://sel student
		{
			//打开二级学员列表
			DXPlaySound ( "Sound/Dlg_Ok.wav" ) ;
			char strName[16]="";
			m_EnemyLstData.GetText(m_nCurrentQueryIndex,strName);
			if ( strName && strlen(strName)>0)
			{
				CSchoolMember* pSchoolMember = g_objHero.GetSchoolMemberByName(strName);
				if (pSchoolMember && pSchoolMember->GetRelation() == RELATION_STUDENT)
				{
					g_objHero.QuerySecSchoolMember(pSchoolMember->GetID());
					if (!m_DlgSchoolList.m_bShow) 
					{
						if (m_DlgEnmState.m_bShow)
							m_DlgEnmState.EnableWindow(false);
						m_DlgSchoolList.EnableWindow(true);
					}
				}
			}
		}
		break;
	default:
		break;
	}
}

void CDlgEnemy::SetTeacherBtn()
{
	DXPlaySound("Sound/Dlg_Ok.wav");
	switch(m_nTsStatus)
	{
	case 0:    //no teacher
		m_TeacherBtn.EnableWindow(true);
		m_TeacherBtn.ChangeImage("Button176");//拜师
		
		m_DelStuBtn.EnableWindow(true);
		m_DelStuBtn.ChangeImage("Button179");  //招收
		break;
	case 1:    // have teacher can get student
		m_TeacherBtn.EnableWindow(false);
		
		m_DelStuBtn.EnableWindow(true);
		m_DelStuBtn.ChangeImage("Button179");  //招收
		break;
	case 2:    // sel the teacher
		m_TeacherBtn.EnableWindow(true);
		m_TeacherBtn.ChangeImage("Button177"); //判师

		m_DelStuBtn.EnableWindow(false);
		break;
	case 3:	   // sel a student
		m_TeacherBtn.EnableWindow(true);
		m_TeacherBtn.ChangeImage("Button1791");	//二级学员

		m_DelStuBtn.EnableWindow(true);
		m_DelStuBtn.ChangeImage("Button178"); //开除
		break; 
	case 4:
		m_TeacherBtn.EnableWindow(false);
		
		m_DelStuBtn.EnableWindow(true);
		m_DelStuBtn.ChangeImage("Button178"); //开除		
	default:
		break;
	}
}

void CDlgEnemy::OnBtnDelstudent() 
{
	// TODO: Add your control notification handler code here
	if (m_iShowMode == 0)
	{
		DXPlaySound ( "Sound/Dlg_Ok.wav" ) ;
		
		if (m_DlgEnmState.m_bShow)
			m_DlgEnmState.EnableWindow (false);
		
		if (m_nCurrentQueryIndex == -1) 
			return;
		char strName[16]="";
		m_EnemyLstData.GetText(m_nCurrentQueryIndex,strName);
		if ( strName && strlen(strName)>0)
			CDlgEnemy::GetParent()->PostMessage ( WM_MY_MESSAGE, ON_FRDSTATE_DEL);
	}
	else if (m_iShowMode == 1)
	{
		DXPlaySound ( "Sound/Dlg_Ok.wav" ) ;
		
		if (m_DlgEnmState.m_bShow)
			m_DlgEnmState.EnableWindow (false);
		
		if (m_nCurrentQueryIndex == -1) 
			return;
		char strName[16]="";
		m_EnemyLstData.GetText(m_nCurrentQueryIndex,strName);
		if ( strName && strlen(strName)>0)
			CDlgEnemy::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_ENMSTATE_DEL ) ;
	}
	else if (m_iShowMode == 2)
	{
		switch(m_nTsStatus)
		{
		case 0: //no teacher
		case 1: //have teacher can get student
			{
				DXPlaySound ( "Sound/Get_Student.wav" ) ;
				if (g_objHero.GetLev ()< 50) 
				{
					g_objGameMsg.AddMsg (g_objGameDataSet.GetStr(10771));
					return;
				}
				if (g_objHero.GetTutorExp()<10) 
				{
					g_objGameMsg.AddMsg (g_objGameDataSet.GetStr (10772));
					return;
				}		
				if (g_objHero.GetTutorLevel () == 1 && g_objHero.GetSchoolMemberAmount () >=5)
				{
					g_objGameMsg.AddMsg (g_objGameDataSet.GetStr (10776));
					return;
				}
				if (g_objHero.GetTutorLevel () == 2 && g_objHero.GetSchoolMemberAmount () >=10 ) 
				{
					g_objGameMsg.AddMsg (g_objGameDataSet.GetStr (10777));
					return;					
				}
				if (g_objHero.GetTutorLevel () == 3 && g_objHero.GetSchoolMemberAmount () >= 15 ) 
				{
					g_objGameMsg.AddMsg (g_objGameDataSet.GetStr (10778));
					return;					
				}
				g_objGameMsg.AddMsg (g_objGameDataSet.GetStr(10773));
				CDlgEnemy::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_STUDENT_REQUEST );
			}			
			break;
		case 2: //sel teacher
			break;
		case 3: //sel student
			{
				if (m_DlgEnmState.m_bShow)
					m_DlgEnmState.EnableWindow (false);
				
				if (m_nCurrentQueryIndex == -1) 
					return;
				char strName[16]="";
				m_EnemyLstData.GetText(m_nCurrentQueryIndex,strName);
				
				DXPlaySound ( "Sound/Del_Student.wav" ) ;
				if ( strName && strlen(strName)>0)
				{
					CSchoolMember* pSchoolMember = g_objHero.GetSchoolMemberByName(strName);
					if (pSchoolMember && pSchoolMember->GetRelation() == RELATION_STUDENT)
					{
						g_objHero.DismissStudent(pSchoolMember->GetID());
					}
				}
			}
			break;
		default:
			break;
		}
	}
}

void CDlgEnemy::DeleteEnemy()
{
	char strName[16]="";
	m_EnemyLstData.GetText(m_nCurrentQueryIndex,strName);
	if ( strName && strlen(strName)>0)
	{
		CEnemy* pEnemy = g_objHero.GetEnemyByName ( strName ) ;
		if ( pEnemy )
			g_objHero.DelEnemy ( pEnemy->GetID () ) ;
	}
}

void CDlgEnemy::DeleteFriend()
{
	char strName[16]="";
	m_EnemyLstData.GetText(m_nCurrentQueryIndex,strName);
	if ( strName && strlen(strName)>0)
	{
		CFriend* pFriend = g_objHero.GetFriendByName ( strName ) ;
		if ( pFriend )
			g_objHero.BreakOffFriend ( pFriend->GetID () ) ;
	}
}

⌨️ 快捷键说明

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