Сказка навсегда остановлена.

Мы безмерно благодарны каждому из вас за время, которое вы подарили нашей игре, истории, которые вы создали, поддержку, которую оказывали друг другу и нам.

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

Это были замечательные тринадцать лет. Спасибо вам за них.

С любовью, команда Сказки.

Migel
#1
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Есть некоторые недоработки.

1. При явном указании именительного или винительного падежа, происходит подмена управления падежом со стороны числительного, при этом с числительными 5+ прилагательное ставится во множественное число родительного падежа. Во многих случаях это приемлемо, но не всегда. Вот пример:
«Мне чужого не надо, вот и продаю пепельницу. Тем более, 5 монет не лишних
Второе предложение генерируется неправильно. Так не говорят, правильно только "5 монет не лишние", поскольку прилагательное здесь играет роль сказуемого. Моя попытка исправить ошибку принудительной установкой именительного падежа успехом не увенчалась.
Другой пример:
Привидение грозно посмотрело на спекулянта: «Ладно, давай сюда своих 5 монет и забирай пепельницу, пока я не передумало».
Тут, правда, не прилагательное, а притяжательное местоимение. Но склоняется оно как прилагательное, а в данном контексте (в отличие от "давай 5 своих монет") требует постановки в винительный падеж, что также невозможно сделать из-за принудительной подмены падежа.

Предлагаемое решение:
  • Дать возможность присваивать падеж числительному, образующему количественную группу.
  • При отсутствии явного указания падежа у существительного или прилагательного, связанного с числительным, наследовать падеж от числительного с теми же правилами подмены именительного и винительного падежей, что и сейчас.
  • При явном указании падежа у зависимого от числительного слова, управление падежом блокируется (управление числом сохраняется).

То есть, шаблоны должны выглядеть так:
На столе [лежать|coins] [coins|им] [красный|coins|жр] [монета|coins]: "На столе лежат 5 красных монет".
Я взял со стола [coins|вн] [красный|coins|жр] [монета|coins]: "Я взял со стола 5 красных монет".
Я восхищён [coins|тв] [красный|coins|жр] [монета|coins]: "Я восхищён 5 красными монетами".
[Этот|coins|жр|им] [coins|им] [монета|coins] [такой|coins|жр|им] [красный|coins|жр|им]: "Эти 5 монет такие красные".
Давай сюда [свой|coins|жр|вн] [coins|вн] [монета|coins]: "Давай сюда свои 5 монет".
Дай мне [coins|вн] [свой|coins|жр] [монета|coins]: "Дай мне 5 своих монет".



Сообщение изменено
Migel
#2
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
2. Есть какой-то косяк в согласовании прилагательных с многозначными числительными, имеющими паукальную концовку. Пример (ошибку заметил Hask):
«Ладно, давай сюда своей 22 монеты и забирай учебник Силы, пока я не передумал».
Почему-то не "свои (вн|мн) 22 монеты", и даже не "своих (рд|мн) 22 монеты", а "своей"... (рд|ед) что ли?



Сообщение изменено
Tiendil
#3
[НБ] Магистр
могущество: 14696
разработчик
дварф Халлр
106 уровня
Приоритет слова-хозяина намеренно сделан выше и трансформации всегда применяется последними. Смысл в том, что в шаблонах указываются форма слова, какой она видится с точки зрения семантики, а потом движок определяет конкретную форму слова по своим правилам (которая может не совпадать с семантикой). Можно сказать, что сейчас нельзя принудительно заставить движок использовать конкретную форму слова. На мой взляд это правильно, т.к. такие «ручные» настройки не будут работать во всех случаях.

прилагательное здесь играет роль сказуемого
Можно ссылку на конкретное правило или развёрнутое пояснение? Пока моя позиция следующая: движок не должен правильно работать с 100% русского языка, т.к. это просто нереально сделать. Распознавать семантику пока никто не научился. Но если есть чёткое правило, то я могу ввести модификатор (вроде такого для заглавной буквы), который будет влиять на трансформацию слов.

С присваиванием падежа (и других свойств слова) таким способом есть несколько больших проблем:
- как определять какая из нескольких вставок одного слова главная в конкретном случае?
- что делать, если само слово не встречается?

При явном указании именительного или винительного падежа, происходит подмена управления падежом со стороны числительного
Подумаю над решением этой проблемы.
Migel
#4
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Tiendil
Можно ссылку на конкретное правило или развёрнутое пояснение?
Вот такая сойдёт?
2. Имя прилагательное в роли именной части сказуемого употребляется в полной и краткой формах, в формах разных степеней. Для прилагательных полной формы характерны и именительный и творительный падежи.
Но не родительный!

Tiendil
Распознавать семантику пока никто не научился.
А никто и не просит распознавать семантику. Дай нам инструменты задавать синтаксис, только и всего.

И вообще. Ты вон какую работу провернул уже с количественными группами, я и не думал, что такое возможно. Осталось совсем чуть-чуть допилить. Неужто бросишь за шаг до успеха?

Tiendil
С присваиванием падежа (и других свойств слова) таким способом есть несколько больших проблем:
- как определять какая из нескольких вставок одного слова главная в конкретном случае?
То есть, как согласовывать, если переменная [coins] в шаблоне используется несколько раз? Это элементарно, Ватсон:
  • [coins|1]
  • [coins|2]
  • и т.д.
Конечно гораздо удобнее был бы визуальный редактор синтаксиса. Чтобы зависимость слов (в том числе многоступенчатую, с которой сейчас проблемы) задавать перетаскивая стрелочки, и в drop-down меню править наследование конкретных свойств, если надо. Ладно, молчу, молчу, а то губу раскатал тут... ;)

