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