мне кажется, что здесь
<<set $random $a0 = 3>> - выбирается с кем играли. ---->>> ошибка
ни как не могу врубиться в следующее:
- что означает объект и рядом с ним []. например - $match[3]
- если возможно для чайника объясните по -шагово... я не понимаю, почему ставятся те или иные числа (((
Да, разумеется ошибка. Надо было хоть разок глазами пробежать.
<<random $a0 = 3>> - Так правильно.
Неактивен
Flash написал:
alfa10, эта строчка ничего не делает. Переменная приравнивпется сама себе.
а как тогда сделать, чтобы в текущем параграфе переменная брала то значение, которое она имела до этого параграфа? Может так тогда?
<<set $удача1 = $удача>>
Неактивен
Max написал:
что означает объект и рядом с ним []. например - $match[3]
Это означает, что объект $match является списком (одномерным массивом), а $match[3] - это элемент списка с индексом 3. Как верно подметил Flash, можно почитать в руководстве пользователя про списки.
Вообще мне кажется, в примере Oldrik'а можно вполне обойтись без списков, заменив их на простые объекты. Например, вместо $match[3] --> $сколькоЗабилГГ
Неактивен
alfa10 написал:
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)
Неактивен
<<set $ясила = 3>>
<<set $врагсила = 6>>
<<set $жизнь = 10>>
<<set $жизнь1 = 5>>
<<random $кубик = 10>>
<<if $кубик gte ($врагсила-$ясила)>>
<<set $жизнь1 = $жизнь1 - 1>>
<<print $я>> - <<print $жизнь>>
<<print $враг>> - <<print $жизнь1>>
<<else>>
<<set $жизнь = $жизнь - 1>>
<<print $я>> - <<print $жизнь>>
<<print $враг>> - <<print $жизнь1>>
<<endif>>
Так должно работать.
Ошибка в <<print $жизнь-1>>. Print служит для вывода значения объекта, а не его изменения.
Неактивен
alfa10 написал:
Теперь вопрос - а как сделать так, чтобы мелодии игрались по-очереди по ходу книги?
Если есть несколько мелодий и нужно, чтобы они игрались друг за другом независимо от параграфа, можно соединить их в один файл. Правда он будет загружаться некоторое, возможно, продолжительное время.
Неактивен
alfa10 написал:
А что означает gte ? Значение "больше"?
gte = Greater Than or Equals - больше либо равно. Лучше используй в макросах if именно такие, буквенные операторы.
alfa10 написал:
Как можно сделать так, чтобы при значении параметра $жизнь - 0 бой заканчивался?
Ещё один макрос if. Попробуй так:
<<if $жизнь lte 0>> (меньше либо равно)
<<goto 'ГеймОвер'>> (переход на другой параграф)
<<endif>>
Неактивен
Ну, вот, получается видимо так:
<<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 написал:
А как зациклить код? Чтобы значения уменьшались до того момента, пока переменная жизнь не примет нулевое значение?
Допустим, сражение у нас в параграфе "Битва". Начальное значение жизней нужно установить до этого параграфа:
:: Параграф_до_битвы <<set $жизнь = 7>> <<set $жизнь1 = 6>> Внезапно путь преграждает <<print $враг>>! <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> [[Начать битву|Битва]] [[Убежать|Бегство]] :: Битва <<random $кубик = 10>> <<if $кубик gte 3>> <<print $я>> наносит удар! <<set $жизнь1 = $жизнь1 - 1>> <<else>> <<print $враг>> наносит удар! <<set $жизнь = $жизнь - 1>> <<endif>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> <<if $жизнь lte 0>> <<print $я>> падает на землю без чувств... [[Это конец|GameOver]] <<elseif $жизнь1 lte 0>> <<print $враг>> падает на землю, путь свободен! [[Праздновать победу|Победа]] <<else>> [[Продолжать битву|Битва]] [[Убежать|Бегство]] <<endif>>
Лучше зацикливать так, на ссылках, чтобы у игрока создавалось ощущение, что он на что-то влияет.
Неактивен
Спасибо тебе большое! очень сильно помогаешь мне И всем вам ребята - большое спасибо
А есть ли при создании книги ограничение в количестве параграфов? А то, у меня тут глобальная книга намечается
Еще вопрос - можно ли сделать, чтобы во время боя страница автоматически обновлялась, а не клацать каждый раз на продолжить?
Отредактировано alfa10 (31.10.2013 13:23)
Неактивен
Ограничений на количество параграфов нет.
А для автообновления параграфа рекомендую использовать макрос <<repeat>> (см. мануал).
Неактивен
alfa10 написал:
Спасибо тебе большое! очень сильно помогаешь мне И всем вам ребята - большое спасибо
Пожалуйста
alfa10 написал:
Еще вопрос - можно ли сделать, чтобы во время боя страница автоматически обновлялась, а не клацать каждый раз на продолжить?
Как заметил DD, можно через макрос repeat:
:: Параграф_до_битвы ... [[Начать битву|НачалоБитвы]] (всё то же самое кроме этой строчки) :: НачалоБитвы <<repeat 'Битва' 2>> (здесь число - это время обновления в секундах) <<display 'Битва'>> (сразу показываем параграф "Битва", чтобы не ждать первый раз) :: Битва <<clrscr>> (в самом начале очищаем экран, если не очищать - будет "лог" битвы) <<random $кубик = 10>> <<if $кубик gte 3>> <<print $я>> наносит удар! <<set $жизнь1 = $жизнь1 - 1>> <<else>> <<print $враг>> наносит удар! <<set $жизнь = $жизнь - 1>> <<endif>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> <<if $жизнь lte 0>> <<print $я>> падает на землю без чувств... <<stop 'Битва'>> (битва окончена - останавливаем авто обновление) [[Это конец|GameOver]] <<elseif $жизнь1 lte 0>> <<print $враг>> падает на землю, путь свободен! <<stop 'Битва'>> (и в этом случае тоже останавливаем) [[Праздновать победу|Победа]] <<endif>>
И да, Руководство пользователя AXMA Story Maker - очень хорошая вещь, рекомендую!
Неактивен
Господа, а есть ли возможность на этом движке запилить рогалик? Я в программирование не силен, поэтому у меня даже нет особых идей по алгоритму передвижения героя-символа по пустому полю.
Неактивен
NeoMatrix777 написал:
Господа, а есть ли возможность на этом движке запилить рогалик? Я в программирование не силен, поэтому у меня даже нет особых идей по алгоритму передвижения героя-символа по пустому полю.
Ну а что, списки и циклы есть, моноширинный шрифт есть - значит теоретически возможно Только карта будет монохромной, разве что некоторые объекты на карте будут ссылками. Ещё один нюанс: на мелких экранах мобильных устройств карта может отображаться неверно из-за переносов строк (но в меню можно попробовать изменить размер шрифта). А идея алгоритма передвижения проста: у героя есть координаты X и Y. Если герой идёт на север или юг, изменяем вертикальную координату, на запад или восток - горизонтальную. Заодно с изменением координаты проверяем границы окна и карты, наличие на пути непроходимых объектов, затем перерисовываем карту.
Неактивен
Вот ковырялся ковырялся, пытаясь сгенерировать футбольный матч и получилось так:
:: матч
<<set $ком_ГГ = ['Барса',20]>>
<<set $ком = ['Атлетико',15]>>
<<random $гол1 = 2>>
<<random $гол2 = 2>>
<<random $rnd = 99>>
<<if $rnd lt 50 + ($ком_ГГ[1] - $ком[1]) * 5>>
<<set $гол1 = $гол1 + $гол2>>
<<else>>
<<set $гол2 = $гол2 + $гол1>>
<<endif>>
''===результат матча===''
===<<print $гол1>> : <<print $гол2>>===
===<<print $ком_ГГ[0]>> : <<print $ком[0]>>===
<<if $гол1 gt $гол2>>
Победили хозяева
<<elseif $гол1 eq $гол2>>
у нас ничья
<<elseif $гол1 lt $гол2>>
Хозяева проиграли
<<endif>>
[[узнать результаты ГГ|забил гг]]
:: забил гг
<<set $ГГ = 10>>
<<random $игра_ГГ = 9>>
<<if $ГГ lte 9 and $игра_ГГ lte 7>>
<<set $голГГ = 0>>
<<elseif $ГГ gte 9 and $ГГ lte 7 and $ком_ГГ[1] eq 1>>
<<set $голГГ = 0>>
<<elseif $ГГ gte 9 and $ГГ gt 8 and $ком_ГГ[1] gt 1>>
<<set $голГГ = $гол1>>
<<endif>>
''===результат игрока===''
<<if $голГГ eq 0>>
игрок не забил
<<elseif $голГГ eq $гол1>>
игрок забил <<print $голГГ>> голов
<<endif>>
... все равно меня как-то это не устраивает... хочется, чтобы в данный на команду было и атака и защита и мораль... и чтобы эти показатели как-то влияли на матч... также и по игроку...
Неактивен
Oldrik написал:
А ещё ТриДэ, стотыщь полигонов только на мяч, фото текстуры и Лондонский Симфонический на подпевке. Начинай с малого, с чем-то большим ты перегоришь раньше времени.
все таки хочется сделать игру от первого лица и чтобы именно он влиял на игру, а не из результатов игры высчитывать сколько он забил...
А так согласен - лучше начинать с малого)))
Неактивен
подскажите, как понимать эту запись
<<random $гол1 = 2>>
<<random $гол2 = 2>>
<<random $rnd = 99>>
<<if $rnd lt 50 + ($ком_ГГ[1] - $ком[1]) * 5>>
особенно последняя строчка...
я хочу использовать силу атаки и силу защиты, так, чтобы атака слабее имела меньше вероятности пробиться через сильную защиту
пробую так, но все равно криво(((
<<set $ком_ГГ = ['Барса',90,70]>>
<<set $ком = ['Атлетико',70,60]>>
<<random $гол1 = 2>>
<<random $гол2 = 2>>
<<random $rnd = 99>>
<<if $rnd lt 50 + ($ком_ГГ[1] - $ком[2]) * 5>>
<<set $гол_ком_ГГ = $гол1 + $гол2>>
<<else>>
<<set $гол_ком_ГГ = 0>>
<<endif>>
<<random $rnd1 = 99>>
<<if $rnd1 lt 50 + ($ком[1] - $ком_ГГ[2]) * 5>>
<<set $гол_ком = $гол1 + $гол2>>
<<else>>
<<set $гол_ком = 0>>
<<endif>>
почему-то не получается ((( вообще ничего не высвечивается(((
Отредактировано Max (01.11.2013 16:03)
Неактивен
Max написал:
подскажите, как понимать эту запись
<<random $гол1 = 2>>
<<random $гол2 = 2>>
<<random $rnd = 99>>
<<if $rnd lt 50 + ($ком_ГГ[1] - $ком[1]) * 5>>
особенно последняя строчка...
Ну <<random $rnd = N>> означает случайное целое число от 0 до N включительно.
Рандом от 0 до 99 я использую, когда известна вероятность какого-то события, и надо определить, произошло ли событие:
<<random $rnd = 99>>
<<if $rnd lt M>>
# Событие произошло!
<<endif>>
где M - это вероятность события в процентах (от 0 до 100).
Теперь, допустим, если силы команд равны, то вероятность победы первой команды = 50%. Иначе разница в силе команд на 1 изменяет вероятность победы/поражения на 5%. Соответственно, если первая команда сильнее хотя бы на 10, вероятность её победы = 100%.
Попробуй просто перед матчем рассчитывать общую "силу" команды. А вот сила в данном случае уже зависит от атаки, защиты, и морали (дома играем или в гостях).
Неактивен
Morych написал:
Попробуй просто перед матчем рассчитывать общую "силу" команды. А вот сила в данном случае уже зависит от атаки, защиты, и морали (дома играем или в гостях).
тогда каждый раз выбирая команду, нужно в ручную прописывать влияние Ат, Защ, Мор на СИЛУ???
Неактивен