Если у Вас есть вопросы, как сделать что-то в программе или Вы не понимаете чего-то (то ли это ошибка, то ли фича и т.д.), то спрашивайте в этой теме.
Неактивен
Такой вопрос. Вставляю вот этот код диалога (приведен в обучении):
Параграф-диалог
<<display 'Параграф-диалог'>>
<<if $диалог_персонаж eq 1>>
Реплика главного героя.
Реплика второстепенного персонажа.
[[Реплика героя, вариант 1|Параграф-диалог {$диалог_персонаж = 2}]]
[[Реплика героя, вариант 2|Параграф-диалог {$диалог_персонаж = 3}]]
<<elseif $диалог_персонаж eq 2>>
Реплика героя, вариант 1.
Реакция второстепенного персонажа.
[[Закончить разговор|Параграф-сцена {$диалог_персонаж = 4}]]
<<elseif $диалог_персонаж eq 3>>
Реплика героя, вариант 2.
Реакция второстепенного персонажа.
[[Закончить разговор|Параграф-сцена {$диалог_персонаж = 4}]]
<<elseif $диалог_персонаж eq 4>>
Реплика героя.
Второстепенный персонаж напоминает, что уже разговаривали.
[[Закончить разговор|Параграф-сцена]]
<<endif>>
У меня отображается только название диалога - Параграф-диалог и все. Что не правильно делаю?
Неактивен
Morych написал:
alfa10 написал:
У меня отображается только название диалога - Параграф-диалог и все. Что не правильно делаю?
Думаю, что не определена переменная $диалог_персонаж. Перед тем как вызывать параграф-диалог нужно задать начальное значение переменной:
<<set $диалог_персонаж = 1>>
А зачем параграф вызывается сам из себя (<<display 'Параграф-диалог'>>)?
Дык вот это именно пример из обучения. Если присваивать переменную <<set $диалог_персонаж = 1>>, то:
[[Реплика героя, вариант 1|Параграф-диалог {$диалог_персонаж = 2}]]
[[Реплика героя, вариант 2|Параграф-диалог {$диалог_персонаж = 3}]]
уже не срабатывают
Неактивен
Morych написал:
<<set $диалог_персонаж = 1>> нужно написать не в параграфе-диалоге, а в самом начале истории, в параграфе "Start".
Точняк! Все заработало! Спасибо тебе, дружище!
Неактивен
Ребят, такой вопрос: создаю книгу, вставляю в нею фотки. Потом сохраняю книгу в файл HTML. На другом компьютере запускаю этот сохраненный файл - а фоток нет. Как делать так, чтобы фотографии были в книге, даже если я смотрю файл на другом компьютере? Например, вот напишу я книгу, захочу ее сохранить в файл и отослать друзьям - а фотки получается, пропадут?
Неактивен
Morych написал:
alfa10 написал:
Ребят, такой вопрос: создаю книгу, вставляю в нею фотки. Потом сохраняю книгу в файл HTML. На другом компьютере запускаю этот сохраненный файл - а фоток нет. Как делать так, чтобы фотографии были в книге, даже если я смотрю файл на другом компьютере? Например, вот напишу я книгу, захочу ее сохранить в файл и отослать друзьям - а фотки получается, пропадут?
Картинки не встраиваются в html-файл, там только изображения кнопок. Если ты добавляешь картинки пунктом меню "Выбрать локальный файл", они копируются в папку files рядом с sm-файлом. Соответственно отсылай друзьям ещё и папку files вместе с html-файлом. Для пересылки по почте можно всё предварительно упаковать в архив.
Получается только так? А если публиковать книгу из программы в библиотеку - тогда все нормально пропишется и фотографии останутся?
И еще вопрос - почему то вставляю музыку, а она не играется на странице, хотя значок динамика отображается на странице. Код такого вида вставляю:
[[File: files/Scooter - Fire.mp3]]
Неактивен
Morych написал:
А какой браузер ты используешь, случайно не Оперу? Для неё нужен звуковой файл с таким же именем, но в формате ogg. Если вставляешь музыку в игру, придётся каждый звуковой файл в двух форматах рядышком класть mp3 и ogg, чтобы у всех проигрывалась музыка независимо от браузера.
Firefox.
А музыка будет играть только на одной странице, или пока не закрою в параграфе тег <<noaudio>>?
Неактивен
<<if $диалог eq 1>> <<clrscr>> <<random $rnd = 8>> <<set $маги = 5>> <<set $удача = $удача>> ===Ваш рейтинг удачи равен ''<<print $удача>>''===
Интересует вот эта строка из кода:
<<set $удача = $удача>>
Правильно ли я понимаю, что в этом параграфе текущий параметр удачи берется от предыдущего параметра удачи?
Неактивен
Flash написал:
alfa10, эта строчка ничего не делает. Переменная приравнивпется сама себе.
а как тогда сделать, чтобы в текущем параграфе переменная брала то значение, которое она имела до этого параграфа? Может так тогда?
<<set $удача1 = $удача>>
Неактивен
Вопросов у меня много, так что сорри. Я начинающий интерактивовод
Музыка работает если файл OGG. Разобрался. Спасибо за помощь. Теперь вопрос - а как сделать так, чтобы мелодии игрались по-очереди по ходу книги?
Еще вопрос. Вот фрагмент кода:
<<set $ясила = 3>> <<set $врагсила = 6>> <<set $жизнь = 10>> <<set $жизнь1 = 5>> <<random $кубик = 10>> <<if $кубик > ($врагсила-$ясила)>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1-1>> <<else>> <<print $я>> - <<print $жизнь-1>> <<print $враг>> -<<print $жизнь1>> <<endif>>
Как я его вижу:
даю значение силы мне - 3
даю значение силы врагу - 6
даю значение жизни себе - 10
даю значение жизни врагу - 5
даю рендомное значение кубику от 0 (или все-таки 1) до 5
если значение кубика больше значения (сила врага - моя сила) то
выводится имя переменной $я (вводил в прошлом параграфе) - выводится значение (моя жизнь) // например, Сергей - 10
выводится имя переменной $враг (вводил в прошлом параграфе) - выводится значение (жизнь врага минус 1)// например, Сергей - 4
иначе
выводится имя переменной $я (вводил в прошлом параграфе) - выводится значение (моя жизнь минус 1)
выводится имя переменной $враг (вводил в прошлом параграфе) - выводится значение (жизнь врага)
закрытие кода
Но, почему то, у меня ничего не выводится. Пишется NaN. Где моя ошибка?
Отредактировано alfa10 (30.10.2013 22:56)
Неактивен
Отлично! Все работает! Спасибо!
А что означает gte ? Значение "больше"?
Как можно сделать так, чтобы при значении параметра $жизнь - 0 бой заканчивался?
Неактивен
Ну, вот, получается видимо так:
<<set $жизнь = 1>> <<set $жизнь1 = 1>> <<random $кубик = 10>> <<if $кубик gte 3>> <<set $жизнь1 = $жизнь1 - 1>> <<if $жизнь1 lte 0>> <<goto 'GameOver1'>> <<else>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> <<endif>> <<else>> <<set $жизнь = $жизнь - 1>> <<if $жизнь lte 0>> <<goto 'GameOver'>> <<else>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> <<endif>> <<endif>>
А как зациклить код? Чтобы значения уменьшались до того момента, пока переменная жизнь не примет нулевое значение?
Отредактировано alfa10 (31.10.2013 11:28)
Неактивен
Спасибо тебе большое! очень сильно помогаешь мне И всем вам ребята - большое спасибо
А есть ли при создании книги ограничение в количестве параграфов? А то, у меня тут глобальная книга намечается
Еще вопрос - можно ли сделать, чтобы во время боя страница автоматически обновлялась, а не клацать каждый раз на продолжить?
Отредактировано alfa10 (31.10.2013 13:23)
Неактивен
В параграфе StoryAuthor вставка картинок запрещена чтоли? Хотел вставить туда текст красивого шрифта, а нифига...
Неактивен
Фух, загрузил свою первую интерактивную книгу в библиотеку. Правда, почему-то, при загрузке ругалось на музыкальный файл формата OGG. Пришлось музыку исключить из книги
Неактивен
DoubleDragon написал:
Надо было и ogg и mp3 - оба файла сделать.
А так - поздравляю с успешным дебютом!
Спасибо! А насколько он успешный - покажет время и участие в конкурсе 31
Неактивен
Просьба помочь разобраться в ошибке кода:
<<set $жизнь = $жизнь>> <<set $жизнь1 = $жизнь1>> Мое здоровье - ''<<print $жизнь>>'' Здоровье вора - ''<<print $жизнь1>>'' Вор поворачивается ко мне. Его лицо скрывает балахон. Не говоря ни слова, гость направляется на меня... <<if $успех eq 1>> [b]----------------------------------------возврат сюда[/b] [[Ударить в лицо|БойВорНеус {$успех = 2}]] [[Ударить в живот|БойВорНеус {$успех = 3}]] [[Кинуть в вора стул|БойВорНеус {$успех = 4}]] <<endif>> <<if $успех eq 2>> <<clrscr>> <<random $кубик = 6>> <<if $кубик gte 5>> Я ударяю вора в голову. Великолепный удар! <<set $жизнь1 = $жизнь1 - 3>> Мое здоровье - ''<<print $жизнь>>'' Здоровье вора - ''<<print $жизнь1>>'' <<else>> Вор ставит блок и проводит ответный удар! <<set $жизнь = $жизнь - 1>> Мое здоровье - ''<<print $жизнь>>'' Здоровье вора - ''<<print $жизнь1>>'' <<endif>> <<if $жизнь1 lte 0>> <<goto 'ОсмотретьсяЖив'>> <<else>> <<goto 'БойВорНеус' {$успех = 1}>> <<elseif $жизнь lte 0>> <<goto 'Конец1'>> <<else>> <<goto 'БойВорНеус' {$успех = 1}>> <<endif>> <<endif>>
Почему-то у меня назад не возвращает. Как можно сделать так, чтобы если жизни остаются, параграф продолжался заново с начала?
Неактивен
Вот есть код:
:: Пещера <<display 'Инвентарь0'>> Здоровье охотника - <<print $жизнь1>> Здоровье охотницы - <<print $жизнь2>> # Начало цикла <<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<elseif $жизнь1 + $жизнь2 lte 0>> <<goto 'пещера2'>> <<else>> ''Выберите действие против охотника:'' # Магия огня <<if $мана gte 3>> [[Огонь I (шанс 50%, урон 20, мана - 3)|Пещера1 {$действие = 2}]] <<endif>> # Магия огня [[Бросить камень (шанс 20%, урон - 30)|Пещера1 {$действие = 3}]] [[Ударить рукой (шанс 50%, урон - 10)|Пещера1 {$действие = 4}]] [[Бросить ногой (шанс 50%, урон - 10)|Пещера1 {$действие = 5}]] <<endif>> # Начало цикла
Получается так: мой герой бьется против двух врагов. Хочу, чтобы при гибели первого врага шло сражение с другим врагом. Но при гибели одного из врагов игра виснет. Полагаю, что из-за:
вот этой записи в коде
<<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<elseif $жизнь1 + $жизнь2 lte 0>> <<goto 'пещера2'>> <<else>>
Я вижу ее так: если моя жизнь меньше или равна 0, то идем в параграф "Конец". Если жизнь противника1 меньше или равна 0, то продолжаем бой. Если жизнь противника2 меньше или равно 0, то продолжаем бой. Если жизни соперников 1 и 2 вместе меньше или равны 0 (т.е. обо уничтожены), то переходим в параграф "Пещера 2"
Неактивен
Не, чет не то... если прописываю так:
<<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif ($жизнь1 lte 0) and ($жизнь2 lte 0)>> <<goto 'пещера2'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<else>>
то игра виснет... Да и получается, если убивают врага (жизнь1, например), а второй жив, то получается первый опять ходит, даже если он мертв уже
P.S. Все, разобрался в коде... Пришлось упростить боевку (хотел, чтобы по очереди атаковался сперва первый враг, затем второй). Сделал, что сам выбираю кого атаковать
Отредактировано alfa10 (08.11.2013 22:42)
Неактивен
Хочу сделать программу, где при вводе улицы и номера дома выдается наименование района. Получается, в одном параграфе нужно ввести нечто типа:
<<input '0' $адрес>>
В параграфе 0 нужно прописать некий код:
<<if $адрес eq '12марта130'>> <<set $адрес = 1>> <<elseif $адрес eq 'калинина215'>> <<set $адрес = 2>> <<endif>> <<goto '2'>>
где на выводе (параграф 2) уже есть код:
<<if $адрес eq 1>> Черемушки <<elseif $адрес eq 2>> Вокзал <<else>> Район не определен! <<endif>>
Так все работает! А как сделать, чтобы не прописывать каждый номер дома на улице, а сделать например, чтобы улица Калинина от 1 до 50 автоматически попадала под район Возкал?
Отредактировано alfa10 (13.11.2013 12:28)
Неактивен
Спасибо! Еще б расшифровал бы код - вообще круто было бы
Неактивен
Ребята, задумал сделать интерактивную игру про биатлон Пока не могу понять следующий момент как реализовать: спортсмены бегут спринт, у каждого свое время, финишируют, им присваивается их результат (время) - тут все понятно как делается, но... как сделать так, чтобы после финиша программа считала, у кого из спортсменов результат лучше, у кого хуже? Например, спортсмен А прошел трассу за 5 минут 10 секунд, спортсмен Б - за 5 минут 14 секунд, спортсмен В - за 4 минуты 59 секунд. Должно быть на финише так - первым будет В, вторым А, третьим - Б. Как сделать, чтобы программа считала места по результатам?
Неактивен
Morych, а можно расшифровку? Результаты будут заноситься не рандомные. Одинаковых результатов не будет, так что все норм.
Не пойму, что означает в коде параметр "i" и "$place.push".
И вот эта часть кода не ясна мне:
<<loop $place.length>>
<<set $position = $place[$i].split('|')>>
<<print ($i + 1)>> - <<print $position[1]>> (<<print $position[0]>>)
<<set $i++>>
<<endloop>>
Отредактировано alfa10 (31.12.2014 12:01)
Неактивен
Чуть-чуть въехал. А вот смотри, к примеру, имеем два спортсмена (вводим переменные $имя и $имя1). Один прошел трассу за 70 ходов, а второй за 64 хода.
<<set $имя = Вася>>
<<set $имя1 = Петя>>
<<set $счетчик_хода_имя = 0>> #персональный счетчик хода спортсмена Васи
<<set $счетчик_хода_имя1 = 0>> #персональный счетчик хода спортсмена Пети
...
:: В след. параграфе получаем финишные значения:
<<set $счетчик_хода_имя = 70>>
<<set $счетчик_хода_имя = 64>>
Теперь надо чтобы выдало результаты по местам: 1 место - получается занял второй спортсмен (Петя), 2 место - первый спортсмен (Вася).
Неактивен
Делаю так:
: Начало
<<set $имя = 'Вася'>>
<<set $имя1 = 'Петя'>>
<<set $счетчик_хода_имя = 0>>
<<set $счетчик_хода_имя1 = 0>>
[[Ход игрока|Просчет]]
: Просчет
<<random $кубик = 50>>
<<set $счетчик_хода_имя = $счетчик_хода_имя + $кубик>>
[[Ход соперника|Просчет соперника]]
: Просчет соперника
<<random $кубик = 50>>
<<set $счетчик_хода_имя1 = $счетчик_хода_имя1 + $кубик>>
[[Финиш|Финиш]]
: Финиш
А как тут код прописать?
И еще нужно, чтобы разница, полученная между числами плюсовалась в след. параграфе к значению $счетчик_хода_имя. Например, Петя прошел гонку за 64 хода, а Вася за 70. Разница между ними равна 6. Значит в след. параграфе у Пети будет к счетчику хода прибавлено значение 6, а у Васи это значение будет равно 0.
Неактивен