Day_Mito

Untitled

Nov 6th, 2015
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. #include <Audio>
  2.  
  3. public Audio_OnClientConnect(playerid)
  4. {
  5. _Player[playerid][AudioConectado] = true;
  6. return true;
  7. }
  8.  
  9. public Audio_OnClientConnect(playerid)
  10. {
  11. _Player[playerid][AudioConectado] = false;
  12. return true;
  13. }
  14. Comando(somcarro)
  15. {
  16. HELP("<Youtube URL>", "Reproduz uma musica em seu carro do youtube.")
  17. new Url[110];
  18. if(sscanf(params, "s[110]", Url)) return Mensagem(playerid, USO, "/somcarro <Youtube URL>");
  19. if(IsValidYoutubeURL(Url)) return Mensagem(playerid, ERRO, "URL inválida.");
  20. if(!IsPlayerInAnyVehicle(playerid)) return Mensagem(playerid, ERRO, "É necessário estar dentro de um veículo para usar este comando.");
  21. Mensagem(playerid, INFO, "Iremos agora tocar sua musica, aguarde.");
  22. YoutubeStreamer(playerid, Url);
  23. return true;
  24. }
  25. Comando(malas) return CMD(mala);
  26. Comando(mala)
  27. {
  28. if(!IsPlayerInAnyVehicle(playerid)) return Mensagem(playerid, ERRO, "Você não está em um veiculo.");
  29. if(!IsPlayerDriver(playerid)) return Mensagem(playerid, ERRO, "Você não é motorista de um veiculo.");
  30. new Car = GetPlayerVehicleID(playerid);
  31. new engine, lights, alarm, doors, bonnet, boot, objective;
  32. GetVehicleParamsEx(Car, engine, lights, alarm, doors, bonnet, boot, objective);
  33. if(boot)
  34. {
  35. SetVehicleParamsEx(Car, engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_OFF, objective);
  36. Mensagem(playerid, INFO, "Porta-malas fechado!");
  37. MalasAberta[Car] = false;
  38. return true;
  39. }
  40.  
  41. MalasAberta[Car] = true;
  42. SetVehicleParamsEx(Car, engine, lights, alarm, doors, bonnet, VEHICLE_PARAMS_ON, objective);
  43. Mensagem(playerid, INFO, "Porta-malas aberto!");
  44. return true;
  45. }
  46.  
  47. YoutubeStreamer(playerid, Url[])
  48. {
  49. new YoutubeString[260];
  50. format(YoutubeString,sizeof(YoutubeString),"youtubeinmp3.com/fetch/?format=text&video=%s", Url);
  51. HTTP(playerid, HTTP_GET, YoutubeString, "\0", "YoutubeStreamerHTTP");
  52. return true;
  53. }
  54. forward YoutubeStreamerHTTP(playerid, response, data[]);
  55. public YoutubeStreamerHTTP(playerid, response, data[])
  56. {
  57. if(response == 200)
  58. {
  59. new
  60. Url[160],
  61. Titulo[60],
  62. len[5],
  63. Find;
  64.  
  65. Find = strfind(data, "<br />");
  66. strmid(Titulo, data, 7), Find);
  67. strdel(data, 0, Find);
  68.  
  69. Find = strfind(data, "<br />");
  70. strmid(len, data, 8, Find);
  71. strdel(data, 0, Find);
  72.  
  73. strdel(data, 0, 6);
  74. strcpy(Url, data);
  75.  
  76. AttachAudioToVehicle(GetPlayerVehicleID(playerid), Url);
  77. return true;
  78. }
  79. ErroLog("YoutubeStreamerHTTP retornou um response inválido.");
  80. return true;
  81. }
  82.  
  83. stock IsValidYoutubeURL(const URL[])
  84. {
  85. static RegEx:rHex;
  86. if(!rHex)
  87. {
  88. rHex = regex_build("((http(s)?:\/\/)?)(www\.)?((youtube\.com\/)|(youtu.be\/))[\S]+");
  89. }
  90. return regex_match_exid(URL, rHex);
  91. }
  92. stock IsValidYoutubeURLEx(const URL[])
  93. {
  94. static RegEx:rHex;
  95. if(!rHex)
  96. {
  97. rHex = regex_build("((http(s)?:\/\/)?)(www\.)?(youtu.be\/)[\S]+");
  98. }
  99. return regex_match_exid(URL, rHex);
  100. }
  101. AttachAudioToVehicle(vehicleid, Url)
  102. {
  103. AudioVeiculo[vehicleid] = true;
  104. VeiculoSegundos[vehicleid] = 0;
  105. strcpy(VeiculoURL[vehicleid], Url);
  106. foreach(Player, i)
  107. PlayerOuvindoVeiculo[i][vehicleid] = false;
  108. PlayerAudio[i][vehicleid] = 0;
  109. return true;
  110. }
  111. Timer:AudioUpdate()
  112. {
  113. static Float:X, Float:Y, Float:Z;
  114. foreach(Veiculos, c)
  115. {
  116. if(AudioVeiculo[c])
  117. {
  118. GetVehiclePos(X, Y, Z);
  119. VeiculoSegundos[c] ++;
  120. foreach(Player, i)
  121. {
  122. if(IsPlayerInRangeOfPoint(i, 35.0, X, Y, Z))
  123. {
  124. if(!PlayerOuvindoVeiculo[i][c])
  125. {
  126. PlayerAudio[i][c] = Audio_PlayStreamed(playerid, VeiculoURL[c], true);
  127. Audio_SetPosition(i, PlayerAudio[i][c], VeiculoSegundos[c]);
  128. Audio_SetVolume(i, PlayerAudio[i][c], floatround(GetPlayerDistanceFromPoint(playerid, X, Y, Z) * (MalasAberta[c] ? (2.8) : (2.0)));
  129. PlayerOuvindoVeiculo[i][c] = true;
  130. continue;
  131. }
  132. }
  133. if(PlayerOuvindoVeiculo[i][c])
  134. {
  135. Audio_Stop(playerid, PlayerAudio[i][c]);
  136. PlayerOuvindoVeiculo[i][c] = false;
  137. }
  138. }
  139. }
  140. }
  141. }
  142. ConvertUrlYoutube(Url[], dest[] size = sizeof(dest))
  143. {
  144. if(IsValidYoutubeURLEx(Url))
  145. {
  146. strdel(Url, 0, strfind(Url, ".be/") + 4);
  147. strcat(dest, "https://www.youtube.com/watch?v=");
  148. strcat(dest, Url);
  149. return true;
  150. }
  151. return true;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment