SA-MP Forums Archive
Проигрование музыки 0.3d - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проигрование музыки 0.3d (/showthread.php?tid=301442)

Pages: 1 2


Проигрование музыки 0.3d - Stepan23 - 04.12.2011

Можете дать пример по воспроизведению музыки в 0.3d.
Но мне надо чтобы ты ввел команду, и в этом радиусе играла музыка, есле ушел из радиуса ее неслышно


Re: Проигрование музыки 0.3d - DiSE - 04.12.2011

pawn Code:
CMD:play(playerid,params)
{
      new distance,Float:x,Float:y,Float:z;
      if(sscanf(params,"f",distance)) return SendClientMessage(playerid,-1"/play [радиус]");
      GetPlayerPos(playerid,x,y,z);
      PlayAudioStreamForPlayer(playerid, "http://muzyaka.on.ufanet.ru/mp3/russian_way.mp3",x,y,z, distance,true);
      return 1;
}



Re: Проигрование музыки 0.3d - Stepan23 - 04.12.2011

А можно не sscanf, а обычную команду)


Re: Проигрование музыки 0.3d - CaHbKo - 04.12.2011

pawn Code:
CMD:play(playerid,params[])
{
      new distance,Float:x,Float:y,Float:z;
      distance = strval(params);
      if(distance < 1 || distance > 50) return SendClientMessage(playerid,-1,"/play [радиус 1-50]");
      GetPlayerPos(playerid,x,y,z);
      PlayAudioStreamForPlayer(playerid, "http://muzyaka.on.ufanet.ru/mp3/russian_way.mp3",x,y,z, float(distance),true);
      return 1;
}



Re: Проигрование музыки 0.3d - Stepan23 - 05.12.2011

Quote:
Originally Posted by Stepan23
View Post
А можно не sscanf, а обычную команду)
....


Re: Проигрование музыки 0.3d - CaHbKo - 05.12.2011

Quote:
Originally Posted by Stepan23
View Post
....
Где ты там sscanf видишь? Или тебя ZCMD смутил?

От ZCMD избавляйся сам, т.к. strtok это уже прошлый век.


Re: Проигрование музыки 0.3d - OKStyle - 05.12.2011

Quote:
Originally Posted by CaHbKo
View Post
strtok это уже прошлый век.
Когда zcmd научится читать кириллицу - скажи.


Re: Проигрование музыки 0.3d - DANGER1979 - 05.12.2011

ZCMD лажа.
От команд надо уходить.
Делайте больше менюшек и управление через менюшки или сочетании клавиш


Re: Проигрование музыки 0.3d - Stepan23 - 05.12.2011

Отписались многие, но не 1 не помог)


Re: Проигрование музыки 0.3d - Stepashka - 05.12.2011

Quote:
Originally Posted by Stepan23
View Post
Отписались многие, но не 1 не помог)
тебе уже несколько раз помогли, просто видимо ты не разбираешься в коде раз не понял этого.
Вот на обычных командах:
pawn Code:
#define PLAY_DISTANCE 20.0
#define PLAY_STREME "http://muzyaka.on.ufanet.ru/mp3/russian_way.mp3"

if(strcmp(cmdtext, "/play", true, 5) == 0) {
{
      new Float:pos[3];
      GetPlayerPos(playerid, pos[3], pos[3], pos[3]);
      PlayAudioStreamForPlayer(playerid, PLAY_STREME, pos[3], pos[3], pos[3], PLAY_DISTANCE, true);
      return 1;
}



Re: Проигрование музыки 0.3d - Stepan23 - 05.12.2011

PHP Code:
if(strcmp(cmd"/23"true) == 0)
    {
      
tmp strtok(cmdtextidx);
      if(!
strlen(tmp)) return  SendClientMessage(playeridCOLOR_WHITE"Испольуйте: /radio [1-50] радиус");
      new 
distance,Float:x,Float:y,Float:z;
      
distance strval(tmp);
      if(
distance || distance 50) return SendClientMessage(playerid,-1,"Вы ввели неправильное значение");
      
GetPlayerPos(playerid,x,y,z);
      
PlayAudioStreamForPlayer(playerid"http://webcast.emg.fm:55655/europaplus128.mp3",x,y,zfloat(distance),true);
      return 
1;

Вот перевел, но вопрос есле я введу команду и в этот радиус зайдут игроки им будет слышна музыка (без ввода команды ими)


Re: Проигрование музыки 0.3d - ZiGGi - 05.12.2011

Quote:
Originally Posted by Stepan23
View Post
PHP Code:
if(strcmp(cmd"/23"true) == 0)
    {
      
tmp strtok(cmdtextidx);
      if(!
strlen(tmp)) return  SendClientMessage(playeridCOLOR_WHITE"Испольуйте: /radio [1-50] радиус");
      new 
distance,Float:x,Float:y,Float:z;
      
distance strval(tmp);
      if(
distance || distance 50) return SendClientMessage(playerid,-1,"Вы ввели неправильное значение");
      
GetPlayerPos(playerid,x,y,z);
      
PlayAudioStreamForPlayer(playerid"http://webcast.emg.fm:55655/europaplus128.mp3",x,y,zfloat(distance),true);
      return 
1;

Вот перевел, но вопрос есле я введу команду и в этот радиус зайдут игроки им будет слышна музыка (без ввода команды ими)
Нет конечно, в функции PlayAudioStreamForPlayer есть параметр playerid, и только этому игроку будет играть музыка.


Re: Проигрование музыки 0.3d - DANGER1979 - 05.12.2011

Звук звучит для указанного игрока и если этот игрок отбежит от этой точки, то звук будет затихать. покуда вообще не исчезнет, когда это игрок выбежит за радиус указанный от точки проигрывания.
Но если не использовать дистанцию, то звук одинаково слышен.

Но после вчерашнего тестирования я убрал эту новую возможность, т.к. куча жалоб на лаги.


Re: Проигрование музыки 0.3d - Geryy - 06.12.2011

Плохо что нельзя скрыть эту белую надпись внизу (что проигрывается) прям поверх спидометра появляется..


Re: Проигрование музыки 0.3d - Stepan23 - 06.12.2011

А как сделать чтобы она для всех игроков играла?


Re: Проигрование музыки 0.3d - DiSE - 07.12.2011

циклом for


Re: Проигрование музыки 0.3d - Stepan23 - 07.12.2011

подробнее можно?


Re: Проигрование музыки 0.3d - ZiGGi - 07.12.2011

Quote:
Originally Posted by DiSE
View Post
циклом for
Не обязательно, можно любым циклом.

Quote:
Originally Posted by Stepan23
View Post
подробнее можно?
pawn Code:
stock PlayAudioStreamForAll(url[], Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0)
{
    for (new playerid=0; playerid<MAX_PLAYERS; playerid++)
    {
        PlayAudioStreamForPlayer(playerid, url, posX, posY, posZ, distance, usepos);
    }
    return 1;
}
Но такой цикл не рекомендуется юзать, если есть foreach, то пользуйся foreach (Player,playerid)


Re: Проигрование музыки 0.3d - DiSE - 07.12.2011

Сам на for написал


Re: Проигрование музыки 0.3d - Stepan23 - 07.12.2011

PHP Code:
#define PLAY_DISTANCE 20.0
#define PLAY_STREME "http://muzyaka.on.ufanet.ru/mp3/russian_way.mp3"
if(strcmp(cmdtext"/play"true5) == 0) {
{
      new 
Float:pos[3];
      
GetPlayerPos(playeridpos[3], pos[3], pos[3]);
      
PlayAudioStreamForPlayer(playeridPLAY_STREMEpos[3], pos[3], pos[3], PLAY_DISTANCEtrue);
      return 
1;

PHP Code:
stock PlayAudioStreamForAll(url[], Float:posX 0.0Float:posY 0.0Float:posZ 0.0Float:distance 50.0usepos 0)
{
    for (new 
playerid=0playerid<MAX_PLAYERSplayerid++)
    {
        
PlayAudioStreamForPlayer(playeridurlposXposYposZdistanceusepos);
    }
    return 
1;

Сток в конец и все музыка будет играть рядом стоящим людям?)