Цитата:
Сообщение от Firefox3860
Случайный выбор станции в машине и вправду добавляет реализма.
|
Кстати, о реализьме.
Я подумал: при старте скрипта все треки на радио начинают играть с начала.
Это неправильно. Ведь радио не начинает эфир тогда, когда мы его включаем.
Надо при первом включении радио позиции треков рандомизировать.
Но рандомизировать-то надо по уму!
Надо чтобы случайное значение укладывалось в длительность трека.
А как узнать длительность трека?
Ведь такой скриптовой функции нет.
Гипотеза: если указать потоку с помощью команды Stream_SetPos некорректное значение, заведомо выходящее за пределы длительности трека, например 4 000 000, то потоку присвоится максимально возможное значение, соответствующее окончанию трека, и считав его с помощью команды Stream_GetPos мы узнаем длину трека.
Проверил гипотезу экспериментом.
Let Flt[15]=4000000
Stream_SetPos 0,15
Stream_GetPos 0,15
FreeRide_ScoreSet Flt[15]
И получил неожиданный результат: После попытки присвоения потоку некорректного значения позиции, команда Stream_GetPos показывает погоду на Марсе!
Т. е. возвращает рандомное значение.
Правда, чаще всего в диапазоне от 3 000 до 15 000 миллисекунд, и нам это не вполне подходит.
Таким образом, мы можем, при первом включении радио, смело назначать трекам рандомные позиции в диапазоне от 0 до 5 минут, а если рандомное значение выйдет за пределы реальной длительности трека, то ничего плохого не будет, значение будет рандомизировано по новой.
А реализовать эту фичу - пара пустяков.
Четыре строки в начале скрипта.
Что я уже и сделал.
Для версий 2.1 и 2.0 архивы по ссылкам обновлены.