ウディタ解体記
おさらい
まずは、これまでのおさらい。
ウディタ初期にあるコモンイベントで並列実行(常時)を起動条件とするものは2つある。
[048-X[共]基本システム自動初期化]の、
0行~194行通して見てみると、
一時パラメータを計算
「キャラクターの装備を、武器コードと防具コードに変換する」内の後編、
195行~202行はじめるよぉ。
一時パラメータを計算~
195行コメント/一時パラメータを計算
196行
[X[移]一時ステ計算<初期化>]コモンEv122(43行)を呼び出し、
”処理中位置”の対象主人公IDの装備なしパラメータを主人公一次DBにコピー。
197行
[X[移]一時ステ計算<装備補正>]コモンEv123(108行)を呼び出し、
”処理中位置”の対象主人公ID(196行)で上書きした一時DBに装備の効果を加算していく。
簡単なコマンド構文は長いため省略とスル。
要望があれば追加を検討
198行
[X[移]一時ステ計算<状態補正>]コモンEv124(51行)を呼び出し、
”処理中位置”の対象主人公ID(196~197行)で上書きした一時DBに状態の効果を加算していく。
ん?2時間もたってたか?もう少しやったら今日は終わるよ。
199行コメント/HP・SP満タンに
200行
[X[移]パラメータ増減コモンEv70](685行)を呼び出し、22:HPのパラメータ増減の処理をする。
201行
[X[移]パラメータ増減コモンEv70](685行)を呼び出し、23:SPのパラメータ増減の処理をする。
[X[移]パラメータ増減コモンEv70]について
コマンド構文は長いため省略とスル。
203行 ループここまで
今日の所はこんな感じかな、思いがけず時間がかかってしまったため、申し訳ない。
205行~の「最新セーブデータの取得」
211行~の「黒から徐々にフェードイン」
からについてはまた後日。
では、今日のまとめ。
まとめ
ざらっと端的にまとめると、「一時パラメータを計算」は、
の処理をしている。ことが分かった。
「HP・SPを満タンに」では、
をしていることが分かった。
こうしてみると本当によくできてるなぁ。ウディタって。
明日もレッツウディタ♪
コマンドの詳細
簡単なコマンド構文(0~43行)
0~5行コメント
6~11行
”対象主人公ID”がー1以下の場合、
\>「X[移]一時ステ計算<初期化>」エラー:
主人公IDが「-1」以下になっています。> \cself[0]
と表示し、イベント処理を中断
(\> … 次以降の文章を瞬間表示する)
12行コメント/パラメータをコピーする
13行
”一時変数A”に可変DB[0:主人公ステータス/”対象主人公ID”/7:最大HP]の値を渡す。
14行
可変DB[17:×主人公一時DB/”対象主人公ID”/0:[一時]計算済みMaxHP]”を”一時変数A”の値で上書き。
以降同様に
16行~43行まで
9:最大SP→1:[一時]計算済みMaxSP
10:基本攻撃力→2:[一時]計算済み攻撃力
11:基本防御力→3:[一時]計算済み防御力
12:基本精神攻撃→4:[一時]計算済み精神攻撃
13:基本精神防御→5:[一時]計算済み精神防御
14:基本敏捷性→6:[一時]計算済み敏捷性
15:基本命中率[%]→7:[一時]計算済み命中率
16:基本回避率[%]→8:[一時]計算済み回避率
17:クリティカル率[%]→9:[一時]計算済みクリティカル
の順にDBを上書きしていく。
戻る
簡単なコマンド構文(0~51行)
0~5行コメント
6~11行
”対象主人公ID”がー1以下の場合、
\>「X[移]一時ステ計算<初期化>」エラー:
主人公IDが「-1」以下になっています。> \cself[0]
と表示し、イベント処理を中断
(\> … 次以降の文章を瞬間表示する)
12行
”MaxHP%変化値”に100を設定。
13行
”MaxSP%変化値”に100を設定。
15行
”最大状態数”にユーザDB[8:状態設定のデータ数]を設定。
16行
”処理中状態”に-1を設定。(+1で0にするため)
17行
”最大状態数”の回数ループ開始
18行コメント/状態ターンが残っていれば反映
19行
”処理中状態”に+1を加算。(0になる)
20行
”残りターン”に可変DB[5:┗状態リスト/”対象主人公ID”/”処理中状態”]を渡す。
21行
”残りターン”が0以外の場合{
23行
”MaxHP%変化値”にユーザDB[8:状態設定/”処理中状態”/26:MaxHP%変化率]を乗算する。
24行
”MaxSP%変化値”にユーザDB[8:状態設定/”処理中状態”/27:MaxSP%変化率]を乗算する。
25行
”MaxHP%変化値”に100を除算する。
26行
”MaxSP%変化値”に100を除算する。
28行 分岐終了
30行 ループここまで
}
32行
”MaxHP%変化値”を下限0に引上げる。
33行
”MaxSP%変化値”を下限0に引上げる。
34行コメント/一時パラメータに加算する
35行コメント/HP・SPの上限設定
36行
可変DB[17:×主人公一時DB/”対象主人公ID”/0:[一時]計算済みMaxHP]に”MaxHP%変化値”を乗算。
37行
可変DB[17:×主人公一時DB/”対象主人公ID”/0:[一時]計算済みMaxHP]に100を除算。
38行
可変DB[17:×主人公一時DB/”対象主人公ID”/0:[一時]計算済みMaxHP]の値を下限1に引き上げる。
40行
可変DB[17:×主人公一時DB/”対象主人公ID”/1:[一時]計算済みMaxSP]に”MaxSP%変化値”を乗算。
41行
可変DB[17:×主人公一時DB/”対象主人公ID”/1:[一時]計算済みMaxSP]に100を除算。
42行
可変DB[17:×主人公一時DB/”対象主人公ID”/1:[一時]計算済みMaxSP]の値を下限0に引き上げる。
44行
”最大HP”に可変DB[17:×主人公一時DB/”対象主人公ID”/0:[一時]計算済みMaxHP]を設定。
45行
”最大SP”に可変DB[17:×主人公一時DB/”対象主人公ID”/1:[一時]計算済みMaxSP]を設定。
47行
可変DB[0:主人公ステータス/”対象主人公ID”/6:HP]の上限”最大HP”に引き下げる。
48行
可変DB[0:主人公ステータス/”対象主人公ID”/8:SP]の上限”最大SP”に引き下げる。
49行
可変DB[0:主人公ステータス/”対象主人公ID”/6:HP]の下限0に引き上げる。
50行
可変DB[0:主人公ステータス/”対象主人公ID”/8:SP]の下限0に引き上げる。
コメント