2008-12-09

戦闘不能が回復しないっ

ナンテコッタイ/(^o^)\
テストプレイ中戦闘不能者に気付け薬使ったら「戦闘不能なので回復できません」とか抜かしおったぞこの基本システムw
調教しなおしぢゃ(*>ω<)=3 ってわけで今回は common 051 ×┃┗ 味方回復処理[移動中]
を弄ってみる


今回は関連部分まるまる書き換えに近い感じになったので、表記も大雑把になった^^;
もうこれどこのwikiの編集logだよって感じw
以下のような部分が、技用・アイテム用と2箇所あるんだが、
||▼ 状態異常をキャンセル (※もし状態0を治そうとしたらHPが1以上になる)
||■DB読込(ユーザ): このコモンEvセルフ4 = ユーザDB[0:このコモンEvセルフ1:26](治療するステータス状態)
||■条件分岐(変数): 【1】このコモンEvセルフ4が0以上
|| ◇分岐: 【1】 [ このコモンEvセルフ4が0以上 ]の場合↓
|||■可変DB書込:DB[2:このコモンEvセルフ3:このコモンEvセルフ4] = 0
|||■
||◇分岐終了◇◇
||■DB読込(ユーザ): このコモンEvセルフ4 = ユーザDB[0:このコモンEvセルフ1:24](治療するステータス状態)
||■条件分岐(変数): 【1】このコモンEvセルフ4が0以上
|| ◇分岐: 【1】 [ このコモンEvセルフ4が0以上 ]の場合↓
|||■可変DB書込:DB[2:このコモンEvセルフ3:このコモンEvセルフ4] = 0
|||■
||◇分岐終了◇◇
||■DB読込(ユーザ): このコモンEvセルフ4 = ユーザDB[0:このコモンEvセルフ1:25](治療するステータス状態)
||■条件分岐(変数): 【1】このコモンEvセルフ4が0以上
|| ◇分岐: 【1】 [ このコモンEvセルフ4が0以上 ]の場合↓
|||■可変DB書込:DB[2:このコモンEvセルフ3:このコモンEvセルフ4] = 0
|||■
||◇分岐終了◇◇
||■イベントの挿入: [このコモンから+2] コモン53:[ ×┃┗装備済パラメータ算出 ] / -1:変更なし(キャラDB書込) / 0 / V9-8[[ステ]選択中キャラ]
||■イベントの挿入: [このコモンから-6] コモン45:[ ×┣ステータス表示/カーソル(v9[8]) ] / 2:値の更新[味方]
||▼ 戦闘不能の扱いが0(HP1で回復)なら戦闘不能回復
||■DB読込(ユーザ): このコモンEvセルフ10 = ユーザDB[V9-17[[★]システム用語DB番号]:0:このコモンEvセルフ50]
||■可変DB書込:DB[2:このコモンEvセルフ3:0](\udb[8:0]の残り歩数) *= このコモンEvセルフ10
||■DB読込(可変): このコモンEvセルフ10 = 可変DB[2:このコモンEvセルフ3:0](\udb[8:0]の残り歩数)
||■条件分岐(変数): 【1】このコモンEvセルフ10が0以外
|| ◇分岐: 【1】 [ このコモンEvセルフ10が0以外 ]の場合↓
|||▼ 一人に有効な場合だけメッセージ表示
|||■条件分岐(変数): 【1】V9-21[[効果対象]一時メモ]が0と同じ
||| ◇分岐: 【1】 [ V9-21[[効果対象]一時メモ]が0と同じ ]の場合↓
||||■文字列操作:このコモンEvセルフ9 = "\udb[8:0:0]\cself[8]"
||||●ラベル「終了ジャンプ」に飛ぶ
||||■
|||◇分岐終了◇◇
|||●ラベル「次へ[特]」に飛ぶ
|||■
|| ◇上記以外
|||■可変DB書込:DB[0:このコモンEvセルフ3:5](HP) 下限 1
|||■変数操作: このコモンEvセルフ35 = 1 + 0
|||■
||◇分岐終了◇◇

これを両方とも↓のように書き換えた。
ちなみにここに抜き出したのは技用の部分。アイテム用のとこにはホンのちょっとした差異があるけど、まぁ見や判る罠。UDB読み取りのとことか。

||▼ cself10 = 戦闘不能の残り歩数(非0で戦闘不能状態) 保存
||■DB読込(可変): このコモンEvセルフ10 = 可変DB[2:このコモンEvセルフ3:0](\udb[8:0]の残り歩数)
||▼ 状態異常をキャンセル (※もし状態0を治そうとしたらHPが1以上になる)
||■変数操作: このコモンEvセルフ71 = 0 + 0
||■変数操作: このコモンEvセルフ70 = 24 + 0
||■回数付きループ [ 3 ]回
|||■DB読込(ユーザ): このコモンEvセルフ4 = ユーザDB[0:このコモンEvセルフ1:このコモンEvセルフ70]
|||■条件分岐(変数): 【1】このコモンEvセルフ4が1以上 【2】このコモンEvセルフ4が0と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ4が1以上 ]の場合↓
||||■可変DB書込:DB[2:このコモンEvセルフ3:このコモンEvセルフ4] = 0
||||■
||| ◇分岐: 【2】 [ このコモンEvセルフ4が0と同じ ]の場合↓
||||■可変DB書込:DB[2:このコモンEvセルフ3:0](\udb[8:0]の残り歩数) = 0
||||■変数操作: このコモンEvセルフ71 = 1 + 0
|||◇分岐終了◇◇
|||■変数操作: このコモンEvセルフ70 += 1 + 0
|||■
||◇ループここまで◇◇
||▼ 戦闘不能の扱いが0(HP1で回復)なら戦闘不能回復
||■条件分岐(変数): 【1】このコモンEvセルフ10が0以外
|| ◇分岐: 【1】 [ このコモンEvセルフ10が0以外 ]の場合↓
|||▼ 一人に有効な場合だけメッセージ表示
|||▼
|||▼ - - - 戦闘不能の処理 - - - ?(メモY’s)
|||■条件分岐(変数): 【1】このコモンEvセルフ71が1と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ71が1と同じ ]の場合↓
||||▼ 戦闘不能が対象の場合
||||■可変DB書込:DB[0:このコモンEvセルフ3:5](HP) 下限 1
||||■変数操作: このコモンEvセルフ35 = 1 + 0
||||■
||| ◇上記以外
||||■条件分岐(変数): 【1】V9-21[[効果対象]一時メモ]が0と同じ
|||| ◇分岐: 【1】 [ V9-21[[効果対象]一時メモ]が0と同じ ]の場合↓
|||||■文字列操作:このコモンEvセルフ9 = "\udb[8:0:0]\cself[8]"
|||||●ラベル「終了ジャンプ」に飛ぶ
|||||■
||||◇分岐終了◇◇
||||●ラベル「次へ[特]」に飛ぶ
||||■
|||◇分岐終了◇◇
|||■
|| ◇上記以外
|||■条件分岐(変数): 【1】このコモンEvセルフ71が0と同じ
||| ◇分岐: 【1】 [ このコモンEvセルフ71が0と同じ ]の場合↓
||||▼ 戦闘不能が対象の場合でない
||||■可変DB書込:DB[0:このコモンEvセルフ3:5](HP) 下限 1
||||■変数操作: このコモンEvセルフ35 = 1 + 0
||||■
||| ◇上記以外
||||■条件分岐(変数): 【1】V9-21[[効果対象]一時メモ]が0と同じ
|||| ◇分岐: 【1】 [ V9-21[[効果対象]一時メモ]が0と同じ ]の場合↓
|||||■文字列操作:このコモンEvセルフ9 = "非\udb[8:0:0]\cself[8]"
|||||●ラベル「終了ジャンプ」に飛ぶ
|||||■
||||◇分岐終了◇◇
||||●ラベル「次へ[特]」に飛ぶ
||||■
|||◇分岐終了◇◇
|||■
||◇分岐終了◇◇
||■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
||■イベントの挿入: [このコモンから+2] コモン53:[ ×┃┗装備済パラメータ算出 ] / -1:変更なし(キャラDB書込) / 0 / V9-8[[ステ]選択中キャラ]
||■イベントの挿入: [このコモンから-6] コモン45:[ ×┣ステータス表示/カーソル(v9[8]) ] / 2:値の更新[味方]

ウン、これは本来関数にすべきところだな。
技・アイテムの差異は引数でとるようにし、記述自体はコンパクトに収めるようにしたほうがいいと思う。

基本システム読むとどうも微妙なジャンプが見られて落ち着かない。
ウディタのように別イベント呼び出しが多重にきちんと処理できるんなら、ラベルジャンプは制御構文としてはできるだけ使用せず、例外処理のためのみに使うべきだと思う。
コモンイベント呼び出しのタイムロスなんて管理のしやすさと引き換えに出来るほどのものじゃないと思うんだけど……。
引数の数が固定(0~4ずつ取れるようになっているが、おそらく0個でもデフォルト値を4つ渡してると思う。ちなみに文字列引数の方は、実は文字列変数の添え字の“数値”を渡している…ハズ)な点から察するに、分岐とかじゃなく関数ポインタのような形で使ってると思うし、それほど重い処理にはならん気がするんだけどねー。

まぁ、他人の設計思想にまで口出すこともないね(*>ω<)=3
内部まで知り尽くしているはずの作者自身がああいう形で作ってる以上、何かしらの理由があるんだろうし。

まぁとりあえず、これでメニューでの蘇生魔法・アイテム使用は問題なく出来るようになった。
あとは戦闘時だな。戦闘不能になっとらんキャラまでHP回復するのはまぁいいとして、全体魔法の場合に蘇生直後にまた死亡処理がされたりするからちょっと見てみないと…

0 件のコメント:

最新の投稿