Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #26
09.05.2013 10:51

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

Ух, спасибо!
Самое последнее: в начале, когда я брал за основу код Астероидов, словопад получился плотнее, т.к. там запускалось не по одному слову в строке, а по несколько.

Код:

:: StoryTitle
словопад 1

:: StoryAuthor
Sosiskin

:: StoryMenu


:: Start
<<style 'sepia'>>
===[[Запустить словопад|Начать]]===
***

:: Начать
<<display 'миелопан'>>


:: что-то
Ты стоишь прямо у закрытой двери. На двери горит слово ''"калбер-"'' Небольшая панель с подсвеченными кнопками предлагает ввести ответное слово.
<<input 'Проверка пароля 1' $пароль>>
(Чтобы слушать подсказки в информационном эфире, вы можете [[включить ''миелофон''|миелофон]].)

:: Пространство
<<clrscr>>
<<set $расстояние = 1>>
<<if $расстояние lte 0>>
    <<stop 'Пространство'>>
----
<<else>>
    <<set $код_последний = $код8>>
    <<display 'Новая линия'>>
    <<set $линия8 = $линия7>>
    <<set $код8 = $код7>>
    <<set $линия7 = $линия6>>
    <<set $код7 = $код6>>
    <<set $линия6 = $линия5>>
    <<set $код6 = $код5>>
    <<set $линия5 = $линия4>>
    <<set $код5 = $код4>>
    <<set $линия4 = $линия3>>
    <<set $код4 = $код3>>
    <<set $линия3 = $линия2>>
    <<set $код3 = $код2>>
    <<set $линия2 = $линия1>>
    <<set $код2 = $код1>>
    <<set $линия1 = $линия>>
    <<set $код1 = $код>>
    <<display 'Вывод'>>
    # переводим положение в двоичный код
    <<if $положение eq 1>>
        <<set $положение_код = '10000000'>>
    <<elseif $положение eq 2>>
        <<set $положение_код = '01000000'>>
    <<elseif $положение eq 3>>
        <<set $положение_код = '00100000'>>
    <<elseif $положение eq 4>>
        <<set $положение_код = '00010000'>>
    <<elseif $положение eq 5>>
        <<set $положение_код = '00001000'>>
    <<elseif $положение eq 6>>
        <<set $положение_код = '00000100'>>
    <<elseif $положение eq 7>>
        <<set $положение_код = '00000010'>>
    <<elseif $положение eq 8>>
        <<set $положение_код = '00000001'>>
    <<endif>>
    
<<endif>>

:: Новая линия
<<set $линия = ''>>
<<set $код = ''>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [1]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [2]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [3]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [4]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [5]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [6]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + $словосписок [7]>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
<<random $объект = 8>>
<<if $объект eq 0>>
    <<set $линия = $линия + '*'>>
    <<set $код = $код + '1'>>
<<else>>
    <<set $линия = $линия + '&nbsp;'>>
    <<set $код = $код + '0'>>
<<endif>>
# обрамление слева
<<display 'Прочие объекты'>>
<<set $н4 = $н1>><<set $н5 = $н2>><<set $н6 = $н3>>
<<display 'Прочие объекты'>>
<<set $линия = '==={{{' + $н4+$н5+$н6 + $линия + $н1+$н2+$н3 + '}}}==='>>

:: Прочие объекты
# использовать $н1, $н2, $н3
<<random $объект = 9>>
<<if $объект eq 0>>
    <<set $н1 = '•'>>
<<elseif $объект eq 1>>
    <<set $н1 = '.'>>
<<else>>
    <<set $н1 = '&nbsp;'>>
<<endif>>
<<random $объект = 9>>
<<if $объект eq 0>>
    <<set $н2 = '•'>>
<<elseif $объект eq 1>>
    <<set $н2 = '.'>>
<<else>>
    <<set $н2 = '&nbsp;'>>
<<endif>>
<<random $объект = 9>>
<<if $объект eq 0>>
    <<set $н3 = '•'>>
<<elseif $объект eq 1>>
    <<set $н3 = '.'>>
<<else>>
    <<set $н3 = '&nbsp;'>>
<<endif>>

:: Влево
<<if $положение>1>>
    <<set $положение = $положение-1>>
<<endif>>

:: Вправо
<<if $положение<8>>
    <<set $положение = $положение+1>>
<<endif>>

:: Вывод
# положения звездолёта
<<set $линия_звездолёта = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'>>
<<if $положение eq 1>>
    <<set $линия_звездолёта = '▲&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'>>
<<elseif $положение eq 2>>
    <<set $линия_звездолёта = '&nbsp;▲&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'>>
<<elseif $положение eq 3>>
    <<set $линия_звездолёта = '&nbsp;&nbsp;▲&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'>>
<<elseif $положение eq 4>>
    <<set $линия_звездолёта = '&nbsp;&nbsp;&nbsp;▲&nbsp;&nbsp;&nbsp;&nbsp;'>>
<<elseif $положение eq 5>>
    <<set $линия_звездолёта = '&nbsp;&nbsp;&nbsp;&nbsp;▲&nbsp;&nbsp;&nbsp;'>>
<<elseif $положение eq 6>>
    <<set $линия_звездолёта = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;▲&nbsp;&nbsp;'>>
<<elseif $положение eq 7>>
    <<set $линия_звездолёта = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;▲&nbsp;'>>
<<elseif $положение eq 8>>
    <<set $линия_звездолёта = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;▲'>>
<<endif>>
# вывод пространства
#<<print $линия1>><<print $линия2>><<print $линия3>><<print $линия4>><<print $линия5>><<print $линия6>><<print $линия7>><<print $линия8>>==={{{<<print $линия_звездолёта>>}}}===
# вывод пространства
@@@<<print $линия1>><<print $линия2>><<print $линия3>><<print $линия4>><<print $линия5>><<print $линия6>><<print $линия7>><<print $линия8>>@@@
# вывод кнопок
# вывод расстояния

:: StorySubtitle


:: Проверка пароля 1
<<if $пароль == $словосписок [4]>>
Правильно! <<print $пароль>>! Вы угадали. Дверь открывается.
<<else>>
Что? Это не правильный пароль. Попробуйте ещё раз.
<<input 'неправильно раз' $пароль>>
<<endif>>

:: неправильно раз
Очевидно, вы не знаете пароля. Вводить слова наугад может занять много времени. Попробуйте [[воспользоваться ''миелофоном''|миелофон]].

:: миелофон
<<display 'миелопан'>>
<<display 'ground'>>

:: ground
Ты стоишь у закрытой двери. На двери горит слово ''"калбер-"'' Небольшая панель с подсвеченными кнопками предлагает ввести ответное слово.
<<input 'Проверка пароля 1' $пароль>>

:: миелопан
<<set $словосписок = ["sosiskin","{{{Morych}}}", "//ifiction//","''weird''","axma","story","словопад","мнемо",".", "•",".","•"]>>
#<<set $расстояние = 6000>>
#<<set $энергия = 3>>
# подготовка пространства
<<set $линия = '==={{{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}}}==='>>
<<set $линия1 = $линия>>
<<set $линия2 = $линия>>
<<set $линия3 = $линия>>
<<set $линия4 = $линия>>
<<set $линия5 = $линия>>
<<set $линия6 = $линия>>
<<set $линия7 = $линия>>
<<set $линия8 = $линия>>
# подготовка двоичных кодов линий
<<set $код = '00000000'>>
<<set $код1 = $код>>
<<set $код2 = $код>>
<<set $код3 = $код>>
<<set $код4 = $код>>
<<set $код5 = $код>>
<<set $код6 = $код>>
<<set $код7 = $код>>
<<set $код8 = $код>>
# начальная позиция звездолёта
<<set $положение = 5>>
<<set $положение_код = '00001000'>>
# запускаем движение
<<display 'Пространство'>>
<<repeat 'Пространство' 1>>

Можно ли добиться такого с новым кодом?

Неактивен

0    0    #27
11.08.2013 20:13

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

В какой-то игре я наблюдал, как прозвучал одиночный звук, и тут же прекратился, не стал играть в цикле (параграф не менялся при этом). Как такого можно добиться? С помощью $$time задавать <<noaudio>>  в какой-то момент, или ещё как?

Неактивен

0    0    #28
13.08.2013 11:55

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

Morych написал:

доделываю демку

Morych, я тоже приобщился бы, т.к. тоже встраиваю боёвку, и очень полезно посмотреть конкретный пример программирования

Неактивен

0    0    #29
19.08.2013 23:13

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

Подскажите, пожалуйста, как сделать следующее:
Есть Параграф1, в котором сначала пару секунд должен выводиться прогресс бар в виде добавляющихся точек (......), после чего выводится Параграф2.
Заранее премного благодарю!

Неактивен

1    0    #30
20.08.2013 00:43

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

Ergistal, огромное спасибо! Особенно за подробное разъяснение.
А задержка может быть меньше секунды? Скажем, полсекунды?
Уже прочитал в руководстве. Нельзя.

Отредактировано sosiskin (20.08.2013 00:49)

Неактивен

0    0    #31
10.05.2014 11:41

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Как сделать что-то или "я вот не понимаю"

Вопрос: можно ли в профессиональной версии АХМА пользоваться скриптами jQuery для оформления абзацев?
Вот такими, например.

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru