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

📄 munpainfo.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				strcat(str, OptionBuff);
			}

			if( pOptionInfo->Shield != 0 )
			{
				sprintf(OptionBuff, "\n%s : +%d", "规绢仿", pOptionInfo->Shield);
				strcat(str, OptionBuff);
			}

			if( pOptionInfo->PhyAttack != 0 )
			{
				sprintf(OptionBuff, "\n%s : +%d", "拱府傍拜", pOptionInfo->PhyAttack);
				strcat(str, OptionBuff);
			}

			if( pOptionInfo->CriticalPercent != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "农府萍拿", pOptionInfo->CriticalPercent);
				strcat(str, OptionBuff);
			}

			if( pOptionInfo->PhyDefense != 0 )
			{
				sprintf(OptionBuff, "\n%s : +%d", "拱府规绢", pOptionInfo->PhyDefense);
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "拳规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "荐规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "格规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "陛规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "配规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrRegist.GetElement_Val(ATTR_NOATTR) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "公规绢", pOptionInfo->AttrRegist.GetElement_Val(ATTR_NOATTR));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "拳傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "荐傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "格傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "陛傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "配傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH));
				strcat(str, OptionBuff);
			}

			if(pOptionInfo->AttrAttack.GetElement_Val(ATTR_NOATTR) != 0.00f )
			{
				sprintf(OptionBuff, "\n%s : %.2f%%", "公傍拜", pOptionInfo->AttrAttack.GetElement_Val(ATTR_NOATTR));
				strcat(str, OptionBuff);
			}
		}
	}

	buff.Format("\n");
	strcat(str, buff.GetBuffer(0));
}

BOOL CMunpaInfo::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	POSTYPE pos;
	if( CMRButton* wnd = CheckButtonEvent(pMsg->hwnd, pos) )
	{
		char buff[1024] = {0,};
		MakeToolTip(pos, (WORD)wnd->GetData(), buff);

		if( strlen(buff) )
		{
			m_TTctrl.UpdateTipText( buff , wnd );
			m_TTctrl.RelayEvent(pMsg);
		}
	}
	
	return CLDPropPage::PreTranslateMessage(pMsg);
}

void CMunpaInfo::EnableWareHouse(BOOL bEnable)
{
	m_StatusEdit[eMunpaTemp_MONEY].EnableWindow(bEnable);

	for(int i=0;i<TABCELL_MUNPAWAREHOUSE_NUM;++i)
		m_MunpaItem[i].EnableWindow(bEnable);

	m_cbTab.EnableWindow(bEnable);
	m_btnSave.EnableWindow(bEnable);
}

void CMunpaInfo::OnSelchangeMunpaCbtab() 
{
	// TODO: Add your control notification handler code here
	char buff[256] = {0,};
	ITEM_INFO* pInfo;

	int nCurSel = m_cbTab.GetCurSel();
	int tab = nCurSel*TABCELL_MUNPAWAREHOUSE_NUM;

	// Item Setting
	for(int i=0;i<TABCELL_MUNPAWAREHOUSE_NUM;++i)
	{
		if( m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx != 0)
		{
			pInfo = GAMERESRCMNGR->GetItemInfo(m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx);
			if( pInfo )
				sprintf(buff, pInfo->ItemName);
			else
				sprintf(buff, "%d", m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx);
		}
		else
			sprintf(buff, "");

		m_MunpaItem[i].SetWindowText(buff);
		m_MunpaItem[i].SetData(m_pDocument->m_pWareHouse->WareHouse[tab+i].wIconIdx);
	}
}

TABLE_KIND	CMunpaInfo::GetTableKindByControlID(UINT nId)
{
	TABLE_KIND kind = eTK_None;

	if( nId >= IDC_MUNPA_NAME &&	nId < IDC_MUNPA_LEVEL+1 )
			kind = eTK_MunpaInfo;

	return kind;
}

void CMunpaInfo::ButtonControlCommand(UINT nId)
{
	CMRButton* pBtn = (CMRButton*)GetDlgItem( nId );
	if( !pBtn )
		return;

	WORD wPos;
	int tab, result;

	if( nId >= IDC_BTN_MUNPA1 && nId < IDC_BTN_MUNPA45+1 )
	{ // 巩颇 芒绊
		tab = m_cbTab.GetCurSel()*TABCELL_MUNPAWAREHOUSE_NUM;

		wPos = tab + nId - IDC_BTN_MUNPA1;
		ITEMBASE* origin = &m_pDocument->m_sWareHouse_org.WareHouse[wPos];
		ITEMBASE* base_before = &m_pDocument->m_pWareHouse->WareHouse[wPos];
		ITEMBASE base_after;

		ITEM_OPTION_INFO* pOptionInfoOrigin = NULL;
		ITEM_OPTION_INFO* pOptionInfo = NULL;
		ITEM_OPTION_INFO Option_after;
		if( GAMERESRCMNGR->IsOptionItem(origin->wIconIdx, origin->Durability) )
			pOptionInfoOrigin = m_pDocument->GetItemOptionInfoOrigin(origin->Durability);
		if( GAMERESRCMNGR->IsOptionItem(base_before->wIconIdx, base_before->Durability) )
			pOptionInfo = m_pDocument->GetItemOptionInfo(base_before->Durability);

		result = ItemEdit( eIF_MUNPA, wPos, base_before, base_after, pOptionInfo, Option_after );

		if( result == eMR_Cancel || result == eMR_Abort ) return;
		if( result == eMR_Delete )
		{
			if( MessageBox("沥富肺 昏力窍矫摆嚼聪鳖?",NULL, MB_YESNO) == IDNO )
				return;
		}
		
		base_after.Position = TP_MUNPAWAREHOUSE_START + wPos;
		ResultItemEdit( eIF_MUNPA, result, TP_MUNPAWAREHOUSE_START + wPos, nId, origin, pOptionInfoOrigin, base_before, &base_after, pOptionInfo, &Option_after );
	}
	else
	{ // 贸府 救窃.
	}
}

