Например:
Подхожу к объекту 3050, нажимаю энтер, включается динамик и бла-бла 10 сек. Если во время звучания семпла еще раз энтер, то стоп.
Мб бы и сделал, помнится с началом цикла переводов я сперва пробовал ковырять редактор.
Думаю что для начала что-то короткое бы сделал.
Начинай) Для начального этапа там переведено достаточно)
---------- Post added at 17:17 ---------- Previous post was at 16:33 ----------
Да, если ты хочешь по прекращению заданного интервала времени, не останавливая на это время игру, совершить какое-то действие, нужно вводить специальный сервер обработки событий по таймеру. Подумаю над этим.
Titus, угу, именно так. Я привел простенький пример. Ну а там уже как хош можно крутить под свои дела.
Titus, да, раскурил. Нужно главу про звук перевести. Теперь понял. Ну а второй параметр это не обязательный - опциональный? (0 - один раз проиграть, если не указывать, то 0, а если указать 1 то по кругу)
---------- Post added at 17:04 ---------- Previous post was at 16:56 ----------
проясни, а если объявить в sound.gs
#def FX_MUSIC 13
после def это индекс или как?
запутался я чот совсем....
Titus, в моем случае, конечно, подходит SampleStopAll, и все работает прекрасно. Но таки хочется докопаться до сути именно SampleStop. От такой я тупоупоротый
Мой мозг твою конструкцию принимает вот так:
func ActionObject_3050 ( idx )
{
if(ObjGet(ObjFind(3050),O_STATUS)==0)
{
SamplePlay(FX_MUSIC);
midx = SamplePlay(FX_MUSIC);
ObjSet(ObjFind(3050),O_STATUS,1);
}
else
{
SampleStop( midx );
ObjSet(ObjFind(3050),O_STATUS,0);
}
}
И оно тупо вываливает игру по событию else c ошибкой BADTYPE бла-бла. Я б забил, но уже принципиально интересно. Я тупо потерял день из-за одной тупейшей команды...))
В твоем случае лучше использовать остановку всех самплов)
Во-первых, из этих строк:
первая строка лишнаяКод:SamplePlay(FX_MUSIC); midx = SamplePlay(FX_MUSIC);
во-вторых, нельзя сохранять индекс мелодии в переменной, которая является локальной, и пропадает при выходе из функции. Это значение надо либо сохранять в глобальных переменных, либо останавливать все семплы. Потому что, у тебя в функции используется либо вызыв проигрывания мелодии, либо ее выключение. В случае выключения переменная midx не инициализирована, т.к. она локальная для этой функции, и при входе в функцию неопределена, и это конечно дает ошибку.
---------- Post added at 23:44 ---------- Previous post was at 23:43 ----------
Не потерял, а потратил на тренировку и обучение)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)