Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Audio>
- public Audio_OnClientConnect(playerid)
- {
- _Player[playerid][AudioConectado] = true;
- return true;
- }
- public Audio_OnClientConnect(playerid)
- {
- _Player[playerid][AudioConectado] = false;
- return true;
- }
- Comando(somcarro)
- {
- HELP("<Youtube URL>", "Reproduz uma musica em seu carro do youtube.")
- new Url[110];
- if(sscanf(params, "s[110]", Url)) return Mensagem(playerid, USO, "/somcarro <Youtube URL>");
- if(IsValidYoutubeURL(Url)) return Mensagem(playerid, ERRO, "URL inválida.");
- if(!IsPlayerInAnyVehicle(playerid)) return Mensagem(playerid, ERRO, "É necessário estar dentro de um veículo para usar este comando.");
- Mensagem(playerid, INFO, "Iremos agora tocar sua musica, aguarde.");
- YoutubeStreamer(playerid, Url);
- return true;
- }
- Comando(malas) return CMD(mala);
- Comando(mala)
- {
- if(!IsPlayerInAnyVehicle(playerid)) return Mensagem(playerid, ERRO, "Você não está em um veiculo.");
- if(!IsPlayerDriver(playerid)) return Mensagem(playerid, ERRO, "Você não é motorista de um veiculo.");
- new Car = GetPlayerVehicleID(playerid);
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(Car, engine, lights, alarm, doors, bonnet, boot, objective);
- if(boot)
- {
- SetVehicleParamsEx(Car, engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_OFF, objective);
- Mensagem(playerid, INFO, "Porta-malas fechado!");
- MalasAberta[Car] = false;
- return true;
- }
- MalasAberta[Car] = true;
- SetVehicleParamsEx(Car, engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_ON, objective);
- Mensagem(playerid, INFO, "Porta-malas aberto!");
- return true;
- }
- YoutubeStreamer(playerid, Url[])
- {
- new YoutubeString[260];
- format(YoutubeString,sizeof(YoutubeString),"youtubeinmp3.com/fetch/?format=text&video=%s", Url);
- HTTP(playerid, HTTP_GET, YoutubeString, "\0", "YoutubeStreamerHTTP");
- return true;
- }
- forward YoutubeStreamerHTTP(playerid, response, data[]);
- public YoutubeStreamerHTTP(playerid, response, data[])
- {
- if(response == 200)
- {
- new
- Url[160],
- Titulo[60],
- len[5],
- Find;
- Find = strfind(data, "<br />");
- strmid(Titulo, data, 7), Find);
- strdel(data, 0, Find);
- Find = strfind(data, "<br />");
- strmid(len, data, 8, Find);
- strdel(data, 0, Find);
- strdel(data, 0, 6);
- strcpy(Url, data);
- AttachAudioToVehicle(GetPlayerVehicleID(playerid), Url);
- return true;
- }
- ErroLog("YoutubeStreamerHTTP retornou um response inválido.");
- return true;
- }
- stock IsValidYoutubeURL(const URL[])
- {
- static RegEx:rHex;
- if(!rHex)
- {
- rHex = regex_build("((http(s)?:\/\/)?)(www\.)?((youtube\.com\/)|(youtu.be\/))[\S]+");
- }
- return regex_match_exid(URL, rHex);
- }
- stock IsValidYoutubeURLEx(const URL[])
- {
- static RegEx:rHex;
- if(!rHex)
- {
- rHex = regex_build("((http(s)?:\/\/)?)(www\.)?(youtu.be\/)[\S]+");
- }
- return regex_match_exid(URL, rHex);
- }
- AttachAudioToVehicle(vehicleid, Url)
- {
- AudioVeiculo[vehicleid] = true;
- VeiculoSegundos[vehicleid] = 0;
- strcpy(VeiculoURL[vehicleid], Url);
- foreach(Player, i)
- PlayerOuvindoVeiculo[i][vehicleid] = false;
- PlayerAudio[i][vehicleid] = 0;
- return true;
- }
- Timer:AudioUpdate()
- {
- static Float:X, Float:Y, Float:Z;
- foreach(Veiculos, c)
- {
- if(AudioVeiculo[c])
- {
- GetVehiclePos(X, Y, Z);
- VeiculoSegundos[c] ++;
- foreach(Player, i)
- {
- if(IsPlayerInRangeOfPoint(i, 35.0, X, Y, Z))
- {
- if(!PlayerOuvindoVeiculo[i][c])
- {
- PlayerAudio[i][c] = Audio_PlayStreamed(playerid, VeiculoURL[c], true);
- Audio_SetPosition(i, PlayerAudio[i][c], VeiculoSegundos[c]);
- Audio_SetVolume(i, PlayerAudio[i][c], floatround(GetPlayerDistanceFromPoint(playerid, X, Y, Z) * (MalasAberta[c] ? (2.8) : (2.0)));
- PlayerOuvindoVeiculo[i][c] = true;
- continue;
- }
- }
- if(PlayerOuvindoVeiculo[i][c])
- {
- Audio_Stop(playerid, PlayerAudio[i][c]);
- PlayerOuvindoVeiculo[i][c] = false;
- }
- }
- }
- }
- }
- ConvertUrlYoutube(Url[], dest[] size = sizeof(dest))
- {
- if(IsValidYoutubeURLEx(Url))
- {
- strdel(Url, 0, strfind(Url, ".be/") + 4);
- strcat(dest, "https://www.youtube.com/watch?v=");
- strcat(dest, Url);
- return true;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment