Игра на Twine Sugarcube или 1000 и 1 страдание (инструкция для начинающих) Часть 4.
Делаем первые квесты и обустраиваем наш дом и город. Учимся работать с изображениями. А также даем персонажу работу и усталость.
ИСПЫТАНИЕ И ВЕДЬМА
Поскольку первый этаж имеет свой целью ознакомительный фрагмент, то я придумал персонажа – Ведьму, которая будет направлять персонажа постигать азы управления. И встречается она только в блоке с МИНИКВЕСТОМ: соответственно, пассаж miniquest приобрел следующий вид:
Как вы видите, тут пришлось отойти от стандартного целого числа в переменной $story. Вместо 12, стало 12.5. Произошло это по тому, что в процессе написания истории ее понадобилось расширить, а число 13 уже было занято. Но проблемой этой не является. Проверяем дальше в игре, равна ли переменная $story 12.5 и пляшем дальше.
УЛИЦА, ГИЛЬДИЯ И ГОСПИТАЛЬ
Дальше по условиям игры, нужно было наведаться в госпиталь и гильдию. Поскольку все передвижения из дома будут проходить через блок улицы, то я создал соответствующие пассажи:
Из посещения ведьмы у меня был прямой переход в пассаж street, оттуда в гильдию, далее пара переходов и обратно домой.
Объяснять много не буду, вы у меня уже умные и ничего принципиально нового вы не увидите, поэтому просто скину код пассажей:
ДОМ
УЛИЦА
ГИЛЬДИЯ
ГОСПИТАЛЬ (ДЛЯ БУДУЩИХ ЗАГОТОВОК ПРИШЛОСЬ СДЕЛАТЬ ВТОРОЙ БЛОК)
ВТОРОЙ БЛОК ГОСПИТАЛЯ
ИЗОБРАЖЕНИЯ
Итак, добрались до самого интересного. Как же вставлять изображения игру на этом движке? На самом деле есть даже проприетарная возможность работать с изображениями, но все авторы ограничиваются возможностью добавить изображение через HTML разметку.
Я тут выделываться не стал, и сделал как все. Но для наглядности ниже будет показан и способ добавления изображений через SUGARCUBE.
Есть 2 основные ссылки на изображение:
1. Веб-ссылка.
2. Ссылка на файл ПК.
Для веб-ссылки имейте ввиду, что нужно указывать именно прямую ссылку на изображение. Обычно в браузере она выглядит так:
Для ПК (локальных файлов) тоже есть ньюансы. HTML файл будет ссылаться на свое местоположение, но даже так, оно не работает, если закинуть HTML файл и изображения в одну папку. Для изображений обязательно должна быть своя папка в папке с игрой (например у меня папка img).
Вот пример
Если мы хотим разместить изображение по центру и хотим сделать его определенной ширины, то пишем следующее:
В этом мне тоже помог чат GPT, так что не забываем не стесняться задавать ему свои глупые вопросы, но не ждите, что ответ будет корректным. Особенно на русском языке.
Кстати, вторую часть текста: ту, что про скрипт, я не писал. Все итак корректно работает.
Я в принципе в половине гайдов что-то делал не так, и тем не менее (почти) все работает. В общем:
И еще один секрет: если нет своего сервера, но хочется разместить изображения из интернета, то кидаем эти изображения себе на страницу в соц сетях, и указываем прямую ссылку на ваше изображение. Главное, чтобы эта соц-сеть не была заблокирована в Вашем регионе. Ну и в принципе не забываем про законодательство Вашей страны и трижды думайте, что выгружать в соц сети.
УСЛОВИЕ ДЛЯ ПОЯВЛЕНИЯ БОССА
Далее по игре, мне захотелось, чтобы я не мог попасть ко боссу, пока не выполню определенные условия. Решил поступить просто, и организовал перенос к Ведьме, которая находилась в блоке с миниквестами:
Как видите, пока я не пройду сюжет (переменную $story) до 25, будет все время кидать в блок с миниквестом).
УСТАЛОСТЬ
Теперь поговорим об усталости. Если бы ее не было, то работа по накоплению денег и прокачке силы выполнялась бы простым закликиванием. Меня это не устраивает, поэтому добавляем в StoryInit переменную $dungeon_hunt, а в StoryCaption пишем:
Суть ее будет состоять в том, что у героя теперь есть усталость, и если она больше 100, то герою нужно будет отдохнуть.
Угадайте, что я буду добавлять в код? Правильно, новые <<if>>
Покажу на примере блока с работой (добавил его в игру позже).
Как видите, тут все просто, главное не перепутать блоки с <<if>><</if>> и понять, куда именно Вам надо это ставить.
И, конечно, добавляем кнопку отдыха дома:
Во всем этом нас интересует только: [[СПАТЬ|home][$day += 1, $dungeon_hunt = 0]]
ИЗЛЕЧЕНИЕ И ЧАСТИЧНОЕ ВОССТАНОВЛЕНИЕ ЗДОРОВЬЯ
Дальше пойдет блок, который, скорее всего никому, кроме меня не понадобится, но тем не менее я его укажу. Суть в том, что по началу в игре персонаж ослаблен и это должно было влиять на него в игре. Поэтому и была изначально добавлена переменная $mul_curse. Как именно она работает мы уже разбирали в блоке с боем. Пришло время лечить главного героя в 2 этапа.
В пассаже hospital пишем:
А в пассаже hospital_treatment (если у Вас есть какое-то событие, завязанное на локацию, то лучше его выносить в отдельный пассаж. Так эти самые события намного проще оформлять ) пишем:
Как видно выше, я как и любой другой разработчик игр, любитель затягивать сюжет и нужно выполнить несколько условий, чтобы полностью вылечиться.
Так же была добавлена ложная концовка: [[Забыть о комнате и просто продолжать жить|ending_1]].
Но так как гринд 10к монет на лечение занял бы просто прорву времени, я решил упростить действия и добавил в подземелье в сокровищах несколько сюжетных роялей. А именно, как только накапливается 3000 золота (2-3 неудачных или 1-2 удачных забега), дается зелье лечения.
В пассаже с сокровищами treasure дописываем следующее:
Как видите, тут я впервые добавил анимированную гифку <img src="https://i.imgur.com/Igx4VXA.gif" \/>. К несчастью, я пока так и не понял, как ее масштабировать под ширину экрана, поэтому она пока еще такая маленькая.
В следующей части мы с вами научимся прокачивать персонажа и его дом. А также создадим инвентарь, добавим магазин для покупки шмоток и научимся этими шмотками усиливать персонажа.
Напоминаю про бота. Не обязательно пользоваться именно этим, но в принципе на использование ботов я Вас сильно агитирую.