이번엔 클래스 컨픽에 대해서 다뤄보자
클래스 컨픽이란?
짐작할 수 있듯이 인게임에서 클래스를 바꿀 때 각 클래스마다 개별로 실행되는 컨픽이다
서버에 접속 후 클래스를 선택하거나, 플레이 중 다른 클래스로 바꾸거나 하는 등
클래스가 선택되는 순간 적용되는 컨픽을 말한다
클래스 컨픽을 만들지 않은 상태에서 콘솔을 켜놓고 잘 보면
클래스를 바꿀 때 마다 이런 메세지가 출력되는걸 볼 수 있다
따옴표 안에 있는 각 이름들은 클래스 컨픽에 사용되는 cfg파일의 파일명으로
tf\cfg 폴더 안에 위 이름과 같은 cfg 파일을 만들어 저장하면
클래스를 변경할 때 마다 각 클래스에 할당된 컨픽이 실행된다
저번 글에서도 말했지만 밸브는 클래스 컨픽을 하나하나 만들어주는 친절을 베풀지 않는다
각 이름의 컨픽을 직접 만들어서 넣어주자
라고 하기엔 좀 많기 때문에 글 하단부에 깃허브 링크를 올려둘테니 그걸로 써도 된다
아무튼 예를 들어, 스카웃을 할 땐 간소화 뷰모델을 끄고
솔저를 할 땐 간소화 뷰모델을 켜고 싶다면
위와 같이 적어놓으면 된다
스카웃을 픽하면 간소화가 꺼지고
솔저를 픽하면 간소화가 켜진다
이 밖에도 감도, 뷰모델 켬/끔 등등 내가 원하는 기능을 자유롭게 넣어서 쓸 수 있다
한 가지 유의해야 할 점은 각 클래스 컨픽이 실행되는 방식은 단순히 읽어오기라는 점이다
앞선 예시에서 지금 파이로 컨픽에는 아무 명령어도 넣지 않은 상태인데
이 상태라면 아래와 같은 일이 발생한다
스카웃을 픽한 뒤 파이로를 고르면 간소화가 꺼진 상태로 파이로가,
솔저를 픽한 뒤 파이로를 고르면 간소화가 켜진 상태로 파이로가 픽된다
스카웃과 솔저에는 간소화를 바꾸는 명령어를 넣었지만 파이로에는 넣지 않았기 때문에
파이로를 픽할 땐 간소화 상태가 바뀌지 않는다
따라서 이를 해결하기 위해선
모든 클래스에서 간소화 명령어를 실행해 줄 필요가 있다
각 클래스 컨픽에 간소화 명령어를 쭉 적어주면 될 거 같다
그런데 만약 클래스 컨픽이 한두개가 아니라면?
컨픽 정리가 귀찮은 사람들은 진짜로 각 클래스에 간소화 명령어를 일일이 적어둔다
근데 이 시리즈는 컨픽을 깔끔하게 쓰는걸 목표로 하기 때문에
이를 위해서 초기값을 설정해주는 디폴트 컨픽을 만들어줄거다
디폴트 컨픽
예를 들어
기본감도가 2.0이고 간소화 뷰모델을 안쓰며 뷰모델을 켠 상태로 게임을 하지만
솔저를 할 땐 간소화 뷰모델을 켜고
스나이퍼를 할 땐 뷰모델을 끄고 감도를 1.0으로 낮춘다고 해보자
그러면 각 클래스 컨픽마다 감도, 간소화, 뷰모델의 세 명령어가 모두 들어가야 할 것이다
그걸 다른 7개 클래스에 모두 적는건 깔끔하지 않기 때문에
디폴트 컨픽을 하나 만들어보자
디폴트로 잡을 컨픽의 이름은 아무거나 상관없다
맵 이름, 클래스 컨픽 이름, config, autoexec 그 밖에 시스템에서 사용하는 이름들만 아니면 된다
settings, mycfg, 본인닉네임 등등...
디폴트 컨픽에 아래와 같이 적어주었다
그리고 각 클래스 컨픽의 맨 첫줄에 아래 명령어를 적어준다
exec 명령어는 cfg 폴더 내에 있는 컨픽들을 읽는 명령어다
exec default라고 쓰면 cfg 폴더 내부의 default의 이름을 가진 컨픽을 가져와서
그 안의 명령어들을 순서대로 실행한다
그 후 솔저에 간소화를, 스나에 감도와 뷰모델을 적어보자
이렇게 적어두면 디폴트 명령어가 실행된 뒤 각 클래스 컨픽에 해당하는 명령어가 실행되기 때문에
충돌 걱정 없이 클래스 컨픽을 사용할 수 있다
디폴트 컨픽으로 잡는건 자신이 컨픽을 얼마나 잘 정리해놓느냐에 따라
자유롭게 만들어서 쓰면 된다
필자는 대부분의 설정과 모든 키 바인드에 대한 컨픽을 디폴트로 만들어서 쓰는 중이다
클래스 컨픽 폴더에서 정리하기
게임을 하다보면 cfg 폴더에는 쓸데없는 이상한 파일들이 많이 생긴다
그 많은 파일 사이에서 클래스 컨픽을 찾아서 쓰는건 대단히 귀찮은 일이다
그래서 나는 지금 클래스 컨픽을 폴더 상단에 띄우기 위해 이렇게 쓰고 있다
실제로 실행되는 클래스 컨픽에 숫자에 해당되는 컨픽을 연결해서 쓰는거다
이런식으로 적어놓으면
스카웃 픽 -> scout.cfg 실행 -> 1_scout.cfg
순서로 컨픽이 실행돼서 결국 1_scout 컨픽에 적힌 명령어가 스카웃을 픽할 때 실행된다
저거 다 만들기 귀찮을테니 내가 만든 백지 파일을 올려주겠다
이거 쓰면 된다
https://github.com/Spealot/classcfgs
그럼 이 클래스 컨픽은 어떻게 응용할 수 있을까?
자주 언급되는 클래스 컨픽 몇 개를 소개해보겠다
유용한 클래스 컨픽들
1. 엔지니어 빠른 설치 - 파괴 바인드
bind F1 "destroy 2 0;build 2 0"
bind F2 "destroy 0 0;build 0 0"
bind F3 "destroy 1 0;build 1 0"
bind F4 "destroy 1 1;build 1 1"
F1 ~ F4 까지 센트리, 디펜, 텔입구, 텔출구에 해당하는 명령어가 들어있다
아무것도 짓지 않은 상태에서 F1을 누르면 손에 센트리가 들리고
센트리를 지은 상태에서 F1을 누르면 센트리가 파괴된다
귀찮게 4번 누르고 1번 누를 필요없이 단축키로 쓸 수 있는 명령어다
이 컨픽을 쓸 때는 F1 ~ F4번을 건드리니 디폴트 컨픽에 F1 ~ F4번 바인드를 되돌리는 명령어를 적으면 된다
bind "F2" "show_quest_log"
F2 말고는 기본설정이 없던걸로 기억함
2. 씨탭 컨픽
//Ctap script
alias +thing "+attack; impulse 101; spec_next"
alias -thing "-attack"
alias +ctap "bind mouse1 +jumpshoot; +duck; spec_prev"
alias -ctap "-duck; -attack"
alias +jumpshoot "-duck; +jump; +thing"
alias -jumpshoot "-jump; -attack; bind mouse1 +thing"
bind "MOUSE2" "+ctap"
디폴트 컨픽으로 잡은 settings에 씨탭 컨픽이 들어있고
솔저를 픽할 때 우클12릭을 씨탭으로 바꿔준다
마찬가지로 디폴트 컨픽에 우클12릭을 초기화하는 명령어를 넣어주면 된다
bind "MOUSE2" "+attack2"
3. 무기 슬롯 별 뷰모델 조정
bind 1 "slot1; r_drawviewmodel 0; viewmodel_fov 90"
bind 2 "slot2; r_drawviewmodel 0; viewmodel_fov 40"
bind 3 "slot3; r_drawviewmodel 1; viewmodel_fov 90"
본인이 메딕에 해놓은 설정인데
아래 바인드 세 개를 보면
쇠뇌와 메디건을 들 때 뷰모델을 켜고 근접은 뷰모델을 켠다
메디건을 들 땐 뷰모델을 40으로 줄인다
뷰모델을 줄인 이유는 뷰모델을 끈 상태에서 메디건을 쓰면 화면 중앙에서 빔이 나가서 시야를 가리기 때문에
일부러 낮춰서 우측 하단에서 빔이 나가게 만든거다
좌 90, 우 40
역시 디폴트 컨픽에 1, 2, 3번 키의 기본값을 넣어주면 된다
bind 1 "slot1"
bind 2 "slot2"
bind 3 "slot3"
클래스 컨픽은 어떻게 쓰느냐에 따라 아주 유용하게 쓸 수 있다
디폴트 컨픽은 한 번 만들어놓으면 나중에 컴퓨터를 바꾼다던지
키를 싹 갈아엎는 컨픽을 쓰는 순간에도 매우 유용하니
이 참에 만들어보는걸 추천한다
오늘은 여기까지
다음에는 응용 및 더 유용한 컨픽들에 대해 좀 더 알아보자
질문 문제제기 환영
+ 참고로 게임을 실행할 때 사용되는 컨픽은 이전 글에서 보였던 config.cfg와 autoexec.cfg 밖에 없기 때문에
그외의 컨픽 수정은 게임을 껐다 켤 필요없이 해당 컨픽이 실행되는 조건을 보이거나 (클래스 변경 등)
인게임 콘솔에서 exec "컨픽 이름"으로 컨픽을 적용할 수 있다
와 정성글
왤캐고수임
해당 댓글은 삭제되었습니다.
대학원생급이군
어이 그런거몰라 전부다넣어서 공유해줘.
해줘도 막 넣으면 컨픽 꼬일텐데.....
상남자는 이런거 귀찮아서 그냥 순정상태로 10000시간함