Как сделать?

Re: Как сделать?

Доброго всем вечера.
Возник вопрос: можно ли проверить соответствие истине выражения, записанного в текстовую переменную? Вот, например, присвоили мы:

Код:

$A='B=10'

Можно ли теперь что-нибудь сделать с переменной $A, чтобы как-то узнать истинно это выражение или ложно? Подружить if с dynamic для решения этой задачи у меня не получилось. Вопреки моим надеждам, такая запись не работает:

Код:

if dynamic '$A': 'true'

Hinkmar
useravatar
Offline
9 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Не совсем понятно... вот я добавлю в своей проект разные звуки, если мне нужно их проиграть, то в определенном месте пишу что-нибудь вроде:

play'm/удар.mp3',80

Но так или иначе бывает, что некоторые звуки могут друг на друга накладываться (это нормально, я этого и хочу) - но пока не проиграет до конца один звук, другой не включится. И если, пока играл первый, а строчка, запускающая второй, уже была прочитана - то второй звук уже не прозвучит вовсе.

Как справиться с этой проблемой?

mkir
useravatar
Онлайн
89 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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
воздвигатель башни
useravatar
Онлайн
1274 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Aleks Versus,
Действительно. И как я сам не сообразил.
Спасибо за помощь.

Hinkmar
useravatar
Offline
9 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Спасибо, пытаюсь разобраться. Пока не очень. Но вопрос навскидку - а если это один и тот же файл, может быть в этом проблема? Ну, скажем, два разных действия через короткий промежуток времени вызывают один и тот же более-менее продолжительный звук. Второе действие - вызывать отказывается.

mkir
useravatar
Онлайн
89 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

mkir,
если ты вызываешь тот-же самый файл, то плеер не запускает его второй раз. Он просто изменяет уровень громкости.

wiki.qsp.su написал(а):

PLAY [$путь],[#громкость] - проигрывание звукового файла по заданному пути и с заданной громкостью.
  • Громкость указывается в процентах от 0 до 100.
  • Параметр [#громкость] может отсутствовать, при этом громкость принимается равной 100%.
  • Если файл уже проигрывается, то изменяется громкость звучания без его "перезапуска".
  • Поддерживается множество различных аудиоформатов и одновременное звучание до 32-х композиций.

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1274 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Доброго вечера. Надеюсь я еще не надоел smile
Всем спасибо за ответы, надо будет еще переварить.
У меня тут другой вопрос возник:
Как сделать чтобы при посещении локации, пусть она будет называться Портал, случайным образом выводились действия перехода на другую локацию. Например заходишь в Портал а там действие "Попасть в Антарктиду", а в следующий раз там может быть другое действие "Попасть в Мордор".

Larson
useravatar
Онлайн
28 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

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 'К сожалению, сегодня магическая буря, и портал работает некорректно. Извините за неудобства!'

Да, если мест в которые попасть много, придется писать так. Других способов лично Я не знаю, или не захотел придумать smile
Можно конечно дробить:

Код:

if portal_event = 2 and antark_check = 1: *pl 'Сегодня нельзя, барон зол как вепрь, запретил путешествовать через портал.'

if portal_event = 4 and mordor_check = 1: *pl 'Вообще не вариант, слишком уж лениво.'

Oliver
Magni nominis umbra
useravatar
Онлайн
512 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Какие операторы соответствуют командам "И" и "Или"?

Совёнок v1.1
useravatar
Offline
3 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Совёнок v1.1,
И - and
или - or

Справка ЗДЕСЬ.

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1274 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
954
Всего опросов:
14
Всего сообщений:
16789982
Всего сообщений сегодня:
4
Пользователи форума:
 
Всего пользователей:
2057
Последним зарегистрировался:
Lv2013