21/12/2020 17:50
(Esta mensagem foi modificada pela última vez a: 21/12/2020 17:51 por Dr Editor.)
(21/12/2020 08:04)LeleziiN Escreveu: Como faço para a musica tocar toda e quando termina ir mudando para outra?
Bom conseguir fazer a musica toca toda
Fiz uma base sólida para ser continuada.
Basicamente, chamando a função PlayStreamAudio para o playerid e o index da música (entre 0 e 2, no exemplo abaixo), ele dará início ao stream da lista.
Ao chegar no index máximo da array listaMusicas, começará do zero.
Para parar basta chamar StopStreamAudio.
OBS.: Lembrando que se a internet do jogador travar e, consequentemente, a música parar, o timer continuará contando e iniciará a próxima música prematuramente.
Testei apenas via debug!!!
Código:
[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]// index 0: link da música[/font][/size][/color]
[color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]// index 1: tempo (em segundos) da música[/font][/size][/color]
new listaMusicas[][E_MUSICAS] =
{
{ "https://link_musica_1", 100 },
{ "https://link_musica_2", 120 },
{ "https://link_musica_2", 140 }
};
new timerAudioStream[MAX_PLAYERS] = { -1, ...};
stock PlayStreamAudio(playerid, idx)
{
if(!IsPlayerConnected(playerid))
return false;
if(idx >= sizeof(listaMusicas))
return false
if(timerAudioStream[playerid] > -1)
{
timerAudioStream[playerid] = -1;
KillTimer(timerAudioStream[playerid]);
}
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid, listaMusicas[idx][Link]);
timerAudioStream[playerid] = SetTimerEx("ChangeAudioStream", (listaMusicas[idx][Tempo] + 5) * 1000, false, "ii", playerid, idx);
return true;
}
stock StopStreamAudio(playerid)
{
StopAudioStreamForPlayer(playerid);
if(timerAudioStream[playerid] > -1)
{
timerAudioStream[playerid] = -1;
KillTimer(timerAudioStream[playerid]);
}
return true;
}
forward ChangeAudioStream(playerid, idx);
public ChangeAudioStream(playerid, idx)
{
new novoIdx = (idx + 1 >= sizeof(listaMusicas) ? 0 : idx + 1);
if(timerAudioStream[playerid] > -1)
{
timerAudioStream[playerid] = -1;
KillTimer(timerAudioStream[playerid]);
}
StopAudioStreamForPlayer(playerid);
PlayAudioStreamForPlayer(playerid, listaMusicas[novoIdx][Link]);
timerAudioStream[playerid] = SetTimerEx("ChangeAudioStream", (listaMusicas[idx][Tempo] + 5) * 1000, false, "ii", playerid, novoIdx);
return true;
}
SA:MP Dev Tools
Faça mais, ganhe mais e poupe tempo!
Viper Anti-Cheat
Torne seu servidor mais seguro!
________________________________________
Soluções personalizadas para SA:MP
Discord: .eduardoac | Eduardo AC#3140
Faça mais, ganhe mais e poupe tempo!
Viper Anti-Cheat
Torne seu servidor mais seguro!
________________________________________
Soluções personalizadas para SA:MP
Discord: .eduardoac | Eduardo AC#3140