Help with /stereo command
#1

I have a radio station command and i need help. It works fine but when you get out of the vehicle the music doesn't stop playing and i want to fix that. How do i make it so the music stops when the player exits the vehicle. Here is the command.

Код:
CMD:stereo(playerid, params[]) {
    if(!IsPlayerInAnyVehicle(playerid)) {
		return SendClientMessageEx(playerid, COLOR_WHITE, "You must be in a car to use a car radio.");
	}
    else if(isnull(params)) {
        SendClientMessageEx(playerid, COLOR_WHITE, "TIP: /stereo [station] (0 - 3)");
		SendClientMessageEx(playerid, COLOR_WHITE, "0:OFF 1:COUNTRY 2:80'S HAIRBAND 3:COMING SOON");
        return 1;
    }
    new string[128], station[256];
	switch(strval(params)) {
			case 0: {
			format(string, sizeof(string), "%s turns off the radio.",GetPlayerNameEx(playerid));
			foreach(Player, i) if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid)){
				StopAudioStreamForPlayer(i);
				//stationidp[i] = 0;
				stationidv[GetPlayerVehicleID(playerid)] = 0;
			}
		}
		case 1: {
			format(string, sizeof(string), "%s changes the station to Kickin' Country",GetPlayerNameEx(playerid));
			PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=446371");
			stationidv[GetPlayerVehicleID(playerid)] = 1;
		}
		case 2: {
			format(string, sizeof(string), "%s changes the station to 80's Hairband",GetPlayerNameEx(playerid));
			PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=226429");
			stationidv[GetPlayerVehicleID(playerid)] = 2;
		}
		case 3: {
			format(string, sizeof(string), "%s changes the station to TechnoBase",GetPlayerNameEx(playerid));
			PlayAudioStreamForPlayer(playerid, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1377200");
			stationidv[GetPlayerVehicleID(playerid)] = 3;
		}
		default: return SendClientMessageEx(playerid, COLOR_WHITE, "Invalid station specified.");
	}

    ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);

    foreach(Player, i) if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid) && Audio_IsClientConnected(i)) {
		Audio_Stop(i, stationidp[i]);
		stationidp[i] = Audio_PlayStreamed(i, station, false, true, false);
		Audio_SetVolume(i, stationidp[i], 30);
    }
    return 1;
}
Reply
#2

In OnPlayerExitVehicle (https://sampwiki.blast.hk/wiki/OnPlayerExitVehicle), you can simply stop the AudioStream: https://sampwiki.blast.hk/wiki/StopAudioStreamForPlayer.

You can also stop the stream in the OnPlayerStateChange callback. An example is included on the StopAudioStream wiki page.
Reply
#3

As Sithis said.
Simply add this:
pawn Код:
public OnPlayerExitVehicle(playerid, vehicleid)
{
        StopAudioStreamForPlayer(playerid);
        return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)