Advertisement
Guest User

Samp Screen Fader

a guest
Oct 2nd, 2016
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.14 KB | None | 0 0
  1. #define ALPHA(%1,%2) \
  2.     ((%1 & ~0xFF) | clamp(%2, 0x00, 0xFF))
  3.  
  4.  
  5. new PlayerText:fader_textdraw[MAX_PLAYERS];
  6. new FadeTimer[MAX_PLAYERS];
  7. new bool:FadeTimerActive[MAX_PLAYERS];
  8. new CurrentAlpha[MAX_PLAYERS];
  9.  
  10.  
  11. public OnPlayerConnect(playerid)
  12. {
  13.     KillTimer(FadeTimer[playerid]);
  14.     FadeTimerActive[playerid] = false;
  15.     SetTimerEx("CreateFaderTextDraw", 300, false, "d", playerid);
  16.     #if defined fad_OnPlayerConnect
  17.         return fad_OnPlayerConnect(playerid);
  18.     #else
  19.         return 1;
  20.     #endif
  21. }
  22. #if defined _ALS_OnPlayerConnect
  23.     #undef OnPlayerConnect
  24. #else
  25.     #define _ALS_OnPlayerConnect
  26. #endif
  27.  
  28. #define OnPlayerConnect fad_OnPlayerConnect
  29. #if defined fad_OnPlayerConnect
  30.     forward fad_OnPlayerConnect(playerid);
  31. #endif
  32.  
  33. forward CreateFaderTextDraw(playerid);
  34. public CreateFaderTextDraw(playerid)
  35. {
  36.     fader_textdraw[playerid] = CreatePlayerTextDraw(playerid, 0.0, 0.0, "~r~");
  37.     PlayerTextDrawTextSize(playerid, fader_textdraw[playerid], 640, 480);
  38.     PlayerTextDrawLetterSize(playerid, fader_textdraw[playerid], 0.0, 50.0);
  39.     PlayerTextDrawUseBox(playerid, fader_textdraw[playerid], 1);
  40.     return true;
  41. }
  42.  
  43. stock FadePlayerScreen(playerid, updaterate, color, alphastart = 0, alphaend = 255, bool:backtostart = false)
  44. {
  45.     if(FadeTimerActive[playerid])
  46.     {
  47.         KillTimer(FadeTimer[playerid]);
  48.         FadeTimerActive[playerid] = false;
  49.         PlayerTextDrawHide(playerid, fader_textdraw[playerid]);
  50.     }
  51.     if(alphastart == 0 && alphaend == 0) return false;
  52.  
  53.     CurrentAlpha[playerid] = alphastart;
  54.  
  55.     PlayerTextDrawHide(playerid, fader_textdraw[playerid]);
  56.     PlayerTextDrawBoxColor(playerid, fader_textdraw[playerid], ALPHA(color, alphastart));
  57.     PlayerTextDrawShow(playerid, fader_textdraw[playerid]);
  58.  
  59.  
  60.     FadeTimer[playerid] = SetTimerEx("FaderUpdate", 50, true, "dddddd", playerid, updaterate, color, alphastart, alphaend, backtostart);
  61.     FadeTimerActive[playerid] = true;
  62.     return true;
  63. }
  64.  
  65. forward FaderUpdate(playerid, updaterate, color, alphastart, alphaend, backtostart);
  66. public FaderUpdate(playerid, updaterate, color, alphastart, alphaend, backtostart)
  67. {
  68.     if(alphastart > alphaend)
  69.     {
  70.         if(CurrentAlpha[playerid] <= alphaend)
  71.         {
  72.             KillTimer(FadeTimer[playerid]);
  73.             FadeTimerActive[playerid] = false;
  74.             if(backtostart)
  75.             {
  76.                 FadeTimer[playerid] = SetTimerEx("FaderUpdate", 50, true, "dddddd", playerid, updaterate, color, alphaend, alphastart, false);
  77.             }
  78.             else PlayerTextDrawHide(playerid, fader_textdraw[playerid]);
  79.             return true;
  80.         }
  81.         CurrentAlpha[playerid] -= updaterate;
  82.     }
  83.     else if(alphastart < alphaend)
  84.     {
  85.         if(CurrentAlpha[playerid] >= alphaend)
  86.         {
  87.             KillTimer(FadeTimer[playerid]);
  88.             FadeTimerActive[playerid] = false;
  89.             if(backtostart)
  90.             {
  91.                 FadeTimer[playerid] = SetTimerEx("FaderUpdate", 50, true, "dddddd", playerid, updaterate, color, alphaend, alphastart, false);
  92.             }
  93.             else PlayerTextDrawHide(playerid, fader_textdraw[playerid]);
  94.             return true;
  95.         }
  96.         CurrentAlpha[playerid] += updaterate;
  97.     }
  98.     PlayerTextDrawHide(playerid, fader_textdraw[playerid]);
  99.     PlayerTextDrawBoxColor(playerid, fader_textdraw[playerid], ALPHA(color, CurrentAlpha[playerid]));
  100.     PlayerTextDrawShow(playerid, fader_textdraw[playerid]);
  101.     return true;
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement