Как сделать?
…
Hinkmar,
ты неправильно подходишь к dynamic. dynamic не даёт результата, он просто выполняет код. В твоём случае можно сыграть так:
$A='B=10'
dynamic "if <<$A>>: 'true'"
! фактически dynamic выполнит строку кода:
! if B=10: 'true'
mkir,
не думаю, что это глюк плеера. Никогда не слышал, чтобы он через раз воспроизводил звуки. Заявлено 32 одновременных потока. Я догонял до десяти, всегда прекрасно работало.
Попробуй отслеживать, выполняется ли вообще команда воспроизведения и что думает плеер по поводу проигрываемого звука.
Через counter и дополнительное описание можно контролировать, какие звуки воспроизводятся. Как-то так:
!#counter
settimer 20
clr
pl isplay "001.mp3"
pl isplay "01 - Shousou.mp3"
pl isplay "01 Requiem.mp3"
pl isplay "002.mp3"
pl isplay "2.15_ost_tension_-_eli's_blimp_alternative.flac"
pl isplay "2.20_ost_tension_-_Andriesh-GrainsOfmood.flac"
pl isplay "003.mp3"
pl isplay "03 - Eizashite.mp3"
pl isplay "004.mp3"
pl isplay "005.flac"
Ну а чтобы отслеживать запускается ли команда, придётся при команде ставить какую-нить переменную:
$play_track_001='локация:дом скрипнула дверь' & play '001.mp3'
Выводить через тоже доп описание и каунтер:
pl $play_track_001+' - '+str(isplay "001.mp3")
Aleks Versus,
Действительно. И как я сам не сообразил.
Спасибо за помощь.
Спасибо, пытаюсь разобраться. Пока не очень. Но вопрос навскидку - а если это один и тот же файл, может быть в этом проблема? Ну, скажем, два разных действия через короткий промежуток времени вызывают один и тот же более-менее продолжительный звук. Второе действие - вызывать отказывается.
mkir,
если ты вызываешь тот-же самый файл, то плеер не запускает его второй раз. Он просто изменяет уровень громкости.
wiki.qsp.su:
PLAY [$путь],[#громкость] - проигрывание звукового файла по заданному пути и с заданной громкостью.
-
Громкость указывается в процентах от 0 до 100. >
-
Параметр [#громкость] может отсутствовать, при этом громкость принимается равной 100%. >
-
Если файл уже проигрывается, то изменяется громкость звучания без его “перезапуска”. >
-
Поддерживается множество различных аудиоформатов и одновременное звучание до 32-х композиций. >
Доброго вечера. Надеюсь я еще не надоел :)
Всем спасибо за ответы, надо будет еще переварить.
У меня тут другой вопрос возник:
Как сделать чтобы при посещении локации, пусть она будет называться Портал, случайным образом выводились действия перехода на другую локацию. Например заходишь в Портал а там действие “Попасть в Антарктиду”, а в следующий раз там может быть другое действие “Попасть в Мордор”.
Larson,
'Портал такой портал.'
portal_event = rand(1,10)
if portal_event = 2: act 'Попасть в Антарктиду': gt 'антарктида'
if portal_event = 4: act 'Попасть в Мордор': gt 'мордор'
! И так дальше
Чтобы повторно не появлялось, делаем флаг:
if portal_event = 2:
if antark_check = 0: act 'Попасть в Антарктиду': gt 'антарктида'
end
Но тогда, если выпадет 2, а он уже там бывал, и вы поставили флажок что уже заново сходить не можно, делаем соответственно:
if portal_event = 2 and antark_check = 1 or portal_event = 4 and mordor_check = 1: *pl 'К сожалению, сегодня магическая буря, и портал работает некорректно. Извините за неудобства!'
Да, если мест в которые попасть много, придется писать так. Других способов лично Я не знаю, или не захотел придумать :)
Можно конечно дробить:
if portal_event = 2 and antark_check = 1: *pl 'Сегодня нельзя, барон зол как вепрь, запретил путешествовать через портал.'
if portal_event = 4 and mordor_check = 1: *pl 'Вообще не вариант, слишком уж лениво.'
Какие операторы соответствуют командам “И” и “Или”?
Совёнок v1.1,
И - and
или - or
Подскажите, может, кто-нибудь уже делал на qsp - какую-нибудь энциклопедию наподобие вики? Собираюсь делать что-то похожее, особых трудностей не вижу, но может ест какие-то дельные советы и полезные фишки от тех, кто уже это делал.
Добрый день.
Пытаюсь вывести в таблицу текст, растянутый по ширине. Вот так:
*p '<table border="1"><tr><td><p align="justify">Текст</p></td></tr></table>'
Текст выводится, но не с первой, а со второй строки. Первая остается пустой. Если не использовать тег <p>, то всё выводится нормально, без переноса. Так и должно быть, или это я опять что-то не так делаю? Если так и должно быть, то можно ли как-то это обойти?
Hinkmar,
ты прав. Какая-то ерунда с тегом <p>. Я могу посоветовать только использовать div вместо него.
Aleks Versus,
Спасибо, с div-ом всё выглядит как надо.
Помогите, добрые люди! Как сделать в игре что-то типа консоли? Например в окне описания написано “введите QWERTY для открытия двери”, и нужно написать в поле ввода QWERTY и нажать “enter”. Как сделать так, чтобы после того как текст введён (нажата кнопка “enter”) плеер “прочитывал” введённый текст, проверял QWERTY это или нет и в первом случае открывал дверь?
Можно разными способами. Самые простые:
1. В первой локации написать
$usercom=‘usercom’
Добавить локацию с названием usercom
В ней:
if USER_TEXT = ‘Любое слово’:
!любое действие
end
2. Непосредственно в коде конкретного действия можно написать
$x = input (”y”)
!x- любая переменная, y - текст, объясняющий игроку, что делать, что вводить
ну, а затем уже последствия введенного, типа:
if $x = :
else
end
либо, например
if x < 1:
pl ‘Некорректное число’
end
if x > 0:
pl ‘Окей, пусть будет <<x>>’
end
(для чисел, но тогда $ убрать и в начале)