ウェーブ式戦闘を作りたい。
ウェーブ式戦闘を作りたい。
新参のどくろんというものです。
敵パーティを全滅させたら第二波、第三波と次々と流れ込んでくる戦闘を作りたいなぁと思っています。
画面中央に『wave 1/3』という表示があると嬉しいです。
何か良いプラグインを作ってくださる方、若しくはこんなの知ってるよという方がいらっしゃると嬉しいです……お願い致します。
敵パーティを全滅させたら第二波、第三波と次々と流れ込んでくる戦闘を作りたいなぁと思っています。
画面中央に『wave 1/3』という表示があると嬉しいです。
何か良いプラグインを作ってくださる方、若しくはこんなの知ってるよという方がいらっしゃると嬉しいです……お願い致します。
Re: ウェーブ式戦闘を作りたい。
説明が難しいのですが一応デフォルトの機能とスクリプトで可能な方法があるので書いておきます。
※この方法で可能な敵の数は全WAVEで合計8体までです。
バトルイベント1
条件:ターン0 スパン:バトル
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆変数の操作:#0061 WAVE1 = 0
バトルイベント2
条件:敵キャラHP (1) <= 0% スパン:バトル
◆注釈:一つのWAVEに敵が一体の場合、変数操作と条件分岐はいらない
◆変数の操作:#0061 WAVE1 += 1
◆敵キャラのステート変更:#1 ゾンビS, - 不死身
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', 'ゾンビSを倒した!');
: : BattleManager._logWindow.push('clear');
: :}
◆注釈:条件分岐の2の部分はWAVE1の敵の数だけ用意
◆条件分岐:WAVE1 = 2
◆スクリプト:BattleManager.endTurn();
◆ウェイト:60フレーム
◆敵キャラの出現:#2 スライム
◆注釈:画面全体アニメーションをWAVEの数だけ用意
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', '新たな敵が現れた!');
: : BattleManager._logWindow.push('wait');
: : BattleManager._logWindow.push('clear');
: :}
◆戦闘アニメーションの表示:#2 スライム, 花粉
◆注釈:これより下は中間のWAVEのみ最終WAVEには必要なし
◆敵キャラのステート変更:#2 スライム, + 不死身
◆
:分岐終了
バトルイベント3~
バトルイベント2を敵の数だけ作成。
こんな感じです。
少しデフォルトのバトルログの表示と変わってしまいますが、
だいたい動画のような事ができているかと思います。
※この方法で可能な敵の数は全WAVEで合計8体までです。
バトルイベント1
条件:ターン0 スパン:バトル
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆変数の操作:#0061 WAVE1 = 0
バトルイベント2
条件:敵キャラHP (1) <= 0% スパン:バトル
◆注釈:一つのWAVEに敵が一体の場合、変数操作と条件分岐はいらない
◆変数の操作:#0061 WAVE1 += 1
◆敵キャラのステート変更:#1 ゾンビS, - 不死身
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', 'ゾンビSを倒した!');
: : BattleManager._logWindow.push('clear');
: :}
◆注釈:条件分岐の2の部分はWAVE1の敵の数だけ用意
◆条件分岐:WAVE1 = 2
◆スクリプト:BattleManager.endTurn();
◆ウェイト:60フレーム
◆敵キャラの出現:#2 スライム
◆注釈:画面全体アニメーションをWAVEの数だけ用意
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', '新たな敵が現れた!');
: : BattleManager._logWindow.push('wait');
: : BattleManager._logWindow.push('clear');
: :}
◆戦闘アニメーションの表示:#2 スライム, 花粉
◆注釈:これより下は中間のWAVEのみ最終WAVEには必要なし
◆敵キャラのステート変更:#2 スライム, + 不死身
◆
:分岐終了
バトルイベント3~
バトルイベント2を敵の数だけ作成。
こんな感じです。
少しデフォルトのバトルログの表示と変わってしまいますが、
だいたい動画のような事ができているかと思います。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Re: ウェーブ式戦闘を作りたい。
>>ピーピーさん
お返事ありがとうございます!!!
SyntaxError: Unexpected token ILLEGAL
と出てしまったのですが、何処か調整した方がいいですかね?
お返事ありがとうございます!!!
SyntaxError: Unexpected token ILLEGAL
と出てしまったのですが、何処か調整した方がいいですかね?
Re: ウェーブ式戦闘を作りたい。
んーなぜでしょうか??
スクリプトの打ち間違えかもしれませんのでコピペ用にコードを書いておきます。
日本語以外の部分は書き換えずにコピーしてください。
敵を倒したというバトルログの表示
ターン終了処理
敵が現れたときのバトルログの表示
あとどうでもいいんですが、ピーピー(PP)ではなくビービー(BB)です 
スクリプトの打ち間違えかもしれませんのでコピペ用にコードを書いておきます。
日本語以外の部分は書き換えずにコピーしてください。

コード: 全て選択
if(BattleManager._logWindow !== null){
BattleManager._logWindow.push('addText', '敵を倒した!');
BattleManager._logWindow.push('clear');
}

コード: 全て選択
BattleManager.endTurn();

コード: 全て選択
if(BattleManager._logWindow !== null){
BattleManager._logWindow.push('addText', '新たな敵が現れた!');
BattleManager._logWindow.push('wait');
BattleManager._logWindow.push('clear');
}

------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Re: ウェーブ式戦闘を作りたい。
>>ビービーさん
も、申し訳ないっ!!!失礼しました!
やったみたところ、エラー事態は起きなかったんですが、通常戦闘と変わりなかったです・・・
入力したスクショか何かありますか?
もしかしたら、導入の仕方事態間違えてるかもしれません・・・
も、申し訳ないっ!!!失礼しました!
やったみたところ、エラー事態は起きなかったんですが、通常戦闘と変わりなかったです・・・
入力したスクショか何かありますか?
もしかしたら、導入の仕方事態間違えてるかもしれません・・・
Re: ウェーブ式戦闘を作りたい。
WAVE1以降の敵も事前に戦闘グループに追加しておく必要があります。
追加したモンスターのグラフィックを右クリックすると「途中から出現」と表示されるのでクリックしてください。
すると半透明になります。
この状態の敵は戦闘開始時には出てこず、イベントコマンドの「敵キャラの出現…」でのみ戦闘に参加させることが可能です。 それとWAVE表示の方法をアニメーション以外にも可能だったので紹介しておきます。
◆ピクチャの表示:#1, Castle, 左上 (0,0), (50%,50%), 255, 通常
◆戦闘アニメーションの表示:#2 スライム, 水/全体3
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 2/3\.\.\.\.\|\^
◆ピクチャの消去:#1
この順番でイベントを組むとアニメーション終了と同時にピクチャが消えていい感じかと思います。
文章の表示は制御文字で2秒後に自動で消えるように設定してあるのでアニメーションの長さに応じて改造してください。
バトルイベントの組み方を全部スクショとるのは大変なのでとりあえず一枚置いときます。
追加したモンスターのグラフィックを右クリックすると「途中から出現」と表示されるのでクリックしてください。
すると半透明になります。
この状態の敵は戦闘開始時には出てこず、イベントコマンドの「敵キャラの出現…」でのみ戦闘に参加させることが可能です。 それとWAVE表示の方法をアニメーション以外にも可能だったので紹介しておきます。
◆ピクチャの表示:#1, Castle, 左上 (0,0), (50%,50%), 255, 通常
◆戦闘アニメーションの表示:#2 スライム, 水/全体3
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 2/3\.\.\.\.\|\^
◆ピクチャの消去:#1
この順番でイベントを組むとアニメーション終了と同時にピクチャが消えていい感じかと思います。
文章の表示は制御文字で2秒後に自動で消えるように設定してあるのでアニメーションの長さに応じて改造してください。
バトルイベントの組み方を全部スクショとるのは大変なのでとりあえず一枚置いときます。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Re: ウェーブ式戦闘を作りたい。
あ、スクショのハロルドに毒を付与しているのはスクリプトによるターンエンド処理でステートが機能しているかを試したものなので無視してください。
ちなみにちゃんとステートの効果が出ていたのでこのタイミングでアクターにリジェネ的なターン終了時に回復するステートなどを付与するとWAVEごとに回復という事も可能です。
ちなみにちゃんとステートの効果が出ていたのでこのタイミングでアクターにリジェネ的なターン終了時に回復するステートなどを付与するとWAVEごとに回復という事も可能です。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Re: ウェーブ式戦闘を作りたい。
最初にスライムが二体出現する戦闘のようですが、
敵キャラのHPを条件にしているページが一つしかないのが一番の原因だと思います。
HPを条件にしているページは敵キャラの数だけ必要です。
それとバトルイベント1ページ目で全体の不死身を解除していますが、逆です。
2ページ目の三行目で敵全体の不死身を解除していますがこのページの条件になっている敵のみにしてください。
一度敵を不死身にしているのは、HP0を条件にしていても、現在いる敵がすべて戦闘不能になった場合即時に戦闘終了が呼び出されてしまうのを防ぐためなので、その敵自身のHPが0になってその敵のHPを条件にしたバトルイベントが呼び出されるまでは解除しないでおいてください。
あと2ページ目の最後にへんなのの不死身を解除していますが、こちらも逆に付加しないとバトルイベントが発生しなくなってしまいます。
バトルイベントの2ページ目をコピーし3ページ目を作成、
条件をもう一体のスライムのHPにしてみてください。
↓どくろんさんのスクショに似せつつ整理したイベント例です。
バトルイベント2ページ目
条件:ターン0 スパン:バトル
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 1/3\.\.\.\.\|\^
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆変数の操作:#0061 WAVE1 = 0
バトルイベント2ページ目
条件:敵キャラHP (1) <= 0% スパン:バトル
ID1の敵のHPが0になったさいに一度だけ呼び出されるイベントです
◆注釈:一つのWAVEに敵が一体の場合、変数操作と条件分岐はいらない
◆変数の操作:#0061 WAVE1 += 1
WAVE1で倒した敵の数をカウントしています。
◆敵キャラのステート変更:#1 スライム, - 不死身
イベントが開始された後にID1の敵(このイベントの条件の敵)だけ不死身を解いています。
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', 'スライムを倒した!');
: : BattleManager._logWindow.push('clear');
: :}
◆条件分岐:WAVE1 = 2
↑この条件分岐でWAVE1の敵をすべて倒したかを判定し、倒している場合これ以降が実行されます。
◆スクリプト:BattleManager.endTurn();
◆ウェイト:60フレーム
◆敵キャラの出現:#3 へんなの
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', '新たな敵が現れた!');
: : BattleManager._logWindow.push('wait');
: : BattleManager._logWindow.push('clear');
: :}
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 2/3\.\.\.\.\|\^
◆注釈:これより下は中間のWAVEのみ最終WAVEには必要なし
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆
:分岐終了
バトルイベント3ページ目
条件:敵キャラHP (2) <= 0% スパン:バトル
ID2の敵のHPが0になったさいに一度だけ呼び出されるイベントです
◆注釈:一つのWAVEに敵が一体の場合、変数操作と条件分岐はいらない
◆変数の操作:#0061 WAVE1 += 1
WAVE1で倒した敵の数をカウントしています。
◆敵キャラのステート変更:#2 スライム, - 不死身
イベントが開始された後にID2の敵(このイベントの条件の敵)だけ不死身を解いています。
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', 'スライムを倒した!');
: : BattleManager._logWindow.push('clear');
: :}
◆条件分岐:WAVE1 = 2
↑この条件分岐でWAVE1の敵をすべて倒したかを判定し、倒している場合これ以降が実行されます。
◆スクリプト:BattleManager.endTurn();
◆ウェイト:60フレーム
◆敵キャラの出現:#3 へんなの
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', '新たな敵が現れた!');
: : BattleManager._logWindow.push('wait');
: : BattleManager._logWindow.push('clear');
: :}
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 2/3\.\.\.\.\|\^
◆注釈:これより下は中間のWAVEのみ最終WAVEには必要なし
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆
:分岐終了
敵キャラのHPを条件にしているページが一つしかないのが一番の原因だと思います。
HPを条件にしているページは敵キャラの数だけ必要です。
それとバトルイベント1ページ目で全体の不死身を解除していますが、逆です。
2ページ目の三行目で敵全体の不死身を解除していますがこのページの条件になっている敵のみにしてください。
一度敵を不死身にしているのは、HP0を条件にしていても、現在いる敵がすべて戦闘不能になった場合即時に戦闘終了が呼び出されてしまうのを防ぐためなので、その敵自身のHPが0になってその敵のHPを条件にしたバトルイベントが呼び出されるまでは解除しないでおいてください。
あと2ページ目の最後にへんなのの不死身を解除していますが、こちらも逆に付加しないとバトルイベントが発生しなくなってしまいます。
バトルイベントの2ページ目をコピーし3ページ目を作成、
条件をもう一体のスライムのHPにしてみてください。
↓どくろんさんのスクショに似せつつ整理したイベント例です。

条件:ターン0 スパン:バトル
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 1/3\.\.\.\.\|\^
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆変数の操作:#0061 WAVE1 = 0

条件:敵キャラHP (1) <= 0% スパン:バトル
ID1の敵のHPが0になったさいに一度だけ呼び出されるイベントです
◆注釈:一つのWAVEに敵が一体の場合、変数操作と条件分岐はいらない
◆変数の操作:#0061 WAVE1 += 1
WAVE1で倒した敵の数をカウントしています。
◆敵キャラのステート変更:#1 スライム, - 不死身
イベントが開始された後にID1の敵(このイベントの条件の敵)だけ不死身を解いています。
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', 'スライムを倒した!');
: : BattleManager._logWindow.push('clear');
: :}
◆条件分岐:WAVE1 = 2
↑この条件分岐でWAVE1の敵をすべて倒したかを判定し、倒している場合これ以降が実行されます。
◆スクリプト:BattleManager.endTurn();
◆ウェイト:60フレーム
◆敵キャラの出現:#3 へんなの
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', '新たな敵が現れた!');
: : BattleManager._logWindow.push('wait');
: : BattleManager._logWindow.push('clear');
: :}
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 2/3\.\.\.\.\|\^
◆注釈:これより下は中間のWAVEのみ最終WAVEには必要なし
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆
:分岐終了

条件:敵キャラHP (2) <= 0% スパン:バトル
ID2の敵のHPが0になったさいに一度だけ呼び出されるイベントです
◆注釈:一つのWAVEに敵が一体の場合、変数操作と条件分岐はいらない
◆変数の操作:#0061 WAVE1 += 1
WAVE1で倒した敵の数をカウントしています。
◆敵キャラのステート変更:#2 スライム, - 不死身
イベントが開始された後にID2の敵(このイベントの条件の敵)だけ不死身を解いています。
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', 'スライムを倒した!');
: : BattleManager._logWindow.push('clear');
: :}
◆条件分岐:WAVE1 = 2
↑この条件分岐でWAVE1の敵をすべて倒したかを判定し、倒している場合これ以降が実行されます。
◆スクリプト:BattleManager.endTurn();
◆ウェイト:60フレーム
◆敵キャラの出現:#3 へんなの
◆スクリプト:if(BattleManager._logWindow !== null){
: : BattleManager._logWindow.push('addText', '新たな敵が現れた!');
: : BattleManager._logWindow.push('wait');
: : BattleManager._logWindow.push('clear');
: :}
◆文章:なし, 透明, 中
: :\{\{\{\{\{\{ WAVE 2/3\.\.\.\.\|\^
◆注釈:これより下は中間のWAVEのみ最終WAVEには必要なし
◆敵キャラのステート変更:敵グループ全体, + 不死身
◆
:分岐終了
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/