(FS) Vehicle Radio system

Описание: Готовые решения скриптов, filterScript
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 11 ноября 2014, 21:48

Автор mark_n
Данный FS представляет собой радио внутри машины, которую слышат не только водитель, но и пассажиры транспорта.

Но это не обычная работа, где музыка играет внутри машины. Тут музыка играет еще, если стоять рядом с авто.

phpBB [media]


Код: Выделить всё

/// La1ghter 2012
#include a_samp.inc
#define MAX_RAD_NAME (16) /// макс. имя радио ( не ссылка )
#define MAX_RADIO (2) /// макс. радио
#define L_DIAG (9200) /// изпользуемый диалог
#define TIME_UPDATE (1500) /// время обновления таймера
//-------------------------------------
enum vehplayer {
    
Float:Poos[3],
    
SeeVehicle,
} ;
new 
VPInfo MAX_PLAYERS ] [ vehplayer ] ;
//------------------------------------------
new RadioVeh MAX_VEHICLES ] = { -1, ... },
    
MaxPlayers,
    
timer
;
new 
Radio MAX_RADIO ] [ ] [ 72 ] = {
    { 
"HOT 108""http://www.hot108.com/hot108.pls" },
    { 
"Reggae""http://radio.bigupradio.com:8005/listen.pls" }
} ;
//==============================================================================
public OnFilterScriptInit ( ) {
    
MaxPlayers GetMaxPlayers() - 1;
    
timer SetTimer("Global"trueTIME_UPDATE ) ;
    return 
true ;
}
public 
OnFilterScriptExit ( ) KillTimer timer ) ;

public 
OnPlayerConnect playerid ) {
    
VPInfo [playerid] [SeeVehicle] = -1;
    return 
true ;
}
public 
OnPlayerCommandTextplayeridcmdtext[] )
{
    if(!
strcmp(cmdtext[1], "radio"true))
    {
        if(!
IsPlayerInAnyVehicle(playerid) ) return true ;
        new 
_str MAX_RADIO MAX_RAD_NAME 2] ;
        for( new 
_r_r MAX_RADIO ; ++ _rstrcat_strRadio[_r][0] ), strcat_str,"\n" );
        
strcat_str,"Выключить\n" );
          
ShowPlayerDialog(playeridL_DIAGDIALOG_STYLE_LIST"La1ghter"_str"Выбрать""Выход");
          return 
true ;
    }
    return 
false ;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if( 
dialogid == L_DIAG && response )
    {
        if ( 
listitem MAX_RADIO )
        {
            
RadioVeh[GetPlayerVehicleID(playerid)] = listitem;
            for (new 
i<= MaxPlayers ; ++ i) {
                if(!
IsPlayerConnected(i) || GetPlayerVehicleID(i) != GetPlayerVehicleID(playerid)) continue;
                 
PlayAudioStreamForPlayer(iRadio listitem ] [ ]);
            }
        }
        else if ( 
listitem >= MAX_RADIO )
        {
            
RadioVeh[GetPlayerVehicleID(playerid)] = -;
            for (new 
i<= MaxPlayers ; ++ i) {
                 if(!
IsPlayerConnected(i) || GetPlayerVehicleID(i) != GetPlayerVehicleID(playerid)) continue;
                 
StopAudioStreamForPlayer(i) ;
            }
        }
        return 
true ;
    }
    return 
false;
}
public 
OnPlayerExitVehicle playeridvehicleid ) {
    if ( 
RadioVeh[vehicleid] != -StopAudioStreamForPlayer(playerid);
    return 
true ;
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) {
        if( 
RadioVeh[GetPlayerVehicleID(playerid)] != -1) {
            
StopAudioStreamForPlayer(playerid),
            
VPInfo[playerid] [SeeVehicle] = -;
            
PlayAudioStreamForPlayer(playeridRadio RadioVeh [GetPlayerVehicleID(playerid)] ] [ ] );
        }
    }
    return 
true ;
}
Global() ;
public Global ( )
{
    new
         
vehidboolfind falseFloatVe[3]
    ;
    for (new 
playeridplayerid <= MaxPlayers ; ++ playerid)
    {
           if( !
IsPlayerConnected(playerid) || IsPlayerInAnyVehicle(playerid) || GetPlayerInterior(playerid) || GetPlayerVirtualWorld(playerid) ) continue ;
        if( 
VPInfo[playerid] [SeeVehicle] != -)
        {
            
GetVehiclePos (VPInfo[playerid] [SeeVehicle], Ve[0],Ve[1],Ve[2] ) ;
            if( !
IsPlayerInRangeOfPoint(playerid7.0VPInfo[playerid][Poos] [0],VPInfo[playerid][Poos][1],VPInfo[playerid][Poos][2]) || !IsPlayerInRangeOfPoint(playerid7.0Ve[0],Ve[1],Ve[2]) )
            {
                
StopAudioStreamForPlayer(playerid) ;
                
VPInfo[playerid] [SeeVehicle] = -;
            }
        }
        for( new 
_v 1_v MAX_VEHICLES ; ++ _v ) {
            if ( 
RadioVeh[_v] == -1  || !IsVehicleStreamedIn(_vplayerid) ) continue ;
            
GetVehiclePos_vVe[0],Ve[1],Ve[2] ) ;
            if( !
IsPlayerInRangeOfPoint(playerid7.0,Ve[0],Ve[1],Ve[2]) ) continue ;
            for (new 
z!= 3; ++ zVPInfo[playerid] [Poos] [z] = Ve[z] ;
              
vehid _vfind true ;
              break ;
        }
        if( 
vehid != VPInfo[playerid] [SeeVehicle] && find && !IsPlayerInAnyVehicle(playerid) ) {
             
VPInfo[playerid] [SeeVehicle] = vehid ;
            
PlayAudioStreamForPlayer(playeridRadio [RadioVeh[vehid]][1], VPInfo[playerid] [Poos] [0],VPInfo[playerid][Poos][1],VPInfo[playerid] [Poos][2],7.0,1);
        }
    }
    return 
true ;
}
/// La1ghter 2012 
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Скрипты / FS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 7 гостей