吉里吉里2覚書

ここでは吉里吉里2/KAG3についての覚書を書いていきます。吉里吉里はNScripter以上にマニュアルが充実しているので、精読すれば、ある程度分かるようになります。 お勧めサイトはこちら。

エディタ

poringsoft

プラグイン・お役立ち情報

上級者向け

TJSに挑戦!

●return大事!

これはNSでも吉里吉里でも言えることですが……吉里吉里ならTJSでラベル移動とかしたくなるじゃないですか。
 しかし落とし穴。確かにラベル位置は移動するんですが、スクリプト処理はTJSのまま実行されるのですね。
 どういうことかと言うと、移動先に何かしら処理を書いておいたとする。しかしTJSがreturnされてない状態だと、飛んだ命令の後に、その後の処理を実行してしまう。移動先の処理は確か後回しにされた記憶があります。飛んだ後はreturnを忘れずに!

サンプルコード

転載・改変ご自由にどうぞ。AfterInit.tjsというファイルを作って、そこに書き込むとKAGがバージョンUPしても対応できます。

テキストサイズの変更をメニューに追加(フォントのところ)

kag.characterMenu.add(this.FontSz = new KAGMenuItem(this, "フォントサイズ(&S)", 0,
   function {
    var fsz = System.inputString("フォントサイズ設定", "15~24pxまで設定できます", kag.current.defaultFontSize);
    fsz = 15 if fsz < 15;
    fsz = 24 if fsz > 24;
    kag.current.setDefaultFont( % [size: int fsz]);
   }, false));
//kag.characterMenu.FontSz.stopRecur = true;
テキストサイズ変更を選択すると、入力ダイアログが出ます。 fszは下限と上限も設定しています。

メニューから指定シナリオへ飛ぶ

kag.helpMenu.add(this.help = new KAGMenuItem(this, "タイトル(&H) ...", 0,
   function {kag.callExtraConductor('シナリオファイル.ks','*ラベル');}, false));
メニューから何かのシナリオへ飛ぶことができます。操作方法説明とかに使えます。但し、これはサブルーチンを使っているので、右クリックメニュー使用時は併用ができません。

エンターキーによるスキップ抑制

kag.skipKeyPressing = function(){
//supportReadingKey が押されているかどうか
  var sg = getKeyState;
  return sg(supportReadingKey);
 };
微妙に未完成。ホントはページ末ではなく行末で停止したいんだけど。とりあえず押っぱでも次のページには勝手に行きません。

ショートカット追加

function KeyHook(key, shift){
    if (key == #'H' || key == VK_UP || key == VK_PRIOR) {//履歴[H][↑][PageUP]
  kag.current.setPosition( % [visible:false]);
  kag.showHistory();
  kag.current.setPosition( % [visible:true]);
        return true;
    }
 if(key == #'L' || key == #'S'){/*セーブ管理画面。
これはセーブ・ロードで分けてもいいでしょう。*/
        kag.callExtraConductor('ファイル.ks','*ラベル');
        return true;
    }
 if(key ==VK_F1){//ヘルプ[F1]
        kag.callExtraConductor('ファイル.ks','*ラベル');
        return true;
    }
 if (key == VK_F2) {//Qセーブ[F2] 確認を入れた方が親切。
  kag.callExtraConductor('ファイル.ks','*ラベル');
        return true;
    }
 if(key ==VK_F3){//Qロード[F3]
        kag.restoreBookMark(任意の栞番号, false);
        return true;
    }
 if ((key > 48 && key < 58) || (key > 96 && key < 106)) {
//テンキー含む0~9でセーブができます
  var n = key >95 ? key -97 : key -49;
//簡易ロード[shift]+[0]~[9]
  if (shift == VK_SHIFT) kag.restoreBookMark(n);
  else kag.storeBookMark(n);//簡易セーブ[0]~[9]
        return true;
    }
 if (key == VK_SPACE) {
//メッセージ隠し[space] 右クリックメニュー使用時はメニューが表示されます。
  kag.onPrimaryRightClick();
  return true;
 }
}
kag.keyDownHook.add(KeyHook);

このブログの人気の投稿

VisualStudioCode

お茶会への招待状

ダイヤの国のアリス~wonderful mirror world~