ввод текста с клавиатуры под MV

Оратор Паладин Даритель Стимкея Проект месяца 1 место Проект месяца 2 место Проект месяца 3 место 2 место Готв 2 место За 3 место на конкурсе маппинга
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87278 от Sypherot
Нужен скрипт, позволяющий вводить текст с клавиатуры с проверкой на "правильность" слова\предложения и чтобы окно ввод текста вызывалось через событие. То есть: игрок подходит к, скажем, камню с зашифрованной надписью, командой события вызывается картинка с этой надписью и окно, в котором игрок набирает какой-то текст, и если текст верен, то что-то происходит, а если нет - то не происходит ничего вообще (ни предупреждающих сигналов, ни чего-либо еще). Как-то так.
з.ы. волшебное искусство "Гугл-фу" не помогло, так что "гугл в помощь" - не вариант.

Всего хорошего, и спасибо за рыбу
Последнее редактирование: 10 года 5 мес. назад пользователем Sypherot.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
10 года 5 мес. назад #87359 от EvilCat
"Это же можно переделать из окна ввода имени персонажа за двадцать минут!" подумала я :\ И спустя сутки и около 250 строк кода - держи .
Спасибо сказали: DeadElf79, Ren310, KageDesu

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Оратор Паладин Даритель Стимкея Проект месяца 1 место Проект месяца 2 место Проект месяца 3 место 2 место Готв 2 место За 3 место на конкурсе маппинга
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87363 от Sypherot

EvilCat пишет: "Это же можно переделать из окна ввода имени персонажа за двадцать минут!" подумала я :\ И спустя сутки и около 250 строк кода - держи .

Попробовал этот скрипт, но мне нужен именно вод текста с клавиатуры, то есть игрок должен именно печатать текст, а не выбирать буквы в окне, да и 8 символов маловато будет, поскольку предполагается ввод целых предложений.

Всего хорошего, и спасибо за рыбу
Последнее редактирование: 10 года 5 мес. назад пользователем Sypherot.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
10 года 5 мес. назад #87370 от EvilCat
В плагине допускается ввод до 16 символов.

Ввод предложений с клавиатуры сделать не возьмусь, потому что там работы точно будет больше %)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87371 от Lekste
Примерно так:
ВНИМАНИЕ: Спойлер!


Но там еще нужно добавить красивостей, возможно, улучшить проверку ответа и что-нибудь еще улучшить. :)
Вызов командой: Имя плагина open "Правильный ответ"
Последнее редактирование: 10 года 5 мес. назад пользователем Lekste.
Спасибо сказали: Lucin, EvilCat

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
10 года 5 мес. назад #87372 от EvilCat
Code:
var sceneName = SceneManager._scene.constructor.name; return (sceneName === "Scene_Answer");

Можно заменить на:
Code:
SceneManager._scene.constructor===Scene_Answer;

Или даже:
Code:
SceneManager._scene instanceof Scene_Answer;
(этот вариант - если у класса Scene_Answer не предполагаются классы-потомки или если потомки устраивают в данной проверке).
Спасибо сказали: Lekste, poca

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Оратор Паладин Даритель Стимкея Проект месяца 1 место Проект месяца 2 место Проект месяца 3 место 2 место Готв 2 место За 3 место на конкурсе маппинга
Больше
10 года 5 мес. назад #87383 от Sypherot

Lekste пишет: Примерно так:

ВНИМАНИЕ: Спойлер!


Но там еще нужно добавить красивостей, возможно, улучшить проверку ответа и что-нибудь еще улучшить. :)
Вызов командой: Имя плагина open "Правильный ответ"

Через команду плагина не вызывается вообще (то есть ничего не происходит), при вызове через скрипт выдает ошибку

Всего хорошего, и спасибо за рыбу

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87388 от Lekste
ВНИМАНИЕ: Спойлер!


Заменил отдельную сцену на сцену карты.
Возникла проблема - после нажатия кнопки "Ок", нажатие на карте тоже срабатывает и ивент запускается заного.
Если кто знает как избежать этого, буду рад, если поправите - я уже устал воевать с этим странным двигом.

Результат ответа игрока можно узнать из SceneManager._scene._answerInputWindow.isPlayerAnswered:
true - ответил верно
false - закрыл окно так и не дав правильного ответа
Последнее редактирование: 10 года 5 мес. назад пользователем Lekste.
Спасибо сказали: Lucin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87390 от EvilCat
Надо как-то поставить интерпретатор на паузу до разрешения ввода - возможно, подсмотреть, как делается команда Wait. (У меня сейчас MV не под рукой.)

P.S. Похоже, ты уже подсмотрел...
Последнее редактирование: 10 года 5 мес. назад пользователем EvilCat.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87391 от Lekste
Угу. Я пробовал и так, и код последней клавиши с её состоянием обнулять после скрытия окна, и устанавливать флаг необходимости закрытия, а потом ждать пока Input сбросит состояние кнопки.
Ничего не помогло. Либо открывается ивент, либо бесконечный цикл.

Аааа. Я похоже ошибку нашёл - в updateWaitingMode неправильно состояние waiting устанавливается. Нужно отрицание убрать. :)
Последнее редактирование: 10 года 5 мес. назад пользователем Lekste.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87791 от Lekste
Все. Сделал.

Скрипт:
ВНИМАНИЕ: Спойлер!


Пример:
ВНИМАНИЕ: Спойлер!


Демка:
yadi.sk/d/vWWBY6rDm2fcA
Последнее редактирование: 10 года 5 мес. назад пользователем Lekste.
Спасибо сказали: Sypherot, DeadElf79, DK, Ren310, Lucin, Волчонок, KageDesu, EvilCat

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место Готв Учитель 2 место
Больше
10 года 5 мес. назад #87816 от EvilCat
Три дня назад появился ещё такой плагин , который действует примерно как мой, но позволяет указать строку-вопросу прямо на экране ввода и не имеет зависимостей.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
10 года 4 мес. назад #88956 от DK
Для русского языка требуется заменить константы (без этого вылетает ошибка)
const MIN_INPUT_FIELD_WIDTH = parameters;
const TEXT_COLOR = parameters;
const PLACEHOLDER_COLOR = parameters;
const PLACEHOLDER_TEXT = parameters;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Ветеран Даритель Стимкея Оратор Программист JavaScript
Больше
10 года 4 мес. назад #88967 от Lekste
Просто сделано оно странно. Надо переписать, чтобы имена констант брались из базового коментария, а не локализованого.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
10 года 4 мес. назад #88969 от DK
Как это сделать ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.126 секунд
Работает на Kunena форум