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

📄 regentoolview.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	mp->RegenFlag = TRUE;
	mp->MHandle = fighter;
	m_GroupEdit.GetWindowText(szGroup);
	mp->MonsterGroup = (WORD)atoi(szGroup);
	pDoc->AddSelectMonsterPoint(mp);
	pDoc->AddGroupMonsterCount(szGroup);
	pDoc->AddCount();
	AddListIndex();
	AddMonsterIndex();

	DIRECTORYMGR->SetLoadMode(eLM_Root);
	return;
}

void CRegenToolView::DeleteMonster(CPoint point)
{
/*	CRegenToolDoc* pDoc = GetDocument();
	pDoc->SubCount();
	if(GetMonsterIndex()==START_MONSTERINDEX)
		return;
	ReleaseMonsterIndex();
	pDoc->ReleaseGroupMonsterCount();
*/		
}
BOOL CRegenToolView::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	delete g_pMouse;
	MAP->Release();
	g_pExecutive->Release();
	
	CoFreeUnusedLibraries();
	CoUninitialize();
	return CFormView::DestroyWindow();
}

POINT* CRegenToolView::CalcSelectPoint(CPoint point)
{
	CWnd * wnd = GetDlgItem(IDC_MAPIMAGE);
	CRect wrect, crect, prect;
	static POINT ViewMousePos;
	//	POINT pos;
	wnd->GetWindowRect(&wrect);	// 傈眉 扩档快 扁霖俊辑狼 ImageView Rect
	wnd->GetClientRect(&crect);	// 磊扁磊脚 扁霖俊辑狼 ImageView Rect
	CWnd* pWnd = wnd->GetParent();
	pWnd->GetWindowRect(&prect); // 磊扁 何葛FromView扁霖俊辑狼 ImageView Rect 
	
	// 傈眉 扩档 扁霖俊辑 FromView扁霖阑 哗搁 FormView俊辑 磊扁磊脚鳖瘤狼 荤捞蔼捞 唱柯促.
	// 捞蔼阑 ImageBox狼 矫累 谅钎肺 汲沥窍绊 付快胶 谅钎俊辑 捞蔼阑 哗搁 沥犬茄 器牢飘啊 唱柯促.
	CRect ImageBox;
	ImageBox.left = wrect.left - prect.left; 
	ImageBox.top = wrect.top - prect.top;
	ImageBox.SetRect(ImageBox.TopLeft(), wrect.BottomRight());
	ViewMousePos.x = point.x - ImageBox.left;
	ViewMousePos.y = point.y - ImageBox.top;

	g_ScreenInfo.dwWidth = crect.right;
	g_ScreenInfo.dwHeight = crect.bottom;
	if(ViewMousePos.x > crect.left && ViewMousePos.y > crect.top &&
		ViewMousePos.x < crect.right && ViewMousePos.y < crect.bottom)
		return &ViewMousePos;
	return NULL;
}

void CRegenToolView::OnFileSave() 
{
	// TODO: Add your command handler code here
	char Filter[] = "TXT format(*.txt)|*.txt|MAP format(*.map)|*.map|BMP format(*.bmp)|*.bmp|All format(*.*)|*.*|";
	CFileDialog fileDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY, Filter);
	CRegenToolDoc* pDoc = GetDocument();
	
	if(fileDlg.DoModal() == IDOK)
	{
		CString data = fileDlg.GetPathName();
		pDoc->OnSaveDocument(data);
	}
	

}

void CRegenToolView::LoadDataInsert(CString filename)
{
	CRegenToolDoc* pDoc = GetDocument();
	DWORD MaxObjectNum = 0;
	WORD GroupProperty = 0;
	WORD MonsterGroup = 0;
	CString szGroupName;
	CString szGroup;

	pDoc->RemoveAllConditionList();
	pDoc->RemoveAllMonsterList();

	g_pExecutive->DeleteAllGXObjects();
	
	if(GetStartSelectFlag())
	{
		
		CMHFile file;
		if(!file.Init((LPTSTR)(LPCTSTR)filename, "rt"))
			return ;
		
		char buff[256];
		while(1)
		{
			if(file.IsEOF())
			{
				break;
			}
			file.GetString(buff);
			if(buff[0] == '}')
			{	
				continue;
			}
			if(buff[0] == '{')
			{
				continue;
			}
			if(buff[0] == '@')
			{
				file.GetLine(buff, 256);
				continue;
			}
			strcpy(buff, _strupr(buff));
			CMD_ST(buff)
			CMD_CS("$GROUP")
				MonsterGroup = file.GetWord();
				szGroup.Format("%d", MonsterGroup);
			CMD_CS("#MAXOBJECT")
				MaxObjectNum = file.GetDword();
			CMD_CS("#PROPERTY")
				GroupProperty = file.GetWord();
			CMD_CS("#GROUPNAME")
				strcpy((LPTSTR)(LPCTSTR)szGroupName,file.GetString());
			
				LIST_CONDITION* Condition = new LIST_CONDITION;
				Condition->ConditionNum = 0;
				Condition->wRegenCount = 0;
				Condition->szGroupNum = szGroup;
				Condition->szGroupName = szGroupName;
				Condition->szGroupProperty.Format("%d", GroupProperty);

				CRegenToolDoc* pDoc = GetDocument();
				pDoc->AddCondition(Condition);
				m_ConditionAllCheckFlag = TRUE;
				
			CMD_CS("#ADDCONDITION")
				ADD_PROPERTY proper;// = new ADD_PROPERTY;
				proper.szTargetGroupID.Format("%d", file.GetDword());
				proper.szCondition.Format("%4.2f", file.GetFloat());
				proper.szRegenTime.Format("%d", file.GetDword());
				pDoc->AddProperty(szGroup, &proper);
			CMD_CS("#ADD")
				MONSTER_POINT* mp = new MONSTER_POINT;
				mp->MonsterGrade = file.GetInt();
				mp->MonsterIndex = file.GetDword();
				mp->MonsterKind = file.GetWord();
				mp->MonsterGroup = MonsterGroup;
				mp->point.x = file.GetFloat();
				mp->point.y = file.GetFloat();
				mp->RegenFlag = file.GetBool();
				
				DIRECTORYMGR->SetLoadMode(eLM_Monster);
				

				CWnd * wnd = GetDlgItem(IDC_MAPIMAGE);
				CRect rect;
				
				// 甘俊 阁胶磐 眠啊
				BASE_MONSTER_LIST& mlist = g_pLoadList->m_MonsterList[mp->MonsterKind-1];
				GXOBJECT_HANDLE fighter  = g_pExecutive->CreateGXObject(mlist.ChxName , MHPlayerPROC,0,0);
				if(!fighter)
					fighter  = g_pExecutive->CreateGXObject("L008.chx", MHPlayerPROC,0,0);
				
				
				VECTOR3 TargetPos;
				TargetPos.x = mp->point.x;
				TargetPos.y = 0;
				TargetPos.z = mp->point.y;

				VECTOR3 MonsterMapPos;
				VECTOR3 MonsterAnger;
				float aaa;
				g_pExecutive->GXOEnableHFieldApply(fighter);
				g_pExecutive->GXOSetPosition(fighter, &TargetPos, FALSE);
				g_pExecutive->GXOGetPosition(fighter, &MonsterMapPos);
				g_pExecutive->GXOGetDirection(fighter, &MonsterAnger, &aaa);
				CRegenToolDoc* pDoc = GetDocument();


				mp->MHandle = fighter;
				pDoc->AddSelectMonsterPoint(mp);
				pDoc->AddGroupMonsterCount(szGroup);
				pDoc->AddCount();
				AddListIndex();
				AddMonsterIndex();

				DIRECTORYMGR->SetLoadMode(eLM_Root);
			CMD_EN
		}
	}
	

}


void CRegenToolView::OnSelchangeFunccombo() 
{
	// TODO: Add your control notification handler code here
	WORD count = (WORD)m_FuncKind.GetCurSel();
	switch(count)
	{
	case eMonster_Regen:
		{
			// MonsterKind Combo Setting  ------------------------------------------
			m_MonsterKind.ShowWindow(SW_SHOW);
			m_SubComboStatic.ShowWindow(SW_SHOW);
			m_NpcKind.ShowWindow(SW_HIDE);
			
			m_SubComboStatic.SetWindowText(TMONSTER);
			UpdateData(FALSE);
			//------------------------------------------------------------------
	
			// Monster Control Show -----------------------------------------------
			m_Condition1GroupBox.ShowWindow(SW_SHOW);
			m_GroupStatic.ShowWindow(SW_SHOW);
			m_GroupEdit.ShowWindow(SW_SHOW);
			m_GroupSpin.ShowWindow(SW_SHOW);
			m_GroupNameStatic.ShowWindow(SW_SHOW);
			m_GroupNameEdit.ShowWindow(SW_SHOW);
			m_GroupPropertyStatic.ShowWindow(SW_SHOW);
			m_GroupPropertyEdit.ShowWindow(SW_SHOW);
			m_GroupPropertySpin.ShowWindow(SW_SHOW);
			
			m_Condition2GroupBox.ShowWindow(SW_SHOW);
			m_TargetGroupIDStatic.ShowWindow(SW_SHOW);
			m_TargetGroupIDEdit.ShowWindow(SW_SHOW);
			m_TargetGroupIDSpin.ShowWindow(SW_SHOW);
			m_ConditionStatic.ShowWindow(SW_SHOW);
			m_ConditionEdit.ShowWindow(SW_SHOW);
			m_ConditionSpin.ShowWindow(SW_SHOW);
			m_RegenTimeStatic.ShowWindow(SW_SHOW);
			m_RegenTimeEdit.ShowWindow(SW_SHOW);
			m_RegenTimeSpin.ShowWindow(SW_SHOW);
			
			m_AllConditionGroupBox.ShowWindow(SW_SHOW);
			m_ConditionAllOKBtn.ShowWindow(SW_SHOW);
			
			m_ListViewBtn.ShowWindow(SW_SHOW);
			//-------------------------------------------------------------
		}
		break;
	case eNpc_Regen:
		{
			// NPCKind Combo Setting  ------------------------------------------
			m_MonsterKind.ShowWindow(SW_HIDE);
			m_SubComboStatic.ShowWindow(SW_SHOW);
			m_NpcKind.ShowWindow(SW_SHOW);
			
			m_SubComboStatic.SetWindowText(TNPC);
			UpdateData(FALSE);
			//------------------------------------------------------------------

			// Monster Control Hide -----------------------------------------------
			m_Condition1GroupBox.ShowWindow(SW_HIDE);
			m_GroupStatic.ShowWindow(SW_HIDE);
			m_GroupEdit.ShowWindow(SW_HIDE);
			m_GroupSpin.ShowWindow(SW_HIDE);
			m_GroupNameStatic.ShowWindow(SW_HIDE);
			m_GroupNameEdit.ShowWindow(SW_HIDE);
			m_GroupPropertyStatic.ShowWindow(SW_HIDE);
			m_GroupPropertyEdit.ShowWindow(SW_HIDE);
			m_GroupPropertySpin.ShowWindow(SW_HIDE);
			
			m_Condition2GroupBox.ShowWindow(SW_HIDE);
			m_TargetGroupIDStatic.ShowWindow(SW_HIDE);
			m_TargetGroupIDEdit.ShowWindow(SW_HIDE);
			m_TargetGroupIDSpin.ShowWindow(SW_HIDE);
			m_ConditionStatic.ShowWindow(SW_HIDE);
			m_ConditionEdit.ShowWindow(SW_HIDE);
			m_ConditionSpin.ShowWindow(SW_HIDE);
			m_RegenTimeStatic.ShowWindow(SW_HIDE);
			m_RegenTimeEdit.ShowWindow(SW_HIDE);
			m_RegenTimeSpin.ShowWindow(SW_HIDE);
			
			m_AllConditionGroupBox.ShowWindow(SW_HIDE);
			m_ConditionAllOKBtn.ShowWindow(SW_HIDE);
			
			m_ListViewBtn.ShowWindow(SW_HIDE);
			//------------------------------------------------------------------
		}
		break;
	case eLogin_Point:
		{
			
//			m_SubComboStatic.SetWindowText(TLOGIN);
		}
		break;
	case eChangeMap_Point:
		{

//			m_SubComboStatic.SetWindowText(TCHANGEMAP);
		}
		break;
	case eMap_Attribute:
		{

//			m_SubComboStatic.SetWindowText(TATTRIBUTE);
		}
		break;
	}
	
}

void CRegenToolView::OnConditionallok() 
{
	// TODO: Add your control notification handler code here
	CString temp;
	LIST_CONDITION* Condition = new LIST_CONDITION;
	Condition->ConditionNum = 0;
	Condition->wRegenCount = 0;
	m_GroupEdit.GetWindowText(temp);
	Condition->szGroupNum = temp;
	m_GroupNameEdit.GetWindowText(temp);
	Condition->szGroupName = temp;
	m_GroupPropertyEdit.GetWindowText(temp);
	Condition->szGroupProperty = temp;
	
	
	ADD_PROPERTY proper;
	m_TargetGroupIDEdit.GetWindowText(temp);
	proper.szTargetGroupID = temp;
	m_ConditionEdit.GetWindowText(temp);
	proper.szCondition = temp;
	m_RegenTimeEdit.GetWindowText(temp);
	proper.szRegenTime = temp;

	CRegenToolDoc* pDoc = GetDocument();
	pDoc->AddCondition(Condition);
	pDoc->AddProperty(Condition->szGroupNum, &proper);
	m_ConditionAllCheckFlag = TRUE;

}

void CRegenToolView::OnListview() 
{
	// TODO: Add your control notification handler code here
	if(!m_ListViewDlg)
	{
		m_ListViewDlg = new CMonsterListViewDlg;
		m_ListViewDlg->Create(this);
		m_ListViewDlg->ShowWindow(SW_SHOW);
	}
	else
	{
		m_ListViewDlg->DestroyWindow();
		delete m_ListViewDlg;
		m_ListViewDlg = NULL;
		m_ListViewDlg = new CMonsterListViewDlg;
		m_ListViewDlg->Create(this);
		m_ListViewDlg->ShowWindow(SW_SHOW);
	}
}
void CRegenToolView::OnAddcondition() 
{
	// TODO: Add your control notification handler code here
	CString temp;
	CString group;
	CRegenToolDoc* pDoc = GetDocument();
	m_GroupEdit.GetWindowText(group);
	ADD_PROPERTY proper;
	m_TargetGroupIDEdit.GetWindowText(temp);
	proper.szTargetGroupID = temp;
	m_ConditionEdit.GetWindowText(temp);
	proper.szCondition = temp;
	m_RegenTimeEdit.GetWindowText(temp);
	proper.szRegenTime = temp;
	pDoc->AddProperty(group, &proper);
}

void CRegenToolView::OnSelchangeMoncombo() 
{
	// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	WORD count = (WORD)m_MonsterKind.GetCurSel();
	BASE_MONSTER_LIST& mlist = g_pLoadList->m_MonsterList[count];

//	m_NumTIT.Format("Num");
//	m_RangeTIT.Format("Range");
//	m_TimeTIT.Format("Re_Time");

	CEngineObject* pMonster = new CEngineObject;
	int kind = mlist.MonsterKind;
	strcpy(m_MonsterChxName,mlist.ChxName);
		
	UpdateData(FALSE);
}

void CRegenToolView::OnKillfocusGroupedit() 
{
	// TODO: Add your control notification handler code here
	CString temp;
	m_GroupEdit.GetWindowText(temp);
	m_TargetGroupIDEdit.SetWindowText(temp);
	
}


void CRegenToolView::OnGrade1() 
{
	// TODO: Add your control notification handler code here
	m_MonsterGrade = BASIC_MONSTER;
}

void CRegenToolView::OnGrade2() 
{
	// TODO: Add your control notification handler code here
	m_MonsterGrade = BOSS_MONSTER;
}

void CRegenToolView::OnGrade3() 
{
	// TODO: Add your control notification handler code here
	m_MonsterGrade = SPECIAL_MONSTER;
}

void CRegenToolView::OnLoadmapbtn() 
{
	// TODO: Add your control notification handler code here
	CMapSelectDlg MapSelectDlg;
	MapSelectDlg.DoModal();
}

void CRegenToolView::OnDestroy() 
{
	if(m_ListViewDlg)
	{
		m_ListViewDlg->DestroyWindow();
		delete m_ListViewDlg;
		m_ListViewDlg = NULL;
	}
	CFormView::OnDestroy();
	
	// TODO: Add your message handler code here
	
	if(g_pLoadList)
	{
		delete g_pLoadList;
		g_pLoadList = NULL;
	}
	if(g_pMouse)
	{
		delete g_pMouse;
		g_pMouse = NULL;
	}
	DeleteDC(m_hMemDC);
}

⌨️ 快捷键说明

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