void CMunpaInfo::EditControlCommand(UINT nId)
{
	WORD wPos;
	CChangeData* pData = NULL;
	CString str1, str2;
	DWORD before_data, after_data;

	if( nId >= IDC_MUNPA_NAME && nId < IDC_MUNPA_LEVEL+1 )
	{
		wPos = (WORD)(nId - IDC_MUNPA_NAME);	// Tool 单捞磐狼 硅凯牢郸胶

		BYTE type = 0;
		/////////////////////////////////////////////////////
		// error check (捞傈 单捞磐肺 傈券)
		TABLE_KIND kind = GetTableKindByControlID(nId);

		if( m_StatusEdit[wPos].GetWindowTextLength() == 0 || kind == eTK_None )
		{
			if( m_StatusEdit[wPos].IsTextTypeData() )
				m_StatusEdit[wPos].GetStringData(str1.GetBuffer(0));
			else
			{
				before_data = m_StatusEdit[wPos].GetData();
				str1.Format("%d", before_data);
			}

			m_StatusEdit[wPos].SetWindowText(str1);
			m_StatusEdit[wPos].SetChanged(FALSE);
			return;
		}

		// 函版等 单捞磐啊 乐绰瘤 眉农茄促.
		if( !m_StatusEdit[wPos].IsChanged() )
			return;
		else
			m_StatusEdit[wPos].SetChanged(FALSE);
		/////////////////////////////////////////////////////

		// str1:函版Data, str2:捞傈Data
		m_StatusEdit[wPos].GetWindowText(str2);
		if( m_StatusEdit[wPos].IsTextTypeData() )
		{
			m_StatusEdit[wPos].GetStringData(str1.GetBuffer(0));

			if( strcmp(str1, str2) == 0 ) // 函版等 单捞鸥啊 鞍篮版快
			{
				CMREdit* pEdit = (CMREdit*)GetDlgItem(nId);
				pEdit->ResetEditTextColor();
				pEdit->SetInSave(FALSE);
				m_pDocument->GetChangeManager()->Delete(nId);
				return;
			}
		}
		else
		{
			before_data = m_StatusEdit[wPos].GetData();
			m_StatusEdit[wPos].CheckMaxValue(str2.GetBuffer(0));
			m_StatusEdit[wPos].GetWindowText(str2);

			after_data = (DWORD)atoi(str2.GetBuffer(0));

			if( before_data == after_data )
			{
				CMREdit* pEdit = (CMREdit*)GetDlgItem(nId);
				pEdit->ResetEditTextColor();
				pEdit->SetInSave(FALSE);
				m_pDocument->GetChangeManager()->Delete(nId);
				return;
			}

			str1.Format("%d", before_data);
			type = 1;
		}

		pData = (CChangeData*)m_pDocument->GetChangeManager()->ExistChangeInfo(nId);

		if( !pData )
		{
			pData = new CChangeData;

			pData->Init(eOp_Update, kind, wPos);
			pData->SetData(str1.GetBuffer(0), str2.GetBuffer(0), type);
		}
		else
		{
			pData->Init(eOp_Update, kind, wPos);
			pData->SetData(str1.GetBuffer(0), str2.GetBuffer(0), type);
			return;
		}
	}
	else
		return;
	
	// Control狼 Index甫 Key蔼栏肺 茄促.
	m_pDocument->GetChangeManager()->Add(pData, nId);
	CMREdit* pEdit = (CMREdit*)GetDlgItem(nId);
	pEdit->SetEditTextColor(COLOR_EDIT_CHANGED);
	pEdit->SetInSave();
}


HBRUSH CMunpaInfo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr;

	switch (nCtlColor) 
	{ 
	case CTLCOLOR_EDIT:
		{
			UINT nId = pWnd->GetDlgCtrlID();
			if( nId >= IDC_MUNPA_NAME && nId < IDC_MUNPA_LEVEL+1 )
			{
				if( ((CMREdit*)pWnd)->HasSaveData() )
					pDC->SetTextColor( ((CMREdit*)pWnd)->GetEditTextColor() );
			}
			else
				hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor); 
		}
		break;
	default:
			hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor); 
		break;
	}

	return hbr;
}

void CMunpaInfo::OnMunpaSave() 
{
	// TODO: Add your control notification handler code here
	m_pDocument->ProcessChangeManager();	
}

int CMunpaInfo::ItemEdit( INFOFIELD field, WORD wControlId, const ITEMBASE* base_before, ITEMBASE& base_after, 
					const ITEM_OPTION_INFO* before, ITEM_OPTION_INFO& after )
{
	int result = 0;

	m_pItemDlg = new CItemDlg;

	m_pItemDlg->Init( field, base_before, before, wControlId );
	result = m_pItemDlg->DoModal();
				
	memcpy(&base_after, m_pItemDlg->GetItemBase(), sizeof(ITEMBASE) );
	memcpy(&after, m_pItemDlg->GetItemOption(), sizeof(ITEM_OPTION_INFO) );

	SAFE_DELETE(m_pItemDlg);

	return result;
}

BOOL CMunpaInfo::ResultItemEdit( INFOFIELD field, int result, WORD wPos, int nControlIdx, ITEMBASE* Origin, ITEM_OPTION_INFO* OriginOption,
						ITEMBASE* pBItem, ITEMBASE* pAItem, ITEM_OPTION_INFO* pBOption, ITEM_OPTION_INFO* pAOption )
{
	// 角力 酒捞袍狼 器瘤记阑 罐绰促. wPos
	CChangeManager* pManager = m_pDocument->GetChangeManager();

	// 绢恫 DB Table俊 持阑巴牢瘤甫 舅酒 柯促.
	TABLE_KIND kind = pManager->GetTableKind_ByField(field);
	if( kind == eTK_None )
		return FALSE;

	BOOL bAdd = FALSE;
	CChangeItem* pItem = (CChangeItem*)pManager->ExistChangeInfo(wPos, FALSE);

	if( !pItem ) // 扁粮 荐沥 沥焊啊 乐绰瘤 八荤茄促. (乐绢档 公矫!)
	{
		pItem = new CChangeItem;
		bAdd = TRUE;
	}

	if( result == eMR_Delete )// Delete牢 版快
	{ 
		/////////////////// Local Info狼 荐沥
		if( GAMERESRCMNGR->IsOptionItem(pBItem->wIconIdx, pBItem->Durability) )
			m_pDocument->DelLocalOptionInfo(pBItem->Durability);

		memset(pBItem, 0, sizeof(ITEMBASE));
		memset(pAItem, 0, sizeof(ITEMBASE));
		///////////////////

		/////////////////// DB Info狼 荐沥
		pItem->Init( eOp_Delete, kind, wPos );
		pItem->SetData(Origin, pAItem, OriginOption, pAOption);
		///////////////////
	}
	else if( result == eMR_Edit )
	{
		/////////////////// Local Info狼 荐沥
		if( GAMERESRCMNGR->IsOptionItem(pBItem->wIconIdx, pBItem->Durability) )
			m_pDocument->DelLocalOptionInfo(pBItem->Durability);

		if( pAItem->Durability == 9999 ) // 可记 悸泼
		{
			if( OriginOption && OriginOption->dwOptionIdx != 0 )
			{
				pAOption->dwOptionIdx = OriginOption->dwOptionIdx;
				m_pDocument->AddLocalOptionInfo(pAOption, FALSE);
			}
			else
			{
				WORD wOptionIdx = m_pDocument->AddLocalOptionInfo(pAOption, TRUE);
				pAOption->dwOptionIdx = wOptionIdx;
			}
			pAItem->Durability = (WORD)pAOption->dwOptionIdx;
		}

		memcpy(pBItem, pAItem, sizeof(ITEMBASE)); // 扁夯 酒捞袍 函版
		///////////////////

		/////////////////// DB Info狼 荐沥
		if( Origin->dwDBIdx == 0 ) // Insert牢 版快
		{
			pItem->Init( eOp_Insert, kind, wPos );
			pItem->SetData(Origin, pAItem, OriginOption, pAOption);
		}
		else // Update牢 版快
		{
			pItem->Init( eOp_Update, kind, wPos );
			pItem->SetData(Origin, pAItem, OriginOption, pAOption);
		}
		///////////////////
	}
	else
	{
		ASSERT(0);
		return FALSE;
	}

	if( bAdd )
		pManager->Add( pItem, wPos, FALSE );
	////////////////////////////////////////////////////////////
	// Button Text Setting
	char buff[256] = {0,};
	ITEM_INFO* pInfo;

	if( pAItem->wIconIdx != 0)
	{
		pInfo = GAMERESRCMNGR->GetItemInfo(pAItem->wIconIdx);
		if( pInfo )
			sprintf(buff, pInfo->ItemName);
		else
			sprintf(buff, "%d", pAItem->wIconIdx);
	}
	else
		sprintf(buff, "");

	CMRButton* btn = (CMRButton*)GetDlgItem(nControlIdx);
	btn->SetWindowText(buff);
	btn->SetData(pAItem->wIconIdx);
	btn->SetColorText(COLOR_BUTTON_CHANGED);
	////////////////////////////////////////////////////////////

	return TRUE;
}

⌨️ 快捷键说明

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