RU

QSP-плеер: вопросы и предложения

Ntropy Moderator 30.04.2010 12:55 127 comments 54700 views

Этим сообщением открывается тема вопросов и предложений касающихся QSP-плеера.

Edited at 30.04.2010 12:57 (15 years ago)
Dark[Ol(U23)leneri] #34 19.06.2010 18:17 (15 years ago)

Предложения с объектами просто не рассматриваются хД

Перетаскивание предметов делается и сейчас легко:
$локация[’Стул’]=$curloc
$локация[’Стул’]=‘игрок’

Aleks Versus Moderator 10.09.2010 12:02 (15 years ago)

Otus7:

Реализация перетаскивания объекта из локации в локации с возможностью бросить и оставить объект в любой локации - это тот еще гемморой

Никакой это не геморой. Легко и просто решается использованием двумерных массивов. Я добился сброса и сохранения предметов на любой локации, с последующей возможностью их поднять.

aleksversus,
Непонятно, зачем двумерные массивы, если можно обойтись одномерными.

Aleks Versus Moderator 10.09.2010 12:07 (15 years ago)

Logger:

Да, но при исскуственном цикле всегда возможны перерывы в музыке на доли секунды, что будет несколько портить впечатление. Или нужно слишком часто проверять (порядка 5-10 раз в секунду)

Думаю, можно обойтись без постоянной проверки, зная продолжительность воспроизводимого трека. Перерывов можно избежать. Правда музыку добавлять я еще не пытался, но в скором времени дойду и до этого.

Aleks Versus Moderator 10.09.2010 12:10 (15 years ago)

Nex:

aleksversus,
Непонятно, зачем двумерные массивы, если можно обойтись одномерными.

Хочу такой код.

aleksversus,
см. сообщение Байта(#18), прямо перед твоим первым сообщением в этой теме.

Aleks Versus Moderator 10.09.2010 13:15 (15 years ago)

Nex,
Это годится только когда предметов небольшое количество. Как я понимаю, подъем в данном случае осуществляется путем создания действий “поднять” в зависимости от состояния переменной. Т.е. на локации, где сброшен предмет, выполняется такой код: if $локация[’стул’]=$curloc: act ‘взять стул’. Но в случае, когда требуется перетаскивать большое количество предметов, а локаций, на которых их можно сбрасывать, еще больше, прописывать каждый раз для каждого предмета такую гору строк - нерационально. Может я где-то что-то пропустил, и можно обойтись одномерными массивами, но простая задача: возможность сбрасывать сто предметов на ста локациях - дает нам десять тысяч возможных вариантов, и делать десять тысяч проверок нереально.

aleksversus,
а зачем в каждой локации писать?
достаточно прописать код один раз в служебной локации, и вызывать его при заходе в локацию ($ONNEWLOC).

Т.о. в “обычных” локациях писать ничего не придется, описания и действия с предметами будут добавляться автоматически.

Непонятно, зачем проверять каждый предмет отдельным условием. Составляем список предметов и потом в цикле, на $ONNEWLOC, проверяем, какие предметы находятся на текущей локации.

Предлагаю сделать системную переменную, которая считает, сколько раз было запущено действие с таким именем. Вызываться например так будет NRUN(’название действия’). Очень нужно, ведь почти каждому необходимо менять текст локаций в зависимости от количества посещений, или комментарии, в зависимости от использовании предметов.

Это и сейчас делается очень просто.

Byte,
Просто? Что же, достаточно просто создавать новые переменные для каждого действия, но я говорю об облегчении “участи”.

Зачем для каждого действия? :)

AntiPod,
это у тебя просто от незнания языка. Напиши в теме “Как сделать?”, или создай новую тему, в которой опиши свои трудности, мы расскажем, как все реализовывается существующими операторами.

Log in or Register to post comments.