📄 dlgmonsterheads.cpp
字号:
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 + -