бесконечное лето как сделать меню
Бесконечное лето как сделать меню
Текстовой редактор нужен для работы с командами которые мы будем прописывать в наш мод.
Есть два блока. init и init python(Питон).
Все диалоги, bg, cg, sprites и music, короче всё что связано с сюжетом, прописывается после команды label
По сути своей это команда используется для разделения мода на части.
$ mods [«это_лэйбл»] = u»ЗДЕСЬ ВПИСЫВАЕМ НАЗВАНИЕ МОДА»
$ style.инициал_txt = Style(style.default)
$ style.инициал_txt.font = «путь к шрифту»
$ style.инициал_txt.color = «цвет»
$ style.инициал_txt.size = размер
$ style.инициал_txt.drop_shadow = []
$ style.инициал_txt.drop_shadow_color = «#000»
$ style.инициал_txt.kerning = 1
jump label_название лэйбла
(jump через 4 пробела)
Он нужен для совершение так сказать прыжков между одним и другим днём, то есть.
Полезной вещью для вас будет файл lists, в котором находиться все названия бг, цг и т.п из оригинальной игры.
Для того чтобы персонажи вели диалог есть ID персонажей.
scene bg название_фона
Также команда scene используется не только на bg, но и на cg.
Также как и бг, спрайты из оригинальной игры находятся в том файлике, который я кинул в один из разделов.
Всего в игре 7 позиций у спрайтов:
fleft, left, cleft, center, cright, right, fright
Прописывается так:
show dv smile pioneer2 at left
Спрайт Алисы появиться слева.
Работает так:
hide имя персонажа
$ persistent.sprite_time = «время суток, которое нам нужно»
$ время суток, которое нам нужно_time ()
Прописывают их около bg, cg и спрайтов так:
scene bg(cg) название бэграунда with один из видов плавности
Если вы будете добавлять что либо в больших количествах советую использовать # он разделяет определённый места в init-блоке:
Также аббревиатура нужна для того чтобы сокращёно вписывать добавленные вами изображения, музыку, персонажей и спрайты.
$ Аббревиатура имени = Character (u’Имя в игре’, color=»Цвет имени», what_color=»Цвет диалога»)
image аббревиатура = «Путь к изображению»
$ аббревиатура = «Путь к музыке»
Со звуками и амбиенсами работает так же.
image аббревиатура = «Путь к спрайту», учтите время на него не влияет.
Дело в том что автоматически при включении команды persistent.time они не будут менять цвет при смене суток, так что для каждых времени суток придётся прописывать спрайт.
Если кто знает способ получше кидайте в комментарии.
Переменные нужны для того, чтобы игра запоминала каждый выбор игрока
Вызов переменных происходит во всем уже известном init-блоке. Имена и значения у переменных могут быть любые, лучше использовать короткие английские слова или цифры (цифры только в значении).
После выполнения данных команд переменная «choice» будет иметь значение «True», а переменная «Count» увеличит свое значение на единицу.
Для того чтобы предоставить игроку выбор мы создаём блок menu.
В данном примере Ульяна называет гг дураком, главный герой, может сказать, как джентельмэн просто сказать нет, не вестись на провокации Ульяны и увеличить «good» на 1, так и сказать ей что она дура и приблизиться к плохой концовке.
Можно задать условии при котором выбор игрока будет влиять на последующие варианты.
Этот отрезок показывает, если значение переменной «good» больше нуля, то игра продолжится на метке «good», если же нет, то мы переходим на метку «bad».
Теперь отталкиваясь от прошлых выборов гг будут добавляться или убираться различные варианты ответов.
В этой ситуации есть три варианта. Первый вариант, если мы ничего не совершили с Алисой. Второй вариант, если мы оказали Алисе помощь. Третий вариант, если мы с Алисой были грубы.
С картой разобрались поехали дальше!
$ backdrop = «days»
$ new_chapter(1, u»Мой мод. День первый.»)
$ renpy.movie_cutscene(«Путь к видео»)
Прописываем сразу в лэйбле
Существует два вида пауз renpy.pause и просто pause
show prologue_dream (показать)
hide prologue_dream (скрыть)
Если вы хотите запретить игроку перематывать игру назад, воспользуйтесь функцией:
$ renpy.block_rollback()
Я брал самые интересные команды для вашего мода, так что пользуйтесь, но если вам их не достаточно можете взять информацию с таких ссылок как:
Уроки моддинга
Как создать свой мод для игры Бесконечное Лето [vk.com]
Если хотите изучить азы и не копаться в моём руководстве то вам подойдёт такая ссылка:
Как сделать и выложить мод для игры «Бесконечное Лето»
Лето, Советы и (не)много кода
Блог по моддингу Бесконечного Лета Официальный новостной портал мода «Советские будни»
Страницы
Гайды по моддингу
Команда «init:» создаст наш блок.
Пришла пора назвать наш мод и сделать запуск из меню «Моды и пользовательские сценарии».
Чтобы наш мод шёл плавно и без проблем, необходимо, чтобы из каждого блока можно было попасть в следующий. Для кинетических модов (моды, которые не имеют выбора и движутся по одной сюжетной линии) вообще не обязательно иметь более одного блока, но можно использовать несколько для красоты.
После этого урока ты уже сможешь написать кинетический мод со встроенными материалами.
Создаём наш запускаемый блок:
Едем дальше. Теперь ты можешь писать любой текст, включать любую музыку и вставлять любые картинки. Как? Очень просто!
Выглядеть это будет так:
Комментарии в коде можно оставлять с помощью #. Движок игры пропускает всё, что написано после этого символа и сразу переходит на следующую.
Ты уже достаточно потренировался с линейным моддингом, но хочется чего-то большего?
Добро пожаловать во второй урок!
Но до этого надо исправить парочку недочётов: остановим музыку.
После указания персонажа, эмоции и типа одежды указываем, за кем должен стоять персонаж. В данном случае на экране у нас только Славя, поэтому пишем behind sl. Если ты используешь far или close, то команда behind должна стоять после. Но обязательно перед with-командой (или at, если она есть).
Бесконечное лето как сделать меню
Возможно кому-то пригодится:
Если кому-то нужно получить файл с папки воркшопа через open()/file() или же удалить его через os.remove(), добавить свои модули или же что либо ещё что требует ПОЛНОГО пути к папке С МОДОМ,, то можно использовать такую штуку в путях, как «..»
Все модификации хранятся в папке workshop, которая размещена в той же папке steamapps, где размещена папка common с игрой, даже если steamapps несколько.
То есть, чтобы получить пути к целевой папке steamapps можно использовать
C:\SteamLibrary\steamapps\common\Everlasting Summer\..\..
Ещё проще)
C:\SteamLibrary\steamapps\common\Everlasting Summer\..\..\workshop\content\331470\
Вот и попали в папку модов для БЛ (относительно моего пути к БЛ).
Если нужно получить папку какого-то конкретного мода, то просто дописываем его ID
Например, получим папку Саманта-мода:
Ну, а поскольку в питоне «\» означает кое-что другое, то меняем все «\» на «/»
Но, как я уже говорил, это мой путь к БЛ.
Поэтому, «спрашиваем» в Ren’Py (движок БЛ) какой же наш путь:
Это и будет наш путь к Саманта-моду.
Потом можно делать с ним всё, что вздумается.
Как задействовать клавиатуру в моде, например, для мини-игр.
Первым делом, нужно выбрать клавишу, которую мы будем использовать. Для начала возьмём пробел.
Чтобы человек мог нажать на клавишу в определённый момент времени, нужно её нарисовать и вставить в код ренпая с помощью самой обычной команды для внедрения своего бг или цг.
Мы загрузили изображение пробела. Теперь приступим к коду.
Возьмём самый простой для задействования всего одного пробела:
(Скриншот)
Если вы успели нажать на кнопку, вас перебрасывает на лейбл, который означает победу.
Если не успели, то после двух секунд функция пробела исчезает и продолжается сюжет, перебросив вас на лейбл, означающий поражение. В нём вы можете дать очко переменной для определённых событий, или же перебросить обратно на начало мини-игры, дав переиграть для достижения победы.
Кстати, вот вам кнопка пробела, делал для своего мода.
Бесконечное лето как сделать меню
У всех свои причины, по которым они решили создать свой собственный мод для Бесконечного Лета. Так что эту тему особенно развивать не будем.
Прежде чем создавать мод, убедитесь, что у вас есть: время, желание, усидчивость, минимальное знание английского, хоть какое-то понимание программирования в целом, и самое главное — достойная идея. Без этого ваш мод, к сожалению, будет бесперспективен.
Кроме того, вам очень пригодится художник. Без него можно обойтись, если вы создаёте переделку оригинальной истории, или будете втихую тырить с согласия автора одалживать картинки из других модов.
При создании мода появляется множество нюансов, из-за которых легко можно забросить это дело. Готовьтесь и к этому.
Для начала заходим в папку mods, которая находится по пути:
. Steam\steamapps\common\Everlasting Summer\game\mods
Где три точки — диск и расположение папки Steam. У всех оно разное.
Если вы не сможете разобраться с этим этапом, то боюсь представить, что будет дальше.
В этой папке создаём свою папку, которая будет называться также как и рабочее название мода. Желательно на латинице.
Заходим в неё, и предварительно создаём папки: ambience, bg, cg, music, sound, sprite, video. В этих папках будут спрятаны все необходимые материалы для мода.
Всяко лучше, чем если бы они были раскиданы в одной папке, верно?
Далее создаём два текстовых файла с расширением .rpy
Если у вас скрыты расширения файлов, то исправьте это. Интернет в помощь =)
Эти файлы можно назвать как угодно, но я рекомендую назвать первый как: _materials (test_mod_materials), ведь в нём мы запишем все материалы для мода, чтобы они не мешали нам писать сценарий.
А второй по названию мода, или дня/события/ветки, в общем — как вам будет угодно. Позже название всегда можно изменить.
Для работы с ними нам понадобится блокнот, или любая подобная программа.
У меня вот Notepad++.
Открываем файл с материалами, и пишем в самом начале «init:«, без кавычек.
Кстати, кодировка файла должна быть Юникод (UTF-8), ANSI не поддерживается движком.
На следующей строке нажимаем 4 раза на пробел, или один раз на Tab.
Но тут важное примечание: движок игры не поддерживает табуляцию (Tab), из-за чего вам придётся постоянно их переделывать в пробелы. Желательно с помощью встроенных функций, как например в Notepad++. Чтобы сделать это в нём выделяете весь текст с помощью комбинации клавиш Ctrl + A, затем нажимаете сверху на кнопку Правка > Операции с пробелами > Табуляцию в пробел. Для удобства сделайте соответствующий макрос (для прошареных).
Так вот. Мы сделали 4 пробела, или один Tab. Мы сформировали блок. Пишем там:
Именно в такой форме. Где рабочее_название_мода пишем название вашей папки и первого лейбла (его создаём далее, об этом ниже), где Название_мода, то название которое будет отображаться в игре и в мастерской.
Получается примерно так:
Эта часть будет писаться в каждом файле связанным с модом, и она везде должна быть абсолютно одинаковая. Иначе у вас будет несколько модов в одном. А что, это удобно!
Мы пишем init в файле, чтобы игра зарегистрировала его. Так что, если в файле нет блока init, игра даже не будет его читать. Не говоря уже о том, чтобы показать ваш мод в самой игре.
В этом разделе мы сразу распишем всё, что нужно для того, чтобы ваши пользовательские материалы оказались в игре.
Если у вас таковых нет, переходите к следующему разделу о переменных.
Для начала раскидайте все свои файлы по созданным ранее папкам. Затем мы рассмотрим как прописать их в игру.
Чтобы добавить своего персонажа (без тени у имени) в историю, пишем следующий код:
$ тэг_персонажа = Character (u’имя_персонажа‘, color=»цвет_имени«, what_color=»цвет_текста«)
$ тэг_персонажа = Character (u’имя_персонажа‘, color=»цвет_имени«, ctc=»ctc_animation», ctc_position=»fixed», what_color=»цвет_текста«, drop_shadow = [], drop_shadow_color = «#000», what_drop_shadow = [], what_drop_shadow_color = «#000»)
Отличия этого кода только в том, что здесь прописана тень. Все остальные пункты прописываются как было показано выше.
Получается что-то такое:
Как фоны (bg) так и красивые картинки (cg) прописываются таким кодом:
image название_изображения = «путь_к_изображению«
В пути обязательно должен быть написан mods и название вашего мода, иначе игра не увидит ваш файл.
Пример:
Музыка, звуки, эмбиент — всё это пишется одним и тем же кодом:
Что где писать, смотрите на пункт выше. Ибо всё работает по той же системе.
Тут уже сложнее. Думаю вы знаете, что спрайты в БЛ это те изображения, которыми показываются персонажи. Те что ещё умеют менять одежду и эмоции. Чтобы их прописать можно написать, либо такой же код, что и у изображений, либо специальный:
image тэг_персонажа эмоция другие_значения = ConditionSwitch(
«persistent.sprite_time==’sunset'»,im.MatrixColor( «mods/ваш_мод/sprite/тэг_персонажа/спрайт.png«, im.matrix.tint(0.94, 0.82, 1.0) ),
«persistent.sprite_time==’night'»,im.MatrixColor( «mods/ваш_мод/sprite/тэг_персонажа/спрайт.png«, im.matrix.tint(0.63, 0.78, 0.82) ),
True, «mods/ваш_мод/sprite/тэг_персонажа/спрайт.png» )
Плюс специального в том, что у изображений прописанных этим кодом может меняться освещение, которое мы тоже обсудим позже.
Когда будете писать этот код, обратите внимание на тэг_персонажа, и необходимость прописывать путь к спрайту три раза. Тэг нужен для того, чтобы при необходимости сразу же скрывать спрайт, не расписывая все его характеристики, и для того, чтобы менялся сам спрайт, один на другой, а не показывался один поверх другого.
Будем откровенны, именно так и прописываются большинство спрайтов, ибо первый способ — мазохизм.
ВНИМАНИЕ! После публикации мода все пути к материалам необходимо изменить, удалив mods/название_вашего_мода/, иначе ваши материалы не будут обнаружены игрой.
Но об этом позже.
Кроме пользовательских материалов в наш файлик materials мы запишем переменные.
Переменные — это некие значения, которые могут измениться в процессе игры.
У нас есть два типа переменной: True or False и числительное значение.
True or False работает по типу: Да или Нет.
Числительное значение — это любое число, включая отрицательные.
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Записываются они довольно просто:
Как вы поняли, если значение переменной Да или Нет, то пишем True, если Да, и False, если Нет.
То есть у вас получится что-то такое:
Переменные очень полезные. Они могут обозначить наличие какого-то условия при событии, и количество «очков отношений«, на которых и строится всё Бесконечное Лето, да и другие Визуальные Новеллы.
Сейчас мы прописали изначальные значения переменных. Без них, переменные не смогут измениться, что вполне логично. Ведь изменяться будет нечему, дошло?)
О том, как же их изменять, и как они могут влиять на историю, поговорим ниже.
Наконец мы дошли до самого важного, и основного в деле создания мода — писанины!
Помните, мы создали второй файлик, который называется так же как и ваш мод?
Открывайте его. Первые две строки копируйте из materials. Те, что с init.
Через строку, без четырёх пробелов или одного Tab, пишем:
Название этого лейбла должно совпадать с тем, что вы писали под init.
Я же для наглядности написал test_mod_start, а не test_mod, как писал под init.
Основа БЛ это текст автора и чья-то речь, верно? Смотрим как их писать.
Весь текст пишется с 4-мя пробелами в начале, и под label. Не забываем об этом.
Чтобы написать текст автора, то есть просто текст, пишем кавычки, и в них текст:
Чтобы писать текст мыслей (с тильдами по бокам текста), перед кавычками добавляем инициалы th:
Именно эти инициалы мы прописывали для своих персонажей, и именно они используются для речи всех персонажей.
Чтобы написать речь кого-то, пишем его инициалы спереди кавычек, так же как и с мыслями:
У вас должно получится примерно вот так:
Большая часть оригинальных инициал персонажей из БЛ расписаны на этой знаменитой картинке:
Помимо этих, ещё имеются инициалы, собственно Семёна, и большинства героев, с условием неизвестности:
me — Семён
mep — Парень
unp — Пионерка (Лена)
dvp — Пионерка (Алиса)
usp — Пионерка (Ульяна)
slp — Пионерка (Славя)
mip — Пионерка (Мику)
uvp — Странная девочка (Юля)
elp — Пионер (Электроник)
shp — Пионер (Шурик)
mzp — Пионерка (Женя)
mtp — Вожатая (Ольга Дмитревна)
csp — Медсестра (Виола)
Сейчас ваш мод — просто резко появляющийся текст на чёрном экране с зимним интерфейсом.
Мы разобрались с речевой частью, пора разобраться и с визуальной! Затем займёмся и украшением текста.
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Чтобы изменить интерфейс, в тексте пишем одну из этих команд:
Не забывая про пробел после двоеточия.
Пример полного кода:
Дабы не смотреть на текст на чёрном фоне, рассказывая о красоте пляжа, стоит добавить фон. Этим мы сейчас и займёмся.
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Чтобы добавить эффект к появлению или исчезанию изображения добавляем в конец команды, после названия изображения, команду — with:
Помимо dissolve движок имеет множество других эффектов:
- Как аналог, можно использовать схему:
- punch работает и с текстом. Чтобы текст появился с тряской, пишите так:
Теперь мы видим площадь. Но мы не видим Алису! Покажем же её.
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Дабы показать Алису, нужно вывести на экран её спрайт.
У каждого спрайта в названии есть инициалы владельца и эмоция. Есть ещё одежда и дальность, но для пользовательских спрайтов, порой хватает и первых двух. Так что спрайты вызываются также как и картинки с фонами, но в отличие от них, у спрайтов не слитное название параметров. То есть, не — show тэг_персонажа эмоция_и_другие_значения, а — show тэг_персонажа эмоция другие_значения.
Поэтому показываем спрайт примерно так:
——————————————————————————————————-
Просто, не так ли? А мне этого мало. Таким образом мы сможем показать лишь один спрайт, так как любые другие будут накладываться на предыдущий.
Чтобы показать спрайт на определённой позиции, у нас есть команда — at. Она пишется перед with. Выходит это:
show тэг_персонажа эмоция другие_значения at сторона_экрана with эффект
Вот возможные стороны:
Однажды, в какую-нибудь тёмную ночь, вы заметите, что ваши спрайты слишком яркие. В этом случае вам поможет команды:
Где достать коды всех спрайтов смотрите в разделе Все необходимые коды.
Когда-нибудь вы можете захотеть плавно переместить спрайт, или любую другую картинку, на другой край экрана. Для этого есть команда — linear.
Чтобы переместить изображение по горизонтали пишем такую схемку:
Первая строчка нам знакома, а вот вторая нет.
Обратите внимание, что вторая строка пишется после двоеточия, и на 4 пробела дальше.
linear означает перемещение картинки, после чего пишется время в секундах, за которое она должна переместиться.
xalign и yalign определяют куда будет перемещаться изображение, по Y или по X. Y для вертикали, X для горизонтали.
Затем пишется сами координаты в формате 0.0 — 1.0, где 0.0 левый край экрана, а 1.0 правый. Писать обязательно с десятыми.
Примечание: по неизвестным для меня причинам, перемещение по Y в Бесконечном Лете не работает, в отличие от других игр на движке Ren’Py. Вероятно тут виновата ошибка разработчиков, которые писали код игры. Но этого, как говорится, мы никогда не узнаем.
Для примера, перед тем как перемещать спрайт, нам нужно его плавно показать, иначе он появится в движении:
Из этого кода мы видим, что по центру экрана появится весёлая Алиса, а затем переместится к левому краю экрана.
Если писать координаты больше 1.0 или меньше 0.0 (например: -0.5), то изображение уйдёт за экран. Это можно использовать.
——————————————————————————————————-
Если вы захотели поставить картинку в какое-то определённое место, вам поможет команда — pos:
Координаты расчитываются по пикселям стандартного разрешения экрана, а это — 1920×1080. Однако расчёт идёт не с привычного левого верхнего угла, а с левого нижнего. То есть левый верхний угол будет равен — 0, 1080.
Казалось бы — у нас всё есть: фон, текст, спрайты. Но зайдя в мод, мы тут же заметим.
Что здесь гробовая тишина! Исправим это недоразумение!
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Как вы могли понять ранее, из курса по материалам, у нас есть три вида аудио — звуки, музыка и эмбиент. Чтобы их включить, у нас есть команда — play, и четыре дорожки воспроизведения:
Так как music это ID дорожки аудио, а music_list[«»] — это часть названия. Для своей музыки вы можете писать как адекватные люди, без этой тавтологии.
——————————————————————————————————-
Кроме того, что мы изучили выше, мы можем поставить аудио в очередь, командой — queue. Оно будет писатся вместо play:
Где найти все коды музыки, звуков и эмбиентов смотрите в разделе Все необходимые коды.
Всем рано или поздно нужно сделать паузу. И мы не исключение. Думаю не стоит пускаться в объяснения по поводу паузы. Надеюсь все и так понимают зачем она нужна.
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Чтобы сделать паузу используем одну из команд:
Примечание: если поставить паузу без секунд, не важно простую или сложную — игра остановится и продолжить можно будет, только нажав на Enter/Пробел/ЛКМ/Ctrl.
Так что не рекомендуется этого делать. А то у читателей может возникнуть затык, и они подумают, что игра зависла.
Паузы рекомендуется ставить только со скрытым интерфейсом.
Знаете, пять секунд смотреть на пустую строку текста не очень-то интересно!
Паузы — это очень важная часть визуальной новеллы. Не забывайте о них. Но и не делайте слишком много, и слишком долгие. Читатели не привыкли ждать!
Порой, нужно сделать текст необычным. Для такого случая существуют команды, которые пишутся прямо в тексте, внутри кавычек. Рассмотрим же их.
Не забываем про 4 пробела, они пишутся всегда. Исключения только init и label.
Сами коды в игре не видны, виден только эффект:
Вы хотите моргнуть? А может ваши глаза устали от всего этого, и вы хотите их закрыть?
Это можно устроить.
Пишем так:
Чтобы открыть их вновь.
Для лучшего эффекта отделяем паузами, примерно так:
Вы хотите нам показать какой-то крутой видос? Без проблем!
Чтобы сделать это пишем прямо в блоке label:
За вами погоня? Или может это вы за кем-то бежите?
Чтобы все поняли что вы бежите, вам поможет данная комбинация:
Мы уже сделали достаточно, чтобы было на что посмотреть. Думаю каждому захочется проверить, что же он там наделал.
Для этого запускаем игру > переходим в настройки (инструменты) > моды и пользовательские сценарии > и в данном списке выбираете ваш мод.
Если вы сделали всё как надо, он там появится.
Чтобы предоставить читателю выбор, пишем такую систему команд:
Команда menu: вызывает меню выбора. Перед ним, желательно скрыть интерфейс.
Затем, на следующей строке мы делаем 8 пробелов, так как формируется блок в блоке. Чем больше блоков, тем больше пробелов. Их количество всегда увеличивается на 4.
После этих 8-ми пробелов в кавычках пишется выбор так, как он будет отображаться в игре, и двоеточие, означающее формирование ещё одного блока.
Ниже, после 12-и пробелов будут последствия выбора. Это не обязательно должен быть текст, однако там должна быть хотя бы одна команда, иначе движок будет жаловаться, что блок пустой и не запустит нам игру.
Выбор не обязательно должен быть из двух или более вариантов, их количество не ограничено. Ведь выбор из одного варианта — тоже выбор.
Чтобы закончить последствия выбора, просто пишем дальше с 4-мя пробелами, как и раньше.
Если хотите сделать выбор без исчезания текста, то есть, чтобы он отображался внизу, как и до выбора, то пишите так:
А если вы в режиме NVL (тескст поверх экрана), и хотите чтобы выбор был там, перед выбором пишите команду define menu = nvl_menu, как на примере ниже:
При условии, что вы прописали изначальные значения переменных ранее, их значение можно будет изменить в процессе игры. Конечно же для этого пригодятся выборы, иначе — какой смысл их писать вообще?
Я надеюсь вы не забыли про 4 пробела?)
Чтобы изменить значение переменной с True на False или наоборот, а также чтобы изменить числительное значение на конкретно другую цифру пишем так:
Когда пришло время проверить сколько очков отношений у читателя с персонажем NN, или съел ли он всё таки свой суп, пишем проверку переменных.
Проверки бывают трёх видов — равно, больше, меньше. С True или False больше и меньше не работает. Как ни жаль.
Для проверки используется команда — if, за ним пишется название переменной, дальше в качестве обозначения равенства пишется двойное равно — ==, а для обозначения больше или меньше используются соответствующие знаки — >, Последствия последствий выбора.
В случае когда нам нужно сделать, по типу — «либо так, либо иначе«, используем команду — else. Ведь, если мы не будем использовать эту команду, история продолжится так, как будто ничего не произошло. Как альтернативу, можно использовать jump, но об этом позже.
else пишется на том же уровне что и if, то есть либо на 4-х пробелах, либо на 8-и и выше.
Думаю хватит и примера, чтобы вы поняли зачем нужна эта команда:
Тут показаны только текст и проверка переменных, но для понятия сути, думаю вам хватит. =)
(Пример придуман моей бурной фантазией по ходу написания раздела. Ни в одном из моих, или мне известных, модах такой сцены нет. Так что вам ничего не мешает использовать её, вероятно отредактированную, в своём моде. Или же сделать что-то по такой же схеме)
——————————————————————————————————-
Когда последствия проверки переменных закончатся, возвращаемся с 8-и пробелов к привычным 4-м.
С помощью тех же переменных последствия ранних решений могут проявится где-то ещё, и не раз. Собственно, всё это видно из примера выше.
В случаях когда вы разделили мод на несколько частей, и каждая из них в отдельном файле, или же когда после выбора читатель должен отправиться совсем другой дорогой, вам поможет простая команда — jump. Она позволяет, буквально, прыгать между лейблами.
Пишется таким образом:
Помимо jump у нас имеется ещё одна подобная команда — call. Она перемещает читателя на другой лейбл, как и jump, но после его окончания возвращает туда, откуда было совершено перемещение. Это можно использовать, например, для длительных флешбэков:
Мы могли забыть о такой прекрасной вещи как — карта. В БЛ есть возможность выбирать куда пойти по карте. Смотрим что для этого нужно.
Чтобы показать карту пишем команду:
При повторном показе карты выбор локаций останется. Чтобы этого избежать пишем такую команду:
Не самая удобная, но вполне рабочая. В данном примере три локации: лес, музыкальных клуб и пляж. Всё пишется в отдельном лейбле, чтобы можно было вернуться с лейблов локаций обратно на карту. В начале пишется отключение активных локаций (иначе всё схема насмарку), и проверка, не обошёл ли читатель всё. Если нет, показывается карта, и те локации в которых он не был. Если же он всё обошёл, то его переносит на следующий за этим разделом лейбл.
Естественно, чтобы вы смогли её использовать, Вам будет нужно поменять все названия лейблов и переменных на нужные Вам. Хотя вы можете использовать и мои)
Главное не забудьте их прописать в materials.
Где достать все коды локаций смотрите в разделе Все необходимые коды.
Вот и пришло время прощаться.
Когда в конце последствий выбора должен быть конец игры, пишем команду — return.
Если текст в лейбле закончится, эффект будет тот же.
Это самая ужасная, страшная, и жестокая команда в этой игре, но каждый мододел однажды её напишет.
Ошибка большинства моддеров — отсутствие названия мода в сохранении. То есть ты сохраняешь игру, проходя мод, а потом не можешь понять, что это вообще за сохранение такое! Эта ошибка к сожалению появляется даже у опытных мододелов, хотя исправляется она элементарно.
4 пробела, 4 пробела, помним мы о них всегда!
Так как мы уже сделали большую часть мода, распределить сохранения будет проще. Чтобы добавить сохранению название, в блоке label пишем такую команду:
Это название будет отображаться в игре так:
Тестовый мод. День 1
Прибытие в лагерь
Давным-давно, много лет назад, на просторах интернета я нашёл несколько файликов, в которых оказались расписаны коды всех локаций карт, BG, CG, музыки, звуков, эмбиента и спрайтов. Честно, я не знаю кто этот святой человек, что написал всё это, но я выражаю ему огромную благодарность.
Так что у меня был выбор, между написанием отдельного руководства, где представлены только эти коды (так как их, ну о-о-очень много), и закидыванием этих файликов в один архив.
Я выбрал второе.
К тому же там моё Полевое руководство, по которому я и писал Это руководство.
В общем. Я загрузил этот архив на Яндекс Диск, и теперь вы все сможете его скачать. Там будут оригинальные (почти) файлики со всеми кодами того-сего, а также моя Мини-справка, где есть всё что и в этом руководстве, но в сильно укороченом виде.
Она выглядит вот так:
Не обращайте внимания на что-бы. Это уже давно в прошлом.
Все эти синтаксисы сделаны мной, и вы их спокойно можете изменить, если захочется.
(Для тех кто будет использовать renpy_sint: при добавлении ваших новых персонажей в мод, вам будет нужно его добавить и в синтаксис, в 1-ю группу, в разделе Ключевых слов.)
Чтобы скачать этот архив, просто нажмите на словосочетание скачать архив ниже.
Скачать архив [disk.yandex.ru]
Не бойтесь скачивать его, ничего такого там нет.
Все коды подписаны на русском, так что вам будет достаточно скопировать нужный код из файлика и вставить в мод. Я сам ими постоянно пользуюсь)
Время финального этапа — публикации мода.
Обратите внимание — мы выкладываем не ту папку, которая в папке mods, а отдельную папку, что с публичной версией.
Итак. Вот что мы делаем, для того чтобы выложить наш мод:
1. Копируем папку мода куда-нибудь, например в Everlasting Summer\game. Главное не оставлять её в mods.
2. В путях файлов в materials убираем — mods/название_мода/. Это можно сделать разом, с помощью замены текста в Notepad++, как показано на скриншоте ниже.
Не забудьте про это!
2.1. При желании скрыть от хитрых читателей, которые знают как делается мод, ваш исходный код удаляем файлы с расширением .rpy, и оставляем только .rpyc.
.rpyc должен был появится после запуска игры с модом.
3. Когда мы полностью подготовили мод к публикации, запускаем от имени администратора ES_Content_Uploader, что находится в папке mods.
Нас встретят такой вот приветственной надписью:
4. Жмём Создать новый предмет.
5. Вам будет представлен ID вашего будущего мода. Запишите его куда-нибудь. Затем жмём Продолжить.
6. Появится весьма интересное окно:
Многим тут уже будет всё интуитивно понятно, но мы всё же разберём всё по пунктам.
6.1. Пишем название мода в строке Название предмета.
6.2. Затем, в Описание предмета можем написать первое описание. Но это не обязательно. Вы можете написать его позже, уже на странице мода в мастерской.
6.3. Указываем путь к папке мода, нажав на Обзор. , после чего появится новое окно. Там мы заходим в папку мода, и в ней нажимаем на кнопку Выбор папки в правом нижнем углу окна.
6.4. Если у вас уже готов логотип мода, то нажимаем на Обзор. у строки Обложка предмета, в новом окне просто выбираем наш логотип. С ним может быть много проблем, так что возможно придётся перепробовать множество расширений, разрешений и соотношений сторон картинки. Но в итоге вы сможете его добавить.
6.5. И у нас осталась, опять же, необязательная строка с описанием обновления. Его тоже можно написать в самой мастерской.
7. Когда всё заполним, нажимаем на Загрузить, после чего начнётся загрузка.
И в итоге нас обрадуют такой вот прекрасной надписью:
Которая будет означать, что ваш мод успешно выложен. Поздравляю!
Вы всегда сможете подписаться на свой же мод, и поиграть в него. Только не забудьте убрать папку мода, в которой вы работали, из mods. Иначе будет капут.
Мод-то мы выложили, а обновлять кто будет? Тоже мы.
Смотрим как.
1. Делаем необходимые изменения в моде, и снова копируем их всех в нашу папку, с публичной версией мода.
2. Снова запускаем ES_Content_Uploader, но на этот раз нажимаем на Обновить существующий предмет.
3. Появится окно, которое потребует ID вашего мода. Вы же записали его, да?
Но если нет, то это не такая уж большая беда. Переходите на страницу вашего мода в мастерской, и в зелёной строке сверху копируйте цифры ID. Ну, если у вас там нету этой строки, то просто скопируйте адрес страницы, с помощью правой кнопки мыши, вставьте куда-нибудь, и оттуда вытащите ID.
Ну или можно подписаться на свой мод, а затем найти его по пути:
. Steam\steamapps\workshop\content\331470
Просто полазайте по папкам, и в одной из них будет знакомые вам файлы. Это и есть ваш мод)
4. Как напишем ID в нужное поле, нажимаем продолжить, и появляется уже знакомое нам окно:
Однако в нём автоматически будут стоять галочки, запрещающие изменять название и описание предмета. Что ж, на неё всегда можно нажать снова, если вы захотите изменить то или иное.
Собственно тут всё как и раньше. Выбираем свою папку, логотип если надо, и пишем что изменилось, если хотите.
5. Нажимаем на загрузить, и пойдёт загрузка.
Затем нас снова поздравят той же самой надписью:
Вот и всё. Вы сделали свой собственный мод, уверен он будет отличным!
Посему я могу с гордостью сказать:
Спасибо всем, кто читал и пользовался моим руководством, всем кто оценивал, выдавал награды, комментировал и добавлял в избранное, как во время разработки, так и уже после!
А ещё я хочу сказать спасибо тем замечательным людям, которые своими руководствами, обучили меня всему, чему теперь я обучил вас!
Вот эти руководства:
Руководство закончено, но конечно же может быть дополнено в будущем.
Если что-то не получается, не стесняйтесь спрашивать.
Постараюсь помочь, всем чем смогу!