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

📄 myshelldlg.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		case CMD_NORMAL:
		case CMD_ATK:
			if (nFlags&MK_CONTROL)
			{
				if (g_objHero.TestStatus(USERSTATUS_XPFULL))
				{
					if (pTarget)			
					{
						CMyShellDlg::AttackMagicXp();
					}
				}
				else
					g_objHero.LockAttack (pTarget, true);
			}
			else if ( nFlags&MK_SHIFT && !pTarget->IsNpc () )
			{
				m_DlgMain.m_DlgTalk.SetTalkTarget ( pTarget ) ;
				g_objHero.Direction ( nTargetX, nTargetY ) ;
			}	
			else
			{
				OBJID idItem = ID_NONE;
				CMyPos ItemPos;
				if (( g_objHero.GetPkMode () != PKMODE_MONSTERONLY || pTarget->IsNpc () ) && !pTarget->TestStatus(USERSTATUS_DIE))
					g_objHero.LockAttack (pTarget) ;
				else if ( !g_bPickUp && (idItem = g_objGameMap.Get2DFocusMapItem (ItemPos)) != ID_NONE )
				{
					//CMyPos ItemPos ;
					//g_objGameMap.Mouse2Cell(point.x, point.y, ItemPos.x, ItemPos.y);
					CMyShellDlg::PickMapItem ( idItem, ItemPos.x, ItemPos.y ) ;
					return ;
				}
			}
			break;
		case CMD_TRADE:
			{
				if ( pTarget->IsPlayer() )
				{
					if (pTarget->IsDead()) 
					{
						g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(10713)); //不允许与亡灵进行交易!
					}
					else
						g_objHero.ApplyTrade ( pTarget ) ;
				}
			}
			break ;
		case CMD_TEMJOIN:
			if ( pTarget->IsPlayer() )
			{
				if (pTarget->IsDead()) 
				{
					g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100066)); //错误的申请对象!					
				}
				else				
					g_objHero.TeamApplyJion ( pTarget->GetID () ) ;
			}
			break ;
		case CMD_TEMINVITE:
			if ( pTarget->IsPlayer() )
			{
				if (pTarget->IsDead()) 
				{
					g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100066)); //错误的申请对象!					
				}
				else				
					g_objHero.TeamInvite ( pTarget->GetID () ) ;
			}
			break ;
		case CMD_FACJOIN:
			if ( pTarget->IsPlayer()) 
			{
				if (pTarget->IsDead()) 
				{
					g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100066)); //错误的申请对象!					
				}				
				else if (pTarget->GetSyndicateRank() != 100) 
				{
					char msg[128]="";
					sprintf(msg, (char*)g_objGameDataSet.GetStr(100068), pTarget->GetName());
					g_objGameMsg.AddMsg(msg);
				}
				else					
					g_objHero.SyndicateApplyJoin ( pTarget->GetID () ) ;
				m_DlgMain.OnMainFaction();				
			}
			break ;
		case CMD_FACINVITE:
			if (pTarget->IsDead()) 
			{
				g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100066)); //错误的申请对象!					
			}
			else if (pTarget->GetSydicateID() != ID_NONE) 
			{
				g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100073)); //对方已有军团!									
			}
			else		
				g_objHero.SyndicateApplyInvite ( pTarget->GetID () ) ;
			m_DlgMain.OnMainFaction();
			break ;
		case CMD_MPCCOURT:
			g_objHero.Court(pTarget);
			break;
		case CMD_DIVORCE:
			g_objHero.Divorce(pTarget);
			break;
		case CMD_FRDMAKE:
			g_objHero.MakeFriend(pTarget->GetID());
			break;
		case CMD_FRDBREAK:
			g_objHero.BreakOffFriend(pTarget->GetID());
			break;
		case CMD_NPCEQUIP:
			g_objHero.m_objPlayerDummy.LockDummy ( pTarget->GetID () ) ;
			break ;
		case CMD_TEACHERREQ:
			if (pTarget->IsPlayer())
			{
				if (pTarget->IsDead ()) 
					g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(10775));	//10775=错误对象!				
				else
					g_objHero.TeacherApply(pTarget->GetID());
			}
			break;
		case CMD_STUDENTREQ:
			if (pTarget->IsPlayer())
			{
				if (pTarget->IsDead ()) 
					g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(10775));	//10775=错误对象!	
				else
					g_objHero.StudentApply(pTarget->GetID());
			}
			break;
		case CMD_USEITEMTO:
			if (pTarget->IsPlayer() || pTarget->IsMonster() || pTarget->IsPet())
			{
				CItem* pItem = g_objHero.GetItem(m_IconRealID);
				if (pItem)
					g_objHero.UseItem(pItem->GetID(),pTarget->GetID());
			}
			break;	
		case CMD_ADDALLY:
			if (pTarget->IsPlayer() && !pTarget->IsDead()) 
			{
				if (pTarget->IsDead()) 
				{
					g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100066)); //错误的申请对象!					
				}
				else  if (pTarget->GetSyndicateRank() == RANK_LEADER) 
					g_objHero.AddAllySyn(pTarget->GetID());
				else
					g_objGameMsg.AddMsg((char*)g_objGameDataSet.GetStr(100076)); //对方不是军团长!
			}
			break;
		}

		// reset cmd now...
		m_uCmd	=CMD_NORMAL;
		return;
	}
	else
	{
		if ( m_uCmd == CMD_LAY )
		{
			g_objHero.FixMousePlayer () ;
			m_uCmd = CMD_NORMAL ;
			return ;
		}
		if (m_uCmd == CMD_TEMINVITE)
		{
			DWORD dwNFlag = PLAYER_NORMAL;
			dwNFlag |= PLAYER_INCLUDEDEAD;
			CPlayer* pMember = g_objPlayerSet.GetFocusPlayer(dwNFlag);
			if (pMember && pMember->GetRoleType() == _ROLE_PLAYER && pMember->IsDead())
			{
				g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(10703));
				if (m_DlgMain.m_DlgGroup.m_bShow)
					m_DlgMain.m_DlgGroup.EnableWindow(false);
				return;
			}
		}
		if (m_uCmd == CMD_TEMJOIN )
		{
			DWORD dwNFlag = PLAYER_NORMAL;
			dwNFlag |= PLAYER_INCLUDEDEAD;
			CPlayer* pMember = g_objPlayerSet.GetFocusPlayer(dwNFlag);
			if (pMember && pMember->GetRoleType() == _ROLE_PLAYER && pMember->IsDead())
			{	
				g_objGameMsg.AddMsg(g_objGameDataSet.GetStr(10704));
				if (m_DlgMain.m_DlgGroup.m_bShow)
					m_DlgMain.m_DlgGroup.EnableWindow(false);
				return;
			}
		}

		int nPosX, nPosY;
		int nNpcType = 0;
		OBJID idNpcFocus = ID_NONE;
		g_objGameMap.Mouse2Cell(point.x, point.y, nPosX, nPosY);
		CMyPos Pos = { nPosX, nPosY };

		if ( nFlags&MK_SHIFT )
		{
			OBJID idItem = ID_NONE;
			CMyPos posItem;
			
			if ( !g_bPickUp && (idItem = g_objGameMap.Get2DFocusMapItem (posItem)) != ID_NONE )
			{
				CMyShellDlg::PickMapItem ( idItem, posItem.x, posItem.y ) ;
			}
			else
				g_objHero.Direction ( nPosX, nPosY ) ;
			return ;
		}
		else if ((nFlags&MK_CONTROL) &&g_objHero.TestStatus(USERSTATUS_XPFULL))
		{
			for(int i=0;i<g_objHero.GetXpSkillAmount();i++)
			{
				CMagic* pXp = g_objHero.GetXpSkillByIndex(i);
				if (pXp && pXp->GetIDType() == m_XpID)
				{
//					if(pXp->TestTarget ( MAGIC_TARGET_NONE ) || pXp->m_infoMagicType.dwActionSort == MAGICSORT_LINE)
						CMyShellDlg::AttackMagicXp();
				}
			}
		}
		else
		{
			OBJID idItem = ID_NONE;
			CMyPos posItem;

			CPlayer* pPlayer = g_objPlayerSet.GetFocusPlayer();
			if ( g_bPickUp )
			{
				switch ( m_PickUpDlgID )
				{
				case DLG_MONSTEREGG:
					CMyShellDlg::DropMapItem ( point.x, point.y ,PACKAGE_EGG);
					break;					
				case DLG_STONEGOODS0:
					CMyShellDlg::DropMapItem ( point.x, point.y ,PACKAGE_SOUL);
					break;
				case DLG_MPCGOODS:
					CMyShellDlg::DropMapItem ( point.x, point.y );
					break ;
				case DLG_EQUIP:
					g_bPickUp = false ;
					m_DlgMain.m_DlgQuery.m_DlgEquip.FlashEquip();
					break ;
				case DLG_MAIN:
					g_bPickUp = false ;
					break ;
				default:
					break ;
				}
				return ;
			}
			else if ( !g_bPickUp && (idItem = g_objGameMap.Get2DFocusMapItem (posItem)) != ID_NONE )
			{
				CMyPos posHero ;
				g_objHero.GetPos ( posHero.x, posHero.y ) ;
				if ( nFlags&MK_CONTROL && !( posHero.x == posItem.x && posHero.y == posItem.y ) )
					g_objHero.Run(nPosX, nPosY);
				else
					CMyShellDlg::PickMapItem ( idItem, posItem.x, posItem.y ) ;
				return ;
			}
			else if ( !g_bPickUp && pPlayer)//(idNpcFocus=g_objGameMap.GetFocusNpc ( nNpcType )) != ID_NONE)
			{
				if (pPlayer)
				{
					if ( CMD_DELNPC == m_uCmd )
					{
						m_uCmd = CMD_NORMAL ;
						g_objHero.DelNpc ( pPlayer->GetID () ) ;
						return ;
					}

					switch(pPlayer->GetRoleType())
					{
					case _AUCTION_NPC:						
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break;
					case _ROLE_STONE_MINE:
//					case _ROLE_WOOD_NPC:
//					case _ROLE_METAL_MINE:
						g_objHero.CollectRes(pPlayer->GetID());
						break;
						
					case _ROLE_SHOPKEEPER_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break;
					case _ROLE_TASK_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break;
					case _ROLE_NEIGHBOR_DOOR:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break;
					case _SYNTRANS_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break;
					case _ROLE_BOOTH_FLAG_NPC:
						if ( g_objHero.CanBooth ( pPlayer ) )
						{
							if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
							{
								m_DlgMain.CloseCurDlg();
								m_DlgMain.CloseCurDlg(1);
								m_DlgMain.CloseCurDlg(2);
								m_DlgMain.CloseNpcDlg();
								if (m_DlgTask.m_bShow)
									m_DlgTask.EnableWindow(false);
							}
							if (!m_DlgTask.m_bShow) 
								g_objHero.ActiveNpc(pPlayer->GetID());
						}
						break;
					case _TRAINPLACE_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break;
					case _ROLE_STORAGE_NPC:
					case _ROLE_TRUNCK_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}	
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break ;
					case _ROLE_FACE_NPC:
						g_objHero.ActiveNpc(pPlayer->GetID());
						break ;
					case _ROLE_FORGE_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}	
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break  ;
					case _ROLE_EMBED_NPC:
						if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
						{
							m_DlgMain.CloseCurDlg();
							m_DlgMain.CloseCurDlg(1);
							m_DlgMain.CloseCurDlg(2);
							m_DlgMain.CloseNpcDlg();
							if (m_DlgTask.m_bShow)
								m_DlgTask.EnableWindow(false);
						}
						if (!m_DlgTask.m_bShow) 
							g_objHero.ActiveNpc(pPlayer->GetID());
						break ;
					case _ROLE_STATUARY_NPC:
						if ( nFlags&MK_CONTROL && g_objHero.GetPkMode() == PKMODE_FREE )
							g_objHero.LockAttack (pPlayer, true);
						else
							g_objGameMsg.AddMsg ( ( char* ) g_objGameDataSet.GetStr ( 10352) ) ;
						break ;
					case _ROLE_SYNFLAG_NPC:
						if ( nFlags&MK_CONTROL )
							g_objHero.LockAttack (pPlayer, true);
						else if ( !(nFlags&MK_CONTROL) )
						{
							if (g_objHero.GetLastDialogPara() != pPlayer->GetID())
							{
								m_DlgMain.CloseCurDlg();
								m_DlgMain.CloseCurDlg(1);
								m_DlgMain.CloseCurDlg(2);
								m_DlgMain.CloseNpcDlg();
								if (m_DlgTask.m_bShow)
									m_DlgTask.EnableWindow(false);
							}
							if (!m_DlgTask.m_bShow) 
								g_objHero.ActiveNpc(pPlayer->GetID());
							g_objGameMsg.AddMsg ( ( char* ) g_objGameDataSet.GetStr ( 10349) ) ;
						}
						else
							g_objGameMsg.AddMsg ( ( char* ) g_objGameDataSet.GetStr ( 10349) ) ;
						break ;
					case _ROLE_BOOTH_NPC:
//						g_objHero.ActiveNpc(pPlayer->GetID());
						{
							// MpcBooth
							if ( pPlayer->GetID() == g_objHero.m_objBoothManager.GetID () )
								m_DlgMain.OpenBooth ( true ) ;
							else
							{
								if ( m_DlgMain.m_DlgTrade.m_bShow || ( m_DlgMain.m_DlgNpcBooth.m_bShow && g_objHero.GetLastDialogPara() == g_objHero.m_objBooth.GetID () ) )
								{
									g_objGameMsg.AddMsg ( ( char* ) g_objGameDataSet.GetStr ( 10398) ) ;
								}
								else
								{
									if(g_objHero.m_objBooth.Open ( pPlayer->GetID() ))
										m_DlgMain.OpenBooth ( false ) ;
								}
							}							
						}
						break ;
					case _ROLE_MAGICGOAL_NPC:
						g_objGameMsg.AddMsg ( ( char* ) g_objGameDataSet.GetStr ( 10354 ) ) ;
						break ;
					case _ROLE_WEAPONGOAL_NPC:
						g_objHero.LockAttack (pPlayer, true);
						break ;
					case _ROLE_DICE_NPC:
						if ( !m_DlgMain.m_DlgDice.m_bShow)
						{
							if (pPlayer)
								g_objHero.ActiveNpc(pPlayer->GetID());
//								m_DlgConfirm.SetConfirmDlg ( 18, NULL, pTarget->GetID () ) ;
						}
						else
							m_DlgConfirm.SetConfirmDlg ( 19 ) ;
						break ;
					case _ROLE_TARGET_NPC:
						g_objHero.LockAttack ( pPlayer, true ) ;
						break ;
					}
				}
				return ;
			}
			
			if ( !pPlayer && CMD_DELNPC == m_uCmd )

⌨️ 快捷键说明

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