Guest User

PNG Movie Streamer

a guest
Feb 27th, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.24 KB | None | 0 0
  1. // Uses s-art plugin to render frames of a video
  2.  
  3. #include <a_samp>
  4. #include <s-art>
  5.  
  6. #define ART_POS     0.0, 0.0, 20.0
  7. #define ART_ROT     0.0, 0.0, 0.0
  8.  
  9. #define PNG_PATH    "C:\\PNG\\%d.png"
  10. #define TARGET_FPS  30
  11.  
  12. new CurrentFrame = 0, MovieTimer = -1, CurrentArt = -1;
  13.  
  14. public OnFilterScriptExit()
  15. {
  16.     if(MovieTimer != -1)
  17.     {
  18.         KillTimer(MovieTimer);
  19.         DestroyArt(CurrentArt);
  20.     }
  21.    
  22.     return 1;
  23. }
  24.  
  25. forward MovieTimerCallback();
  26. public MovieTimerCallback()
  27. {
  28.     new fname[50];
  29.     format(fname, sizeof(fname), PNG_PATH, CurrentFrame);
  30.    
  31.     if(CurrentArt != -1) DestroyArt(CurrentArt);
  32.     CurrentArt = CreateArt(fname, 0, ART_POS, ART_ROT, 700.0);
  33.    
  34.     if(CurrentArt == 10) // Plugin returns 10 on error for some weird reason
  35.     {
  36.         KillTimer(MovieTimer);
  37.         MovieTimer = -1;
  38.         CurrentFrame = 0;
  39.         CurrentArt = -1;
  40.        
  41.         return;
  42.     }
  43.    
  44.     CurrentFrame ++;
  45.    
  46.     return;
  47. }
  48.  
  49. public OnPlayerCommandText(playerid, cmdtext[])
  50. {
  51.     if(strcmp(cmdtext, "/movie", true) == 0)
  52.     {
  53.         if(MovieTimer != -1) KillTimer(MovieTimer);
  54.         if(CurrentArt != -1) DestroyArt(CurrentArt);
  55.        
  56.         MovieTimer = SetTimer("MovieTimerCallback", 1000/TARGET_FPS, 1);
  57.         CurrentFrame = 0;
  58.         CurrentArt = -1;
  59.         return 1;
  60.     }
  61.     return 0;
  62. }
Add Comment
Please, Sign In to add comment