戦うぞ!64xその90(並び替え処理の実装)

ArrangementListActivity01.png

おかしい・・・やる事リストが増えているような気がする。

やった事


HUD で対象地点の地形&オブジェクトを表示する
対象地点のキャラクターのみ対象だったのを、
キャラクターが存在しないマスは地形の詳細情報を表示するように。
また一部処理を共通化した(対象地点表示《Tip,Height,Skin》)

オブジェクトイベント・オブジェクト選択処理でオブジェクト名を表示するように。
同じ画像でも扱いが違う場合などでも判別できるように。
例えば
鍵の掛かっていない扉は通行可能。
施錠扉は通行不可。と、いう感じなので。

マップエディタで壁配置モードが解りやすく
壁モード中は他の項目を見えなくしたりした。

技使用条件の初期値実装
大まかな初期値を実装した。
・攻撃なら敵対対象、制限ほぼ無し
・回復なら味方対象、HP一定以下などなど

ポップするモンスターなどはモンスターデータでの詳細データを参照して
技や条件を生成する為、初期値ファイルは不要。

エディタやプレイヤーが技の手動変更を行った際に、
設定の手間をある程度省けるようにするための初期値設定になっている。

並び替え処理実装
配列項目をドラッグアンドドロップで並び替えするための処理。
並び替えは処理は並列して行えない(Staticみたいな感じだから)

コンパニオンの並び替えが出来るように
メニューから行えるように。
参照番号の更新が発生するので地味に深いネストの処理を行ったりするぞ。

コンパニオンの並び替えが出来るように
メニューから行えるように。

やる事

技習得処理
特定スキルが一定以上などを条件で満たした場合~~とか。
よく練ってから作業を行う事。

技データをカテゴリ式に変更
noだけはなく、categoryの要素も持つように。
大量のデータだと分けないと不便なので。

技習得フラグの実装
一度覚えた技は何度でも習得可能にするため。


オブジェクトに乗っかっている時に、若干高く表示する(要検討)
椅子など移動・通過可能オブジェクトに重なった際、
ややめり込んでいるような見た目になってしまう。
オブジェクト側txtに高さを追加して、表示位置を調整するとかで対処できる・・・かも

スキルや能力値を変数に書き込むイベントを追加する
例えば
修理スキル50以上で確実に修理可能
50未満なら値を百分率にして、ランダムで成否を決める

とかの処理で使うかも


プレイヤーメニューの派閥画面を改良する
通常時・デフォルトはプレイヤー派閥→他の状態を表示。
プルダウンなど操作で他派閥同士の関係が見れるように

プレイヤーの名声(LevelとExp)や
カルマ・所持金も見れるようにしてほしい。


コンパニオンの加入・離脱イベントの実装
コンパニオンスロットに空きがあるかの判定処理と、
離脱加入処理、イベントの実装

通常NPCの加入処理

マップ上のNPCを勧誘するなどのパターン
イベント開始元など、マップ上の対象キャラ番号で処理を行う

1.コンパニオン枠の開いている部分を調べる→なければ失敗
2.開いている枠にマップ上のNPC指定番のキャラをコピー
3.コンパニオンの派閥を主人公派閥に
4.マップ上参照NPCのEnableをFalseに(不活性に)


Elona奴隷など、直接加入パターン

1.コンパニオン枠の開いている部分を調べる→なければ失敗
2.対象枠にキャラクターデータを生成




アイテムの重量バランスを取る
見本にしているElonaやSkyrimなどは重量がfloat型(小数点)で管理している。
今作っているゲームは1からなので、それをベースにする必要がある。

一番軽い物を決める
食べ物の重量を決める
ポーションの重量を決める
剣の重量を決める
家具などの重量を決める

ここらへんで相互を基準にしながらバランスを取っていく事。


アイテム入手依頼で、必要ランク以上なら報酬にボーナス
良品以上の要求で、名品などを渡した場合
ささやかな報酬の上乗せを行ってほしい(金銭)少しだけね。
報酬アイテムに対しては上乗せしなくていい。


マップエディタでのマップ読み込みで影の更新を行う
やれなり


マップ情報自体もセーブデータにぶち込む
対象地点のオブジェクト・または地形を変えるイベントを追加する
(要検討)

メリット
壁やチップの破壊・一時的な変更が出来る
隠し通路など色々出来る
技などで物が壊れる様な表現が出来る。


デメリット
ファイル(セーブデータ側の)容量が増える
マップ間移動時のセーブ・ロード量が増大する
任意でキルゾーンが建設できる
一方的に攻撃できる環境をプレイヤーが作れてしまう
地形にハマる可能性がある



キャラ表示を一枚絵から歩行グラフィックに変更する
規格だけでも

マップチップデータもオブジェクトデータと同じようにする(要検討)
・名称
・移動不可
という二種類の構造体で管理する

とは言え現状からさほど改良される訳でもないので保留


ダンジョンテンプレートの各機能を本実装
オブジェクト番号で逆引きする感じで
柱・机・椅子・岩とか


アイテム選択画面で大事な物・汚破損・盗品の表示が出来るようにする
汚破損品や盗品をプレゼントすると喜ばないようにする事
まだ完全反映されていないのでやる事。


SHIFTの高速ターン回しを戦闘にも適応する
主に移動と目標の有無で判定しているので、敵との戦闘時に高速回しが出来ない。
ぶっちゃけ足踏みで代用できるから後回しでおk。


キャラクターの移動目標座標(Target)の未設定値が0になっている。
座標に対しての指定なので、普段使いで0番座標への移動は起こり得る。
今の所別に問題ないけど、-1を未設定値にするべき。

技指定攻撃処理を実装する
後回しでもよい
プレイヤーやコンパニオンの技使用指定。
通常クリックで一回。Shift(またはCtrl)+クリックで無限使用

キャラクター構造体側の技欄に
・技の仕様不能フラグ(自動で使わない為のフラグ)

キャラクター構造体に
優先技設定
優先技仕様先、敵番号
優先技繰り返しフラグ

を追加する
攻撃対象の奴は既存のものがあるかもしれないのでそっちを見てどうぞ


会話に相手の事を知るための項目を追加する

ランダムで
・生い立ちについて
・興味について(ランダム・興味値のboolの開示はされない)

語り口調ではなく説明文で行ってよい

相手は何が好みで何が嫌いかを聞くことが出来るようにする。

>キャラクター構造体に興味値の値だけboolを作る
>会話ミニゲームなどで話題を振った際に、boolをtrueにする
>trueの話題は以降、ある程度の興味値が解るようにする


会話ミニゲーム

簡単な仕組みなら、
指定の興味について会話を試みる
自分の興味値と相手の興味が近ければ良好
同じ興味は続けて二回(再生成を跨いでも)選択できない、とか


武器・防具にアイテムレベルの設定を追加する
要検討
設定していれば細かくレアリティ的な事が出来なくもないが、
剣などと違って斧などは種類が乏しいので項目を作っても無駄な面がある。

プレゼントに装備の変更処理を追加する
渡された装備が今の装備より優秀で、装備タイプやマスタリー通りなら装備を変更するようにする事。


プレゼントに装備の変更処理を追加する
渡された装備が今の装備より優秀で、装備タイプやマスタリー通りなら装備を変更するようにする事。


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

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

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

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

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


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

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

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


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

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

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

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

キャラクターステータスウィンドウなど、
各ウィンドウの最適化
カスタム説明の適応とか色々



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

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

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

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


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


モンスターデータエディタに派閥分け表示・編集を追加する事
カテゴリ式でいいのでは?

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

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

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

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

アイテムの品質や、残り回数が表示でわかるように
品質の表示が一行表示の際にされていないのでさせる事。色分けでもいいね。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

この記事へのコメント