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

📄 logtotalpage.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwChangeValue, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 3, GetSkillName( pData->dwSkillIdx, temp ) );
				m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwSkillDBIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwSkillLevel, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 6, itoa( pData->dwSkillExp, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 7, itoa( pData->dwSkillPos, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 8, pData->sLogDate );
			}
		}
		break;
	case eTotalLogKind_Money:
		{
			MONEYLOG* pData = NULL;
			m_MoneyLogTable.SetPositionHead();
			while( pData = m_MoneyLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwChangeValue, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 3, itoa( pData->dwInvenMoney, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwTargetIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwTargetMoney, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 6, pData->sLogDate );
			}
		}
		break;
	case eTotalLogKind_MoneyWrong:
		{
			MONEYWRONGLOG* pData = NULL;
			m_MoneyWrongLogTable.SetPositionHead();
			while( pData = m_MoneyWrongLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 2, itoa( pData->dwChangeValue, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 3, itoa( pData->dwTotalMoney, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwPyogukMoney, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwTargetIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 6, pData->sLogDate );
			}
		}
		break;
	case eTotalLogKind_Ability:
		{
			ABILITYLOG* pData = NULL;
			m_AbilityLogTable.SetPositionHead();
			while( pData = m_AbilityLogTable.GetData() )
			{
				lvitem.iItem = m_lcTotal.GetItemCount();	// 青
				
				lvitem.mask = LVIF_TEXT;
				lvitem.stateMask = LVIS_SELECTED;
				lvitem.state = INDEXTOSTATEIMAGEMASK(1);
				lvitem.iSubItem = 0;	
				lvitem.pszText = itoa( pData->dwLogIdx, temp, 10 );
				
				m_lcTotal.InsertItem( &lvitem );
				m_lcTotal.SetItemText( lvitem.iItem, 1, itoa( pData->dwChrIdx, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 2, GetAbilityName( pData->dwAbilityIdx, temp ) );
				m_lcTotal.SetItemText( lvitem.iItem, 3, itoa( pData->dwAbilityLevelTo, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 4, itoa( pData->dwAbilityExpFrom, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 5, itoa( pData->dwAbilityExpTo, temp, 10 ) );
				m_lcTotal.SetItemText( lvitem.iItem, 6, pData->sLogDate );
			}
		}
		break;
	}
}

char* CLogTotalPage::GetSkillLogType( DWORD dwLogType, char* temp )
{
	switch( dwLogType )
	{
	case eLog_MugongDiscard:			sprintf( temp, "SkillDiscard" );			break;
	case eLog_MugongDestroyByWanted:	sprintf( temp, "SkillDestroyByWanted" );	break;
	case eLog_MugongDestroyByBadFame:	sprintf( temp, "SkillDestroyByBadFame" );	break;
	default:							sprintf( temp, "???" );						break;
	}

	return temp;
}

char* CLogTotalPage::GetSkillName( DWORD dwSkillIdx, char* temp )
{
	SKILLINFO* pSkill = GAMERESRCMNGR->GetSkillInfo( dwSkillIdx );
	if( pSkill == NULL )
		sprintf( temp, "%d", dwSkillIdx );
	else
		sprintf( temp, "%s", pSkill->SkillName );

	return temp;
}

char* CLogTotalPage::GetAbilityName( DWORD dwAbilityIdx, char* temp )
{
	CAbilityInfo* pInfo = GAMERESRCMNGR->GetAbilityInfo( dwAbilityIdx ); 
	if( pInfo == NULL )
		sprintf( temp, "%d", dwAbilityIdx );
	else
		sprintf( temp, "%s", pInfo->GetInfo()->Ability_name );

	return temp;
}

void CLogTotalPage::OnBtnSavetofile() 
{
	switch( m_nLogKind )
	{
	case eTotalLogKind_Character:
		{
			DeleteFile( "CharacterLog.txt" );

			FILE* fp = fopen( "CharacterLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[9] = { "LogIdx", "CharIdx", "Level", "Physique", "Agility", "Strength", "Heart", "Point", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6], tcolumn[7], tcolumn[8] );

			char temp[128] = {0, };
			CHARACTERLOG* pData = NULL;
			m_CharacterLogTable.SetPositionHead();
			while( pData = m_CharacterLogTable.GetData() )
			{
				fprintf( fp, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, pData->dwGrade,
					pData->dwGengoal, pData->dwDex, pData->dwStrength, pData->dwSimmak, pData->dwPoint, pData->sLogDate );
			}

			fclose( fp );
		}
		break;

	case eTotalLogKind_ExpPoint:
		{
			DeleteFile( "ExpPointLog.txt" );

			FILE* fp = fopen( "ExpPointLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[9] = { "LogIdx", "CharIdx", "Level", "ChangeValue", "KillerKind", "KillerIdx", "Exp", "AbilityPoint", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6], tcolumn[7], tcolumn[8] );

			char temp[128] = {0, };
			EXPPOINTLOG* pData = NULL;
			m_ExpPointLogTable.SetPositionHead();
			while( pData = m_ExpPointLogTable.GetData() )
			{
				if( pData->dwKillerIdx > 0 )
				{
					fprintf( fp, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, pData->dwGrade, pData->dwChangeValue,
						pData->dwKillerKind, pData->dwKillerIdx, pData->dwExpPoint, pData->dwAbilPoint, pData->sLogDate );
				}
				else
				{
					fprintf( fp, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, pData->dwGrade, pData->dwChangeValue,
						GetMonsterName( pData->dwKillerKind, temp ), pData->dwKillerIdx, pData->dwExpPoint, pData->dwAbilPoint, pData->sLogDate );
				}
			}

			fclose( fp );
		}
		break;

	case eTotalLogKind_Mugong:
		{
			DeleteFile( "SkillLog.txt" );

			FILE* fp = fopen( "SkillLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[8] = { "LogIdx", "LogType", "CharIdx", "SkillIdx", "SkillDBIdx", "Level", "Exp", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6], tcolumn[7] );

			char temp[128] = {0, };
			MUGONGLOG* pData = NULL;
			m_MugongLogTable.SetPositionHead();
			while( pData = m_MugongLogTable.GetData() )
			{
				fprintf( fp, "%d\t%d\t%d\t%s\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwLogType, pData->dwChrIdx,
					GetSkillName( pData->dwSkillIdx, temp ), pData->dwSkillDBIdx, pData->dwSkillLevel, pData->dwSkillExp, pData->sLogDate );
			}

			fclose( fp );
		}
		break;

	case eTotalLogKind_MugongExp:
		{
			DeleteFile( "SkillExpLog.txt" );

			FILE* fp = fopen( "SkillExpLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[9] = { "LogIdx", "CharIdx", "ChangeValue", "SkillIdx", "SkillDBIdx", "Level", "Exp", "Position", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6], tcolumn[7], tcolumn[8] );

			char temp[128] = {0, };
			MUGONGEXPLOG* pData = NULL;
			m_MugongExpLogTable.SetPositionHead();
			while( pData = m_MugongExpLogTable.GetData() )
			{
				fprintf( fp, "%d\t%d\t%d\t%s\t%d\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, pData->dwChangeValue, 
					GetSkillName( pData->dwSkillIdx, temp ), pData->dwSkillLevel, pData->dwSkillExp, pData->dwSkillPos, pData->sLogDate );
			}

			fclose( fp );
		}
		break;

	case eTotalLogKind_Money:
		{
			DeleteFile( "MoneyLog.txt" );

			FILE* fp = fopen( "MoneyLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[7] = { "LogIdx", "CharIdx", "ChangeValue", "InvenMoney", "TargetIdx", "TargetMoney", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6] );

			char temp[128] = {0, };
			MONEYLOG* pData = NULL;
			m_MoneyLogTable.SetPositionHead();
			while( pData = m_MoneyLogTable.GetData() )
			{
				fprintf( fp, "%d\t%d\t%d\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, pData->dwChangeValue, 
					pData->dwInvenMoney, pData->dwTargetIdx, pData->dwTargetMoney, pData->sLogDate );
			}

			fclose( fp );
		}
		break;

	case eTotalLogKind_MoneyWrong:
		{
			DeleteFile( "MoneyWrongLog.txt" );

			FILE* fp = fopen( "MoneyWrongLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[7] = { "LogIdx", "CharIdx", "ChangeValue", "TotalMoney", "WareMoney", "TargetIdx", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6] );

			char temp[128] = {0, };
			MONEYWRONGLOG* pData = NULL;
			m_MoneyWrongLogTable.SetPositionHead();
			while( pData = m_MoneyWrongLogTable.GetData() )
			{
				fprintf( fp, "%d\t%d\t%d\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, pData->dwChangeValue,
					pData->dwTotalMoney, pData->dwPyogukMoney, pData->dwTargetIdx, pData->sLogDate );
			}

			fclose( fp );
		}
		break;

	case eTotalLogKind_Ability:
		{
			DeleteFile( "AbilityLog.txt" );

			FILE* fp = fopen( "AbilityLog.txt", "a+" );
			if( !fp )
				return;

			char* tcolumn[7] = { "LogIdx", "CharIdx", "AbilityIdx", "AbilityLevelTo", "AbilityExpFrom", "AbilityExpTo", "LogDate" };
			fprintf( fp, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n", tcolumn[0], tcolumn[1], tcolumn[2], tcolumn[3],
				tcolumn[4], tcolumn[5], tcolumn[6] );

			char temp[128] = {0, };
			ABILITYLOG* pData = NULL;
			m_AbilityLogTable.SetPositionHead();
			while( pData = m_AbilityLogTable.GetData() )
			{
				fprintf( fp, "%d\t%d\t%s\t%d\t%d\t%d\t%s\n", pData->dwLogIdx, pData->dwChrIdx, GetAbilityName( pData->dwAbilityIdx, temp ),
					pData->dwAbilityLevelTo, pData->dwAbilityExpFrom, pData->dwAbilityExpTo, pData->sLogDate );
			}

			fclose( fp );
		}
		break;
	}
}

char* CLogTotalPage::GetMonsterName( DWORD dwMonsterIdx, char* temp )
{
	if( dwMonsterIdx == 0 )
	{
		sprintf( temp, "0" );
		return temp;
	}

	MONSTEREX_LIST* pMonster = GAMERESRCMNGR->GetMonsterInfo( dwMonsterIdx );
	if( pMonster == NULL )
		sprintf( temp, "Monster" );
	else
		sprintf( temp, "%s", pMonster->Name );

	return temp;
}

void CLogTotalPage::ChangeFont()
{
	m_Font.CreatePointFont(100, "Arial");
	m_lcTotal.SetFont( &m_Font );
}

⌨️ 快捷键说明

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