...\Plugins\LuaMacro\LuaMacro.dll:
...\Plugins\LuaMacro\LuaMacro.lua:74: attempt to yield across C-call boundary
stack traceback:
[C]: in function 'co_yield'
...\Plugins\LuaMacro\LuaMacro.lua:74: in function 'print'
...\Profile\Macros\scripts\.Test.lua:174: in function 'action'
...\Plugins\LuaMacro\LuaMacro.lua:420: in function <...\Plugins\LuaMacro\LuaMacro.lua:376>
Это нормальное поведение. Мы в плагине, а не в макросе.
Вариантов действия два: либо пользоваться плагиновым API (см. luafar_manual.chm), либо - вызвать макрос, например: mf.postmacro(mf.print, "abcd")
Второй вариант может не подойти, зависит от обстоятельств.
Дополню, что print относится к т.н. "ограниченным" функциям, которые могут работать только из исполняющегося макроса. Эти ф-ции перечислены в macroapi_manual.ru.chm. Ф-ция msgbox к ограниченным не относится.