イベントコマンドの1ページ目、アクター > スキルの増減…と同様の操作を、
イベントコマンドの3ページ目、上級 > スクリプトから行う方法です。
Table of Contents
スクリプトコード
覚える
actor関数の引数にはスキルを覚えさせたいアクターのIDを、
learnSkill関数の引数には覚えさせたいスキルのIDを指定します。
以下の例ではアクターIDが1のアクターに対してヒールのスキルを覚えさせています。
$gameActors.actor(1).learnSkill(8);
忘れる
actor関数の引数にはスキルを忘れさせたいアクターのIDを、
forgetSkill関数の引数には忘れさせたいスキルのIDを指定します。
以下の例ではアクターIDが1のアクターに対してヒールのスキルを忘れさせています。
$gameActors.actor(1).forgetSkill(8);
パーティ全体に対して処理をする
パーティ全体にまとめてスキルを覚えさせる、忘れさせるには、以下のようにthis.iterateActorEx関数を使用して対象アクターを取得します。
iterateActorExの第一引数には、第二引数でアクターのIDを固定で指定するか、変数で指定するかを示す値を渡します。(固定の場合は0、変数の場合は1)
第二引数にはアクターのID、または変数のIDを指定します。
第三引数にはfunctionを渡していますが、この関数の引数に対象のアクターが渡されるため、その値を用いて対象アクターに処理を行っていきます。
あとは第三引数の関数内でスキルを覚えさせたい場合はlearnSkillを、忘れさせたい場合はforgetSkillを呼び出します。
以下の例では、パーティ全体にスキルID8(デフォルトでヒール)を覚えさせています。
this.iterateActorEx(0, 0, function(actor) {
actor.learnSkill(8);
}.bind(this));
イベントコマンドの内容
イベントコマンドのスキルの増減を追加した場合、内部的には以下のようなデータが挿入されており、
js\rpg_objects.jsの10281行目に定義されているcommand318関数が呼び出され、引数にparametersの値が渡されています。
{"code":318,"indent":0,"parameters":[0,0,0,8]}
parametersの値の内容は以下の通りです。
インデックス | 内容 |
[0] | [1]に格納されている値が固定か変数かを示す値(0 : 固定、1 : 変数) |
[1] | アクターのID、または変数のID |
[2] | どの操作を行うかを示す値(0 : 覚える、1 : 忘れる) |
[3] | スキルID |