Плохо! Плохо!:  0
Показано с 1 по 10 из 10

Тема: Choice Options & Large Choice

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

    Heart Choice Options & Large Choice

    Название: Choice Options, Large Choice
    Мейкер: Ace
    Автор: Tsukihime
    Ссылки: Choice Options, Large Choice



    Этот скрипт послужил одной из причин того, почему я перешла с ХР на Асе. Честно. Что же такого он умеет, спросите вы? Если говорить общими словами, то он позволяет управлять вариантами выбора в диалоге. Того самого, что вызывается командой show choice.
    Настоятельно рекомендуется использовать этот скрипт вместе со скриптом Large Choice того же автора-- Tsukuhime. Large choice позволяет сливать несколько выборов в один многовариантный: например, вставили вы команду выбора между А, Б, В и Г, а потом сразу же другую, между Д, Е, Ё и Ж, а на экране отобразилось полотнище выбора аж в восемь строчек: от А до Ж. Только внимательнее: между двум командами Show Choice не должно быть никаких других команд, даже комментария! Вставлять этот скрипт требуется над Choice Options непосредственно.
    Но вернёмся к Choice options и его вкусным возможностям. Всего возможностей у него четыре, две из которых очень вкусные, а без оставшихся двух можно обойтись. Поэтому расскажем сначала о первых двух. Итак, этот скрипт позволяет-- та-дам! -- скрывать или делать неактивными варианты выбора в зависимости от каких-либо условий. Скажем, с помощью этого скрипта вы можете сделать реплику убеждения непися неактивной, "серой", если у героя нет соответствующего навыка. Или спрятать выбор "показать грамоту с королевской печатью", если оной вещи у героя в инвентаре нет. Ну что, уже очарованы? А теперь о том, как это сделать.

    Вызывается скрипт перед вызовом выбора. Не обязательно непосредственно перед ним: его и команду Show Choice могут разделять другие команды. Вызывается он, понятное дело, через команду Script..., где прописывается:

    Hide_choice (номер выбора, 'условие')
    Disable_choice (номер выбора, 'условие')

    Прятать и делать неактивным вариант с указанным номером соответственно.

    Номер выбора-- это порядковый номер того варианта, который вы хотите заблокировать/спрятать в зависимости от условий. Скажем, если в примере, приведённом выше, я хочу спрятать/заблокировать вариант А, я напишу вариант выбора 1. Если вариант Г-- 4. Если я пользуюсь ещё и скриптом Large Choice и хочу заблокировать варианты Д и Ё, я должна прописать в скрипте номера 5 и 7 соответственно.

    Теперь насчёт условия. Тут сложнее. Условие должно представлять собой скриптовую строку в кавычках. Например, "$game_variables[5] > 4". В переводе со скриптового на русский, "ЕСЛИ переменная с ID 5 БОЛЬШЕ четырёх". Таким образом, вызов скрипта
    Hide_choice (1, "$game_variables[5] > 4")
    Заставит игру прятать вариант 1, если переменная номер пять больше 4.
    Да, это сложнее, понимаю. Хотя знание скриптинга тут нужно элементарное. На моём уровне примерно (а он выше нуля на один градус, не более). Впрочем, таким, как мы с вам, ламерам хватит двух условий-- проверки значения переменной и проверки, включён ли переключатель. Нужные значения в переменную/переключатель можно засунуть уже средствами команд мейкера.

    Спойлер Условия:
    Итак, условия с переменными:

    $game_variables[X] > N - ЕСЛИ переменная Х больше N
    $game_variables[X] < N - ЕСЛИ переменная Х меньше N
    $game_variables[X] == N - ЕСЛИ переменная Х равна N
    $game_variables[X] != N - ЕСЛИ переменная Х не равна N

    Вместо N можно поставить другую переменную, например:

    $game_variables[X] > $game_variables[N] - ЕСЛИ переменная Х больше переменной N
    $game_variables[X] == $game_variables[N] - ЕСЛИ переменная Х равна переменной N

    С переключателями:

    $game_switсhes[X] - ЕСЛИ переключатель Х включён (да-да, прямо так, безо всяких равно!)
    not $game_switсhes[X] - ЕСЛИ переключатель Х ВЫключён

    Ну и до кучи:

    $game_actors[X].class_id == N - ЕСЛИ персонаж Х имеет класс N
    $game_actors[X].class_id != N - ЕСЛИ персонаж Х НЕ имеет класса N

    $game_actors[X].name = "N" ЕСЛИ персонаж Х носит имя "N"
    $game_actors[X].name != "N" ЕСЛИ персонаж Х не носит имя "N"

    Внимание! Имя непременно должно быть заключено в кавычки. Если само условие вы заключаете в двойные кавычки ("...."), то имя должно быть заключено в одинарные ('...'), и наоборот.

    Внимание 2! Условие всегда должно быть в кавычках! Иначе у вас с мукером возникнет сильное недопонимание. Сильнейшее, я бы сказала.


    Если это понятно, то можно перейти к другим функциям скрипта. Впрочем, на фоне первых они не столь великолепны и служат скорее для украшательства.

    color_choice(номер варианта, номер цвета)

    Позволяет покрасить вариант в нужный тебе цвет. Аналогично коду \c[n], одним словом. Не совсем понятно, зачем это нужно: код нормально работает и в выборах. Хотя, возможно, в каких-то версиях не работает... Или просто чтобы длину строки не уменьшать, ведь там каждый символ на счету? Впрочем, и от последнего скрипт тоже предоставляет лекарство.

    text_choice(номер варианта, 'текст')

    Позволяет прописать в варианте с указанным номером текст 'текст'. То есть любой, какой вы напишите в скрипте, только не забудьте кавычки. Это позволяет обходить ограничение мейкера в 50 символов (в редакторе большее количество символов, считая пробелы, впихнуть не позволят). В то время как экспериментальным путём с помощью данного скрипта выяснено, что при использовании того шрифта, что в мукере по умолчанию, нормально умещается примерно 64 с половиной символа. Правда, проблема в том, что скрипт сожрёт строчку любой длины-- хоть полкилометра-- да только в окно выбора влезет лишь часть. Выход-- уменьшить размер шрифта. Это делается с помощью кода \}. Работает и в самом Show Choice, и в скрипте. Т.е. вы можете спокойно прописать text_choice(1, '\}Я люблю мукер!!!!!111111'), и это даст такое же результат, если вы пропишите в редакторе в первой строчке Show Choice "\}Я люблю мукер!!!!!111111".

    Спойлер Объяснение с картинками:


    Я использую код в самом скрипте (код выделен):



    Я использую код непосредственно в строке выбора (код также выделен):



    Результат один:







    Предупреждение: после этого шрифт уменьшится во всех сообщениях и выборах, и при желании его необходимо увеличить обратно кодом \{.


    Вот, собственно и всё, что можно сказать об этом скрипте. Глюк с ним не замечено, в русификации необходимости нет. На сладкое-- небольшой рецепт, как с помощью этого скрипта сделать влияние характеристик персонажа на диалоги (для новичков).

    Спойлер Гид для новичков, или как с помощью этого скрипта делать влияние на диалоги:
    Вспомним плейнскейп, эту икону олдскула. Или арканум, не меньшую икону. Или фоллаут. В общем, везде на то, выпадет тот или иной вариант в диалоге, влияли определённые факторы, в том числе-- харизма персонажа, или его интеллект, или его навыки. В новом и нисколько не олдскульном масс эффекте есть такая штука, как очки парагона/ренегата-- первые получаешь за вежливое общение и стремление решать конфликты мирно, вторые-- за грубые и резкие слова и действие. Первые повышают твою способность к дипломатии, вторые-- к запугиванию. Иначе говоря, чем больше ты миришь всех, тем лучше ты умеешь это делать, чем больше ты гавкаешь, тем лучше ты гавкаешь. В ДА2 пошли ещё дальше: там к очкам "миротворца" и "гопника" добавились очки "петросяна"-- чем чаще ты шутишь или пытаешься устраниться от решения конфликта, тем лучше у тебя получается... обманывать. Одним словом, механизмом влияния на то, доступны те или иные диалоговые опции, много.
    Но как это реализовать?
    Элементарно. Через Parallel Event. Создаём параллельный ивент. В его рамках постоянно рассчитываем значения переменной, которая отвечает за уровень харизмы персонажа. Например, харизма равна LUK + 100 (если у персонажа класс барда)/ +50 (если класс паладина) /-50 (если класс варвара). Если на герое экипировано кольцо харизмы, то он получает ещё +100. Если у него в партии другой герой, бард, то он получает ещё +200. Потом, в диалоге, просто-напросто ставим с помощью этого скрипта условье: ежели величина переменной Charisma, скажем, ниже 500, то реплика, позволяющая убеждить стражника отдать свою куртку, очки и мотоцикл, недоступна. Неактивна или вообще не появляется.
    Конечно, в приведённом выше примере все числа умозрительны. Вы можете создавать свои формулы, сколь угодно вычурные. К тому же кто сказал, что обязательна должна быть одна Charisma? Возможно, вам стоит сделать отдельно Убеждение, Запугивание, Соблазнение, Давление Интеллектом, Давление авторитетом, Умение Ломать Собеседнику Шею Прежде Чем Он Закончит Говорить? Одним словом, полная свобода творчества.
    Чему способствует этот маленький, но очень полезный скрипт.
    Последний раз редактировалось Nalia; 28.07.2015 в 21:56.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

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

  2. #2
    Авторитет Аватар для Hosse
    Информация о пользователе
    Регистрация
    23.03.2010
    Адрес
    Королёв
    Сообщений
    1,595
    Записей в дневнике
    49
    Репутация: 26 Добавить или отнять репутацию

    По умолчанию

    Спасибо, отличная штука! Как раз такую искал
    Творчество, никак с играми не связанное:
    https://vk.com/amjee
    https://vk.com/r2space
    Моя рожа и всякий рэпчик живьём: https://www.instagram.com/rap_amjeenickyry/

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

    По умолчанию

    Открылась неприятная особенность: на один пункт диалога можно навесить только одно условье. То есть нельзя, скажем, сделать так, чтобы одина строчка показывалась и если включён переключатель 1, и если включён переключатель 2. Будет учитываться лишь последнее условие.
    Я отрицаю вашу реальность и заменю её своей. (c) Джон Адам Севидж

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

  4. #4
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    856
    Репутация: 72 Добавить или отнять репутацию

    По умолчанию

    Не может быть, я помню что все работало. Напиши вот так:
    hide_choice(1, "$game_switches[1] == true && $game_switches[2] == true")
    должно работать, хотя я пока не могу проверить

  5. #5
    Местный Аватар для Наблюдатель
    Информация о пользователе
    Регистрация
    01.01.2013
    Адрес
    Мрак
    Сообщений
    189
    Записей в дневнике
    25
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Ну как я понял скрипт позволяет укоротить количество ивентов, довольно не плохо, но нужно довести до ума.
    P.S. Совершенству нет предела.

  6. #6

    По умолчанию

    Возможно, вам стоит сделать отдельно Убеждение, Запугивание,
    Немного не по теме, но вот что интересует - можно ли добавить пункт в меню, где будут прописаны эти характеристики? Проще говоря, добавить свою характеристику в игру и чтобы ее можно было где-нибудь просматривать (и где она обновляется).

  7. #7

    По умолчанию

    Цитата Сообщение от dirge Посмотреть сообщение
    Не может быть, я помню что все работало. Напиши вот так:
    hide_choice(1, "$game_switches[1] == true && $game_switches[2] == true")
    должно работать, хотя я пока не могу проверить
    Спасибо за подсказку. Действительно это работает и даже так:
    hide_choice(1, "$game_switches[1] == false || $game_switches[2] == false ||
    $game_switches[3] == false")
    Т.е. можно и три условия повесить при необходимости.
    Последний раз редактировалось ZoWW; 20.08.2017 в 09:40.

  8. #8

    По умолчанию

    Тем кто только начинает в мейкере иногда трудно разобраться с применением скриптов (по себе знаю). А эти два скрипта мне кажутся особенно полезными в создании вариативных игровых диалогов и поэтому, для тех кто не разобрался самостоятельно или не может найти применения, предлагаю демку с двумя готовыми вариантами конструкций "убывающих" диалогов. Скачать демо
    Последний раз редактировалось ZoWW; 20.08.2017 в 13:53.

  9. #9
    Авторитет Аватар для David Kristens
    Информация о пользователе
    Регистрация
    27.09.2010
    Сообщений
    1,688
    Записей в дневнике
    149
    Репутация: 66 Добавить или отнять репутацию

    По умолчанию

    Аналог на МВ есть?

  10. #10
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    2,409
    Записей в дневнике
    6
    Репутация: 97 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от David Kristens Посмотреть сообщение
    Аналог на МВ есть?
    Есть.
    Первые плагины Event Tools
    http://himeworks.com/mv-plugins/

    Совместимы с этим кстати.
    https://galvs-scripts.com/category/r...cts/#post-1614

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

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

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

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

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •