2013/09/29(日)ECO Simデュアルジョブ対応中

ECO Simデュアルジョブ対応中

ECO Simデュアルジョブ対応作業中ですが、まだ未完成です(;^_^A

とりあえず試してみたい人はこちらからどうぞ。
http://jasmin.sakura.ne.jp/eco/script/eco_sim_test/

  • できてる部分は、
    • デュアルジョブスキルリスト表示
    • デュアルジョブの習得スキル選択と取得数表示
  • できてないのは、
    • デュアルジョブスキルのステータスへの反映(マスタリーとか)
    • セーブ機能
  • 情報不足で現在は対応できない
    • デュアルジョブのステータスボーナス
  • ゲーム内と異なる仕様(修正予定無し、要望あれば考えます)
    • 110/50でなくてもデュアルジョブ選択可能
    • 取得スキル数上限10突破可能
    • LV不足で取得できないスキルも選択可能

2013/04/29(月)ECO Sim: Codeの仕様(仮)

ECO Sim: Codeの仕様(仮)

基本情報

Codeは元はバイナリ列のデータでBase64ライク*1な変換規則で文字列に変換したものである。バイナリ列操作や、文字列への変換操作は、util.js内のbitFieldオブジェクトを通じて行う。

以下はデバッグ用のtoBinメソッドの使用例。

javascript:(new bitField("1zP1xgX00")).toBin()
"000000000000111011010000100001000001110011100011000001"
                                                 ~~~~~~
                                                 ここが先頭の1に対応する値

javascript:(new bitField("1zP11hX0Qe00")).toBin()
"000000000000001110110100000000111011010001000001000001110011100011000001"

javascript:(new bitField("1zP1xhX0Qe0J300")).toBin()
"000000000000000011101101000000001110110100000000111011010001100001000001110011100011000001"

イリスカードのCodeについて

javascript:(new bitField("1zP1xgX00")).toBin()
                                      "0 0000 0000000111011010 0001 0000 1 000001110011 100011000001"
                                      [8][7]  [6]              [5]  [4] [3][2]          [1]

javascript:(new bitField("1zP11hX0Qe00")).toBin()
                   "000 0000 0000000111011010 0000000111011010 0010 0000 1 000001110011 100011000001"
                    [8] [7]  [6]              [6]              [5]  [4] [3][2]          [1]

javascript:(new bitField("1zP1xhX0Qe0J300")).toBin()
"00000 0000 0000000111011010 0000000111011010 0000000111011010 0011 0000 1 000001110011 100011000001"
 [8]   [7]  [6]              [6]              [6]              [5]  [4] [3][2]          [1]

イリスカードのCodeを構成するビット列を意味のある単位で分割すると上記の通りになる。各セクションの意味は以下の通り。

  • [1] イリスカードcodeマジックナンバー
  • [2] 現バージョン
  • [3] 有効フラグ
  • [4] 武器イリスカード数
  • (カードがあるならここに必要数カードindex)
  • [5] 服イリスカード数
  • [6] カードindex(必要数繰り返す)
  • [7] 胸アクセイリスカード数
  • (カードがあるならここに必要数カードindex)
  • [8] あまり(0埋め)

ECO Sim中でビット列を組み立てているコードは以下の通り。(codeは、最後に bf.toString() で得られる。)

[storage.js]
var bf = new bitField();
bf.push(target.code.masic_no,12); //イリスカードcodeマジックナンバー
bf.push(current_ver,12); //現バージョン

[iris.js]
if(!enable){
  bf.push(0,1); //無効フラグ
  return;
}else{
  bf.push(1,1); //有効フラグ
}

for(i=0;i<iris.parts_num;i++){
  bf.push(slot[i].length,4); //この部位の装備カード数(bit 3->4 on version 111)
  for(j=0;j<slot[i].length;j++){
    var idx = slot[i][j];
    bf.push(idx,16); //カードindex保存
  }
}

*1 : 変換テーブルがBase64と異なるのは、Base64のこと忘れてて適当に変換テーブルを作ったため

2012/08/25(土)ECO Sim更新(DEF仕様修正とか)

ECO Sim更新

久々に結構な大規模更新に。更新動機は、ほとんど自分で使いたいからだったり(笑)

ECO Sim

  • DEF/M.DEF計算式変更
    • ゲーム上は大きな変更。ECO Simとしては式をちょこっといじるだけ。
  • 回復率計算式変更
    • SP回復率変わってない?
  • 装備品データ更新
    • ついでに更新。
  • イリスカードデータ更新
    • ちょうど新イリスが来ていたので。
  • 無属性に対応
    • まさか属性の数が増えるとは思わなかったです。
  • 三次職の追加スキルポイントに対応
    • まだ対応していなかったのでついでに対応することに。しかし、一次職、エキスパート、テクニカルの3種類しかないことを前提にセーブデータを可変長符号で格納したりしていたので思ったより修正に手間取ることに…。そして、懲りずに4種類対応の可変長符号を組みました(別にビット単位でけちけちする必要ないんですけどね^^;)。

…なんかおまけの方に手間がかかっているような気も。

イリスカード一覧

  • 無属性に対応
    • ECO Simと共通データなので必然的にこっちも対応することに。
  • バージョン(第?段とか)表記を追加
    • 記載されてたほうが便利そうだったので。

2011/07/10(日)ECO Sim やることリスト

ECO Sim やることリスト

  • (完了) イレイザースキル「悪鬼」最大レベル修正5→3
  • (完了) 一部マスタリースキルが反映されていなかった問題を修正 ←6/26報告
  • (完了) アストラリストHP係数修正
  • (完了) 基準ステータス表示機能
  • 取得スキル数表示 ←6/15追加
  • イリスカードデータ/装備データ更新

モンスターデータベース

  • やっぱり画像を表示(投稿機能含む)できた方がいいかなあ。
    • その場合、画面内に入ったとき初めてロードする機能はつけたい(負荷対策、閲覧者側としても延々とロードが続くのは嬉しくない)。
    • デフォルトは非表示?(個人的にはデータだけ見たいことの方が多い)
  • 生息地や種族別のリンクをたどると、減衰計算用のプレイヤーLVが未設定に戻るのは不便かも?
    • とはいえ、全リンクにプレイヤーLV情報付与するのもちょっと面倒。
    • 検索条件とは性質が違うと考えて、URLには反映しない方針にする?
  • ドロップ検索はデフォルト部分一致の方が使いやすいかも?

2011/06/13(月)ECO Sim やることリスト

ECO Sim やることリスト

  • イレイザースキル「悪鬼」最大レベル修正5→3
  • イリスカードデータ更新
  • 取得スキル数表示←6/15追加
  • 基準ステータス表示機能

下に行くほど高難易度(とはいえ一番下でもそれほどではない)

やらなくてよくなったことリスト

  • ドミニオン界LV対応

そのうちできればと思っていたのですが、やる前に次元転生が無くなりそうです。


おまけ: localStorageについて

ECO Simのデータ保存に使っているlocalStorageの保存単位はオリジンごとであり、オリジンが同じであれば共通のストレージを使うことになります。オリジンというのは、

  • http://jasmin.sakura.ne.jp/
  • http://www.geocities.jp/

など。

これで何が問題かというとhttp://www.geocities.jp/jasmin_clover/http://www.geocities.jp/???/も、オリジンは同じなので、共通のストレージになってしまうこと。

お互いに参照・編集できてしまったり、そうでなくてもオリジンごとに用意された容量(大抵5MB)を食い合うことになります。

実用上問題になることはまず無い*1と思われますが、geocitiesの方は非推奨にするべきでしょうか……。

*1 : 運悪くキー名が衝突、容量オーバー、データ全削除が他サイトにも影響、などが想定される問題でしょうか。