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

📄 characterview.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		}break;

	default:
		{
			wchar_name w_Allname;
			memset(&w_Allname, 0, sizeof( w_Allname) );
			//罐酒坷绰 磊丰屈狼 蔼捞 char牢啊 wchar牢啊甫 舅酒郴搁. 歹宽 祈茄单.//kyo
			ret = g_pDb->OpenRecord(query, &w_Allname, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);

			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name1,-1, m_szAllCharName.name1,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name2,-1, m_szAllCharName.name2,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name3,-1, m_szAllCharName.name3,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name4,-1, m_szAllCharName.name4,  100, NULL, NULL);	
		}break;
	}
	
	// 021118 怕惫滚傈阑 困茄 蜡聪内靛拳 函脚..
	//for thailand<<
	/*
		wchar_name w_Allname;
		memset(&w_Allname, 0, sizeof( w_Allname) );
		//罐酒坷绰 磊丰屈狼 蔼捞 char牢啊 wchar牢啊甫 舅酒郴搁. 歹宽 祈茄单.//kyo
		ret = g_pDb->OpenRecord(query, &w_Allname, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);

		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name1,-1, m_szAllCharName.name1,  100, NULL, NULL);
		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name2,-1, m_szAllCharName.name2,  100, NULL, NULL);
		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name3,-1, m_szAllCharName.name3,  100, NULL, NULL);
		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name4,-1, m_szAllCharName.name4,  100, NULL, NULL);
	*/
	//for thailand>>

	if(ret < 0)	return FALSE;
	else if(!ret)
	{
		MessageBox("No Result! : RM_QUERY_ALL_CHARACTER");
		return FALSE;
	}

//021115 怕惫俊辑 某腐磐捞抚瘤况瘤绰 巩力 锭巩俊.
if( 16 == ::GetPrivateProfileInt("Admin","idCheck",-10,g_szSetupPath) )
{
	MessageBoxPrintf( IDOK, "name1=%s,name2=%s,name3=%s,name4=%s", m_szAllCharName.name1,
		m_szAllCharName.name2,m_szAllCharName.name3,m_szAllCharName.name4);
}


	if(!strcmp(m_szAllCharName.name1,""))		sprintf(m_szAllCharName.name1,"<NULL>");
	else if(!strcmp(m_szAllCharName.name2,""))	sprintf(m_szAllCharName.name2,"<NULL>");
	else if(!strcmp(m_szAllCharName.name3,""))	sprintf(m_szAllCharName.name3,"<NULL>");
	else if(!strcmp(m_szAllCharName.name4,""))	 sprintf(m_szAllCharName.name4,"<NULL>");

	//kyo 020902
	switch( g_iNation )
	{
	case NATION_KOREA:
		{
			sprintf(str," select passwd, d_name, d_jumin, "
						"d_tel2, d_email "
						", d_regday from chr_log_info where login_id = '%s'", m_ChrInfo.login_id);
			g_pDb->KSCToUnicode(str,query);
			memset(&m_ChrLogInfo,0,sizeof(m_ChrLogInfo));
			//ret = g_pDb->OpenRecord(query, &m_ChrLogInfo, 1, (BYTE)TOTAL_DB); // here
			
			if( IsChrloginfoInDrDB() )
			{
				ret = g_pDb->OpenRecord(query, &m_ChrLogInfo, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]); // 030214 老夯烙矫
			}
			else
			{
				ret = g_pDb->OpenRecord(query, &m_ChrLogInfo, 1, (BYTE)TOTAL_DB); // here
			}

		}
		break;

	case NATION_TAIWAN:
	case NATION_THAILAND:
	case NATION_HONGKONG:
	case NATION_CHINA:
	case NATION_MAL:
		{
			sprintf(str," select passwd, d_name, d_jumin, " //d_tel2客 d_email捞 绝促. 
						"d_regday from chr_log_info where login_id = '%s'", m_ChrInfo.login_id);
			g_pDb->KSCToUnicode(str,query);
			memset(&m_ChrLogInfo2,0,sizeof(m_ChrLogInfo2));

			if( IsChrloginfoInDrDB() )
			{
				ret = g_pDb->OpenRecord(query, &m_ChrLogInfo2, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);	
			}
			else
			{
				ret = g_pDb->OpenRecord(query, &m_ChrLogInfo2, 1, (BYTE)TOTAL_DB);
			}
			
			//KeyPoint!!!!!
			memcpy( (void*)&(m_ChrLogInfo.regday) , (void*)&(m_ChrLogInfo2.regday), sizeof( DBTIMESTAMP) );
			memcpy( (void*)&(m_ChrLogInfo.Wjumin) , (void*)&(m_ChrLogInfo2.Wjumin), 15);
			memcpy( m_ChrLogInfo.Wname  , m_ChrLogInfo2.Wname, 20 );
			//strcpy( (char*)&(m_ChrLogInfo.Wname)  , (char*)&(m_ChrLogInfo2.Wname));
			//wsprintf( m_ChrLogInfo.Wjumin, "%u",m_ChrLogInfo2.Wjumin);
	//printf
			if( strlen(m_ChrLogInfo2.passwd ) > 20 )
			{
				MessageBox( "Errer In Get ChrLogInfo", NULL, MB_OK );
				return FALSE;
			}
			strcpy(m_ChrLogInfo.passwd , m_ChrLogInfo2.passwd);	

			strcpy( m_ChrLogInfo.email, "");//  = NULL;

			break;	
		}
	case NATION_JAPAN:
		{
			sprintf(str," select passwd, d_name, d_jumin, " //d_tel2客 d_email捞 绝促. 
					"d_regday from chr_log_info where login_id = '%s'", m_ChrInfo.login_id);
			g_pDb->KSCToUnicode(str,query);
			memset(&m_ChrLogInfoJp,0,sizeof(m_ChrLogInfoJp));

			if( IsChrloginfoInDrDB() )
			{
				ret = g_pDb->OpenRecord(query, &m_ChrLogInfoJp, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);
			}
			else
			{
				ret = g_pDb->OpenRecord(query, &m_ChrLogInfoJp, 1, (BYTE)TOTAL_DB);
			}

			SetChrLogInfo( m_ChrLogInfo, m_ChrLogInfoJp );	

			break;
		}
	}
	

	if(ret < 0)	return FALSE;
	else if(!ret)
	{
		MessageBox("No Result! : RM_QUERY_USER_INFO");
		return FALSE;
	}

	//for Extensionlog
	InitForLog();

#ifdef OLD_GUILD_CODE // 030331 
	return TRUE;
#endif

	//Changed GuildCode // 030324
	if( CHANGE_LIMITED_RESET_FORGUILD > m_ChrInfo.reset )
	{//reset蔼捞 矩朝 蔼捞搁 扁粮 辨靛内靛蔼阑 荤侩茄促. 
		return TRUE;
	}

	sprintf(str," select spritvalue from chr_info where name='%s'", m_ComboCharName.GetBuffer( m_ComboCharName.GetLength()) );
	g_pDb->KSCToUnicode(str,query);
	ret = g_pDb->OpenRecord(query, &m_dwGuildCode, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);
	//::MessageBoxPrintf( MB_OK, "%d", m_dwGuildCode );
	if(ret < 0)	
	{
		MessageBox("ERROR! : Get a GuildCode to DB");
		return FALSE;
	}
	else if(!ret)
	{
		MessageBox("No Result! : Get a GuildCode to DB");
		return FALSE;
	}


	return TRUE;
}

BOOL CCharacterView::QueryOtherCharByName()
{
	if( !RIGHT(MASK_2) )	return FALSE;
	WCHAR query[ 0xff ];
	char str[ 0xff ];
	char login_id[ 20 ];	memset(login_id,0,20);
	sprintf(str, "select login_id from chr_info where [name]='%s'", m_ComboCharName);
	g_pDb->KSCToUnicode(str, query);
	int ret = g_pDb->OpenRecord(query, login_id, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);
	if(ret < 0)
	{
		MessageBox("Query Failed : RM_QUERY_LOGIN_ID");	
		return FALSE;
	}
	
	
	sprintf(str, "select RTRIM(name1),RTRIM(name2),RTRIM(name3),"
		"RTRIM(name4) from chr_log_info where login_id='%s'", login_id);

	g_pDb->KSCToUnicode(str, query);

	switch( g_iNation )	// 030102 kyo chr_log_info狼 name1... 狼 屈侥捞 char捞 酒匆 版快 default肺 
	{
	case NATION_KOREA:
	case NATION_TAIWAN:
		{
			ret = g_pDb->OpenRecord(query, &m_szAllCharName, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]); 
		}break;
	
	default:
		{
			wchar_name w_Allname;
			memset(&w_Allname, 0, sizeof( w_Allname) );
			//罐酒坷绰 磊丰屈狼 蔼捞 char牢啊 wchar牢啊甫 舅酒郴搁. 歹宽 祈茄单.//kyo
			ret = g_pDb->OpenRecord(query, &w_Allname, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);

			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name1,-1, m_szAllCharName.name1,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name2,-1, m_szAllCharName.name2,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name3,-1, m_szAllCharName.name3,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name4,-1, m_szAllCharName.name4,  100, NULL, NULL);	
		}break;
	}


	//ret = g_pDb->OpenRecord(query, &m_szAllCharName, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);
	if(ret < 0)
	{
		MessageBox("Query Failed : RM_QUERY_ALL_CHARACTER");	
		return FALSE;
	}

	c_ComboCharName.ResetContent();
	c_ComboCharName.InsertString(0, m_szAllCharName.name1);
	c_ComboCharName.InsertString(1, m_szAllCharName.name2);
	c_ComboCharName.InsertString(2, m_szAllCharName.name3);
	c_ComboCharName.InsertString(3, m_szAllCharName.name4);
	return TRUE;
}

//ComboBox(某腐磐 捞抚)俊辑 浚磐 闷阑锭 
void CCharacterView::OnComboEnter()
{
	UpdateData(); //kyo 020826
	
	if(!QueryBasicInfo())	return;

	m_BasicDlg.RefreshData();
	m_ItemDlg.RefreshData();
	m_TacQuestDlg.RefreshData();
	m_TakenSkillDlg.RefreshData();
	m_SkillDataDlg.RefreshData();
	m_GuildDlg.RefreshData();
	//m_WareDlg.RefreshData();		// 021128 

	QueryOtherCharByName();		// 021114 kyo 蜡历 捞抚阑 滴锅 扁废且 鞘夸 绝促. 捞 郴侩篮 QueryBasicInfo俊 乐促.

	//UpdateData( FALSE );//kyo 020826

	((CMainFrame*)AfxGetMainWnd())->Chime(); //家府

	if(AskUserOnline() > 0)		//泅犁 立加吝牢 蜡历捞搁 
	{
		SetDlgItemText(IDC_STATIC_ONLINE, " Connected ");
		m_bOnline = TRUE;
		c_Kick.EnableWindow(TRUE);
	}
	else
	{
		SetDlgItemText(IDC_STATIC_ONLINE, "No Use");
		m_bOnline = FALSE;
		c_Kick.EnableWindow(FALSE);
	}


	SetDlgItemText(IDC_COMBO_NAME,m_ComboCharName);
	c_StaticOnline.Invalidate();

	m_szCurCharName = m_ComboCharName;
	m_szCurLoginId = m_ChrInfo.login_id;
	
}

// id鄂俊辑 Enter闷阑锭.
void CCharacterView::OnEnterFindID()
{
	if( !RIGHT(MASK_2) )	return;

	if( NULL == m_ComboCharName.GetBuffer(0) )
	{
		AfxMessageBox( "Insert Character ID" );
		return;
	}

	if( 0 == c_ServerSet.GetCurSel())
	{
		AfxMessageBox( "Select ServerSet" );
		return;
	}

	if( 0 >= c_ComboDb.GetLBTextLen( c_ComboDb.GetCurSel())  )
	{
		AfxMessageBox( "Select DataBase" );
		return;
	}

	WCHAR query[ 0xff ];
	char str[ 0xff ];
	int ret;
	sprintf(str, "select RTRIM(name1),RTRIM(name2),RTRIM(name3),RTRIM(name4) from chr_log_info where login_id='%s'", m_szFindID);
	//sprintf(str, "select name1,name2,name3,name4 from chr_log_info where login_id='%s'", m_szFindID);
	g_pDb->KSCToUnicode(str, query);
	memset(&m_szAllCharName,0,sizeof(m_szAllCharName));
	//ret = g_pDb->OpenRecord(query, &m_szAllCharName, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);

	switch( g_iNation )	// 030102 kyo chr_log_info狼 name1... 狼 屈侥捞 char捞 酒匆 版快 default肺 
	{
	case NATION_KOREA:
	case NATION_TAIWAN:
		{
			ret = g_pDb->OpenRecord(query, &m_szAllCharName, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]); // 怕惫侩捞骨肺 林籍贸府窃
		}break;

	default:
		{
			wchar_name w_Allname;
			memset(&w_Allname, 0, sizeof( w_Allname) );
			//罐酒坷绰 磊丰屈狼 蔼捞 char牢啊 wchar牢啊甫 舅酒郴搁. 歹宽 祈茄单.//kyo
			ret = g_pDb->OpenRecord(query, &w_Allname, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);

			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name1,-1, m_szAllCharName.name1,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name2,-1, m_szAllCharName.name2,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name3,-1, m_szAllCharName.name3,  100, NULL, NULL);
			::WideCharToMultiByte(CP_ACP, 0, w_Allname.name4,-1, m_szAllCharName.name4,  100, NULL, NULL);	
		}break;
	}

		
if( 1004 == ::GetPrivateProfileInt("Admin","idCheck",-10,g_szSetupPath) )
{
	MessageBoxPrintf( IDOK, "id = %s, name1=%s,name2=%s,name3=%s,name4=%s", m_szFindID, m_szAllCharName.name1,
		m_szAllCharName.name2,m_szAllCharName.name3,m_szAllCharName.name4);
}

	// 021118 怕惫巩力肺 蜡聪内靛 楷嚼
	//for thailand<<
	/*
		wchar_name w_Allname;
		memset(&w_Allname, 0, sizeof( w_Allname) );
		//罐酒坷绰 磊丰屈狼 蔼捞 char牢啊 wchar牢啊甫 舅酒郴搁. 歹宽 祈茄单.//kyo
		ret = g_pDb->OpenRecord(query, &w_Allname, 1, (BYTE)DRAGON_DB[ m_nCurDbIndex ]);

		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name1,-1, m_szAllCharName.name1,  100, NULL, NULL);
		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name2,-1, m_szAllCharName.name2,  100, NULL, NULL);
		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name3,-1, m_szAllCharName.name3,  100, NULL, NULL);
		::WideCharToMultiByte(CP_ACP, 0, w_Allname.name4,-1, m_szAllCharName.name4,  100, NULL, NULL);
	*/
	//for thailand>>

	if(ret < 0)
	{
		MessageBox("Query Failed : RM_QUERY_ALL_CHARACTER");	
		return;
	}else if(ret == 0)
	{
		MessageBox("Have no ID ");
		return;
	}	
	
	m_szCurLoginId = m_szFindID;

//021115 怕惫俊辑 某腐磐捞抚瘤况瘤绰 巩力 锭巩俊.
if( 18 == ::GetPrivateProfileInt("Admin","idCheck",-10,g_szSetupPath) )
{
	MessageBoxPrintf( IDOK, "name1=%s,name2=%s,name3=%s,name4=%s", m_szAllCharName.name1,
		m_szAllCharName.name2,m_szAllCharName.name3,m_szAllCharName.name4);
}

	if(AskUserOnline(m_szFindID.GetBuffer( m_szFindID.GetLength()) ) > 0)		//泅犁 立加吝牢 蜡历捞搁 
	{
		SetDlgItemText(IDC_STATIC_ONLINE, "Connected");
		m_bOnline = TRUE;
		c_Kick.EnableWindow(TRUE);
		//c_Kick.EnableWindow(FALSE);
		c_StaticOnline.Invalidate();
	}
	else
	{
		SetDlgItemText(IDC_STATIC_ONLINE, "No Use");
		m_bOnline = FALSE;
		c_Kick.EnableWindow(FALSE);
		c_StaticOnline.Invalidate();
	}

	c_ComboCharName.ResetContent();
	c_ComboCharName.InsertString(0, m_szAllCharName.name1);
	c_ComboCharName.InsertString(1, m_szAllCharName.name2);
	c_ComboCharName.InsertString(2, m_szAllCharName.name3);
	c_ComboCharName.InsertString(3, m_szAllCharName.name4);

	c_ComboCharName.ShowDropDown();
	c_ComboCharName.SetFocus();

	//::SetFocus(::GetDlgItem(this->m_hWnd,IDC_EDIT_FIND_BY_ID));
}

//某腐磐 函版且锭 
void CCharacterView::OnSelchangeComboName() 
{
	// TODO: Add your control notification handler code here
	
	m_ItemDlg.SelectClear();
	UpdateData();

#ifdef RM_REPAIR
	DeleteAllRepairTable();
#endif

	int nIndex = c_ComboCharName.GetCurSel();
	if( nIndex < 0 ) return;

	CString str;
	c_ComboCharName.GetLBText(nIndex, str);

	if( str.GetLength() <= 0 ) return;
	m_ComboCharName = str;

	
	if(!QueryBasicInfo())	
	{
		return;
	}

	m_szCurCharName = m_ComboCharName;
	m_szCurLoginId = m_ChrInfo.login_id;

	m_BasicDlg.RefreshData();
	m_ItemDlg.RefreshData();
	m_TacQuestDlg.RefreshData();
	m_TakenSkillDlg.RefreshData();
	m_SkillDataDlg.RefreshData();
	m_GuildDlg.RefreshData();
	//m_WareDlg.RefreshData();	// 021128 kyo

#ifdef RM_REPAIR
	EnterCriticalSection( &m_Crt );
	InsertRepairTable( m_ChrInfo.login_id, m_ComboCharName.GetBuffer(0) );
	LeaveCriticalSection( &m_Crt );
#endif

⌨️ 快捷键说明

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