« BXさん、リバース事件 | メイン | 大隣ピヨってます »

2008.04.29

起用条件バグの原因

・・・というわけで、MSCの起用条件バグですが、
80%原因がわかりました。

そもそも、オリジナル選手データを保存する場所と、
起用条件を選手データから抜き出して保存する場所の2ヶ所が、
メモカ内に存在するというスペースの無駄が原因です。
起用条件だけが必要になることは無いですし、
オリジナル選手をチーム登録するために必要なら、
そのときに呼び出す程度で構わない気が私にはするのです。

まぁ、個人的なツッコミはおいといて。

基本は、選手データを上書きするときに起こるようです。
プロスピでは、データを削除したりすると
その場で整理されるようになっていて、
パワプロのように、選手名を1FFFにして削除偽装するのとは違います。
どこかデータを消すとそのたびに自動でソートされます。

が、選手データを上書きしたときだけ処理が異なるようです。
選手データ自体は古いデータに直接上書きされます。
しかし、起用条件部分は一旦古いデータ部分を削除してソートされた後、
後から上書き選手のデータを追加します。
よって、相対アドレスでプログラムを組んでしまうとずれてしまう・・・

回避方法は、起用条件のところにアドレス管理している個所があり、
そこを使えば何とかなるはず・・・ということです。

また、別の方法でもゲーム上から回避する方法があります。
再ソート機能を利用すれば良いわけで、
選手属性が架空選手(PROSPI5)かパワプロ選手(PAWA14)であれば、
選手コピー→プロスピ5→コピー
・・・とすることでデータを再ソートさせることが出来ます。
また、空きに追加してから古いデータを消さなくても、
更新したいデータを選択してそのまま上書きしてもOKです。
人気の非表示問題もこれで解決されます。

しかし・・・唯一の欠点としては覚醒許可フラグが消えてしまう。
まぁ、これは後から書き換えれば済む話です。

残りの20%ですが、頂いたデータの中に
オリジナル選手を実在選手化したデータがあったのですが、
原因不明でなぜか起用条件のアドレス管理部分が本当に実在化していました。
パターンはなんとなく解析できたのですが、
いじるとフリーズ直行の危険性もあり、手を出すのは危険。

まぁそんなところですね。

トラックバック

このページのトラックバックURL:
http://app.synapse-blog.jp/t/trackback/314000/12434236

起用条件バグの原因を参照しているブログ:

コメント

コメントを投稿

最近の写真

  • 20171111_080216
  • 20171111_080011
  • 20171111_075946
  • 20171111_075926
  • Uljm05991_00000