• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

trouble system boombox (help)

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

MaJIou

Ученик
доброе утро, форумчане. нужна помощь. дело в том, что при выборе другому игроку музыки с boombox'a, звук у меня не воспроизводится. аналогично и у другого человека. вообщем, кто включил, у того работает, бумбокс, а у других пропадает звук. (у всех). как исправить?

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;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу