上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
それほど重大な事は書いてありませんが、先に※「素材(?)について」をお読み下さい^^

「倒したモンスターが仲間になる」というイベントを作ってみました。
たぶんこの程度なら、世の素材屋さんを巡れば山のように出てくるんでしょうが、あくまで自作^^

変数、スイッチ、コモンイベントを駆使するだけで作れるので、想像以上にお手軽でした。
ただ、仲間になるモンスターを多くすればするほど、単純作業の繰り返しが多くなり面倒になりますので、それだけは覚悟して下さい。

お手軽さ:3
根気:3~4
スクリプトを弄る必要性:無(場合によっては有)
必要なもの:変数 最大8個
      スイッチ お好み(仲間になるモンスターの数だけ)
      コモンイベント お好み(上に同じ)

ここでは例として、友人のトッティ師匠がツクールDSで作ったRPG「T-QUEST~混沌の魔女~」の設定を流用させていただき、死霊術師のエルミナ姐さんが、アンデッドを仲間にするというものを作ってみましたので、参考にしていただければと思います。
なお、この例では、ゴーストが仲間になる確率を4分の1、スケルトンが仲間になる確率を8分の1としています。

―事前準備―
①まず、仲間になる予定のモンスターを、アクターとして設定しておきます。



method1.png

↑この例では、アクター1と3を使用します。

②次に、仲間になるモンスターを、バトラーとして設定し、グループ設定し、指定したマップに出現させます。このあたりは普通に作る時と同じなので、割愛。




―戦闘イベント―
③仲間になるモンスターが出現するグループのイベントページの1ページ目に、以下のように書き込んで、仲間になるモンスターすべてに「不死身」ステートをつけて下さい。



method13.png

ターン数0【バトル】で、コマンド入力前にイベントが実行されます。これを忘れると、後々困った事になります。



④2ページ目以降に、仲間になるモンスターのHPが0になった時のイベントを作ります。



method14b.png

1行目で使用している変数は、何番目のバトラーかを表すものです。スクリプトで拡張していない限り最大で8体まで同時に出現するので、最大8つ分の変数を用意して下さい。
この例ではゴースト、スケルトンの2体がいるので、ゴーストに変数1、スケルトンに変数2を使用します。
そしてその用意した変数に、最初に定めた、仲間になる確率の分母の数乱数で代入します。
つまり、ゴーストは4分の1なので1~4、スケルトンは8分の1なので1~8です。
そして、その結果が「1」で、かつ該当のモンスターが仲間に加わっていない場合に限り、指定のスイッチがONになるよう条件分岐をします。
そして絶対に忘れてはいけないのが、最後に「不死身」を解除するイベントを入れる事。これを忘れると、永遠に倒せませんw
これと同じようなものを、仲間になるモンスターの数だけ新しいページに設定します。もちろん、使用する変数や、格納する乱数の値、条件が揃った場合にONになるスイッチなどは変えて下さい。

method14a.png


ただし、同じ種類のモンスターが複数いる場合は、そのモンスターにはすべて同じ変数を使う事をおすすめします。そうしないと、1回の戦闘で、同種のモンスターが複数仲間になってしまうおそれがあるからです。



―コモンイベント―
⑤指定のスイッチがONになったら、モンスターを仲間にするかどうかを確認するイベントを作りましょう。コモンイベントを次のように作ります。

method4.png
method5.png

トリガーは「自動実行」、条件スイッチは、戦闘で条件が揃った時にONになるスイッチにして下さい。
この例では、ゴーストが仲間になる時にはスイッチ1、スケルトンが仲間になる時にはスイッチ2を条件スイッチにしておきます。
ここでのポイントは、選択肢の両方に、条件スイッチをOFFにするコマンドを入れる事。忘れると、無限ループします;

これで準備OK。あとは普通にフィールドに出て、普通に戦って下さい。運がよければ、仲間になるはず!

method6.png
method7.png



もちろん名前もつけられます♪

method8.png
method9.png
method10.png
method11.png



基本的なメソッドはこれで以上なんですが、いくつか補足事項。
どうして仲間になるモンスターすべてに0ターンで不死身ステートをつけなければならないのか?
はっきり言って面倒ですよね。

結論から言ってしまえば、こんな事しなくてもモンスターは仲間にできます。
しかし、これだと最後に倒したモンスターが仲間になりません
というのは、敵モンスターが全滅した場合は、戦闘終了イベント(お金もらったり経験値もらったり)が優先されてしまい、その後ろに何かイベントを入れていたとしても、無効化されてしまうのですよ。つまり、最後に倒したモンスターが仲間にできるかどうかの判定が、スキップされてしまうのです。
それを防ぐために、事前に不死身ステートをつけておいて、HPが0になった段階でモンスターが仲間になるかどうかの判定をさせてから、戦闘終了となるように、このようなややこしい事をしているというわけです。
「仕様です。仲間にしたいモンスターは最後に倒さないで下さい」とでも言ってしまえば、こんな事しなくてもすべてが丸く解決します。

それから、今の設定のままだと、仲間にしたいモンスターを倒してから逃げ出して戦闘が終了した場合でも、仲間になるイベントが発生してしまうおそれがあります。
それでもいいという方は別に問題ないんですが、逃げたのにモンスターが仲間になるのはおかしいという方もいるかと思います。
その対策は、多少スクリプトエディタを弄らなければなりません。
といっても、決して難しくはないので、心配しないで下さい。
そもそもおいらに難しいスクリプトを作る技術などありません。

まず、次の文字列をコピーして下さい。

――――――――――――――――――――――――――――――――――――――
$game_switches[1] = false
――――――――――――――――――――――――――――――――――――――

そして、以下の画像のように、スクリプトエディタ「Scene_battle」の324行目の下に、[ ]の中の数字を1つずつ変えながら、コピペして文字列を追加して下さい。[ ]の部分には、使用したスイッチ番号が入ります。
例では8つですが、仲間になるモンスターの数(つまり、コモンイベントの起動用に使うスイッチの数)だけ追加して下さい。

method12b.png

こうすると、戦闘中に逃げた場合は指定のすべてのスイッチがOFFになりますので、逃げてもモンスターが仲間になる、となってしまうのを防ぐ事ができます。

最後に、これは「該当のモンスターがすでに仲間になっている場合、仲間にならない」というのを想定していますが、同じモンスターが何体いてもいい、という方は、戦闘イベントの条件分岐「○○がパーティにいる」というのを削除して下さい。こうすると、同種モンスターを何体でも仲間にできるようになります。

さあ、君も今日からポケ○ンマスターだ!(違
スポンサーサイト
Secret

TrackBackURL
→http://inumochi.blog.fc2.com/tb.php/24-a3c38ffe
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。