| Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
lm2:ce:s_pl [2020/08/04 17:12] ruben |
lm2:ce:s_pl [2020/11/30 14:12] (текущий) |
| Для расширения функционала платформы можно использовать плагины, которые представляют из себя динамически подгружаемые библиотеки. Каждый плагин реализует функции Get/Set, доступные непосредственно из lua скрипта и механизм, позволяющий генерировать события. Плагин подключается через главный конфигурационный файл: | Для расширения функционала платформы можно использовать плагины, которые представляют из себя динамически подгружаемые библиотеки. Каждый плагин реализует функции Get/Set, доступные непосредственно из lua скрипта и механизм, позволяющий генерировать события. Плагин подключается через главный конфигурационный файл: |
| |
| ''<Plugin ID="<имя_плагина>" Type="library" Name="<имя_файла_библиотеки>" />'' | <code> |
| | <Plugin ID="<имя_плагина>" Type="library" Name="<имя_файла_библиотеки>" /> |
| | |
| | </code> |
| |
| Далее, после успешной загрузки плагина, доступ к нему можно получить из lua: | Далее, после успешной загрузки плагина, доступ к нему можно получить из lua: |
| |
| ''Get('<имя_плагина>:<какой-то_адрес>')'' | <code> |
| | Get('<имя_плагина>:<какой-то_адрес>') |
| | |
| | </code> |
| |
| или | или |
| |
| ''Set('<имя_плагина>:<какой-то_адрес>=<какое-то_значение>')'' | <code> |
| | Set('<имя_плагина>:<какой-то_адрес>=<какое-то_значение>') |
| | |
| | </code> |
| |
| **Написание плагина (Windows)** | **Написание плагина (Windows)** |
| Создаем DLL, например через Visual Studio. Из DLL должны быть экспортированы функции: Set(…), Get(…) и PollEvents(…). Функции Get/Set вызываются напрямую через lua скрипт. PollEvents вызывается автоматически, перед рендером каждого кадра. Она должна возвратить строку, вида: | Создаем DLL, например через Visual Studio. Из DLL должны быть экспортированы функции: Set(…), Get(…) и PollEvents(…). Функции Get/Set вызываются напрямую через lua скрипт. PollEvents вызывается автоматически, перед рендером каждого кадра. Она должна возвратить строку, вида: |
| |
| ''"<какой-то_адрес>=<какое-то_значение>"'' | <code> |
| | "<какой-то_адрес>=<какое-то_значение>" |
| | |
| | </code> |
| |
| если надо сгенерировать событие или строку | если надо сгенерировать событие или строку |
| |
| ''"[NULL_STRING]"'' | <code> |
| | "[NULL_STRING]" |
| | |
| | </code> |
| |
| если не надо. | если не надо. |