paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

GTAオンラインの極秘貨物の利益率をpythonでグラフ化する 仕込み偏

GTAオンラインが面白くて相変わらずプレイしているのですが、資金を増やす方法の1つに極秘貨物売却というビジネスがあります。

これはゲーム内の違法サイトから貨物を仕入れて違法サイト経由で売却し、利益を得るという仕組みです。
仕入れて売るのは現実と同じで違法サイトはダークウェブみたいな感じですね。

違法の物を売るのはゲーム内の他のビジネスでもありますが、極秘貨物の面白いのが仕入れ数と売却量を自分で決められるというところです。

仕入れ値は

  • 1個 $2000
  • 2個 $8000
  • 3個 $18000

と決まっており、売却額は一定量の単位から選択します。

攻略の定石としては常に3個仕入れで、ある程度溜まったら全箱売却が時間当たりの利益が良いとされていますが、本当にそうなのかpythonを使って可視化してみようと思います。

データ

仕入れた貨物数で都度売却額が変わるのですが、このデータは自分で作らなきゃダメかと思っていたところいいまとめがありました。
流石全世界で遊ばれているだけあってナレッジ量が桁違いです。

www.reddit.com

グラフ化の前提

サイトは売却貨物の全データがありますが、私は寂しいことにソロプレイがほとんどなので小型倉庫分(16箱)だけのデータを使います。

倉庫の大きさは溜めて置ける貨物の量が違って

  • 小型倉庫 16箱
  • 中型倉庫 42箱
  • 大型倉庫 111箱

溜めることができます。

大きい倉庫は仕入れて溜めるのが時間がかかりますが、売却額も増加します。
売る数が増えるほど輸送台数も増えるので邪魔されるリスクも増えます。

人を雇えば輸送台数が多くても捌けますが、私はもっぱら9箱のソロ売りです。
(9箱まで1台で輸送できる)

ちなみに小型倉庫はこんな感じ。

f:id:paloma69:20210401225659p:plain

売却画面。
3個しか溜まってないですが、仕入れ値が$18000だったので3箱売れば$18000の利益が出ます。

f:id:paloma69:20210401225759p:plain

環境

メイン機のWindows10で行います。
グラフ化はおなじみのmatplotlibで。

PS C:\Users\tsuru> $psversiontable

Name                           Value
----                           -----
PSVersion                      5.1.18362.1171
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.18362.1171
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1


PS C:\Users\tsuru> python --version
Python 3.8.3
PS C:\Users\tsuru> pip list | findstr matplotlib
matplotlib      3.4.0

データインポートのテスト

専用ディレクトリ作りました。
データはあらかじめ16個分までコピペしてcsv化してあります。

PS C:\Users\tsuru\tools\cargo-profits> ls


    ディレクトリ: C:\Users\tsuru\tools\cargo-profits


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2021/04/01     19:16              0 profits.py
-a----       2021/03/26     23:32           1401 special cargo profits.csv

コードはこれから書くのでとりあえずpythonプロンプト内でデータ読み込んでみます。
csvはDictReaderで読み込むのが何かと便利です。

PS C:\Users\tsuru\tools\cargo-profits> python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> import matplotlib.pyplot as plt
Matplotlib is building the font cache; this may take a moment.
>>> with open('special cargo profits.csv' , 'r') as f:
...   reader = csv.DictReader(f)
...   data = [x for x in reader]
>>> data[0]
{'Crates': '1', 'Sell': '10000', 'PPC (Price per crate)': '10000', 'Profit @ 2k PC': '8000', 'Profit @ 4k PC': '6000', 'Profit @ 6k PC': '4000', 'Time @ 2k': '5:00', 'Time @ 4k': '7:00', 'Time @ 6k': '8:00', 'PPH @ 2k': '92664', 'PPH @ 4k': '50633', 'PPH @ 6k': '29162'}

OKですね。
キーごとまとめるため本番ではもう一回ループさせます。

今回は、

  • Crates(箱数)
  • Sell(売却額)
  • Profit @ xk(利益)
  • PPH @ xk(1時間当たりの利益)

を1、2、3個の仕入れ数ごとにグラフを出してみようと思います。

ほとんどGTAオンラインの紹介になってしまいましたが、長くなりそうなので次回へ続きます。

後編

GTAオンラインの極秘貨物の利益率をpythonでグラフ化する グラフ化偏 - paloma blog

おまけ

実はGTAオンラインがらみで似たようなことを経験済みです。
前回は資産の推移でしたが、今回は2軸を使っての利益率を出してみます。

paloma69.hatenablog.com