决战私服 曝光平台 百度一下 软件下载 特殊符号 发布家族 家族联盟 发布游戏 广告联系
网站首页 决战私服-头顶排行
 文章名称:决战私服-头顶排行
文章作者:决战私服
更新时间:2019-12-18
文章来源:www.yaojuezhan.com
BOOL COM::GetUserPaiMing()//获取玩家排名
{
int i;
SQLHSTMT hstmt;
SQLRETURN retcode;
TCHAR szSQL[2048];
CString sql = _T("");
sql.Format("SELECT TOP 50 strUserID, sLevel FROM gameuser WHERE tIsOP = 0 ORDER BY sLevel DESC");
::ZeroMemory(szSQL, sizeof(szSQL));
wsprintf(szSQL,TEXT(sql));
SQLCHAR strUserSortName[CHAR_NAME_LENGTH + 1];
SQLSMALLINT uLevel;
SQLINTEGER sInd;

::ZeroMemory(strUserSortName, sizeof(strUserSortName));
uLevel = 0;

int db_index = 0;
CDatabase* pDB = g_DB[AUTOMATA_THREAD].GetDB( db_index );
if( !pDB ) return FALSE;

retcode = SQLAllocHandle( (SQLSMALLINT)SQL_HANDLE_STMT, pDB->m_hdbc, &hstmt );
if( retcode != SQL_SUCCESS )
{
TRACE("Fail To Load UserSort Data !!\n");
AfxMessageBox(_T("SELECT GAMEUSER Table Open Fail!"));
//g_DB[AUTOMATA_THREAD].ReleaseDB(db_index);
return FALSE;
}
retcode = SQLExecDirect( hstmt, (unsigned char*)szSQL, SQL_NTS);
if( retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO )
{
int cixu = 0;
while(TRUE)
{
retcode = SQLFetch(hstmt);

if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
cixu++;
i = 1;
SQLGetData( hstmt, i++, SQL_C_CHAR,   &strUserSortName, sizeof(strUserSortName), &sInd );
SQLGetData( hstmt, i++, SQL_C_SSHORT, &uLevel, sizeof(uLevel), &sInd );
USER *pUser = GetUser((CHAR*)strUserSortName);
if(cixu <= 0 || cixu > 50) continue;
if(pUser != NULL && pUser->m_state == STATE_GAMESTARTED)
{
pUser->m_dwCKMiMa = cixu;
CString str = _T("");
str.Format("%s",pUser->m_strLoveName);
int pos = str.Find("]");
if(pos > 0)
{
str = str.Mid(pos + 1,str.GetLength());
}
::ZeroMemory(pUser->m_strLoveName,sizeof(pUser->m_strLoveName));
sprintf(pUser->m_strLoveName,"@9第[%d]%s名",pUser->m_dwCKMiMa,str);
CBufferEx TempBuf;
TempBuf.Add(LOVE_NAME);
TempBuf.Add(pUser->m_uid + USER_BAND);
TempBuf.AddString(pUser->m_strLoveName);
pUser->SendExactScreen(TempBuf, TempBuf.GetLength());
}
SetUserTop((CHAR*)strUserSortName,cixu);
}
else break;
}
}
else if (retcode == SQL_NO_DATA)
{
g_DB[AUTOMATA_THREAD].ReleaseDB(db_index);
return FALSE;
}
else
{
retcode = SQLFreeHandle( (SQLSMALLINT)SQL_HANDLE_STMT, hstmt);
g_DB[AUTOMATA_THREAD].ReleaseDB(db_index);
return FALSE;
}
retcode = SQLFreeHandle( (SQLSMALLINT)SQL_HANDLE_STMT, hstmt);
g_DB[AUTOMATA_THREAD].ReleaseDB(db_index);

return TRUE;
}