Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public NativeAchievementProgress( const iPlugin, const iParams ) {
- new id = get_param( 1 );
- if( !IsPlayer( id ) ) {
- log_error( AMX_ERR_BOUNDS, "AchievementProgress: index out of bounds for id (%i)", id );
- return 0;
- }
- else if( !g_iPlayerId[ id ] )
- return 0;
- new iAchievement = get_param( 2 );
- if( !IsAchievement( iAchievement ) ) {
- log_error( AMX_ERR_BOUNDS, "AchievementProgress: index out of bounds for iAchievement (%i)", id );
- return 0;
- }
- new Achievement[ AchievementData ], Progress[ ProgressData ];
- ArrayGetArray( g_aAchievements, iAchievement, Achievement );
- ArrayGetArray( g_aProgress[ id ], iAchievement, Progress );
- // Lets check if he already has achievement
- if( Progress[ Progress_Num ] >= Achievement[ Achv_NeededToGain ] ) {
- #if defined DEBUG
- ColorChat( 0, Red, "^1Achievement progress for^3 #%i^1 -^4 ^"%s^" (%i)^1 -^3 Already unlocked!",
- id, Achievement[ Achv_Name ], Achievement[ Achv_SqlIndex ] );
- #endif
- return 1;
- }
- new iProgress = get_param( 3 );
- new iTotalProgress = iProgress + Progress[ Progress_Num ];
- if( iTotalProgress >= Achievement[ Achv_NeededToGain ] ) {
- iTotalProgress = Achievement[ Achv_NeededToGain ];
- AwardAchievement( id, iAchievement, Achievement );
- }
- else if( Achievement[ Achv_ProgressModule ] > 0 && ( iTotalProgress % Achievement[ Achv_ProgressModule ] ) == 0 ) {
- ShowProgressNotification( id, iTotalProgress, Achievement[ Achv_Name ], Achievement[ Achv_NeededToGain ] );
- }
- Progress[ Progress_Num ] = iTotalProgress;
- ArraySetArray( g_aProgress[ id ], iAchievement, Progress );
- UTIL_UpdateProgress( id, Achievement[ Achv_SqlIndex ], iProgress, Progress[ Progress_Bits ] );
- #if defined DEBUG
- ColorChat( 0, Red, "^1Achievement progress for^3 #%i^1 -^4 ^"%s^" (%i)^1 - Progress:^4 %i^1 (%i/%i)",
- id, Achievement[ Achv_Name ], Achievement[ Achv_SqlIndex ], iProgress, iTotalProgress, Achievement[ Achv_NeededToGain ] );
- #endif
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement