戦うぞ!64xその88(ジャーナル実装)

JournalTab001.png

ジャーナルデータの実装
シナリオ・ストーリー的な物を実現するためにジャーナルデータなる物を実装した。
解説はややこしいので割愛。地味にフラグ的な役割も持っている。

ジャーナルの開始・終了・進行・判定はイベント経由で行う。

盗賊退治のジャーナルが存在して
進行度2(親玉を倒したので依頼主に報告しよう)なら
報酬獲得イベントを行い
ジャーナルを終了させる
ゲームフラグ(盗賊退治)をtrueにして、再開始しないようにする

みたいな感じにイベントを使って制御するぞ。

ジャーナル画面の実装
メニューからジャーナルの画面が開けるように。

現在の進行度より前の項目も確認できるが、
分岐がある場合などに対応していないのだ!後日色々弄るかも。

文字列の比較関数を自作
文字列を\\nから\nに置換処理をまた書き直した
;を改行コードにしていたのを\\nに書き換えたりした。

ファイルの指定を全てexeからの相対に変更。
今まではEventはEventフォルダ、MapはMapフォルダに入れる必要があったが、
自由な方が楽(町フォルダ内にイベントやマップなど色々詰めたいので)仕様を変更。

今までは"001"だけでokだったが、これからは
GameData\Event\001.txt
と書く必要がある。
長くて見えづらいが、ゲームフォルダ内であれば何処に保持しても参照できるようになった。

マップファイルのディレクトリ位置を変更した
セーブファイル内のマップ状態ファイルとかがえげつないパスになってしまった。
GameData\MapData\001.txt
のファイルが
Save\プレイヤー名\MapTemp\GameData\MapData\001.txt.map_temp
という階層で保持される。ぐぇ~~

(バグ修正)SHIFT+クリックでの移動優先命令が履行されない
主人公への一時優先移動のチェックが外れていたのを修正。

(バグ修正)派閥分けモンスターリストのレベルソートが機能していなかったのを修正。
へんてこな書き方だったのにコンパイラが通っていた。

(バグ修正)トレード処理でお金を所持金に追加していなかった問題を修正
アイテムとしてのお金を拾った際に、プレイヤーの所持金に追加するようにした。

トレード処理の拡張
トレード処理の対象(p1とp2)を自由に設定できるように
お互いの所持金ポインタを参照するように

(バグ修正)ランダムダンジョンが正常に動くように
・オブジェクトイベントの規格変更
・ファイルパスの規格変更
・モンスターのレベルソートバグ
という複数の恐ろしい原因で正常に作動していなかったのを修正


(バグ修正)マップの座標選択処理を行った際に、モンスターデータなどが消失してしまう
場の状態が復元できていなかったのを修正



やる事

トレード画面で所持金からお金アイテムを生成できるように
お金をアイテムとして生成して、物にしまえるようにしてほしい。

キャラクターの移動目標座標(Target)の未設定値が0になっている。
別に問題ないならそのままでいいと思うけど、-1の方が色々安心しない・・・?

ランダムダンジョンなどで護衛対象やボスを強調表示する
ターゲットなど重要キャラクターが判別し辛い。
ボスの名称のアナウンスをElonaみたいにするようにして!

モンスターのいるマスに何らかの強調をつける。
現在だとややモンスターの位置が解りづらい
特に浮遊していたりすると、本来のマスから離れた位置に表示されるので...
・マスに枠
・影など
後回しでok

トレード処理で金銭の直接やりとりを出来るようにする事
直接所持金ポインタへ入出力。
溢れた分はトレード処理の外で、地面に生成するなりしてね。

プレゼントの実装
プレゼントや投資でNPCのLvを上げられるようにする
NPCの好感度を上げるやつ。
Lvが上がった時に装備のLvも上げるようにしておくこと。
商人のアイテム生成などの規格を完ぺきにして処理を追加してほしい。
今のところは細かい部分がまだ決まっていない感じ。

プレイヤーの所持品はマップ間移動や手動でセーブされるが、
商人の所持品は、取引画面を閉じた際にセーブされる。
このタイミングの差で色々とちょろまかす事ができる。困ったなあ。
じゃけん、一緒にプレイヤーデータもセーブしましょうね。

・アイテムの価値が高いほど好感度が上がりやすい
・相手のレベルより魅力が高いと好感度が上がりやすい
・相手の興味値かなにかで好みのアイテムを生成してほしい
・実行者に経験値を入れる
経験値量は物の価値が好ましい。価値と自分のレベルで比べ合って補正を掛ける
・渡した相手に経験値を加算させる
経験値量は物の価値が好ましい。価値と相手のレベルで比べ合って補正を掛ける
・装備を渡した場合
1.相手が現在装備しているものより価値がある
2.相手の装備タイプ適正が同じ
場合、装備を着替えるようにしてほしい


ニューゲームの能力選択をちゃんと反映するように
今のところ、はじめからで生成したときの条件と、ゲーム開始時の能力が全然違う!恥を知れ!

ランダムダンジョン生成のオブジェクト生成などで新しい規格に変えておくこと。

モンスターデータのアイテムドロップ項目設定が
実際のドロップに反映されるように実装する事。


またエディタ側では数値の手打ち状態なので、
ドロップアイテムデータなどからプルダウンやリスト選択を引っ張ってくるようにする事

・一枚絵データの実装
・モンスターデータ側の一枚絵選択処理の実装


行動の代行の実装
主人公が鍵開けなどの行為をする際、
一定範囲内の味方をリストアップして、代行挑戦させることが出来るようにする

マップ拡張処理をmalocで一時保存先を作成して広げる
実装してみたら、速度が微妙だったので保留。

技(スキル)の名称をどうにかする
現状技の事をSkillとしているが、料理や魔術知識などのカテゴリもSkillと呼べてしまうのだ!
なので技(Skill)をBattleActionと名称を変えてみたが、文字列が長くてかなわない。
どうしたものか...


各項目値をゲーム内変数にコピーするイベントを作る
現在の所持金+N円なら~~という処理など、
何かを挟んで数値の判定をする際に使用する。

アイテムにエンチャントを実装していく
他、腹痛の状態異常を追加してね

ダメージ表示の数字が重なると見えなくなるので何とかする
・案A
キャラクター構造体側にダメージ値・ターンダメージ値の要素を作って
加算させながら表示させるようにしてみる
一定時間表示の更新がなければ全値を消して表示フラグも折れる様な感じに

ダメージの限界突破制限&最小値・レジスト
属性耐性の値が100%を超えると
攻撃や回復の威力が反転する可能性がある
攻撃・ダメージ時に死亡や上限規制の判定を設けるべき
他にもエンチャントもろもろで値のおかしいダメージが想定される。

キャラクターステータスウィンドウなど、
各ウィンドウの最適化

カスタム説明の適応とか色々



アイテム(武器防具は不要)に分解項目をつくる
1.そのアイテムを分解するとどんな資材が手に入るか?
2.そのアイテムを分解したときのアイテム入手量

ネジ・木材などの資材を実装できたら解体も実装する事。
家具など不要になりやすいアイテムも何らかの足しになるといいね!

採掘で取得したアイテムは実体(鉱石として実体・重さを持ってインベントリに追加する)
鉱石を溶かして資材に変換!という感じにしてほしい

キーコンフィグの追加
操作追加
・AWSDでキャラの移動
・方向キーで画面移動
・SHIFT + AWSD で画面の移動
・CTRL + クリックで地形選択しない。HUD対象クリックとか


設定画面を充実させる
色々足りてないので
・フルスクリーン設定とか
・操作、ボタン設定


モンスターデータエディタに派閥分け表示・編集を追加する事

技の選択画面が使いづらい
タイプで文字色を変えたりしてなんとかしろ

キャラランク(品質)によってドロップアイテムの種類が変わるように
しているはずだが、デバッグしていないので本当に反映されているか見てみること。
宝箱でのアイテム生成はこれを流用して作るんだぞ!

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

オブジェクトイベントのタイプを追加
通過時イベント発動タイプ:オブジェクトイベントで通過時にダメージが入るようなトラップを作る
アイテム収集地点タイプ:Elonaのマテリアル

NPCが扉を開けるようにする
扉が移動不可扱マスではなく、移動実行時に拒絶するような作りならいける
扉越しに遠隔攻撃が通るのを何とかする
主人公が通過したときに発動するオブジェクトイベントを作る

アイテムの品質や、残り回数が表示でわかるように
品質の表示が一行表示の際にされていないのでさせる事。色分けでもいいね。7days to dieみたいに。
売買・交換画面でアイテムの表示時にも品質や使用回数がわかるようにする。

自分対象の技を使った際、距離の表示がおかしくなる(変数の初期化がされていない?)
アニメは正常だけど同時に表示される距離値が-~~~になる

犯罪行為の咎め判定
全キャラクターで検索、射線の通りと単純距離の2種類で判定する。
犯罪難易度と対象キャラのレベル+距離補正で成否を判定する。

ポートレートの服装生成はモンスターデータを元に生成されるが、
男性女性での振り分けが無い為、男性でも女性の服などが生成されてしまう。

現在
魔術師(共用)・平民(男性)・平民(女性)
と性別処理が一貫していないが、これを完全に男女別に分ける事!


キャラクターデータの移動AI、攻撃AIをちゃんと実装する事
モンスターデータ側でも項目があるぞ
モンスターデータエディタ側にも項目があるぞ
カテゴリ名や内容の説明などをしっかり作っておいてね!


細かい仕様とか

迷宮のモンスター生成
現在迷宮の登場モンスターは依頼での敵対派閥から引っ張ってきている。
もし派閥が混在するような仕組みを作りたい場合は別の処理を作ってかませること。


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

迷宮内での移動でもセーブさせてね
迷宮内でセーブした後、ボスを倒す→ロードするという行為を行うと
ボスが倒された状態で再開して詰まる。
ボスを倒した際にセーブするようなElona的処理でなんとかなる。
ロードした後でも、マップの一時データが残り続けるから仕方がないねんな。。。

射線判定の斜め時に片方だけ問題
射線判定(FireLine.cpp)の斜め判定の処理で
一回目では左右調べているのに、二回目は片方しか触っていない
変じゃない?
まあ多分正常に動いているからヨシ!

アイテム生成の強化
宝箱からのドロップやマップ上のアイテム生成の強化。
現状、存在していないカテゴリなどがあるのでまずはそこから埋めていってほしい。
・武器防具
宝箱などで固定指定の装備が生成できるように
・アイテム
まだ実装していないカテゴリがある(道具など)のでそれを実装。
レア宝箱みたいに固定指定アイテムもドロップする処理もたのます。

技のExpタイプが機能していない
多分依存パラメータ側で振り分けを行っている
規格の整備を行っていってね。

技データの読み込みで、csvの行数がデータの最大値より少ない場合
最終行(正確には存在しない空白の行)が滅茶苦茶な読み込まれ方をしてしまう
空白が読み込まれるため数値は0。文字列は初期化していないので文字化けで保存される

NPCの再生成処理が上手く動いていない?
F5のマップ上キャラクターデータで
・NPC_Flag
・ReSpown_Flag
この二つをTrueにしてもマップの再生成時にリスポーンしない!
できればリスポーンしてほしいなあ・・・
マップのデータ側で設定して正常に動くか確認する事。

バグ

警告

・メニューウィンドウに戻るボタンを作ってさしあげろ。
・タイトル画面で×を押すと正常に終了できない
・オブジェクトイベントの削除が正常に行われていない(要検証)
・オブジェクトイベントのロックピックの犯罪判定。鍵(フラグ)の有無での施錠などは今の所未実装。
・イベントの鍵開け処理で、マップのレベル依存(-1)という処理があるのだが
マップに対してのレベル設定項目が無い。後でマップに追加する事(忘れてませんかね...)
マップ間移動とか怪しい。再生成とか含めて正常に動くがデバッグしろ!
・フィールド読み込みに再生成フラグが追加された。
読み込み外で無駄な上書きを行わないように気を付ける事
・オブジェクトイベントからのイベント発生処理が未実装な
・戻り値がある関数なのに戻り値がないとリリースのコンパイルで
エラーが出ずに通る事がある。末端に必ずreturnで値を返すような仕組みにする事。

・ゲーム開始直後など、マップの保存が必要ない場合も呼び出しているので
無名の一時ファイルがセーブ内に作られてしまっている

・BGMデータの保管方法は、最初にハンドルへ全部読み込んでいしまっているが
もしoggやmp3などのファイルを使う場合はいちいち読み込んだほうが良いのでは?
一々読み込む場合は、数値型ではなくファイル名のchar配列型にする事。

・投げるコマンドでのアニメ・エフェクト・ダメージ計算・副次効果は仮実装か未実装。


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

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

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント