ТОМ - платформа для текстовых игр

Объявление

Платформа ТОМ предназначена для создания текстовых игр на русском языке и имеет развитый парсер, позволяющий взаимодействовать с играми с помощью команд на близком к естественному языке. В данный момент активно разрабатывается версия ТОМ 2.
Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ТОМ - платформа для текстовых игр » Тестирование » Отсутствуют пробелы в консоли под wine


Отсутствуют пробелы в консоли под wine

Сообщений 1 страница 12 из 12

1

отличные новости. наконец-то смог запустить TOM хотя бы под wine.
однако, почему-то теряются все ПРОБЕЛы.

Свернутый текст

LANG=ru_RU.UTF-8 wine console.exe
загруженplug-inspeech.plg.dll
загруженplug-inDic.plg.dll
ТекстоваяОсноваМирострое`нияv.2.a.3.14alphaASBerc2008-2013
err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
err:ole:create_server class {96749377-3391-11d2-9ee3-00c04f797396} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17
голоснеобнаружен
подключенфайлсловаряtom.dic,версия2.a.3.14

> run Demo.txt

выполняемфайл-готово.
ТекстоваяОсноваМирострое`нияv.2.a.3.14alphaASBerc2008-2013

Демо-игра"подземельягномов"
Авторигры:ASBer
2013г.

*******************************************************
Дляполученияинструкцийпопрохождениюнаберите"помощь".
********************************************************

Маленькаяполянавцентреле`са.Влажнаягустаятравадоколена,вековыедубыобступилиполянкусовсехсторон,ихсвежаялистварадуетглазсвоейзеленью,блестянасолнце.
Назападевозвышаетсястараяполуразрушеннаябашня.

на команду "помощь" получаю ответ -- "целиВИГРЕНЕТ". ;)

Свернутый текст

> помощь

Можнонемногопобродитьполокациям.Целивигренет.

Маленькаяполянавцентреле`са.Влажнаягустаятравадоколена,вековыедубыобступилиполянкусовсехсторон,ихсвежаялистварадуетглазсвоейзеленью,блестянасолнце.
Назападевозвышаетсястараяполуразрушеннаябашня.

Отредактировано zerbino (2013-12-22 17:59:55)

2

zerbino написал(а):

err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
err:ole:create_server class {96749377-3391-11d2-9ee3-00c04f797396} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17

Вот тут ошибка speech API, как я и предполагал, под wine его нет.
Но надо заметить, что пробелы в сообщениях все на месте! Похоже что пробелы исчезают только между русскими буквами.
можно проверить вводом команд:
>%я я я я я
>%z z z z z

Целивигренет.  :crazyfun:

3

LANG=ru_RU.UTF-8 wine console.exe

UTF-8 - похоже проблема рядом с этим. Английские символы кодируются одним байтом, а русские - двумя.

4

ASBer написал(а):

Вот тут ошибка speech API, как я и предполагал, под wine его нет.

ну если есть инсталляха этой speech-проги, можно попробовать установить. если есть только dll, можно попробовать просто подсунуть в system32 каталог. может покатить. но сейчас задача не в том, чтобы запустить с речью. это позже...

ASBer написал(а):

Но надо заметить, что пробелы в сообщениях все на месте! Похоже что пробелы исчезают только между русскими буквами.
можно проверить вводом команд:
>%я я я я я
>%z z z z z


ситуация интереснее.

Свернутый текст

vvb@vampire:~/.wine/drive_c/games/tom/TOM2_console$ LANG=ru_RU.UTF-8 wine console.exe
загруженplug-inspeech.plg.dll
загруженplug-inDic.plg.dll
ТекстоваяОсноваМирострое`нияv.2.a.3.14alphaASBerc2008-2013
err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
err:ole:CoGetClassObject class {96749377-3391-11d2-9ee3-00c04f797396} not registered
err:ole:create_server class {96749377-3391-11d2-9ee3-00c04f797396} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {96749377-3391-11d2-9ee3-00c04f797396} could be created for context 0x17
голоснеобнаружен
подключенфайлсловаряtom.dic,версия2.a.3.14

> %z z z z z
ТекстоваяОсноваМирострое`нияv.2.a.3.14alphaASBerc2008-2013

zzzzz
> %я я я я я
ТекстоваяОсноваМирострое`нияv.2.a.3.14alphaASBerc2008-2013

Яяяяя

да, если запускать без указания локали ru_RU.UTF-8, вместо русских букв -- кракозябры. ну, собственно, это со всеми программами так. так что utf-8 -- единственно верный путь

5

zerbino написал(а):

так что utf-8 -- единственно верный путь

А Unicode там есть?

6

utf-8 это и есть Unicode =)

7

Ладно, я имел ввиду UTF-16. Но вряд-ли это сработает.

8

Похоже, что вывод в консоль в линуксе тримирует пробелы, а у меня там вывод разбит и когда выводится пробел, он триммируется до пустой строки =)
Надо сделать несколько пробных консолей с различным выводом пробелов...

9

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

Отредактировано Alexandr (2013-12-23 16:51:18)

10

Проблема была в этой функции:

Код:
GetConsoleScreenBufferInfo(OutputH,&Info);

В windows она возвращает информацию о буфере вывода консоли, и в частности положение курсора - Info.dwCursorPosition.X
Я использовал её для форматирования текста, в частности убивал пробелы в 0-й позиции, чтобы они не ломали текст.
НО! под wine, видимо Info.dwCursorPosition.X всегда равно нулю! Возможно что wine просто не умеет получать полную информацию о консоли в линуксе...

11

перенёс тему

12

Баг найден и исправлен.
В консоли еще нужно сделать форматирование текста без использования GetConsoleScreenBufferInfo(), но это уже другая тема.


Вы здесь » ТОМ - платформа для текстовых игр » Тестирование » Отсутствуют пробелы в консоли под wine