Привет! В сегодняшнем уроке мы с вами научимся делать систему «Алхимии».
Для начала нам понадобиться курсор (см. Урок 1), но так как мы делаем меню, то герой нам не нужен, давайте сделаем курсор из него! Сделайте параллельное событие, меняющее графику героя, запрещающее доступ в меню. И определяющее место нахождение гер … курсора =).
Далее сделаем внешность алхимического аппарата (нужна всего лишь фантазия и какой нить Тайлсет=))
Итак, вот в чем суть сегодняшнего урока: Все ресурсы будут лежать в месте, обведенным желтым овалом, каждый из них будет активироваться от собственного переключателя, который в свою очередь будет включаться ветвлением условий:
Вся прелесть наших листьев будет заключаться в том, что они не будут мгновенно перемещаться на места, отмеченные синим, их можно будет подвигать курсором по карте.
Как же это сделать? Сделайте событие, фиксированное, проходимое, находящееся поверх всех, активирующаяся действием, обе страницы которого будут включаться переключателем, который мы определили на скрин шоте выше.. В котором:
Мы определяем значение двум важным переменным, Первая – отвечает за активность листка т.е. она не только будет заставлять его двигаться за курсором, но и с нее будет считываться информация для последующего преобразования листка в зелье.
Вторая – относится только к моему Адд-ону веса, мы сделаем так, что бы наш алхимический аппарат не выдерживал большого кол-ва веса (вы можете заменить вес на что нибудь другое, взрывоопасность, целительные свойства и т.д.)
Далее создаем вторую страницу у нашего листка (кстати, на обеих страницах не забудьте поставить графику.) которая активируется от того, что переменная «Herbs» равна или более 6 – того значения которое мы присвоили переменной «Herbs» на первой странице нашего эвента. Но к сожалению в мейкере нельзя поставить активацию от того что переменная равна, поэтому значение «равна или более» может вызвать некоторые баги. Давайте исправим их! Итак, мы уже сделали 2 страницу нашего эвента, отметьте ее параллельной, фиксированной, проходимой.
Простым ветвлением условий мы устраняем недостаток мейкера – «Условия запуска = Переменная равна или более ». В этом ветвлении условий пишем: Переместить событие, Это событие, переменные:«Курсор Х», отвечающая за место положение Х героя на карте,
«Курсор У», отвечающая. за место положение У героя на карте. И так как событие параллельное то наш листок будет двигаться за героем (курсором). Так просто, но выглядит эффектно. Итак мы сделали наш первый листок, тестим, мы взяли его нашим курсором, но как же его остановить на месте? Возвращаемся в редактор.
Создаем эвенты, на которые мы будем класть наши ресурсы (на втором рисунке эти места обведены синим). Как мне кажется, это будет самая сложная часть нашего урока. Если вы не поймете в чем суть того, что будет далее, вы не сможете создавать качественные системы. Постараюсь объяснить как можно подробнее:
Итак начнем.1) мы прибавляем вес листка к новой переменной отвечающей за грузоподъемность нашего аппарата. 2) Если получившееся значение меньше лимите веса, то к переменной (для каждой ячейки должна быть своя такая переменная) «Кол-во1(2-5)» прибавляется 1 т.е. 1 лист на одну ячейку
Если эта ячейка уже занята, т.е. результат больше чем 1, то показать сообщение и уровнять переменную,3) а если меньше, то переменная (для каждой ячейки должна быть своя такая переменная) «Рез(сокращенно от «Результат»)1(2-5)» равна переменной «Herbs», так мы будем узнавать в какой ячейке лежит какой ингредиент .
Далее переменная «Herbs» обнуляется, заставляя листок остановиться на месте. С количеством разобрались, далее вес. Дабы небыло багов типа «вещь не влезла, а ее вес прибавился» вычитаем из переменной «Зелье» переменную «Вес» и показываем какое нибудь сообщение.
4) Не даем переменной «Вес» убежать двумя ветвлениями условий.
Такое же делаем и для других ячеек. (НЕЗАБУДТЕ, ЧТО ДЛЯ КАЖДОЙ ЯЧЕЙКИ ДОЛЖНА БЫТЬ СВОЯ ПЕРЕМЕННАЯ в нашем случае «Рез»)
Фуф, вроде все, сложная часть закончилась, но любопытный мейкерист сразу же заметит баг. Во время игры или теста, если мы положим наш листок в ячейку, потом его можно взять еще раз и уже перенести на другую ячейку, в этом случае зелье можно будет готовить всего из 1 листка. На лицо явное читерство, исправляем =)
Для этого немного модифицируем наш листок :
Ветвлениями условий мы проверяем не содержат ли ячейки уже такой цветок, если содержат то ничего не произойдет, а если нет то наш лист начнет движение за курсором. (В демке для этого используется другая переменная, полностью аналогичная этой)
Так же модифицируем каждый ингредиент.
Теперь приступим к Интерфейсу.
Как минимум нужны 3 кнопочки(скрин 2): 1(серебристая) Будет возвращать ингредиенты на свои места. 2(желтая) Будет стартовать процесс смешивания. 3(красная) Будет закрывать наш алхимический аппарат.
Начнем с самой легкой, - 3(красной)
Для этого просто обнуляем все переменные, возвращаем его в нормально состояние, и переносим обратно, на ту карту с которой было активировано меню.
Наверняка многие заметили переключатель, о котором я еще не говорил не слова, это переключатель «Расстановка»
Делаем событие, включаемое от этого переключателя, параллельное, без графики. В нем мы всего лишь разложим наши ингредиенты по местам:
Думаю здесь все понятно.
Приступим ко второй(по степени сложности) кнопочке – кнопка номер 1(серебренная)
Она всего лишь обнуляет все переменные и включает переключатель «Расстановка»:
Теперь самая нудная и самая важная часть урока – Кнопка номер 2(желтая)
Фуф, все кажется. Поняли? «ЭЭ… Ну возможно… если подумать…». Ясно, не поняли =))
Объясняю : на самом первом рисунке(этого эвента) мы складываем в одну переменную все (5) переменных «Кол-во» (см. выше) Так же там присутствует ветвление условий:
Если переменная «готовность» больше 3 то…
Мы смотрим какой же из листков находиться в каждой ячейке («рез») и удаляем его из инвентаря, после каждой ячейки показываем анимацию, что бы выглядело красивее.
Далее мы складываем переменные «рез» в еще одну переменную «результат»., обнуляем переменную «готовность
ИЛИ (или переменная «готовность» меньше 3)
То показываем сообщение(последний скрин шот) и обнуляем переменную «готовность»
Все, с этим эвентом разобрались, приступим к эвенту, который на втором скрине обведен зеленым – эвент результата.
Создаем в нем столько (параллельных) страниц, сколько будет вариантов результата.
Запускаемых от изменения переменной «Результат» с возрастанием переменной меняется зелье.
Устанавливаем на каждой странице графику, и в списке команд:
1) добавляем полученною вещь и выводим сообщение
2) ожидаем 20 кадров =)
3) Обнуляем все переменные и включаем переключатель «расстановка»
ДОПОЛНЕНИЕ К УРОКУ: Индикатор веса
Делаем эвент, в нем столько страниц, сколько будет изменений с увеличением веса.
В каждой выводим сообщение (\V[3]] показывает значение 3 переменной – переменной «Зелье»)
На этом урок окончен. СТОП! Не разбегайтесь =) Забыл про Домашнее задание =))
Попробуйте сделать такую систему с чем нибудь другим, с броней, с героями =)), со скиллами и т.д. и т.п.
ДЕМКА УРОКА:
www.sendspace.com/file/n8ohai
А теперь ваши вопросы.