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

📄 myshelldlg.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			{
				OBJID tempID = g_objGameMap.GetFocusTerrainNpc () ;
				if ( tempID != ID_NONE )
				{
					m_uCmd = CMD_NORMAL ;
					g_objHero.DelNpc ( tempID ) ;
					return ;
				}

			}
			
			if ( g_objHero.GetCommandType() == _COMMAND_WALK)
			{
				CMyPos posTarget = {nPosX, nPosY};
				g_objHero.AddStep(posTarget);
			}
			else
				g_objHero.Walk(nPosX, nPosY);
			CMyShellDlg::SetMouseMove(nPosX,nPosY);
			
			if (m_DlgTask.m_bShow)
			{
				m_DlgTask.EnableWindow(false);
			}			
//			m_DlgMain.CloseNpcDlg();
			m_bLbuttonDown = true ;
		}
	}
	
	CDialog::OnLButtonDown(nFlags, point);
}


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

BOOL CMyShellDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	BOOL bSetAni = false;
	switch ( m_uCmd )
	{
	case CMD_MPCCOURT:
		SetCursorAni("");
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_MARRY) ) ;
		bSetAni = true;
		break ;
	case CMD_TEMJOIN:
		SetCursorAni("");
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_TEAMJOIN) ) ;
		bSetAni = true;
		break ;
	case CMD_TEMINVITE:
		SetCursorAni("");
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_TEAMINVITE) ) ;
		bSetAni = true;
		break ;
	case CMD_FRDMAKE:
		::SetCursor(NULL);
		SetCursorAni("FrdCursor");
		bSetAni = true;
		break ;
	case CMD_FACINVITE:
		::SetCursor(NULL);
		SetCursorAni("FacCursor");
		bSetAni = true;
		break;
	case CMD_ADDALLY:
		::SetCursor(NULL);
		SetCursorAni("FacCursor");
		bSetAni = true;
		break ;		
	case CMD_FACJOIN:
		::SetCursor(NULL);
		SetCursorAni("FacCursor");
		bSetAni = true;
		break ;
	case CMD_TRADE:
		::SetCursor(NULL);
		SetCursorAni("TradeCursor");
		bSetAni = true;
		break ;
	case CMD_DELNPC:
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_DELNPC) ) ;
		bSetAni = true;
		break ;
	case CMD_NPCEQUIP:
		SetCursorAni("");
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_NPCEQUIP ) ) ;
		bSetAni = true;
		break ;
	case CMD_TEACHERREQ:
		SetCursorAni("");
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_TEAMINVITE) ) ;
		bSetAni = true;
		break;
	case CMD_STUDENTREQ:
		SetCursorAni("");
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_TEAMJOIN) ) ;
		bSetAni = true;
		break;
	case CMD_USEITEMTO:
		::SetCursor(NULL);
		SetCursorAni("GemCursor");
		bSetAni = true;
		break;
	default:
		SetCursorAni("");
		break ;
	}
	
	CPoint 	point;
	GetCursorPos(&point);
	CMyPos posMouse;
	::MouseCheck(posMouse.x, posMouse.y);
	
	CRect rect;
	CMyShellDlg::GetWindowRect(rect);
	posMouse.x +=rect.left;
	posMouse.y +=rect.top;

	if (point.x == posMouse.x && point.y == posMouse.y && !g_bPickUp && !m_bIconFix) 
	{
		CMyShellDlg::SetGameCursor();
		bSetAni = true;
	}
	if ( g_bPickUp )
	{
		::SetCursor ( NULL ) ;
		SetCursorAni("");
	}
	else if ( m_bIconFix )
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_FIX) ) ;
	else if (m_bLbuttonDown || m_bRbuttonDown)
		::SetCursor( AfxGetApp()->LoadCursor(IDC_CURSOR_POINTDOWN));
	else if ( m_bLbuttonHold || m_bRbuttonHold)
		::SetCursor( AfxGetApp()->LoadCursor(IDC_CURSOR_POINTDOWN));
	else if ( bSetAni == false)
		::SetCursor ( AfxGetApp()->LoadCursor(IDC_CURSOR_POINT) ) ;
	return true ;
}

void CMyShellDlg::OnMyMessage ( WPARAM wParam, LPARAM lParam ) 
{ 
	switch ( wParam )
	{
	case ON_EXIT:
			CMyShellDlg::OnExit ( )	;
		break ;
	case ON_EXIT_LOGIN:		
		if ( m_DlgLogin.m_bShow && !m_bExit )
			CMyShellDlg::OnExit () ;
		else
		{
			m_bExit = true ;
			m_DlgConfirm.SetConfirmDlg( EXIT_CONFIRM, NULL, 1 ) ;
		}
		break ;
	case ON_EXIT_ACCEPT:
		if ( lParam == 1 )
		{
			if ( m_bLogin )
			{
				DXPlaySound("Sound/Dlg_Ok.wav");
				m_bExit = false ;
				m_bIconFix = false;
				g_bPickUp = false;
				m_uCmd = CMD_NORMAL;
				m_DlgMain.CloseCurDlg();
				m_DlgMain.CloseCurDlg(1);
				m_DlgMain.CloseCurDlg(2);
				m_DlgMain.CloseNpcDlg();
				m_DlgMain.m_DlgMpcGoods.EnableWindow(false);
				m_DlgMain.m_DlgTalk.m_TalkDataCob.SetWindowText("");
				m_DlgMain.WriteRecord();
				m_DlgMain.m_DlgTalk.m_GoodBox.RemoveIcon ( 0, 0, true ) ;
				g_objNetwork.Destroy() ;
				g_objGameMsg.ClearMsg() ;
				g_objGameMsg.DestroyLeaveWord() ;
				g_uStatus	=_STATUS_NONE ;
				m_MagicID = 0 ;
				m_DlgRoleCreate.ShowWindow(SW_HIDE);
				m_DlgRoleCreate.EnableWindow(false) ;
				SetLoginEffectPos(m_bLogin);
				m_DlgLogin.ShowWindow ( SW_SHOW ) ;
				m_DlgLogin.SetCurLoginMode(2);
				m_DlgLogin.SetFocus() ;
				m_DlgLogin.m_LoginPasswordEdt.SetFocus();
			}
			else
			{
				m_bExit = false ;
				m_bIconFix = false;
				g_bPickUp = false;
				m_uCmd = CMD_NORMAL;
				m_DlgRoleCreate.EnableWindow(false) ;
				m_DlgRoleCreate.ShowWindow(SW_HIDE);
				SetLoginEffectPos(m_bLogin);
				m_DlgLogin.ShowWindow( SW_SHOW ) ;
				m_DlgLogin.EnableWindow(true);
				m_DlgLogin.SetCurLoginMode(2);
				m_DlgLogin.SetFocus() ;
				m_DlgLogin.m_LoginPasswordEdt.SetFocus();				
			}
			g_objGameMap.Reset();
			g_objHero.Reset();
			::DXCloseAllMedia();
			::DXCloseAllSound();
		}
		else
		{
			m_DlgMain.WriteRecord();			
			CMyShellDlg::RealExit();
		}
		break ;
	case ON_BACK_PLAY:
		{
			::ShellExecute(m_hWnd, NULL, "Play.exe", NULL, NULL, SW_SHOW|SW_RESTORE );
			CMyShellDlg::RealExit();
		}
		break;
	case ON_EXIT_REFUSE:
		m_bExit = false ;
		if ( !m_bLogin )
		{
			if ( m_DlgLogin.m_bShow && !m_DlgLogin.IsWindowEnabled() )
			{
				m_DlgLogin.EnableWindow() ;
				m_DlgLogin.SetFocus() ;	
				DXSetSoundVolume(75);				
			}
			else if ( m_DlgRoleCreate.m_bShow && !m_DlgRoleCreate.IsWindowEnabled() )
			{
				m_DlgRoleCreate.ShowWindow(SW_SHOW) ;
				m_DlgRoleCreate.EnableWindow();
			}
		}
		break ;
	case ON_ROLECREATE_CREATE:
		m_DlgRoleCreate.ShowWindow(SW_HIDE);
		m_DlgRoleCreate.EnableWindow( false ) ;
		m_DlgConfirm.SetConfirmDlg( ROLECREATE_CONFIRM ) ;
		break ;
	case ON_MIN:
		if ( !m_bExit )
		{
			CMyShellDlg::GetParent()->ShowWindow ( SW_SHOWMINIMIZED ) ;
			m_DlgTitleBar.ShowWindow ( SW_HIDE ) ;
		}
		break ;
	case ON_HELPDLG_SHOW:
		CMyShellDlg::ShowHelpDlg ( lParam ) ;
		break ;
	case ON_LOGIN_NEW:
		{
			DXSetSoundVolume(75);			
			m_DlgRoleCreate.ShowWindow(SW_SHOW);
			m_DlgRoleCreate.EnableWindow(true) ;
			char Acn[16];
			char Pws[16];
			m_DlgLogin.m_LoginAccountEdt.GetWindowText ( Acn, 16) ;
			m_DlgLogin.m_LoginPasswordEdt.GetWindowText ( Pws, 16) ;
			m_DlgRoleCreate.SetAcnAndPsw ( Acn, Pws ) ;
			m_DlgRoleCreate.SetFocus () ;
		}
		break ;
	case ON_ROLECHOOSE_RETURN:
		SetLoginEffectPos(m_bLogin);
		m_DlgLogin.ShowWindow ( SW_SHOW ) ;
		m_DlgLogin.SetCurLoginMode(2);
		m_DlgLogin.SetFocus() ;
		m_DlgLogin.m_LoginPasswordEdt.SetFocus();
		break ;
	case ON_ROLECHOOSE_CHOOSE:
		CMyShellDlg::CreateRole ( lParam ) ;
		break ;
	case ON_CLOSE_MDLG:
		if (m_bLogin)
			m_DlgMain.CloseCurDlg(1);
		break;
	case ON_DLGTASK_CLOSE:
		if (m_DlgTask.m_bShow)
			m_DlgTask.EnableWindow(false);
		break;
	case ON_EMOTION_INSERT:
		{
			m_DlgMain.m_DlgTalk.InsertEmotion(lParam);
			if(m_DlgMain.m_DlgEmotion.m_bShow)
				m_DlgMain.m_DlgEmotion.EnableWindow (false);
		}
		break;
	case ON_DLGEMOTION_OPEN:
		{
			if (m_DlgMain.m_DlgEmotion.m_bShow) 
				m_DlgMain.m_DlgEmotion.EnableWindow (false);
			else
			{
				if (m_DlgLog.IsWindowVisible ())
					m_DlgLog.ShowWindow (SW_HIDE);
				if (m_DlgMain.m_DlgMpcGoods.m_bShow) 
					m_DlgMain.m_DlgMpcGoods.EnableWindow (false);
				m_DlgMain.m_DlgEmotion.EnableWindow ();
			}
		}
		break;
	case ON_TALK_CLOSE:
		m_DlgMain.OnShellEnter () ;
		break ;
	case ON_MSGDLG_POINT:
		m_MsgDlgPnt.x = LOWORD ( lParam ) ;
		m_MsgDlgPnt.y = HIWORD ( lParam ) ;
		break ;
	case ON_MSGDLG_GOODS:
		g_bMouseMoveIn = true ;
		m_uMsgDlgType = ON_MSGDLG_GOODS ;
		m_dwMsgDlgOwner = lParam ;
		break ;
	case ON_MSGDLG_IMAGE:
		g_bMouseMoveIn = true ;
		m_uMsgDlgType = ON_MSGDLG_IMAGE;
		m_dwMsgDlgOwner = lParam ;
		break ;
	case ON_MSGDLG_FACE:
		g_bMouseMoveIn = true ;
		m_uMsgDlgType = ON_MSGDLG_FACE;
		m_dwMsgDlgOwner = lParam ;
		break ;
	case ON_MSGDLG_HIDE:
		g_bMouseMoveIn = false ;
		if ( !m_bExpShow )
			g_objGameMap.SetShowExpFlag ( false ) ;
		break ;
	case ON_MSGDLG_STATIC:
		g_bMouseMoveIn = true ;
		m_uMsgDlgType = ON_MSGDLG_STATIC ;

		// 判断是否点击按钮
		if (0xFF000000 == (0xFF000000 & lParam))
		{
			// 判断是一直显示进度槽
			// 是
			if (m_dwProgressNumber != (0xFFFFFF & lParam))
			{
				m_dwProgressNumber = 0xFFFFFF & lParam;
				m_bProgressHold = true;
				m_HoldX = 0;
				m_HoldY = 0;
			}

			// 否
			else
			{
				m_bProgressHold = false;
			}

			lParam &= 0xFFFFFF;
		}
		m_btStaticID = lParam ;
		break ;
	case ON_MSGDLG_TEST:
		break ;
	case ON_ICON_PICKUP:
		CMyShellDlg::OnIconPickUp ( lParam ) ;
		break ;
	case ON_ICON_DROP:
		CMyShellDlg::OnIconDrop ( lParam ) ;
		break ;
	case ON_ICON_ID:
		m_IconTypeID = lParam ;
		break ;
	case ON_ICON_PNT:
		m_IconMousePnt.x = HIWORD ( lParam ) ;
		m_IconMousePnt.y = LOWORD ( lParam ) ;
		break ;
	case ON_ICON_TRADE:
		CMyShellDlg::OnIconTrade ( lParam ) ;
		break ;
	case ON_ICON_USE:
		if ( !g_bPickUp )
		{
			CMyShellDlg::OnIconUse ( lParam ) ;
		}
		break ;
	case ON_ICON_QUSE:
		CMyShellDlg::OnIconQUse ( lParam ) ;
		break ;
	case ON_ICON_BUY:
		CMyShellDlg::OnIconBuy ( lParam ) ;
		break ;
	case ON_MONSTERHEAD_SET:
		m_DlgMain.m_DlgMonsterHeads.SetMonsterHeads (lParam);
		break;
	case ON_CHECKOUTEGG_ACCEPT:
		{
			CItem* pItem = g_objHero.GetPackageItemByIndex(lParam);
			if (pItem && pItem->GetPackageType() == PACKAGE_EGG
				&& g_objHero.GetPackageType() == PACKAGE_EUDEMON_BROODER)
			{
				if ( g_objHero.GetItemAmount(PACKAGE_EGG) >= g_objHero.GetPackageLimit (PACKAGE_EGG))
				{
					g_objGameMsg.AddMsg ( (char*)g_objGameDataSet.GetStr(10699) ) ;	
					m_DlgMain.m_DlgMonsterHatch.m_GridEggs.ReSumePickUp();
					return;
				}
				g_objHero.CheckOutItem(pItem->GetID());
			}
		}
		break;
	case ON_FACTION_RENAME:
		break;
	case ON_FACTION_ADDENEMY:
		if (g_objHero.IsSynLeader())
			m_DlgConfirm.SetConfirmDlg(36,NULL);
		break;
	case ON_FACTION_ADDALLY:
		if (g_objHero.IsSynLeader())
		{
			if (m_DlgMain.m_DlgKnightage.m_bShow) 
			{
				m_DlgMain.m_DlgKnightage.EnableWindow(false);
				m_DlgMain.m_uCurRDlgID = -1;				
			}
			g_objGameMsg.AddMsg ( ( char* )g_objGameDataSet.GetStr ( 10345 ) ) ;
			m_uCmd = CMD_ADDALLY ;
//			m_DlgConfirm.SetConfirmDlg(35,NULL);
		}
		break;
	case ON_FACTION_ADDALLYOK:
		if (g_objHero.IsSynLeader())
		{
			g_objHero.AddAllySyn(lParam);
		}
		break;
	case ON_MONSTER_OPTION:
		{
			for(int i=0;i< g_objHero.GetItemAmount (PACKAGE_PET);i++)
			{
				CItem* pItem  = g_objHero.GetItemByIndex (i,PACKAGE_PET);
				if (pItem && pItem->GetID () == lParam)
				{
					m_DlgMain.m_DlgMonster.SetCurMonster (i);
					break;
				}
			}
		}
		break;
	case ON_MONSTER_CALL:
		{
			m_DlgMain.m_DlgMonsterHeads.AddCallMonster(lParam);
		}
		break;
	case ON_MONSTER_KILL:
		{
			m_DlgMain.m_DlgMonsterHeads.DelCallMonster(lParam);
		}
		break;
	case ON_MONSTER_CHOOSE:
		CMyShellDlg::OnMonsterChoose(lParam);
		break;
	case ON_ANNOUNCEINFO_OPEN:
		m_DlgMain.m_DlgAnnounceInfo.SetInfoMode(0);
		break;
	case ON_MPCGOODS_CLOSE:
		CMyShellDlg::OnMpcGoodsClose ( ) ;
		break ;
	case ON_MPCGOODS_MONEYDROP:
		m_DlgConfirm.SetConfirmDlg( 5, NULL ) ;
		break ;
	case ON_MONSTER_DROP:
		m_DlgConfirm.SetConfirmDlg( 32,NULL);
		break;
	case ON_MONSTERDROP_ACCEPT:
		m_DlgMain.m_DlgMonster.DropMonster();
		break;
	case ON_NPCBUY_CLOSE:
		m_DlgMain.m_uCurRDlgID = -1 ;
		m_bIconFix = false ;
		if ( m_DlgMain.m_DlgMpcGoods.m_bShow )
			m_DlgMain.m_DlgMpcGoods.EnableWindow( false ) ;
		if(m_DlgMain.m_DlgQuery.m_bShow)
            m_DlgMain.m_DlgQuery.EnableWindow(false);
		if ( g_bPickUp && m_PickUpDlgID == DLG_NPCBUY )
		{
			CMyShellDlg::OnIconDrop ( DLG_ALL ) ;
			g_bPickUp = false ;
		}
		m_DlgMain.m_DlgMpcGoods.SetGridContain ();
		m_DlgMain.m_DlgMpcGoods.SetStoneGrid();
		break ;
	case ON_MAIN_TRADE:
		g_objGameMsg.AddMsg ( ( char* )g_objGameDataSet.GetStr ( 10065 ) ) ;//"请用鼠标左键选取交易对象" ) ;//
		m_uCmd = CMD_TRADE ;
		break ;

⌨️ 快捷键说明

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