Доступ к готовым решениям

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

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

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

Мануал MP3 Плеер TextDraw

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

#Kai

Умник
Доброго времени суток дорогие пользователи Pawno-Info.Ru
Дело было вечером, делать было нечего...

Наш MP3 Плеер будет выглядеть так:​

Создаем команду для включения MP3 Плеера
PHP:
CMD:mp3(playerid)
{
    for(new i; i < 10; i++) TextDrawShowForPlayer(playerid, MP3[i]);
    SelectTextDraw(playerid, 0xFF0000FF);
    return true;
}
Public OnGameModeInit();
PHP:
	MP3[0] = TextDrawCreate(587.182983, 297.833312, "usebox");
	TextDrawLetterSize(MP3[0], 0.000000, 14.094078);
	TextDrawTextSize(MP3[0], 519.932617, 0.000000);
	TextDrawAlignment(MP3[0], 1);
	TextDrawColor(MP3[0], -1338953217);
	TextDrawUseBox(MP3[0], true);
	TextDrawBoxColor(MP3[0], -1338953217);
	TextDrawSetShadow(MP3[0], 0);
	TextDrawSetOutline(MP3[0], 0);
	TextDrawFont(MP3[0], 0);

	MP3[1] = TextDrawCreate(583.434814, 302.500000, "usebox");
	TextDrawLetterSize(MP3[1], 0.000000, 5.854815);
	TextDrawTextSize(MP3[1], 523.680786, 0.000000);
	TextDrawAlignment(MP3[1], 1);
	TextDrawColor(MP3[1], 0);
	TextDrawUseBox(MP3[1], true);
	TextDrawBoxColor(MP3[1], 255);
	TextDrawSetShadow(MP3[1], 0);
	TextDrawSetOutline(MP3[1], 0);
	TextDrawFont(MP3[1], 1);

	MP3[2] = TextDrawCreate(526.618164, 362.833221, "LD_POOL:ball");
	TextDrawLetterSize(MP3[2], 0.000000, 0.000000);
	TextDrawTextSize(MP3[2], 53.411437, 58.916633);
	TextDrawAlignment(MP3[2], 1);
	TextDrawColor(MP3[2], -1);
	TextDrawUseBox(MP3[2], true);
	TextDrawBoxColor(MP3[2], 0);
	TextDrawSetShadow(MP3[2], 0);
	TextDrawSetOutline(MP3[2], 0);
	TextDrawFont(MP3[2], 4);

	MP3[3] = TextDrawCreate(543.015991, 380.916717, "LD_POOL:ball");
	TextDrawLetterSize(MP3[3], 0.000000, 0.000000);
	TextDrawTextSize(MP3[3], 22.489013, 22.750009);
	TextDrawAlignment(MP3[3], 1);
	TextDrawColor(MP3[3], -1);
	TextDrawSetShadow(MP3[3], 0);
	TextDrawSetOutline(MP3[3], 0);
	TextDrawFont(MP3[3], 4);

	MP3[4] = TextDrawCreate(553.323547, 365.166625, "+");
	TextDrawLetterSize(MP3[4], 0.449999, 1.600000);
	TextDrawAlignment(MP3[4], 2);
	TextDrawColor(MP3[4], 255);
	TextDrawSetShadow(MP3[4], 0);
	TextDrawSetOutline(MP3[4], 0);
	TextDrawBackgroundColor(MP3[4], 51);
	TextDrawFont(MP3[4], 1);
	TextDrawSetProportional(MP3[4], 1);

	MP3[5] = TextDrawCreate(553.323547, 403.666687, "-");
	TextDrawLetterSize(MP3[5], 0.449999, 1.600000);
	TextDrawAlignment(MP3[5], 2);
	TextDrawColor(MP3[5], 255);
	TextDrawSetShadow(MP3[5], 0);
	TextDrawSetOutline(MP3[5], 0);
	TextDrawBackgroundColor(MP3[5], 51);
	TextDrawFont(MP3[5], 1);
	TextDrawSetProportional(MP3[5], 1);

	MP3[6] = TextDrawCreate(529.429199, 384.416595, "<");
	TextDrawLetterSize(MP3[6], 0.449999, 1.600000);
	TextDrawTextSize(MP3[6], 540.205078, 15.749999);
	TextDrawAlignment(MP3[6], 1);
	TextDrawColor(MP3[6], 255);
	TextDrawUseBox(MP3[6], true);
	TextDrawBoxColor(MP3[6], -256);
	TextDrawSetShadow(MP3[6], 0);
	TextDrawSetOutline(MP3[6], 0);
	TextDrawBackgroundColor(MP3[6], 51);
	TextDrawFont(MP3[6], 1);
	TextDrawSetProportional(MP3[6], 1);
	TextDrawSetSelectable(MP3[6], true);

	MP3[7] = TextDrawCreate(567.379211, 384.416625, ">");
	TextDrawLetterSize(MP3[7], 0.449999, 1.600000);
	TextDrawTextSize(MP3[7], 577.218078, 16.333333);
	TextDrawAlignment(MP3[7], 1);
	TextDrawColor(MP3[7], 255);
	TextDrawUseBox(MP3[7], true);
	TextDrawBoxColor(MP3[7], -256);
	TextDrawSetShadow(MP3[7], 0);
	TextDrawSetOutline(MP3[7], 0);
	TextDrawBackgroundColor(MP3[7], 51);
	TextDrawFont(MP3[7], 1);
	TextDrawSetProportional(MP3[7], 1);
	TextDrawSetSelectable(MP3[7], true);

	MP3[8] = TextDrawCreate(553.792358, 322.000000, "Europa Plus");
	TextDrawLetterSize(MP3[8], 0.164670, 0.993333);
	TextDrawAlignment(MP3[8], 2);
	TextDrawColor(MP3[8], -1);
	TextDrawSetShadow(MP3[8], 0);
	TextDrawSetOutline(MP3[8], 1);
	TextDrawBackgroundColor(MP3[8], 51);
	TextDrawFont(MP3[8], 2);
	TextDrawSetProportional(MP3[8], 1);

	MP3[9] = TextDrawCreate(549.575561, 384.416564, "S");
	TextDrawLetterSize(MP3[9], 0.449999, 1.600000);
	TextDrawTextSize(MP3[9], 561.288330, 11.666665);
	TextDrawAlignment(MP3[9], 1);
	TextDrawColor(MP3[9], 255);
	TextDrawUseBox(MP3[9], true);
	TextDrawBoxColor(MP3[9], -256);
	TextDrawSetShadow(MP3[9], 0);
	TextDrawSetOutline(MP3[9], 0);
	TextDrawBackgroundColor(MP3[9], 51);
	TextDrawFont(MP3[9], 1);
	TextDrawSetProportional(MP3[9], 1);
	TextDrawSetSelectable(MP3[9], true);
Public OnPlayerClickTextDraw(playerid, Text:clickedid)
PHP:
    if(clickedid == MP3[7])
	{
	    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls");
	    new string[10];
	    format(string, sizeof(string), "%s", "SOMA FM"); TextDrawSetString(MP3[8], string);
	}
	if(clickedid == MP3[6])
	{
	    PlayAudioStreamForPlayer(playerid, "http://radio.zaycev.fm:9002/ZaycevFM(128).m3u");
	    new string[10];
	    format(string, sizeof(string), "%s", "Zaycev FM"); TextDrawSetString(MP3[8], string);
	}
	if(clickedid == MP3[9])
	{
	    for(new i; i < 10; i++) TextDrawHideForPlayer(playerid, MP3[i]);
	    StopAudioStreamForPlayer(playerid);
        CancelSelectTextDraw(playerid);
	}


Вариант от Saibot`a:
Ко всем new
PHP:
new PlayerText: station_player[MAX_PLAYERS char],
	which_radio[MAX_PLAYERS char] = {-1,...},
	Text: music_player[9];

static const music_station [3] [2] [] =
{
	{"http://somafm.com/tags.pls", "SOMA FM"},
	{"http://radio.zaycev.fm:9002/ZaycevFM(128).m3u", "Zaycev FM"},
	{"http://online.radiorecord.ru:8101/rr_128", "Radio Record"}
};
В public OnGameModeInit()
PHP:
music_player[0] = TextDrawCreate(587.182983, 297.833312, "usebox");
TextDrawLetterSize(music_player[0], 0.000000, 14.094078);
TextDrawTextSize(music_player[0], 519.932617, 0.000000);
TextDrawUseBox(music_player[0], true);
TextDrawBoxColor(music_player[0], -1338953217);

music_player[1] = TextDrawCreate(583.434814, 302.500000, "usebox");
TextDrawLetterSize(music_player[1], 0.000000, 5.854815);
TextDrawTextSize(music_player[1], 523.680786, 0.000000);
TextDrawUseBox(music_player[1], true);
TextDrawBoxColor(music_player[1], 255);

music_player[2] = TextDrawCreate(526.618164, 362.833221, "LD_POOL:ball");
TextDrawTextSize(music_player[2], 53.411437, 58.916633);
TextDrawFont(music_player[2], 4);

music_player[3] = TextDrawCreate(543.015991, 380.916717, "LD_POOL:ball");
TextDrawTextSize(music_player[3], 22.489013, 22.750009);
TextDrawFont(music_player[3], 4);

music_player[4] = TextDrawCreate(553.323547, 365.166625, "+");
music_player[5] = TextDrawCreate(553.323547, 403.666687, "-");
for(new i = 4; i < 6; i++)
{
	TextDrawLetterSize(music_player[i], 0.449999, 1.600000);
	TextDrawAlignment(music_player[i], 2);
	TextDrawColor(music_player[i], 255);
	TextDrawSetShadow(music_player[i], 0);
	TextDrawSetOutline(music_player[i], 0);
	TextDrawBackgroundColor(music_player[i], 51);
	TextDrawFont(music_player[i], 1);
}
music_player[6] = TextDrawCreate(529.429199, 384.416595, "<");
TextDrawTextSize(music_player[6], 540.205078, 15.749999);

music_player[7] = TextDrawCreate(567.379211, 384.416625, ">");
TextDrawTextSize(music_player[7], 577.218078, 16.333333);

music_player[8] = TextDrawCreate(550.575561, 384.416564, "S");
TextDrawTextSize(music_player[8], 561.288330, 11.666665);

for(new i = 6; i < 9; i++)
{
	TextDrawLetterSize(music_player[i], 0.449999, 1.600000);
	TextDrawAlignment(music_player[i], 1);
	TextDrawColor(music_player[i], 255);
	TextDrawUseBox(music_player[i], true);
	TextDrawBoxColor(music_player[i], -256);
	TextDrawSetShadow(music_player[i], 0);
	TextDrawSetOutline(music_player[i], 0);
	TextDrawBackgroundColor(music_player[i], 51);
	TextDrawFont(music_player[i], 1);
	TextDrawSetProportional(music_player[i], 1);
	TextDrawSetSelectable(music_player[i], true);
}
В public OnPlayerClickTextDraw(playerid, Text:clickedid)
PHP:
if(clickedid == music_player[6] || clickedid == music_player[7])
{
	new amount;
	for(new i = 0; i < sizeof(music_station); i++)amount++;
	if(clickedid == music_player[6])
	{
		if(which_radio{playerid} -- < amount -2)
			which_radio{playerid} = amount - 1;
	}
	if(clickedid == music_player[7])
	{
		if(which_radio{playerid} ++ > amount -2)
			which_radio{playerid} = 0;
	}
	PlayAudioStreamForPlayer(playerid, music_station[which_radio{playerid}][0]);
	PlayerTextDrawSetString(playerid, station_player{playerid}, music_station[which_radio{playerid}][1]);
}
else if(clickedid == Text: INVALID_TEXT_DRAW)
{
	StopAudioStreamForPlayer(playerid);
	CancelSelectTextDraw(playerid);

	PlayerTextDrawHide(playerid,station_player{playerid});
	for(new i; i < 9; i++)
		TextDrawHideForPlayer(playerid, music_player[i]);
}
В public OnPlayerConnect(playerid)
PHP:
station_player{playerid} = CreatePlayerTextDraw(playerid, 553.792358, 322.000000, !"Radio Off");
PlayerTextDrawLetterSize(playerid, station_player{playerid}, 0.164670, 0.993333);
PlayerTextDrawAlignment(playerid, station_player{playerid}, 2);
PlayerTextDrawColor(playerid, station_player{playerid}, -1);
PlayerTextDrawSetShadow(playerid, station_player{playerid}, 0);
PlayerTextDrawSetOutline(playerid, station_player{playerid}, 1);
PlayerTextDrawBackgroundColor(playerid, station_player{playerid}, 51);
PlayerTextDrawFont(playerid, station_player{playerid}, 2);
PlayerTextDrawSetProportional(playerid, station_player{playerid}, 1);
Ко всем командам
PHP:
CMD:mp3(playerid)
{
    for(new i; i < 9; i++)
		TextDrawShowForPlayer(playerid, music_player[i]);

    PlayerTextDrawShow(playerid,station_player{playerid});
    SelectTextDraw(playerid, 0xFF0000FF);
    return true;
}
Информация:
- Переделал систему.
- Исправил ошибку с TD MP3[8] (При смени радиостанции текст будет меняться всем игрокам!)
- У автора можно было только использовать две радиостанции, в моем варианте можно использовать сколько угодно и для, этого нужно только добавить станции в static const music_station

* Когда будете добавлять новую станции увеличивайте размер в первом массиве [3].
То есть, добавили новую станцию +1 было [3] вы увеличили, стало [4]
PHP:
static const music_station [3] [2] [] =
{
	{"http://somafm.com/tags.pls", "SOMA FM"},
	{"http://radio.zaycev.fm:9002/ZaycevFM(128).m3u", "Zaycev FM"},
	{"http://online.radiorecord.ru:8101/rr_128", "Radio Record"}
};
- Если вы в плеере дойдете до последней радиостанции (< / >) то плеер начнет проигрывать станции заново (была последняя радиостанции Вы нажали далее [>] включилась первая радиостанция. И так само в обратную сторону].


Данный MP3 Плеер это моя "Лучшая" работа в pawn, строго не судите =)​
​
​
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу