メインコンテンツへスキップ
  1. SOroom/

KeyConfig.jsで右クリックにmenuを登録した時、セーブ画面やロード画面を右クリックで閉じられるようにする

ゲ制 ティラノスクリプト

タイトルの長さが圧を生み出す! そんな感じの話です。

ティラノはデフォルトだと、data>systemフォルダ内のkeyConfig.jsで、右クリックはhidemessageが登録されています。

hidemessageはkag.key_mouse.js内でkeyconfig設定の影響を受けない+hidemessageタグに加えてメニューが開かれてる時にはメニューを閉じる処理が入っています(正確にはメニューを閉じるボタンを押す処理)。そのためメニューと同じようにセーブ画面やロード画面でも、右クリックで閉じられるわけですね。

ただこの時、右クリックにmenuを登録したりすると、セーブやロードを右クリックで閉じられなくなります。というのもmenuはkag.key_mouse.js内では、keyconfig設定の影響を受けるからです。

このrole内で処理されるのがsaveやloadやmenuやbacklogなので、enable_keyconfigがfalseの時、つまりstop_keyconfig状態の時には、ここで処理が終わり、役割の処理までいかないわけですね。roleはbuttonのroleと似たような感じです。

じゃあ右クリックで閉じるにはどうするか、というと、hidemessageと似たようなことをやってしまいます。

    //★メニューが非表示でなければメニューを閉じる
    if($(".layer_menu").css("display") != "none") {
        $(".menu_close").click();
        return false;
      }
    //★追加ここまで

    //キーコンフィグが有効化否か
    if(that.kag.stat.enable_keyconfig==false){
        return false;
    }

キーコンフィグ判定がされる前に、メニューが表示されていたら閉じる処理をぶっこみます。こうすると、セーブ画面やロード画面を開いている時に、右クリックで閉じるようになります。問答無用です。

問題としてはこれ、「メニューの閉じるボタン」を押しているので、メニュー経由でセーブやロード画面を開くと、消去がフェードじゃなく即消去になる点ですね。これはkag.menu.jsをいじらないとちょっと解消できません。ただまあセーブやロードを単独で呼び出す場合には、これでいけるんじゃないかなと思います。