Врядли это сработает.
Модели мира в ИФ весьма упрощены и специализированы именно под игры.
Но если есть желание повозиться с длл попробуй подключить tom.dll
На все вопросы отвечу.
Отредактировано ASBer (21.06.2009 19:00)
Неактивен
Традиционные в классическом планировании модели куда более условны, так что проблемы в этом быть не должно. ТОМ я скачал, но не нашел к нему заголовочных файлов и какой-нибудь справки, только примеры игр. Наилучшим был бы запуск интерпретатора и передача ему команд от сторонней программы, что-нибудь похожее можно реализовать?
Неактивен
На Вике есть исходник консольного интерфейса
http://ifwiki.ru/files/ConTOM_s.rar
можно делать по аналогии.
здесь зачатки документации.
Передачу интерпретатору команд делать можно и нужно
Отредактировано ASBer (22.06.2009 21:08)
Неактивен
Вообще все что нужно, это:
- Подключить tom.dll и его функции:
char* RunFile(char*FileName);
char* RunText(char*Statement);
char* Command(char*Input);
- далее юзать эти функции:
RunFile()
- Выполняет скрипт из указанного файла.
- Возвращает текст, сгенерированный при выполненнии скрипта.
RunText()
- Вычисляет выражение или выполняет скрипт переданный в строке.
- Возвращает результат вычисления. Текст сгенерированный при выполненнии скрипта пишется в лог.
Command()
- Выполняет команды на русском языке.
- Возвращает текст, сгенерированный при выполненнии команды.
Неактивен
Пока не получилось вызвать, использовал FFI под Allegro Lisp
(use-package 'ff)
(load "C:/Downloads/ConTOM_s/ConTOM/tom.dll")
def-foreign-call (RunFile "RunFile" :object) ((FileName (* :char))) :strings-convert t :returning ((* :char)));
(RunFile "C:/Downloads/ConTOM_s/ConTOM/Mouses.tom")
Attempt to call #<Vector @ #x20e6599a> for which the definition has not yet been (or is no longer) loaded.
Неактивен
в Лиспе не силен, но может быть нужно указывать имя функции точно так как указано в dll ?
def-foreign-call (RunFile "@RunFile$qpc" :object)
Неактивен