Плохо! Плохо!:  0
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Quest Journal [VXA]: Использование. Общие указания.

  1. #1
    Маститый Аватар для Nalia
    Информация о пользователе
    Регистрация
    18.09.2009
    Адрес
    Пенза
    Сообщений
    1,412
    Записей в дневнике
    105
    Репутация: 87 Добавить или отнять репутацию

    По умолчанию Quest Journal [VXA]: Использование. Общие указания.

    Итак, я обещала Паранойду написать инструкцию к скрипту Quest Journal от modern algebra. Скрипт отличный, с кучей настроек… По правде говоря, их такая куча, что лично я половиной из них не пользовалась, ну да ладно, для не шарящих в английском попробую пояснить все. Скачать скрипт можно тут: http://rmrk.net/index.php/topic,45127.0.html. К сожалению, ни внутри него, ни на сайте не указаны ясно условия пользования. Кому давать кредиты— указано, какие условия пользования— нет. Учитывайте это, если хотите внедрить скрипт в коммерческую игру…
    Обещание надо выполнять, поэтому начну объяснение. Замечу, что исчерпывающим туториалом это не назвать— я половину возможностей скрипта не использовала и не могу по ней ничего посоветовать. Только общие объяснения, как им пользоваться, для тонкой настройки вам нужно разбираться самим.
    Рассмотрим приведённый в самом же скрипте на 780й строчке пример (текст перевела на русский).

    when 1
    q[:name] = "Пропавшая невеста"
    q[:level] = 3
    q[:icon_index] = 7
    q[:description] = "Местная женщина была похищена бандитами в ночь накануне своей свадьбы."
    q[:objectives][0] = "Поговорить с Борисом"
    q[:objectives][1] = "Найти в Призрачном Лесу невесту Бориса, Ладию"
    q[:objectives][2] = "Убить бандитов"
    q[:objectives][3] = "Проводить Ладию к Борису"
    q[:prime_objectives] = [1, 2]
    q[:custom_categories] = []
    q[:banner] = ""
    q[:banner_hue] = 0
    q[:client] = "Борис"
    q[:location] = "Призрачный лес"
    q[:common_event_id] = 0
    q[:rewards] = [
    [:item, 1, 3],
    [:gold, 500],
    ]
    q[:layout] = false

    Вот по такой форме вы и должны описывать квесты в скрипте. Просто копируете её, вставляете, заполняете своей информацией.

    Начнём с первой строчки.

    when 1

    1— это ID квеста. Его номер. Он должен быть уникален: не может быть двух квестов с ID 3, например. Если вы хотите поместить запись о квесте в журнал, изменить задачи квеста, пометить его как выполненный и проваленный— в скриптовой команде (о чём будет ниже), вы должны указать именно ID квеста.


    q[:name] = "Пропавшая невеста"

    Название квеста.

    q[:level] = 3

    Уровень квеста. Вроде бы он отображается не цифрами, а буквами: A, B, C, D и пр. Подробнее см. строку 462. Я эту функцию не использовала, и level у меня всегда был равен нулю (в таком случае уровень не отображается). При желании можно впихнуть в эту категорию не уровень квеста, а, скажем, его тип: «подай-принеси», «найди-убей», «убейся об стену, это стелс-уровень»-- словом, экспериментируйте, авось компьютер не взорвётся.

    q[:icon_index] = 7

    Иконка, которая будет отображаться слева от названия квеста.

    q[:description] = "Местная женщина была похищена бандитами в ночь накануне своей свадьбы."

    Описание квеста. Советую писать коротко, длинный текс в окне смотрится фигово.

    q[:objectives][0] = "Поговорить с Борисом"
    q[:objectives][1] = "Найти в Призрачном Лесу невесту Бориса, Ладию"
    q[:objectives][2] = "Убить бандитов"
    q[:objectives][3] = "Проводить Ладию к Борису"

    Самое главное: задачи квеста. Задача— основная структурная единица квеста. Квест активируется и появляется в журнале, когда вы активируете первую задачу. Квест заканчивается, когда вы заканчиваете основную задачу. Квест заваливается, когда вы заваливаете основную задачу. У задачи тоже есть ID: то число, что в квадратных скобочках. ID не должны повторяться. Обратите внимание, что в примере нумерация начинается с 0; однако ничего не мешает вам начать с 1, чтобы было легче запомнить. Всё-таки счёт мы ведём, начиная с 1. Задач может быть сколько душе угодно: хоть сто, только сами в них не запутайтесь. Например, приведённый выше пример мы можем модифицировать вот так:

    q[:objectives][1] = "Поговорить с Борисом"
    q[:objectives][2] = "Найти ключ от ворот в Призрачный Лес"
    q[:objectives][3] = "Убить призрака, сторожащего Призрачный Мост в Призрачном лесу"
    q[:objectives][4] = "Найти в Призрачном Лесу жену Бориса, Ладию"
    q[:objectives][5] = "Убить бандитов"
    q[:objectives][6] = "Проводить Ладию к Борису"


    Видите? Я начала нумерацию с единицы и добавила парочку дополнительных задач. Впрочем, внизу я всё равно буду использовать в качестве примера не модифицированный квест, так что будьте внимательны.

    q[:prime_objectives] = [1, 2]

    Основные задачи. Если хоть одна из них выполнена— квест выполнен. Если они завалены— квест провален. Что будет, если одна из задач провалена, а другая— выполнена, я не знаю, не пробовала. Здесь тоже можно указывать любое количество задач. Главное— запомните: выполнена одна, выполнен квест.

    Немножечко отвлечёмся от шаблона квеста и скажем пару слов о том, как с ним управляться. Давать квесты, помечать задачи как выполненные и невыполненные— всё это придётся делать вам, ручками, через скриптовые команды. Вот они:

    reveal_objective(quest_id, objective_id_1, ..., objective_id_n)
    conceal_objective(quest_id, objective_id_1, ..., objective_id_n)
    complete_objective(quest_id, objective_id_1, ..., objective_id_n)
    uncomplete_objective (quest_id, objective_id_1, ..., objective_id_n)
    fail_objective(quest_id, objective_id_1, ..., objective_id_n)
    unfail_objective(quest_id, objective_id_1, ..., objective_id_n)

    В каждой команде сначала идёт ID квеста, потом— ID задач. Например, такая команда

    reveal_objective(5, 1, 2, 3)

    будет обращаться к квесту с ID 5 (описание которого в скрипте начинается с when 5) и задачам 1, 2 и 3 (то есть те задачи, описание которых содержится в q[:objectives][1], q[:objectives][2], q[:objectives][3]).

    reveal_objective(quest_id, objective_id_1, ..., objective_id_n) – эта команда открывает новую задачу. Если это первая задача, которую мы открыли в квесте, мы открываем квест, он появляется у нас в журнале. Проиллюстрируем примером: мы узнали, скажем, с доски объявлений, что у Бориса пропала невеста. Высвечиваем перед игроком выбор: Взять квест или не взять? В варианте ответа «Взять квест» отдаём скриптовую команду— reveal_objective (1, 0). То есть активируем задачу 0 квеста 1. Вуаля! У нас в журнале появляется квест: «Пропавшая невеста».
    А если мы, не взяв квест с доски объявлений, бродим по Призрачному Лесу, натыкаемся на лагерь бандитов и видим зовущую на помощь Ладию? Тогда что? Тогда даём игроку выбор— свалить или разобраться с бандитами, и если он решает разобраться— отдаём скриптовую команду: reveal_objective (1, 5, 6). То есть активируем задачи 5 и 6 (убить бандитов и проводить Ладию к жениху) квеста 1. Вуаля!#2 Квест у нас в журнале появляется так же, как и в предыдущем случае, просто начали мы его не с начала, а с середины.

    conceal_objective(quest_id, objective_id_1, ..., objective_id_n) – наоборот, скрыть уже активированную задачу.

    complete_objective(quest_id, objective_id_1, ..., objective_id_n) – выполнить задачу. Например, когда игрок поговорит с Борисом и получит указание, где искать Ладию, нужно отдать скриптовую команду: complete_objective(1, 0). Задача «Поговорить с Борисом» будет отмечаться как выполненная. И, конечно, сразу нужно поставить новую задачу— идти в Призрачный Лес, искать невесту. Сразу же после этой строчки— другая команда: reveal_objective(1, 1). Это активирует новую задачу: «Пойти в призрачный лес и найти Ладию».

    uncomplete_objective (quest_id, objective_id_1, ..., objective_id_n) – пометить уже выполненную задачу как невыполненную. Например, такой квест: принести бабушке 5 волчьих шкур для того, чтобы она сшила одеяло внучке. Ставим параллельное событие: если, значицца, в инвентаре у нас 5 волчьих шкур— complete_objective (n, m). А если игроку втемяшится в голову, собрав 5 шкур, продать одну? Поэтому прописывает в событии ещё одну строчку: если шкур меньше, чем 5— то uncomplete_objective (n, m). (вместо n и m, понятное дело, нужно ставить конкретные числа).
    fail_objective(quest_id, objective_id_1, ..., objective_id_n) – пометить задачу как проваленную. Например, усложнить задачу по поиску Ладии: если мы не найдём её до вечера, бандиты продадут её в рабство и Борису придётся распрощаться со своей невестой. То есть когда по игровому времени подоходит вечер, мы проверяем: выполнен ли квест 1? Если нет, то— fail_objective(1, 1). То есть задача 1 (Найти Ладию) провалена. Поскольку это основная задача, провален и квест. Если задача не основная, то её завал не означает завал квеста. Помните Ассассинс Крид? Задача: убить Х. Промежуточные задачи: выполнить задание скрытно, убить Х из пистолета. Если мы ввязались в драку— то промежуточная задача «выполнить задание скрытно» провалена. Если мы убили Х кинжалом— промежуточная задача «убить Х их пистолета» провалена. Но это не помешает нам выполнить основную задачу— убить Х.


    unfail_objective(quest_id, objective_id_1, ..., objective_id_n) – расфейлить сфейленную задачу. То есть пометить проваленную задачу как не проваленную.

    q[:custom_categories] = []

    Категории, к которым относится квест. По умолчанию, категорий 4— Все квесты, Активные квесты, Выполненные Квесты, Проваленные квесты. Если вы начали, но не закончили квест, он будет отображаться во второй категории; выполнили—в третей; не выполнили—в четвёртой; и, конечно, в первой можно просмотреть все квесты вообще. Ах да, что насчёт пункта в шаблоне? Ну, он нужен тогда, когда у вас какие-то свои категории, например, «Личные квесты», «Квесты сопартийцев», «Квесты организации»… Этот механизм настраивается в другом месте, я с ним не работала и советов дать не могу, извиняйте, тут вам нужно разбираться самим. Эту строчку я всегда оставляла пустой.

    q[:banner] = ""

    Картинка для квеста. Тут должно содержаться название файла, который лежит в папке Pictures. В каком месте картинка отображается и какого формата она должна быть— не знаю, не использовала.

    q[:banner_hue] = 0

    Тон картинки.

    q[:client] = "Борис"

    Тот, кому вы должны сдать квест. Соответствующее указание будет в журнале. Кроме этого указания, ни на что не влияет. Я не использовала.

    q[:location] = "Призрачный лес"

    Место, где вы должны выполнить квест. Соответствующее указание будет в журнале. Кроме этого указания, ни на что не влияет. Я не использовала.

    q[:common_event_id] = 0

    Номер общего события, которое запустится, когда квест завершён. Даже сам автор не советует использовать эту опцию— лучше контролировать такие вещи через события, а не через скрипт, мало ли где может глюкнуть.
    q[:rewards] = [
    [:item, 1, 3],
    [:gold, 500],

    Награды за квест. Тоже чисто пометка в журнале, автоматически они не дадутся, нужно выдавать через события. Награды оформляем таким образом:

    [:item, ID, n] – вещь
    [:weapon, ID, n] – оружие
    [:armor, ID, n] – броня
    [:gold, n]— золото
    [:exp, n]— опыт

    ID означает номер вещи в базе данных, n— количество. Можете прописать и кастомную награду таким образом:

    [:string, icon_index, "string", "vocab"]

    Например: [:string, 1, "Перт смерти", "(обучению заклинанию)"]

    У нас отобразиться следующее:

    иконка 1— (обучение заклинанию) – Перст смерти

    В любом случае, я это не использовала.

    q[:layout] = false

    Оформление квеста. Отвечает за порядок, в котором будут располагаться надписи, описание и т.п. Если поставить true, то он будет использовать настройки пользователя, которые делаются где-то в другом месте скрипта. Не использовала, ничего посоветовать не могу.

    Теперь немного о настройках. Начинаются со строчки 234. Половину из них не использовала, поэтому скажу лишь о тех, какие использовала:

    MENU_ACCESS = true

    Будет ли журнал отображаться как один из пунктов меню. True— да, false— нет. Также его можно вызвать, дав скриптовую команду

    call_quest_journal

    Или

    call_quest_journal(quest_id)

    Где quest_id— номер квеста, на котором вы хотите открыть журнал.

    MENU_INDEX = 4

    Каким по порядку пунктом меню он будет.

    MAP_ACCESS = false

    Можно ли его вызывать на карте нажатием клавиши (true— можно, false— нельзя).

    MAP_BUTTON = :L

    Какая клавиша будет открывать журнал. Понятно, если предыдущее значение выставлено на false, то никакая.

    OPEN_TO_LAST_REVEALED_QUEST = true
    OPEN_TO_LAST_CHANGED_QUEST = false

    На какой странице открывать журнал. Если первое— true, то будет показываться последний полученный квест. Если второе— true, то будет показываться последний изменённый квест (например, который вы завершили, или провалили, или открыли новую задачу).

    ICONS = {
    all: 184,
    active: 187,
    complete: 189,
    failed: 185,
    client: 121,
    location: 231,
    reward_gold: 262,
    reward_exp: 117,
    }

    Номера иконок, которые будут обозначать, соответственно: раздел со всеми квестами; раздел активных квестов; раздел завершённых квестов; раздел заваленных квестов; квестодателя; локацию квеста; награду золотом; награду экспой.

    Если хотите русифицировать скрипт, просто-напросто замените следующие строки на строки, приведённые ниже:

    337-364

    VOCAB = {
    #Название для пункта меню, отвечающего собственно за журнал.
    menu_label: "Задания",
    #Название, которое будет высвечиваться собственно в журнале.
    scene_label: "Задания",
    # Название, которое будет высвечиваться над описанием квеста.
    description: "Описание",
    # Название, которое будет высвечиваться над описанием задач.
    objectives: "Задачи",
    #Знак, который будет высвечиваться перед каждой задачей в списке. Если поставить #сочетание %d означает номер задачи.
    objective_bullet: "◊ ",
    # Заглавие, которое будет высвечиваться над описанием награды.
    rewards: "Награда",
    # Значок, который будет обозначать количество чего-то там в награде. %d обозначает #собственно количество. То есть награда в 5 чего-то там будет заканчиваться на «x5». Если поставить вместо x, скажем, *, то это будет «*5».
    reward_amount: "x%d",
    #Заглавие для золота, которое герой получит за квест.
    reward_gold: "Деньги",
    # Заглавие для опыта, которое герой получит за квест.
    reward_exp: "Опыт",
    # Уровень квеста
    level: "Уровень: ",
    # Место квеста
    location: "Место:",
    # Квестодатель
    client: "Заказчик",
    }

    Строки 387-391:

    CATEGORY_VOCAB = {
    :all => "Все", # Заглавие для категории для всех квестов,
    :active => "Активные", # активных квестов,
    :complete => "Законченные", # Законченных квестов,
    :failed => "Проваленные", # Проваленных квестов.
    }


    Вот и всё. Как я и говорила— это не полноценный туториал. Это лишь общие указания. Они позволят использовать скрипт, но не позволят его тонко настроить. Для последнего вам нужно учить английский и вникать в инструкции самого автора— благо они подробные.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

    Надо работать, работать надо. Ремешки под касками затянуть потуже, шинели в порядок привести, в кобуру засунуть трудолюбие 36 калибра и марш за мейкер! (с) Tall Men

  2. #2
    Бывалый Аватар для caveman
    Информация о пользователе
    Регистрация
    15.02.2013
    Сообщений
    766
    Записей в дневнике
    47
    Репутация: 85 Добавить или отнять репутацию

    По умолчанию

    Бесит этот скрипт тем, что, когда взял квест, его данные уже не изменить, так как оно копирует из данных нараз и не меняет их.
    То есть, если в новой версии что-то с этим делом пофиксил (хотя бы опечатку в шаге квеста или иконку), то в старых сейвах косяк останется.
    back to the primitive

    http://cavemangame.blogspot.ru/ - разные идеи и новости
    http://cavescripts.blogspot.ru/ - мои скрипты
    http://cavecrusader.blogspot.ru/ - текущий проект

  3. #3
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,776
    Записей в дневнике
    34
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    А ты его в ДДД используешь или какой другой надыбал?
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  4. #4
    Бывалый Аватар для caveman
    Информация о пользователе
    Регистрация
    15.02.2013
    Сообщений
    766
    Записей в дневнике
    47
    Репутация: 85 Добавить или отнять репутацию

    По умолчанию

    Его использую, убрал только половину функционала
    back to the primitive

    http://cavemangame.blogspot.ru/ - разные идеи и новости
    http://cavescripts.blogspot.ru/ - мои скрипты
    http://cavecrusader.blogspot.ru/ - текущий проект

  5. #5
    Маститый Аватар для Alisa
    Информация о пользователе
    Регистрация
    29.08.2013
    Сообщений
    1,432
    Записей в дневнике
    8
    Репутация: 76 Добавить или отнять репутацию

    По умолчанию

    http://sourceforge.net/projects/logi....2.7z/download
    Программа которая упрощает работу с этим скриптом при создании квеста. При переходе на ссылку, загрузка начнётся автоматически.

  6. #6
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,776
    Записей в дневнике
    34
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Alisa Посмотреть сообщение
    http://sourceforge.net/projects/logi....2.7z/download
    Программа которая упрощает работу с этим скриптом при создании квеста. При переходе на ссылку, загрузка начнётся автоматически.
    Можно ссылку на посмотреть? Интерфейс там, описание.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  7. #7
    Гость Аватар для DesKarD
    Информация о пользователе
    Регистрация
    01.08.2015
    Адрес
    город Ромдо
    Сообщений
    486
    Записей в дневнике
    2
    Репутация: 14 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Alisa Посмотреть сообщение
    http://sourceforge.net/projects/logi....2.7z/download
    Программа которая упрощает работу с этим скриптом при создании квеста. При переходе на ссылку, загрузка начнётся автоматически.
    Paranoid, не качай. У программы отсутствует dll
    Зря трафик просрёшь ;D

    Как я понял речь идёт о вот этой штуке http://steamcommunity.com/sharedfile.../?id=314403878
    Последний раз редактировалось DesKarD; 23.01.2016 в 17:59.

  8. #8
    Маститый Аватар для Alisa
    Информация о пользователе
    Регистрация
    29.08.2013
    Сообщений
    1,432
    Записей в дневнике
    8
    Репутация: 76 Добавить или отнять репутацию

    По умолчанию

    Я вот только не могу разобраться. Как создать команду проваленного квеста?

  9. #9
    Хранитель Аватар для Paranoid
    Информация о пользователе
    Регистрация
    22.12.2014
    Сообщений
    2,776
    Записей в дневнике
    34
    Репутация: 28 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от DesKarD Посмотреть сообщение
    Paranoid, не качай. У программы отсутствует dll
    Зря трафик просрёшь ;D

    Как я понял речь идёт о вот этой штуке http://steamcommunity.com/sharedfile.../?id=314403878
    Тогда я лучше из стима загружу.
    Лицензионный VX Ace. Спасибо Петр.
    2 года мукеризма в пустую.

  10. #10
    Маститый Аватар для Alisa
    Информация о пользователе
    Регистрация
    29.08.2013
    Сообщений
    1,432
    Записей в дневнике
    8
    Репутация: 76 Добавить или отнять репутацию

    По умолчанию

    А всё разобралась. Только получилось схитрить. Вот эта команда fail_objective(1, 1), но она настроена на провал условий. Я решила не заморачиватся и сделать так, что если квест провален, то провалены и условия

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Quest Journal [VXA]: Использование. Общие указания.