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

Бесконечно проигрывается аудиотрек из базы данных по координатам

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

Jeka345

Ученик
В общем не хотел просить помощи но уже весь мозг сломал.
Дано
Цикл for в паблике
Проигрывание аудио из загруженных данных согласно циклу.
Но... проблема в следующем, если условный цикл остановить командой break то музыка играет только на последней строчке из базы данных (строчек в базе три, играет последняя), но если обойтись без break в конце цикла то на каждой локации в базе данных играет все нормально но... бесконечно запускается.
В общем попрошу помочь.
Сам код
PHP:
publics: AudioStreams_live(playerid)
{
    for(new i = 1; i <= TOTALMUSIC; i++)
    {
        new distance = floatround( GetPlayerDistanceFromPoint(playerid, AudioStreams[i][AzX], AudioStreams[i][AzY], AudioStreams[i][AzZ]));
        if(UseSound[playerid] == 0 && distance <= AudioStreams[i][AzDistanse])
        {
            SendClientMessage(playerid,COLOR_WHITE,"Вы вошли в зону с аудиодорожкой, если у вас не играет музыка, проверьте настройки аудио.");
            PlayAudioStreamForPlayer(playerid, AudioStreams[i][StrUrl], AudioStreams[i][AzX], AudioStreams[i][AzY], AudioStreams[i][AzZ], AudioStreams[i][AzDistanse], 1);
            UseSound[playerid] = 1;
        }
        //(UseSound[x] == 1 && distance > AudioStreams[i][AzDistanse])
        else if(UseSound[playerid] == 1 && distance >= AudioStreams[i][AzDistanse])
        {
            UseSound[playerid] = 0;
            StopAudioStreamForPlayer(playerid);
        }
    }
}
PHP:
case 34:
        {
            if(!r) return printf("[Загрузка ...] Данные из AMusic не получены!");
            for(x = 1; x <= r; x++)
            {
                AudioStreams[x][AzID] =         cache_get_row_int(x-1,0, DATABASE);    
                AudioStreams[x][AzX] =             cache_get_row_float(x-1,1, DATABASE);
                   AudioStreams[x][AzY] =             cache_get_row_float(x-1,2, DATABASE);
                AudioStreams[x][AzZ] =             cache_get_row_float(x-1,3, DATABASE);
                AudioStreams[x][AzDistanse] =     cache_get_row_float(x-1,4, DATABASE);
                cache_get_row(x, 5, AudioStreams[x][StrUrl], DATABASE, 150);
                cache_get_row(x, 6, AudioStreams[x][StrName], DATABASE, 64);
                AudioStreams[x][StrRun] =         cache_get_row_int(x-1,7, DATABASE);
                TOTALMUSIC++;
            }
            printf("[Загрузка ...] Данные из Amusic получены! (%i шт.)",TOTALMUSIC);
        }

Скриншот базы данных.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


А да дополню, все работает через таймер односекундный, он в свою очередь бесконечно запускается для проверки того что человек находится по локациям в базе.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу