読者です 読者をやめる 読者になる 読者になる

EVE Onlineのデータベースについての雑感

Python 開発

長くなったので、結果だけ見たい人用に記事の最初にアウトプットを置いておく。

Evepedia

f:id:omochin4eve:20170311144005j:plain

DBの中身を適当に言語別に並べてみた。次はスクリプトの動かし方を簡単に説明。

 

github.com

ソースコードを落としてきて適当な場所で解凍。Python 3.x系。

Resources - EVE: Developers ここからSDEを落としてきて解凍、fsdの方のフォルダをソースコードの位置に移す。コマンドプロンプトを開いて

python Evepedia.py --import

これで同じフォルダにeveonline.sqliteというファイルが出来てたら成功。

python Evepedia.py

今度は--import無しで実行、docsというフォルダにhtmlファイルが大量に出来てたら成功。これが上記のサイトになる。何か足りないとかエラーが出たら"python pip"とかでググってライブラリを入れてください。後は焼くなり煮るなり勝手にどうぞ。

以下はチラシの裏。何をやってるか興味がある人は読んでどうぞ。

 

 

前回に引き続きEVE Onlineのデータベースについて調べてみたので、今の段階での理解を整理する意味でもメモがてらに書いてみる。

 

Resources - EVE: Developers

EVE Onlineのデータベースは公式が配布している。bsdという形式とfsdという形式がある。bsdというのは昔から使われていた方だと思う。fsdはbsdを綺麗に今風にまとめた感じという理解。以下はbsdについての話。

 

Index of /dump

昔はMicosoft SQL Serverに直接読み込める形のdumpファイルを公開してたらしいが、今は公式からはYAMLファイルだけなので有志によってdumpファイルが公開されている。Steveというカプセラがやってるらしい。

DBとか分からないという人は最新の"*.sqlite.bz2"を落とす。DB Browser for SQLite ←こういう適当なDBブラウザを使うと中身が見れる。

 

forums.eveonline.com

上記のサイトが閉鎖したらどうするの?という時にはDesmontの出番。ソースコードを公開しているのでこちらを使おう。まぁSteveのfuzzworkは2013年以前からある由緒正しいサイトなので潰れないはず(フラグ)

 

blog.caladrius.info

 

bsdについては4年前のカラドリの人の記事を見るとよいかも。SQL Server 2014は色々のバージョンがあるので、よく分からなかったらJPN\x86\SQLEXPRADV_x86_JPN.exeってのをダウンロードすれば間違いないはず。bsdについての話題はこんぐらい。

 

 

それでは今までのことは全部忘れましょう!bsdは使いません!

 

この糞bsdは糞過ぎて頭がおかしくなるのでfsdの方を使いましょう。少しデータが足りないかもしれませんが、とてもすっきりして美しいです。寿命も縮まりません。

まずはfsdのDB構成について。テーブルは大まかに3つに分かれている。

 

categoryIDs

カテゴリ一覧が入っている。データベースの大元。例えばid=6はShip、つまり船のデータは全てcategory idが6になる。

 

groupIDs

グループ一覧が入っている。カテゴリーをさらに細分化したもの。id=25はFrigate、つまり全てのフリゲートはcategory idが6でgroup idは25になる。

 

typeIDs

タイプ一覧が入っている。グループをさらにさらに細分化したもの。id=593はTristan、つまりトリスタンはカテゴリーがShip、グループはFrigateのType IDが593のデータということになる。

 

基本的にこの3つで大体のデータは取れる。typeIDsの中には別のIDもあるので、そちらも少し説明。

 

raceID

種族のID. 使うのは大体1(Caldari), 2(Minmatar), 4(Amarr), 8(Gallente)

 

factionID

勢力のID. 海賊勢力とか色々あるので割と沢山ある。どのIDが何なのかは自分で調べてください(まだ全部は僕も調べてません) 

 

今のところこんな感じです。