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

📄 dlgmonsterheads.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	if (m_ImgHead2.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead2.GetImageRealID();
		if (g_objHero.GetAttachPetId () == idMonster) 
		{
			g_objHero.UnAttachEudemon (idMonster);
		}
		else if (g_objHero.GetPetByItemID (idMonster) != NULL && g_objHero.GetAttachPetId () != idMonster) 
		{
			DelCallMonster(idMonster);
			g_objHero.AttachEudemon (idMonster);
		}		
	}	
}

void CDlgMonsterHeads::OnBtnAttach3() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound ( "Sound/Dlg_ok.wav" ) ;							
	if (m_ImgHead3.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead3.GetImageRealID();
		if (g_objHero.GetAttachPetId () == idMonster) 
		{
			g_objHero.UnAttachEudemon (idMonster);
		}
		else if (g_objHero.GetPetByItemID (idMonster) != NULL && g_objHero.GetAttachPetId () != idMonster) 
		{
			DelCallMonster(idMonster);
			g_objHero.AttachEudemon (idMonster);
		}		
	}	
}

void CDlgMonsterHeads::OnBtnAttach4() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound ( "Sound/Dlg_ok.wav" ) ;							
	if (m_ImgHead4.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead4.GetImageRealID();
		if (g_objHero.GetAttachPetId () == idMonster) 
		{
			g_objHero.UnAttachEudemon (idMonster);
		}
		else if (g_objHero.GetPetByItemID (idMonster) != NULL && g_objHero.GetAttachPetId () != idMonster) 
		{
			DelCallMonster(idMonster);
			g_objHero.AttachEudemon (idMonster);
		}		
	}	
}

void CDlgMonsterHeads::OnBtnCall1() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead1.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead1.GetImageRealID();
		if (g_objHero.GetPetByItemID (idMonster)) 
		{
			DelCallMonster(idMonster);
			DXPlaySound ( "Sound/Monster_Recede.wav" ) ;							
			CDlgMonsterHeads::KillMonster (idMonster);
		}
		else
		{
			AddCallMonster(idMonster);
			DXPlaySound ( "Sound/Monster_out.wav" ) ;							
			CDlgMonsterHeads::CallMonster (idMonster);
		}
	}
}

void CDlgMonsterHeads::OnBtnCall2() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead2.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead2.GetImageRealID();
		if (g_objHero.GetPetByItemID (idMonster)) 
		{
			DelCallMonster(idMonster);
			CDlgMonsterHeads::KillMonster (idMonster);
			DXPlaySound ( "Sound/Monster_Recede.wav" ) ;							
		}
		else
		{
			AddCallMonster(idMonster);
			CDlgMonsterHeads::CallMonster (idMonster);
			DXPlaySound ( "Sound/Monster_out.wav" ) ;							
		}
	}
}

void CDlgMonsterHeads::OnBtnCall3() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead3.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead3.GetImageRealID();
		if (g_objHero.GetPetByItemID (idMonster)) 
		{
			DelCallMonster(idMonster);
			CDlgMonsterHeads::KillMonster (idMonster);
			DXPlaySound ( "Sound/Monster_Recede.wav" ) ;							
		}
		else
		{
			AddCallMonster(idMonster);
			CDlgMonsterHeads::CallMonster (idMonster);
			DXPlaySound ( "Sound/Monster_out.wav" ) ;							
		}
	}
}

void CDlgMonsterHeads::OnBtnCall4() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead4.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead4.GetImageRealID();
		if (g_objHero.GetPetByItemID (idMonster)) 
		{
			DelCallMonster(idMonster);
			CDlgMonsterHeads::KillMonster (idMonster);
			DXPlaySound ( "Sound/Monster_Recede.wav" ) ;							
		}
		else
		{
			AddCallMonster(idMonster);
			CDlgMonsterHeads::CallMonster (idMonster);
			DXPlaySound ( "Sound/Monster_out.wav" ) ;							
		}
	}	
}

void CDlgMonsterHeads::OnImgHead1() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead1.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead1.GetImageRealID();
		CItem* pMonster = g_objHero.GetItem (idMonster);
		if (pMonster) 
		{
			CDlgMonsterHeads::GetParent ()->PostMessage(WM_MY_MESSAGE, ON_MONSTER_OPTION, idMonster);
//			if ( pMonster->GetWarGhostExp () <= 0) 
//			{
//				g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10729));
//				return;
//			}

		}
	}

}

void CDlgMonsterHeads::OnImgHead2() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead2.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead2.GetImageRealID();
		CItem* pMonster = g_objHero.GetItem (idMonster);
		if (pMonster) 
		{
//			if ( pMonster->GetWarGhostExp () <= 0) 
//			{
//				g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10729));
//				return;
//			}		
	
			CDlgMonsterHeads::GetParent ()->PostMessage(WM_MY_MESSAGE, ON_MONSTER_OPTION, idMonster);

		}
	}
}

void CDlgMonsterHeads::OnImgHead3() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead3.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead3.GetImageRealID();
		CItem* pMonster = g_objHero.GetItem (idMonster);
		if (pMonster) 
		{
			CDlgMonsterHeads::GetParent ()->PostMessage(WM_MY_MESSAGE, ON_MONSTER_OPTION, idMonster);
//			if ( pMonster->GetWarGhostExp () <= 0) 
//			{
//				g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10729));
//				return;
//			}

		}
	}
}

void CDlgMonsterHeads::OnImgHead4() 
{
	// TODO: Add your control notification handler code here
	if (m_ImgHead4.GetImageLoadState ()) 
	{
		OBJID idMonster = m_ImgHead4.GetImageRealID();
		CItem* pMonster = g_objHero.GetItem (idMonster);
		if (pMonster) 
		{
			CDlgMonsterHeads::GetParent ()->PostMessage(WM_MY_MESSAGE, ON_MONSTER_OPTION, idMonster);
		}
	}
}

void CDlgMonsterHeads::FlashMonsterHeads()
{
	ResetMonsterHeads();
	int nAmount = m_setMonsterHead.size ();
	for(int i=nAmount -1;i >=0;i--)
	{
		CItem* pMonster = g_objHero.GetItem (m_setMonsterHead[i]);
		if(pMonster == NULL)
		{
			m_setMonsterHead.erase (m_setMonsterHead.begin()+i);
		}
	}
	nAmount = m_setMonsterHead.size ();
	
	if (nAmount <= 0)
		CDlgMonsterHeads::EnableWindow (false);
	CRect rect;
	CDlgMonsterHeads::GetWindowRect (rect);
	CDlgMonsterHeads::MoveWindow (_SCR_WIDTH - 162*nAmount - 130 ,
		0, 162*nAmount, rect.Height (),false);
	for(i=0;i<nAmount;i++)
	{
		CItem* pMonster = g_objHero.GetItem (m_setMonsterHead[i]);
		CPet* pPet = g_objHero.GetPetByItemID(pMonster->GetID());
		if (pMonster != NULL) 
		{
			switch(i) 
			{
			case 0:
				{
					m_ImgHead1.EnableWindow ();
					m_StaName1.SetWindowText (pMonster->GetMonsterName ());
					if (pPet) 
					{
						if(!pPet->TestStatus(USERSTATUS_GHOST))
							m_ImgHead1.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);
						else
							m_ImgHead1.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);		
					}
					else
					{
						if (pMonster->GetWarGhostExp() >0 )
							m_ImgHead1.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);		
						else
							m_ImgHead1.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);				
					}	
				}
				break;
			case 1:
				{
					m_ImgHead2.EnableWindow ();
					m_StaName2.SetWindowText (pMonster->GetMonsterName ());
					if (pPet) 
					{
						if(!pPet->TestStatus(USERSTATUS_GHOST))
							m_ImgHead2.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);
						else
							m_ImgHead2.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);		
					}
					else
					{
						if (pMonster->GetWarGhostExp() >0 )
							m_ImgHead2.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);		
						else
							m_ImgHead2.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);				
					}	
				}
				break;
			case 2:
				{
					m_ImgHead3.EnableWindow ();
					m_StaName3.SetWindowText (pMonster->GetMonsterName ());
					if (pPet) 
					{
						if(!pPet->TestStatus(USERSTATUS_GHOST))
							m_ImgHead3.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);
						else
							m_ImgHead3.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);		
					}
					else
					{
						if (pMonster->GetWarGhostExp() >0 )
							m_ImgHead3.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);		
						else
							m_ImgHead3.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);				
					}	
				}
				break;
			case 3:
				{
					m_ImgHead4.EnableWindow ();
					m_StaName4.SetWindowText (pMonster->GetMonsterName ());
					if (pPet) 
					{
						if(!pPet->TestStatus(USERSTATUS_GHOST))
							m_ImgHead4.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);
						else
							m_ImgHead4.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);		
					}
					else
					{
						if (pMonster->GetWarGhostExp() >0 )
							m_ImgHead4.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),true);		
						else
							m_ImgHead4.InsertImage(NULL,pMonster->GetID(),pMonster->GetTypeID(),false);				
					}	
				}
				break;
			default:
				break;
			}
		}
	}	
}

BOOL CDlgMonsterHeads::CallMonster(OBJID idMonster)
{
	if (g_objHero.IsDead () ) 
		return FALSE;
	CItem* pMonster = g_objHero.GetItem (idMonster);
	if (pMonster && g_objHero.GetPetByItemID (idMonster) == NULL) 
	{
		if (pMonster->GetAmountLimit() >= g_objHero.GetLev() + 10) 
		{
			g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10808));	//10808=幻兽等级太高,您暂时无法召唤!			
			return FALSE;
		}
		g_objHero.CallEudenmon (idMonster);
		return TRUE;
	}
	else
		return FALSE;
}

void CDlgMonsterHeads::ReCallMonsters ()
{
	if (g_objHero.IsDead ())
		return;

	for(int i=0;i<4;i++)
	{
		OBJID idMonster = m_setMonsterCall[i];
		if (idMonster != 0)
		{
			CItem* pMonster = g_objHero.GetItem (idMonster);
			if (pMonster && g_objHero.GetPetByItemID (idMonster) == NULL) 
			{
				if (pMonster->GetAmountLimit() >= g_objHero.GetLev() + 10) 
				{
					g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10808));	//10808=幻兽等级太高,您暂时无法召唤!			
					continue;
				}
				g_objHero.CallEudenmon (idMonster);
			}
		}
	}
}

void CDlgMonsterHeads::ResetCallMonster()
{
	m_setMonsterCall[0] = 0;
	m_setMonsterCall[1] = 0;
	m_setMonsterCall[2] = 0;
	m_setMonsterCall[3] = 0;
}

BOOL CDlgMonsterHeads::KillMonster(OBJID idMonster)
{
	CItem* pMonster = g_objHero.GetItem (idMonster);
	if (pMonster && g_objHero.GetPetByItemID (idMonster) != NULL) 
	{
		g_objHero.KillEudenmon (idMonster);
		return TRUE;		
	}
	else
		return FALSE;	
}


void CDlgMonsterHeads::FlashMonsterStatus()
{
	int nAmount = m_setMonsterHead.size ();
	if (nAmount <=0)
		return;
	for(int i=0;i<nAmount;i++)
	{
		CItem* pMonster = g_objHero.GetItem (m_setMonsterHead[i]);
		if (pMonster != NULL) 
		{
			switch(i) 
			{
			case 0:
				{
					m_StaName1.SetWindowText (pMonster->GetMonsterName ());
					m_Hp1 = pMonster->GetWarGhostExp ();
					m_Exp1 = pMonster->GetGemAtkType ();

					m_ProgressHp1.ResetValue (0,pMonster->GetMonsterMaxLife ());
					m_ProgressExp1.ResetValue (0,g_objHero.GetPetLevelExp(pMonster->GetAmountLimit()));


					CPet* pPet = g_objHero.GetPetByItemID (pMonster->GetID ());
					if (pPet) 
					{
						m_Xp1 = pPet->GetPotential ();
						
						m_BtnCall1.ChangeImage ("Button572");
						if (!m_BtnCall1.IsWindowEnabled()) 
							m_BtnCall1.EnableWindow ();
						
						if (g_objHero.GetAttachPetId () != pMonster->GetID () && pMonster->GetTypeID ()%10 == 2) //是否二次进化 
						{
							if (!m_BtnAttach1.IsWindowEnabled()) 
								m_BtnAttach1.EnableWindow ();
							m_BtnAttach1.ChangeImage("Button571");
						}
					}
					else 
					{
						m_Xp1 = 0;
						if (g_objHero.GetAttachPetId () == pMonster->GetID())
						{
							m_BtnAttach1.ChangeImage("Button573");
							m_BtnAttach1.EnableWindow ();
							
							m_BtnCall1.EnableWindow (false);
						}
						else
						{
							m_BtnAttach1.EnableWindow (false);
							
							m_BtnCall1.EnableWindow ();
							m_BtnCall1.ChangeImage ("Button570");
						}
					}
					if (pMonster->GetWarGhostExp() >0 ) 
					{
						if (pMonster->GetWarGhostExp() <= pMonster->GetMonsterMaxLife()*3/10
							&& pMonster->GetWarGhostExp() > pMonster->GetMonsterMaxLife()*2/10) 
						{
							if (!m_EffectHead1.TestEffect("baby_d1"))
								m_EffectHead1.Add("baby_d1");							//警告光xiao							
							m_ProgressHp1.SetProgressID("Progress5841");		//浅红色
						}
						else if (pMonster->GetWarGhostExp() <= pMonster->GetMonsterMaxLife()*2/10
							&& pMonster->GetWarGhostExp() > pMonster->GetMonsterMaxLife()/10) 
						{
							m_ProgressHp1.SetProgressID("Progress5842");		//暗红色							
						}
						else if (pMonster->GetWarGhostExp() <= pMonster->GetMonsterMaxLife()/10) 
						{
							if (!m_EffectHead1.TestEffect("baby_d1"))
								m_EffectHead1.Add("baby_d1");							//警告光xiao
						}
						else
						{
							m_EffectHead1.Clear();					//clear effect
							m_ProgressHp1.SetProgressID("Progress584");		//NORMAL														
						}
					}
					else
					{	
						m_EffectHead1.Clear();					//clear effect				
					}

					if(!pMonster->IsMonsterDie())
						m_ImgHead1.InsertImage (NULL, pMonster->GetID (),pMonster->GetTypeID (),true);
					else
						m_ImgHead1.InsertImage (NULL, pMonster->GetID (),pMonster->GetTypeID (),false);				
					
					m_ProgressXp1.ResetValue (0, 100);

					char szInfo[32]="";
					sprintf (szInfo,"%d/%d",m_Hp1,pMonster->GetMonsterMaxLife ());

⌨️ 快捷键说明

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