[ リストに戻る ]
No.62に関するツリー

   ふっかつのたま使用時の挙動について - ごんどら - 2020/10/23(Fri) 16:27:00 [No.62]
Re: ふっかつのたま使用時の挙動について - M.O.D. - 2020/10/25(Sun) 12:24:20 [No.63]
Re: ふっかつのたま使用時の挙動について - ごんどら - 2020/10/25(Sun) 20:49:27 [No.64]
Re: ふっかつのたま使用時の挙動について [バグ報告] - M.O.D. - 2020/11/02(Mon) 18:31:45 [No.65]
Re: ふっかつのたま使用時の挙動について - ごんどら - 2020/11/02(Mon) 20:27:17 [No.66]
Re: ふっかつのたま使用時の挙動について - M.O.D. - 2020/11/10(Tue) 10:25:16 [No.69]
Re: ふっかつのたま使用時の挙動について - ごんどら - 2020/11/11(Wed) 22:59:10 [No.70]
Re: ふっかつのたま使用時の挙動について - M.O.D. - 2020/11/25(Wed) 12:50:17 [No.77]
Re: ふっかつのたま使用時の挙動について - ごんどら - 2020/11/27(Fri) 18:12:09 [No.78]
Re: ふっかつのたま使用時の挙動について - M.O.D. - 2020/11/27(Fri) 23:36:56 [No.80]
Re: ふっかつのたま使用時の挙動について - M.O.D. - 2020/12/07(Mon) 17:55:42 [No.83]



並べ替え: [ ツリー順に表示 | 投稿順に表示 ]
ふっかつのたま使用時の挙動について (親記事) - ごんどら

おつかれさまです。ふっかつのたま関連で何点か気になったことが。

●フィールド上でのロード直後は3人揃っているときでもmusic 9が再生されない
デバッグログを参照したところ
$MUSICラベルのif memberlives >= 3 then
がfalseと判定されてしまっているようです。画面切り替えなどを行なうと正常にtrueと判定され、music 9が流れます。

●乗船時、海の上でセーブ→ロードすると船が消失して移動不可に。
セーブデータの内訳がよくわかっていないのですが、乗船フラグが保持されていない?

●セーブする場所によっては再開時に画面がベースパーツで埋まった状態になる。
デルコンダルのコロシアム内など。
おそらく$INITIALIZEに書かれたset_areaが上書きされている?
※現在座標でset_areaを分岐させるような命令を$INITIALIZEに仕込めばいちおう回避可能なことは確認しました、が、かなりめんどくさい……。

追伸:
あと不具合なのか迷うところではあるんですが
https://imgur.com/a/q9ViDtC
アレフガルドのこの位置(x:33 y:82〜88)に左側から上陸すると
$ALEFGALD_CHECK_3に乗らないらしく、普通のフィールド曲が流れます。
チェックしている座標をいじれば簡単に直せるんですが、これ、もしFC版ドラクエ2の再現ネタとして仕込んでらっしゃったとすれば非常においしいw


[No.62] 2020/10/23(Fri) 16:27:00
Re: ふっかつのたま使用時の挙動について (No.62への返信 / 1階層) - M.O.D.

いつも遊んでいただいてありがとうございます。

えー、まず復活の玉の仕様ですが、実装時に本来の仕様から変更していたことをすっかり忘れてました(←鳥頭)
以降の文はそれを承知の上で読んでください。

> ●フィールド上でのロード直後は3人揃っているときでもmusic 9が再生されない

このプログラムでのコンティニュー・ニューゲーム時の状態遷移はタイトルシーン破棄→フィールドシーン作成→イベントマネージャ作成→イベントマネージャーにて$Initialize実行→フィールドシーン実行、の順で実行されます。

パーティの生存人数確認はフィールドシーン実行で行われるため、コンティニュー・ニューゲーム時にワールドマップから始まった場合、生存人数が正常にカウントされていませんでした。
普通のコンティニューは建物内で始まるため、今まで気が付かなかった部分です。

タイトルシーン破棄直前にパーティの生存チェックを入れることにより正常に動作することを確認しました。

次回アップ時に修正されます。


> ●乗船時、海の上でセーブ→ロードすると船が消失して移動不可に。

乗船フラグは保存していません。
ただ、データー保存時にプレイヤーの位置を船の位置を記録していたので、タイトルシーン破棄直前にそれぞれの座標をチェックし、強制的に乗船フラグを立てることで正常動作を確認しました。

次回アップ時に修正されます。


> ●セーブする場所によっては再開時に画面がベースパーツで埋まった状態になる。

set_areaはイベントスクリプト内でマップ進入時と階段移動時等に再設定するようにしています。復活の玉でコンティニューした場合はマップ進入時の値で初期化されます。
後半のマップではフロア毎のエリアセットイベントを組み込んだのですが、これも階段移動時にしか呼び出していないのでほとんどのマップではset_areaコマンドを作り直す必要が出てきます。
(エキストラダンジョンでは自分の位置を自動判定して適切なset_areaを実行するように(手動で)スクリプトを組んでいます。これを各マップに適応すれば良いだけです(・・・だけ?))

・・・次のアップデートまでに修正しなければならない内容が大幅に増えたことを悟った瞬間でしたw


> 追伸:
> (略)
> アレフガルドのこの位置(x:33 y:82〜88)に左側から上陸すると
> $ALEFGALD_CHECK_3に乗らないらしく、普通のフィールド曲が流れます。


気付いてくれない人が居なかったので、気づいてくれた人が居るのは素直にうれしいw
まあ、BGMが変わらない場所すべてを再現するのはめんど・・・時間が掛かるため、一部のみ再現しました。
場所もずれているかも・・・?


[No.63] 2020/10/25(Sun) 12:24:20
Re: ふっかつのたま使用時の挙動について (No.63への返信 / 2階層) - ごんどら

レスありがとうございます。

>ふっかつのたま関連
修正予定とのことで、ありがとうございます。
パーティ人数チェックと船はともかくset_areaは修正するにしても大工事になりそうなのがなんとなく見えてたので報告するかどうかちょっと迷いましたw
ふっかつのたま自体がイレギュラーというか入手手段が限られるブツですし、「map0以外では作動しない」とかそういう雑な対処を思いついて試しに組み込んでみて個人的にはコレでもいいかなあ、とか。
でも気づいてるのにスルーするのもそれはそれで心苦しく……
えーっと、すみません、なにとぞよろしくお願いします。


>エキストラダンジョンのset_area
エキストラダンジョンのイベントデータはまだ見てなかったんですが、非常に興味深いのでぜひじっくり読ませていただきます。


>アレフガルドのBGM
ああ、やっぱりあれ仕込みだったんですか!
気づいたのもほんとに偶然みたいなもんだったんですが、これはもしやと思ったのが当たっててうれしいw


[No.64] 2020/10/25(Sun) 20:49:27
Re: ふっかつのたま使用時の挙動について (No.64への返信 / 3階層) [バグ報告] - M.O.D.

いつも遊んでいただいてありがとうございます。

> >ふっかつのたま関連

ちまちま修正していってますが・・・。
これ、偉い時間が掛かりますw

スクリプトを組み込んだ初期はエリアセットサブルーチンすら組み込まず移動スクリプト群に直接書き込んでたりしたので、今スクリプトを修正中です。

でも、公開してもバグの嵐でまともに動かない可能性があることを考えると、デバッグ前提の公開するのもな、って思います。
(セーブ位置によっては詰むからセーブデータ退避させて遊んで、っていうのもあんまりだしなぁ)

当面の間はmap0以外で使えないようにするのが現実的かも。
そもそも、どこでもセーブできるのであれば中断の書を組み込めよって話になりますし。

ということで色々考えてます。しばしお待ちを。


[No.65] 2020/11/02(Mon) 18:31:45
Re: ふっかつのたま使用時の挙動について (No.65への返信 / 4階層) - ごんどら

修正、非常にしんどいと思います……確認とる範囲と量がちょっととんでもないので。本当におつかれさまです。

で、これまた非常に申し上げにくいのですがまたちょっと不具合を見つけてしまいまして……。
別件なので新しくスレッド立てます。ご参照ください。


[No.66] 2020/11/02(Mon) 20:27:17
Re: ふっかつのたま使用時の挙動について (No.66への返信 / 5階層) - M.O.D.

いつも報告ありがとうございます。

> 修正、非常にしんどいと思います……確認とる範囲と量がちょっととんでもないので。本当におつかれさまです。

色々修正範囲を確認していたのですが、全マップの確認が無理だと判断しました。

いろんな場所で復活の玉を使い冒険の書に保存、読込み、正常かどうか確認なんて一人じゃ無理だ・・・。

どう対応するかは検討中です。

一番簡単なのは、セーブデータにset_areaの範囲を保存することですね。
ついでにマップごとに初期化されるフラグも保存するようにすれば、イベント途中の中間セーブでも詰まることはなくなりますし。

セーブデータの下位互換に気を付ける程度ですから、こっちの方がまず間違いないです。

しばしお待ちを。


[No.69] 2020/11/10(Tue) 10:25:16
Re: ふっかつのたま使用時の挙動について (No.69への返信 / 6階層) - ごんどら

お疲れさまです。
>セーブデータにset_areaの範囲を保存
すさまじく個人的なことを言うと
各マップのイベントデータにいろいろと手を入れて遊んでるので
本体側で対応していただければこちらとしても非常に助かりますw
(カギのいらない普通のドアの開閉をcharactor_putからparts_changeに変えて「外に出たときのキャラの位置」をよりFF3っぽくしたりとか)
とはいえ、もちろん勝手にやってるだけなのでまったく気にせずイベントデータにガンガン手入れていただいても大丈夫です。はい。

テスト・チェック等、もし必要でしたらご協力いたします。人柱上等ですのでお気軽にどうぞ。


[No.70] 2020/11/11(Wed) 22:59:10
Re: ふっかつのたま使用時の挙動について (No.70への返信 / 7階層) - M.O.D.

いつも遊んでいただいてありがとうございます。

> >セーブデータにset_areaの範囲を保存
> すさまじく個人的なことを言うと〜


色々調整したのですが、結局元のスクリプトに手を加えなければうまく動作しないことが判明したので、現在調整中です。

簡単に言うと、systemevent.evtファイル内に$AREASET_INITIALIZEイベントを作成し、各マップの$INITIALIZEからcallしています。また、各マップに$AREASETイベントを作成し、初期状態のset_areaを実行するようにしています。

$AREASET_INITIALIZE内でflag[10](復活の玉使用フラグ)をチェックし、フラグが立っていた場合、set_areaを設定せずに戻る($AREASETにジャンプしない)、という処理です。

結構時間が掛かると思いますので、しばしお待ちを。

systemevent.evt内

;$CONTINUE_CHECK(変更)
{
$CONTINUE_CHECK
sound 7
if flag[92] then
jump $ANNIHILATION
else
if flag[10] then
flag[91] off
call $HARGON_CHECK
return
else
if flag[91] then
if flag[15] then
flag[16] on
jump $CONTINUE
else
jump $CONTINUE
else
return
}

;$AREASET_INITIALIZE(追加)
{
$AREASET_INITIALIZE
if flag[10] then
flag[10] off
return
else
jump $AREASET
}

;$AREASET(追加)
{
$AREASET
set_area 0,0,255,255,0
return
}

各マップ内(例:map8evt)
;$INITIALIZE(変更)
{
$INITIALIZE
load_map \\Map\\map8.mdt,\\BMP\\Catsle.bmp
music -1
monstergroup_set 0,0
fixed_battle_bg 0
flag[97] off
call $DEBUG
wait_mode on
if flag[0] then
call $MUSICSELECT
call $BATTLE_CHECK
call $CONTINUE_CHECK
call $AREASET_INITIALIZE
else
call $MUSICSELECT
call $AREASET_INITIALIZE
jump $OPENING
}

;$AREASET(追加)
{
$AREASET
jump $AREASET_KINGSROOM
return
}

※作成中のスクリプトの為、変更になる可能性があります。


[No.77] 2020/11/25(Wed) 12:50:17
Re: ふっかつのたま使用時の挙動について (No.77への返信 / 8階層) - ごんどら

お疲れさまです。
> 色々調整したのですが、結局元のスクリプトに手を加えなければうまく動作しないことが判明したので、現在調整中です。
>
> 簡単に言うと、systemevent.evtファイル内に$AREASET_INITIALIZEイベントを作成し、各マップの$INITIALIZEからcallしています。また、各マップに$AREASETイベントを作成し、初期状態のset_areaを実行するようにしています。
>
> $AREASET_INITIALIZE内でflag[10](復活の玉使用フラグ)をチェックし、フラグが立っていた場合、set_areaを設定せずに戻る($AREASETにジャンプしない)、という処理です。


なるほどー。いろいろいじくり回してたおかげで(たぶん)わりとすんなり理解できました。
数ヶ月前はこのスクリプト文がマジで暗号だと思ってたのに読める!うれしい!

> systemevent.evt内
>
> ;$CONTINUE_CHECK(変更)
> {
> $CONTINUE_CHECK
> sound 7
> if flag[92] then
> jump $ANNIHILATION
> else
> if flag[10] then
> flag[91] off
> call $HARGON_CHECK
> return
> else
> if flag[91] then
> if flag[15] then
> flag[16] on
> jump $CONTINUE
> else
> jump $CONTINUE
> else
> return
> }


自分はこの$CONTINUE_CHECKの頭の$CONTINUE_CHECKを
if flag[10] then〜
と$CONTINUEの頭に移してました。
セーブ可能マップに入ったときにsound 7が鳴っちゃうのが気になったので……。
たしかエクストラダンジョンではもともとflag[10]チェックしてsound 7鳴らすかどうかみたいなのがあったのでそこもいじった気がします。


[No.78] 2020/11/27(Fri) 18:12:09
Re: ふっかつのたま使用時の挙動について (No.78への返信 / 9階層) - M.O.D.

いつもあそんでいただいてありがとうございます。

> なるほどー。いろいろいじくり回してたおかげで(たぶん)わりとすんなり理解できました。
> 数ヶ月前はこのスクリプト文がマジで暗号だと思ってたのに読める!うれしい!


あんな使いづらいスクリプトを理解してくれる人がいるとは・・・。とても嬉しいですね〜。
本当なら四則演算とか型宣言の変数とかもっと盛り込みたかったんですが、当時の技術力では無理でした。いや、今も難しいけどね・・・。

>
> 自分はこの$CONTINUE_CHECKの頭の$CONTINUE_CHECKを
> if flag[10] then〜
> と$CONTINUEの頭に移してました。
> セーブ可能マップに入ったときにsound 7が鳴っちゃうのが気になったので……。
> たしかエクストラダンジョンではもともとflag[10]チェックしてsound 7鳴らすかどうかみたいなのがあったのでそこもいじった気がします。


あー、確かに今のスクリプトだとSEなりますね。現状では仕様ですね。
エキストラダンジョンのflag[10]チェックは・・・、見てみるとボス部分でセーブした場合にキングヒドラから戦うように強制的にプレイヤーの位置を変更してますね。全く組んだ記憶がないですが・・・w


[No.80] 2020/11/27(Fri) 23:36:56
Re: ふっかつのたま使用時の挙動について (No.80への返信 / 10階層) - M.O.D.

ちまちま修正していってますが・・・。

ダンジョンのモンスターグループと出現率の再設定が必要なことを忘れていました。
スクリプトでの設定はあきらめ、システム側でほとんど対応することになります。

あんまりシステムに手を加えたくなかったんですが、ロンダルキアの修正を考えて断念しました。

また、一部イベント発生時(キャラクタが移動するもの)に関しては復活の玉が使えない仕様にする予定です。
例でいえば、ルプガナの戦闘や大灯台のイベントなどですね。

これらを含めて修正となると、最悪年明けのアップになりそうです。ご了承願います。


[No.83] 2020/12/07(Mon) 17:55:42
以下のフォームから投稿済みの記事の編集・削除が行えます


- HOME - お知らせ(3/8) - 新着記事 - 記事検索 - 携帯用URL - フィード - ヘルプ - 環境設定 -

Rocket Board Type-T (Free) Rocket BBS