Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BOOL BellatraServer::UpdateClanBellatra()
- {
- if ( GAME_SERVER )
- return TRUE;
- if ( dwClanBellatraUpdateTime > TICKCOUNT )
- return TRUE;
- dwClanBellatraUpdateTime = TICKCOUNT + 30000;
- char szCharName[32] = { 0 };
- char szCharName2[32] = { 0 };
- int iPoint = 0;
- int iCode = 0;
- int iTotalPoint = 0;
- int iSuccessUser = 0;
- int iCurrentClanPoint = 0;
- int iTotalPlayers = 0;
- char szClanName[32] = { 0 };
- char szClanName2[32] = { 0 };
- SQLConnection * pcDB = SQLCONNECTION( DATABASEID_ClanDB );
- SYSTEMTIME sTime;
- GetLocalTime( &sTime );
- if ( sTime.wDayOfWeek == 6 && sTime.wDay != wLastDayResetSOD )
- {
- ResetBellatra();
- wLastDayResetSOD = sTime.wDay;
- }
- if ( pcDB->Open() )
- {
- // Get Sod Data
- if ( pcDB->Prepare( "SELECT CharacterName,Code,TotalPoint,SuccessUser FROM BellatraTeamScore" ) )
- {
- // Have data?
- if ( pcDB->Execute() && pcDB->Fetch() )
- {
- // Fetch results
- while ( true )
- {
- pcDB->GetData( 1, PARAMTYPE_String, szCharName, 32 );
- pcDB->GetData( 2, PARAMTYPE_Integer, &iCode, 0 );
- pcDB->GetData( 3, PARAMTYPE_Integer, &iTotalPoint, 0 );
- pcDB->GetData( 4, PARAMTYPE_Integer, &iSuccessUser, 0 );
- // Have points or more than 3 users in the room?
- if ( iTotalPoint > 0 || iSuccessUser >= iMinimalUserClanPoints )
- {
- // Get User Clan
- GetClanName( szCharName, szClanName );
- // Get current clan point
- iCurrentClanPoint = GetClanPoint( szClanName );
- iTotalPlayers = 1;
- SQLConnection * pcDB2 = SQLCONNECTION( DATABASEID_ClanDB_2 );
- if ( pcDB2->Open() )
- {
- // Get Users mistmatch point and room
- if ( pcDB2->Prepare( "SELECT CharacterName,Score FROM BellatraTeamScore WHERE (Code=?) AND (TotalPoint=?) AND (SuccessUser=?)" ) )
- {
- pcDB2->BindParameterInput( 1, PARAMTYPE_Integer, &iCode );
- pcDB2->BindParameterInput( 2, PARAMTYPE_Integer, &iTotalPoint );
- pcDB2->BindParameterInput( 3, PARAMTYPE_Integer, &iSuccessUser );
- int iCount = 0;
- if ( pcDB2->Execute() && pcDB2->Fetch() )
- {
- // Fetch results
- while ( true )
- {
- szCharName2[0] = '\0';
- pcDB2->GetData( 1, PARAMTYPE_String, szCharName2, 32 );
- pcDB2->GetData( 2, PARAMTYPE_Integer, &iPoint, 0 );
- // User have point?
- if ( iPoint > 0 )
- {
- // Not current user?
- if ( !STRINGCOMPAREI( szCharName, szCharName2 ) )
- {
- // Get clan name of this next user
- GetClanName( szCharName2, szClanName2 );
- // Mismatch clan? Add players of same clan
- if ( STRINGCOMPAREI( szClanName, szClanName2 ) )
- iTotalPlayers++;
- else
- iTotalPoint -= iPoint; // Decrease point
- }
- }
- // Next user result
- if ( !pcDB2->Fetch() )
- break;
- }
- }
- }
- pcDB2->Close();
- }
- // More than 3 users in the room that is same clan and new Point is more than Old Point? Record clan point
- if ( iTotalPlayers >= iMinimalUserClanPoints && iTotalPoint > iCurrentClanPoint )
- RecordClanPoint( szClanName, iTotalPoint, iCurrentClanPoint );
- }
- // Next Sod data
- if ( !pcDB->Fetch() )
- break;
- }
- }
- }
- pcDB->Close();
- }
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement