戦うぞ!64xその94(細かい修正と追加)

そろそろ試作版上げれそう。


やった事


キャラクターに登場フラグ項目を設定する
対象番号のゲームフラグがTrueの場合のみマップに登場する。
これはマップ側のNPC情報で行う(ワールド側では行わないし上書きを行わない)

キャラクターに抹消フラグ項目を設定する
対象番号のゲームフラグがTrueの場合、マップに登場しない
これはマップ側のNPC情報で行う(ワールド側では行わないし上書きを行わない)
登場フラグと抹消フラグが両方ともTrueな場合は、抹消側が優先されて処理される。


押し出し&入れ違い不可能フラグをキャラクターに追加
BlockingフラグがTrueのキャラクターは押しのけたり入れ違い出来ない

会話に「ちょっと通りますよ」を追加
対象キャラクターと座標を交換するコマンドを追加。
出入り口で詰まってしまった場合などで、NPCの入れ違いなどを行いたい時に使ってね。
BlockingフラグがTrueのキャラクターは断る。


戦闘状態の仕様変更
以前は
>対象に攻撃処理を行ったら戦闘フラグON
>
>なにもしなければ戦闘フラグOFF

だった仕様を

>対象に攻撃処理を行ったら戦闘フラグON
>敵対者への移動処理を行ったら戦闘フラグON
>
>なにもしなければ戦闘フラグOFF

に変更。
攻撃されるまで戦闘扱いにならなかったのを調整した感じ。

技の使用条件に「戦闘状態なら」を追加
対象が敵対者でない補助技などの場合、常時使用判定が行われてしまう。
移動や待機度にいちいち使用してしまい進行に支障が出るので、
「戦闘時のみに使用する」フラグを追加した。
この戦闘中フラグは、敵対者への移動処理段階でTrueになるので接敵中に補助技を使ってくれる・・・はず

キャラクターの移動先座標の初期値・クリア値を-1にした
未設定値は0番だったものを-1に変更。
座標は0番も普通に使用するので-1にする必要があった。
編集箇所が多かったから不具合が起きていないか心配。

自身へのバフなど、補助技を設定している場合移動を行わない不具合
修正
単純に効果内容の参照先がおかしかった

イベントに一時フラグの操作・判定を実装
今まで「マップの再生成時に解消される」だけしかなかった
キャラクター内フラグに
「再生成されないフラグ」も追加された。

技の条件設定画面の初期値がおかしい
獣技の爪を指定→初期値にすると技が「後退」に指定されてしまう不具合を修正

イベントに乱数値処理を追加
対象ゲーム内変数に乱数を加算する処理と
ゲーム内変数と(乱数+固定値)で比較する処理を作った。
何故比較時に固定値を入れるかというと、色々と楽だから(ざっくり)

プレゼントに装備の変更処理を追加する
渡された装備が今の装備より優秀で、装備タイプやマスタリー通りなら装備を変更するようにした。
技設定と合っていない武器を渡しで攻撃できない状態にできちゃうのが珠に瑕



やる事

キャラクターエディタでワールドNPC参照が出来るように
エディタ内のキャラクター生成でワールドNPCからの参照を出来るようにする
もちろん現在のデータとベースからの参照とで分ける事

技設定画面(ゲーム本編機能)の表示調整
キャラの能力値項目が増えて簡易表示がおかしくなっている
HPSPをずらすか消して


依頼ベースデータの読み込み形式が怪しい
ファイル番号99まで対応しているが番号が抜けている時の処理などが
正直把握しきれていないので確認しておくこと

マップエディタのモブポップ画面の改良
作りがかなり雑なので


キャラクターの選択中は画面に何か表示するように
移動先選択中などの状態が分かりづらい。
・プレイヤーではないキャラの移動選択は一々解除されるのでわかりづらい
・選択中に足元から地点を表示しないので選択中かわかりづらい
スキップ中のような画面全体に何か表示してもいいかも


範囲に以下を追加する
縦一列
横一列
十字
自分中心



Item,Armor,Weaponの名称バッファの確認
バッファサイズをケチったせいでサイズが統一できているか怪しい

技の効果のラベル(もしくは画像)を用意する
一文字・二文字程度の短いラベル、画像を用意する
不思議なダンジョンやElonaなどの技・装備の印表示的な物

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

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


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

通常NPCの加入処理

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

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


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

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




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

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

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


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


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

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


ランダムダンジョン生成のオブジェクト生成などで新しい規格に変えておくこと。
ダンジョンテンプレートの各機能を本実装
オブジェクト番号で逆引きする感じで
柱・机・椅子・岩とか


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

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

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

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

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

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

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

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

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

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

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


会話ミニゲーム

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


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

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


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


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

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

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


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


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

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

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



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

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

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

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


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


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



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

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

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

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

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

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


要検討


光源について考え中
オブジェクト自体に光源を描くのは駄目
指定色だけ半透明にできるならできる

マップデータに光源データを追加すると
光源の表示位置が微調整できないので無理
足元のランプと壁掛け松明で表示位置が違うので・・・
難航中

料理のレシピとか考えてみる
テイルズ式のレシピ解禁とか色々仕様を考えてみる。
サブイベントでアンロックした方が楽しいと思うけど、セーブデータ量が増える。

武器に以下の要素を追加するか検討する
・長柄判定bool
薙ぎ払いなどの技を使用できるか
・近接可能bool
弓などを主武装にした際に、通常攻撃などが出来るか

必須ではないのでよく考えてから導入する事


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



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

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


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



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

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


マップチップデータに場データを実装する(要検討)
水や火などの状態データを実装する。
処理の負担になったりと色々懸念があるので保留中。


細かい仕様とか

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


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

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

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

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

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

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


バグ



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


テキストエディタでクリック地点にカーソルが移動しない問題
以前正常に動いていた部分が動かなくなってしまった!
「半角英数が1バイト・日本語は2バイト」というDxライブラリの仕様上、
"あああ"は6バイト・3文字になる。

カーソル位置のget・setはバイトの数値で扱うのだが、
6バイト位置に設定すると、謎の制限が発生して3バイトの位置に再設定される。
つまり文字数の値のバイト位置に再設定されてしまうのだ!

フォーラムで相談中(レス0)
バグやろwwwとほぼ決めつけて書き込んだけどもしかしておま環・・・?


警告

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

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

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

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


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

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

ブログ気持玉

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

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

→ログインへ

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

気持玉数 : 0

この記事へのコメント