Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #76
29.10.2013 12:38

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Точняк! Все заработало! Спасибо тебе, дружище!

Обращайся! smile

alfa10 написал:

Дык вот это именно пример из обучения.

Я вот заглянул в учебник, и там на самом деле <<display 'Заголовок'>> wink

Неактивен

0    0    #77
29.10.2013 22:39

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Ребят, такой вопрос: создаю книгу, вставляю в нею фотки. Потом сохраняю книгу в файл HTML. На другом компьютере запускаю этот сохраненный файл - а фоток нет. Как делать так, чтобы фотографии были в книге, даже если я смотрю файл на другом компьютере? Например, вот напишу я книгу, захочу ее сохранить в файл и отослать друзьям - а фотки получается, пропадут?

Картинки не встраиваются в html-файл, там только изображения кнопок. Если ты добавляешь картинки пунктом меню "Выбрать локальный файл", они копируются в папку files рядом с sm-файлом. Соответственно отсылай друзьям ещё и папку files вместе с html-файлом. Для пересылки по почте можно всё предварительно упаковать в архив.

Неактивен

0    0    #78
30.10.2013 00:33

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Получается только так? А если публиковать книгу из программы в библиотеку - тогда все нормально пропишется и фотографии останутся?

Когда будешь публиковать в библиотеку, редактор закачает все картинки и музыку на сайт, и у всех будет всё отображаться (при условии подключения к Интернету smile)

alfa10 написал:

И еще вопрос - почему то вставляю музыку, а она не играется на странице, хотя значок динамика отображается на странице. Код такого вида вставляю:

Код:

[[File: files/Scooter - Fire.mp3]]

А какой браузер ты используешь, случайно не Оперу? Для неё нужен звуковой файл с таким же именем, но в формате ogg. Если вставляешь музыку в игру, придётся каждый звуковой файл в двух форматах рядышком класть mp3 и ogg, чтобы у всех проигрывалась музыка независимо от браузера.

Неактивен

0    0    #79
30.10.2013 15:54

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Max написал:

что означает объект и рядом с ним []. например - $match[3]

Это означает, что объект $match является списком (одномерным массивом), а $match[3] - это элемент списка с индексом 3. Как верно подметил Flash, можно почитать в руководстве пользователя про списки.
Вообще мне кажется, в примере Oldrik'а можно вполне обойтись без списков, заменив их на простые объекты. Например, вместо $match[3] --> $сколькоЗабилГГ

Неактивен

0    0    #80
30.10.2013 15:59

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Flash написал:

alfa10,  эта строчка ничего не делает. Переменная приравнивпется сама себе.

а как тогда сделать, чтобы в текущем параграфе переменная брала то значение, которое она имела до этого параграфа? Может так тогда?

Код:

<<set $удача1 = $удача>>

Все переменные глобальные. Т.е. если задать значение переменной на одном параграфе, на всех следующих параграфах переменная сохранит это значение. До тех пор пока ты не перезапустишь игру.

Неактивен

0    0    #81
31.10.2013 10:54

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Теперь вопрос - а как сделать так, чтобы мелодии игрались по-очереди по ходу книги?

Если есть несколько мелодий и нужно, чтобы они игрались друг за другом независимо от параграфа, можно соединить их в один файл. Правда он будет загружаться некоторое, возможно, продолжительное время.

Неактивен

0    0    #82
31.10.2013 11:04

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

А что означает gte ? Значение "больше"?

gte = Greater Than or Equals - больше либо равно. Лучше используй в макросах if именно такие, буквенные операторы.

alfa10 написал:

Как можно сделать так, чтобы при значении параметра $жизнь - 0 бой заканчивался?

Ещё один макрос if. Попробуй так:

<<if $жизнь lte 0>> (меньше либо равно)
<<goto 'ГеймОвер'>> (переход на другой параграф)
<<endif>>

Неактивен

0    0    #83
31.10.2013 12:02

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

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>>

Лучше зацикливать так, на ссылках, чтобы у игрока создавалось ощущение, что он на что-то влияет.

Неактивен

0    0    #84
31.10.2013 15:07

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Спасибо тебе большое! очень сильно помогаешь мне smile И всем вам ребята - большое спасибо

Пожалуйста smile

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 - очень хорошая вещь, рекомендую! wink

Неактивен

0    0    #85
01.11.2013 10:12

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

NeoMatrix777 написал:

Господа, а есть ли возможность на этом движке запилить рогалик? Я в программирование не силен, поэтому у меня даже нет особых идей по алгоритму передвижения героя-символа по пустому полю.

Ну а что, списки и циклы есть, моноширинный шрифт есть - значит теоретически возможно smile Только карта будет монохромной, разве что некоторые объекты на карте будут ссылками. Ещё один нюанс: на мелких экранах мобильных устройств карта может отображаться неверно из-за переносов строк (но в меню можно попробовать изменить размер шрифта). А идея алгоритма передвижения проста: у героя есть координаты X и Y. Если герой идёт на север или юг, изменяем вертикальную координату, на запад или восток - горизонтальную. Заодно с изменением координаты проверяем границы окна и карты, наличие на пути непроходимых объектов, затем перерисовываем карту.

Неактивен

0    0    #86
01.11.2013 17:24

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

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%.

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

Неактивен

0    0    #87
02.11.2013 17:03

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Max написал:

тогда каждый раз выбирая команду, нужно в ручную прописывать влияние Ат, Защ, Мор на СИЛУ???

Морыч категорически одобряет параметр "Мор" smile
Вручную не надо, формула же будет. Только нужно определиться с диапазоном изменения Атк, Защ и Мор. Например, от 1 до 10.
Тогда можно, к примеру, так:

Код:

<<if команда1_играет_дома>>
    <<set $K = 1>> (коэф. влияния морали)
<<else>>
    <<set $K = 0.5>>
<<endif>>
<<set $Сила1 = Math.round(Math.max(1, $Атк1 - $Защ2 + $Мор1 * $К))>> (при помощи max ограничиваем силу, чтобы не получилась меньше 1, round - округление до целого)
<<set $Сила2 = Math.round(Math.max(1, $Атк2 - $Защ1 + $Мор2 * (1.5 - $К)))>> (если первая команда играет у себя, то вторая в гостях, и наоборот)

Получается, Сила может принимать значения от 1 до 19, а разница сил от -18 до 18. Значит условие для определения победителя немного изменится:

<<random $rnd = 99>>
<<if $rnd lt 50 + ($Сила1 - $Сила2) * 2.6>>

Т.о. при самом лучшем раскладе шанс победы 96.8%, оставшиеся проценты - шанс критической неудачи. То же самое и с критическим успехом при наихудшем раскладе.

Неактивен

0    0    #88
02.11.2013 17:22

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

NeoMatrix777 написал:

То, что требуется система координат - достаточно естественно. Однако каким более конкретным образом она пилиться? Я вот думал как-нибудь через массивы, но чего-то ни к чему толковому не пришел...

Через массивы, всё верно, массивы строк. Например, в цикле вывести все строки массива карты до координаты Y гг. Затем выводим часть строки до координаты X, рисуем @ (гг), выводим оставшуюся часть строки, затем выводим оставшиеся строки карты.

Неактивен

0    0    #89
05.11.2013 10:18

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Просьба помочь разобраться в ошибке кода:
Почему-то у меня назад не возвращает. Как можно сделать так, чтобы если жизни остаются, параграф продолжался заново с начала?

