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

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"とかでググってライブラリを入れてください。後は焼くなり煮るなり勝手にどうぞ。

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

 

続きを読む

公式のType IDsをCSV形式にする方法

開発 Python

EVE Onlineでは全てのモノに固有のIDが割り振られている。例えば”Omochin”というキャラのCharacter IDは"96790690"である。これは誰からでも参照することができ、かつ変更することは不可能である。

もしバイオマス処理をして削除をし、新たに同じ名前のキャラクターを作った場合は別のCharacter IDが割り振られる。

IDの基本的な話はこのぐらいにして、今回はType IDの話である。

例えば"アンチマター弾S"というアイテムに対して処理を行う場合、内部では”Antimatter Charge S”や、まして"アンチマター弾S"として認識しているわけではない。コンピューターにとって、このアイテムはType IDの"222"なのだ。

 

「んで、これを知らないと何か困るの?」

 

と疑問もあるかもしれない。大体の場合は「知らなくても特に困らない」

ただ、IDから情報をひっぱってくるサービスやツール等もあるので、こういう風になっているんだな~ぐらいは知っておくといいかもしれない。

APIから参照できるデータは全てIDのみであるが、ツール側がゲーム内の用語に変換してくれているのでユーザーが直接IDを目にすることはあまりない。

Resources - EVE: Developers

このType IDのデータというのは公式が用意してくれている。リンク先の"sde-xxxxxxxx-TRANQUILITY.zip"からダウンロード可能だ。xxxxxxxxxの部分はデータがアップデートされた日時が表示されている。

ダウンロードしたデータを解凍し"sde > fsd > typeIDs.yaml"というファイルにType IDの一覧が列挙されている。メモ帳などのテキストエディタで開くと中身がみれる。

しかし、このファイルは62MBもあり行数にいたっては110万行もある。しかもYAML形式なんぞ一般ユーザーには馴染みがない(エンジニアはよく使いますが)

そこで、みんな大好きなExcelGoogleスプレッドシートで開けるように変換スクリプトを書いてみた。

https://developers.eveonline.com/resource/resource ...

ダウンロードしてきたtypeIDs.yamlを同じフォルダに置いて実行。英語や日本語以外でも出力したい場合はconfig.yamlのlocales下の言語コードの先頭の#を消す。

 

f:id:omochin4eve:20170227194548j:plain

TypeIDs.csv - Google スプレッドシート

 

 こんな感じになる。↑のスプレッドシートはご自由にお使いください。

 

引数に2つの解像度を指定して切り替えるC++コード

開発 C++

DELL 3008WFPというWQXGA(2560×1600)のモニターを買ったところ、これは比率が16:9ではなかった。

別に使う分には支障はないので気にしてはなかったけど、NVIDEA GeForce ExperienceのShareという録画ツールを解像度の比率が違う複数のモニターで使った場合、録画される動画の比率がランダムでどれかのモニターのになって困る。

色々考えた結果、ワンクリックで解像度を切り替えるようにするがいいという結論になったので早速ツールを探してたけど、全部お手軽感が足りなかったので自作した。

引数に2つの解像度を指定して切り替えるC++コード

使い方はショートカットを作って引数にモニターの番号、1つ目のサイズ、2つ目のサイズを指定する。

DPISwitcher.exe 0 2560 1600 2560 1440

 この例なら起動するたびに「番号0のモニターの解像度を2560x1600と2560x1440で交互に切り替える」ことが出来る。

ショートカットに引数を指定する方法は適当にググってください。

PvPをやるなら114514回見ろと言われた動画

EVEOnline

 

 

Twitterでオススメされた動画。分からないなりにレビューをしてみる。

Proteus - UniWiki というGallenteのT3 Cruiser(Strategic Cruiser)を使っている。気軽にSolo PvPをする船として Atron - UniWiki もオススメされたことがあるので、やはりSolo PvPではGallenteが最強なのでは?という顔になる。

 

最初に総評

  • とにかく瞬殺する!
  • Atronは餌!
  • Griffinウサすぎる!

 

Fit 

zkillboard.com

 

何故こんなに強いのか?

 

気になった点

  • ウェビを積んでない
  • スクラムとディスラプの両方積んでる
  • 場合によっては2 Prop
  • リペアを積んでいない
  • 殆どの戦闘でEWarを喰らってない
  • 比較的遠くの距離(50km程度)でAligningかKeep At Rangeが基本の立ち回り

以上の点から、こちらはダメージを喰らわない事を前提としたカイト戦を想定したFitなのでは?と思った。

 

 VS Federation Navy Comet(0:15)

Keeping At Range 50km, ディスラプ。特に何もされずにFederation Navy Cometを瞬殺。

 

VS Atron * 2, Slasher, Incursus, Executioner(0:26)

MWDで距離を詰めてQuafe ZERO(速度+5% スキャン分解能+5%)を使用。Atron * 2, Slasher, Incursus, Executionerをディスラプをかけた後に瞬殺。たまにディスラプとMWDをオーバーロード。 MWDをいい感じの位置で止めた後のAligningが凄い。角速度とか考える必要なんてなかったんや!

 

VS Rupture, Vexor(1:22)

Armorが9割、Hullが4割ほど減った状態でスタート。お決まりのようにKeeping At Range 50kmでディスラプ後にRuptureを瞬殺。Vexorは瞬殺とはいかないとみたのか、Caldari Navy Antimatter Charge Mにした後にAligning. 倒した直後にECMがかかる。倒した後でよかった。

 

VS Rapier, Panther(2:00)

MWDをオーバーロードして今回は最初からCaldari Navy Antimatter Charge M.  Keep At Range 50km とディスラプ. Rapierがタックルしてきてウェビとディスラプを喰らう。こちらはスクラムもかける。 真ん中に並んでるモジュール以外はオーバーロード。シールドを抜くのに時間がかかったけど、そこからは瞬殺。

MWDでPantherにKepp At Range 50km. ディスラプの後に攻撃。途中でECMドローンが出てきたのでそちらを先に殺す。ECMドローンを一つ残してKeep At Range 30km, Javelin Mに変更して攻撃。何かいい感じじゃなかったらしくKeep At Range 50km, Caldari Navy Antimatter Charge Mに戻す。一つ残してたECMドローンにジャムられて逃げられる。

 

VS Atron, Ares(3:30)

お決まりのパターンで倒す。

 

VS Thrasher, Vigil, Atron * 2, Stabber(4:20)

今回は2 Prop. ABは使わずにお決まりのパターンで瞬殺。Stabberを相手にしてる時にジャムられて逃がす。動画が途切れてるから追いかけっこでもしたんだろうか?普通に倒す。

 

VS Atron, Griffin(5:33)

開幕にECMを喰らう(1回目)。ECMがきれたら一番上の列のモジュールをオーバーロード。傷んでるモジュールをリペア。またECMを喰らう(2回目)Quafe ZEROを使用。ECM, ディスラプ, ダンプナーを喰らう。この動画で初めてのデバフまみれ。何故かディスラプなのにABを使う。途中でMWDに切り替え。

またECMを喰らう(3回目)。喰らってる間も細目に月とかにAligningして距離の調節。デバフまみれの中ABを使用。あと少しのところでまたECMを喰らう(4回目)

ここら辺MWDとABを細目に切り替えてる。ECMが切れた瞬間にECMを喰らう(5回目)。さらにトラッキングも喰らう。この動画初めてのかなりの苦戦(主にECMのせいで)。シールドも残り3割。

7:15. ようやくAtronを撃破。Griffinも倒そうと思ったらECMを喰らう(6回目)。ストレスがやばそう。ECMが切れ次第Griffinを倒す。

 

VS Griffin(7:38)

Wreck of Test(何かよく分からない、多分なにかの構造物)を最初に破壊。Griffinを倒したと同時にECMを喰らう。

 

VS Griffin(8:00)

Griffinばっかじゃねーか!,ThrasherとStabber Fleet Issueもいたけど見逃す。瞬殺できないとみたんだろうか?

 

反省点

  • 次はもっとオーバービューを見たい。
  • 細目にオブジェクト(月とか)にAligningしてるので、もっと空間を意識したい
  • オーバーロードのOn/Offを意識したい。
  • そのモジュールを使う理由を考察したい

 

コメントをもらった