Проигрование музыки 0.3d
#1

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

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;
}
Reply
#3

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

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;
}
Reply
#5

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

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

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

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

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

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

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;
}
Reply
#11

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;

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

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, и только этому игроку будет играть музыка.
Reply
#13

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

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

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

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

циклом for
Reply
#17

подробнее можно?
Reply
#18

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)
Reply
#19

Сам на for написал
Reply
#20

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;

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


Forum Jump:


Users browsing this thread: 4 Guest(s)