Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[0.3z] Music на сервер, слышна будет всем игрокам.

Статус
В этой теме нельзя размещать новые ответы.

Игорь19998

Изучающий
Пользователь
Регистрация
29 Май 2014
Сообщения
441
Лучшие ответы
0
Репутация
147
Здраствуйте Ув.Формучане, хочу показать вам функцию, прослушивания музыки через ссылку URL, слышать её будут как раз таки все, игроки в уроке будет присутствовать простенький цикл, будет чему научиться


ПАРАМЕТРЫ есть цикл, чтобы все игроки слышали, а не один, playerid - 1 игрок, i - все игроки :

PHP:
foreach(new i : Player)
{
PlayAudioStreamForPlayer(i, url[], Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0)
Чтобы остановить музыку - StopAudioStreamForPlayer(i);
(Так же цикл можно использовать другой, вот пример for(new i = 0; i<MAX_PLAYERS; i++, согласитесь тот проще)
PHP:
i - Всем игрокам в определенном радиусе будет слышна музыка.
PHP:
url[] - Url песни. Форманды - .mp3
PHP:
Float:PosX - Позиция игрока для воспроизведения аудио трека. По умолчание 0.0
Float:PosY - Позиция игрока для воспроизведения аудио трека. По умолчание 0.0
Float:PosZ - Позиция игрока для воспроизведения аудио трека. По умолчание 0.0
PHP:
Float:distance - Расстояние на которому будет слышна музыка.
PHP:
usepos - По умолчанию 0.


PHP:
Знаете почему Float - потому-что это тип данных который содержит дробные числа или же точку, по этому к типу данных добавляем координаты, там есть точка.

Вот команда :


Код:
if(strcmp(cmd, "/mmusic", true) == 0) 
{ 
            ShowPlayerDialog(playerid,101,2,"«Музыка»","\ 
            Название\ 
            \nНазвание\ 
            \nНазвание\ 
            \nНазвание\ 
            ","Слушать","Отмена"); 
            return 1; 
    }

Сам dialog:

Код:
else if(dialogid == 101) //Реп 
    { 
      switch(listitem) 
      { 
          case 0:{PlayAudioStreamForPlayer(playerid, "Ссылка");} //Название
          case 1:{PlayAudioStreamForPlayer(playerid, "ССылка");} //название 
          case 2:{PlayAudioStreamForPlayer(playerid, "Ссылка");} //Название(можете тут не писать, выше в 2-ух строках тоже)
          case 3:{ShowPlayerDialog(playerid,102,DIALOG_STYLE_INPUT,"Другая песня","{00FF40}Введите url песни, желательно с {FF0000}.mp3 {00FF40}форматов","Ок","Отмена");} 
      } 
      return 1; 
    } 
    else if(dialogid == 102) //Другая песня 
    { 
       if(response) 
       { 
          if(!strlen(inputtext)){ 
          SendClientMessage(playerid,COLOR_RED,"Вы не вписали URL песни!"); 
          return 1; 
          }else{ 
          PlayAudioStreamForPlayer(i,inputtext);} 
       } 
       return 1; 
    }

Можно так же сделать команду чтобы прямо в игре, делать музыку :
Ко всем new:


PHP:
new bool:Music[MAX_PLAYERS];
new bool:Music2;
new URLW[128];
new Float: MGM[5] = 100.0;
new UMusic[128];
new Float: MusicU[5] = 100.0;
Почему Float я объяснял выше.




Код:
else if(strcmp(cmd, "/amusic", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] < уровень админки) return true;
		new Float:X, Float:Y, Float:Z;
		tmp = strcharsplit(cmdtext,idx);
		if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_WHITE, " Введите: /amusic [радиус] [url]");
		new Float:Distance = strval(tmp);
		new length = strlen(cmdtext);
		while ((idx < length) && (cmdtext[idx] <= ' '))
		{
			idx++;
		}
		new offset = idx;
		new result[64];
		while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
		{
			result[idx - offset] = cmdtext[idx];
			idx++;
		}
		result[idx - offset] = EOS;
		if(!strlen(result)) return SendClientMessage(playerid,COLOR_WHITE, " Введите: /amusic [радиус] [ссылка]");
		GetPlayerPos(playerid, X, Y, Z);
		MusicU[4] = Distance; MusicU[1] = X; MusicU[2] = Y; MusicU[3] = Z; UMusic = result; Music2 = true;
		return true;
	}

Так же к стоку Fresh() добавить :

Код:
if(Music2 == true)
		{
			if(IsPlayerInRangeOfPoint(i, MusicU[4], MusicU[1], MusicU[2], MusicU[3]))
			{
				if(!GetPVarInt(i,"Music"))
				{
					SetPVarInt(i,"Music",1);
					PlayAudioStreamForPlayer(i, UMusic, MusicU[1], MusicU[2], MusicU[3], MusicU[4], true);
				}
			}
			else
			{
				if(GetPVarInt(i,"Music"))
				{
					DeletePVar(i,"Music");
					StopAudioStreamForPlayer(i);
				}
			}
		}


Вот и все дорогие форумчане, кому нужно берите на здоровье))Удачи..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу