MaJIou
Ученик
доброе утро, форумчане. нужна помощь. дело в том, что при выборе другому игроку музыки с boombox'a, звук у меня не воспроизводится. аналогично и у другого человека. вообщем, кто включил, у того работает, бумбокс, а у других пропадает звук. (у всех). как исправить?
code
code
Код:
/*
Версия: v0.02
Автор: Romzes
Сайт: ************
*/
#include <a_samp>
#define MusicUrl "http://www.zaycev.fm:9001/electronic/ZaycevFM(128)" // URL аудио дорожки
#define DialogId 5554 // ID диалог окна
#define ObjectSlot 7 // ID слота объекта
#define DistanceMusic 50.0 // Дистанция
enum box_info
{
box_object,
box_music,
Float: box_x,
Float: box_y,
Float: box_z
}
new BoxInfo[MAX_PLAYERS][box_info];
public OnPlayerConnect(playerid)
{
DestroyBoombox(playerid);
return 0;
}
public OnPlayerDisconnect(playerid, reason)
{
DestroyBoombox(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
DestroyBoombox(playerid);
return 1;
}
public OnPlayerCommandText(playerid,cmdtext[])
{
if(strcmp(cmdtext, "/boombox", true) == 0)
{
ShowPlayerDialog(playerid, DialogId, DIALOG_STYLE_LIST, "Бумбокс", "Поставить на землю\nВзять в руку\nУбрать", "Далее", "Выход");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DialogId)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(BoxInfo[playerid][box_music] != 0) return SendClientMessage(playerid, -1, "Бумбокс уже используется.");
BoxInfo[playerid][box_music] = 1;
GetPlayerPos(playerid, BoxInfo[playerid][box_x], BoxInfo[playerid][box_y], BoxInfo[playerid][box_z]);
new Float:Angle;
GetPlayerFacingAngle(playerid, Angle);
PlayAudioStreamForPlayer(playerid, MusicUrl, BoxInfo[playerid][box_x], BoxInfo[playerid][box_y], BoxInfo[playerid][box_z], DistanceMusic, 1);
BoxInfo[playerid][box_object] = CreateObject(2226, BoxInfo[playerid][box_x], BoxInfo[playerid][box_y]+0.5, BoxInfo[playerid][box_z]-1, 0.0, 0.0, Angle, 200.0);
}
case 1:
{
if(BoxInfo[playerid][box_music] != 0) return SendClientMessage(playerid, -1, "Бумбокс уже используется.");
BoxInfo[playerid][box_music] = 2;
PlayAudioStreamForPlayer(playerid, MusicUrl);
SetPlayerAttachedObject(playerid, ObjectSlot, 2226, 5, 0.387, 0.0, 0.0, 0.0, 263.6821, 0.0, 1.0, 1.0, 1.0);
}
case 2:
{
switch(BoxInfo[playerid][box_music])
{
case 1:
{
if(!IsPlayerInRangeOfPoint(playerid, 3.0, BoxInfo[playerid][box_x], BoxInfo[playerid][box_y], BoxInfo[playerid][box_z])) return SendClientMessage(playerid,-1, "Вы должны находится рядом с Бумбоксом.");
DestroyBoombox(playerid);
}
case 2:
{
DestroyBoombox(playerid);
}
default:
{
SendClientMessage(playerid, -1, "Бумбокс находится у вас в кармане.");
}
}
}
}
}
return 1;
}
return 0;
}
stock DestroyBoombox(playerid)
{
switch(BoxInfo[playerid][box_music])
{
case 1:
{
DestroyObject(BoxInfo[playerid][box_object]);
for(new id = 0; id <= GetPlayerPoolSize(); id++)
{
if(IsPlayerInRangeOfPoint(id, DistanceMusic, BoxInfo[playerid][box_x], BoxInfo[playerid][box_y], BoxInfo[playerid][box_z]))
{
StopAudioStreamForPlayer(id);
}
}
}
case 2:
{
RemovePlayerAttachedObject(playerid, ObjectSlot);
StopAudioStreamForPlayer(playerid);
}
}
BoxInfo[playerid][box_object] = -1;
BoxInfo[playerid][box_music] = 0;
BoxInfo[playerid][box_x] = 0.0;
BoxInfo[playerid][box_y] = 0.0;
BoxInfo[playerid][box_z] = 0.0;
