Вы не подключены. Войдите или зарегистрируйтесь

[0.3d]Онлайн Радио

Перейти вниз  Сообщение [Страница 1 из 1]

1 [0.3d]Онлайн Радио в Вс Янв 22, 2012 7:00 am

Admin

avatar
Администратор
Администратор
Работает только в 0.3d

Я решил создать свою систему-радио, с переключением на Num 4 и Num 6, которое могут слышать пассажиры авто. Переключать радиостанции может только водитель. Радиостанция после переключения привязывается к автомобилю, т.е стоит сесть в другое авто, как заиграет другая радиостанция.

Ко всем new добавим:
Код:

new Radiostation[MAX_VEHICLES];//отвечает за радиостанцию в машине

В OnGameModeInit добавим:
Код:

for(new v; v < MAX_VEHICLES; v++)Radiostation[v] = random(10);//зададим каждой тачке радиостанцию от 0 до 10 рандомно

В OnPlayerCommandText добавим команды, для переключения на следующую и предыдущую волну (используется в переключателе)

Код:
if (strcmp("/след", cmdtext, true, 10) == 0 || strcmp("/next", cmdtext, true, 10) == 0)
    {
      if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)//если игрок - водила
      {
          new veh = GetPlayerVehicleID(playerid);//узнаем ид его тачки
          if(Radiostation[veh] != 10)Radiostation[veh] ++;//если радиостанция не равна 10, то переключим на следующую
          else Radiostation[veh] = 0;//а если равна - выключим
          for(new i; i < GetMaxPlayers(); i++)//цикл проверки с целью нахождения пассажиров в тачке игрока
          {
            if(GetPlayerVehicleID(i) == veh)
            {
                switch(Radiostation[veh])//переключалка, думаю тут все понятно
                {
                    case 0: {GameTextForPlayer(i,"Radio Off",3000,5);StopAudioStreamForPlayer(i);}
                    case 1: {GameTextForPlayer(i,"Europa plus",3000,5);PlayAudioStreamForPlayer(i,"http://webcast.emg.fm:55655/europaplus128.mp3");}
                    case 2: {GameTextForPlayer(i,"Maks FM",3000,5);PlayAudioStreamForPlayer(i,"http://radio.maks-fm.ru:8000/maksfm128.m3u");}
                    case 3: {GameTextForPlayer(i,"ICE FM",3000,5);PlayAudioStreamForPlayer(i,"http://icefm.ru/etc/live.m3u");}
                    case 4: {GameTextForPlayer(i,"Vesti FM",3000,5);PlayAudioStreamForPlayer(i,"http://audio.rambler.ru/play.html?id=2537099");}
                    case 5: {GameTextForPlayer(i,"Russian Radio",3000,5);PlayAudioStreamForPlayer(i,"http://radio01-cn03.akadostream.ru:8000/russianradio128.mp3");}
                    case 6: {GameTextForPlayer(i,"Mayak Radio",3000,5);PlayAudioStreamForPlayer(i,"http://radio01-cn03.akadostream.ru:8000/mayak128.mp3");}
                    case 7: {GameTextForPlayer(i,"Nashe Radio",3000,5);PlayAudioStreamForPlayer(i,"http://188.127.243.169:80/nashe-192");}
                    case 8: {GameTextForPlayer(i,"Retro FM",3000,5);PlayAudioStreamForPlayer(i,"http://radio01-cn03.akadostream.ru:8000/radioretro128.mp3");}
                    case 9: {GameTextForPlayer(i,"Radio Shanson",3000,5);PlayAudioStreamForPlayer(i,"http://radio02-cn03.akadostream.ru:8108/shanson128.mp3");}
                    case 10: {GameTextForPlayer(i,"Nashi Pesni",3000,5);PlayAudioStreamForPlayer(i,"http://online.nashipesni.ru:8000/nashipesni");}
                }
            }
          }
      }
      return 1;
    }
    if (strcmp("/пред", cmdtext, true, 10) == 0 || strcmp("/back", cmdtext, true, 10) == 0)//ну а тут по принципу /след, только в обратном направлении
    {
      if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
      {
          new veh = GetPlayerVehicleID(playerid);
          if(Radiostation[veh] != 0)Radiostation[veh] --;
          else Radiostation[veh] = 10;
          for(new i; i < GetMaxPlayers(); i++)
          {
            if(GetPlayerVehicleID(i) == veh)
            {
                switch(Radiostation[veh])
                {
                    case 0: {GameTextForPlayer(i,"Radio Off",3000,5);StopAudioStreamForPlayer(i);}
                    case 1: {GameTextForPlayer(i,"Europa plus",3000,5);PlayAudioStreamForPlayer(i,"http://webcast.emg.fm:55655/europaplus128.mp3");}
                    case 2: {GameTextForPlayer(i,"Maks FM",3000,5);PlayAudioStreamForPlayer(i,"http://radio.maks-fm.ru:8000/maksfm128.m3u");}
                    case 3: {GameTextForPlayer(i,"ICE FM",3000,5);PlayAudioStreamForPlayer(i,"http://icefm.ru/etc/live.m3u");}
                    case 4: {GameTextForPlayer(i,"Vesti FM",3000,5);PlayAudioStreamForPlayer(i,"http://audio.rambler.ru/play.html?id=2537099");}
                    case 5: {GameTextForPlayer(i,"Russian Radio",3000,5);PlayAudioStreamForPlayer(i,"http://radio01-cn03.akadostream.ru:8000/russianradio128.mp3");}
                    case 6: {GameTextForPlayer(i,"Mayak Radio",3000,5);PlayAudioStreamForPlayer(i,"http://radio01-cn03.akadostream.ru:8000/mayak128.mp3");}
                    case 7: {GameTextForPlayer(i,"Nashe Radio",3000,5);PlayAudioStreamForPlayer(i,"http://188.127.243.169:80/nashe-192");}
                    case 8: {GameTextForPlayer(i,"Retro FM",3000,5);PlayAudioStreamForPlayer(i,"http://radio01-cn03.akadostream.ru:8000/radioretro128.mp3");}
                    case 9: {GameTextForPlayer(i,"Radio Shanson",3000,5);PlayAudioStreamForPlayer(i,"http://radio02-cn03.akadostream.ru:8108/shanson128.mp3");}
                    case 10: {GameTextForPlayer(i,"Nashi Pesni",3000,5);PlayAudioStreamForPlayer(i,"http://online.nashipesni.ru:8000/nashipesni");}
                }
            }
          }
      }
      return 1;
    } 


Теперь добавим проверку на вход/выход в тачку/из тачки

В OnPlayerStateChange добавим:

Код:
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)//если игрок сел водилой или пассажиром
    {
      new veh = GetPlayerVehicleID(playerid);
      switch(Radiostation[veh])//воспроизведет радиостанцию, которая играет в данный момент в тачке
      {
          case 0: return 1;
          case 1: {GameTextForPlayer(playerid,"Europa plus",3000,5);PlayAudioStreamForPlayer(playerid,"http://webcast.emg.fm:55655/europaplus128.mp3");}
          case 2: {GameTextForPlayer(playerid,"Maks FM",3000,5);PlayAudioStreamForPlayer(playerid,"http://radio.maks-fm.ru:8000/maksfm128.m3u");}
          case 3: {GameTextForPlayer(playerid,"ICE FM",3000,5);PlayAudioStreamForPlayer(playerid,"http://icefm.ru/etc/live.m3u");}
          case 4: {GameTextForPlayer(playerid,"Vesti FM",3000,5);PlayAudioStreamForPlayer(playerid,"http://audio.rambler.ru/play.html?id=2537099");}
          case 5: {GameTextForPlayer(playerid,"Russian Radio",3000,5);PlayAudioStreamForPlayer(playerid,"http://radio01-cn03.akadostream.ru:8000/russianradio128.mp3");}
          case 6: {GameTextForPlayer(playerid,"Mayak Radio",3000,5);PlayAudioStreamForPlayer(playerid,"http://radio01-cn03.akadostream.ru:8000/mayak128.mp3");}
          case 7: {GameTextForPlayer(playerid,"Nashe Radio",3000,5);PlayAudioStreamForPlayer(playerid,"http://188.127.243.169:80/nashe-192");}
          case 8: {GameTextForPlayer(playerid,"Retro FM",3000,5);PlayAudioStreamForPlayer(playerid,"http://radio01-cn03.akadostream.ru:8000/radioretro128.mp3");}
          case 9: {GameTextForPlayer(playerid,"Radio Shanson",3000,5);PlayAudioStreamForPlayer(playerid,"http://radio02-cn03.akadostream.ru:8108/shanson128.mp3");}
          case 10: {GameTextForPlayer(playerid,"Nashi Pesni",3000,5);PlayAudioStreamForPlayer(playerid,"http://online.nashipesni.ru:8000/nashipesni");}
      }
    }
    else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)StopAudioStreamForPlayer(playerid);//выключим радио если игрок покинул авто 

Теперь осталось добавить переключатель на Num 4 и Num 6
В OnPlayerKeyStateChange добавим:

Код:
if(newkeys == 8192)OnPlayerCommandText(playerid,"/пред");//если игрок нажал Num 4
if(newkeys == 16384)OnPlayerCommandText(playerid,"/след");//если игрок нажал Num 6


Пользуйтесь)

http://pawno.wikiforum.net

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения