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