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

📄 characterinfo.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		m_StatusEdit[eCharTemp_PYOGUKMONEY].SetMaxValue(1000000 + pyoguk->PyokukCount*1000000);
		m_StatusEdit[eCharTemp_PYOGUKMONEY].SetWindowTextEx( buff, 1 );
	}
}

void CCharacterInfo::SetPyogukInfoError( PHYOKUK_TOTALINFO* pinfo )
{
	char buff[256] = {0,};
	int i = 0;
	ITEM_INFO* pInfo = NULL;

	for( i = 0; i < pinfo->PyokukCount; ++i )
	{
		if( pinfo->Pyokuk[i].wIconIdx != 0 )
		{
			pInfo = GAMERESRCMNGR->GetItemInfo( pinfo->Pyokuk[i].wIconIdx );
			if( pInfo )
				sprintf( buff, pInfo->ItemName );
			else
				sprintf( buff, "%d", pinfo->Pyokuk[i].wIconIdx );
		}
		else
			sprintf( buff, "" );

		m_WareItemError[i].SetWindowText( buff );
		m_WareItemError[i].SetData( pinfo->Pyokuk[i].wIconIdx );
		m_WareItemError[i].ShowWindow( TRUE );
	}
}

void CCharacterInfo::EnablePyogukInfoControl( BOOL bEnable )
{
	m_cbPyoguk.EnableWindow( bEnable );
	m_StatusEdit[eCharTemp_PYOGUKMONEY].EnableWindow( bEnable );
	
	for( int i = 0; i < TABCELL_PYOGUK_NUM; ++i )
		m_PyoGukItem[i].EnableWindow( bEnable );
}

void CCharacterInfo::SetMugongInfo( MUGONG_TOTALINFO* mugong )
{
	char buff[256]={0,};
	int i,temp;
	SKILLINFO* pInfo = NULL;

	MUGONGBASE* sMugong = mugong->mugong;

	// 公傍 持扁
	for( i = 0, temp = 0; i < SLOT_MUGONG_NUM; ++i )
	{
		if( sMugong[i].wIconIdx != 0 )
		{
			pInfo = GAMERESRCMNGR->GetSkillInfo( sMugong[i].wIconIdx );
			if( pInfo )
				sprintf( buff, pInfo->SkillName );
			else
				sprintf( buff, "%d", sMugong[i].wIconIdx );
		}
		else
			sprintf( buff, "" );

		m_SkillMuGong[i].SetWindowText( buff );
		m_SkillMuGong[i].SetData( sMugong[i].wIconIdx );
	}

	temp = i;

	// 柳过 持扁
	for( i = 0; i < SLOT_JINBUB_NUM; ++i )
	{
		if( sMugong[temp+i].wIconIdx != 0 )
		{
			pInfo = GAMERESRCMNGR->GetSkillInfo( sMugong[temp+i].wIconIdx );
			if( pInfo )
				sprintf( buff, pInfo->SkillName );
			else
				sprintf( buff, "%d", sMugong[temp+i].wIconIdx );
		}
		else
			sprintf( buff, "" );

		m_SkillJinBub[i].SetWindowText( buff );
		m_SkillJinBub[i].SetData( sMugong[temp+i].wIconIdx );
	}
}

void CCharacterInfo::SetMugongInfoError( TMSG_CHARACTER_MUGONGINFO2* pinfo )
{
	char buff[256]={0,};
	SKILLINFO* pInfo = NULL;

	for( int i = 0; i < pinfo->m_dwCount; ++i )
	{
		if( pinfo->m_MugongBase[i].wIconIdx != 0 )
		{
			pInfo = GAMERESRCMNGR->GetSkillInfo( pinfo->m_MugongBase[i].wIconIdx );
			if( pInfo )
				sprintf( buff, pInfo->SkillName );
			else
				sprintf( buff, "%d", pinfo->m_MugongBase[i].wIconIdx );
		}
		else
			sprintf( buff, "" );		

		m_MugongError[i].SetWindowText( buff );
		m_MugongError[i].SetData( pinfo->m_MugongBase[i].wIconIdx );
		m_MugongError[i].ShowWindow( TRUE );
	}
}

void CCharacterInfo::SetAbilityInfo()
{
	char buff[256] = {0,};
	int i = 0;

	// Combo Init
	m_cbAbility.ResetContent();
	for( i = 0; i < eAGK_Max; ++i )
	{
		sprintf( buff, "Tab%d", i+1 );
		m_cbAbility.AddString( buff );
	}
	m_cbAbility.SetCurSel(0);

	// Ability 檬扁拳
	for( i = 0; i < MAX_ABILITY_NUM_PER_GROUP; ++i )
	{
		m_Ability[i].SetWindowText( "" );
		m_Ability[i].SetData( 0 );
	}

	CYHHashTable<CAbilityInfo>*	pAbility = GAMERESRCMNGR->GetAbilityInfo();
	CAbilityInfo* pAInfo = NULL;

	pAbility->SetPositionHead();
	while( pAInfo = pAbility->GetData() )
	{
		if( pAInfo->GetKind() == 0 )
		{
			if( pAInfo->GetInfo()->Ability_AcquireKind == eAAK_CharacterLevel &&
				pAInfo->GetInfo()->Ability_AcquireParam1 <= m_pDocument->m_sTotalInfo.Level )
				m_Ability[pAInfo->GetPosition()].SetWindowText( pAInfo->GetInfo()->Ability_name );
				m_Ability[pAInfo->GetPosition()].SetData( pAInfo->GetInfo()->Ability_index );
		}
	}
}

//---------------------------------------------------------------------------------------
// combo box
//---------------------------------------------------------------------------------------
void CCharacterInfo::OnSelchangeInvenCombo() 
{
	int nCurSel = m_cbInven.GetCurSel();
	int tab = nCurSel*TABCELL_INVENTORY_NUM;
	m_nCurInvenTab = nCurSel*TABCELL_INVENTORY_NUM;

	char buff[256]={0,};
	int i = 0;
	ITEM_INFO* pInfo = NULL;

	ITEMBASE* sInven = m_pDocument->m_sInven.Inventory;
	ITEMBASE* oInven = m_pDocument->m_sInven_org.Inventory;

	for( i = 0; i < TABCELL_INVENTORY_NUM; ++i )
	{
		if( sInven[tab+i].Durability != oInven[tab+i].Durability ||
			sInven[tab+i].dwDBIdx != oInven[tab+i].dwDBIdx ||
			sInven[tab+i].wIconIdx != oInven[tab+i].wIconIdx )
//		if( sInven[i].dwDBIdx == 0 )
			m_InvenItem[i].SetColorText( COLOR_BUTTON_CHANGED );
		else
			m_InvenItem[i].SetColorText( COLOR_BUTTON_DEFAULT );

		if( sInven[tab+i].wIconIdx != 0 )
		{
			pInfo = GAMERESRCMNGR->GetItemInfo( sInven[tab+i].wIconIdx );
			if( pInfo )
				sprintf( buff, pInfo->ItemName );
			else
				sprintf( buff, "%d", sInven[tab+i].wIconIdx );
		}
		else
			sprintf( buff, "" );

		m_InvenItem[i].SetWindowText( buff );
		m_InvenItem[i].SetData( sInven[tab+i].wIconIdx );
	}

	ResetTooltip();
}

void CCharacterInfo::OnSelchangePyogukCombo() 
{
	int nCurSel = m_cbPyoguk.GetCurSel();
	int tab = nCurSel*TABCELL_PYOGUK_NUM;

	char buff[256]={0,};
	int i = 0;
	ITEM_INFO* pInfo = NULL;	

	ITEMBASE* pItem = m_pDocument->m_sPyoguk.Pyokuk;

	for( i = 0; i < TABCELL_PYOGUK_NUM; ++i )
	{
		if( pItem[tab+i].wIconIdx != 0 )
		{
			pInfo = GAMERESRCMNGR->GetItemInfo( pItem[tab+i].wIconIdx );
			if( pInfo )
				sprintf( buff, pInfo->ItemName );
			else
				sprintf( buff, "%d", pItem[tab+i].wIconIdx );
		}
		else
			sprintf( buff, "" );

		m_PyoGukItem[i].SetWindowText( buff );
		m_PyoGukItem[i].SetData( pItem[tab+i].wIconIdx );
	}

	ResetTooltip();
}

void CCharacterInfo::OnSelchangeAbilityCombo() 
{
	int nCurSel = m_cbAbility.GetCurSel();
	if( nCurSel == -1 ) return;

	// Ability 檬扁拳
	for( int i = 0; i < MAX_ABILITY_NUM_PER_GROUP; ++i )
	{
		m_Ability[i].SetWindowText( "" );
		m_Ability[i].SetData( 0 );
	}

	CYHHashTable<CAbilityInfo>*	pAbility = GAMERESRCMNGR->GetAbilityInfo();
	CAbilityInfo* pAInfo = NULL;

	pAbility->SetPositionHead();
	while( pAInfo = pAbility->GetData() )
	{
		if( pAInfo->GetKind() == nCurSel )
		{
			if( pAInfo->GetInfo()->Ability_AcquireKind == eAAK_CharacterLevel &&
				pAInfo->GetInfo()->Ability_AcquireParam1 <= m_pDocument->m_sTotalInfo.Level )
			{
				m_Ability[pAInfo->GetPosition()].SetWindowText( pAInfo->GetInfo()->Ability_name );
				m_Ability[pAInfo->GetPosition()].SetData( pAInfo->GetInfo()->Ability_index );
			}
			else
			{
				m_Ability[pAInfo->GetPosition()].SetWindowText( "" );
				m_Ability[pAInfo->GetPosition()].SetData( 0 );
			}
		}
	}

	ResetTooltip();
}

void CCharacterInfo::GetChangeBaseInfo(TMSG_CHARACTER_UPDATEBASEINFO* msg)
{
	CString str;

	m_StatusEdit[eCharTemp_NAME].GetStringData(str.GetBuffer(0));
	strcpy(msg->ObjectName, str);
	m_StatusEdit[eCharTemp_NICK].GetStringData(str.GetBuffer(0));
	strcpy(msg->NickName, str);
	m_StatusEdit[eCharTemp_MUNPA].GetStringData(str.GetBuffer(0));
	strcpy(msg->MunpaName, str);
	msg->PositionInMunpa = (BYTE)m_StatusEdit[eCharTemp_MUNPAPOS].GetData();
	msg->Fame = (FAMETYPE)m_StatusEdit[eCharTemp_FAME].GetData();
//	msg->PartyID = m_StatusEdit[eCharTemp_PARTY].GetData();
	msg->Stage = (BYTE)m_StatusEdit[eCharTemp_STEP].GetData();
	msg->Level = (LEVELTYPE)m_StatusEdit[eCharTemp_LEVEL].GetData();
	msg->ExpPoint = m_StatusEdit[eCharTemp_EXP].GetData();
	msg->wGenGol = (WORD)m_StatusEdit[eCharTemp_GENGOL].GetData();
	msg->wMinChub = (WORD)m_StatusEdit[eCharTemp_MINCHUB].GetData();
	msg->wCheRyuk = (WORD)m_StatusEdit[eCharTemp_CHERYUK].GetData();
	msg->wSimMek = (WORD)m_StatusEdit[eCharTemp_SIMMAK].GetData();
	msg->LevelUpPoint = (LEVELTYPE)m_StatusEdit[eCharTemp_POINT].GetData();
	msg->Money = m_StatusEdit[eCharTemp_INVENMONEY].GetData();
	msg->AbilityExp = m_StatusEdit[eCharTemp_ABILITYPOINT].GetData();
}

void CCharacterInfo::GetChangePyogukInfo(TMSG_CHARACTER_PYOGUKINFO* msg)
{
	msg->m_wPyogukNum = m_cbPyoguk.GetCount();
	msg->m_dwMoney = m_StatusEdit[eCharTemp_PYOGUKMONEY].GetData();
}

BOOL CCharacterInfo::PreTranslateMessage(MSG* pMsg)
{
	BYTE type; // 0:inven, 1:wear, 2:pyoguk, 3:mugong, 4:jinbub, 5:ability
	POSTYPE pos;
	if( CMRButton* wnd = CheckButtonEvent(pMsg->hwnd, pos, type) )
	{
		char buff[1024] = {0,};
		MakeToolTip(type, pos, (WORD)wnd->GetData(), buff);

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

BOOL CCharacterInfo::OnInitDialog() 
{
	CLDPropPage::OnInitDialog();
	
	CDS_RMToolApp* pApp = (CDS_RMToolApp*)AfxGetApp();
	m_wPower = pApp->GetCurOperatorPower();

	m_btnChangeLoginPoint.EnableWindow( FALSE );
	m_btnSave.EnableWindow( FALSE );

	// TODO: Add extra initialization here
	m_TTctrl.Create(this);
	m_TTctrl.SetMaxTipWidth(200);

	int i;
	for(i=0;i<TABCELL_INVENTORY_NUM;++i)
		m_TTctrl.AddTool(&m_InvenItem[i]);

	for(i=0;i<eWearedItem_Max;++i)
		m_TTctrl.AddTool(&m_WearItem[i]);

	for(i=0;i<SLOT_MUGONG_NUM;++i)
		m_TTctrl.AddTool(&m_SkillMuGong[i]);

	for(i=0;i<SLOT_JINBUB_NUM;++i)
		m_TTctrl.AddTool(&m_SkillJinBub[i]);

	for(i=0;i<TABCELL_PYOGUK_NUM;++i)
		m_TTctrl.AddTool(&m_PyoGukItem[i]);

	for(i=0;i<MAX_ABILITY_NUM_PER_GROUP;++i)
		m_TTctrl.AddTool(&m_Ability[i]);

	EnableToolTips(TRUE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BOOL CCharacterInfo::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
//	if( m_pDocument && !m_pDocument->IsReadOnly() )
	if( m_pDocument )
	if( m_pDocument->IsReadOnly() )
	{
		m_btnChangeLoginPoint.EnableWindow( FALSE );
		m_btnSave.EnableWindow( FALSE );
	}
	else
	{
		if( m_wPower == eOperPower_Master )
		{
			m_btnChangeLoginPoint.EnableWindow( TRUE );
			m_btnSave.EnableWindow( TRUE );
		}
		else
		{
			m_btnChangeLoginPoint.EnableWindow( FALSE );
			m_btnSave.EnableWindow( FALSE );
		}
	}

	switch( nCode )
	{
	case BN_CLICKED:
		{
			ButtonControlCommand(nID);
		}
		break;
	case EN_KILLFOCUS:
		{
			EditControlCommand(nID);
		}
		break;
	case EN_CHANGE:
		{
			if( (nID >= IDC_CHAR_NAME && nID < IDC_CHAR_ABILITYPOINT+1) )
			{
				CMREdit* pEdit = (CMREdit*)GetDlgItem(nID);
				if( pEdit ) pEdit->SetChanged(TRUE);
			}
		}
		break;
	}

	return CLDPropPage::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}

CMRButton* CCharacterInfo::CheckButtonEvent(HWND hWnd, POSTYPE& pos, BYTE& type)
{
	int i;
	for(i=0;i<TABCELL_INVENTORY_NUM;++i)
	{
		if(m_InvenItem[i].m_hWnd == hWnd)
		{
			type = 0;
			pos = i;
			return &m_InvenItem[i];
		}
	}

	for(i=0;i<eWearedItem_Max;++i)
	{
		if(m_WearItem[i].m_hWnd == hWnd)
		{
			type = 1;
			pos = i;
			return &m_WearItem[i];
		}
	}

	for(i=0;i<SLOT_MUGONG_NUM;++i)
	{
		if(m_SkillMuGong[i].m_hWnd == hWnd)
		{
			type = 3;
			pos = i;
			return &m_SkillMuGong[i];
		}
	}

	for(i=0;i<SLOT_JINBUB_NUM;++i)
	{
		if(m_SkillJinBub[i].m_hWnd == hWnd)
		{
			type = 4;
			pos = i;
			return &m_SkillJinBub[i];
		}
	}

	for(i=0;i<TABCELL_PYOGUK_NUM;++i)
	{
		if(m_PyoGukItem[i].m_hWnd == hWnd)
		{
			type = 2;
			pos = i;
			return &m_PyoGukItem[i];
		}
	}

	for(i=0;i<MAX_ABILITY_NUM_PER_GROUP;++i)
	{
		if(m_Ability[i].m_hWnd == hWnd)
		{
			type = 5;

⌨️ 快捷键说明

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