Advertisement
Guest User

Untitled

a guest
Aug 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. public NativeAchievementProgress( const iPlugin, const iParams ) {
  2. new id = get_param( 1 );
  3.  
  4. if( !IsPlayer( id ) ) {
  5. log_error( AMX_ERR_BOUNDS, "AchievementProgress: index out of bounds for id (%i)", id );
  6. return 0;
  7. }
  8. else if( !g_iPlayerId[ id ] )
  9. return 0;
  10.  
  11. new iAchievement = get_param( 2 );
  12.  
  13. if( !IsAchievement( iAchievement ) ) {
  14. log_error( AMX_ERR_BOUNDS, "AchievementProgress: index out of bounds for iAchievement (%i)", id );
  15. return 0;
  16. }
  17.  
  18. new Achievement[ AchievementData ], Progress[ ProgressData ];
  19. ArrayGetArray( g_aAchievements, iAchievement, Achievement );
  20. ArrayGetArray( g_aProgress[ id ], iAchievement, Progress );
  21.  
  22. // Lets check if he already has achievement
  23. if( Progress[ Progress_Num ] >= Achievement[ Achv_NeededToGain ] ) {
  24. #if defined DEBUG
  25. ColorChat( 0, Red, "^1Achievement progress for^3 #%i^1 -^4 ^"%s^" (%i)^1 -^3 Already unlocked!",
  26. id, Achievement[ Achv_Name ], Achievement[ Achv_SqlIndex ] );
  27. #endif
  28.  
  29. return 1;
  30. }
  31.  
  32. new iProgress = get_param( 3 );
  33. new iTotalProgress = iProgress + Progress[ Progress_Num ];
  34.  
  35. if( iTotalProgress >= Achievement[ Achv_NeededToGain ] ) {
  36. iTotalProgress = Achievement[ Achv_NeededToGain ];
  37.  
  38. AwardAchievement( id, iAchievement, Achievement );
  39. }
  40. else if( Achievement[ Achv_ProgressModule ] > 0 && ( iTotalProgress % Achievement[ Achv_ProgressModule ] ) == 0 ) {
  41. ShowProgressNotification( id, iTotalProgress, Achievement[ Achv_Name ], Achievement[ Achv_NeededToGain ] );
  42. }
  43.  
  44. Progress[ Progress_Num ] = iTotalProgress;
  45.  
  46. ArraySetArray( g_aProgress[ id ], iAchievement, Progress );
  47.  
  48. UTIL_UpdateProgress( id, Achievement[ Achv_SqlIndex ], iProgress, Progress[ Progress_Bits ] );
  49.  
  50. #if defined DEBUG
  51. ColorChat( 0, Red, "^1Achievement progress for^3 #%i^1 -^4 ^"%s^" (%i)^1 - Progress:^4 %i^1 (%i/%i)",
  52. id, Achievement[ Achv_Name ], Achievement[ Achv_SqlIndex ], iProgress, iTotalProgress, Achievement[ Achv_NeededToGain ] );
  53. #endif
  54.  
  55.  
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement