📄 serverdlg2.cpp
字号:
pSocket->ProcessData();
if (++proccount >= 20 )
{
proccount = 0;
Sleep(1);
}
}
}
return 0;
}
*/
// 肺弊牢 胶饭靛 窃荐...
//DWORD WINAPI WorkerLoginThread(LPVOID lp )
//unsigned __stdcall WorkerLoginThread( void *lp )
UINT WorkerLoginThread( void *lp )
{
LOGINOUTTHREADDATA *pLIOTD;
CPtrList LocalLoginData;
int nLocalLoginDataCount = 0;
for (;;)
{
if ( nLoginDataCount < 1 )
{
Sleep(1);
continue;
}
EnterCriticalSection( &m_CS_LoginData );
while( nLoginDataCount >= 1 )
{
pLIOTD = (LOGINOUTTHREADDATA *)RecvLoginData.RemoveHead();
nLoginDataCount = RecvLoginData.GetCount();
LocalLoginData.AddTail(pLIOTD);
nLocalLoginDataCount = LocalLoginData.GetCount();
}
LeaveCriticalSection( &m_CS_LoginData );
while( nLocalLoginDataCount >= 1 )
{
pLIOTD = (LOGINOUTTHREADDATA*)LocalLoginData.RemoveHead();
nLocalLoginDataCount = LocalLoginData.GetCount();
if ( pLIOTD == NULL ) continue;
USER *pUser = NULL;
pUser = g_pUserList->GetUserUid(pLIOTD->UID);
if ( pUser == NULL )
{
delete pLIOTD;
Sleep(1);
continue;
}
// EnterCriticalSection(&m_CS_SqlDataProcess);
if ( pUser && pUser->m_SockFlag == 1 )
{
switch(pLIOTD->CODE)
{
case ACCOUNT_LOGIN_REQ:
pUser->AccountLoginReq(pLIOTD->ID);
break;
case GAME_START_REQ:
pUser->GameStart(pLIOTD->ID);
break;
case RESTART_REQ:
pUser->RestartReq(pLIOTD->ID);
break;
}
}
// LeaveCriticalSection(&m_CS_SqlDataProcess);
delete pLIOTD;
Sleep(1);
}
/*
EnterCriticalSection( &m_CS_LoginData );
pLIOTD = (LOGINOUTTHREADDATA *)RecvLoginData.RemoveHead();
nLoginDataCount = RecvLoginData.GetCount();
LeaveCriticalSection( &m_CS_LoginData );
if ( pLIOTD == NULL ) continue;
pUser = g_pUserList->GetUserUid(pLIOTD->UID);
if ( pUser == NULL )
{
delete pLIOTD;
Sleep(1);
continue;
}
EnterCriticalSection(&m_CS_SqlDataProcess);
if ( pUser && pUser->m_SockFlag == 1 )
{
switch(pLIOTD->CODE)
{
case ACCOUNT_LOGIN_REQ:
pUser->AccountLoginReq(pLIOTD->ID);
break;
case GAME_START_REQ:
pUser->GameStart(pLIOTD->ID);
break;
case RESTART_REQ:
pUser->RestartReq(pLIOTD->ID);
break;
}
}
LeaveCriticalSection(&m_CS_SqlDataProcess);
delete pLIOTD;
Sleep(1);
*/
}
return 0;
}
// 肺弊牢 胶饭靛 窃荐...
//DWORD WINAPI WorkerLogoutThread(LPVOID lp )
//unsigned __stdcall WorkerLogoutThread( void *lp )
UINT WorkerLogoutThread( void *lp )
{
LOGINOUTTHREADDATA *pLIOTD;
CPtrList LocalLogoutData;
int nLocalDataCount = 0;
for (;;)
{
if ( nLogoutDataCount < 1 )
{
Sleep(1);
continue;
}
EnterCriticalSection( &m_CS_LogoutData );
while( nLogoutDataCount >= 1 )
{
pLIOTD = (LOGINOUTTHREADDATA *)RecvLogoutData.RemoveHead();
nLogoutDataCount = RecvLogoutData.GetCount();
LocalLogoutData.AddTail( pLIOTD );
nLocalDataCount = LocalLogoutData.GetCount();
}
LeaveCriticalSection( &m_CS_LogoutData );
while( nLocalDataCount >= 1 )
{
pLIOTD = (LOGINOUTTHREADDATA*)LocalLogoutData.RemoveHead();
nLocalDataCount = LocalLogoutData.GetCount();
if ( pLIOTD == NULL ) continue;
USER *pUser = NULL;
pUser = g_pUserList->GetUserUid(pLIOTD->UID);
if ( pUser == NULL )
{
delete pLIOTD;
Sleep(1);
continue;
}
// EnterCriticalSection(&m_CS_SqlDataProcess);
if ( pUser )
pUser->SockCloseProcess();
// LeaveCriticalSection(&m_CS_SqlDataProcess);
delete pLIOTD;
//Sleep(1);
}
/*
EnterCriticalSection( &m_CS_LogoutData );
pLIOTD = (LOGINOUTTHREADDATA *)RecvLogoutData.RemoveHead();
nLogoutDataCount = RecvLogoutData.GetCount();
LeaveCriticalSection( &m_CS_LogoutData );
if ( pLIOTD == NULL ) continue;
pUser = g_pUserList->GetUserUid(pLIOTD->UID);
if ( pUser == NULL )
{
delete pLIOTD;
Sleep(1);
continue;
}
EnterCriticalSection(&m_CS_SqlDataProcess);
if ( pUser )
pUser->SockCloseProcess();
LeaveCriticalSection(&m_CS_SqlDataProcess);
delete pLIOTD;
Sleep(1);
*/
}
return 0;
}
//DWORD WINAPI WorkerSQLThread(LPVOID lp )
//unsigned __stdcall WorkerSQLThread( void *lp )
UINT WorkerSQLThread( void *lp )
{
SQLDATAPACKET *pSDP;
CPtrList LocalSqlData;
int nLocalDataCount = 0;
for (;;)
{
if ( nSqlDataCount < 1 )
{
Sleep(1);
continue;
}
EnterCriticalSection( &m_CS_SqlData );
while( nSqlDataCount >= 1 )
{
pSDP = (SQLDATAPACKET *)RecvSqlData.RemoveHead();
nSqlDataCount = RecvSqlData.GetCount();
LocalSqlData.AddTail( pSDP );
}
LeaveCriticalSection( &m_CS_SqlData );
nLocalDataCount = LocalSqlData.GetCount();
while( nLocalDataCount >= 1 )
{
pSDP = (SQLDATAPACKET*)LocalSqlData.RemoveHead();
nLocalDataCount = LocalSqlData.GetCount();
if ( pSDP == NULL ) continue;
USER *pUser = NULL;
pUser = g_pUserList->GetUserUid(pSDP->UID);
if ( pUser == NULL )
{
delete pSDP;
Sleep(1);
continue;
}
if ( pUser->m_SockFlag != 1 )
{
delete pSDP;
Sleep(1);
continue;
}
// EnterCriticalSection(&m_CS_SqlDataProcess);
switch(pSDP->code)
{
case NEW_CHAR_REQ_WITH_THREAD:
pUser->NewCharReq((TCHAR *)pSDP->pData);
break;
case GUILD_OPEN_REQ:
pUser->NewGuild((TCHAR *)pSDP->pData);
break;
case DEL_GUILD_CHAR_REQ:
pUser->DeleteGuildUser((TCHAR *)pSDP->pData);
break;
case GUILD_KICK_OUT:
pUser->GuildKickOut((TCHAR *)pSDP->pData);
break;
case GUILD_MARK_ADD_REQ:
pUser->GuildMarkAddReq((TCHAR *)pSDP->pData);
break;
// case GUILD_INVITE_USER_REQ:
// pUser->GuildInvite((TCHAR *)pSDP->pData);
// break;
case GUILD_OFF_WITH_THREAD:
pUser->GuildOff((TCHAR *)pSDP->pData);
break;
case GUILD_DISPERSE:
pUser->GuildDisperse((TCHAR *)pSDP->pData);
break;
case DELETE_CHAR_REQ:
pUser->DeleteCharReq((TCHAR *)pSDP->pData);
break;
case BBS_DELETE:
pUser->BBSDelete((TCHAR *)pSDP->pData);
break;
case BBS_EDIT:
pUser->BBSEdit((TCHAR *)pSDP->pData);
break;
case BBS_WRITE:
pUser->BBSWrite((TCHAR *)pSDP->pData);
break;
case BBS_NEXT:
pUser->BBSNext((TCHAR *)pSDP->pData);
break;
case BBS_READ:
pUser->BBSRead((TCHAR *)pSDP->pData);
break;
case DB_GUILD_ITEM_MOVE_REQ:
pUser->GuildItemMoveReq((TCHAR *)pSDP->pData);
break;
case DB_GUILD_WHEREHOUSE_EVENT_REQ:
pUser->GuildWharehouseOpenReq();
break;
case DB_USER_COUNT:
{
COM *pCom = g_pMainDlg->GetCOM();
if ( pCom )
{
pCom->UpdateUserCount();
}
}
break;
case DB_USER_DEAD:
pUser->UpdateUserDeadLog((TCHAR *)pSDP->pData);
break;
//yskang 0.1 龋莫[局莫]
case LOVE_NAME_RESULT:
pUser->InsertLoveName((TCHAR *)pSDP->pData);
break;
default: break;
};
// LeaveCriticalSection(&m_CS_SqlDataProcess);
delete pSDP;
Sleep(1);
}
/*
EnterCriticalSection( &m_CS_SqlData );
pSDP = (SQLDATAPACKET *)RecvSqlData.RemoveHead();
nSqlDataCount = RecvSqlData.GetCount();
LeaveCriticalSection( &m_CS_SqlData );
if ( pSDP == NULL ) continue;
pUser = g_pUserList->GetUserUid(pSDP->UID);
if ( pUser == NULL )
{
delete pSDP;
Sleep(1);
continue;
}
if ( pUser->m_SockFlag != 1 )
{
delete pSDP;
Sleep(1);
continue;
}
EnterCriticalSection(&m_CS_SqlDataProcess);
switch(pSDP->code)
{
case NEW_CHAR_REQ_WITH_THREAD:
pUser->NewCharReq((TCHAR *)pSDP->pData);
break;
case GUILD_OPEN_REQ:
pUser->NewGuild((TCHAR *)pSDP->pData);
break;
case DEL_GUILD_CHAR_REQ:
pUser->DeleteGuildUser((TCHAR *)pSDP->pData);
break;
case GUILD_KICK_OUT:
pUser->GuildKickOut((TCHAR *)pSDP->pData);
break;
case GUILD_MARK_ADD_REQ:
pUser->GuildMarkAddReq((TCHAR *)pSDP->pData);
break;
case GUILD_INVITE_USER_REQ:
pUser->GuildInvite((TCHAR *)pSDP->pData);
break;
case GUILD_OFF_WITH_THREAD:
pUser->GuildOff((TCHAR *)pSDP->pData);
break;
case GUILD_DISPERSE:
pUser->GuildDisperse((TCHAR *)pSDP->pData);
break;
case DELETE_CHAR_REQ:
pUser->DeleteCharReq((TCHAR *)pSDP->pData);
break;
case BBS_DELETE:
pUser->BBSDelete((TCHAR *)pSDP->pData);
break;
case BBS_EDIT:
pUser->BBSEdit((TCHAR *)pSDP->pData);
break;
case BBS_WRITE:
pUser->BBSWrite((TCHAR *)pSDP->pData);
break;
case BBS_NEXT:
pUser->BBSNext((TCHAR *)pSDP->pData);
break;
case BBS_READ:
pUser->BBSRead((TCHAR *)pSDP->pData);
break;
case DB_GUILD_ITEM_MOVE_REQ:
pUser->GuildItemMoveReq((TCHAR *)pSDP->pData);
break;
case DB_GUILD_WHEREHOUSE_EVENT_REQ:
pUser->GuildWharehouseOpenReq();
break;
case DB_USER_COUNT:
{
COM *pCom = g_pMainDlg->GetCOM();
if ( pCom )
{
pCom->UpdateUserCount();
}
}
break;
};
LeaveCriticalSection(&m_CS_SqlDataProcess);
delete pSDP;
Sleep(1);
*/
}
return 0;
}
UINT WorkerFortressThread( void *lp )
{
FORTRESSDATAPACKET *pSDP;
CPtrList LocalData;
int nLocalDataCount = 0;
for (;;)
{
if ( nFortressDataCount < 1 )
{
Sleep(1);
continue;
}
EnterCriticalSection( &m_CS_FortressData );
while( nFortressDataCount >= 1 )
{
pSDP = (FORTRESSDATAPACKET *)RecvFortressData.RemoveHead();
nFortressDataCount = RecvFortressData.GetCount();
LocalData.AddTail( pSDP );
}
LeaveCriticalSection( &m_CS_FortressData );
nLocalDataCount = LocalData.GetCount();
while( nLocalDataCount >= 1 )
{
pSDP = (FORTRESSDATAPACKET*)LocalData.RemoveHead();
nLocalDataCount = LocalData.GetCount();
if ( pSDP == NULL ) continue;
CString strMsg = _T("");
USER *pUser = NULL;
CGuildFortress *pFort = NULL;
int type = 0, i=0, mapindex = 0;
if(pSDP->sFortressIndex < 0 || pSDP->sFortressIndex >= g_arGuildFortress.GetSize())
{
delete pSDP;
Sleep(1);
continue;
}
pFort = g_arGuildFortress[pSDP->sFortressIndex];
if(!pFort)
{
delete pSDP;
Sleep(1);
continue;
}
if(pFort->m_lUsed != 1) // 傍己傈捞 酒聪搁..肋给等 沥焊烙
{
delete pSDP;
Sleep(1);
continue;
}
strMsg.Format( IDS_USER_GET_FORTRESS_SUCCESS, pSDP->FORTRESS );
for(i = 0; i < MAX_USER; i++)
{
pUser = g_pUserList->GetUserUid(i);
if(pUser == NULL || pUser->m_state != STATE_GAMESTARTED) continue;
if ( pUser->m_SockFlag == 1 )
{
type = pUser->CheckInvalidMapType();
mapindex = pUser->GetGuildMapIndex(type);
if(mapindex > -1)
{ //辨靛傈捞 老绢唱绰 惑痢瘤开捞搁
if(pFort->m_iZone == pUser->m_curz)
{
if(pFort->m_iGuildSid != pUser->m_dwGuild && pUser->m_tIsOP != TRUE ) pUser->TownPotal();
pUser->SendSystemMsg((LPTSTR)(LPCTSTR)strMsg, SYSTEM_ANNOUNCE, TO_ME);
}
else if(g_arMapTable[mapindex]->m_sStoreID == pFort->m_sFortressID)
{ // 规绢辨靛盔捞 酒聪搁 葛滴 付阑肺
if(pFort->m_iGuildSid != pUser->m_dwGuild && pUser->m_tIsOP != TRUE ) pUser->TownPotal();
pUser->SendSystemMsg((LPTSTR)(LPCTSTR)strMsg, SYSTEM_ANNOUNCE, TO_ME);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -