2024-03-02, 04:04 AM
Bem pessoal, eu gostaria da ajuda de voces para me ajudar com um problema, eu quero que fique tocando uma música na Groove Street e quando um player entrar naquela área, ele podera ouvir a música. Meu código base!
CMD:tocar(playerid)
{
if (IsPlayerInRangeOfPoint(playerid, 2.0, 2466.4934, -1658.9978, 13.3907))
{
new i;
for (i = 0; i < MAX_PLAYERS; i++)
{
new Float:P[3];
GetPlayerPos(i, P[0], P[1], P[2]);
if (IsPlayerInRangeOfPoint(i, 90.0, 2466.4934, -1658.9978, 13.3907))
{
PlayAudioStreamForPlayer(i, "http://stream.com.br/radio", P[0], P[1], P[2], 90.0, 1);
}
}
}
return 1;
Obrigado pela atenção!
}
2024-03-02, 02:14 PM
(This post was last modified: 2024-03-02, 02:18 PM by zBreno.)
vou dar uma ideia melhor, bote uns caixa de som na rua ou gruda em qualquer carro que tenha uma carroça e deixa a musica tocando na rua
new tocarumavez[50];
public OnPlayerConnect(playerid)
{
tocarumavez[playerid] = 0;
return 1;
}
nesse evento onde o jogador se move essa função só pode ser executada uma vez, caso contrário isso trava o seu jogo porque fica sendo repetido a cada um segundo, no distance botei 20 metros se você se afastar do local o áudio vai diminuindo até você para de ouvir, mas não vai desligar a transmissão o áudio vai continuar e pra resolver isso você precisa usar o steamer plugin pra criar uma zona personalizada pra salvar as áreas ao redor da groove pra desligar a música de vez quando o jogador sair dessa área
https://bitbucket.org/Grimrandomer/samp-...downloads/
https://github.com/samp-incognito/samp-s...es-(Areas)
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 100.0, 2496.3374, -1665.0436, 13.3438))
{
if(tocarumavez[playerid] == 0)
{
tocarumavez[playerid] = 1;
new Float:X, Float:Y, Float:Z, Float:Distance = 20.0;
GetPlayerPos(playerid, X, Y, Z);
PlayAudioStreamForPlayer(playerid, "https://somafm.com/thetrip.pls", X, Y, Z, Distance, 1);
}
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid, 0, 0, 2496.3374, -1665.0436, 13.3438, 0.0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
return 1;
}
Obrigado por ajudar, mas não sei se o codigo que você apresentou é o que eu quero aprender, vou dar um exemplo: Não se você já jogou o Underground Roleplay, lá eles tem a área do festival e naquela area fica tocando a musica 24/7, e quando os players entran na area, a música toca de forma sincronizada para todos players, exemplo: se uma pessoa já esta naquela area ouvindo a musica em certo tempo, quando uma pessoa entrar na area, também vai ouvir no mesmo tempo em que a outra pessoa já estava ouvindo, sem começar como se fosse ativado pela primeira vez do player, deu pra entender? kkkk
(2024-03-02, 02:14 PM)zBreno Wrote: vou dar uma ideia melhor, bote uns caixa de som na rua ou gruda em qualquer carro que tenha uma carroça e deixa a musica tocando na rua
new tocarumavez[50];
public OnPlayerConnect(playerid)
{
tocarumavez[playerid] = 0;
return 1;
}
nesse evento onde o jogador se move essa função só pode ser executada uma vez, caso contrário isso trava o seu jogo porque fica sendo repetido a cada um segundo, no distance botei 20 metros se você se afastar do local o áudio vai diminuindo até você para de ouvir, mas não vai desligar a transmissão o áudio vai continuar e pra resolver isso você precisa usar o steamer plugin pra criar uma zona personalizada pra salvar as áreas ao redor da groove pra desligar a música de vez quando o jogador sair dessa área
https://bitbucket.org/Grimrandomer/samp-...downloads/
https://github.com/samp-incognito/samp-s...es-(Areas)
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 100.0, 2496.3374, -1665.0436, 13.3438))
{
if(tocarumavez[playerid] == 0)
{
tocarumavez[playerid] = 1;
new Float:X, Float:Y, Float:Z, Float:Distance = 20.0;
GetPlayerPos(playerid, X, Y, Z);
PlayAudioStreamForPlayer(playerid, "https://somafm.com/thetrip.pls", X, Y, Z, Distance, 1);
}
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid, 0, 0, 2496.3374, -1665.0436, 13.3438, 0.0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
return 1;
}
O que eu queria é que quando o player entrar na area definida, toque uma música
2024-03-02, 05:33 PM
(This post was last modified: 2024-03-02, 05:51 PM by zBreno.)
public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid, 0, 0, 2437.6921, -1657.0721, 13.3613, 0.0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
new Float:Distance = 20.0;
PlayAudioStreamForPlayer(playerid, "https://somafm.com/thetrip.pls", 2496.3374, -1665.0436, 13.3438, Distance, 1);
return 1;
}
pra tocar pra todos ao mesmo tempo bote a sua função no on player request class o stream de música no samp não possui sincronia porque o jogador pode parar o stream a qualquer momento a não ser que eles usem um launcher personalizado pra essa função ou um plugin de áudio feito pra isso o mas plausível possa ser que é apenas uma rádio tocando lá então quando é uma rádio sempre vai tocar ao mesmo tempo pra todos eu usava muito esse serviço antigamente https://www.caster.fm
(2024-03-02, 05:33 PM)zBreno Wrote: public OnPlayerRequestClass(playerid, classid)
{
SetSpawnInfo(playerid, 0, 0, 2437.6921, -1657.0721, 13.3613, 0.0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
new Float:Distance = 20.0;
PlayAudioStreamForPlayer(playerid, "https://somafm.com/thetrip.pls", 2496.3374, -1665.0436, 13.3438, Distance, 1);
return 1;
}
pra tocar pra todos ao mesmo tempo bote a sua função no on player request class o stream de música no samp não possui sincronia porque o jogador pode parar o stream a qualquer momento a não ser que eles usem um launcher personalizado pra essa função ou um plugin de áudio feito pra isso o mas plausível possa ser que é apenas uma rádio tocando lá então quando é uma rádio sempre vai tocar ao mesmo tempo pra todos eu usava muito esse serviço antigamente https://www.caster.fm
Muito obrigado pela ajuda, me ajudou bastante, somente com aqueles links que tu me enviou ai. Valeu e obrigado mais uma vez! ✌😎
PHP Code: CMD: tocar(playerid) { if (IsPlayerInRangeOfPoint(playerid, 2.0, 2466.4934, -1658.9978, 13.3907)) { new i; for (i = 0; i < MAX_PLAYERS; i++) { if (IsPlayerInRangeOfPoint(i, 90.0, 2466.4934, -1658.9978, 13.3907)) { PlayAudioStreamForPlayer(i, "http://stream.com.br/radio", 2466.4934, -1658.9978, 13.3907, 90.0, 0); } } } return 1; }
|