私も自分のソフトにユーザースクリプトを導入したくて、以下2つを実装したことがあります。
自作ソフト1:RhythmicaLyrics (
http://suwa.pupu.jp/RhythmicaLyrics.html)
使用したもの:Lua 5.1
自作ソフト2:Touch Panel Gestures (
http://suwa.pupu.jp/TouchPanelGestures.html)
使用したもの:mist(HSP3)
<Lua>
Luaは、Ver.5.1までしか扱ったことがありません。
最新のVer.5.3は、そのまま名前だけ変えるだけだと動きませんでした。
また、スタックの積み降ろしを理解しないといけないので難易度が高いです。
参考1:KpanさんによるHSPでの実行スクリプト
http://hsp.tv/play/pforum.php?mode=pastwch&num=25737
参考2:RhythmicaLyricsとの連携ツールのスクリプト置き場
http://timetag.main.jp/pukiwiki/index.php?GetTimetagLyrics
↑ lua5.1.dll, lua-xl.hspを使って、Module.hspの最初のほうを見て頂ければ何となく使い方が分かる、かな・・・?
<mist>
Xさんも紹介してくれた えくーさん が作った『HSPからHSP”ライク”なスクリプトを食って実行するためのプラグイン」です。
http://fe0km.blog.fc2.com/blog-entry-65.html
URL先を見てもらうと分かりますが、かなり何でも出来るような感じです。
HSP側の命令を公開して「ユーザーがposやmes命令を使ってソフト上に自由に描画する」ようなことまで出来ます。
(もちろん公開しないこともできます。というかそれがデフォルトです。)
mistはチュートリアルが充実しているので、ダウンロードして試してみてください。
私の場合はだいたい以下のような感じで実装しました。
#include "mist.hsp"
mistString = {"
#define UserScript1 MyFunc
#module
#deffunc MyFunc
a = 0 + SYOKITI@hsp //初期値あったら足されてる
repeat 10,1
a += cnt
loop
return a
#global
"}
mstcompile mistString //ユーザースクリプトを読み込んでおいて
UserScId = 1
;mstload "SYOKITI = 100" //ユーザーに渡したいパラメータがあったのですが、SYOKITI@hspを使ってねみたいなテキトーな渡し方を選びました。
mstload "return UserScript"+UserScId+"()" //実行したい所で1行mistスクリプトを実行する。
mes stat //そして戻り値を利用する。
どちらを使う場合にも、自分でルールを決めて、ユーザーの作った関数名を拾う必要があります。(ある、と思います。)
私の場合、関数名は
・RhythmicaLyricsでは「SaveAs(引数1,引数2)」で固定。
・Touch Panel Gesturesでは「#define UserScript1 『ここに関数名』」と書いて貰い、先に検索して探しておく。
としました。
私個人としては、Luaは以前の盛り上がりが今は無さそうだし、2つの中ならmistの方が良いのではないかと思います。