📄 characterview.cpp
字号:
((CMainFrame*)AfxGetMainWnd())->Chime();
}
void CCharacterView::DeleteAllRepairTable()
{
char szQuery[ 0xff];
WCHAR wszQuery[ 0xff];
sprintf( szQuery, "Delete from RM_NOW_REPAIR" );
g_pDb->KSCToUnicode(szQuery, wszQuery);
DWORD ret;
ret = g_pDb->ExecuteSQL( wszQuery, (BYTE)TOTAL_DB );
//if( ret <= 0)
}
void CCharacterView::InsertRepairTable( char* ID, char* Name)
{//快急 ID父 荤侩茄促.
Name;
//_ASSERTE( !IsBadReadPtr( ID, strlen( ID ) );
if( IsBadReadPtr( ID, strlen( ID ) ) != 0 ) return;
int nSet = c_ServerSet.GetCurSel()-1;
nSet = g_NationAccount.iDragon_DB_ServerIndex[ nSet ];
char szQuery[ 0xff];
WCHAR wszQuery[ 0xff];
sprintf( szQuery, "insert into RM_NOW_REPAIR values( '%s', '%d') " , ID, nSet );
g_pDb->KSCToUnicode(szQuery, wszQuery);
DWORD ret;
ret = g_pDb->ExecuteSQL( wszQuery, (BYTE)TOTAL_DB );
}
void CCharacterView::OnSelendokComboName()
{
// TODO: Add your control notification handler code here
UpdateData();
}
void CCharacterView::OnSelchangeComboDb()
{
// TODO: Add your control notification handler code here
int nIndex = c_ComboDb.GetCurSel();
char str[ 0xff ];
char szDb[ 0xff ];
c_ComboDb.GetLBText(nIndex, szDb);
WCHAR wszDb[ 0xff ];
g_pDb->KSCToUnicode(szDb, wszDb);
/*
OutputDebugStringW(wszDb);
int zzz = g_pDb->GetDefaultDBIndex();
int zzzzz = g_pDb->SetDefaultDBIndex( zzz);
CString z;
z.Format( "%s dbIndex =%d, dragonIndex=%d", szDb, m_nCurDbIndex, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);
MessageBox( z );
int sdfa = g_pDb->ChangeDB(wszDb, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);
*/
if(!g_pDb->ChangeDB(wszDb, (BYTE)DRAGON_DB[ m_nCurDbIndex ]))
{
CString z;
z.Format( "Fail to change database: dbIndex =%d, dragonIndex=%d" , m_nCurDbIndex, DRAGON_DB[ m_nCurDbIndex ]);
MessageBox( z );
return;
}
SetDBName( m_nCurDbIndex, szDb ); //泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊
/*
if(!strcmp(szDb,DEFAULT_GAME_DB)) //盔贰 DB肺狼 函版
{
m_nCurDbConnection = DRAGON_DB[0];
}
else //Backup DB肺狼 函版
{
WCHAR wszDb[ 0xff ];
g_pDb->KSCToUnicode(szDb, wszDb);
if(!g_pDb->ChangeDB(wszDb, BACKUP_DB))
{
MessageBox("Fail to change database");
return;
}
m_nCurDbConnection = BACKUP_DB;
}
*/
GetDlgItemText(IDC_COMBO_NAME, str, 0xff);
if(!strcmp(str,""))
return;
else
OnComboEnter();
}
void CCharacterView::OnSelchangeTabCharacter(NMHDR* pNMHDR, LRESULT* pResult)
{
pNMHDR;
// TODO: Add your control notification handler code here
int nTabNum = c_Tab.GetCurSel();
ChangeView(nTabNum);
*pResult = 0;
}
void CCharacterView::ChangeView(int nTabNum)
{
switch( nTabNum )
{
//BasicTab
case 0:
{
m_ItemDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_BasicDlg.ShowWindow(SW_SHOW);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_BasicDlg.m_hWnd, &c_Tab);
m_nCurView = 0;
}
break;
//ItemTab
case 1:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_SHOW);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_ItemDlg.m_hWnd, &c_Tab);
m_nCurView = 1;
}
break;
//Tactic Quest Tab
case 2:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_SHOW);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_TacQuestDlg.m_hWnd, &c_Tab);
m_nCurView = 2;
}
break;
//Taken Skill Tab
case 3:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_SHOW);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_TakenSkillDlg.m_hWnd, &c_Tab);
m_nCurView = 3;
}
break;
//Skill Data
case 4:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_SHOW);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_SkillDataDlg.m_hWnd, &c_Tab);
m_nCurView = 4;
}
break;
//Guild Tool & ETC
case 5:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_SHOW);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_GuildDlg.m_hWnd, &c_Tab);
m_nCurView = 5;
}
break;
//Guild Tool & ETC
case 6:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_WareDlg.ShowWindow(SW_SHOW);
m_MSearchDlg.ShowWindow(SW_HIDE); // 031010 BBD 惑牢八祸芒 见辫
FitDlgInView(m_WareDlg.m_hWnd, &c_Tab);
m_nCurView = 5;
}
break;
// 031010 BBD 惑牢 八祸阑 困秦 眠啊 矫累-------------------
case 7:
{
m_BasicDlg.ShowWindow(SW_HIDE);
m_ItemDlg.ShowWindow(SW_HIDE);
m_TacQuestDlg.ShowWindow(SW_HIDE);
m_TakenSkillDlg.ShowWindow(SW_HIDE);
m_GuildDlg.ShowWindow(SW_HIDE);
m_SkillDataDlg.ShowWindow(SW_HIDE);
m_WareDlg.ShowWindow(SW_HIDE);
m_MSearchDlg.ShowWindow(SW_SHOW);
FitDlgInView(m_MSearchDlg.m_hWnd, &c_Tab);
m_nCurView = 7;
}
break;
// 031010 BBD 惑牢 八祸阑 困秦 眠啊 场-------------------
}
c_Tab.SetCurSel(nTabNum);
}
HBRUSH CCharacterView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor == CTLCOLOR_STATIC && pWnd->GetDlgCtrlID() == IDC_STATIC_ONLINE && m_bOnline) //立加吝牢 蜡历捞搁
{
pDC->SetBkColor(RGB(255,255,255));
pDC->SetTextColor(RGB(255,0,255));
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
int CCharacterView::AskUserOnline(char* login_id)
{
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
int nSet=0; //柳楼 serverset蔼捞促.
for( int i=0; i < CURRENT_SERVERSET_NUM; i++)
if( m_nCurServerSet == i )//g_NationAccount.iDragon_DB_ServerIndex[ i ] )
{
nSet = g_NationAccount.iDragon_DB_ServerIndex[ i ];
break; // kyo
}
//nSet = i;
/*
int nSet;
if(m_nCurServerSet == 2) //俺惯磊 辑滚捞搁
nSet = 100;
else
nSet = m_nCurServerSet+1;
*/
//logintable俊 user_id啊 乐绰瘤狼 咯何父阑 蝶柳促.
//UP_RM_LOGIN_INFO : select servername, ip from logintable where [user_id] = @id
if(login_id) //now 炼扒巩狼 屈侥阑 官层扼
sprintf(szQuery,"EXEC UP_RM_LOGIN_INFO '%s',%d", login_id, nSet);
else
sprintf(szQuery,"EXEC UP_RM_LOGIN_INFO '%s',%d", m_ChrInfo.login_id, nSet);
g_pDb->KSCToUnicode(szQuery, wszQuery);
int ret = g_pDb->OpenRecord(wszQuery, &m_OnlineInfo, 1, (BYTE)TOTAL_DB);
if(ret < 0)
MessageBox("Query failed on UP_RM_LOGIN_INFO!");
return ret;
}
void CCharacterView::OnReceivedComboEnter(WPARAM wParam, LPARAM lParam)
{
wParam;lParam;
UpdateData();
OnComboEnter();
UpdateData(FALSE);
}
void CCharacterView::OnSelchangeComboServerset()
{
// TODO: Add your control notification handler code here
//m_ItemDlg.SelectClear();//咯扁..020308
int nIndex = c_ServerSet.GetCurSel();
char str[ 0xff ];
WCHAR wszDb[ 0xff ];
m_nCurDbIndex = m_nCurServerSet = nIndex-1; //DBChange
g_pDb->KSCToUnicode(g_CurDbName[ m_nCurDbIndex ], wszDb);
//扁夯 Dragon DB啊 酒囱 促弗 DB肺 悸泼 登绢 乐栏搁 弊 DB肺 嘎苗霖促.
if(strcmp(g_CurDbName[ m_nCurDbIndex ],"") )
{
if(!g_pDb->ChangeDB(wszDb, (BYTE)DRAGON_DB[ m_nCurDbIndex ]))
{
MessageBox("ChangeDB Failed! : CCharacterView::OnSelchangeComboServerset()");
return;
}
//SetDBName( m_nCurDbIndex, szDb ); //泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊
}
else
{
//SetDBName( m_nCurDbIndex, DEFAULT_GAME_DB ); //泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊
//kyo 020904
SetDBName( m_nCurDbIndex, g_NationAccount.szDragon_DB_DefaultName[ m_nCurDbIndex ] ); //泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊
}
GetDlgItemText(IDC_COMBO_NAME, str, 0xff);
InitDBCatalogCombo();
if(!strcmp(str,""))
return;
else
OnComboEnter();
}
void CCharacterView::OnButtonKick()
{
// TODO: Add your control notification handler code here
if( !RIGHT(MASK_16) ) return;
if(!strcmp(m_ChrInfo.login_id,""))
return;
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
//沥富肺 瘤快摆嚼聪鳖?
//角力肺 蜡历啊 霸烙阑 logout窍绰 巴捞 酒聪扼 DB抛捞喉俊辑 昏力登绰 巴烙阑 蜡狼窍咯 林绞矫夸.
if( !(MessageBox( LOGOUT_USER, "Warring", MB_YESNO ) == IDYES ) )
return;
sprintf(szQuery, "delete from logintable where user_id='%s'", m_ChrInfo.login_id);
g_pDb->KSCToUnicode(szQuery, wszQuery);
int ret = g_pDb->ExecuteSQL(wszQuery, (BYTE)TOTAL_DB);
if(ret > 0)
{
SetDlgItemText(IDC_STATIC_ONLINE, "No Use");
m_bOnline = FALSE;
c_Kick.EnableWindow(FALSE);
MessageBox("Delete User In LoginTable.");
}
else
{
SetDlgItemText(IDC_STATIC_ONLINE, "No Use");
m_bOnline = FALSE;
c_Kick.EnableWindow(FALSE);
MessageBox("AlReady Logout.");
}
c_StaticOnline.Invalidate();
}
void CCharacterView::InitDBCatalogCombo()
{
c_ComboDb.ResetContent();
//DB Catalog 霓焊 檬扁拳
CString szDb,szTemp; int j=0;
for(int i=0 ; i< m_pApp->m_nDbCount[ m_nCurDbIndex ] ; i++)
{
szDb = m_pApp->m_DbSchema[ m_nCurDbIndex ][ i ].szSchemaBuffer;
szTemp = szDb.Left(6);
if(!szTemp.CompareNoCase("dragon")) //dragon 包访 DB父
{
c_ComboDb.InsertString(j,szDb);
if(!strcmp(g_CurDbName[ m_nCurDbIndex ],"") )
{
//kyo 020904
if(!szDb.CompareNoCase( g_NationAccount.szDragon_DB_DefaultName[ m_nCurDbIndex ] ))
{
//泅犁 瘤沥秦霖 dBConnection俊 DB捞抚 历厘 矫虐绊
SetDBName( m_nCurDbIndex, g_NationAccount.szDragon_DB_DefaultName[ m_nCurDbIndex ] ); //kyo 020904
c_ComboDb.SetCurSel(j);
}
}
else
{
if(!szDb.CompareNoCase(g_CurDbName[ m_nCurDbIndex ]))
c_ComboDb.SetCurSel(j);
}
j++;
}
}
}
void CCharacterView::OnDelCharacter()
{
// TODO: Add your control notification handler code here
if( !RIGHT(MASK_15) ) return;
if( MessageBox( "Are You Sure To Delete Character?" , "Decision", MB_YESNO) == IDNO )
return;
if( MessageBox( "ARE YOU SURE????" , "DECISION", MB_YESNO) == IDNO )
return;
// 弊 某腐磐啊 粮犁窍绰瘤 促浆 切牢轻备 ...
if( FALSE == CheckDeleteCharacter( m_szCurCharName ) ) return;
//瞒肥措肺 DB甫 瘤款促.
if( FALSE_RETURN == DeleteCharacterInCHR_LOG_INFO( m_szCurLoginId, m_szCurCharName ) ) return;
if( FALSE_RETURN == DeleteCharacterInCHR_INFO( m_szCurCharName ) ) return;
if( FALSE_RETURN == DeleteCharacterInCHR_INFO2( m_szCurCharName) ) return;
if( FALSE_RETURN == DeleteCharacterInGUILD_MEMBER_LIST( m_szCurCharName ) ) return;
if( FALSE_RETURN == DeleteCharacterInFRIEND_LIST( m_szCurCharName ) ) return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -