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

📄 characterview.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	((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 + -