スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリ : スポンサー広告

TJSからKAGスクリプトを実行する。

■吉里吉里/KAG/TJS雑談質問スレその13の767にあるものですがここでも紹介しておきます。
TJSからKAGスクリプトを実行する方法。
TJSでKAGのタグを実行する方法としては「kag.tagHandlers.backlay(%[]);」のようにtagHandlersを使う方法が有名です。
がこれだとマクロなど実行できないものがあります。
今回の方法だとそれらのタグも実行できます。

AfterInit.tjsなどに↓のスクリプトを貼りつけておきます。
kag.eval = function(scenario) {
    var tmp = onConductorScenarioLoad;
    onConductorScenarioLoad = function(name){ return name; };
    process("\n"+scenario, "");
    onConductorScenarioLoad = tmp;
incontextof kag;

使うときは最初の引数にKAGスクリプトの文字列をわたしてやればいいです。
@iscript
kag.eval("
*start
@cm
KAGスクリプトのサンプルです。[l][r]
コンダクタでそのまま実行されるので何でも書けます。[l][r]

; マクロ定義してみる。chタグで文字表示するだけのマクロ
@macro name=テスト
@ch text=%text
@endmacro

@テスト text=あいうえお

@r

jumpタグで最初に戻ります。[l][r]
@jump target='*start'
");
@endscript
動作としてはkag.evalにわたした文字列の最初に[jump]でジャンプしてくる感じになります。
なのでkag.evalは[s]などで止まってるときなどに実行した方がいいでしょう。
他の注意点としては、文字列でわたすために""(ダブルクォーテーション)でわたしているので中では使えません。
例では「target='*start'」のように''(シングルクォーテーション)を使ってみました。

もっと単純な例としてただマクロを実行してみる。
@iscript
kag.eval("[テスト text=マクロを使ってみる][s]");
@endscript
スポンサーサイト

タグ : 吉里吉里 KAG TJS 講座

カテゴリ : TJS

コメントの投稿

非公開コメント

No title

ちょっと使えそうだなぁと思ったけど、このままじゃ@endscriptのあとウンともスンとも言わなくなってフリーズしたorz

No title

タブを半角スペースに変換してたのがまずかったっぽいです。
修正したのでまだ駄目だったら言ってください。
最新記事
カテゴリ

openclose

記事一覧
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。