最終更新:ID:F+XwJQXyjA 2019年05月14日(火) 20:57:28履歴
基礎編ではスクリプトとは何かということと、スクリプティングの始め方を解説していきます。
※マインクラフトのバージョンは1.8.8以上を想定しています。
※ここではECMAScriptを使うことを前提に進めます。
※マインクラフトのバージョンは1.8.8以上を想定しています。
※ここではECMAScriptを使うことを前提に進めます。
スクリプトとは簡易的なプログラムのことです。
CustomNPCs上では様々なことをスクリプトで実現でき、具体的には
CustomNPCs上では様々なことをスクリプトで実現でき、具体的には
- NPCを右クリックしたとき現在の時刻を教えてくれる
- NPCの体力が少ないとき、攻撃力が上がる
- プレイヤーがログインしたときアイテムを渡す
まず、スクリプティングをするためにはスクリプト言語を導入する必要があります。
ここではJavaScriptと同じ動作をするECMAScriptを導入します。
導入するにはCustomNPCs~.jarの入っているmodsフォルダに"nashorn.jar"というファイルを入れる必要があるので、そのファイルを探します。
Javaのインストール先を変更していない場合そのファイルは"C:/Program Files/Java/Javaバージョン/lib/ext"にあります。
ここではわかりやすいように一つ一つたどって探していきます。
エクスプローラーを開き、Cドライブを開きます(JavaをCドライブにインストールした場合)。
Program Filesを開きます。
Javaを開きます。
jre~のどれかを開きます。
libを開きます。
extを開きます。
nashorn.jarが見つかると思います。
nashorn.jarはextフォルダから移動せず、右クリックでコピーしてください。
そして、CustomNPCs~.jarの入っているmodsフォルダに右クリックで貼り付けたら導入完了です。
マインクラフトを起動(または再起動)し、導入ができたか確認します。
Scripter(スクリプター)を持ち、NPCを右クリックします。
Language(言語)がECMAScriptになっていたら導入成功です。
Escキーで画面を閉じます。
Scripter(スクリプター)
ここではJavaScriptと同じ動作をするECMAScriptを導入します。
導入するにはCustomNPCs~.jarの入っているmodsフォルダに"nashorn.jar"というファイルを入れる必要があるので、そのファイルを探します。
Javaのインストール先を変更していない場合そのファイルは"C:/Program Files/Java/Javaバージョン/lib/ext"にあります。
ここではわかりやすいように一つ一つたどって探していきます。
エクスプローラーを開き、Cドライブを開きます(JavaをCドライブにインストールした場合)。
Program Filesを開きます。
Javaを開きます。
jre~のどれかを開きます。
libを開きます。
extを開きます。
nashorn.jarが見つかると思います。
nashorn.jarはextフォルダから移動せず、右クリックでコピーしてください。
そして、CustomNPCs~.jarの入っているmodsフォルダに右クリックで貼り付けたら導入完了です。
マインクラフトを起動(または再起動)し、導入ができたか確認します。
Scripter(スクリプター)を持ち、NPCを右クリックします。
Language(言語)がECMAScriptになっていたら導入成功です。
Escキーで画面を閉じます。
Scripter(スクリプター)
スクリプトを書いていきます。
メモ帳などのテキストエディタを開き、以下のように入力してください。
スクリプターを持ちNPCを右クリックしEnabled(有効)を"はい"にします。
次に左上にある+ボタンをクリックします。
先ほど入力したスクリプトをコピーしPaste(貼り付け)ボタンで貼り付けます。
Escキーで画面を閉じたらスクリプトが実行され"Hello World!"とNPCが話すはずです。
ここでうまくいかなかった場合は、いままでの手順を間違えていなかったか一度確認してみてください。
メモ帳などのテキストエディタを開き、以下のように入力してください。
function init(event) { event.npc.say("Hello World!"); }記号のキーの位置は下の画像を参考にしてください。
スクリプターを持ちNPCを右クリックしEnabled(有効)を"はい"にします。
次に左上にある+ボタンをクリックします。
先ほど入力したスクリプトをコピーしPaste(貼り付け)ボタンで貼り付けます。
Escキーで画面を閉じたらスクリプトが実行され"Hello World!"とNPCが話すはずです。
ここでうまくいかなかった場合は、いままでの手順を間違えていなかったか一度確認してみてください。
スクリプトの意味について解説します。基礎編なのでここでは具体的には解説しません。形だけを覚えれば十分です。
初期化時はスクリプトの画面を閉じたときと、ワールドを開いたときです。
initの部分を変えると、実行されるタイミングを変えることができます。詳しくはフックを参照
.(ピリオド)は単語と単語を区切ります。
eventはひとまず置いておき、npc.sayはNPCが何かを話す命令だということがわかるかと思います。
sayで何を言うかは( )の中に書きます。
" "はただの文字列を表しているので、自由に書きかえて大丈夫です。
"Hello World!"を"How are you?"などに書きかえて実行してみましょう。
最後にある;(セミコロン)は、命令の終わりを意味します。
ちなみに、波かっこの中がスペースで位置をずらされているのは、スクリプトを見やすくするためです。
これをインデントと呼びます。
function init(event) { }NPCの初期化時に波かっこの中の文が実行されます。
初期化時はスクリプトの画面を閉じたときと、ワールドを開いたときです。
initの部分を変えると、実行されるタイミングを変えることができます。詳しくはフックを参照
event.npc.say("Hello World!");NPCが"Hello World!"と話す命令(関数)です。
.(ピリオド)は単語と単語を区切ります。
eventはひとまず置いておき、npc.sayはNPCが何かを話す命令だということがわかるかと思います。
sayで何を言うかは( )の中に書きます。
" "はただの文字列を表しているので、自由に書きかえて大丈夫です。
"Hello World!"を"How are you?"などに書きかえて実行してみましょう。
最後にある;(セミコロン)は、命令の終わりを意味します。
function init(event) { event.npc.say("Hello World!"); }つまりこのスクリプトは、
- NPCが初期化されるとき
- NPCが"Hello World!"と話す
ちなみに、波かっこの中がスペースで位置をずらされているのは、スクリプトを見やすくするためです。
これをインデントと呼びます。
コメントをかく