> パーティーメンバー全員の状態異常を取得し(移動中に)全員が毒などの状態異常にかかってHP0の戦闘不能になったらゲームオーバーという処理にしたいのですがコモン24では状態異常を一人一人しか取得できませんよね。
> (メンバーが一人でも生存している限りゲームは続行される)
>
> パーティー全員の状態異常を取得する方法を教えてください。
処理としては、可変DB[6:パーティー情報]の項目[1〜6]にパーティにいる主人公IDが保存されているので、その主人公IDをセルフ変数に保存し、
コモンイベント[24:▲状態異常の取得]を呼び出す設定では、「対象主人公」の右側にあるチェックボックスにチェックを入れて、
「1600011」などの変数呼び出し値で主人公IDを保存したセルフ変数の値を呼び出すようにすれば、
パーティにいる主人公の状態異常を取得する事ができます。
コモンイベント[24:▲状態異常の取得]は、一人の主人公しか調べる事ができないので、パーティ全員を調べる場合は、
ループ処理を使ってパーティの人数分だけループし、パーティにいる主人公を一人ずつ調べていく必要があります。
以下は移動する度に、パーティ全員が戦闘不能であるかどうかを調べる処理です。
★コモンイベント/並列実行
■変数操作+: CSelf20[移動確認:X座標] = 主人公 の X座標(精密) *キャラ左側位置
■変数操作+: CSelf21[移動確認:Y座標] = 主人公 の Y座標(精密) *キャラ足下-1位置
■条件分岐(変数): 【1】 CSelf20[移動確認:X座標] が CSelf22[現在:X座標] と同じ
-◇分岐: 【1】 [ CSelf20[移動確認:X座標] が CSelf22[現在:X座標] と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf21[移動確認:Y座標] が CSelf23[現在:Y座標] と同じ
|-◇分岐: 【1】 [ CSelf21[移動確認:Y座標] が CSelf23[現在:Y座標] と同じ ]の場合↓
||■イベント処理中断
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作+: CSelf22[現在:X座標] = 主人公 の X座標(精密) *キャラ左側位置
■変数操作+: CSelf23[現在:Y座標] = 主人公 の Y座標(精密) *キャラ足下-1位置
■変数操作: CSelf10[可変6項目ID] = 0 + 0
■変数操作: CSelf15[全員戦闘不能=1] = 1 + 0
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf10[可変6項目ID] += 1 + 0
|■DB読込(可変): CSelf11[主人公ID] = 可変DB[ 6 : 0 : CSelf10[可変6項目ID] ] (パーティー情報 : メイン設定 : -)
|■イベントの挿入[名]: CSelf12[状態異常確認] = ["▲状態異常の取得"] <コモンEv 24> / CSelf11[主人公ID] / 0:戦闘不能
|■変数操作: CSelf15[全員戦闘不能=1] 上限= CSelf12[状態異常確認] + 0
|■
◇ループここまで◇◇
▼ パーティ全員が戦闘不能になった場合は、セルフ変数[15]が「1」になる
■条件分岐(変数): 【1】 CSelf15[全員戦闘不能=1] が 1 と同じ
-◇分岐: 【1】 [ CSelf15[全員戦闘不能=1] が 1 と同じ ]の場合↓
|■次イベントの予約: コモン213:[ ゲームオーバーイベント ]
|■
◇分岐終了◇
■
WoditorEvCOMMAND_START
[124][4,0]<0>(1600020,4096,-2,2)()
[124][4,0]<0>(1600021,4096,-2,3)()
[111][4,0]<0>(1,1600020,1600022,2)()
[401][1,0]<0>(1)()
[111][4,0]<1>(1,1600021,1600023,2)()
[401][1,0]<1>(1)()
[172][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
[124][4,0]<0>(1600022,4096,-2,2)()
[124][4,0]<0>(1600023,4096,-2,3)()
[121][4,0]<0>(1600010,0,0,0)()
[121][4,0]<0>(1600015,1,0,0)()
[179][1,0]<0>(1118000400)()
[121][4,0]<1>(1600010,1,0,256)()
[250][5,4]<1>(6,0,1600010,4096,1600011)("","","","")
[300][5,1]<1>(0,16777218,1600011,0,1600012)("▲状態異常の取得")
[121][4,0]<1>(1600015,1600012,0,1792)()
[0][0,0]<1>()()
[498][0,0]<0>()()
[103][0,1]<0>()("パーティ全員が戦闘不能になった場合は、セルフ変数[15]が「1」になる")
[111][4,0]<0>(1,1600015,1,2)()
[401][1,0]<0>(1)()
[211][2,0]<1>(500213,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END
> [やりたいこと]
> ドラクエみたいな「いてつくはどう」の技能を作りたい
>
> [やってみたこと]
> ドラクエのいてつくはどうみたいな技能を作りたいと思って
> UDBの技能の項目のページ2のところにある治療するステータス状態の欄に攻撃力や防御力が上がるとかの相手に有利な技能を治癒して消そうと思ったのですが
> 治癒するステータス状態の欄が3個しかなくて作れませんでした
>
> 治癒するステータス状態の欄をもっと増やせたりしますか?
> 「いてつくはどう」みたいな相手に有利な技能を打ち消すみたいな技能の作り方を教えてください。
処理方法は
【特定の技能を使ったら特別な処理を実行】
【ユーザーDB[0:技能]に項目「回復するステータス状態」を増やす】
の2つが考えられますが、どちらが良いかは両方を説明を見て、ご自身で決めてください。
(一応両方を設定する事も可能)
なお、どちらの処理方法もコモンイベント[165:X[戦]┗単体処理]の654行目にあるループ処理の中に追加設定を行います。
【特定の技能を使ったら特別な処理を実行】
特定の技能が使用された時に、その技能固有のイベント処理を実行する処理方法です。
ユーザーDB[0:技能]に新たな項目は作成しません。
状態を解除する時に、解除された状態をメッセージで表示したくない場合は、こちらの処理方法で設定してください。
(状態解除のメッセージを表示しない場合は、既存の項目「回復するステータス状態1」などには設定しないでください)
▼改造手順
ユーザーDB[0:技能]に「いてつくはどう」を作成。
(設定例ではデータID[40]に作成)
コモンイベント[165:X[戦]┗単体処理]の680行目に以下のイベントを追加。
■条件分岐(変数): 【1】 CSelf1[発動技能] が 40 と同じ
-◇分岐: 【1】 [ CSelf1[発動技能] が 40 と同じ ]の場合↓
|■
◇分岐終了◇
WoditorEvCOMMAND_START
[111][4,0]<0>(1,1600001,40,2)()
[401][1,0]<0>(1)()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END
この条件分岐の中に相手の状態異常を回復させたいものを設定します。
677行目にある
■イベントの挿入[名]: ["X[戦]状態付与/消去"] <コモンEv 137> / CSelf2[対象スロット(単)] / CSelf62[消去状態3] / 0:消去 / 1:メッセージ有り
をコピーし、条件分岐の中に貼り付け、貼り付けた設定を開き、
戦闘スロット=1600002
付与する状態=右のチェックを外し、消したい状態を設定
付与?消去?=0:消去
メッセージ有無=お好きな方を選択
と設定してください。
消したい状態がまだある場合は、さらに「イベントの挿入[名]」を貼り付けて設定してください。
以上で設定完了。
【ユーザーDB[0:技能]に項目「回復するステータス状態」を増やす】
ユーザーDB[0:技能]に項目「回復するステータス状態」を増やして処理します。
「回復するステータス状態」を4つ以上設定したい技能が複数ある場合は、こちらの処理方法が良いかと思います。
▼改造手順
ユーザーDB[0:技能]の「タイプの内容設定」を開き、
画面下の「内容の挿入・削除・コピー」にて「28」を設定し「をコピー」を押す。
「99」を設定し「に貼り付け」を押す。(「回復するステータス状態」を追加したい数だけ押す)
項目名37以降に「回復するステータス状態1」が追加されたら、
「回復するステータス状態4」
「回復するステータス状態5」
「回復するステータス状態6」
と名前を変更し、画面下のOKを押して、タイプの設定を確定する。
技能を「いてつくはどう」を作成し、「回復するステータス状態」をお好きなように設定。
コモンイベント[165:X[戦]┗単体処理]の680行目に以下のイベントを追加。
■DB読込(ユーザ): CSelf60[消去状態1] = ユーザDB[ 技能 : CSelf1[発動技能] : 回復するステータス状態4 ] (0 : - : 37)
■条件分岐(変数): 【1】 CSelf60[消去状態1] が -1 以外
-◇分岐: 【1】 [ CSelf60[消去状態1] が -1 以外 ]の場合↓
|■イベントの挿入[名]: ["X[戦]状態付与/消去"] <コモンEv 137> / CSelf2[対象スロット(単)] / CSelf60[消去状態1] / 0:消去 / 1:メッセージ有り
|■
◇分岐終了◇
WoditorEvCOMMAND_START
[250][5,4]<0>(0,1600001,28,332288,1600060)("","技能","","回復するステータス状態4")
[111][4,0]<0>(1,1600060,-1,5)()
[401][1,0]<0>(1)()
[300][6,1]<1>(0,4,1600002,1600060,0,1)("X[戦]状態付与/消去")
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END
「イベントの挿入[名]」」の設定はそのままで良いです。
さらに「回復するステータス状態5」がある場合は、上記のイベントコードをコピーし、
追加した「回復するステータス状態4」の設定の下(686行目)に貼り付け、
DB読込(ユーザ)の「回復するステータス状態4」の設定を「回復するステータス状態5」に変えてください。
以上で設定完了。