ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

配布マップのためのコマンド技法(Macro/Keybind mod 実例)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

配布マップのためのコマンド技法(Macro/Keybind mod 実例)

2016-09-07 22:07
    ここからは応用まで見てくれた人のための実例編ですので、詳細な解説はありません。

    ●矢 or 火薬を持ったらVoxelSniper用コンフィグに変える
    ということで、さっそく何をすればいいのかまとめてみましょう。
    とりあえず、やりたいことはこれだけ。
    1. 矢 or 火薬を持っていたら
    2. コンフィグを変更する
    それでは、(1)のスクリプトを書く前に。
    「いつ」スクリプトを走らせればいいのか。

    「持っていたら」なので、
    • ホットバーを切り替えたとき
    • ログインしたとき
    • インベントリから取り出したとき
    が妥当でしょうか。つまり、
    • onInventorySlotChange イベント
    • onJoinGame イベント
    • インベントリから取り出したときは、ないので自作する
    になりますね。
    インベントリから取り出したときが面倒なので、GUIを閉じた時にしましょう。
    GUIを閉じたときはちょっと捻った考え方なので最後に。

    さあ、スクリプトを組んでいきます。
    // ItemCheck.txt

    if((ITEMIDDMG=="arrow:0")||(ITEMIDDMG=="gunpowder:0"));
      config("voxelsniper");
    endif;
    はい。これを各イベントに入れれば、変更できますね。
    あとは"voxelsniper"って名前のコンフィグを追加すれば問題ないですね。
    (%が無いじゃないか!って怒られそうですが、左辺はいらないみたいです)

    でも、これだとデフォルトに戻せません。
    なので、デフォルトに戻す用のスクリプトを
    "voxelsniper"のコンフィグのイベントに登録しておきます。
    ココ重要。コンフィグ設定が切り替わってるので、デフォルトに設定しても意味なし。

    ということで、戻す用のスクリプトを組みます。
    // VoxelSniper.txt

    if((ITEMIDDMG!="arrow:0")&&(ITEMIDDMG!="gunpowder:0"));
      config("default");
    endif;
    はい。これを同じ各イベントに登録すれば、OKですね。

    ●GUIを閉じたとき(元のゲーム画面に戻ったとき)のイベント
    このイベントを作ります。これがちょっと面倒。
    起動するイベントはこちら。
    • onShowGui
    GUIを開いたことを検知するやつですね。
    これで、下のスクリプトを組みます。
    //onClosedInventory.txt

    if(GUI=="GUICONTAINERCREATIVE");
      do;
        wait(50ms);
      until(GUI=="NONE");
      exec("ItemCheck.txt");

    endif;
    何をしているか分かりますでしょうか?
    onShowGuiイベント(何かしらのGUIを開いたら走るイベント)で動作させると、
    // (1) もしもクリエイティブのインベントリを開いたら
    if
    (GUI=="GUICONTAINERCREATIVE");

      // (2) 無限ループに入って
      do;

        wait(50ms); // (3) ちょっとだけ待って
      // (4) ゲーム画面(GUIは何も無いのでNONE)に戻ったらループを抜けて
      until(GUI=="NONE");
      // (5) ItemCheck.txtのスクリプトを実行する
      exec("ItemCheck.txt");

    endif;
    という流れになります。
    (3) でちょっと待っているのは、ずっと処理中とかCPUの無駄だからです。
    (4) でもしもゲーム画面じゃ無い(インベントリを開いたまま)だったら、(2)に戻ります。

    onShowGuiはチャット画面を開いても発生するので、
    (1) でクリエイティブモードのインベントリ画面限定にしたということです。

    ●スクリプトを作ろう!
    ここからは、皆さんが自由にスクリプトを作って、
    便利なマイクラライフを送っていただけることを切に願っております!
    それでは、長々とお付き合いいただきありがとうございました!

    -----
    [TOPへ戻る]
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。