一括表示

記事No: 21162
タイトル戦闘中に、1ターン敵だけが行動するようにしたい
投稿日: 2020/09/25 15:31
投稿者ルイ・サイファ [epgeeOO452(海外)]

[やりたいこと]
女神転生風のゲームを開発しようとしていて、敵キャラと会話して仲間にするというコモンイベントを作っていて、会話の状況が悪くなったり会話できない相手に話しかけるとこちらのターンに敵が割り込んで襲いかかってくるというものを作ろうとしています。

[やってみたこと]
そこでコモン#193を呼び出し、敵のAIのみを計算してからコモン#195 1ターンの処理を実行 を呼び出してこちらの行動を飛ばして敵だけが攻撃するようにしました。

[やってみた結果、どううまくいかないか]
このようにしてみたところ、こちらの行動が全て飛ばされ1ターン敵だけが攻撃してくるようになりましたが、敵の真下に味方欄が動いてしまったり(画像)、、敵だけが攻撃してきた次のターンに敵が二回行動になってしまいました。

どうすれば、表示を崩さず、かつ敵の行動回数が増えたりせずに敵が割り込んで襲ってくるようになるでしょうか。
どうか、識者の方にアドバイスを伺いたいです。


記事No: 21163
タイトル戦闘中に、1ターン敵だけが行動するようにしたい
投稿日: 2020/09/25 15:42
投稿者ルイ・サイファ [epgeeOO452(海外)]

すみません、うまく画像が貼れていませんでした…
改めて貼り直します


記事No: 21164
タイトル戦闘中に、1ターン敵だけが行動するようにしたい
投稿日: 2020/09/25 15:45
投稿者ルイ・サイファ [epgeeOO452(海外)]

改めて申し訳ありません…まだ、この質問スレッドの使い方がわかっていないので、画像を上手く貼れません…

とりあえず、外部サイトのURLで画像を貼らせていただきます
hhttps://d.kuku.lu/12c1f23d65


記事No: 21171
タイトルRe: 戦闘中に、1ターン敵だけが行動するようにしたい
投稿日: 2020/09/26 01:47
投稿者YADO [LerLWW459(海外)]

> [やりたいこと]
> 女神転生風のゲームを開発しようとしていて、敵キャラと会話して仲間にするというコモンイベントを作っていて、会話の状況が悪くなったり会話できない相手に話しかけるとこちらのターンに敵が割り込んで襲いかかってくるというものを作ろうとしています。
>
> [やってみたこと]
> そこでコモン#193を呼び出し、敵のAIのみを計算してからコモン#195 1ターンの処理を実行 を呼び出してこちらの行動を飛ばして敵だけが攻撃するようにしました。
>
> [やってみた結果、どううまくいかないか]
> このようにしてみたところ、こちらの行動が全て飛ばされ1ターン敵だけが攻撃してくるようになりましたが、敵の真下に味方欄が動いてしまったり(画像)、、敵だけが攻撃してきた次のターンに敵が二回行動になってしまいました。
>
> どうすれば、表示を崩さず、かつ敵の行動回数が増えたりせずに敵が割り込んで襲ってくるようになるでしょうか。
> どうか、識者の方にアドバイスを伺いたいです。

バグを再現するための詳しい設定方法(サンプルゲームからの設定方法)が書かれてなかったので、
「こんな感じの設定かな〜」と言った予測設定で、一応2ターン目に2回攻撃してくるバグの再現はできましたが、
主人公のステータス画面が動くバグの再現はできませんでした。


2ターン目に2回攻撃してくるバグについてですが、
現状の設定では多分「会話する」のようなコマンドがあり、
それを選択するとすぐに指定したコモンイベントが呼び出され、
その中にあるコモン[193]とコモン[195]を呼び出す設定が実行される感じでしょうか。

敵の攻撃が終わると2ターン目になりますが、実際にはまだ1ターン目の処理が続いており、
主人公の行動選択も1ターン目の行動選択になっています。

通常では次のターンになると、主人公と敵キャラの行動を記録する設定が初期化されますが、
「会話する」の攻撃の時には、敵の攻撃が終了しても1ターン目のままなので、
「会話する」の攻撃設定もそのまま残った状態になります。

そのあとで2ターン目(本当は1ターン目)を実行すると、
初期化されていない「会話する」の時の敵の攻撃がもう一度実行され、
さらに本来の1ターン目の敵の攻撃も実行されるので、
次のターンで敵が2回攻撃してくる状態になります。


以下は改善方法を記載したものです。
必ず作品データのバックアップを残してから設定してみて下さい。
なお、以下の設定を行って、ステータス画面が動くバグが直るかどうかは不明です。


「会話する」のコマンドがある主人公がパーティの1人目(先頭にいる主人公)ならば、
コモン[193]とコモン[195]による敵の攻撃後にコマンド登録を初期化するだけで良いでしょう。

■イベントの挿入[名]: ["X┃┗◆敵・味方AI計算"] <コモンEv 193> / 1:敵のAIのみ計算
■イベントの挿入[名]: ["X┣◆1ターンの処理を実行"] <コモンEv 195>
■イベントの挿入[名]: ["X[戦]コマンド登録"] <コモンEv 157> / 0 / 0 / -1:全初期化 / 0

WoditorEvCOMMAND_START
[300][3,1]<0>(0,1,1)("X┃┗◆敵・味方AI計算")
[300][2,1]<0>(0,0)("X┣◆1ターンの処理を実行")
[300][6,1]<0>(0,4,0,0,-1,0)("X[戦]コマンド登録")
WoditorEvCOMMAND_END


「会話する」のコマンドがある主人公がパーティの2人目以降になる可能性がある場合は、
通常変数[1:会話失敗]のような変数を用意し、会話に失敗した時には、
主人公の行動選択を強制的に終了させるような設定を行うと良いでしょう。

「会話する」の実行時に呼び出すコモンイベントの設定で
■イベントの挿入[名]: ["X┃┗◆敵・味方AI計算"] <コモンEv 193> / 1:敵のAIのみ計算
■イベントの挿入[名]: ["X┣◆1ターンの処理を実行"] <コモンEv 195>
を削除し、代わりに
■イベントの挿入[名]: ["X[戦]コマンド登録"] <コモンEv 157> / 0 / 0 / -1:全初期化 / 0
■変数操作: V1[会話失敗] = 1 + 0
を設定。

WoditorEvCOMMAND_START
[300][6,1]<0>(0,4,0,0,-1,0)("X[戦]コマンド登録")
[121][4,0]<0>(2000001,1,0,0)()
WoditorEvCOMMAND_END


コモン[192]の272行目に以下のイベントを追加。

■条件分岐(変数): 【1】 V1[会話失敗] が 1 と同じ
-◇分岐: 【1】 [ V1[会話失敗] が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇

WoditorEvCOMMAND_START
[111][4,0]<0>(1,2000001,1,2)()
[401][1,0]<0>(1)()
[172][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


コモン[191]の114行目に以下のイベントを追加。

■条件分岐(変数): 【1】 V1[会話失敗] が 1 と同じ
-◇分岐: 【1】 [ V1[会話失敗] が 1 と同じ ]の場合↓
|■変数操作: CSelf0[コマンドモード] = -1 + 0
|●ラベル「AI処理開始」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇

WoditorEvCOMMAND_START
[111][4,0]<0>(1,2000001,1,2)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600000,-1,0,0)()
[213][0,1]<1>()("AI処理開始")
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


コモン[188]の53行目に以下のイベントを追加。

■変数操作: V1[会話失敗] = 0 + 0

WoditorEvCOMMAND_START
[121][4,0]<0>(2000001,0,0,0)()
WoditorEvCOMMAND_END


以上で設定完了です。


記事No: 21172
タイトルRe: 戦闘中に、1ターン敵だけが行動するようにしたい
投稿日: 2020/09/26 12:07
投稿者ルイ・サイファ [epgeeOO452(海外)]

質問に答えてくださり、ありがとうございます。 おかげで表示は崩れたままですが敵が二回行動になることもなく襲ってくるようになりました。

少し焦っていて言葉足らずになってしまいましたが、YADOさんの予想設定でほぼ間違いないです。
主人公の戦闘コマンドから無限使用の技能:交渉(戦闘中のみ会話用のコモンイベントを呼び出すもの)を発動するという形になっています。

また、表示が崩れる問題についてですが 現在使用しているウディタと基本システムがバージョン2.10なので、
最新版で同様のコモンを呼び出してみたところ、表示が崩れることはなかったためバージョンか導入しているコモンの問題かと思い本体と基本システムを2.24へ更新し、導入しているコモンを2.24対応へと改変しようと思います。

もし、また何か問題がありましたら再度質問すると思います。今回は迅速な解答をありがとうございました。