Давай попробуем разобраться, но сначала небольшая работа над ошибками smile Читай закомментированные строки (после символа #)

Код:

<<set $жизнь = $жизнь>>
<<set $жизнь1 = $жизнь1>>

# Две верхние строчки не нужны

Мое здоровье - ''<<print $жизнь>>''
Здоровье вора - ''<<print $жизнь1>>''
Вор поворачивается ко мне. Его лицо скрывает балахон.  Не говоря ни слова, гость направляется на меня...
<<if $успех eq 1>>
    [[Ударить в лицо|БойВорНеус {$успех = 2}]]
    [[Ударить в живот|БойВорНеус {$успех = 3}]]
    [[Кинуть в вора стул|БойВорНеус {$успех = 4}]]
<<endif>>

# Советую выделять внутренности блока if-endif
# при помощи табуляции, код будет легче читать

<<if $успех eq 2>>
    <<clrscr>>
    <<random $кубик = 6>>
    <<if $кубик gte 5>>
        Я ударяю вора в голову. Великолепный удар!
        <<set $жизнь1 = $жизнь1 - 3>>
        Мое здоровье - ''<<print $жизнь>>''
        Здоровье вора - ''<<print $жизнь1>>''
    <<else>>
        Вор ставит блок и проводит ответный удар!
        <<set $жизнь = $жизнь - 1>>
        Мое здоровье - ''<<print $жизнь>>''
        Здоровье вора - ''<<print $жизнь1>>''
    <<endif>>

    # Выше дважды написано одно и то же (про жизни гг и противника)
    # такого быть не должно. Лучше вынести эти две строки за endif,
    # вот прям сюда

    <<if $жизнь1 lte 0>>
        <<goto 'ОсмотретьсяЖив'>>    
    <<else>>
        <<goto 'БойВорНеус' {$успех = 1}>>    
    <<elseif $жизнь lte 0>>
        <<goto 'Конец1'>>
    <<else>>
        <<goto 'БойВорНеус' {$успех = 1}>>    
    <<endif>>

    # Программа никогда не дойдёт до двух нижних goto,
    # поскольку при истинности первого условия выполнится первый goto,
    # а второй goto выполнится во всех остальных случаях.
    # В блоке if-endif внутри может быть сколько угодно elseif,
    # но всегда только один else, причём стоять он должен самым последним!

<<endif>>

Неактивен

0    0    #90
14.11.2013 11:58

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

alfa10 написал:

Спасибо! Еще б расшифровал бы код - вообще круто было бы smile

Этот код разбивает введённую строку $адрес на две строки: $улица и $дом. Разделение строк происходит в цикле посимвольно: до запятой - собирается название улицы, после запятой - номер дома.

Есть другой способ сделать то же самое:

Код:

:: vvod
Введите адрес:
<<input '0' $адрес>>

:: 0
<<set $адрес = $адрес.replace(/ /g,"").toLowerCase()>> ---- удалить все пробелы из строки $адрес, преобразовать в нижний регистр
<<set $улица = "">>
<<set $дом = "">>
<<set $i = $адрес.indexOf(",")>> ---- индекс первой запятой в строке $адрес
<<if $i gt -1>> ---- если есть запятая
    <<set $улица = $адрес.substr(0, $i)>> ---- название улицы - это часть строки до запятой
    <<set $дом = $адрес.substr($i + 1)>> ---- номер дома - часть строки после запятой
<<endif>>
Улица: <<print $улица>>;
Дом: <<print $дом>>;

Неактивен

0    0    #91
15.11.2013 09:50

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Отличный баг выловил! Спасибо!

Неактивен

0    0    #92
17.01.2014 14:19

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Прикольно smile Может ты ещё что-нибудь сделал из ToDo незаметно для себя, а никто кроме Flash'а и не знает? smile

Неактивен

0    0    #93
01.02.2014 02:14

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Delakha написал:

Условие: есть три навыка (Навык Тяжелого оружия ближнего боя, Легкого оружия ближнего боя и Оружия дальнего боя). Есть один дар и два таланта, которым можно придать значение навыка. Дар и талант не могут быть обозначены одним навыком, как и два таланта. Если обозначить навык как дар, то возможность выбрать как талант исчезнет. Однако если выбрать даром другой навык, то возможность опять появится. С талантами то же самое. Если выбрать один для навыка, возможность выбрать этот навык вторым талантом должна исчезнуть.

Я тут покрутил немного, и получилось вот что:

Код:

:: Start
<<display 'Объекты'>>
[[Навыки]]


:: Объекты
<<set $навык = "">>
<<set $нет = "нет">>
<<set $дар = $нет>>
<<set $талант1 = $нет>>
<<set $талант2 = $нет>>
<<set $выбрано = 0>>


:: Навыки
<<if ($выбрано neq 1) and ($дар eq $навык)>>
    <<set $дар = $нет>>
<<endif>>
<<if ($выбрано neq 2) and ($талант1 eq $навык)>>
    <<set $талант1 = $нет>>
<<endif>>
<<if ($выбрано neq 3) and ($талант2 eq $навык)>>
    <<set $талант2 = $нет>>
<<endif>>
Дар: <<print $дар>>
Талант первый: <<print $талант1>>
Талант второй: <<print $талант2>>
[[Тяжёлое оружие ближнего боя|ОписаниеНавыков {$навык = "тяжёлое оружие"}]]
[[Лёгкое оружие ближнего боя|ОписаниеНавыков {$навык = "лёгкое оружие"}]]
[[Оружие дальнего боя|ОписаниеНавыков {$навык = "дальнее оружие"}]]


:: ОписаниеНавыков
<<if $навык eq "тяжёлое оружие">>
    Описание навыка «Тяжёлое оружие».
<<elseif $навык eq "лёгкое оружие">>
    Описание навыка «Лёгкое оружие».
<<else>>
    Описание навыка «Дальнее оружие».
<<endif>>
<<if $навык neq $дар>>
    [[Выбрать как дар|Навыки {$дар = $навык} {$выбрано = 1}]]
<<endif>>
<<if ($навык neq $талант1) and ($навык neq $талант2)>>
    <<if ($талант1 eq $нет) or ($талант2 neq $нет)>>
        [[Выбрать как талант|Навыки {$талант1 = $навык} {$выбрано = 2}]]
    <<else>>
        [[Выбрать как талант|Навыки {$талант2 = $навык} {$выбрано = 3}]]
    <<endif>>
<<endif>>
[[Назад|Навыки {$навык = ""}]]

Посмотрите, правильно ли работает.

У вас, я заметил, отсутствует закрывающая скобка в таких условиях:
<<elseif $дар neq 'тяжелое оружие' and (!$талант2 or $талант2 neq 'тяжелое оружие' and $талант1>>

Неактивен

0    0    #94
03.02.2014 15:50

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Из учебника:

В самом начале истории мы создадим объект «$селение», в котором будем запоминать номер описания сцены «Старое селение». Первоначально значение объекта «$селение» будет равно 1.

Т.е. в параграфе Start нужно написать:
<<set $селение = 1>>
Этой командой мы явно задаём начальное значение объекта. Если этого не сделать, значение объекта будет неопределённым (undefinied).
В учебнике все начальные значения объектов задаются в специальном параграфе "Создание объектов", который вызывается во вступлении. Смотрите главу "Инициализация объектов" в четвёртой части.

Неактивен

0    0    #95
07.02.2014 09:43

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Собственно, дело именно в этом. Если копировать из редактора, то не выходит, а если открыть файл sm в блокноте и скопировать оттуда, то все отлично.
(В окошке онлайн конструктора так и написано: скопируйте исходный текст из файла *.sm)

Неактивен

1    0    #96
13.02.2014 10:36

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Привет! Просить прощения не нужно, это специальная тема для вопросов и ответов smile Программа работает совсем не странно, а вполне себе логично. Параграф «Установка объектов» выполнился один раз и всё. Чтобы какой-то код выполнился ещё раз, соответствующий параграф нужно вызвать (макросом <<display>>, <<goto>> или перейти в параграф по ссылке). Предлагаю перенести проверку профессии в новый параграф «Увеличение возраста», и написать там так:

Код:

<<set $время = $время + 1>>
<<If $кузнец>>
    <<set $сила = $сила + 1>>
<<elseIf $библиотекарь>>
    <<set $интеллект = $интеллект + 1>>
<<endIf>>
<<goto 'Основной параграф'>>

Конечно же из параграфа «Установки объектов» этот кусок кода надо убрать, т.к. ни одна из проверок там не работает (и $кузнец и $библиотекарь = false).

А в «Основном параграфе» внизу напишем так:
[[Повзрослеть|Увеличение возраста]]

П.С. И ещё один момент, относящийся к стилю программирования. Если мы проверяем логическую переменную на истинность, то пишем просто <<if $объект>>, если на ложность, то <<if not $объект>> или <<if !$объект>>.

Неактивен

0    0    #97
13.02.2014 11:25

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Нене, я про проверку значения объектов, которые используются для хранения исключительно true либо false. В остальных случаях лучше использовать eq, чтобы код легче читался.

Неактивен

0    0    #98
13.02.2014 12:29

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Пожалуйста! Обращайтесь, если что smile

Неактивен

0    0    #99
24.02.2014 10:07

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Вета, прошу прощения за поздний ответ, праздники, сама понимаешь. Собственно вот:

Код:

:: Start
[[Старт|параграф 1]]

:: параграф 1
<<display 'инт'>>
Текст, текст, текст...
[[Идти в 2|параграф 2]]

:: параграф 2
<<display 'инт'>>
Текст 2, текст 2, текст 2...
[[Идти в 1|параграф 1]]

:: инвентарь
<<display 'инт'>>
Список предметов...

:: инт
<<if $$title neq "инвентарь">>
    ===Главная || [[Инвентарь|инвентарь {$passage = $$title}]]===
<<else>>
    ===[[Главная|$passage]] || Инвентарь===
<<endif>>

Неактивен

0    0    #100
24.02.2014 13:55

Morych
Модератор (+67, -8)
Откуда: Гродно
Зарегистрирован: 05.07.2012
Сообщений: 523
Вебсайт

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

Вета написал:

И еще, как мне в инвентаре сделать проверку такого вида:

предмет - НИТКИ (ссылка)

Щелкаем по ниткам.

Если локация=1, то переходим на эту локацию и там появляется ссылка "Использовать нитки"

иначе

появляется надпись в инвентаре: "Нитки тут не применимы".

Вот попробуй так:

Код:

:: Start
<<fade = 500>>
<<set $item = "">>
<<set $nitki = 1>>
[[Старт|параграф 1]]

:: параграф 1
<<display 'инт'>>
Тут нет ничего интересного. Только дверь в другую комнату.
[[Идти в другую комнату|параграф 2]]
<<display 'предметы'>>

:: параграф 2
<<display 'инт'>>
Здесь стоит швейная машинка.<<if $nitki eq 2>> Вы заправили в машинку свои нитки. Осталось найти занавеску и можно сшить плащ.<<endif>>
[[Вернуться в пустую комнату|параграф 1]]
<<display 'предметы'>>

:: инт
<<if $$title neq "инвентарь">>
    ===Главная || [[Инвентарь|инвентарь {$passage = $$title}]]===
<<else>>
    ===[[Главная|$passage]] || Инвентарь===
<<endif>>

:: инвентарь
<<display 'инт'>>
Содержимое карманов:
<<if $nitki eq 1>>
    * [[Нитки|$passage {$item = "нитки"}]]
<<endif>>
<<if (not $use) and ($item neq "")>>
    Вы не представляете, как здесь можно использовать <<print $item>>.
<<endif>>
<<set $item = "">>

:: предметы
<<set $use = false>>
<<if $item eq "нитки">>
    <<if $passage eq "параграф 2">>
        [[Заправить нитки в машинку|$passage {$nitki = 2}]]
        <<set $use = true>>
    <<endif>>
<<endif>>
<<if (not $use) and ($item neq "")>>
    <<goto 'инвентарь'>>
<<else>>
    <<set $item = "">>
<<endif>>

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru