Jeka345
Ученик
В общем не хотел просить помощи но уже весь мозг сломал.
Дано
Цикл for в паблике
Проигрывание аудио из загруженных данных согласно циклу.
Но... проблема в следующем, если условный цикл остановить командой break то музыка играет только на последней строчке из базы данных (строчек в базе три, играет последняя), но если обойтись без break в конце цикла то на каждой локации в базе данных играет все нормально но... бесконечно запускается.
В общем попрошу помочь.
Сам код
Скриншот базы данных.
А да дополню, все работает через таймер односекундный, он в свою очередь бесконечно запускается для проверки того что человек находится по локациям в базе.
Дано
Цикл 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);
}
Скриншот базы данных.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
А да дополню, все работает через таймер односекундный, он в свою очередь бесконечно запускается для проверки того что человек находится по локациям в базе.
Последнее редактирование:
