Некоторое время назад, после того как я узнал о существовании Boost.python, у меня появилась мысль - прикрутить к Героям интерпретатор Питона, чтобы была возможность писать на нём скрипты, в качестве альтернативы и, в идеале, замены ERM.
На данный момент, фактически, получилось выполнить из игры python-скрипт вообще (т. е. практического значения этот результат почти не имеет, только исследовательское-творческое).
http://dl.dropbox.com/u/21241104/WoG/H3Py.zip
Архив распаковывать в папку с игрой.
В архиве:
- Папка "Lib" - стандартные библиотеки python.
- "boost_python-vc90-mt-1_47.dll" - библиотека boost.python, обеспечивающая связь python с программой.
- "H3Py.era" в "EraPlugins" - собственно, написанная мной dll`ка, из которой и выполняется скрипт.
- "script.py" в "Data\py" - скрипт, который будет выполняться из игры.
В результате работы плагина должно наблюдаться следующее:
При нажатии на ЛКМ на карте приключений выполняется "Data\py\script.py". Потом из результата работы скрипта берётся переменная k (если она не была объявлена в скрипте, то будет вылет с ошибкой), преобразуется в C-шный int и записывается в ERM-переменную v2. После этого выполняется ERM-команда "IF:M^%V2^;", т. е. v2 выводится на экран.
script.py, естественно, можно изменять, в т. ч. и в процессе игры.
Было бы хорошо, если бы кто-нибудь, у кого не установлены Python и Boost.python, протестировал, работает ли это у него так, как я описал. Вроде должно, но я не вполне уверен.
В принципе, не вижу каких-то абсолютно нерешаемых препятствий тому, чтобы постепенно делать замену ERM. В конце концов, в скрипт можно передать функцию ExecErmCmd для выполнения нереализованных функций.
P.S. Исходники не выкладываю, т. к. особо нечего.
Но если кому-то хочется - дам.
P.P.S. Забыл совсем, - естественно, всё для Эры 1.9.