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

Объявление

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

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

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



Как вызвать функцию из плагина?

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

1

Пытаюсь вызвать функцию из плагина, например в коде:

Код:
%{getword("слон")}

или прямо в консоли (в режиме "вне игры", конечно).
Пишет Ошибка синтаксиса.
Что я делаю не так?
Пытался вызвать как стандартную функцию getword, так и другую из своего плагина. Функция точно регистрируется, но почему-то не вызывается в ТОМе.

2

Однозначно, что-то поломалось  :dontknow:

Правильный синтаксис вызова внешних функций: getword слон аналогично run test.tom.
Но не работает...

Дело видимо в том, что функционал внешних функций очень давно не перерабатывался, хотя всё вокруг него уже изменилось.
Первоначально планировалось что внешние функции будут органично встраиваться в команды на ЕЯ, но это не оправдалось.
Переделаю к следующему релизу.

3

Вот так должно быть:
http://s3.uploads.ru/W94nM.png

4

баг-фикс

5

Теперь перестала работать команда "вне игры". Поэтому не могу проверить getword через консоль.
В коде

Код:
%{getword слон}

тоже не работает: "Присвоение внутри условия".
Список игр вдруг появился (раньше не работал), но с файла 2_param.cmd не запускает сразу игру, а тоже показывает список.

6

Почитал тему Альфа, там всё написано про "вне игры" и список игр при запуске.
Но вопрос, как правильно вызвать функцию в коде, всё-ещё актуален. Как и проблема с запуском через 2_param.cmd

7

Обе ошибки подтверждаю.
Разбираюсь...

8

С вызовом в коде всё нормально.
Ошибка была в вычислениях внутри строки. "Getword слон" возвращает текст с фигурными скобками, которые ТОМ также пытается вычислить, а там внутри есть присвоения, которые запрещено выполнять при вычислении строк, как и внутри условий.
Текст ошибки нужно уточнить, чтобы не вводила в заблуждение, и не вычислять полученные строки.