Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 29th, 2012  |  syntax: PAWN  |  size: 2.29 KB  |  hits: 17  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <a_samp>
  2. #include <foreach>
  3. #include <YSI\y_hooks>
  4. #include <audio>
  5.  
  6. enum g_stream
  7. {
  8.     gStreamEnabled,
  9.     gStreamURL[128],
  10.     Float:gStreamRange
  11. }
  12.  
  13. new gObjectStream[MAX_OBJECTS][g_stream];
  14. new gActiveStreamObjectID[MAX_PLAYERS];
  15.  
  16. forward StreamCheckTimer( );
  17.  
  18. stock StopObjectStream( objectid )
  19. {
  20.     gObjectStream[objectid][gStreamURL] = 0;
  21.     gObjectStream[objectid][gStreamEnabled] = 0;
  22.     gObjectStream[objectid][gStreamRange] = 0;
  23. }
  24.  
  25. stock AttachStreamToObject( objectid, Float:range, url[])
  26. {
  27.     if( !IsValidObject( objectid ) )
  28.         return 0;
  29.  
  30.         format( gObjectStream[objectid][gStreamURL], 12, url[]);
  31.     gObjectStream[objectid][gStreamEnabled] = 1;
  32.     gObjectStream[objectid][gStreamRange] = range;
  33.     return 1;
  34. }
  35.  
  36. stock IsStreamAttachedToObject( objectid ) {
  37.     return ( gObjectStream[objectid][gStreamEnabled] == 1 ) ? 1 : 0;
  38. }
  39.  
  40. hook OnGameModeInit()
  41. {
  42.     SetTimer( "StreamCheckTimer", 1000, true );
  43. }
  44.  
  45.  
  46. public StreamCheckTimer( )
  47. {
  48.     new Float:objpos[3];
  49.     foreach(Player, x)
  50.     {
  51.         for( new y = 0; y != MAX_OBJECTS; ++y )
  52.         {
  53.             if( 1 != gObjectStream[y][gStreamEnabled] )
  54.                 continue;
  55.             else
  56.             {
  57.                 GetObjectPos( y, objpos[0], objpos[1], objpos[2] );
  58.                 if( IsPlayerInRangeOfPoint( x, gObjectStream[y][gStreamRange], objpos[0], objpos[1], objpos[2] ) )
  59.                 {
  60.                     if( gActiveStreamObjectID[x] != y )
  61.                     {
  62.                         gActiveStreamObjectID[x] = y;
  63.                         Audio_Play( x, gObjectStream[y][gStreamURL] );
  64.                     }
  65.  
  66.                     if( gActiveStreamObjectID[x] == y && gObjectStream[y][gStreamEnabled] == 0 )
  67.                     {
  68.                         gActiveStreamObjectID[x] = 0;
  69.                         Audio_Stop( x, gObjectStream[y][gStreamURL] );
  70.                     }
  71.                 }
  72.  
  73.                 else
  74.                 {
  75.                     if( gActiveStreamObjectID[x] == y ) // if is listening to a stream
  76.                     {
  77.                         gActiveStreamObjectID[x] = 0;
  78.                         Audio_Stop( x, gObjectStream[y][gStreamURL] );
  79.                     }
  80.                 }
  81.             }
  82.         }
  83.     }
  84.  
  85.     return 1;
  86. }