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

📄 dlgmonsterimprove.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
// DlgMonsterImprove.cpp : implementation file
//

#include "stdafx.h"
#include "myshell.h"
#include "DlgMonsterImprove.h"
#include "Hero.h"
#include "Gamemsg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgMonsterImprove dialog


CDlgMonsterImprove::CDlgMonsterImprove(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgMonsterImprove::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgMonsterImprove)
	m_Pnt = CPoint(0,0);
	m_IdMonster = 0;
	m_IdSoulStone = 0;
	m_bShow = false;
	m_nIconRealID = 0;
	m_nDlgMode = 0;// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDlgMonsterImprove::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgMonsterImprove)
	DDX_Control(pDX, IDC_STA_NPCINFO, m_StaNpcInfo);
	DDX_Control(pDX, IDC_IMG_SOULSTONE, m_ImgSoulStone);
	DDX_Control(pDX, IDC_IMG_NPCFACE, m_ImgNpcFace);
	DDX_Control(pDX, IDC_IMG_MONSTER, m_ImgMonster);
	DDX_Control(pDX, IDC_BTN_CLOSE, m_BtnClose);
	DDX_Control(pDX, IDC_BTN_ALIVEIMP, m_BtnAliveImp);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgMonsterImprove, CDialog)
	//{{AFX_MSG_MAP(CDlgMonsterImprove)
	ON_WM_CTLCOLOR()
	ON_WM_MOVE()
	ON_BN_CLICKED(IDC_BTN_ALIVEIMP, OnBtnAliveimp)
	ON_BN_CLICKED(IDC_BTN_CLOSE, OnBtnClose)
	ON_BN_CLICKED(IDC_IMG_MONSTER, OnImgMonster)
	ON_BN_CLICKED(IDC_IMG_SOULSTONE, OnImgSoulstone)
	ON_BN_DOUBLECLICKED(IDC_IMG_MONSTER, OnDoubleclickedImgMonster)
	ON_BN_DOUBLECLICKED(IDC_IMG_SOULSTONE, OnDoubleclickedImgSoulstone)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgMonsterImprove message handlers

LRESULT CDlgMonsterImprove::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	switch ( message )
	{
	case WM_ENABLE:
		{
			m_bShow = wParam ;
			if(m_bShow)
			{
				DXPlaySound("Sound/Open.wav");
			}
			else
			{
				m_IdMonster = 0;
				m_IdSoulStone = 0;
				m_nIconRealID = 0;
				m_ImgMonster.RemoveImage();
				m_ImgSoulStone.RemoveImage();
				DXPlaySound("Sound/window_close.wav");
			}
		}
		break ;
	case WM_COMMAND:
		{
			if ( wParam == 1 )
				return true ;
			else if ( wParam == 2 ) 
			{
				CDlgMonsterImprove::OnBtnClose();
				return true ;
			}
		}
		break ;
	case WM_MY_MESSAGE:
		switch(wParam)
		{
		case ON_MSGDLG_HIDE:
			CDlgMonsterImprove::GetParent()->PostMessage( WM_MY_MESSAGE, ON_MSGDLG_HIDE);
			break;
		case ON_MSGDLG_POINT:
			CDlgMonsterImprove::GetParent()->PostMessage( WM_MY_MESSAGE, ON_MSGDLG_POINT, lParam ) ;			
			break;
		case ON_MSGDLG_IMAGE:
			CDlgMonsterImprove::GetParent()->PostMessage( WM_MY_MESSAGE, ON_MSGDLG_GOODS, DLG_MONSTERIMPROVE ) ;
			break ;
		default:
			break;
		}
	}
	return CDialog::WindowProc(message, wParam, lParam);
}

HBRUSH CDlgMonsterImprove::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	pDC->SetBkMode(TRANSPARENT);
	return g_StockBrush;
}

BOOL CDlgMonsterImprove::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CRect rect;
	CDlgMonsterImprove::GetWindowRect(rect);
	
	m_ImgNpcFace.Init(rect.left, rect.top, NULL, FACE_IMAGE);
	m_StaNpcInfo.Init(rect.left, rect.top, 2);

	m_BtnClose.Init(rect.left, rect.top, "Button540");
	m_BtnAliveImp.Init(rect.left, rect.top,"Button652"); //alive ,Button653-improve
	
	m_ImgMonster.Init(rect.left, rect.top, NULL, ITEM_IMAGE);

	m_ImgSoulStone.Init(rect.left,rect.top, NULL, ITEM_IMAGE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgMonsterImprove::OnMove(int x, int y) 
{
	CDialog::OnMove(x, y);
	
	// TODO: Add your message handler code here
	m_Pnt.x = x;
	m_Pnt.y = y;
}

void CDlgMonsterImprove::Show()
{
	if (m_bShow)
	{
		CAni* ShowAni = g_objGameDataSet.GetDataAni ( ( char * )g_strControlAni,
			"Dialog82",
			EXIGENCE_IMMEDIATE ) ;
		if ( ShowAni != NULL )
		{
			ShowAni->Show( 0, 
				m_Pnt.x ,
				m_Pnt.y  );
			ShowAni->Show( 1, 
				m_Pnt.x + 256 ,
				m_Pnt.y  );
			ShowAni->Show( 2, 
				m_Pnt.x ,
				m_Pnt.y + 256 );
			ShowAni->Show( 3, 
				m_Pnt.x + 128,
				m_Pnt.y + 256 );
			ShowAni->Show( 4, 
				m_Pnt.x + 256,
				m_Pnt.y + 256 );
			ShowAni->Show( 5, 
				m_Pnt.x + 384,
				m_Pnt.y + 256 );			
		}
		else 
			return ;

		m_ImgNpcFace.Show(m_Pnt.x, m_Pnt.y);
		m_StaNpcInfo.Show(m_Pnt.x, m_Pnt.y);

		m_ImgMonster.Show(m_Pnt.x, m_Pnt.y);
		m_ImgSoulStone.Show(m_Pnt.x, m_Pnt.y);

		m_BtnAliveImp.Show(m_Pnt.x, m_Pnt.y);
		m_BtnClose.Show(m_Pnt.x, m_Pnt.y);
	}
}

void CDlgMonsterImprove::SetDlgMode(int nMode)
{
	m_nDlgMode = nMode;
	if (m_nDlgMode == 0)	//alive
	{
		m_StaNpcInfo.SetWindowText((char*)g_objGameDataSet.GetStr(10697)); //幻兽复活
		m_BtnAliveImp.ChangeImage("Button652");
	}
	else if (m_nDlgMode == 1) //improve
	{
		m_StaNpcInfo.SetWindowText((char*)g_objGameDataSet.GetStr(10696)); //幻兽强化
		m_BtnAliveImp.ChangeImage("Button653");
	}
}

void CDlgMonsterImprove::OnBtnAliveimp() 
{
	// TODO: Add your control notification handler code here
	DXPlaySound("Sound/Dlg_Ok.wav");
	if (m_ImgSoulStone.GetImageLoadState() && m_ImgMonster.GetImageLoadState())
	{
		if (m_nDlgMode == 0)
			g_objHero.ReboneEudemon(m_IdMonster,m_IdSoulStone);// 幻兽复活,幻兽ID 宝石ID
		else 
			g_objHero.EnhanceEudemon(m_IdMonster,m_IdSoulStone);// 幻兽强化,幻兽ID, 宝石ID	
		CDlgMonsterImprove::EnableWindow(false);		
	}
	else if (!m_ImgSoulStone.GetImageLoadState()) 
	{
		g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(10622));
	}
	else if (!m_ImgMonster.GetImageLoadState())
	{
		g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(10623));
	}
}

void CDlgMonsterImprove::OnBtnClose() 
{
	// TODO: Add your control notification handler code here
	CDlgMonsterImprove::EnableWindow(false);
}

void CDlgMonsterImprove::InsertMonster(OBJID idMonster)
{
	CItem* pMonster = g_objHero.GetItem(idMonster);
	if (pMonster && pMonster->GetPackageType() == PACKAGE_PET && !m_ImgMonster.GetImageLoadState())
	{
		if (m_nDlgMode == 0 && pMonster->GetWarGhostExp() > 0)
		{
			g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10725)); //幻兽状态正常,不需要复活!
			m_IdMonster = 0;
		}
		else if (m_nDlgMode == 1 && pMonster->GetWarGhostExp() <= 0)  
		{
			g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10726)); //你的幻兽已经死亡,不允许进行强化!
			m_IdMonster = 0;
		}
		else
		{
			m_ImgMonster.RemoveImage();
			m_IdMonster = idMonster;
			m_ImgMonster.InsertImage(NULL,idMonster,NULL,true);
		}
		CDlgMonsterImprove::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_ICON_DROP,  DLG_ALL) ;
		CDlgMonsterImprove::GetParent ()->PostMessage ( WM_MY_MESSAGE, CMD_FLASHITEM ) ;		
	}
}

void CDlgMonsterImprove::OnImgMonster() 
{
	// TODO: Add your control notification handler code here
	if (!m_ImgMonster.GetImageLoadState() && g_bPickUp && m_IdMonster)
	{
		CDlgMonsterImprove::InsertMonster(m_IdMonster);
	}
	else if (g_bPickUp && !m_ImgMonster.GetImageLoadState ())
	{
		if (m_nDlgMode == 0 )
			g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10800));	//	操作错误!请放置需要复活的幻兽
		else if (m_nDlgMode == 1)
			g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10801));	//	操作错误!请放置需要强化的幻兽		
	}
}

void CDlgMonsterImprove::OnImgSoulstone() 
{
	// TODO: Add your control notification handler code here
	if (g_bPickUp && !m_ImgSoulStone.GetImageLoadState() && m_nIconRealID) 
	{
		CItem* pItem = g_objHero.GetItem ( m_nIconRealID ) ;
		if (pItem != NULL)
		{
			if ( (pItem->IsAliveSoulStone() && m_nDlgMode == 0)
				|| (pItem->IsImproveSoulStone() && m_nDlgMode == 1))
			{			
					m_IdSoulStone = pItem->GetID () ;
					m_ImgSoulStone.InsertImage (NULL , m_IdSoulStone,9,true ) ;
					CDlgMonsterImprove::GetParent ()->PostMessage ( WM_MY_MESSAGE, ON_ICON_DROP,  DLG_ALL) ;
					CDlgMonsterImprove::GetParent ()->PostMessage ( WM_MY_MESSAGE, CMD_FLASHITEM ) ;
			}
			else
				m_IdSoulStone = 0;
		}
	}
}

void CDlgMonsterImprove::SetPickUpSoulStone(OBJID idSoulStone)
{
	m_nIconRealID = idSoulStone;
}

OBJID CDlgMonsterImprove::GetSoulStoneID()
{
	return	m_IdSoulStone;
}

void CDlgMonsterImprove::SetPickUpMonsterId(OBJID idMonster)
{
	m_IdMonster = idMonster;
}

void CDlgMonsterImprove::OnDoubleclickedImgMonster()
{
	if (m_ImgMonster.GetImageLoadState() && m_IdMonster)
	{
		m_IdMonster = 0;
		m_ImgMonster.RemoveImage();
	}
}

void CDlgMonsterImprove::OnDoubleclickedImgSoulstone()
{
	if (m_ImgSoulStone.GetImageLoadState() && m_IdSoulStone)
	{
		m_ImgSoulStone.RemoveImage();
		m_IdSoulStone = 0;
		m_nIconRealID = 0;
	}
}

⌨️ 快捷键说明

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