Javardry Ver.1.045、JavardryHTML5版 Ver.0.164 更新
[Javardry, JavardryHTML5版] 特性値が追加されたシナリオデータにて過去のセーブデータ(プレイデータ)を読み込んだ際に、各PCの追加分の特性値の値を種族初期値にするように修正
ちょっと何言ってるのかわかりませんね。えーと、特性値が「技量」「体力」の二個だけのシナリオでPC「ああああ」を作成してセーブしたデータを、特性値が「技量」「体力」「運」の三個になっているシナリオで読み込んだときに、PC「ああああ」の特性値「運」の値は一体いくつになるのか、という話です。
Javardryではセーブ時に、シナリオ上未設定の分の特性値の値も保存されてます。意味のない無駄な保存なんですけども、初期設計時に特性値が増えることをまったく想定しておらず、十数年経ってからの修正時にも、面倒臭いから……いえ、互換性を保つために、今もその仕様になってます。その保存時の、未設定分特性値の初期値はJava版では8、HTML5版では1にしてありましたので、他の要因が重ならない限りは、上の例で言うと特性値「運」の値は8か1になっていました。
これも想定外だったのですが、ある程度出来上がって公開しているシナリオを改修し、後から特性値を追加するといった作り方をされる場合があります。その場合、未設定分特性値の初期値が8とか1とかのテキトーな値では困る事もあるでしょう。現レベルまでの増減処理まで考えると大変なので、せめて種族初期値にしたらどうなんだい! ということで、Java版、HTML5版共に、未設定分の特性値を値を種族初期値にするように修正しました。
ただし、先に述べたように、今まで未設定分特性値は8とかの数値で保存していたので、新規読み込み時に未設定分かどうかの区別が付きません。そのため、未設定分特性値の保存値を-1に変更してます。読み込み時に特性値の値が-1だった場合には、未設定分特性値と判断して、種族初期値に置き換えをしています。
グダグダと書いてきましたが、未設定分特性値の判別方法として値を-1にしている関係上、過去のバージョンで保存したセーブデータに関しては、今バージョンで読み込んだとしても、種族初期値に置き換えることは出来ません。面倒ではありますが、過去のバージョンのセーブデータに適用させるには、今バージョンで、特性値を増やす前のシナリオデータで一度保存をし直してもらい、その後、特性値を増やしたシナリオデータで読み込む必要があります。
他にも、多分大丈夫なんじゃないかなーと思わなくもないんですが、未設定分特性値を-1にしている(PC作成時、最初に一旦全特性値を-1にしている)部分で、何かバグったら嫌だなーなんて思ったりしてます。もしそのあたりで何か不具合が発生する場合にはお知らせ頂ければ、(正直見ないふりをしたいところではありますが)多分対応しますので、よろしくお願い致します。
コメント一覧
コメント投稿