Tiendil
- что делать, если само слово не встречается?
Вот этого не понял. Если переменная в фразе не участвует, как от неё может что-то зависеть? Можно пример проявления проблемы?
Tiendil
#5
[НБ] Магистр
могущество: 14696
разработчик
дварф Халлр
106 уровня
Migel
Осталось совсем чуть-чуть допилить. Неужто бросишь за шаг до успеха?
Остались те самые 20% :-)
Я не буду (и не в состоянии) развивать эгенерацию текста больше, чем нужно для развития Сказки. Но код открыт и не очень сложен ;-)

Вот этого не понял. Если переменная в фразе не участвует, как от неё может что-то зависеть? Можно пример проявления проблемы?
Любое описание выбора в задании или текущего действия героя: [решил|hero] сделать что-то. Переменная hero не используется, но от неё зависит глагол.



Сообщение изменено
Migel
#6
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Tiendil
Любое описание выбора в задании или текущего действия героя: сделать что-то. Переменная hero не используется, но от неё зависит глагол.
Как?!

Выбор: "сделать что-то" - используется неопределённая форма, она не изменяется вообще: "продолжить шпионаж"; "придти с повинной"; "украсть письмо"; и т.д.

Текущее действие: "делает что-то" - глагол несовершенного вида в третьем лице по родам не изменяется: "он идёт, она идёт, оно идёт".

По-прежнему не вижу проблемы.
Tiendil
#7
[НБ] Магистр
могущество: 14696
разработчик
дварф Халлр
106 уровня
[решил|hero] сделать что-то

Попался на квадратных скобках.
Tiendil
#8
[НБ] Магистр
могущество: 14696
разработчик
дварф Халлр
106 уровня
Разобрал случай с лишними монетами подробнее. Как я понимаю:

- 5 лишних монет: (5) (монет) (каких?) (лишних) — «монет» зависят от 5 и «лишних» зависят от 5
- 5 монет лишние: (5 монет) (какие?) (лишние) — «монет» зависят от 5, а «лишние» зависят от «5 монет».

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

UPDATE: или «монет» зависят от 5, а «лишние» зависят от «монет» — получается цепочка зависимостей. Тоже не хорошо.



Сообщение изменено
Migel
#9
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Разница буквально такова: в первом случае прилагательное "лишний" является определением при количественной группе, и как определение согласуется с определяемым по числу и падежу, при этом подчиняется тем же правилам подмены падежа, что и существительное в составе этой группы. Во втором случае "лишний" - это именная часть сказуемого и с подлежащим (количественной группой) согласуется только по числу: "1 монета лишняя"; "2 монеты лишние", "5 монет лишние", "151 монета лишняя" и т.д.

Рациональный способ борьбы с проблемой я уже предложил: дать составителю шаблона возможность форсированной установки падежа прилагательного/местоимения, для которого указана зависимость от числительного. Этого будет достаточно для исправления неправильно работающих фраз.

Tiendil
[решил|hero] сделать что-то
Ага, теперь понятно. Но проблемы по-прежнему нет: число и род "по умолчанию" для конкретного [hero] или любого другого игрового субъекта (NPC, моба) известны из его профиля, согласование можно произвести.
Tiendil
#10
[НБ] Магистр
могущество: 14696
разработчик
дварф Халлр
106 уровня
Migel
Но проблемы по-прежнему нет: число и род "по умолчанию" для конкретного или любого другого игрового субъекта (NPC, моба) известны из его профиля, согласование можно произвести.
Это пример демонстрирующий, что такое может быть. Делать какие-то костыли для частных случаев точно не буду. Тут необходимо общее решение.
Migel
#11
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Tiendil
Тут необходимо общее решение.
Общее решение я предлагал уже: "..|hero|1", "..|hero|2" и т.д. для указания конкретного вхождения переменной. И "..|hero|0" для ссылки на исходную форму переменной, в том числе прямо не участвующей во фразе.

Это не какой-нибудь костыль, а вполне корректная замена тех самых стрелочек из визуального редактора.
Почему бы нет?



Сообщение изменено
Tiendil
#12
[НБ] Магистр
могущество: 14696
разработчик
дварф Халлр
106 уровня
Так hero|0 нельзя будет изменить, в отличии от hero|1 и так далее.

В общем проблема ясна, в задачах она стоит. Конкретное решение буду выбирать когда до неё дойдёт очередь.
Migel
#13
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Tiendil
Так hero|0 нельзя будет изменить
Так и задумано. Это будет именно ссылка на переменную в её исходной форме: для существительного это именительный падеж плюс заданные профилем героя/NPC/Моба/предмета род и число.
Сергійко
#14
без гильдии
могущество: 13610

оркесса Байар
110 уровня
Счётная форма существительного — это особая форма множественного числа некоторых существительных, употребляемая с числительными. Например: восемь бит, двести пятьдесят шесть байт, пять килограмм (или килограммов). Но: количество байтов, избавиться от лишних килограммов.
Почему не указано, что "форма, употребляемая с некоторыми числительными"? Эта фраза только сбивает с толку, или исправьте её, чтобы она соответствовала действительности, или уберите совсем



Сообщение изменено
Migel
#15
без гильдии
могущество: 9495
длань судьбы
орк Yellow Horror
199 уровня
Сергійко
Почему не указано, что "форма, употребляемая с некоторыми числительными"?
Может быть потому, что сложно в двух словах описать с которыми из числительных употребляется счётная форма.

P.S. А откуда вообще эта цитата?