주제가 뭐라고요?


크게 2파트가 될거같은데

1. 가이진 서버에서 직접 파일 다운받는거

2. 다운받은 파일을 언패킹 하는거


1번이던 2번이던 일단 도구를 먼저 받아보자

i) 토렌트 다운로더 : 유토랭이던 transmission이던 뭐던지 상관없음

ii) wt-tools (kotiq)

일단 마이닝 하는사람들이라면 다들 아는 wt-tools

https://github.com/kotiq/wt-tools


klensy의 wt-tools( https://github.com/klensy/wt-tools )가 원본이긴한데 업뎃 포기한듯(3년+)

kotiq건 됨. 업뎃 안한지는 1년즘 된거같은데 작동은 하니까 괜찮음


1) 옆에 Releases 가서 exe 받거나 

2) git clone 으로 원본파일 받아서 알아서 하는건 맘대로


둘다 설명하긴 할건데 자동화 하려면 2번을 참고하는게 나을덧


----------

1. 가이진 서버에서 직접 파일 다운받는거


1-1) exe로 받았다면 cmd 키고 

./update_checker.exe  download dev

이였나? 맞을텐데 이건 좀있다 테스트해보고 틀리면 수정함

+ 방금 테스트해보니 됨 ㅇㅇ


버전정보 알고싶으면

./update_checker.exe check

하면 다른 서버들(라이브/데브/프로덕션 등) 정보 알수있음

근데 앵간하면 데브가 가장 최신버전이더라잉


이러면 데브섭 토렌트파일 받아올텐데 토랭이 아무거나로 다운받으면됨

용량 좀 크니까 사실상 마이닝 핵심파일인 aces.vromfs.bin만 받으면 되긴함


다받으면 그게 (데브섭)런처에서 받는 풀 패키지임


1-2) 직접 짜는거라면 리눅스 +bash + transmission 기준이긴한데

이 파트에서 wt-tools는 "필요없음"


일단 토랭이인 transmission이 켜져 있나 먼저 확인

if [[ $(systemctl is-active transmission) != "active" ]]; then
  exit
fi

그러니까 토랭이부터 키고 오십쇼


자 그럼 본격적으로 시작


데브섭이 몇버전인지 알고싶으면

curl -s "https://yupmaster.gaijinent.com/yuitem/get_version.php?proj=warthunder&tag=dev"

로 데브서버 버전정보 받아올수있음. tag만 바꾸면 다른섭(라이브/중국 등)도 가능



curl -s "https://yupmaster.gaijinent.com/yuitem/get_version_yup.php?proj=warthunder&tag=dev"

``` 해시값

토렌트1파일 주소

토렌트2파일 주소

토렌트3파일 주소 ```

를 목록에서 따와서 토렌트주소 아무거나 가져오셈

보통 2번째 줄이니까

curl -s "https://yupmaster.gaijinent.com/yuitem/get_version_yup.php?proj=warthunder&tag=dev" | awk 'NR==2'


이러면 최신 데브섭 파일에 대한 링크를 따올수있을거임


이 주소를 transmission 토랭이와 함께하면


## 위 데브섭 링크 = DOWNURL

## 다른 토랭이 안써써 -t all로 한거지 다른거 쓰면 알아서 짜도록

# 토랭이에 등록하되 정지상태로

transmission-remote -a ${DOWNURL} --start-paused

# 일단 다운받고자 하는 목록 비워두기
transmission-remote -t all -G all

# 1번파일(-g 0)만 받기 : aces.vromfs_bin
transmission-remote -t all -g 0

# 토랭이 다운 시작
transmission-remote -t all -s

# 추가 Peer 요청

transmission-remote -t all --reannounce

# 현재 다운로드 상황 보기. STATUS는 10% 22% 55% 100% 등 %로 나타남

STATUS = $(transmission-remote -l | sed -n '2 p' | awk '{print $2}')

## While문으로 적당하게 돌리기 + 100% 되고도 10초정도 뜸들이기

## 다운받은 파일(aces)을 cp로 다른폴더에 적당히 복사하기

# 등록된 토랭이 및 다운받은 파일 삭제

transmission-remote -t all -rad


이러면 다운받은 파일(aces.vromfs.bin)이 원하는 폴더에 있을거임




2. 다운받은 파일(vromfs)을 언패킹 하는거


2-1) vromfs_unpacker.exe 에 다운받은 vromfs를 드래그하거나 cmd창 켜서 

vromfs_unpacker.exe 다운받은_파일 


그러면 폴더가 생길거임


blk_unpack_ng_mp.exe --format json 생긴폴더_이름


이러면 우리가 아는 데이타마이닝 ( https://github.com/gszabi99/War-Thunder-Datamine ) 와 동일한 내용을 볼수있음


물론 폴더안에 잡 bin파일들이 있는데 삭제해도 무방함

format은 strict_blk, json, json_2, json_3가 있는데 그냥 언패킹을 어떤 양식으로 보여주냐 차이라 아무거나 상관없을?덧?


난 strict_blk 쓰는게 이거 쓰면 바로 커스텀 미션에 적용할수 있어서리


2-2) 이제 본격적으로 wt-tools를 사용하는데 python requirements 알아서 설치하세잉

내 기억에는 construct 버전이 2.9.44여야지 제대로 돌아갈거임

이거때문에 venv로 python / pip 버전 고정시켜놨을거임


필요한 파일은

- common. py

- blk_unpack_ng_mp.py 

- vromfs_parser.py

- vromfs_unpacker.py

이정도였나?


blk_unpack_ng나 blk_unpack_ng_mp 둘다 있는데 mp가 멀티코어 버전인데 추가로 필요한 패키지 설치하기가 좀 귀찮았던걸로 기억함


아무튼 준비물은 끝났으니 어디보자


# venv 활성화

source bin/activate

# vromfs 언패킹
python vromfs_unpacker.py 언패킹할_파일(=aces.vromfs.bin)

# 언패킹 된 폴더를 해석
python unpacker/blk_unpack_ng_mp.py --format strict_blk 해석할_폴더(=aces.vromfs_bin_u)

# venv 비활성화
deactivate


이러면 위의 2-1)와 마찬가지로 우리가 아는 데이터마이닝 ( https://github.com/gszabi99/War-Thunder-Datamine ) 와 동일한 내용을 볼수있음


format은 2-1)에 적었듯이 알아서 적당히 골라잡도록


아무튼 이렇게 스크립트로 짜던 뭐로 짜던 이렇게 루틴 한번 쭉 돌아주면 자동화가 될거임


노트북 밧데리 거의 바닥난고로 여기서 끝