????ウルトラお得情報

もうdota2追ってないのでそろそろブログタイトル変えるべきかもしれません

めざせdotabuffもどき

日刊ほぼ自分用メモ
結局dotabuff最強やんっていうはなし

いろいろ自動化したい!

こうずっとずっとBAN/PICKの数を1st 2nd 3rdごとに取りたいでもdotabuffにないとか考えてて一時期ほぼ手動でやってたけどゲロ作業だったのでどうにか自動化できんかなって考えてました.
がんばって三割程度自動化できる目処がたったのでメモとっとこうっていう状態

リプレイからマッチングの情報を抜き出そう

Gitとかに賢い人らが作ったのがあります

何種類化あったけど一番最初に見つけたとかいう理由でこれ使いました
GoogleGoで記述されてるからなんか気合で環境いれたりしてどうにかする

あるものビルドして使おう

Go触れる人は自分で自由自在に作りましょ

  • ~yasha/example/***/***.go

やさしい作者が例として用意してくれてます.ビルドして引数にリプレイファイル指定して実行したらなんかでてくるでてくる
リプレイは steamapps/common/dota2beta/data/replays とかそこらへん

  • chat
    • チャットのログでてくる
  • combatlog
    • 何分何秒にだれがどいつをいくら回復させたかみたいなデータ
  • entity
    • ヒーローの座標とかが全部でてくる
  • fileinfo
    • チームやら大会やらban/pickとヒーロidあたり
    • こいつを流用する

こんなん
f:id:azukizuke:20150602003015j:plain

ぬきだせ

形が汚いです
ban ban ban ban pick pick pick pick ban ban ban ban pick pick pick pick pick ban ban pick pick
こんなかんじで中括弧にくくられてるから上手いことヒーローidだカンマとかでつないだらcsvにできていいですね
とりあえずてきとうに

if [ -e ${TARGET_REPLAY} ]; then
echo "replay parse"
${YASHA_PATH}/${YASHA_EXE} ${TARGET_REPLAY} > ${OUTPUT_ORIGINAL}

#awk original output file
echo "awk output"
cat ${OUTPUT_ORIGINAL} | grep "hero_id" | sed -e "s/^.*: //g" | tr '\n' '\t' | sed -e "s/ $/@/g" | tr '@' '\n' > ${OUTPUT_BANPICK}
else
echo "ERROR : no replay file ${TARGET_REPLAY}"
exit

fi

くっつける

フォルダ内のリプレイファイルを全部parseするスクリプトでひっかきまわして連結したらなんかできます

がんばる

エクセルなりsqlなりgoogleのなんかなんでもいいからがんばる
ヒーローidごとにカウントしたりする
とりあえず
f:id:azukizuke:20150602003655j:plain
割りとゴミいのでうまいことしたいです

結局手動でやる部分がいっぱい残ってる

  • 結局大会のリプレイをポチポチおとして一箇所にまとめるひつようがある
    • おええええ
  • 無駄なことしてる感じがすごい
    • ちゃんとしたDBにしてちゃんとしたら自分で使いたいようにできるかも

NOW ちんちん