合成原価計算&全サーバー価格比較シート
- 指定したアイテムの合成レシピ、競売価格、競売履歴を取得して原価を計算します。
- 指定したアイテムの全サーバーの競売価格を取得し、比較します。サーバー間の価格裁定(貿易)にご利用ください。
- Google Spreadsheet(gsheet)とAppScriptで作成。
- ブラウザ上で動作します。
- ご自身のGoogle Driveに"ファイル" → "コピーを作成"して使ってください。(Googleアカウントが必要)
使い方
- 背景青のセルが入力可能。
- 合成レシピシート:
- A2が#N/Aなら、選択してデータシートへのアクセスを許可してください。
- B1にアイテム名を入力すると、レシピやA1で選択したサーバーでの完成品価格、原価が表示されます。
- H1で表示される価格の種類を変更できます。
- LATEST:FFXIAHが取得済みの価格最新1件を参照します。誤落札に弱い。
- AVERAGE:同20件の平均値を参照します。
- MEDIAN:同20件の中央値を参照します。
- 価格比較シート:
- 列Aにアイテム名を入力すると、全サーバーでの価格を表示します。(単位:万)
- 列BがFALSEの時は単品、TRUEの時はスタックの履歴を参照します。
- C1で選択したサーバーの価格よりB1%以上価格が高いサーバーは背景が赤に、安いサーバーは背景が緑に変化します。
- 価格表示はサーバー負荷の都合上、全てMEDIANです。取引の少ないアイテムは実勢価格とのずれが生じやすく、必ず実際の履歴を確認してください。 (03/04:価格から直接確認できるように変更しました)
- アイテムやレシピは自動で最新のものに更新されます。
利用条件・免責
- 閲覧・転載・利用は自由ですが、改変した場合も含め条件1を引き継ぐものとします。
- データの正確性はその性質上、保証しません。また利用によって発生したいかなる損害についても、当方はその責を負わないものとします。
- 不具合があればTwitterで報告していただけると助かります。
データ取得元
技術情報
- WindowerのResources群は、Excelやgsheetで今回のようなシートを作る時に役立ちます。(テキストファイル。このご時世使えるものは使っていきたい!)
- items.lua内のflagsは16bit長のビットフラグ。各1bitで以下のように対応していて、今回は"競売不可"フラグがfalseのアイテムのみをインポートする処理を行っています。
bit | flag |
---|---|
16 | Rare |
15 | Ex |
14 | 宅配不可 |
13 | 店売り不可 |
12 | 装備可 |
11 | NPCトレード可 |
10 | 使用可 |
9 | リンクシェル |
8 | 魔法スクロール |
7 | 競売不可 |
6 | 銘入れ可 |
5 | 同アカウント宅配可 |
4 | モグガーデンで使用可 |
3 | "ゴブ箱"抽選対象(#ANVは含まれません) |
2 | GM装備(今はGMが出現することもないし、ここ有効活用しません?) |
1 |
- 例:ノーヴィオピアス
- flags=47172(10進数) → 1011100001000100(2進数)
- 右端の最下位ビットから3,7,12,13,14,16bit目が1(true)なので…
- "ゴブ箱"抽選対象,競売不可,装備可,店売り不可,宅配不可,Rare属性
- AppScriptを使わずシート上で変換したい場合は…(B1, A列にflags)
=DEC2BIN(INT(A1/2^8),8)&DEC2BIN(MOD(A1,2^8),8)
- ARRAYFORMULA関数を使えばオートフィルなしにA列全体を変換できます。
=ARRAYFORMULA(DEC2BIN(INT(A:A/2^8),8)&DEC2BIN(MOD(A:A,2^8),8))
- 以下のように16セルに分割するとデータとして使いやすい。(C1)
=ARRAYFORMULA(MID(B:B,{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},1)*1)
- 装備ジョブ(jobs)も同様に24bit長で管理されています。もっと簡潔に書きたい…
=JOIN("",ARRAYFORMULA(IF(MID(DEC2BIN(INT(MOD(A1,2^24)/2^16),8)&DEC2BIN(INT(MOD(A1,2^16)/2^8),8)&DEC2BIN(MOD(A1,2^8),8),{23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1},1)*1,{"戦","モ","白","黒","赤","シ","ナ","暗","獣","吟","狩","侍","忍","竜","召","青","コ","か","踊","学","風","剣"},"")))
- 例:戦ナ暗
- jobs=386(10進数) → 000000000000000110000010(2進数)
- 0剣風...吟獣暗ナシ赤黒白モ戦0
- 最上位ビットがまだ空いているように見えますが、残念ながら既にモンストロス・プレッジで使用しているようです。新ジョブの夢がーー!