[Include] AttachStreamToObject - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Include] AttachStreamToObject
Herro[CM] Дата: Среда, 09.09.2015, 21:48 | Сообщение # 1
Бывалый
Сообщений: 425
Статус: Offline
Данный include позволит прикреплять аудио-поток к любому объекту.

Код

AttachStreamToObject( objectid, Float:range, url[] ); // Прикрепляет поток к объекту  
StopObjectStream( objectid ); // Удаляет поток у объекта  
IsStreamAttachedToObject( objectid ); // Проверка на наличие потока у объекта



include
Код
*/

#include <a_samp>
#include <foreach>
#include <YSI\y_hooks>

enum g_stream
{
  gStreamEnabled,
  gStreamURL[128],
  Float:gStreamRange
}

new gObjectStream[MAX_OBJECTS][g_stream];
new gActiveStreamObjectID[MAX_PLAYERS];

forward StreamCheckTimer( );

stock StopObjectStream( objectid )
{
  gObjectStream[objectid][gStreamURL] = "";
  gObjectStream[objectid][gStreamEnabled] = 0;
  gObjectStream[objectid][gStreamRange] = 0;
}

stock AttachStreamToObject( objectid, Float:range, url[] )
{
  if( !IsValidObject( objectid ) )
      return 0;

  format( gObjectStream[objectid][gStreamURL], 128, url );
  gObjectStream[objectid][gStreamEnabled] = 1;
  gObjectStream[objectid][gStreamRange] = range;
  return 1;
}

stock IsStreamAttachedToObject( objectid ) {
  return ( gObjectStream[objectid][gStreamEnabled] == 1 ) ? 1 : 0;
}

hook OnGameModeInit()
{
  SetTimer( "StreamCheckTimer", 1000, true );
  return 1;
}

public StreamCheckTimer( )
{
  new Float:objpos[3];
  foreach(Player, x)
  {
      for( new y = 0; y != MAX_OBJECTS; ++y )
      {
          if( 1 != gObjectStream[y][gStreamEnabled] )
              continue;
    else
    {
     GetObjectPos( y, objpos[0], objpos[1], objpos[2] );
        if( IsPlayerInRangeOfPoint( x, gObjectStream[y][gStreamRange], objpos[0], objpos[1], objpos[2] ) )
        {
            if( gActiveStreamObjectID[x] != y )
            {
             gActiveStreamObjectID[x] = y;
             PlayAudioStreamForPlayer( x, gObjectStream[y][gStreamURL] );
                  }
                   
                  if( gActiveStreamObjectID[x] == y && gStreamObject[y][gStreamEnabled] == 0 )
            {
       gActiveStreamObjectID[x] = 0;
                         StopAudioStreamForPlayer( x );
                     }
                 }

                 else
                 {
                     if( gActiveStreamObjectID[x] == y ) // if is listening to a stream
                     {
       gActiveStreamObjectID[x] = 0;
                         StopAudioStreamForPlayer( x );
                     }
     }
             }
         }
     }

     return 1;
}

Автор: admantis


Когда нет знания, есть мнение.
Surex Дата: Суббота, 02.07.2016, 14:03 | Сообщение # 2
Боец
Сообщений: 137
Статус: Offline
полезно

Плисс Дата: Вторник, 19.07.2016, 20:41 | Сообщение # 3
Боец
Сообщений: 70
Статус: Offline
Кросс
  • Страница 1 из 1
  • 1
Поиск: