Open i7-FF7FC opened 3 years ago
おお!ありがとうございます!! ちょっと何年かぶりにソースコードをビルドしてみてるんですが、うまく動作せず。。 環境構築し直さないと駄目そうです。少々お待ちを。。
ビルドはできたものの、アプリ起動後に落ちます 何らか開発環境の問題にみえるんですが。。4年ぶりにビルドするとそうなるよなあ。。
お疲れ様です!まさか試していただけるとは!感謝です。 急ですみません、ほんと大変ですよね。 私も2年振りぐらいだったので、カウンター越しのキャラに喋らせる的な、 単純な命令ですら思い出すのにしばらく時間を要しました。
ただ開発環境の問題ということは、 時間さえあれば何とか…っていうことでもない感じですかね?
一応起動できました。ご要望の修正に取り掛かります
なんと素晴らしき。神かな。 セフィロスの天野絵は無かったので(何故か宝条はあった)、 こっちはとりあえず空白でいいですかね。
エンカ時の海のモノクロ処理修正しました 4年振りにビルドしたのでデグレなど起きている可能性があるので アップロード済のexeとは別にff7fc_v400a.exe としてアップしておきました 問題など見つかったら教えてください セフィロスとクラウド(ソルジャー時代)のデータ追加はお待ちを。。
ありがとうございます! 今のところ全然問題ないです。 あとアイテム装備関連の命令もありがとうございました! データはまだMAP等作ったりするものもあるので、ごゆるりとどうぞー。
それはそうと、WIKIのファミコン音源化リストのページがあったfreett.comが、 いつのまにか消滅していたので、 (さらにドメインが詐欺業者に買われたようでして、アクセスするとウイルスソフトが反応…) あそこにあった「Those Chosen by the Planet」の"nsfファイル"(MP3ではない)お持ちじゃないですかね? 無いなら無いで良いんですが、もしお持ちでしたらお願いします。
セフィロスと回想クラウドを仲間に追加できるようにしておきました! セーブデータにセフィロスと回想クラウドのデータを追加した関係で、 セーブ画面で過去のセーブデータを読み込もうとするとクラッシュしますのでご注意ください nsfは探してみましたが見当たりませんでしたね ワールドマップ作成お疲れさまでした
face_menu_amano.bmp の幅だけ広げようと gimp でいじってたんですが保存するとなぜか白黒画像が表示されるようになってしまう 🤔
お疲れ様です。 何点か不具合があったのでご報告。 ・元のクラウドを外して、セフィロスと回想クラウドのみのパーティをにすると、 歩きだした瞬間から表示がバグって落ちました。 ・コンフィグのかおグラに移行した際に、回想クラウドが表示されませんでした。 ・戦闘中の攻撃時に武器アニメーションが(音も)表示されませんでした。 これはどこかに画像等追加すれば良いのかも知れませんが。
画像ソフトは、256色専用エディタのEDGE(1の方)がいいかも知れません。 最終的には全部これで書き出してるので。 「設定→キャンバスの大きさ変更」で幅変えられます。
マップ移動と戦闘は確認できてませんでした:cry:
・元のクラウドを外して、セフィロスと回想クラウドのみのパーティをにすると、 歩きだした瞬間から表示がバグって落ちました。
修正しました。
・コンフィグのかおグラに移行した際に、回想クラウドが表示されませんでした。
これは、表示スペースが最大10人分しかないので、11人目の回想クラウドは表示できてないんですよね。。 詰めて表示するか、デザインを変えるかですね。。ちょっとすぐには対応できない
・戦闘中の攻撃時に武器アニメーションが(音も)表示されませんでした。 これはどこかに画像等追加すれば良いのかも知れませんが。
修正しました。
回想クラウドの武器アニメーションがバグっていたのでクラウドと同じに修正しときました
画像ソフトは、256色専用エディタのEDGE(1の方)がいいかも知れません。
ありがとうございます。face_menu_amano.bmp の幅を広げておきました。
早速のご対応ありがとうございます!
これは、表示スペースが最大10人分しかないので
ああそういうことでしたか! 確かに詰めたらもう一枠ぐらい行けそうですが、設定部分は一例ということで、 このままでも良いかも知れませんね。今回の回想イベでしか使わない気もするので。
face_menu_amano.bmp の幅を広げておきました。
とりあえず、天野絵部分はオリジナルと同じにしておきましょうか? 天野絵じゃないから紛らわしいかな。 画像倉庫に、ボツにするのは勿体無いセフィロスの顔グラがもう1つあって、 これもいいなと思ったんですが。
ちょっと作りかけの回想イベをやってみたのですが、 expやapを0にしたデータのモンスターを倒しても、セフィロスやクラウドの レベルが上がってしまいました:dizzy_face:
あらー、経験値テーブルが適当なデータだったかなー
とりあえず、天野絵部分はオリジナルと同じにしておきましょうか?
今から天野絵描いてくれる人も出なそうだし追加しておいても良いかなと思いました 使ってない素材があるなら活用していくのも良いかなと
どこから持ってきたのか現状以下の経験値テーブルでレベルアップするようになってますね
const int exp_tbl[] =
{
0,
6, // level 2 ??
33,
94,
202,
372,
616,
949,
1384,
1934,
2614,
3588,
4610,
5809,
7200,
8797,
10614,
12665,
14965,
17528,
20368,
24161,
27694,
31555,
35759,
40321,
45255,
50576,
56299,
62438,
69008,
77066,
84643,
92701,
101255,
110320,
119910,
130040,
140725,
151980,
163820,
176259,
189312,
202994,
217320,
232305,
247963,
264309,
281358,
299125,
317625,
336872,
356881,
377667,
399245,
421630,
444836,
468878,
493771,
519530,
546170,
581467,
610297,
640064,
670784,
702471,
735141,
768808,
803488,
839195,
875945,
913752,
952632,
992599,
1033669,
1075856,
1119176,
1163643,
1209273,
1256080,
1304080,
1389359,
1441133,
1494178,
1548509,
1604141,
1661090,
1719371,
1778999,
1839990,
1902360,
1966123,
2031295,
2097892,
2165929,
2235421,
2306384,
2378833,
2452783,
2542783,
2642783,
2752783,
};
回想クラウドの初期レベルが1で初期経験値が12なので経験値0でも上がっちゃうんでしょうね。。 https://github.com/beta1139/ff7fc-develop/blob/master/documents/final_fantasy_vii_party_mech_j.html 上記の経験値テーブルの仕様の通りに実装すれば良いんでしょうが結構複雑ですね まあ、まったく同じにする必要もないかとも思うんですが、ちょっとここら辺は一旦置いておきましょうか
なるほどそういうカラクリでしたか。 ただ原作だと経験値は一切入らなくて、レベルアップもしないんですよね。 確かに完全に一致させる必要はないので、とりあえずクラウドの初期経験値を6未満にするか、 次を13以上にしとけばいいのかな?(セフィロスも同じ感じで) ところで、メニューのステータス画面に移行すると、 セフィロスと回想君だけ次のレベルになっていました。
あと原作セフィロスの初期装備は、 正宗「そせい」「かいふく」「だいち-せんたいか」 「ほのお」 金の腕輪「ぜんたいか-れいき」「ぜんたいか-いかずち」 ※←↑マテリアレベルは全てMASTER タリスマン
回想クラは バスターソード「せんせいこうげき」※マテリアレベルは1 アイアンバングル パワーリスト でした。
併せて装備とマテリアをロックできる命令もあるといいかなと。 ほか、回想クラウドはデフォで後列になってました。 お時間ある時で全然構いませんので。
初期装備設定しました セフィロスと回想クラウドの装備とマテリアを外せないようにしました 回想クラウドの隊形の後列も対応しました
ありがとうございます! デフォで実装して下さったんですね。これは助かる!
ところで経験値テーブルの計算式見てて、 XLv がよく分からなかったんですが、
まず、以下の定義を行う: Chr = 必要な経験値を算出する対象のキャラクター Lvl = 必要な経験値を算出する目標のレベル XLv = [(Lvl - 2) / 10] * 10 + 2 (例:Lvl = 18 の場合 XLv = 12) SLv = Lvl - XLv (例:Lvl = 18 の場合 SLv = 6)
このXLvって、なんで18じゃなくて12になるんですかね? その後の ヴィンセントの例も、Lvl=85、Xlv=82になってて、 いまいちこの第2テーブルがよく分からないんですよね。
初期装備設定しました
回想君の防具が金の腕輪になっていました。
金の腕輪修正しました 計算式は、、複雑ですよね。。 単純に次のレベルまでに必要な経験値のテーブルじゃ駄目なのかと
全然関係ないんですがこれって見られました? https://youtu.be/Bfjsr7dAKoU コメントがたくさん書かれていて面白いです
全然関係ないんですがこれって見られました?
ええ、存じております。 というか、これ見てまたやろうかなぁと思ったのでw
計算式は第一テーブルのみでも可能とのことだったので、 一応やってみたんですよ。 そしたら、第二の例に挙げられていデータとは 若干違っててどういうこっちゃ?て感じで・・・
(例)ヴィンセント:レベル85に必要な経験値 第二 :1,528,402 第一 :1,526,553
(例)クラウド:レベル7に必要な経験値 実際 :616 第一 :619
こんな感じで、微妙に違うので何か間違ってるのかなと。 ただ遠からずって感じではあったので、 一応そのエクセル結果を、documentsフォルダにコミットしておきました。 不要なら消しておいてください。
一応そのエクセル結果を、documentsフォルダにコミットしておきました。
あざますー。各メンバーの経験値テーブル組み込んでおきました 初期レベルって計算式で出してるぽいんですが、もうここも大体の固定値で良いですよね そうするにしても初期パラメータ何にするか問題あるんですが 普通に原作プレイして仲間になったときのパラメーターをメモっておいて初期値とするくらいでも良さげですが
明けましておめでとうございます:cow:お疲れ様でございます。
全メンバー入れてステ確認していたところ、 バレット、エアリス、ケット、シド、ヴィンセが 現在レベルと違う数値になっているようです。 あとバレット入れて戦闘したら、レベルアップのループに嵌りました:astonished:
あとすみません、先日の経験値テーブル、 各キャラの初期値を失念していたので、修正しておきました。 若干変わってる程度ですが。
最新の経験値テーブルに更新しておきました レベル1の時の経験値が0以外だとレベルアップの無限ループになるようだったので0にしときました クラウドは最初の戦闘でレベルアップした方が良さそうなので初期経験値を607に変更しときました フォントのヴの点々が表示されてなかったので修正しました
すみません!ちょっと勘違いしてました:sweat_drops: レベル1になるのに経験値が必要なのはおかしいですね。。忘れてください。。 表は元に戻しておきました。
おおう、修正します
嗚呼・・・行き違いが・・・ほんとすみません:sweat_drops:
パーティの初期レベルに関しては、 クラウドとセフィロス以外1みたいですが、 初加入時にパーティの平均レベル(-3~+3)になるまでの経験値が入るようです。
例えばバレットは、クラウドのレベルが基本7の時に加入するので、 Lv.6(7-1)の経験値385が、バレットの初期値10に加算され、 レベル6の経験値395で加入します。
なので、(パーティの平均レベル-3~+3)の レベルと経験値を抽出して加算する命令があれば、 あとは加入時にスクリプトで実現できそうですが、 この辺はプログラム的に厳しい感じですかね?
パーティの平均レベル(-3~+3)
てのがよく分からない。。 クラウドがLv7のときに何でLv6の経験値が加算されるんですかねLv5やLv7の経験値じゃ駄目なんですかね
厳密に同じ処理にする必要ありますかね。大体の固定値で良いような気もするんですが
普通に原作プレイして仲間になったときのパラメーターをメモっておいて初期値とするくらいでも良さげですが
それも調べないといけないですけど
あと現状レベルアップ時のパラメータ上昇の計算式が適当過ぎるので、そっちもどうかしないと駄目ですね
void PartyMember::lvup(int idx)
{
m_party_status[idx].lv++;
m_party_status[idx].max_hp += 70 + rand(60);
m_party_status[idx].max_mp += 7 + rand( 6);
m_party_status[idx].power += 1 + rand( 3);
m_party_status[idx].speed += 1 + rand( 3);
m_party_status[idx].vit += 1 + rand( 3);
m_party_status[idx].magic += 1 + rand( 3);
m_party_status[idx].mind += 1 + rand( 3);
m_party_status[idx].luck += 1 + rand( 3);
}
パーティの平均レベル(-3~+3)
てのがよく分からない。。
party_mech_j.htmlに記載されていましたが、 各キャラ毎に、すでに仲間になってるパーティの平均レベルから 以下の値を増減するようです。
バ:(平均-1) ティ:(平均-2) エ:(平均-3) レ:(平均+2) ユ:(謎 平均で良い?) ケ(平均) ヴィ:(平均+3) シ:(平均+3)
なのでバレットは、クラウドの7-1=6になるようです。
パラメータの計算はまだ全然把握できていないので、 ちょっと保留で。。 何か分かったらまたご報告します。
なるほど~。party_mech_j.html読まないとなあ
翻訳さんが途中まで訳してくれてたので助かりました。 ま平均レベルに関しては、単純にクラウドを基準にしても良いと思いますし、 あるいはもっとシンプルに、クラウドと同じにしても良いかも知れませんが。
修正しときました
add_party_mem_with_lvup命令追加
以下の経験値を加算してレベルアップさせる
バレット: クラウドのレベル - 1 になるために必要な経験値
ティファ: クラウドのレベル - 2 になるために必要な経験値
エアリス: クラウドのレベル - 3 になるために必要な経験値
レッドXIII: クラウドのレベル + 2 になるために必要な経験値
ユフィ: クラウドのレベル になるために必要な経験値
ケットシー: クラウドのレベル になるために必要な経験値
ヴィンセント:クラウドのレベル + 3 になるために必要な経験値
シド: クラウドのレベル + 3 になるために必要な経験値
クラウドとセフィロス以外の初期レベルを1にしたので、 スクリプトの最初に仲間に入るイベントの add_party_mem 命令を add_party_mem_with_lvup 命令に修正する必要があります
レベルアップ時のパラメータ上昇の計算式は以下のように変更しておきました。適当には変わりないんですけどね
if (m_party_status[idx].lv < 10) {
m_party_status[idx].max_hp += 15 + rand(10); // 200
m_party_status[idx].max_mp += 4 + rand(4); // 60
m_party_status[idx].power += 1 + rand(1); // 15
m_party_status[idx].speed += 1 + rand(1);
m_party_status[idx].vit += 1 + rand(1);
m_party_status[idx].magic += 1 + rand(1);
m_party_status[idx].mind += 1 + rand(1);
m_party_status[idx].luck += 1 + rand(1);
}
else if (m_party_status[idx].lv < 20) {
m_party_status[idx].max_hp += 20 + rand(20); // 300 sum: 500
m_party_status[idx].max_mp += 5 + rand(5); // 75 sum: 135
m_party_status[idx].power += 2 + rand(1); // 25 sum: 40
m_party_status[idx].speed += 2 + rand(1);
m_party_status[idx].vit += 2 + rand(1);
m_party_status[idx].magic += 2 + rand(1);
m_party_status[idx].mind += 2 + rand(1);
m_party_status[idx].luck += 2 + rand(1);
}
else if (m_party_status[idx].lv < 30) {
m_party_status[idx].max_hp += 30 + rand(30); // 450 sum: 950
m_party_status[idx].max_mp += 6 + rand(6); // 90 sum: 225
m_party_status[idx].power += 2 + rand(1); // 25 sum 65
m_party_status[idx].speed += 2 + rand(1);
m_party_status[idx].vit += 2 + rand(1);
m_party_status[idx].magic += 2 + rand(1);
m_party_status[idx].mind += 2 + rand(1);
m_party_status[idx].luck += 2 + rand(1);
}
else if (m_party_status[idx].lv < 40) {
m_party_status[idx].max_hp += 45 + rand(45); // 700 sum: 1650
m_party_status[idx].max_mp += 7 + rand(7); // 100 sum 325
m_party_status[idx].power += 2 + rand(2); // 30 sum: 95
m_party_status[idx].speed += 2 + rand(2);
m_party_status[idx].vit += 2 + rand(2);
m_party_status[idx].magic += 2 + rand(2);
m_party_status[idx].mind += 2 + rand(2);
m_party_status[idx].luck += 2 + rand(2);
}
else if (m_party_status[idx].lv < 60) {
m_party_status[idx].max_hp += 75 + rand(75); // 2100 sum: 3750
m_party_status[idx].max_mp += 8 + rand(8); // 240 sum: 565
m_party_status[idx].power += 2 + rand(2); // 60 sum 155
m_party_status[idx].speed += 2 + rand(2);
m_party_status[idx].vit += 2 + rand(2);
m_party_status[idx].magic += 2 + rand(2);
m_party_status[idx].mind += 2 + rand(2);
m_party_status[idx].luck += 2 + rand(2);
}
else if (m_party_status[idx].lv < 80) {
m_party_status[idx].max_hp += 115 + rand(115); // 3200 sum: 7000
m_party_status[idx].max_mp += 9 + rand(9); // 280 sum: 845
m_party_status[idx].power += 2 + rand(3); // 70 sum 225
m_party_status[idx].speed += 2 + rand(3);
m_party_status[idx].vit += 2 + rand(3);
m_party_status[idx].magic += 2 + rand(3);
m_party_status[idx].mind += 2 + rand(3);
m_party_status[idx].luck += 2 + rand(3);
}
else {
m_party_status[idx].max_hp += 150 + rand(150); // 4400 sum: 9999
m_party_status[idx].max_mp += 10 + rand(10); // 300 sum: 999
m_party_status[idx].power += 2 + rand(3); // 70 sum: 255
m_party_status[idx].speed += 2 + rand(3);
m_party_status[idx].vit += 2 + rand(3);
m_party_status[idx].magic += 2 + rand(3);
m_party_status[idx].mind += 2 + rand(3);
m_party_status[idx].luck += 2 + rand(3);
}
まさかこんなに早く対応していただけるとは! 計算式もお疲れ様でした:smile: とりあえずレッド初加入までのスクリプト修正しておきました。
こっちは意外とイベが多くてまだニブル山にも突入してない現状です:cry: (こんなところに ティファの ちょっと せのびパンツが! は自分で打っててちょっと笑ってしまった)
修正あざますー:pray:
イベント作成の過程で古いファイル漁ってたら、 謎だったユフィの加入レベルに関する資料を見つけました:smile:
どうもクラウドのレベルによって、 6段階変化するようです。 (クラ) (ユフィ) Lv01-20 17 Lv21-25 22 Lv26-30 27 Lv31-35 32 Lv36-40 37 Lv41-99 42
おお!そんな複雑なことになってたんですね そのうち実装しときます イベント作成お疲れさまでした 2chのスレがなくてテストプレイしてくれる人がいないのがつらいですね。。
ですねぇー。 なんか適当な掲示板用意した方が良いんだろか。。
また建ててもすぐ落ちそうですね ゲ制版だったら落ちないとは思うんですが githubに公開チャット機能があったら良かったのになあ
良い感じの掲示板ありますかね?人が来てくれれば良いですが
Readmeをもうちょい開発協力者募集中!みたいな感じにして、 どこかの掲示板か公開チャットのリンクを張っておいたらいいんかな
github以外にもうちょい気軽に書ける場所があった方がいいかもしれませんね。 掲示板はちょっと探しましたが全然分からんです:disappointed_relieved: とりあえず何でもいいのかも知れませんが。
よく分からないんですが、このGitHub Discussionsっての使えないんですかね? https://www.publickey1.jp/blog/20/githubgithub_discussionsgithub_satellite_2020.html https://docs.github.com/ja/free-pro-team@latest/discussions/quickstart
おーこんなのあったんですね。ちょっと見てみます
Discussions作って readme.txt も開発者募集中的な文章を追記しておきました これでしばらく待っていれば感想が書き込まれる、はず。。
おぉーすばらしぃ! ちょっと書き込んでみます。
お久しぶりです。一応ワールドマップを打ってみました。 その際に気付いたんですが、エンカ時にモノクロ処理が走ると、 今回追加したマップチップ(海岸など)と、既存との間で境目が出来ちゃってますね。。 これどうにかできないかなぁと。
あとカームの回想イベで、 セフィロスとクラウド(ソルジャー時代)のデータが 入れられず詰んでるので、idx9以降にも対応していただけると有難いです。 画像は一応あったので、face_menu.bmpに追加しています。 一時的にヴィンセントのデータをセフィロスに置き換える、 みたいな命令でもあれば良さそうですが。