Работает только в 0.3d
Я решил создать свою систему-радио, с переключением на Num 4 и Num 6, которое могут слышать пассажиры авто. Переключать радиостанции может только водитель. Радиостанция после переключения привязывается к автомобилю, т.е стоит сесть в другое авто, как заиграет другая радиостанция.
Ко всем new добавим:
В OnGameModeInit добавим:
В OnPlayerCommandText добавим команды, для переключения на следующую и предыдущую волну (используется в переключателе)
Теперь добавим проверку на вход/выход в тачку/из тачки
В OnPlayerStateChange добавим:
Теперь осталось добавить переключатель на Num 4 и Num 6
В OnPlayerKeyStateChange добавим:
Пользуйтесь)
Я решил создать свою систему-радио, с переключением на 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
Пользуйтесь)