Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
22.12.2014 18:04

Sonic
Автор ЯРИЛ (+82, -4)
Откуда: Россия, Краснодар
Зарегистрирован: 24.08.2001
Сообщений: 243
Вебсайт

---

Вопросы по ЯРИЛ

Специальный топик, в котором можно задавать вопросы по ЯРИЛ.

Неактивен

0    0    #2
22.12.2014 18:26

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

Да, планируется добавление пользовательских ролей. А что подразумевается под группами и тэгами?

Я имел в виду одно и тоже - возможность навесить на предметы некий признак, тэг. Чтобы объединить схожие группы предметов, чтобы не делать лишней работы с перечислением предметов в условиях. Там даже механики никакой не нужно, просто обычный тэг.

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

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

Кстати, обратил сейчас внимание: чтобы взять предмет, нужно, чтобы он где-то лежал. По-моему, это не очень удобно.
Не совсем понял.

Я проверял. Чтобы переместить предмет, к примеру, к себе в инвентарь, этот предмет должен быть к чему-то приписан. Т.е., изначально он может висеть в воздухе, редактор это позволяет, но тогда передачи не произойдет. Мне кажется, это не совсем правильно.

Сделал перенос предмета командой локация.предмет. Теперь в описании локации мне пишет 'здесь предмет'. При этом осмотреть его нельзя 'я не знаю слова предмет'.
А у него настроен словарь?

Конечно, есть словарь с синонимами.

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

А все, что сейчас позволяет процедура, все забабахать в ивенты. Нужны процедуры, срабатывающие автоматически, при наступлении условия.

Какое условие ты имеешь в виду? Вообще, выражения поддерживают логические операторы: и, или, не.

Да, это я имел в виду.

Можно ли задать условие, если пользователь не ввел полностью команду по шаблону, используя только одно действие и процедуру? Каждая процедура обрабатывает только однотипные шаблоны, значит нужно создавать несколько процедур, но в действиях ведь тоже одно действие(шаблон) - одна процедура, значит нужны несколько действий... Я ошибаюсь?

Отредактировано johnbrown (23.12.2014 08:12)

Неактивен

0    0    #3
23.12.2014 22:29

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

Это признаки. Пока они есть только в библиотеках,но планируется поддержка создания своего признакав истории. Если признакв принципе существует (объявлен в использованных библиотеках), то проверять на его наличие на предмете можно с помощью выражения "предмет.признак".

А сейчас можно редактировать/добавлять в библиотеку свои глаголы? Они будут экспортироваться в игровой файл?

Всё же не очень понимаю. Если ты редактируешь процедуру или действие, то видишь изменения. Можешь по шагам
подробнее описать? Есть вот такой баг, возможно, это та же проблема?

К примеру , возьмем шаблоны в действиях. В каждом действии может быть несколько шаблонов. Если мы добавили шаблон он сразу отобразится, но если его отредактировать, то в списке шаблонов, будет висеть старая версия, пока мы не выйдем из действия и не войдем обратно.
По-поводу бага по ссылке с локацией. У меня все изменения в названии локации видны сразу, в т.ч. после редактирования.


Приложи или пришли (realsonic3 на гмайле), пожалуйста, игру.

Ага, отправил.

Вообще, парсер пытается подобрать самый подходящий шаблон. Если есть подходящий на 100%- берётся он. Если нет - пытается подобрать самый подходящий (больше всего элементов подходит). Если есть только шаблон "взять"+ВП, а игрок ввёл только "взять", то парсер скажет обэтом сам. Но, если ты хочешь рулить ответом, то можешь вести и шаблон из одного глагола- "взять". В шаблонах для каждого элемента можно указать параметр процедуры, в который его передавать. А затем в процедуре эти параметры анализировать. Т.е. можно использовать разные шаблоны для одной и той же процедуры,только нужно передавать параметры, используемые в процедуре. Навскидку не смогу сказать, что будет, если использовать не переданный параметр. Похоже, ошибка. Надо будет перепроверить и исправить, если так.

В том примере игры, что я тебе отправил есть такая команда 'идти в зал ожидания'. Так она забита в шаблоне. Если написать 'идти в зал' игра не поймет, нужно эту фразу забить в шаблон. Может имеет смысл ввести маску 'идти в зал*'?

Разные шаблоны действия для одной и той же процедуры не пойдут. Как я только не изгалялся. Проблема, что процедура пытается подставить в себя все варианты шаблона, естественно вылезают ошибки. Возможно стоит дать доступ для каждого варианта шаблона (в рамках одного действия) к разным процедурам. Или установить проверку наличия переданных параметров в процедуру, но первый вариант мне кажется более правильным.

Отредактировано johnbrown (23.12.2014 22:38)

Неактивен

0    0    #4
25.12.2014 07:55

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

->Глаголы да - это же действия. Но к признакам они не имеют отношения.

Я немного посмотрел либу. Там есть действие 'сесть'. В нем используется переменная 'счетчик'. Это какая-то системная переменная? С ней можно работать?

-> Если в идеале, то лучше сделать возможным упоминать не только предметы, но и локации. Вообще,раньше и в локациях можно было задавать ИД, сейчас эта возможность отключена, но ИД у них всё равно есть. В этом случае их можно упоминать в командах. По поводу временного решения: что ты имеешь в виду под "игра не поймёт"? Парсер отвечает неадекватно? Вообще, я против масок * в шаблонах, потому что тогда игрок сможет ввести любую фигню в этом месте, и парсер съест.

ИД - это идентификатор?
Парсер пишет 'не вполне понял, прошу уточнить'

-> Если ошибки связаны с тем, что параметры процедуры не заданы, то это баг, нужно думать, что с ним делать. А если процедура просто не учитывает разные шаблоны - её нужно доработать.

Проблема в том, что процедура слишком хорошо учитывает разные шаблоны :-)  Может я просто не умею писать исключения? У меня все тот же пример (вообще, я наверное я просто отредактирую этот глагол в библиотеке). Есть глагол сидеть. Я создаю шаблон вида 'сесть(лит)+вп(предмет)' .Забиваю проверку конкретного предмета в процедуру. В той же процедуре обработку простого глагола 'сесть' у меня сделать не получится, потому' что программа будет прогонять первое условие с проверкой предмета. ((

-> Это какраз есть - просто нужно создавать разные действия. Хотя, тогда придётся дублировать перехваты. Если к разным шаблонам привязывать разные процедуры (которые могут быть совершенно разными), то пропадёт общность действий - в действии тогда смогут помещаться совершенно разные команды. Даже можно будет под одно действие запихнуть все команды вообще.

Хочется унификации. Десять вариантов одного действия это как-то черезчур. В коце-концов, какое дело сколько глаголов команд будет на одном действии, пусть пользователь сам решает, как ему удобно.

Неактивен

0    0    #5
26.12.2014 08:02

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

Ошибка вылезает? Какая?

Неизвестный иднтификатор предмет.
Получается, процедура сейчас не может обратывать разнотипные шаблоны (с параметрами и без)?

И еще вопрос по шаблонам, вернее по объектам. Объект - это все, что уже есть в игре? Если я присваиваю объекту параметр "предмет", и даже если указать в условии название предмета, то при вводе плеер выдаст ошибку, мол 'не знаю слово предмет', только если оно уже не присутствует в игре.
А в чем смысл опции 'не передавать параметры объекта'?

Еще пожелание, чтобы при переименовании локации или предмета все их старые идентификаторы тоже автоматически менялись.

Отредактировано johnbrown (26.12.2014 12:10)

Неактивен

0    0    #6
26.12.2014 21:47

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

В какомусловии задать название предмета?

В процедуре, либо в ограничении в 'проверке условия'

Во всех выражениях?

Да. Могут быть какие-то подводные камни?

Неактивен

0    0    #7
01.01.2015 21:25

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

Уже запутался... Вопрос ещё актуален?)

Тут, в общем, вот в чем дело :-)
Речь идет только об обработке действий.
Получается, действия (шаблоны) сейчас могут обрабатывать только объекты, т.е. то, что уже есть в игре. А вот скажем переменные они обрабатывать не могут, хотя условия есть, но они только для объектов, и это немного сбивает.
Может стоит ввести доп пункт в шаблоны:
1. Литерал
2. Объект
3. Переменная

Неактивен

0    0    #8
02.01.2015 08:14

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

Переменная - ну, это тот же литерал, но в отличии от него, он может обрабатываться в условии.
Пример. Создаю действие: понюхать
Шаблон понюхать (литерал) + воздух (переменная)
Смысл в том, чтобы не плодить объекты, когда можно обойтись одним словом.

Неактивен

0    0    #9
08.01.2015 15:11

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: Вопросы по ЯРИЛ

На самом деле, в ЯРИЛе есть возможность обрабатывать переменные, только это немного не явно сделано. Существует системная "переменная" 'ком', которая фактически позволяет работать с переменными. Надо ее создать в процедуре, и подцепить к литералу в шаблоне. smile

Отредактировано johnbrown (08.01.2015 22:10)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru