Войти на сайт
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
|
ТЕМА: [VX] Квестбук
[VX] Квестбук 13 года 2 нед. назад #44787
|
я ему вчера так делал)) токо со сценкой но ему скрипт нужен вот этот теперь
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ][ Нажмите, чтобы скрыть ] # ============================================================================= # Omegas7's Quest System Script. # ============================================================================= # Версия: 2.2 (вероятно, окончательная). # Специально для: www.myrpgmaker.com # ============================================================================= # Особенности: # > [ПРАВКА] исправлена ошибка с точечным рисунком окна команд <2.2> # > Менять позицию X названия квеста на странице заданий. <2.1> # > Настраиваемый размер шрифта для названия и заданий квеста. <2.1> # > Настраиваемый интервал между заданиями. <2.1> # > [ПРАВКА] исправлена ошибка с очками квестов. <2.1> # > Легкое создание квестов внутри сценария. # > Вспомогательное окно 'очков квестов', показывающее переменную. # > окно текущих завершенных и незавершенных квестов. # > выбор фоновой картинки по желанию. # > иконки "завершено" и "не завершено" для каждого квеста. # > можно показывать переменные в квестах. # > легкое выполнение квестов благодаря разбиению на задания - знаешь, что делать дальше! # > по завершении всех заданий, квесты автоматически становятся выполнены. # > прокрутка страниц заданий, если заданий много. # > показ картинок для каждого квеста на странице заданий. # > автовстраивается в игровое меню. Не совместимо с другими сценариями. # ============================================================================= # Заслуги: # - Omegas7: Автор. # - RMVX community: Поддержка. # - Drebenk: Наказал меня, заставив писать этот сценарий (lol). # ============================================================================= # Квесты Omegas Ultimate (Omegas Ultimate Quest) # Инструкции: # Добро пожаловать! Этот сценарий легко использовать, а часто и полезно. # Пожалуйста, ознакомьтесь с нижеследующими инструкциями. # # Шаг 1: Создание собственного квеста. # Сейчас мы создадим свой квест по следующему шаблону кода: # # QUESTS[ID] = [A, B, C, D] # TASKS[ID] = # IMAGES[ID] = "Изображение_квеста" # # ID -> Личный номер Вашего квеста. # A -> Название квеста. В кавычках ' '. # B -> Личный номер переменной для Вашего квеста. # C -> Личный номер иконки "незавершено". # D -> Личный номер иконки "завершено". # # TASKS[ID] - массив заданий квеста. # Задание - строка текста, объясняющая игроку, что ему нужно # именно сейчас сделать по этому квесту. # Например: 'Добудь меч' , 'Добудь щит' , 'Убей зверя' # Эти строки заданий вместе заключаются в квадратные скобки []. # Каждая строка задания заключается в одинарные кавычки ' '. # Все строки заданий разделяются запятыми. # Переменная, выбранная Вами для квеста, будет управлять строками заданий, # т.е. в общем, продвижением по квесту. # Если значение переменной 1, то только 'Добудь меч' будет отображаться. # Если значение переменной 3, то будут отображаться все 3 задания. # # Если значение переменной больше числа заданий, то квест выполнен. # # В нашем примере, если значение переменной больше 3, квест выполнен. # В строках заданий можно показывать значения переменных, написав # \v[ID], ID - личный номер переменной. # Примечание: Строки заданий должны быть в ОДИНОЧНЫХ кавычках ' ', иначе # поддержка переменных может не работать. # # IMAGES[ID] - массив картинок для каждого квеста. # Эти картинки можно выбирать (и не выбирать) по своему вкусу, они # отображаются наверху страницы заданий. # IMAGES[0] = "PICTURE" покажет картинку по имени "PICTURE" # на странице заданий квеста с личным номером 0. # Если не хотите показывать там картинки, поставьте значение nil. # Картинка должна быть в папке Pictures. # Имя картинки должно быть в кавычках. # # У этого сценария есть и другие настройки, смотрите их ниже. # Спасибо, что прочитали! # ============================================================================= # ============================================================================= # * Настройки. # Пожалуйста, внимательно их прочитайте, возможно, Вам нужно что-то менять. # ============================================================================= module OMEGAS7 module QUEST # # Дополнительная X для названия квеста на странице заданий. # По умолчанию название квеста в центре. # Если Вы ставите это значение равным 20, то оно сместится в # центр ПЛЮС 20 пикселей вправо. # Работает и с отрицательными значениями. # EXTRA_TITLE_X = 60 #в непереведенной версии 600, т.е. не отображалось, #т.к. название на картинке написано по-английски # # Размер шрифта названия квеста на странице заданий. # # SIZE_TITLE = 24 #если много ставить, текст обрезается снизу # # Размер шрифта заданий. # SIZE_NORMAL = 18 # # Интервал между строками заданий. # SPACE_EACH_TASK_LINE = 25 # # Применить в главном меню по умолчанию? # Создает пункт в главном меню # для доступа к квестовой системе этого сценария. # Может не работать с пользовательскими/измененными сценариями главного меню. # CREATE_MENU_OPTION = false # # Выравнивание позиции X картинки: -1 = слева, 0 = по центру, 1 = справа. # IMAGE_X_ALIGN = 0 # # Сделать фон на основе экрана карты? По умолчанию = true (да). # CREATE_MENU_BACKGROUND = false # # Использовать выбранный фон (картинку). Нельзя, если выше фон карты true. # nil -> Нет картинки. # 'name' -> Имя картинки в папке pictures. # CUSTOM_BACKGROUND_IMAGE = "QuestLog" # # Очки квестов. Показать окно со значением переменной. # Если не хотите показывать окно очков квестов, # поставьте значение nil. # VARIABLE_FOR_QUEST_POINTS = nil # # Символы пробела перед названием квеста для иконки. # Увеличьте, если иконкам квеста нужно больше места. # SPACES_FOR_ICONS = 4 # # Префикс каждой строки задания. # Текст, отображаемый перед каждой строкой задания. # TASK_LINE_PREFIX = '* ' # QUESTS = [] # <- Не меняйте. TASKS = [] # <- Не меняйте. IMAGES = [] # <- Не меняйте. # # # Здесь создавайте квесты. # QUESTS[0] = TASKS[0] = ['Отнесите Эду его завтрак.', 'Выйдите из города и идите по дороге на юг.', 'Вы передали Эду его завтрак.'] IMAGES[0] = "Q00" # --- QUESTS[1] = TASKS[1] = ['Идите в дубовую рощу к югу от сюда.', 'Убейте там хотя бы 3 огромных осы и вернитесь к Эду.', 'Вам нужно убить еще на \v[3] больше огромных ос.'] IMAGES[1] = "Q01" # --- QUESTS[2] = TASKS[2] = ['Выйдите из города и идите на восток к лесу Тира.', 'Найдите там и соберите хотя бы 5 лекарственных травинок.', 'Ищите их на солнечных полянках поблизости от красных цветов.', 'Когда соберете 5 травинок, вернитесь к Ральфу.', 'Вам нужно собрать еще на \v[2] больше травинок.'] IMAGES[2] = "Q02" # --- QUESTS[3] = TASKS[3] = ['Выйдите из города и идите на восток к лесу Тира.', 'Найдите там поляну к северу от дома старого Норта.', 'Любимый розовый бантик Мелиссы должен быть там.', 'Принесите Мелиссе ее бантик.'] IMAGES[3] = "Q03" # --- QUESTS[4] = TASKS[4] = ['Убейте шесть слизняков на полях вокруг фермы Дональда.', 'После этого вернитесь к Дональду за своей наградой.', 'Вам нужно убить еще на \v[1] больше слизняков.'] IMAGES[4] = "Q04" # --- QUESTS[5] = TASKS[5] = ['Ищите вход в сад Аэрии.', 'Вход должен быть где-то в лесу Тира.', 'Начните поиски на северо-востоке от дома старого Норта.', 'Найдите способ убрать камень, загораживающий проход.', 'Используйте бомбу, чтобы очистить путь в сад Аэрии.', 'Вы нашли тайный сад Аэрии.'] IMAGES[5] = "Q05" # --- QUESTS[6] = TASKS[6] = ['Идите на восток леса Тира и посетите Норта.', 'Его дом находится посреди леса.', 'Поговорите с Нортом о Вашем обучении.'] IMAGES[6] = "Q06" # --- QUESTS[7] = TASKS[7] = ['Чтобы продолжить обучение, обсудите с Нортом все вопросы.', 'Убейте пять пауков в лесу Тира.', 'Вы найдете пауков на левом берегу речки в лесу.', 'Убив хотя бы 5 пауков, вернитесь к Норту.', 'Вам нужно убить еще на \v[4] больше пауков.', 'Идите в пещеру Урга к югу от дома старого Норта и найдите огромный рубин.', 'Вернитесь к Норту, чтобы завершить свое обучение.'] IMAGES[7] = "Q07" # --- QUESTS[8] = TASKS[8] = ['Идите и посмотрите на статую посреди сада.', "Поговорите с загадочной женщиной."] IMAGES[8] = "Q08" # --- QUESTS[9] = TASKS[9] = ['Пройдите испытание Элек, убив две лесных осы.', 'Идите к водопадам Селеса на перевале Дара, чтобы вновь встретиться с Элек.', 'Поговорите с Элек.'] IMAGES[9] = "Q09" # --- QUESTS[10] = TASKS[10] = ['Идите на север от дома Айка и осмотрите заброшенный лагерь.', 'Там должна быть кирка, с помощью которой можно добывать митрил.', 'Идите на перевал Дара, где расположены Эрасская и Каэрская пещеры.', 'Добудьте семь кусков митриловой руды из пещер.', 'После этого возвращайтесь к Айку.', 'Вам нужно добыть еще на \v[5] больше кусков митриловой руды.'] IMAGES[10] = "Q10" # --- QUESTS[11] = TASKS[11] = ['Идите на перевал Дара и ищите Эмера, брата Олера.', 'Отнесите браслет Олеру в таверну Фанни.'] IMAGES[11] = "Q11" # --- QUESTS[12] = TASKS[12] = ['Отнесите записку, данную Вам Густавом, его партнеру Адольфу.', 'Вы найдете Адольфа рядом с фонтаном в городе-столице Даргзаре', 'Отнесите Густаву договор, который Вам дал Адольф.', 'Густав ждет Вас в таверне Фанни в Арасском лесу.'] IMAGES[12] = "Q12" # --- QUESTS[13] = TASKS[13] = ['Соберите шесть коричневых грибов в Арасском лесу.', 'Собрав грибы, вернитесь к Аннушке', 'Вам нужно собрать еще на \v[6] больше коричневых грибов.', 'Отправляйтесь в Даргзар и возьмите мясо у Эзры.', 'Вы найдете Эзру рядом с фонтаном в Даргзаре.', 'Отнесите мясо Аннушке.', 'Возьмите луковицы у тетушки из долины Зари.', 'Отнесите лук Аннушке.'] IMAGES[13] = "Q13" # --- QUESTS[14] = TASKS[14] = ['Ищите шкатулку Хелеи в Эрасской пещере.', 'Ориентируйтесь против часовой стрелки.', 'Вы нашли шкатулку Хелеи.'] IMAGES[14] = "Q14" # --- QUESTS[15] = TASKS[15] = ['Отправляйтесь в город-столицу Даргзар.', 'Ищите в таверне информацию о ключах.', 'Заодно загляните в замок Гламис.'] IMAGES[15] = "Q15" # --- QUESTS[16] = TASKS[16] = ['Поговорите с Франклином насчет фруктов. Он живет через дорогу.', 'Поговорите с Бенджамином насчет гороха.', 'Передайте Франклину извинения Бенджамина.', 'Сообщите Бенджамину, что Франклин принял его извинения.'] IMAGES[16] = "Q16" # --- QUESTS[17] = TASKS[17] = ['Идите на восток от Даргзара и найдите пустыню Хефара.', 'В восточной части пустыни находится форт Дамбер.', 'Ищите в форте Травус жизнис.', 'Вернитесь к доктору Мышкину с этой травой.'] IMAGES[17] = "Q17" # --- QUESTS[18] = TASKS[18] = ['Идите в живой лабиринт во дворе замка.', 'Ответьте на все вопросы Грядки, чтобы войти в лабиринт.', 'Сорвите цветок Сифилис в лабиринт.', 'Вернитесь к Дереку с цветком.'] IMAGES[18] = "Q18" # --- QUESTS[19] = TASKS[19] = ['Идите на восток от Даргзара в пустыню Восточная Хефара.', 'Там ищите два целебных корня. Найдя их, вернитесь к Агнес.', 'Вам нужно собрать еще на \v[7] больше целебных кореньев.'] IMAGES[19] = "Q19" # --- QUESTS[20] = TASKS[20] = ['Идите в Каэрскую пещеру и наберите пять зеленых грибов.', 'Собрав грибы, вернитесь к Джонни.', 'Вам нужно собрать еще на \v[8] больше зеленых грибов.'] IMAGES[20] = "Q20" # --- QUESTS[21] = TASKS[21] = ['Идите в пустыню Хефара и найдите девять перьев райской птицы.', 'Найдя перья, вернитесь к персонажу Хендер.', 'Вам нужно найти еще на \v[10] больше перьев райской птицы.'] IMAGES[21] = "Q21" # --- QUESTS[22] = TASKS[22] = ['Идите на восток от Даргзар и войдите на перевал Эри.', 'Там разыщите мертвые тела двух драконов.', 'Соберите с них четыре когтя дракона.', 'С этими когтями вернитесь к Иэмеру.', 'Вам нужно найти еще на \v[9] больше драконьих когтей.'] IMAGES[22] = "Q22" # --- QUESTS[23] = TASKS[23] = ['Идите на восток от Даргзара в пустыню Хефара.', 'В восточной части этой пустыни находится форт Дамбер.', 'Поищите один из ключей Стихий в сокровищнице форта.', 'Победите лорда Камезара.', 'Возьмите первый ключ Стихии.'] IMAGES[23] = "Q23" # --- QUESTS[24] = TASKS[24] = ['Отдайте отцу Фори Книгу Бытия, данную Вам Режисом.', 'Вы найдете отца Фори в церкви во дворе замка.'] IMAGES[24] = "Q24" # --- QUESTS[25] = TASKS[25] = ['Идите на восток от Даргзара в пустыню Хефара.', 'В восточной части этой пустыни находится форт Дамбер.', 'Ищите книгу "Роматикон слепца" в библиотеке форта.', 'Вернитесь в замок Гламис и отдайте книгу Елене.'] IMAGES[25] = "Q25" # --- QUESTS[26] = TASKS[26] = ['Идите в спальню короля и королевы.', 'Найдите там сборник анекдотов Шута.', 'Верните книгу Шуту.'] IMAGES[26] = "Q26" # --- QUESTS[27] = TASKS[27] = ['Идите на восток от Даргзара и ищите принцессу Лик.', 'Она может быть где-то в пустыне, а в худшем случае - в форте Дамбер.', 'Получите ключ от клетки Лик у лорда Камезара.', 'Верните Лик ее отцу королю Ричарду V.'] IMAGES[27] = "Q27" # --- QUESTS[28] = TASKS[28] = ['Идите на север от Даргзара и войдите в Каверский перевал.', 'Пройдите через перевал и войдите в Молотоград.', 'Ищите там сведения о ключах Стихий.'] IMAGES[28] = "Q28" # --- QUESTS[29] = TASKS[29] = ['Ищите колокольчик Добрушки.', 'Колокольчик должен быть где-то в долине Денри.', 'Верните Ставри этот колокольчик.'] IMAGES[29] = "Q29" # --- QUESTS[30] = TASKS[30] = ['Найдите и выловите шесть пропавших цыплят Ованесы.', 'Цыплята должны быть где-то в долине Денри.', 'Вернитесь к Ованесе, поймав всех ее пропавших цыплят', 'Вам нужно поймать еще на \v[11] больше цыплят.'] IMAGES[30] = "Q30" # --- QUESTS[31] = TASKS[31] = ['Вам нужно убить десять скорпионов в пустыне Хефара.', 'Убив хотя бы десять скопионов, вернитесь к Миндилю.', 'Вам нужно убить еще на \v[12] больше скорпионов.'] IMAGES[31] = "Q31" # --- QUESTS[32] = TASKS[32] = ['Идите на север в Молотоград и найдите там Клару.', 'Вам нужно передать ей письмо от ее сестры Небесны.'] IMAGES[32] = "Q32" # --- QUESTS[33] = TASKS[33] = ['Идите на север в Молоград и выясните, что случилось с Освальдо.', 'Вернитесь к Ивет с кольцом, которое Вам дал Освальдо.'] IMAGES[33] = "Q33" # --- QUESTS[34] = TASKS[34] = ['Идите в Каверский перевал и ищите там арфу Биби.', 'Она полагает, что огры забрали ее арфу к себе в логово.', 'Верните Биби ее арфу.'] IMAGES[34] = "Q34" # --- QUESTS[35] = TASKS[35] = ['Идите в перевал Эста и убейте там шесть оборотней.', 'После убийства шести оборотней вернитесь к Бобу.', 'Вам нужно убить еще на \v[13] больше оборотней.'] IMAGES[35] = "Q35" # --- QUESTS[36] = TASKS[36] = ['Идите на восток от Молотограда на гору Карея.', 'В дальней восточной части горы есть пещера Азеры.', 'Найдите в этой пещере пять ледяных кристалов. Найдя их, вернитесь к Лайку.', 'Вам нужно найти еще на \v[14] больше ледяных кристаллов.'] IMAGES[36] = "Q36" # --- QUESTS[37] = TASKS[37] = ['Идите на восток от Молотограда на гору Карея.', 'В дальней восточной части горы есть пещера Азеры.', 'Проверьте правдивость легенды, рассказанной Вам Дьюаром, о том, что в той пещере хранится ключ.', 'Победите Чудовище', 'Возьмите ключ Стихии, который оно охраняло.', 'Вернитесь к Дьюару за сведениями о местонахождении следующего ключа.'] IMAGES[37] = "Q37" # --- QUESTS[38] = TASKS[38] = ['Идите на Каверский перевал и ищите вход в Ферейскую пещеру.', 'В пещере Вы должны найти шесть огненных кристаллов. После этого вернитесь к Лайку', 'Вам нужно найти еще на \v[15] больше огненных кристаллов.'] IMAGES[38] = "Q38" # --- QUESTS[39] = TASKS[39] = ['Идите и узнайте, есть ли у Лейлы рог дракона.', 'Купите у Лейлы рог дракона.', 'Идите на Каверский перевал и используйте рог дракона, чтобы открыть вход в Ферейскую пещеру.', 'Ищите в пещере один из ключей Стихий.', 'Победите Ивора.', 'Возьмите ключ Стихии, который он охранял.'] IMAGES[39] = "Q39" # --- QUESTS[40] = TASKS[40] = ['Идите на перевал Эста, а затем на восток в долину Дамуса.', 'Ищите башню Дракулы в той долине.'] IMAGES[40] = "Q40" # --- QUESTS[41] = TASKS[41] = ['Найдите три черепа в долине Дамуса.', 'Найдя их, принесите Крену.', 'Вам нужно найти еще на \v[16] больше черепов.'] IMAGES[41] = "Q41" # --- QUESTS[42] = TASKS[42] = ['Ответьте на все вопросы Стикса.', 'Пройдите на второй этаж башни Дракулы.'] IMAGES[42] = "Q42" # --- QUESTS[43] = TASKS[43] = ['Найдите способ попасть в личные покои лорда Дракулы.', 'Найдите способ активировать красный транспортирующий портал.', 'Найдите способ активировать зеленый транспортирующий портал.', 'Найдите способ активировать желтый транспортирующий портал.', 'Войдите в личные покои лорда Дракулы.'] IMAGES[43] = "Q43" # --- QUESTS[44] = TASKS[44] = ['Поговорите с лордом Дракулой.', 'Победите лорда Дракулу.', 'Возьмите ключ Стихии, который он охранял.', 'Поговорите с Элек.'] IMAGES[44] = "Q44" # --- QUESTS[45] = TASKS[45] = ['Поговорите с Элек о местонахождении последних двух ключей Стихий.', 'Скажите Элек, чтобы она отправила Вас в другое измерение.'] IMAGES[45] = "Q45" # --- QUESTS[46] = TASKS[46] = ['Определите местонахождение хранящегося здесь ключа Стихии.', 'Найдите способ активировать красный кристалл телепортации.', 'Найдите способ активировать зеленый кристалл телепортации.', 'Найдите способ активировать фиолетовый кристалл телепортации.', 'Найдите способ активировать желтый кристалл телепортации.', 'Поговорите с темной и загадочной женщиной.', 'Победите Детру.', 'Возьмите ключ Стихии, который она охраняла.'] IMAGES[46] = "Q46" # --- QUESTS[47] = TASKS[47] = ['Определите местонахождение хранящегося здесь ключа Стихии.', 'Найдите способ активировать зеленый кристалл телепортации.', 'Найдите способ активировать фиолетовый кристалл телепортации.', 'Найдите способ активировать красный кристалл телепортации.', 'Найдите способ активировать синий кристалл телепортации.', 'Идите и возьмите последний ключ.', 'Победите Химеру.', 'Возьмите последний ключ, который она охраняла.', 'Поговорите с таинственной женщиной.'] IMAGES[47] = "Q47" #-И так далее, не забывайте, пожалуйста, про запятые, одиночные кавычки и т.д... end end # ============================================================================= # * НАСТРОЙКА ЗАВЕРШЕНА. # ============================================================================= class Omega_Quest < Scene_Base include OMEGAS7::QUEST def initialize @commands_row_max = 0 end def start if CREATE_MENU_BACKGROUND create_menu_background else @background = Sprite_Base.new @background.bitmap = Cache.picture(CUSTOM_BACKGROUND_IMAGE.to_s) end create_commands create_quest_points if VARIABLE_FOR_QUEST_POINTS != nil create_info end def create_quest_points @quest_points = Window_Base.new(396,320,244,80) end def create_commands for i in 0...QUESTS.size if $game_variables[QUESTS[1].to_i].to_i >= 1 @commands_row_max += 1 end end @commands = Omega_Quest_Command.new(300,1,@commands_row_max) end def create_info @done = @commands.return_data @completed = 0 for i in [email protected] @completed += 1 if @done == true end @window_completed = Window_Base.new(396,400,244,80) refresh_info end def refresh_info @window_completed.contents.clear @window_completed.contents.draw_text(0,0,200,24,"Текущие сведения о квестах:") @window_completed.contents.draw_text(0,24,200,24,@completed.to_s + " / " + @commands.return_data.size.to_s + " Завершено.") if @quest_points != nil @quest_points.contents.draw_text(0,0,200,24,"Баллы квестов:") @quest_points.contents.draw_text(0,24,200,24,$game_variables[VARIABLE_FOR_QUEST_POINTS.to_i].to_s) end end def update @commands.update if Input.trigger?(Input::C) if @commands.none? == true Sound.play_buzzer else @id = @commands.action @commands.dispose @window_completed.dispose @quest_points.dispose if @quest_points != nil $scene = Omega_Quest_View.new(@id) end end if Input.trigger?(Input:: @commands.dispose @window_completed.dispose @quest_points.dispose if @quest_points != nil $scene = Scene_Menu.new(4) end end end class Omega_Quest_View < Scene_Base include OMEGAS7::QUEST def initialize(id) @id = id @task_y = 0 @total_height = 0 @scroll = false @final = nil end def start load_image load_tasks end def load_image if IMAGES[@id] != nil @sprite = Sprite_Base.new @sprite.bitmap = Cache.picture(IMAGES[@id].to_s) @sprite.z = 101 case IMAGE_X_ALIGN when -1 @sprite.x = 32 when 0 @sprite.x = (640/2) - (@sprite.width/2) when 1 @sprite.x = 640 - @sprite.width end @sprite.y = 16 @task_y = @sprite.y + @sprite.height + 16 end end def load_tasks @task_y += 24 @tasks = [] for i in 0...TASKS[@id].size if ($game_variables[QUESTS[@id][1].to_i] - 1) >= i @tasks = TASKS[@id].to_s end end @total_height = (@task_y + 20) + (14 * @tasks.size) @tasks.compact! @height = 480 if @total_height > 480 @height = @total_height @scroll = true end @window = Window_Base.new(0,0,640,@height) @window.contents.font.size = SIZE_TITLE @window.contents.clear @window.contents.draw_text(EXTRA_TITLE_X,@task_y - 32,512,24,QUESTS[@id][0].to_s,1) @window.contents.font.size = SIZE_NORMAL @tasks = @tasks.clone @display = [] for i in [email protected] @display = @tasks.clone @display.to_s.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } @display.to_s.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } @window.contents.draw_text(0,(@task_y - 16) + (SPACE_EACH_TASK_LINE * i),512,24,TASK_LINE_PREFIX.to_s + @display.to_s) if (i + 1) >= @tasks.size @final = i + 1 end end if @final != nil and $game_variables[QUESTS[@id][1].to_i].to_i > TASKS[@id.to_i].size @window.contents.draw_text(0,(@task_y - 16) + (SPACE_EACH_TASK_LINE * @final),512,24,'Квест выполнен!') end end def update if @scroll == true if Input.press?(Input::DOWN) if @window.y > (480 - @total_height) @sprite.y -= 1 @window.y -= 1 end end if Input.press?(Input::UP) if @window.y < 0 @sprite.y += 1 @window.y += 1 end end end if Input.trigger?(Input:: @sprite.dispose if @sprite != nil @window.dispose if @window != nil $scene = Omega_Quest.new end end end class Omega_Quest_Command < Window_Selectable include OMEGAS7::QUEST def initialize(width, column_max = 1, row_max = 0, spacing = 32) @none = false create_commands @item_max = @commands.size if row_max == 0 row_max = (@commands.size + column_max - 1) / column_max end @row_max_extra = row_max @column_max = column_max @height = row_max * WLH + 32 @height = 480 if (row_max * WLH + 32) > 480 super(0, 0, width, @height, spacing) refresh self.index = 0 end def create_contents self.contents.dispose self.contents = Bitmap.new(self.width - 32, (@row_max_extra * WLH) ) end def create_commands @commands = [] @done = [] @icons = [] @id = [] for i in 0...QUESTS.size if $game_variables[QUESTS[1].to_i] >= 1 @commands = QUESTS[0].to_s @done = false @done = true if $game_variables[QUESTS[1].to_i] > TASKS.size @icons = QUESTS[2].to_i @icons = QUESTS[3].to_i if @done == true @id = i end end @commands.compact! @done.compact! @icons.compact! @id.compact! if @commands.size == 0 @commands[0] = "Квестов нет ." @none = true end end def refresh self.contents.clear @item_max = @commands.size for i in 0...@item_max @spaces = "" for x in 0...SPACES_FOR_ICONS @spaces += " " end draw_item(i) end end def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) if @done[index] == true self.contents.font.color = Color.new(0,255,0) else self.contents.font.color = Color.new(255,165,0) end self.contents.draw_text(rect, @spaces.to_s + @commands[index].to_s) draw_icon(@icons[index].to_i,rect.x,rect.y) end def return_data return @done end def action return @id[self.index] end def none? return @none end end |
Администратор запретил публиковать записи гостям.
|
[VX] Квестбук 13 года 2 нед. назад #44789
|
Зеро пишет:
я ему вчера так делал)) токо со сценкой но ему скрипт нужен вот этот теперь ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ][ Нажмите, чтобы скрыть ] # ============================================================================= # Omegas7's Quest System Script. # ============================================================================= # Версия: 2.2 (вероятно, окончательная). # Специально для: www.myrpgmaker.com # ============================================================================= # Особенности: # > [ПРАВКА] исправлена ошибка с точечным рисунком окна команд <2.2> # > Менять позицию X названия квеста на странице заданий. <2.1> # > Настраиваемый размер шрифта для названия и заданий квеста. <2.1> # > Настраиваемый интервал между заданиями. <2.1> # > [ПРАВКА] исправлена ошибка с очками квестов. <2.1> # > Легкое создание квестов внутри сценария. # > Вспомогательное окно 'очков квестов', показывающее переменную. # > окно текущих завершенных и незавершенных квестов. # > выбор фоновой картинки по желанию. # > иконки "завершено" и "не завершено" для каждого квеста. # > можно показывать переменные в квестах. # > легкое выполнение квестов благодаря разбиению на задания - знаешь, что делать дальше! # > по завершении всех заданий, квесты автоматически становятся выполнены. # > прокрутка страниц заданий, если заданий много. # > показ картинок для каждого квеста на странице заданий. # > автовстраивается в игровое меню. Не совместимо с другими сценариями. # ============================================================================= # Заслуги: # - Omegas7: Автор. # - RMVX community: Поддержка. # - Drebenk: Наказал меня, заставив писать этот сценарий (lol). # ============================================================================= # Квесты Omegas Ultimate (Omegas Ultimate Quest) # Инструкции: # Добро пожаловать! Этот сценарий легко использовать, а часто и полезно. # Пожалуйста, ознакомьтесь с нижеследующими инструкциями. # # Шаг 1: Создание собственного квеста. # Сейчас мы создадим свой квест по следующему шаблону кода: # # QUESTS[ID] = [A, B, C, D] # TASKS[ID] = # IMAGES[ID] = "Изображение_квеста" # # ID -> Личный номер Вашего квеста. # A -> Название квеста. В кавычках ' '. # B -> Личный номер переменной для Вашего квеста. # C -> Личный номер иконки "незавершено". # D -> Личный номер иконки "завершено". # # TASKS[ID] - массив заданий квеста. # Задание - строка текста, объясняющая игроку, что ему нужно # именно сейчас сделать по этому квесту. # Например: 'Добудь меч' , 'Добудь щит' , 'Убей зверя' # Эти строки заданий вместе заключаются в квадратные скобки []. # Каждая строка задания заключается в одинарные кавычки ' '. # Все строки заданий разделяются запятыми. # Переменная, выбранная Вами для квеста, будет управлять строками заданий, # т.е. в общем, продвижением по квесту. # Если значение переменной 1, то только 'Добудь меч' будет отображаться. # Если значение переменной 3, то будут отображаться все 3 задания. # # Если значение переменной больше числа заданий, то квест выполнен. # # В нашем примере, если значение переменной больше 3, квест выполнен. # В строках заданий можно показывать значения переменных, написав # \v[ID], ID - личный номер переменной. # Примечание: Строки заданий должны быть в ОДИНОЧНЫХ кавычках ' ', иначе # поддержка переменных может не работать. # # IMAGES[ID] - массив картинок для каждого квеста. # Эти картинки можно выбирать (и не выбирать) по своему вкусу, они # отображаются наверху страницы заданий. # IMAGES[0] = "PICTURE" покажет картинку по имени "PICTURE" # на странице заданий квеста с личным номером 0. # Если не хотите показывать там картинки, поставьте значение nil. # Картинка должна быть в папке Pictures. # Имя картинки должно быть в кавычках. # # У этого сценария есть и другие настройки, смотрите их ниже. # Спасибо, что прочитали! # ============================================================================= # ============================================================================= # * Настройки. # Пожалуйста, внимательно их прочитайте, возможно, Вам нужно что-то менять. # ============================================================================= module OMEGAS7 module QUEST # # Дополнительная X для названия квеста на странице заданий. # По умолчанию название квеста в центре. # Если Вы ставите это значение равным 20, то оно сместится в # центр ПЛЮС 20 пикселей вправо. # Работает и с отрицательными значениями. # EXTRA_TITLE_X = 60 #в непереведенной версии 600, т.е. не отображалось, #т.к. название на картинке написано по-английски # # Размер шрифта названия квеста на странице заданий. # # SIZE_TITLE = 24 #если много ставить, текст обрезается снизу # # Размер шрифта заданий. # SIZE_NORMAL = 18 # # Интервал между строками заданий. # SPACE_EACH_TASK_LINE = 25 # # Применить в главном меню по умолчанию? # Создает пункт в главном меню # для доступа к квестовой системе этого сценария. # Может не работать с пользовательскими/измененными сценариями главного меню. # CREATE_MENU_OPTION = false # # Выравнивание позиции X картинки: -1 = слева, 0 = по центру, 1 = справа. # IMAGE_X_ALIGN = 0 # # Сделать фон на основе экрана карты? По умолчанию = true (да). # CREATE_MENU_BACKGROUND = false # # Использовать выбранный фон (картинку). Нельзя, если выше фон карты true. # nil -> Нет картинки. # 'name' -> Имя картинки в папке pictures. # CUSTOM_BACKGROUND_IMAGE = "QuestLog" # # Очки квестов. Показать окно со значением переменной. # Если не хотите показывать окно очков квестов, # поставьте значение nil. # VARIABLE_FOR_QUEST_POINTS = nil # # Символы пробела перед названием квеста для иконки. # Увеличьте, если иконкам квеста нужно больше места. # SPACES_FOR_ICONS = 4 # # Префикс каждой строки задания. # Текст, отображаемый перед каждой строкой задания. # TASK_LINE_PREFIX = '* ' # QUESTS = [] # <- Не меняйте. TASKS = [] # <- Не меняйте. IMAGES = [] # <- Не меняйте. # # # Здесь создавайте квесты. # QUESTS[0] = TASKS[0] = ['Отнесите Эду его завтрак.', 'Выйдите из города и идите по дороге на юг.', 'Вы передали Эду его завтрак.'] IMAGES[0] = "Q00" # --- QUESTS[1] = TASKS[1] = ['Идите в дубовую рощу к югу от сюда.', 'Убейте там хотя бы 3 огромных осы и вернитесь к Эду.', 'Вам нужно убить еще на \v[3] больше огромных ос.'] IMAGES[1] = "Q01" # --- QUESTS[2] = TASKS[2] = ['Выйдите из города и идите на восток к лесу Тира.', 'Найдите там и соберите хотя бы 5 лекарственных травинок.', 'Ищите их на солнечных полянках поблизости от красных цветов.', 'Когда соберете 5 травинок, вернитесь к Ральфу.', 'Вам нужно собрать еще на \v[2] больше травинок.'] IMAGES[2] = "Q02" # --- QUESTS[3] = TASKS[3] = ['Выйдите из города и идите на восток к лесу Тира.', 'Найдите там поляну к северу от дома старого Норта.', 'Любимый розовый бантик Мелиссы должен быть там.', 'Принесите Мелиссе ее бантик.'] IMAGES[3] = "Q03" # --- QUESTS[4] = TASKS[4] = ['Убейте шесть слизняков на полях вокруг фермы Дональда.', 'После этого вернитесь к Дональду за своей наградой.', 'Вам нужно убить еще на \v[1] больше слизняков.'] IMAGES[4] = "Q04" # --- QUESTS[5] = TASKS[5] = ['Ищите вход в сад Аэрии.', 'Вход должен быть где-то в лесу Тира.', 'Начните поиски на северо-востоке от дома старого Норта.', 'Найдите способ убрать камень, загораживающий проход.', 'Используйте бомбу, чтобы очистить путь в сад Аэрии.', 'Вы нашли тайный сад Аэрии.'] IMAGES[5] = "Q05" # --- QUESTS[6] = TASKS[6] = ['Идите на восток леса Тира и посетите Норта.', 'Его дом находится посреди леса.', 'Поговорите с Нортом о Вашем обучении.'] IMAGES[6] = "Q06" # --- QUESTS[7] = TASKS[7] = ['Чтобы продолжить обучение, обсудите с Нортом все вопросы.', 'Убейте пять пауков в лесу Тира.', 'Вы найдете пауков на левом берегу речки в лесу.', 'Убив хотя бы 5 пауков, вернитесь к Норту.', 'Вам нужно убить еще на \v[4] больше пауков.', 'Идите в пещеру Урга к югу от дома старого Норта и найдите огромный рубин.', 'Вернитесь к Норту, чтобы завершить свое обучение.'] IMAGES[7] = "Q07" # --- QUESTS[8] = TASKS[8] = ['Идите и посмотрите на статую посреди сада.', "Поговорите с загадочной женщиной."] IMAGES[8] = "Q08" # --- QUESTS[9] = TASKS[9] = ['Пройдите испытание Элек, убив две лесных осы.', 'Идите к водопадам Селеса на перевале Дара, чтобы вновь встретиться с Элек.', 'Поговорите с Элек.'] IMAGES[9] = "Q09" # --- QUESTS[10] = TASKS[10] = ['Идите на север от дома Айка и осмотрите заброшенный лагерь.', 'Там должна быть кирка, с помощью которой можно добывать митрил.', 'Идите на перевал Дара, где расположены Эрасская и Каэрская пещеры.', 'Добудьте семь кусков митриловой руды из пещер.', 'После этого возвращайтесь к Айку.', 'Вам нужно добыть еще на \v[5] больше кусков митриловой руды.'] IMAGES[10] = "Q10" # --- QUESTS[11] = TASKS[11] = ['Идите на перевал Дара и ищите Эмера, брата Олера.', 'Отнесите браслет Олеру в таверну Фанни.'] IMAGES[11] = "Q11" # --- QUESTS[12] = TASKS[12] = ['Отнесите записку, данную Вам Густавом, его партнеру Адольфу.', 'Вы найдете Адольфа рядом с фонтаном в городе-столице Даргзаре', 'Отнесите Густаву договор, который Вам дал Адольф.', 'Густав ждет Вас в таверне Фанни в Арасском лесу.'] IMAGES[12] = "Q12" # --- QUESTS[13] = TASKS[13] = ['Соберите шесть коричневых грибов в Арасском лесу.', 'Собрав грибы, вернитесь к Аннушке', 'Вам нужно собрать еще на \v[6] больше коричневых грибов.', 'Отправляйтесь в Даргзар и возьмите мясо у Эзры.', 'Вы найдете Эзру рядом с фонтаном в Даргзаре.', 'Отнесите мясо Аннушке.', 'Возьмите луковицы у тетушки из долины Зари.', 'Отнесите лук Аннушке.'] IMAGES[13] = "Q13" # --- QUESTS[14] = TASKS[14] = ['Ищите шкатулку Хелеи в Эрасской пещере.', 'Ориентируйтесь против часовой стрелки.', 'Вы нашли шкатулку Хелеи.'] IMAGES[14] = "Q14" # --- QUESTS[15] = TASKS[15] = ['Отправляйтесь в город-столицу Даргзар.', 'Ищите в таверне информацию о ключах.', 'Заодно загляните в замок Гламис.'] IMAGES[15] = "Q15" # --- QUESTS[16] = TASKS[16] = ['Поговорите с Франклином насчет фруктов. Он живет через дорогу.', 'Поговорите с Бенджамином насчет гороха.', 'Передайте Франклину извинения Бенджамина.', 'Сообщите Бенджамину, что Франклин принял его извинения.'] IMAGES[16] = "Q16" # --- QUESTS[17] = TASKS[17] = ['Идите на восток от Даргзара и найдите пустыню Хефара.', 'В восточной части пустыни находится форт Дамбер.', 'Ищите в форте Травус жизнис.', 'Вернитесь к доктору Мышкину с этой травой.'] IMAGES[17] = "Q17" # --- QUESTS[18] = TASKS[18] = ['Идите в живой лабиринт во дворе замка.', 'Ответьте на все вопросы Грядки, чтобы войти в лабиринт.', 'Сорвите цветок Сифилис в лабиринт.', 'Вернитесь к Дереку с цветком.'] IMAGES[18] = "Q18" # --- QUESTS[19] = TASKS[19] = ['Идите на восток от Даргзара в пустыню Восточная Хефара.', 'Там ищите два целебных корня. Найдя их, вернитесь к Агнес.', 'Вам нужно собрать еще на \v[7] больше целебных кореньев.'] IMAGES[19] = "Q19" # --- QUESTS[20] = TASKS[20] = ['Идите в Каэрскую пещеру и наберите пять зеленых грибов.', 'Собрав грибы, вернитесь к Джонни.', 'Вам нужно собрать еще на \v[8] больше зеленых грибов.'] IMAGES[20] = "Q20" # --- QUESTS[21] = TASKS[21] = ['Идите в пустыню Хефара и найдите девять перьев райской птицы.', 'Найдя перья, вернитесь к персонажу Хендер.', 'Вам нужно найти еще на \v[10] больше перьев райской птицы.'] IMAGES[21] = "Q21" # --- QUESTS[22] = TASKS[22] = ['Идите на восток от Даргзар и войдите на перевал Эри.', 'Там разыщите мертвые тела двух драконов.', 'Соберите с них четыре когтя дракона.', 'С этими когтями вернитесь к Иэмеру.', 'Вам нужно найти еще на \v[9] больше драконьих когтей.'] IMAGES[22] = "Q22" # --- QUESTS[23] = TASKS[23] = ['Идите на восток от Даргзара в пустыню Хефара.', 'В восточной части этой пустыни находится форт Дамбер.', 'Поищите один из ключей Стихий в сокровищнице форта.', 'Победите лорда Камезара.', 'Возьмите первый ключ Стихии.'] IMAGES[23] = "Q23" # --- QUESTS[24] = TASKS[24] = ['Отдайте отцу Фори Книгу Бытия, данную Вам Режисом.', 'Вы найдете отца Фори в церкви во дворе замка.'] IMAGES[24] = "Q24" # --- QUESTS[25] = TASKS[25] = ['Идите на восток от Даргзара в пустыню Хефара.', 'В восточной части этой пустыни находится форт Дамбер.', 'Ищите книгу "Роматикон слепца" в библиотеке форта.', 'Вернитесь в замок Гламис и отдайте книгу Елене.'] IMAGES[25] = "Q25" # --- QUESTS[26] = TASKS[26] = ['Идите в спальню короля и королевы.', 'Найдите там сборник анекдотов Шута.', 'Верните книгу Шуту.'] IMAGES[26] = "Q26" # --- QUESTS[27] = TASKS[27] = ['Идите на восток от Даргзара и ищите принцессу Лик.', 'Она может быть где-то в пустыне, а в худшем случае - в форте Дамбер.', 'Получите ключ от клетки Лик у лорда Камезара.', 'Верните Лик ее отцу королю Ричарду V.'] IMAGES[27] = "Q27" # --- QUESTS[28] = TASKS[28] = ['Идите на север от Даргзара и войдите в Каверский перевал.', 'Пройдите через перевал и войдите в Молотоград.', 'Ищите там сведения о ключах Стихий.'] IMAGES[28] = "Q28" # --- QUESTS[29] = TASKS[29] = ['Ищите колокольчик Добрушки.', 'Колокольчик должен быть где-то в долине Денри.', 'Верните Ставри этот колокольчик.'] IMAGES[29] = "Q29" # --- QUESTS[30] = TASKS[30] = ['Найдите и выловите шесть пропавших цыплят Ованесы.', 'Цыплята должны быть где-то в долине Денри.', 'Вернитесь к Ованесе, поймав всех ее пропавших цыплят', 'Вам нужно поймать еще на \v[11] больше цыплят.'] IMAGES[30] = "Q30" # --- QUESTS[31] = TASKS[31] = ['Вам нужно убить десять скорпионов в пустыне Хефара.', 'Убив хотя бы десять скопионов, вернитесь к Миндилю.', 'Вам нужно убить еще на \v[12] больше скорпионов.'] IMAGES[31] = "Q31" # --- QUESTS[32] = TASKS[32] = ['Идите на север в Молотоград и найдите там Клару.', 'Вам нужно передать ей письмо от ее сестры Небесны.'] IMAGES[32] = "Q32" # --- QUESTS[33] = TASKS[33] = ['Идите на север в Молоград и выясните, что случилось с Освальдо.', 'Вернитесь к Ивет с кольцом, которое Вам дал Освальдо.'] IMAGES[33] = "Q33" # --- QUESTS[34] = TASKS[34] = ['Идите в Каверский перевал и ищите там арфу Биби.', 'Она полагает, что огры забрали ее арфу к себе в логово.', 'Верните Биби ее арфу.'] IMAGES[34] = "Q34" # --- QUESTS[35] = TASKS[35] = ['Идите в перевал Эста и убейте там шесть оборотней.', 'После убийства шести оборотней вернитесь к Бобу.', 'Вам нужно убить еще на \v[13] больше оборотней.'] IMAGES[35] = "Q35" # --- QUESTS[36] = TASKS[36] = ['Идите на восток от Молотограда на гору Карея.', 'В дальней восточной части горы есть пещера Азеры.', 'Найдите в этой пещере пять ледяных кристалов. Найдя их, вернитесь к Лайку.', 'Вам нужно найти еще на \v[14] больше ледяных кристаллов.'] IMAGES[36] = "Q36" # --- QUESTS[37] = TASKS[37] = ['Идите на восток от Молотограда на гору Карея.', 'В дальней восточной части горы есть пещера Азеры.', 'Проверьте правдивость легенды, рассказанной Вам Дьюаром, о том, что в той пещере хранится ключ.', 'Победите Чудовище', 'Возьмите ключ Стихии, который оно охраняло.', 'Вернитесь к Дьюару за сведениями о местонахождении следующего ключа.'] IMAGES[37] = "Q37" # --- QUESTS[38] = TASKS[38] = ['Идите на Каверский перевал и ищите вход в Ферейскую пещеру.', 'В пещере Вы должны найти шесть огненных кристаллов. После этого вернитесь к Лайку', 'Вам нужно найти еще на \v[15] больше огненных кристаллов.'] IMAGES[38] = "Q38" # --- QUESTS[39] = TASKS[39] = ['Идите и узнайте, есть ли у Лейлы рог дракона.', 'Купите у Лейлы рог дракона.', 'Идите на Каверский перевал и используйте рог дракона, чтобы открыть вход в Ферейскую пещеру.', 'Ищите в пещере один из ключей Стихий.', 'Победите Ивора.', 'Возьмите ключ Стихии, который он охранял.'] IMAGES[39] = "Q39" # --- QUESTS[40] = TASKS[40] = ['Идите на перевал Эста, а затем на восток в долину Дамуса.', 'Ищите башню Дракулы в той долине.'] IMAGES[40] = "Q40" # --- QUESTS[41] = TASKS[41] = ['Найдите три черепа в долине Дамуса.', 'Найдя их, принесите Крену.', 'Вам нужно найти еще на \v[16] больше черепов.'] IMAGES[41] = "Q41" # --- QUESTS[42] = TASKS[42] = ['Ответьте на все вопросы Стикса.', 'Пройдите на второй этаж башни Дракулы.'] IMAGES[42] = "Q42" # --- QUESTS[43] = TASKS[43] = ['Найдите способ попасть в личные покои лорда Дракулы.', 'Найдите способ активировать красный транспортирующий портал.', 'Найдите способ активировать зеленый транспортирующий портал.', 'Найдите способ активировать желтый транспортирующий портал.', 'Войдите в личные покои лорда Дракулы.'] IMAGES[43] = "Q43" # --- QUESTS[44] = TASKS[44] = ['Поговорите с лордом Дракулой.', 'Победите лорда Дракулу.', 'Возьмите ключ Стихии, который он охранял.', 'Поговорите с Элек.'] IMAGES[44] = "Q44" # --- QUESTS[45] = TASKS[45] = ['Поговорите с Элек о местонахождении последних двух ключей Стихий.', 'Скажите Элек, чтобы она отправила Вас в другое измерение.'] IMAGES[45] = "Q45" # --- QUESTS[46] = TASKS[46] = ['Определите местонахождение хранящегося здесь ключа Стихии.', 'Найдите способ активировать красный кристалл телепортации.', 'Найдите способ активировать зеленый кристалл телепортации.', 'Найдите способ активировать фиолетовый кристалл телепортации.', 'Найдите способ активировать желтый кристалл телепортации.', 'Поговорите с темной и загадочной женщиной.', 'Победите Детру.', 'Возьмите ключ Стихии, который она охраняла.'] IMAGES[46] = "Q46" # --- QUESTS[47] = TASKS[47] = ['Определите местонахождение хранящегося здесь ключа Стихии.', 'Найдите способ активировать зеленый кристалл телепортации.', 'Найдите способ активировать фиолетовый кристалл телепортации.', 'Найдите способ активировать красный кристалл телепортации.', 'Найдите способ активировать синий кристалл телепортации.', 'Идите и возьмите последний ключ.', 'Победите Химеру.', 'Возьмите последний ключ, который она охраняла.', 'Поговорите с таинственной женщиной.'] IMAGES[47] = "Q47" #-И так далее, не забывайте, пожалуйста, про запятые, одиночные кавычки и т.д... end end # ============================================================================= # * НАСТРОЙКА ЗАВЕРШЕНА. # ============================================================================= class Omega_Quest < Scene_Base include OMEGAS7::QUEST def initialize @commands_row_max = 0 end def start if CREATE_MENU_BACKGROUND create_menu_background else @background = Sprite_Base.new @background.bitmap = Cache.picture(CUSTOM_BACKGROUND_IMAGE.to_s) end create_commands create_quest_points if VARIABLE_FOR_QUEST_POINTS != nil create_info end def create_quest_points @quest_points = Window_Base.new(396,320,244,80) end def create_commands for i in 0...QUESTS.size if $game_variables[QUESTS[1].to_i].to_i >= 1 @commands_row_max += 1 end end @commands = Omega_Quest_Command.new(300,1,@commands_row_max) end def create_info @done = @commands.return_data @completed = 0 for i in [email protected] @completed += 1 if @done == true end @window_completed = Window_Base.new(396,400,244,80) refresh_info end def refresh_info @window_completed.contents.clear @window_completed.contents.draw_text(0,0,200,24,"Текущие сведения о квестах:") @window_completed.contents.draw_text(0,24,200,24,@completed.to_s + " / " + @commands.return_data.size.to_s + " Завершено.") if @quest_points != nil @quest_points.contents.draw_text(0,0,200,24,"Баллы квестов:") @quest_points.contents.draw_text(0,24,200,24,$game_variables[VARIABLE_FOR_QUEST_POINTS.to_i].to_s) end end def update @commands.update if Input.trigger?(Input::C) if @commands.none? == true Sound.play_buzzer else @id = @commands.action @commands.dispose @window_completed.dispose @quest_points.dispose if @quest_points != nil $scene = Omega_Quest_View.new(@id) end end if Input.trigger?(Input:: @commands.dispose @window_completed.dispose @quest_points.dispose if @quest_points != nil $scene = Scene_Menu.new(4) end end end class Omega_Quest_View < Scene_Base include OMEGAS7::QUEST def initialize(id) @id = id @task_y = 0 @total_height = 0 @scroll = false @final = nil end def start load_image load_tasks end def load_image if IMAGES[@id] != nil @sprite = Sprite_Base.new @sprite.bitmap = Cache.picture(IMAGES[@id].to_s) @sprite.z = 101 case IMAGE_X_ALIGN when -1 @sprite.x = 32 when 0 @sprite.x = (640/2) - (@sprite.width/2) when 1 @sprite.x = 640 - @sprite.width end @sprite.y = 16 @task_y = @sprite.y + @sprite.height + 16 end end def load_tasks @task_y += 24 @tasks = [] for i in 0...TASKS[@id].size if ($game_variables[QUESTS[@id][1].to_i] - 1) >= i @tasks = TASKS[@id].to_s end end @total_height = (@task_y + 20) + (14 * @tasks.size) @tasks.compact! @height = 480 if @total_height > 480 @height = @total_height @scroll = true end @window = Window_Base.new(0,0,640,@height) @window.contents.font.size = SIZE_TITLE @window.contents.clear @window.contents.draw_text(EXTRA_TITLE_X,@task_y - 32,512,24,QUESTS[@id][0].to_s,1) @window.contents.font.size = SIZE_NORMAL @tasks = @tasks.clone @display = [] for i in [email protected] @display = @tasks.clone @display.to_s.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } @display.to_s.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } @window.contents.draw_text(0,(@task_y - 16) + (SPACE_EACH_TASK_LINE * i),512,24,TASK_LINE_PREFIX.to_s + @display.to_s) if (i + 1) >= @tasks.size @final = i + 1 end end if @final != nil and $game_variables[QUESTS[@id][1].to_i].to_i > TASKS[@id.to_i].size @window.contents.draw_text(0,(@task_y - 16) + (SPACE_EACH_TASK_LINE * @final),512,24,'Квест выполнен!') end end def update if @scroll == true if Input.press?(Input::DOWN) if @window.y > (480 - @total_height) @sprite.y -= 1 @window.y -= 1 end end if Input.press?(Input::UP) if @window.y < 0 @sprite.y += 1 @window.y += 1 end end end if Input.trigger?(Input:: @sprite.dispose if @sprite != nil @window.dispose if @window != nil $scene = Omega_Quest.new end end end class Omega_Quest_Command < Window_Selectable include OMEGAS7::QUEST def initialize(width, column_max = 1, row_max = 0, spacing = 32) @none = false create_commands @item_max = @commands.size if row_max == 0 row_max = (@commands.size + column_max - 1) / column_max end @row_max_extra = row_max @column_max = column_max @height = row_max * WLH + 32 @height = 480 if (row_max * WLH + 32) > 480 super(0, 0, width, @height, spacing) refresh self.index = 0 end def create_contents self.contents.dispose self.contents = Bitmap.new(self.width - 32, (@row_max_extra * WLH) ) end def create_commands @commands = [] @done = [] @icons = [] @id = [] for i in 0...QUESTS.size if $game_variables[QUESTS[1].to_i] >= 1 @commands = QUESTS[0].to_s @done = false @done = true if $game_variables[QUESTS[1].to_i] > TASKS.size @icons = QUESTS[2].to_i @icons = QUESTS[3].to_i if @done == true @id = i end end @commands.compact! @done.compact! @icons.compact! @id.compact! if @commands.size == 0 @commands[0] = "Квестов нет ." @none = true end end def refresh self.contents.clear @item_max = @commands.size for i in 0...@item_max @spaces = "" for x in 0...SPACES_FOR_ICONS @spaces += " " end draw_item(i) end end def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) if @done[index] == true self.contents.font.color = Color.new(0,255,0) else self.contents.font.color = Color.new(255,165,0) end self.contents.draw_text(rect, @spaces.to_s + @commands[index].to_s) draw_icon(@icons[index].to_i,rect.x,rect.y) end def return_data return @done end def action return @id[self.index] end def none? return @none end end Спасибо Насчёт квеста - я просто спросил как там ставить развилку "есть предмет/нет пердмета" ) |
Администратор запретил публиковать записи гостям.
|
[VX] Квестбук 13 года 2 нед. назад #44791
|
там есть команда условие ветвление не помню на какой странице(( говорю же русский макер скачай и сразу будет понятно где и что
|
Администратор запретил публиковать записи гостям.
|
[VX] Квестбук 13 года 2 нед. назад #44793
|
Зеро пишет:
там есть команда условие ветвление не помню на какой странице(( говорю же русский макер скачай и сразу будет понятно где и что Ладно, спасибо, попробую) |
Администратор запретил публиковать записи гостям.
|
[VX] Квестбук 13 года 2 нед. назад #44794
|
там порядок примерно такой . в ветвление
1 условие предмет есть у героя. 2 сообщение от нпс о вы нашли его ура! на те вам награду нет предмета. собщение эх я все жду а вы так не нашли его. |
Администратор запретил публиковать записи гостям.
|
Re: [VX] Квестбук 11 года 7 мес. назад #55234
|
(прошу прощения, вместо того, чтобы скопировать цитату, нажал "отправить" )
|
Жуть болотная, на лапках, в тапках и с пулемётом...
Последнее редактирование: 11 года 7 мес. назад от Cerberus.
Администратор запретил публиковать записи гостям.
|
|
Время создания страницы: 0.708 секунд