Если у Вас есть вопросы, как сделать что-то в программе или Вы не понимаете чего-то (то ли это ошибка, то ли фича и т.д.), то спрашивайте в этой теме.
Неактивен
А почему пассажи, которые выводятся по [[+|] выводятся обязательно через три звёздочки? Можно это как-нибудь опционировать?
Отредактировано sosiskin (28.07.2012 13:26)
Неактивен
1. Можно ли присваивать имя одной переменной - другой переменной? Например, $объект1 = $объект2
Просто при написании обширной работы заготовки текста удобно хранить в библиотеке с индексами, и при надобности просто присваивать нужное название переменной.
2. Можно ли в конце названия параграфа присваивать не одну, а несколько переменных? [[Текст, который будет виден | Название параграфа {$объект1 = выражение1; $объект2 = выражение2}]]
Неактивен
DoubleDragon написал:
Цитирую руководство:
Можно изменять значения нескольких объектов сразу:
{$объект1=25} {$объект2='Кирпич'} {$объект3=$объект1+10}
ок, спасибо, может я проглядел, но в онлайн хелпе я такого не видел
вообще, оглавление хелпа неплохо бы когда-нибудь с подпунктами написать, иногда очень долго листать приходится, ища нужную инфу.
Вот я по звуку хотел спросить в частности:
Звук по умолчанию играет один раз, или в цикле?
Ну, там может какой-нибудь <<cycle_sound>> макрос есть, чтоб файлик в петле игрался.
Второе - поддерживается ли OGG? У него на малых битрейтах компрессия лучше звучит, чем у МР3, и можно супермаленькими файлами оперировать, трафик мобильный экономя, опять же.
Неактивен
Вета написал:
вторая ссылка не становится видимой, хотя условие выполняется.
но стоп, условие же находится внутри цикла if-then-endif, как же оно выполнится, если условие для его выполнения не выполнено?
Неактивен
а кстати, циклы внутри циклов поддерживаются?
ну, в смысле, можно писать внутри одного <<if>> <<endif>> другие такие же циклы?
Неактивен
<<set $n++>> - это что, инкремент переменной на единицу? я о двух плюсиках нигде в хелпе не встречал упоминаний.
Неактивен
1. Можно ли при выводе таблицы убрать её контуры? То есть, чтобы только текст был виден?
2. Можно ли задавать для звукового файла опции "играть один раз" и "повторять в цикле"?
Отредактировано sosiskin (06.01.2013 22:27)
Неактивен
Кельта написал:
sosiskin, а как Вам такой вариант решения вашей проблемы? Например, если бы параграф назывался "пример"
Код:
На столе стоит [[*чайник|пример {$объект = 1}]] и [[*чашка|пример {$объект = 2}]] ---- <<if $объект eq 1>> описание чайника <<elseif $объект eq 2>> описание чашки <<else>> # пустое поле <<endif>>
Попробовал как предложила Кельта, и действительно, надобность в всплывающем контекстном меню вроде отпадает. (Единственное, добавил звёздочки перед каждой ссылкой, чтоб работало как надо.)
Неактивен
Циклы if .. else можно встраивать один внутри другого? Я попробовал, выдало syntax error.
Неактивен
WeLLWar написал:
прям царство рандома... может произойти, а может - нет...
Из своего опыта советую, во-первых, перегрузиться, и поубирать разные (ненужные) резидентные программы. Всякие виселки, майлрушки, смайлогенераторы и т.п.
Мне, по крайней мере, помогло, и заработали сочетания клавиш.
Неактивен
Вопрос по генератору случайных чисел:
если мне нужно задать промежуток для случайного числа, но не от 0 до Х, а от L>0 до Х.
Можно это сделать?
Я представляю как это сделать, скажем, на LUA, но можно ли сделать средствами АКСМА?
Отредактировано sosiskin (30.01.2013 13:10)
Неактивен
пасибо!
ещё вопрос: а можно ли выводить в столбец таблицы повторяющийся параграф (макрос <<repeat>>)?
Допустим, я планирую выводить данные о битве в двух разных столбцах. Эдакий real-time бой. Можно так пользоваться таблицей?
Отредактировано sosiskin (30.01.2013 21:21)
Неактивен
Ага, но всё равно можно же влепить параграф с таблицей в макрос <<repeat>> и обновлять в ней переменные, да?
Неактивен
Вопрос по javascript.
Нашёл очень интересные глитч-скрипты, создающие эффект сбоя монитора или графики (глитч). Вот страничка разработки, примеры можно посмотреть здесь.
Можно ли встраивать такой скрипт в АХМА? (особенно интересует Glitch Transition, вызывающий эффект лишь на какое-то время).
И можно ли присвоить ему, скажем, макрос?
Отредактировано sosiskin (01.05.2013 10:49)
Неактивен
Korwin написал:
2. А зачем глитч-эффекты в текстовом квесте? Почему нельзя сделать пару картинок и подменять их по условию?.
То-то и ценно, что глитч происходит именно с текстом, а не картинкой. Например, по сюжету вы управляете слегка неисправным роботом, система которого заражена вирусом. Время от времени текст глитчует (как экран парсера вот в этой игре).
Или (ещё лучше) сделать глитчем смену параграфов на экране. Чтобы при надобности один параграф превращался так в другой.
Отредактировано sosiskin (01.05.2013 23:15)
Неактивен
Народ, подсобите с организацией кода, пожалуйста.
Есть такая задача, похожая на АХМА игру Asteroids, но с урезанной математикой, попроще: нужно чтоб в табличном окошке с заданной скоростью падали слова из списка (по принципу звёзд в игре Asteroids, но быстрее).
Направьте мысль в нужную сторону, плиз! Очень буду благодарен. Код "астероидов" меня сбивает с толку, гуманитарий, чо. ))
Неактивен
Morych написал:
Слова из списка должны падать по одному?
Нет, в том-то и дело, нужно чтобы они падали вниз (или вверх) толпой, как старые текстовые скринсейверы, словно медленный снег из слов. Причём список хотелось бы подставлять динамически.
Я взял Астероиды, повставлял вместо символов точек и звёздочек слова. Но хочется чтобы код линий (строк) был одним, а подставлять просто из массива переменные по очереди, в каждой линии.
Как такое лучше сделать?
Отредактировано sosiskin (07.05.2013 17:02)
Неактивен
Кстати, именно для этой разработки я спрашивал про визуальные эффекты на javascript, потому как если на такой "падающий текст" натравить глитч-скрипт, получится очень интересное окошко, цветной спрайт из обычного текста.
Неактивен
Morych написал:
А пока может это натолкнёт на верный путь:
я чёто не могу понять, как сделать, чтоб целиком набор слов не виден было изначально, и чтобы они не по порядку один за другим падали по левому краю, а на разном отступе.
Может, всё-таки через списки (массив) как-то можно сделать?
В общем, я пока кое-как запилил на основе кода Астероидов, вставив туда списки.
Отредактировано sosiskin (07.05.2013 19:39)
Неактивен
Morych написал:
А как же моё предыдущее сообщение #194?
А, сорри, я страницу не рефрешил. Да, спасибо, из всех этих кусочков кода я слепил то, что надо!
Неактивен
Прошу прощения, таки ругается при запуске кода в сообщении #194.
Вот.
Неактивен
Большущее спасибо!
Кстати, за этой придумкой вспомнил про Asciimator.
Отредактировано sosiskin (08.05.2013 10:25)
Неактивен
прошу прощения, одно уточнение по "Словопаду":
Я так понял, перед тем как вызвать $input, вы останавливаете "Словопад", чтобы окно ввода не сбивалось. А почему оно сбивается и исчезает от "словопада"? Это обусловлено приростом количества строк или свойством самого окна ввода? Его никак нельзя оставить на экране при включении словопада? например, так
:: Добавить #<<if not $newWord.length>> # <<stop "Словопад2">> Новое слово: <<input "Добавить" $newWord>> <<else>>
Попробовал убрать <<stop>>, словопад сбивал поле ввода после первого цикла.
Отредактировано sosiskin (08.05.2013 23:55)
Неактивен
А где задаётся количество строк в словопаде? Как сделать их меньше и, например, сам колодец уже? Я что-то в коде не могу врубиться, где это задаётся.
Неактивен
Ух, спасибо!
Самое последнее: в начале, когда я брал за основу код Астероидов, словопад получился плотнее, т.к. там запускалось не по одному слову в строке, а по несколько.
:: 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 $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + $словосписок [2]>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + $словосписок [3]>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + $словосписок [4]>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + $словосписок [5]>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + $словосписок [6]>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + $словосписок [7]>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<set $код = $код + '0'>> <<endif>> <<random $объект = 8>> <<if $объект eq 0>> <<set $линия = $линия + '*'>> <<set $код = $код + '1'>> <<else>> <<set $линия = $линия + ' '>> <<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 = ' '>> <<endif>> <<random $объект = 9>> <<if $объект eq 0>> <<set $н2 = '•'>> <<elseif $объект eq 1>> <<set $н2 = '.'>> <<else>> <<set $н2 = ' '>> <<endif>> <<random $объект = 9>> <<if $объект eq 0>> <<set $н3 = '•'>> <<elseif $объект eq 1>> <<set $н3 = '.'>> <<else>> <<set $н3 = ' '>> <<endif>> :: Влево <<if $положение>1>> <<set $положение = $положение-1>> <<endif>> :: Вправо <<if $положение<8>> <<set $положение = $положение+1>> <<endif>> :: Вывод # положения звездолёта <<set $линия_звездолёта = ' '>> <<if $положение eq 1>> <<set $линия_звездолёта = '▲ '>> <<elseif $положение eq 2>> <<set $линия_звездолёта = ' ▲ '>> <<elseif $положение eq 3>> <<set $линия_звездолёта = ' ▲ '>> <<elseif $положение eq 4>> <<set $линия_звездолёта = ' ▲ '>> <<elseif $положение eq 5>> <<set $линия_звездолёта = ' ▲ '>> <<elseif $положение eq 6>> <<set $линия_звездолёта = ' ▲ '>> <<elseif $положение eq 7>> <<set $линия_звездолёта = ' ▲ '>> <<elseif $положение eq 8>> <<set $линия_звездолёта = ' ▲'>> <<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 $линия = '==={{{ }}}==='>> <<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>>
Можно ли добиться такого с новым кодом?
Неактивен
В какой-то игре я наблюдал, как прозвучал одиночный звук, и тут же прекратился, не стал играть в цикле (параграф не менялся при этом). Как такого можно добиться? С помощью $$time задавать <<noaudio>> в какой-то момент, или ещё как?
Неактивен
Morych написал:
доделываю демку
Morych, я тоже приобщился бы, т.к. тоже встраиваю боёвку, и очень полезно посмотреть конкретный пример программирования
Неактивен
Подскажите, пожалуйста, как сделать следующее:
Есть Параграф1, в котором сначала пару секунд должен выводиться прогресс бар в виде добавляющихся точек (......), после чего выводится Параграф2.
Заранее премного благодарю!
Неактивен
Ergistal, огромное спасибо! Особенно за подробное разъяснение.
А задержка может быть меньше секунды? Скажем, полсекунды?
Уже прочитал в руководстве. Нельзя.
Отредактировано sosiskin (20.08.2013 00:49)
Неактивен