戦うぞ!64xその56(マップの状態ファイル)

やった事


・マップの状態(一時)ファイルの改良
今までキャラクター状態程度しか保持していなかったファイルに、
・キャラクター
・ドロップアイテム
・オブジェクト
の状態が記録されるように。
キャラが移動したり、アイテムを落としたり、ドアを開けた状態が保持される。
記録日から二日経過すると、訪問時に再生成が掛かる仕組み。
オブジェクト・キャラクターは再生成フラグがあるものだけ再生成される。

キャラクターは召喚などの処理で呼び出されたキャラが消失するが、
固定NPCキャラクターは復活&位置の初期化が行われ再配置される。
上がった能力値や好感度などはそのまま。

オブジェクトは、大事な宝箱などは再生成させないようにできる。

マップの状態ファイル
ゲームのセーブデータにも流用できるようにしたりと、色々な部分で使用されるようにしている。



・オブジェクトイベントのメンバ変更
当初の考えの
・開き
・閉じ
で画像や移動・射線可不可項目を分けるように。
イベントでの開閉処理を完全撤廃する事にした。

警告:移動・射線可不可の仕様
オブジェクトがある場所は問答無用で不可設定になっている。
オブジェクトイベント項目に移動や射線可不可項目があり、ちゃんと比較や条件分岐を行っているが、
マップ上の登録オブジェクト配列に値が入っていると問答無用で不可にさせられているはず。

オブジェクト構造体でも作って、外部ファイルに入出力とか
移動不可設定、射線不可設定とか色々項目を作ってみる?





やる事


オブジェクトイベントエディタの再設計
項目が増えたので

オブジェクトの構造体に移動・射線可不可フラグを追加する。
判定処理をオブジェクトイベント同じようにする。
設定ファイルを外部ファイルに作ってほしい。



ダイアログの部分で日本語入力が出来ない
実は結構大変な問題で、いくら検索を掛けても解決法がみつからない。
Dxライブラリの作者がサンプルとして載せているダイアログコードを、初期状態のプロジェクトに乗せてみても日本語入力が出来ない。
一度どこかにexe上げて他の環境でどう動くのか見てみないと解決できなさそう。


//イベントに以下を実装
所持金の増・減
・ステータスの増・減
回復処理(宿屋処理)
フラグの操作
・他イベントの開始

一部済み


・BGMの実装
BGMデータの用意・再生とか
マップファイルにBGMデータの項目を付け足す


//口調ファイルの実装
改行の文字置換のようなかんじで、特定文字列を置換する処理を作る事。


商人の商品再生成
再生成処理はできているが、トリガー部分がまだできていないので作る事。
以下の仕様を忘れない事。
取引実行後にファイルへセーブする為、
取引後にロードを行っても所持品が変わらない


//フィールドデータを作る
これはセーブから再開した際、終了時の状態を完全再現する為の処理

・場のキャラクター(主人公・NPC含むすべてのキャラ)
・マップのオブジェクト状態(扉の開閉など)
・マップの落ちているアイテム
上記項目を保持する事で中断データからの正常な再開ができるはず

済み

ステータスの反映処理の実装
素のステータス+装備+バフデバフの計算処理を実装し、
対象キャラのターンや、非エフェクト、装備の変更時に再計算を行うようにすること。
仮実装しているけどタイミングがまだ完全じゃない(装備の変更とか)かもしれない。
引き続き、様子を見ていく事。



自動回復の実装
移動中に自動回復をするようにすること。効果値は・・・


各種スキルの実装(後回しでok)
武器適正などの細かいスキルの実装

背景画像の設定・フラグの設定を追加する事。
Elonaの幕間のような感じでイベントとかメニュー背景に使う。(ずっとばくまだと思っていたのは内緒だぞ)

・MapSkin規格をオブジェクトと同じように128x128にする
キャラレイヤー以下の移動可能オブジェクトがスキン。
移動不可をオブジェクトとする。
なんかやばそうなので保留

ポップ処理の改良
現状時間経過でのポップが設定されていない。
そもそもこの仕様でいいのかなど含めて改良する事。

影の再設定(座標個別)が上手く行われていない?

キャラクター構造体の生存フラグ意外で一時的に隠すような項目を作る事。
理由:コンパニオンの離脱中などで使用する。生存フラグだけだと
全体回復で復活してポップしてしまう可能性があるので
項目自体は追加済み。


自分への細かいバグ報告や注意喚起


警告
・扉・宝箱の設定は移動不可のみになっているので遠隔攻撃が通る。
・影のレイヤーがキャラクターやオブジェクトイベントより後になっている
・メニューウィンドウに戻るボタンを作ってさしあげろ。
・タイトル画面で×を押すと正常に終了できない
・オブジェクトイベントの削除が正常に行われていない(要検証)
・オブジェクトイベントのロックピックの犯罪判定。鍵(フラグ)の有無での施錠などは今の所未実装。
・イベントの鍵開け処理で、マップのレベル依存(-1)という処理があるのだが
マップに対してのレベル設定項目が無い。後でマップに追加する事
・開閉条件にイベントのフラグが指定されていても
まだフラグ基礎が出来ていないのでなにもできない。後で追加する事
・イベント実行対象の番号は、キャラ・オブジェクトイベント番号兼用
今のところオブジェクトイベントもキャラ番号扱いなので、変なキャラが話しだしたりする
マップ間移動とか怪しい。再生成とか含めて正常に動くがデバッグしろ!
・移動可不可、射線可不可の部分の様子を見る
二重三重で判定されている可能性が高いので、処理速度を図ってみたりすること。
・フィールド読み込みに再生成フラグが追加された。
読み込み外で無駄な上書きを行わないように気を付ける事
・ゲーム開始直後など、マップの保存が必要ない場合も呼び出しているので
無名の一時ファイルがセーブ内に作られてしまっている



注意喚起

・後退処理のAIが優秀なので同速度の一対一状態だと確実に逃げられる。
逃げている時は速度が低下するなどの処理が必要。
・移動の押しのけ判定がややガバいので、中立・友好派閥と押しのけあいまくる。
↑様子見。酷いようであれば修正

要注意:経過観察必要事項セーブロード処理をmainを中継せずに行えるようにしているが、信用ならない。


この記事へのコメント

この記事へのトラックバック