Приветствую вас пользователи форума, на днях задался вопросом, как урасиво реализовать функции радио в sa-mp 0.3D, и у меня получилось следующее:
В начало мода ко всем #define надо добавить
Code
#define RADIO 3000//Где 3000 это ID диалога
Далее мы находим паблик public OnPlayerStateChange(playerid, newstate, oldstate) и вствляем в него:
Code
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls");//если человек в авто то начинает играть радио сюда свое радио, у меня стоит стандатрное
if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) StopAudioStreamForPlayer(playerid);//если человек вышел из транспорта, то радио выключается
Добавляем команду /radio
Code
if(!strcmp(cmdtext, "/radio", true)) return ShowPlayerDialog(playerid, RADIO, DIALOG_STYLE_LIST, "Выбирите Радио волну:","0-Зайцев FM\n1-Европа +\n2-Maks FM\n3-MeGa Radio\n4-Love Radio\n5-ICE FM", "Ok", "Выход");
Находим паблик public OnPlayerKeyStateChange(playerid, newkeys,oldkeys) и вставляем в него:
Code
if (newkeys == 262144) OnPlayerCommandText(playerid,"/radio"); //262144 - это id клавиши R
Находим паблик public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) и внего вписываем:
Code
if(dialogid == RADIO)
{
if(response)
{
switch(listitem) {
case 0: PlayAudioStreamForPlayer(playerid,"http://www.zaycev.fm:9001/rnb/ZaycevFM(128)");
case 1: PlayAudioStreamForPlayer(playerid,"http://webcast.emg.fm:55655/europaplus128.mp3");
case 2: PlayAudioStreamForPlayer(playerid,"http://radio.maks-fm.ru:8000/maksfm128.m3u");
case 3: PlayAudioStreamForPlayer(playerid,"http://megaradio.radiotelek.ru/megaradio.m3u");
case 4: PlayAudioStreamForPlayer(playerid,"http://stream01.rambler.ru/love64.mp3");
case 5: PlayAudioStreamForPlayer(playerid,"http://icefm.ru/etc/live.m3u");
}
}
}
В некоторых случаях необходимо if(dialogid == RADIO) заменить на case RADIO
Автор: Blad_Gad