Добро пожаловать на Pawno-Info.Ru - Портал о программировании v2.0

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию своим коллегам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?

Реклама

Вы можете заказать рекламу для вашего сообщества, или проекта на нашем портале. Реклама - двигатель торговли.

Что нового?

Хотите в один клик узнать что нового пишут наши пользователи? Тогда Вам сюда.

Связь с Администрацией

Если у Вас есть вопрос по работе портала, который Вы не в силах решить сами? Тогда напишите нам об это тут.

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

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

Игорь19998

Участник форума
Пользователь
Регистрация
29 Май 2014
Сообщения
442
Реакции
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);
				}
			}
		}


Вот и все дорогие форумчане, кому нужно берите на здоровье))Удачи..
 

stas@tap

Интересующийся
Пользователь
Регистрация
24 Фев 2013
Сообщения
10
Реакции
0
помогите поставить свяжитесь самной вк
 

Pyxamov

• Зарегистрированный •
Регистрация
24 Окт 2019
Сообщения
1
Реакции
0
Возраст
34
UP

Здраствуйте Ув.Формучане, хочу показать вам функцию, прослушивания музыки через ссылку 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);
				}
			}
		}


Вот и все дорогие форумчане, кому нужно берите на здоровье))Удачи..
Друже.. Хоть и этой теме уже х**** тучу лет.. Сделай доброе дело - опиши всё с public'ами что и куда вставлять...
 

Serg_Brain

• Администратор •
Команда форума
Administrator
Регистрация
15 Янв 2012
Сообщения
3,948
Реакции
471
Пользователь не появлялся в сети с 2015 года, врятли он вам ответит.
Попробуйте сами внедрить данную систему, если будут ошибки задавайте их в нужном разделе.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи онлайн

Реклама

shape1
shape2
shape3
shape4
shape7
shape8
Сверху