一括表示

記事No: 21152
タイトルふいうちで行動制限できない
投稿日: 2020/09/22 01:17
投稿者Tark [WdrLpOO827(海外)]

[やりたいこと]
先制攻撃で敵が行動し無いようにしたい

[やってみたこと]
まず○[変更可]戦闘開始時処理」でふいうちとそうでないときの条件分岐の値を変数に入れた。
188:戦闘処理でその値を読み込み、先制攻撃になったときは敵の行動を1ターン動けないようにした。

■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 1 + 0
■ループ開始
|■条件分岐(変数): 【1】 CSelf40[先制・バックアタック発生確率] が 20 以下 【2】 CSelf40[先制・バックアタック発生確率] が 99 以下 【3】 CSelf40[先制・バックアタック発生確率] が 100 以下
|-◇分岐: 【1】 [ CSelf40[先制・バックアタック発生確率] が 20 以下 ]の場合↓
| |▼ 先制攻撃の場合
| |■変数操作: CSelf10 = 9 + 0
| |■回数付きループ [ 7 ]回
| | |■変数操作: CSelf10 = 1 + 0
| | |■可変DB書込:DB[ ×┏ 戦闘一時ステータス[基] : CSelf10 : 【行動制限】 ] (10 : - : 59) = 1
| | |■
| |◇ループここまで◇◇
| |▼ 逃走不能(セルフ1=1)なら、「戦闘・逃走コマンド」を出さない。
| |■イベントの挿入[名]: CSelf19[逃走?終了?] = ["X┣◆行動内容のセット"] <コモンEv 191> / CSelf18[戦闘・逃走コマンド表示?] / CSelf1[逃走可能?]
| |■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 0 + 0
| |■条件分岐(変数): 【1】 CSelf19[逃走?終了?] が 1 と同じ 【2】 CSelf19[逃走?終了?] が 10 と同じ
| |-◇分岐: 【1】 [ CSelf19[逃走?終了?] が 1 と同じ ]の場合↓
| | |▼ 逃走処理の場合
| | |●ラベル「逃走処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |●ラベル地点「逃走戻り」 <<<<<<<<<<<<<<<<<<<<<<<<★
| | |■イベントの挿入[名]: ["X┣◆行動内容のセット"] <コモンEv 191> / -1:逃走失敗時
| | |■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 1 + 0
| | |■
| |-◇分岐: 【2】 [ CSelf19[逃走?終了?] が 10 と同じ ]の場合↓
| | |▼ 戦闘終了の場合
| | |■イベントの挿入[名]: CSelf20[終了判定] = ["X[戦]敵/味方・勝敗判定"] <コモンEv 232> / 1:ターン経過の勝敗も判定
| | |■ループ中断
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf40[先制・バックアタック発生確率] = 50 + 0
| |■
|-◇分岐: 【2】 [ CSelf40[先制・バックアタック発生確率] が 99 以下 ]の場合↓
| |▼ 通常戦闘の場合
| |▼ 逃走不能(セルフ1=1)なら、「戦闘・逃走コマンド」を出さない。
| |■イベントの挿入[名]: CSelf19[逃走?終了?] = ["X┣◆行動内容のセット"] <コモンEv 191> / CSelf18[戦闘・逃走コマンド表示?] / CSelf1[逃走可能?]
| |■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 0 + 0
| |■条件分岐(変数): 【1】 CSelf19[逃走?終了?] が 1 と同じ 【2】 CSelf19[逃走?終了?] が 10 と同じ
| |-◇分岐: 【1】 [ CSelf19[逃走?終了?] が 1 と同じ ]の場合↓
| | |▼ 逃走処理の場合
| | |●ラベル「逃走処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |●ラベル地点「逃走戻り」 <<<<<<<<<<<<<<<<<<<<<<<<★
| | |■イベントの挿入[名]: ["X┣◆行動内容のセット"] <コモンEv 191> / -1:逃走失敗時
| | |■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 1 + 0
| | |■
| |-◇分岐: 【2】 [ CSelf19[逃走?終了?] が 10 と同じ ]の場合↓
| | |▼ 戦闘終了の場合
| | |■イベントの挿入[名]: CSelf20[終了判定] = ["X[戦]敵/味方・勝敗判定"] <コモンEv 232> / 1:ターン経過の勝敗も判定
| | |■ループ中断
| | |■
| |◇分岐終了◇
| |■
|-◇分岐: 【3】 [ CSelf40[先制・バックアタック発生確率] が 100 以下 ]の場合↓
| |▼ バックアタックの場合
| |■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 0 + 0
| |■イベントの挿入: コモン191:[ X┣◆行動内容のセット ] / -1:逃走失敗時 / 0:逃走可能
| |■変数操作: CSelf18[戦闘・逃走コマンド表示?] = 1 + 0
| |■変数操作: CSelf40[先制・バックアタック発生確率] = 50 + 0
| |■
|◇分岐終了◇
|■イベントの挿入[名]: ["X┣◆行動順の計算"] <コモンEv 194>
|■イベントの挿入[名]: ["○[変更可]1ターン開始時処理"] <コモンEv 204>
|▼
|■イベントの挿入[名]: CSelf20[終了判定] = ["X[戦]敵/味方・勝敗判定"] <コモンEv 232> / 0:勝敗判定
|■条件分岐(変数): 【1】 CSelf20[終了判定] が 0 以外
|-◇分岐: 【1】 [ CSelf20[終了判定] が 0 以外 ]の場合↓
| |●ラベル「戦闘終了処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■回数付きループ [ 1 ]回
| |▼ 1ターン開始時処理を反映するためのパラメータ更新処理
| |■変数操作: CSelf10 = -1 + 0
| |■DB読込(可変): CSelf23[繰り返し回数] = 可変DB[ 基本システム用変数 : 4 : 0 ] (18 : 現在パーティー人数 : 数値)
| |■回数付きループ [ CSelf23[繰り返し回数] ]回
| | |▼ 全員更新
| | |■変数操作: CSelf10 += 1 + 0
| | |■イベントの挿入[名]: CSelf11 = ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf10
| | |■条件分岐(変数): 【1】 CSelf11 が 0 以上
| | |-◇分岐: 【1】 [ CSelf11 が 0 以上 ]の場合↓
| | | |▼ キャラがいる場合だけ処理
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<初期化>"] <コモンEv 146> / CSelf10
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<装備補正>"] <コモンEv 147> / CSelf10 / -1:全武器を総計
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<状態補正>"] <コモンEv 148> / CSelf10 / 0:パラメータ補正+状態名計算
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |■ウェイト:1 フレーム
| |■変数操作: CSelf10 = 9 + 0
| |■DB読込(可変): CSelf23[繰り返し回数] = 可変DB[ 基本システム用変数 : 69 : 0 ] (18 : [戦闘]敵の最大数(システム) : 数値)
| |■回数付きループ [ CSelf23[繰り返し回数] ]回
| | |▼ 全員更新
| | |■変数操作: CSelf10 += 1 + 0
| | |■イベントの挿入[名]: CSelf11 = ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf10
| | |■条件分岐(変数): 【1】 CSelf11 が 0 以上
| | |-◇分岐: 【1】 [ CSelf11 が 0 以上 ]の場合↓
| | | |▼ キャラがいる場合だけ処理
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<初期化>"] <コモンEv 146> / CSelf10
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<装備補正>"] <コモンEv 147> / CSelf10 / -1:全武器を総計
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<状態補正>"] <コモンEv 148> / CSelf10 / 0:パラメータ補正+状態名計算
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |■
|◇ループここまで◇◇
|■イベントの挿入[名]: ["X┣◆1ターンの処理を実行"] <コモンEv 195>
|■イベントの挿入[名]: ["X┣◆ターン終了処理"] <コモンEv 198>
|■イベントの挿入[名]: ["○[変更可]1ターン終了時処理"] <コモンEv 205>
|▼
|■イベントの挿入[名]: CSelf20[終了判定] = ["X[戦]敵/味方・勝敗判定"] <コモンEv 232> / 0:勝敗判定
|■条件分岐(変数): 【1】 CSelf20[終了判定] が 0 以外
|-◇分岐: 【1】 [ CSelf20[終了判定] が 0 以外 ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■回数付きループ [ 1 ]回
| |▼ 1ターン終了時処理を反映するためのパラメータ更新処理
| |■変数操作: CSelf10 = -1 + 0
| |■DB読込(可変): CSelf23[繰り返し回数] = 可変DB[ 基本システム用変数 : 4 : 0 ] (18 : 現在パーティー人数 : 数値)
| |■回数付きループ [ CSelf23[繰り返し回数] ]回
| | |▼ 全員更新
| | |■変数操作: CSelf10 += 1 + 0
| | |■イベントの挿入[名]: CSelf11 = ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf10
| | |■条件分岐(変数): 【1】 CSelf11 が 0 以上
| | |-◇分岐: 【1】 [ CSelf11 が 0 以上 ]の場合↓
| | | |▼ キャラがいる場合だけ処理
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<初期化>"] <コモンEv 146> / CSelf10
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<装備補正>"] <コモンEv 147> / CSelf10 / -1:全武器を総計
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<状態補正>"] <コモンEv 148> / CSelf10 / 0:パラメータ補正+状態名計算
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |■ウェイト:1 フレーム
| |■変数操作: CSelf10 = 9 + 0
| |■DB読込(可変): CSelf23[繰り返し回数] = 可変DB[ 基本システム用変数 : 69 : 0 ] (18 : [戦闘]敵の最大数(システム) : 数値)
| |■回数付きループ [ CSelf23[繰り返し回数] ]回
| | |▼ 全員更新
| | |■変数操作: CSelf10 += 1 + 0
| | |■イベントの挿入[名]: CSelf11 = ["X[戦]スロットから主人公ID取得"] <コモンEv 141> / CSelf10
| | |■条件分岐(変数): 【1】 CSelf11 が 0 以上
| | |-◇分岐: 【1】 [ CSelf11 が 0 以上 ]の場合↓
| | | |▼ キャラがいる場合だけ処理
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<初期化>"] <コモンEv 146> / CSelf10
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<装備補正>"] <コモンEv 147> / CSelf10 / -1:全武器を総計
| | | |■イベントの挿入[名]: ["X[戦]一時ステ計算<状態補正>"] <コモンEv 148> / CSelf10 / 0:パラメータ補正+状態名計算
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |■
|◇ループここまで◇◇
|▼ 戦闘終了判定
|■イベントの挿入[名]: CSelf20[終了判定] = ["X[戦]敵/味方・勝敗判定"] <コモンEv 232> / 1:ターン経過の勝敗も判定
|■条件分岐(変数): 【1】 CSelf20[終了判定] が 0 以外
|-◇分岐: 【1】 [ CSelf20[終了判定] が 0 以外 ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|▼ ターン初回フラグを1にする
|■可変DB書込:DB[ 基本システム用変数 : 32 : 0 ] (18 : [システム]ターン開始初回? : 数値) = 1
|■
◇ループここまで◇◇


WoditorEvCOMMAND_START
[121][4,0]<0>(1600018,1,0,0)()
[170][0,0]<0>()()
[111][10,0]<1>(3,1600040,20,3,1600040,99,3,1600040,100,3)()
[401][1,0]<1>(1)()
[103][0,1]<2>()("先制攻撃の場合")
[121][4,0]<2>(1600010,9,0,0)()
[179][1,0]<2>(7)()
[121][4,0]<3>(1600010,1,0,0)()
[250][5,4]<3>(10,1600010,59,327680,1)("","×┏ 戦闘一時ステータス[基]","","【行動制限】")
[0][0,0]<3>()()
[498][0,0]<2>()()
[103][0,1]<2>()("逃走不能(セルフ1=1)なら、「戦闘・逃走コマンド」を出さない。")
[300][5,1]<2>(0,16777218,1600018,1600001,1600019)("X┣◆行動内容のセット")
[121][4,0]<2>(1600018,0,0,0)()
[111][7,0]<2>(2,1600019,1,2,1600019,10,2)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("逃走処理の場合")
[213][0,1]<3>()("逃走処理")
[212][0,1]<3>()("逃走戻り")
[300][3,1]<3>(0,1,-1)("X┣◆行動内容のセット")
[121][4,0]<3>(1600018,1,0,0)()
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[103][0,1]<3>()("戦闘終了の場合")
[300][4,1]<3>(0,16777217,1,1600020)("X[戦]敵/味方・勝敗判定")
[171][0,0]<3>()()
[0][0,0]<3>()()
[499][0,0]<2>()()
[121][4,0]<2>(1600040,50,0,0)()
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[103][0,1]<2>()("通常戦闘の場合")
[103][0,1]<2>()("逃走不能(セルフ1=1)なら、「戦闘・逃走コマンド」を出さない。")
[300][5,1]<2>(0,16777218,1600018,1600001,1600019)("X┣◆行動内容のセット")
[121][4,0]<2>(1600018,0,0,0)()
[111][7,0]<2>(2,1600019,1,2,1600019,10,2)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("逃走処理の場合")
[213][0,1]<3>()("逃走処理")
[212][0,1]<3>()("逃走戻り")
[300][3,1]<3>(0,1,-1)("X┣◆行動内容のセット")
[121][4,0]<3>(1600018,1,0,0)()
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[103][0,1]<3>()("戦闘終了の場合")
[300][4,1]<3>(0,16777217,1,1600020)("X[戦]敵/味方・勝敗判定")
[171][0,0]<3>()()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[401][1,0]<1>(3)()
[103][0,1]<2>()("バックアタックの場合")
[121][4,0]<2>(1600018,0,0,0)()
[210][4,0]<2>(500191,2,-1,0)()
[121][4,0]<2>(1600018,1,0,0)()
[121][4,0]<2>(1600040,50,0,0)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[300][2,1]<1>(0,0)("X┣◆行動順の計算")
[300][2,1]<1>(0,0)("○[変更可]1ターン開始時処理")
[103][0,1]<1>()(" ")
[300][4,1]<1>(0,16777217,0,1600020)("X[戦]敵/味方・勝敗判定")
[111][4,0]<1>(1,1600020,0,5)()
[401][1,0]<1>(1)()
[213][0,1]<2>()("戦闘終了処理")
[0][0,0]<2>()()
[499][0,0]<1>()()
[179][1,0]<1>(1)()
[103][0,1]<2>()("1ターン開始時処理を反映するためのパラメータ更新処理")
[121][4,0]<2>(1600010,-1,0,0)()
[250][5,4]<2>(21,4,0,69632,1600023)("","基本システム用変数","","")
[179][1,0]<2>(1600023)()
[103][0,1]<3>()("全員更新")
[121][4,0]<3>(1600010,1,0,256)()
[300][4,1]<3>(0,16777217,1600010,1600011)("X[戦]スロットから主人公ID取得")
[111][4,0]<3>(1,1600011,0,1)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("キャラがいる場合だけ処理")
[300][3,1]<4>(0,1,1600010)("X[戦]一時ステ計算<初期化>")
[300][4,1]<4>(0,2,1600010,-1)("X[戦]一時ステ計算<装備補正>")
[300][4,1]<4>(0,2,1600010,0)("X[戦]一時ステ計算<状態補正>")
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[180][1,0]<2>(1)()
[121][4,0]<2>(1600010,9,0,0)()
[250][5,4]<2>(18,69,0,69632,1600023)("","基本システム用変数","","")
[179][1,0]<2>(1600023)()
[103][0,1]<3>()("全員更新")
[121][4,0]<3>(1600010,1,0,256)()
[300][4,1]<3>(0,16777217,1600010,1600011)("X[戦]スロットから主人公ID取得")
[111][4,0]<3>(1,1600011,0,1)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("キャラがいる場合だけ処理")
[300][3,1]<4>(0,1,1600010)("X[戦]一時ステ計算<初期化>")
[300][4,1]<4>(0,2,1600010,-1)("X[戦]一時ステ計算<装備補正>")
[300][4,1]<4>(0,2,1600010,0)("X[戦]一時ステ計算<状態補正>")
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[0][0,0]<2>()()
[498][0,0]<1>()()
[300][2,1]<1>(0,0)("X┣◆1ターンの処理を実行")
[300][2,1]<1>(0,0)("X┣◆ターン終了処理")
[300][2,1]<1>(0,0)("○[変更可]1ターン終了時処理")
[103][0,1]<1>()(" ")
[300][4,1]<1>(0,16777217,0,1600020)("X[戦]敵/味方・勝敗判定")
[111][4,0]<1>(1,1600020,0,5)()
[401][1,0]<1>(1)()
[171][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[179][1,0]<1>(1)()
[103][0,1]<2>()("1ターン終了時処理を反映するためのパラメータ更新処理")
[121][4,0]<2>(1600010,-1,0,0)()
[250][5,4]<2>(21,4,0,69632,1600023)("","基本システム用変数","","")
[179][1,0]<2>(1600023)()
[103][0,1]<3>()("全員更新")
[121][4,0]<3>(1600010,1,0,256)()
[300][4,1]<3>(0,16777217,1600010,1600011)("X[戦]スロットから主人公ID取得")
[111][4,0]<3>(1,1600011,0,1)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("キャラがいる場合だけ処理")
[300][3,1]<4>(0,1,1600010)("X[戦]一時ステ計算<初期化>")
[300][4,1]<4>(0,2,1600010,-1)("X[戦]一時ステ計算<装備補正>")
[300][4,1]<4>(0,2,1600010,0)("X[戦]一時ステ計算<状態補正>")
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[180][1,0]<2>(1)()
[121][4,0]<2>(1600010,9,0,0)()
[250][5,4]<2>(18,69,0,69632,1600023)("","基本システム用変数","","")
[179][1,0]<2>(1600023)()
[103][0,1]<3>()("全員更新")
[121][4,0]<3>(1600010,1,0,256)()
[300][4,1]<3>(0,16777217,1600010,1600011)("X[戦]スロットから主人公ID取得")
[111][4,0]<3>(1,1600011,0,1)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("キャラがいる場合だけ処理")
[300][3,1]<4>(0,1,1600010)("X[戦]一時ステ計算<初期化>")
[300][4,1]<4>(0,2,1600010,-1)("X[戦]一時ステ計算<装備補正>")
[300][4,1]<4>(0,2,1600010,0)("X[戦]一時ステ計算<状態補正>")
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[0][0,0]<2>()()
[498][0,0]<1>()()
[103][0,1]<1>()("戦闘終了判定")
[300][4,1]<1>(0,16777217,1,1600020)("X[戦]敵/味方・勝敗判定")
[111][4,0]<1>(1,1600020,0,5)()
[401][1,0]<1>(1)()
[171][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[103][0,1]<1>()("ターン初回フラグを1にする")
[250][5,4]<1>(18,32,0,65536,1)("","基本システム用変数","","")
[0][0,0]<1>()()
[498][0,0]<0>()()
WoditorEvCOMMAND_END


[やってみた結果、どううまくいかないか]

先制が成功したとき、表示自体は出るが敵が普通に行動してしまっている。
戦闘一時ステータス[基] : CSelf10 : 【行動制限】 ] (10 : - : 59) = 1 がおかしいのかと思い最後の数値を変えてみたけれど改善できず。


記事No: 21153
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/22 08:16
投稿者YADO [LerLWW459(海外)]

気になる所と言えば…
■回数付きループ [ 7 ]回
|■変数操作: CSelf10 = 1 + 0
|■可変DB書込:DB[ ×┏ 戦闘一時ステータス[基] : CSelf10 : 【行動制限】 ] (10 : - : 59) = 1
|■
◇ループここまで◇◇
の「CSelf10 = 1」が正しいのかどうか。


記事No: 21155
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/22 20:34
投稿者Tark [WdrLpOO827(海外)]

> 気になる所と言えば…
> ■回数付きループ [ 7 ]回
> |■変数操作: CSelf10 = 1 + 0
> |■可変DB書込:DB[ ×┏ 戦闘一時ステータス[基] : CSelf10 : 【行動制限】 ] (10 : - : 59) = 1
> |■
> ◇ループここまで◇◇
> の「CSelf10 = 1」が正しいのかどうか。

CSelf10 = 1をCSelf10 += 1に修正したのですが、その場合今度は先制攻撃ができた相手は次のターン以降も何もしないという状態になってしまいました。
それを修正できないかと作業していたのですが、誤って関係ないところをごっそり消したのをうっかりそのまま保存してしまったため、1からやり直していました。

改めて打ち直し、CSelf10 += 1にも注意したのですが…またもや元気に攻撃するようになってしまいました。
もしかしたら前条件のコモン203から問題があるのかも?
二点改めて添付しますので、よろしければ何がおかしいかご教授いただけないでしょうか。


記事No: 21156
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/22 22:24
投稿者レビニア [reWrWWL256(海外)]

Re: ふいうちで行動制限できない (画像サイズ: 870×756 191kB)

まだちゃんと検証はしていませんが、該当CDBでの敵用のデータIDは10からなので、CSelf10にいれるのは10じゃないんですか?(添付画像参照)

それとあくまで憶測ですが、「┏ 戦闘一時ステータス[基]」の 【行動制限】 だけを1にしちゃうのは、誤動作をおこしちゃいそうな気がします。

※この項目は「状態異常になった時にその状態異常に応じて設定されるもの」だったと思うので。

私だったら、「1ターンだけ動けなくなる状態異常」を用意して、それを付与しちゃいますね。あとついでに先制とったときは逃走成功率を100%にするかなー。


記事No: 21158
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/24 19:03
投稿者Tark [WdrLpOO827(海外)]

> まだちゃんと検証はしていませんが、該当CDBでの敵用のデータIDは10からなので、CSelf10にいれるのは10じゃないんですか?(添付画像参照)

…Σ( ゜д゜)ハッ!
そ、そうか、今までどうやって戦闘に入った敵のステータスを特定したら良いのか判らなかったけど敵1ステータスで指定したら良かったのか!
なるほど、戦闘一時ステータスにふいうちの値を入れる項目を設けてから続けてそこをDB読込で行けばモンスター個体によって不意打ち成功率を変えられる…のかな?
まだふわっとしたイメージでしか把握できてないので或いは理解が足りてないか間違ってるかも知れません。
今の問題が片付いたら改めて勉強します。

> それとあくまで憶測ですが、「┏ 戦闘一時ステータス[基]」の 【行動制限】 だけを1にしちゃうのは、誤動作をおこしちゃいそうな気がします。
>
> ※この項目は「状態異常になった時にその状態異常に応じて設定されるもの」だったと思うので。
>
> 私だったら、「1ターンだけ動けなくなる状態異常」を用意して、それを付与しちゃいますね。あとついでに先制とったときは逃走成功率を100%にするかなー。

指定のやり方で選択している行動制限って、状態異常が先に判定にあってそれに付随する条件を指定する形だったんですか。
ということは、前に+=に直した結果何もしなくなったのは「そのターンだけ何もしない(0)を選んだから」ではなく、「状態のデフォルトが何もしないになっていたから」なのかな…と考えました。
…ということはUDB8の状態異常に何もしないを作ってそれを選ぶ、という形が良いのかな…
けど
可変DB書込:DB[×┏ 戦闘一時ステータス[基]:CSelf10:【行動制限】] = 1
を直接ユーザDBの状態異常に書き換えるのはさすがに違うだろうし…どうしたらいいんでしょう?

一応先制攻撃時の逃走率100%は戦闘処理の末尾の方に加えて有ります(…あれ、無かったかな? 問題点切り分けるために何個もコピーしては作り直してあちこち手を加えていてごちゃごちゃになってるので、もしかしたら添付してたのは誤って作成してないデータになっているかも知れません)。
ただ、こちらはまだ本題の方で手一杯で検証すら着手できていないので、一段落ついたら改めて再チェックしようと思います。


記事No: 21160
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/24 20:15
投稿者レビニア [reWrWWL256(海外)]

Re: ふいうちで行動制限できない (画像サイズ: 866×689 128kB)

私が同じことをしやったたときに行ったのは、「こちらが先制=敵全員に行動不能になる状態異常を残りターン1でかける」でした。

やりかたは可変DB13「×┣ 状態リスト」のデータID10〜16にDB書込みすればOKです。例えばユーザーDB8「状態設定」の項目30番に動けなくなる状態異常を作ったとしたら、可変DB13「×┣ 状態リスト」―データID10〜16―項目30番を「1」にすればいいです。これで、行動不能になる状態異常が解けるまで残り1ターンで敵全体に付与できます。

逆に敵が先制した(ふいうち)された場合ですが、これは要は「逃走を選択して失敗した」のと同じですから、ラベル「逃走戻り」に飛ばすだけです。

後は……イベント戦で先制不意打ちが発生するのは嫌だったので、可変DBのパーティ情報(通常変数でも可)にスイッチを作って条件分岐させたくらいですね。必ず先制できたり不意打ちされたり、どちらも発生しないようにしたりとか。

以上、ご参考までに。


記事No: 21165
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/25 19:02
投稿者Tark [WdrLpOO827(海外)]

ありがとうございます。

>やりかたは可変DB13「×┣ 状態リスト」のデータID10〜16にDB書込みすればOKです。
>例えばユーザーDB8「状態設定」の項目30番に動けなくなる状態異常を作ったとしたら、
>可変DB13「×┣ 状態リスト」―データID10〜16―項目30番を「1」にすればいいです。
>これで、行動不能になる状態異常が解けるまで残り1ターンで敵全体に付与できます。

何分まだ手を付け始めたばかりなもので、これがどういう意味を持つのかが良く判りません。
デフォルトの敵の状態の設定なのかな?と思っていたのですが、戦闘開始時に敵のステータスを読み込む訳だから消える?
或いは通常の遭遇になったときもなにもしないままになる?
だとすると非先制発動時にはまた何か指定する必要があったりするのでしょうか?




>逆に敵が先制した(ふいうち)された場合ですが、これは要は
>「逃走を選択して失敗した」のと同じですから、ラベル「逃走戻り」に飛ばすだけです。

とりあえず参考にして、[戦]AI実行の446行目にCSelf[逃走成功]=0〜99を設定し、条件分岐CSelf[逃走成功]<0、CSelf[逃走成功]<50と設置し前者に逃亡失敗パターンを設けました。

WoditorEvCOMMAND_START
[111][10,0]<0>(3,1600037,0,1,1600037,-1,2,1600037,-2,2)()
[401][1,0]<0>(1)()
[103][0,1]<1>()("技能を使用")
[121][4,0]<1>(1600024,1600027,0,0)()
[250][5,4]<1>(0,1600037,2,332288,1600010)("","技能","","┏ 効果対象    ")
[111][4,0]<1>(1,1600010,1,2)()
[401][1,0]<1>(1)()
[103][0,1]<2>()("自分自身")
[121][4,0]<2>(1600014,1600000,0,0)()
[213][0,1]<2>()("直接登録")
[0][0,0]<2>()()
[499][0,0]<1>()()
[111][7,0]<1>(2,1600010,2,2,1600010,11,2)()
[401][1,0]<1>(1)()
[103][0,1]<2>()("味方全体の場合")
[111][7,0]<2>(2,1600027,0,2,1600027,1,2)()
[401][1,0]<2>(1)()
[121][4,0]<3>(1600014,-10,0,0)()
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[121][4,0]<3>(1600014,-20,0,0)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[213][0,1]<2>()("直接登録")
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[103][0,1]<2>()("敵全体の場合")
[111][7,0]<2>(2,1600027,0,2,1600027,1,2)()
[401][1,0]<2>(1)()
[121][4,0]<3>(1600014,-20,0,0)()
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[121][4,0]<3>(1600014,-10,0,0)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[213][0,1]<2>()("直接登録")
[0][0,0]<2>()()
[499][0,0]<1>()()
[103][0,1]<1>()("敵(相手)に有効な技能の場合はスキル対象を反転させる")
[111][4,0]<1>(1,1600010,10,1)()
[401][1,0]<1>(1)()
[111][4,0]<2>(1,1600010,19,3)()
[401][1,0]<2>(1)()
[121][4,0]<3>(1600024,1,1600027,4096)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[103][0,1]<1>()("何もしない")
[212][0,1]<1>()("何もしない")
[103][0,1]<1>()("とりあえずターゲットを自分にする")
[121][4,0]<1>(1600014,1600000,0,0)()
[213][0,1]<1>()("直接登録")
[0][0,0]<1>()()
[401][1,0]<0>(3)()
[103][0,1]<1>()("逃げる")
[121][4,0]<1>(1600001,0,99,24576)()
[106][0,1]<1>()("セルフ[98]=\cself[1]")
[111][7,0]<1>(2,1600001,0,1,1600001,50,1)()
[401][1,0]<1>(1)()
[180][1,0]<2>(60)()
[101][0,1]<2>()("敵は逃げ出せなかった!")
[121][4,0]<2>(1600001,0,0,0)()
[213][0,1]<2>()("何もしない")
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[121][4,0]<2>(1600024,1600024,0,0)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END

それにより、確かに判定の如何によって逃亡しない、ようには一見できたのですが…
複数回行動するキャラの場合、二回目の逃亡判定は判定すらされずそのまま逃亡されてしまうんですよね。何でだろう…?


>可変DBのパーティ情報(通常変数でも可)にスイッチを作って条件分岐

これはぜひとも取り込みたいところですね。
ただ、上記の問題点を確認するので手一杯で、まだ具体的にどうしようというのはまったく思い浮かんでいませんが…
ひとまず頭使いすぎて痛くなってるので、ちょっと仮眠を取ってから再度挑戦しようと思っています。


記事No: 21169
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/26 00:35
投稿者レビニア [reWrWWL256(海外)]

可変DB13「×┣ 状態リスト」は「状態異常から回復する残りターン」が保存されるDBです。

※YADOTさんの解説を拝借↓
http://yado.tk/wolf/03_hen/1300_db_kahen/#13sen_joutai

項目欄には「・・・以下略」などと書かれていますが、要はユーザーDB9「状態設定」に対応しています。

回復するまでのターンが保存されているということは、ここへ1以上を書込みすれば「その状態異常を付与する」ということになるわけです。

それと、

>逆に敵が先制した(ふいうち)された場合ですが、これは要は
>「逃走を選択して失敗した」のと同じですから、ラベル「逃走戻り」に飛ばすだけです。

これは「敵に先制される=味方全員を1ターン行動不能にする」ための措置です。なので敵側が逃走できなくするとかそういうお話ではないです。

まぁあくまで参考までにとの別案ですので、とりあえず今のやり方に注力なさってください。混乱をまねいちゃってスイマセン。


記事No: 21174
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/26 16:34
投稿者Tark [WdrLpOO827(海外)]

ありがとうございます。
こちらこそ、お気遣いいただきすみません。
色々教わったは良いけれど、それでやりたいことばかり出てきてしまって気が急いていたようです。
おかげで今回も色々気づきが得られましたのでとても勉強になりました。

とはいえ、どこまで身になっているかというと自信が有りませんが…
年のせいか、仮眠取ると直前まで何やってたか良く忘れるんですよね…w
色々教えていただいたことに今後も挑戦していくつもりですが、きっとまたボコスカ詰まると思いますのでお手すきのときにでもご教授頂けると幸いです。
それでは。


記事No: 21167
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/25 22:10
投稿者Tark [WdrLpOO827(海外)]

仮眠とって気づきましたが、「逃走処理」の話は「プレイヤーが逃走するときの処理」という意味でしたね。
何でか敵が逃走する処理というつもりで読んでいました、失礼しました。


記事No: 21157
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/22 22:37
投稿者YADO [LerLWW459(海外)]

> CSelf10 = 1をCSelf10 += 1に修正したのですが、その場合今度は先制攻撃ができた相手は次のターン以降も何もしないという状態になってしまいました。
> それを修正できないかと作業していたのですが、誤って関係ないところをごっそり消したのをうっかりそのまま保存してしまったため、1からやり直していました。
>
> 改めて打ち直し、CSelf10 += 1にも注意したのですが…またもや元気に攻撃するようになってしまいました。
> もしかしたら前条件のコモン203から問題があるのかも?
> 二点改めて添付しますので、よろしければ何がおかしいかご教授いただけないでしょうか。

前回の回答時にコモン[203]に関する設定情報が無かったので、コモン[203]には何も設定せず、
取りあえずウディタの初期状態(DLした時のもの)に記載されていたイベントコードをコモン[188]に設定し、
「CSelf10 += 1」だけを修正してテストプレイを実行してみた所、
先制攻撃時には敵が最初のターンだけ攻撃しなくなったので、「これで良いのかな〜」と思ったのですが・・・。


「ループ開始」のすぐ下に
■デバッグ文:セルフ[40]=\cself[40]
を設定して、セルフ[40]の値を監視してみたらどうでしょうか。

コモン[203]で「先制攻撃」になっているのに、1ターン目でセルフ[40]が21以上なら、1ターン目から敵は攻撃して来ますし、
また2ターン目以降もセルフ[40]が20以下なら、2ターン目以降も敵は攻撃して来ないでしょう。

セルフ[40]の値に問題が無い場合は、セルフ[40]以外の部分に原因がある事になりそう。


記事No: 21159
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/24 19:16
投稿者Tark [WdrLpOO827(海外)]

ありがとうございます。
早速デバッグ文を設置してみたところ…セルフ[40]すら表示されないという結果に。
一日掛けていろいろ試したところ、まったく手を付けていないコモン203の条件分岐用の乱数は確認が取れたところからコモンの名前に手を加えたこと(判りやすくしようと「変更可」を不意打ち有りにしていた)が一つの原因だと判明しました。

そこで改めて「戦闘処理」の53行目、
WoditorEvCOMMAND_START
[300][3,1]<0>(0,16777216,1600040)("○[変更可]戦闘開始時処理")
WoditorEvCOMMAND_END
のすぐ後ろにデバッグ文を入れて確認していました(44行目)。
結果、ここでSelf[40]が正常に入力されておらず0になっているのが確認できたので、「○[変更可]戦闘開始時処理」で獲得した値が正常にCself40に代入できなかったのがすべての原因と思われます…が、そこからどうしたら良いかが判らなくなりました。
「○[変更可]戦闘開始時処理」の「結果を返す」の先が問題なのかと考え、Cself10と変えてみたりしましたが変わりませんでした。
何が良くないのでしょう?

参考に、改めて今確認したコモンも添付しておきます。

[ 21159.zip (3kB) ]


記事No: 21161
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/24 20:39
投稿者YADO [LerLWW459(海外)]

> ありがとうございます。
> 早速デバッグ文を設置してみたところ…セルフ[40]すら表示されないという結果に。
> 一日掛けていろいろ試したところ、まったく手を付けていないコモン203の条件分岐用の乱数は確認が取れたところからコモンの名前に手を加えたこと(判りやすくしようと「変更可」を不意打ち有りにしていた)が一つの原因だと判明しました。
>
> そこで改めて「戦闘処理」の53行目、
> WoditorEvCOMMAND_START
> [300][3,1]<0>(0,16777216,1600040)("○[変更可]戦闘開始時処理")
> WoditorEvCOMMAND_END
> のすぐ後ろにデバッグ文を入れて確認していました(44行目)。
> 結果、ここでSelf[40]が正常に入力されておらず0になっているのが確認できたので、「○[変更可]戦闘開始時処理」で獲得した値が正常にCself40に代入できなかったのがすべての原因と思われます…が、そこからどうしたら良いかが判らなくなりました。
> 「○[変更可]戦闘開始時処理」の「結果を返す」の先が問題なのかと考え、Cself10と変えてみたりしましたが変わりませんでした。
> 何が良くないのでしょう?
>
> 参考に、改めて今確認したコモンも添付しておきます。

添付されたコモンファイルだと以下の2箇所を変更してみてください。

コモン[○[変更可]戦闘開始時処理]の「結果を返す」をセルフ[0]に変更。

コモン[X◆戦闘処理]の104行目に
■変数操作: CSelf40[先制・バックアタック発生確率] = 100 + 0
を設定。


記事No: 21166
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/25 19:07
投稿者Tark [WdrLpOO827(海外)]

ありがとうございます、無事想定したように動いてくれました。
ああそうか、96行目で逃走したか戦闘継続するかの選択をしてるから、それが終わった後にCself40に通常戦闘に分岐する数値を入れてるんですね。
一体自分は何を見ていたんだろうか…


それで教えていただいたことについてですが、質問があります。
何故○[変更可]戦闘開始時処理の結果をCself0に返したのでしょうか?
先に0〜99の数値を保存しているのに上書きしてしまうと思いCself10に保存していたのですが、そういう訳では無いのでしょうか?
また、逆にあえて条件分岐の結果を別の変数にデータを保存したのにも関わらず0となってしまっていたのでしょうか?
…もしかして、書いているときにふと思ったのですが、コモンでいう結果とは
○+×=Aとなる場合、Aだけを抜き出して保存しているわけではなく○+×=A全部記憶している?


記事No: 21168
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/25 23:56
投稿者YADO [LerLWW459(海外)]

> それで教えていただいたことについてですが、質問があります。
> 何故○[変更可]戦闘開始時処理の結果をCself0に返したのでしょうか?
> 先に0〜99の数値を保存しているのに上書きしてしまうと思いCself10に保存していたのですが、そういう訳では無いのでしょうか?
> また、逆にあえて条件分岐の結果を別の変数にデータを保存したのにも関わらず0となってしまっていたのでしょうか?
> …もしかして、書いているときにふと思ったのですが、コモンでいう結果とは
> ○+×=Aとなる場合、Aだけを抜き出して保存しているわけではなく○+×=A全部記憶している?

受け取ったコモンデータのコモン[○[変更可]戦闘開始時処理]では、
ループ回数が「0回」のループ処理の中にセルフ[10]が設定されていたので、
「0回」のループの中は処理されないため、セルフ[10]の値はずっと「0」のままになっていました。

処理されない「0回」のループ設定を削除し、
さらに設定の意味が無いセルフ[43]の設定を削除するなど、不要な部分を全て削除した場合、
最終的にコモン[○[変更可]戦闘開始時処理]に残った設定は以下のようになります。

■変数操作: CSelf0[先制等確率] = 0 〜 99
■条件分岐(変数): 【1】 CSelf0[先制等確率] が 50 以下
-◇分岐: 【1】 [ CSelf0[先制等確率] が 50 以下 ]の場合↓
|■文章:先制攻撃!
|■
◇分岐終了◇


この状態では「結果を返す」にセルフ[0]を設定する事になるでしょう。


ちなみに「0回」のループ処理の中に…
■DB読込(ユーザ): CSelf13 = ユーザDB[タイプ敵キャラ個体データ(9)の内容数]
の設定がありましたが、この「内容数」を取得する設定は、この処理には不要なはずです。

多分「内容数」の意味を別の意味で考えて使用しているように思えます。


▼「ユーザDB[タイプ敵キャラ個体データ(9)の内容数]」の意味

「ユーザDB[タイプ敵キャラ個体データ(9)の内容数]」は、
ユーザーDB[9:敵キャラ個体データ]の項目数を取得する時に使います。

ユーザーDBの画面を開き、画面左上のタイプ「9:敵キャラ個体データ」を選択すると、
画面の右側に「敵キャラ名」「画像ファイル」「最大HP」などの設定項目が表示されます。

この設定項目は項目0「敵キャラ名」から項目25「┗ 変身時Ev呼出[-1:ナシ]」までの26個の設定があります。

この設定の数(26個)を取得する時に「ユーザDB[タイプ敵キャラ個体データ(9)の内容数]」を使います。

そのため
■DB読込(ユーザ): CSelf13 = ユーザDB[タイプ敵キャラ個体データ(9)の内容数]
の場合は、セルフ[13]には常に「26」が設定されます。


記事No: 21173
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/26 16:29
投稿者Tark [WdrLpOO827(海外)]

ありがとうございます。
Self10、0ループに設定していたから0だったのか…Self0だと思い込んでましたが、指摘されて今頃気づきました…紛らわしい数値にしたのは失敗でした。
次はもっとぱっと見ても判るよう別の数にしていかないと…。



内容数って数値の読込じゃなく単なる数のカウントなんですか?!
確かにまったく違う概念で捕らえてました。

「0回」ループ設定は、最初UDB9の項目27に新しく登録した「不意打ち発生率」を読み込み、それをCSelf0[先制等確率]に加算して処理するつもりだったのです。
タイプと項目は定まっているけどデータだけは応じて変化するようにしたいと考えたのですが、そこで選んだ数値が項目の数だとは思いもしなかった…。



それで、せっかくなので教えていただいたことを参照に再挑戦してみました。
まず、読込先を戦闘一時ステータスに。
WoditorEvCOMMAND_START
[121][4,0]<0>(1600011,0,99,24576)()
[106][0,1]<0>()("セルフ[41]=\cself[11]")
[250][5,4]<0>(10,10,78,462848,1600013)("","×┏ 戦闘一時ステータス[基]","敵1ステータス","ふいうち発生率")
[106][0,1]<0>()("セルフ[42]=\cself[13]")
[121][4,0]<0>(1600010,1600011,1600013,0)()
[106][0,1]<0>()("セルフ[43]=\cself[10]")
[111][7,0]<0>(18,1600010,50,3,1600010,150,3)()
[401][1,0]<0>(1)()
[106][0,1]<1>()("セルフ[44]=\cself[0]")
[101][0,1]<1>()("先制攻撃!")
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[103][0,1]<1>()("通常戦闘なので特に表示無し")
[0][0,0]<1>()()
[420][1,0]<0>(0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END
細かい動きを見たくてデバッグ文が増えています。見苦しいかと思いますがご容赦ください。

そして、項目の最後に敵キャラ個体データの新しく設けた「ふいうち発生率」を作成、そこをUDB9参照に。
「データ内容の特殊設定」でデータベース参照(数値)を選択し、ユーザDBタイプ9を選んだのですが、「敵の名前」が表示されてしまっており、Cself[13]にも数値0が代入されてしまいました。
今度は手動で作成を選び、内部値を巨大変数で指定するのか?と考えましたが、ここで↑同様タイプと項目は指定できてもデータをどうするかで詰まってしまいました。
\udb[9:-:27](27は「ふいうち発生率」の項目です)だとエラー出て入力できませんし…
そこで伺いたいのですが、そもそもユーザDBのタイプと項目固定で項目を参照するやり方について、こういう考え方であっているのでしょうか?


記事No: 21175
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/26 18:17
投稿者YADO [LerLWW459(海外)]

> それで、せっかくなので教えていただいたことを参照に再挑戦してみました。
> まず、読込先を戦闘一時ステータスに。
> WoditorEvCOMMAND_START
> [121][4,0]<0>(1600011,0,99,24576)()
> [106][0,1]<0>()("セルフ[41]=\cself[11]")
> [250][5,4]<0>(10,10,78,462848,1600013)("","×┏ 戦闘一時ステータス[基]","敵1ステータス","ふいうち発生率")
> [106][0,1]<0>()("セルフ[42]=\cself[13]")
> [121][4,0]<0>(1600010,1600011,1600013,0)()
> [106][0,1]<0>()("セルフ[43]=\cself[10]")
> [111][7,0]<0>(18,1600010,50,3,1600010,150,3)()
> [401][1,0]<0>(1)()
> [106][0,1]<1>()("セルフ[44]=\cself[0]")
> [101][0,1]<1>()("先制攻撃!")
> [0][0,0]<1>()()
> [401][1,0]<0>(2)()
> [103][0,1]<1>()("通常戦闘なので特に表示無し")
> [0][0,0]<1>()()
> [420][1,0]<0>(0)()
> [0][0,0]<1>()()
> [499][0,0]<0>()()
> WoditorEvCOMMAND_END
> 細かい動きを見たくてデバッグ文が増えています。見苦しいかと思いますがご容赦ください。
>
> そして、項目の最後に敵キャラ個体データの新しく設けた「ふいうち発生率」を作成、そこをUDB9参照に。
> 「データ内容の特殊設定」でデータベース参照(数値)を選択し、ユーザDBタイプ9を選んだのですが、「敵の名前」が表示されてしまっており、Cself[13]にも数値0が代入されてしまいました。
> 今度は手動で作成を選び、内部値を巨大変数で指定するのか?と考えましたが、ここで↑同様タイプと項目は指定できてもデータをどうするかで詰まってしまいました。
> \udb[9:-:27](27は「ふいうち発生率」の項目です)だとエラー出て入力できませんし…
> そこで伺いたいのですが、そもそもユーザDBのタイプと項目固定で項目を参照するやり方について、こういう考え方であっているのでしょうか?

「データ内容の特殊設定」の設定は、データベースの設定画面上で制作者が設定する時に使うものであり、
「データ内容の特殊設定」を設定したからと言って、
ゲーム中にゲームのプログラム側が自動的に何らかの数値を設定するような事はありません。

設定ではユーザーDB[9:敵キャラ個体データ]にこだわっているようですが、
もしも敵キャラが複数体出る場合は、この設定方法では対応する事ができません。

仮に必ず1体しか敵キャラが出ない場合でも、設定するとしたら、
ユーザーDB[13:敵グループ]に項目「ふいうち発生率」を追加した方が良いでしょう。

この項目「ふいうち発生率」に設定する値は、
「不意打ち無しで先制攻撃あり」の場合は「0」を設定し、
「不意打ちも先制攻撃も無し」の場合は「50」を設定し、
「必ず不意打ちあり」の場合は「150」を設定します。


コモン[○[変更可]戦闘開始時処理]の設定は以下のような感じになるでしょう。

「結果を返す」=セルフ[10]

■DB読込(可変): CSelf20 = 可変DB[ 18 : 72 : 0 ] (基本システム用変数 : [戦闘]敵グループ番号 : 数値)
■DB読込(ユーザ): CSelf10 = ユーザDB[ 13 : CSelf20 : ふいうち発生率 ] (敵グループ : - : 12)
■変数操作: CSelf10 += 1 〜 100
■条件分岐(変数): 【1】 CSelf10 が 50 以下 【2】 CSelf10 が 150 以下
-◇分岐: 【1】 [ CSelf10 が 50 以下 ]の場合↓
|■文章:先制攻撃!
|■
-◇分岐: 【2】 [ CSelf10 が 150 以下 ]の場合↓
|▼ 通常戦闘なので特に表示無し
|■
-◇上記以外
|■文章:不意打ち攻撃!
|■
◇分岐終了◇


WoditorEvCOMMAND_START
[250][5,4]<0>(18,72,0,4096,1600020)("","","","")
[250][5,4]<0>(13,1600020,0,266752,1600010)("","","","ふいうち発生率")
[121][4,0]<0>(1600010,1,100,24832)()
[111][7,0]<0>(18,1600010,50,3,1600010,150,3)()
[401][1,0]<0>(1)()
[101][0,1]<1>()("先制攻撃!")
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[103][0,1]<1>()("通常戦闘なので特に表示無し")
[0][0,0]<1>()()
[420][1,0]<0>(0)()
[101][0,1]<1>()("不意打ち攻撃!")
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


記事No: 21176
タイトルRe: ふいうちで行動制限できない
投稿日: 2020/09/26 23:37
投稿者Tark [WdrLpOO827(海外)]

そうか、確かに敵一体ずつ読み込むより敵グループごとにふいうち発生率を設定してそれを読み込むほうがよほど手っ取り早いですね!
ちょっと頭に血が昇ってたのか「データ内容の特殊設定」の設定を弄ることだけ考えていてまったく思いつきませんでした。

それと敵グループの確定には「基本システム用変数 : [戦闘]敵グループ番号 : 数値」を代入すれば良いんですね。
基本システム用変数に格納されていたのか…
一つのことができたと考えると、そればかりを使って何とかしようと固執するのは私の悪い癖ですね。

ともあれ、こうして色々教えていただいたおかげでかなり前進できました。
おかげさまで、ボスの先制不可も選べるようにできたことで想定をはるかに越えた素敵な仕様になりました。

気づけば長くなってしまいましたので、ひとまずここでこの件は締めたいと思います。
本当に、色々ありがとうございました。